Edited online
parent
65afcdab3b
commit
83ac609cf8
|
@ -59,4 +59,19 @@
|
|||
'Едришкина качель!'
|
||||
});
|
||||
|
||||
В результате выполнения функции вы получаете случайную строку из массива.
|
||||
В результате выполнения функции вы получаете случайную строку из массива.
|
||||
|
||||
## Модуль translate
|
||||
|
||||
Традиционный подход к переводу игр на INSTEAD - это делать новую игру и потом, возможно, упаковывать её рядом с оригиналом. Некоторые авторы даже делают красивые меню для выбора языка. Это связано с тем, что при переводе на японский когда-то понадобилось полностью переписывать всю игру, вместе с частью логики.
|
||||
|
||||
Я считаю этот подход в корне неправильным, потому что он очень труден даже для игр среднего размера. После
|
||||
релиза 1.0 строки в игре по определению не должны радикально меняться, поэтому игры стоит переводить точно так же, как и остальные программы: при помощи gettext. Это тот способ, который не решает все проблемы перевода (для некоторых языков всё ещё придётся переписывать игру полностью), но облегчает переход между некоторыми языковыми парами. Кроме того, игроку не придётся второй раз выбирать язык игры, потому что он уже выбрал язык в настройках INSTEAD.
|
||||
|
||||
Закончив это отступление, я хочу представить модуль для перевода игр при помощи gettext. Чтобы его использовать, достаточно подключить модуль `translate` в вашу игру. У него всего одна настройка:
|
||||
|
||||
translate.source = 'ru';
|
||||
|
||||
Настройка `translate.source` указывает исходный язык строк. Модуль объявляет функцию `__()`, которая и будет переводить строки. Если язык в настройках INSTEAD соответствует исходному, то строки не меняются. Значение `translate.source` должно соответствовать переменной `LANG` движка, это - двухбуквенный код языка.
|
||||
|
||||
Это всё. Вы подключаете модуль, оборачиваете все строки в игре вот таким образом: `__([[текст]])` и натравляете gettext на исходный код. Помощь по использованию gettext можно легко найти в сети Интернет.
|
Loading…
Reference in a new issue