如何在 Ubuntu Touch 项目中使用 i18n.tr

如何在 Ubuntu Touch 项目中使用 i18n.tr

我一直在使用i18n.tr有一段时间在我的Ubuntu-Touch项目。我知道这个功能的作用,但我不知道如何将翻译添加到我的项目中。

我应该将翻译文件放在哪里?用什么名字?它的内容应该如何书写?我应该如何将它与我的应用程序连接?如何使用 qmlscene 测试它?

答案1

看一眼触控笔代码,特别是它的 README,其中提供了所有需要的命令。

快速摘要

  • 在使用 gettext 之前,您需要绑定文本域。在 C++ 中,您可以这样做:

    bindtextdomain("domainname", "somedir");
    textdomain("domainname");
    

    在 Qml 中你可能可以做这样的事情:

    i18n.bindtextdomain("domainname", "somedir");
    i18n.domain = "domainname";
    

    一定要这样做 18n.tr用来。

  • 要生成.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
    

    (将somedirsomelanguage和替换domainname为您的值)。

答案2

最好的答案似乎在文档中。http://developer.ubuntu.com/api/ubuntu-12.10/qml/mobile/qml-ubuntu-components0-i18n.html

它似乎是一个将传递的单词翻译成用户语言的功能。

相关内容