web-dev-qa-db-ja.com

Ubuntu Touchプロジェクトでi18n.trを使用する方法

buntu-Touchプロジェクトでしばらくの間i18n.trを使用しています。この機能が何であるかは知っていますが、プロジェクトに翻訳を追加する方法がわかりません。

翻訳ファイルはどこに置く必要がありますか?何の名前で?その内容はどのように書く必要がありますか?アプリとどのように接続すればよいですか? qmlsceneでテストするにはどうすればよいですか?

5
George Sofianos

TouchWriter コード、特に必要なすべてのコマンドが提供されているREADMEを見てください。

簡単な要約

  • Gettextを使用する前に、テキストドメインをバインドする必要があります。 C++では、次のように実行できます。

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

    Qmlでは、おそらく次のようなことができます。

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

    必ずbefore18n.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
    

    somedirsomelanguagedomainnameを値に置き換えてください)。

2
Dmitry Shachnev