Geo*_*nos 5 qt application-development qml ubuntu-sdk ubuntu-touch
我在我的Ubuntu-Touch项目中使用i18n.tr已经有一段时间了。我知道这个功能是什么,但我不知道如何向我的项目添加翻译。
我必须把我的翻译文件放在哪里?用什么名字?它的内容必须如何编写?我应该如何将它与我的应用程序连接?我如何用 qmlscene 测试它?
查看TouchWriter代码,尤其是它的自述文件,其中给出了所有需要的命令。
使用gettext之前需要绑定text域。在 C++ 中你可以这样做:
bindtextdomain("domainname", "somedir");
textdomain("domainname");
Run Code Online (Sandbox Code Playgroud)
在 Qml 中你可能可以这样做:
i18n.bindtextdomain("domainname", "somedir");
i18n.domain = "domainname";
Run Code Online (Sandbox Code Playgroud)
使用前 请务必执行此操作。18n.tr
要生成.pot
模板和源.po
文件,请使用以下命令:
xgettext -C --qt --keyword=tr -p somedir -o messages.pot
msginit -i somedir/messages.pot -o somedir/somelanguage.po
Run Code Online (Sandbox Code Playgroud)
(替换somedir
为您的域绑定的目录以及somelanguage
您要翻译的语言)。
.mo
要从源文件生成文件.po
,请使用msgfmt po-file -o mo-file
命令。
编译后的.mo
文件应放置在您将文本域绑定到的目录中,更具体地说,位于
somedir/somelanguage/LC_MESSAGES/domainname.mo
Run Code Online (Sandbox Code Playgroud)
(将somedir
,somelanguage
和替换domainname
为您的值)。
J3R*_*3RN -1
最好的答案似乎在文档中。http://developer.ubuntu.com/api/ubuntu-12.10/qml/mobile/qml-ubuntu-components0-i18n.html
它似乎是一个将传递的单词翻译成用户语言的函数。
归档时间: |
|
查看次数: |
749 次 |
最近记录: |