Я некоторое время использовал i18n.tr в моих проектах Ubuntu-Touch . Я знаю, о чем эта функция, но я не знаю, как добавить перевод в мой проект.
Где мне разместить файл с переводом? С каким именем? Как должно быть написано его содержание? Как мне подключить его к моему приложению? Как мне проверить это с помощью qmlscene?
Взгляните на код TouchWriter и особенно его README, где даны все необходимые команды.
Вам необходимо связать текстовую область перед использованием gettext. В C ++ вы можете сделать это следующим образом:
bindtextdomain("domainname", "somedir");
textdomain("domainname");
В Qml вы, вероятно, можете сделать что-то вроде этого:
i18n.bindtextdomain("domainname", "somedir");
i18n.domain = "domainname";
Обязательно сделайте это до [ 114].
Чтобы сгенерировать .pot
шаблон и исходные .po
файлы, используйте следующие команды:
xgettext -C --qt --keyword=tr -p somedir -o messages.pot
msginit -i somedir/messages.pot -o somedir/somelanguage.po
(замените somedir
на каталог, с которым связан ваш домен, и somelanguage
с языком, который вы хотите перевести).
Чтобы сгенерировать .mo
файлов из исходных файлов .po
, используйте команду msgfmt po-file -o mo-file
.
Скомпилированные .mo
файлы должны быть помещены в каталог, к которому вы привязали текстовый домен, более конкретно в
somedir/somelanguage/LC_MESSAGES/domainname.mo
(замените somedir
, somelanguage
и domainname
на ваши ценности).
Лучший ответ, кажется, в документе. http://developer.ubuntu.com/api/ubuntu-12.10/qml/mobile/qml-ubuntu-components0-i18n.html
Кажется, что это функция, которая переводит слово передается на язык пользователя.