buntu-Touchプロジェクトでしばらくの間i18n.trを使用しています。この機能が何であるかは知っていますが、プロジェクトに翻訳を追加する方法がわかりません。
翻訳ファイルはどこに置く必要がありますか?何の名前で?その内容はどのように書く必要がありますか?アプリとどのように接続すればよいですか? qmlsceneでテストするにはどうすればよいですか?
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
(somedir
、somelanguage
、domainname
を値に置き換えてください)。