最初はかなりの作業が必要ですが、その後はすべて自動です。
ソースコード
ソース ファイルでは、翻訳可能な文字列を関数内に配置する必要がありtr()
ます。すべての QObject 派生クラスには独自のtr()
機能があります。そのクラス内の文字列には、そのクラスの tr 関数を使用します。
QString str ="string to be translated";
使用する
QString str = MyClass::tr("string to be translated");
クラスにtr()
関数使用がない場合
QString str = QOject::tr("string to be translated");
Qtクリエーター
Qt Creator で Tools/External/Configure... に移動し、lupdate と lrelease の場所を入力します。それらの場所をハードコーディングするか、マクロを使用できます。これらのユーティリティは、Qt のインストール場所の bin サブディレクトリにあります。
ts ファイル
英語からオランダ語に翻訳したいとします。2 つのファイルが必要になります。myapp_en.ts
それらをとと呼びますmyapp_nl.ts
。原則として、英語の ts ファイルを含める必要はありませんが、英語を別の言語と同じ立場で扱うのに役立ちます。
プロジェクトファイル
プロファイルに追加
TRANSLATIONS+= /path_to_/myapp_en.ts
TRANSLATIONS+= /path_to_/myapp_nl.ts
初めての ts ファイル
初めて lupdate を実行すると、ts ファイルが作成されます。
実際の翻訳
Qt Linguist で ts ファイルを開きます。このファイルの一部のプロパティを設定できます。翻訳が必要なすべての文字列が、ts ファイルの Qt Linguist ビューに表示されるようになりました。翻訳を挿入できます。変更した ts ファイルを保存します。
ts ファイルを更新する
ソース コードを変更したときはいつでも、lupdate を実行する必要があります。Qt Linguist を使用して新しい文字列の翻訳を追加し、lupdate を実行してから lrelease を実行します。プログラム lrelease は、テキスト ファイルを圧縮バイナリ ファイル (拡張子「qm」) に変換します。
翻訳を読み込む
あとは、特定の翻訳をロードする (つまり、特定の qm ファイルをロードする) ようにアプリケーションに指示するだけです。これは、優れたドキュメントを備えた Qt クラス QTranslator を使用して行います。