Qtの設定 - Qt Linguist
概要
リリースマネージャとして、lrelease
とlupdate
の2つのツールが提供されている。
これらのツールは、QtプロジェクトファイルおよびCMakeプロジェクトファイルの処理、または、ファイルシステム上で直接操作することができる。
翻訳ファイルは、ソフトウェアにある全てのユーザー可視テキスト、[Ctrl]キーアクセラレータ、そのテキストの翻訳から構成される。
翻訳ファイルを作成する手順は、以下の通りである。
lupdate
コマンドを実行して、ユーザから見えるテキストを全て含み、翻訳が無い最初の翻訳ファイル群((TSファイル群)を生成する。- TSファイルを翻訳者に渡して、翻訳者はQt Linguistを使用して翻訳を追加する。
Qt Linguistは、変更または削除されたソーステキストを処理する。 lupdate
コマンドは、データを破壊することなく、ソフトウェアのユーザビジュアルテキストと翻訳を同期させる。- ソフトウェアをリリースする場合、
lrelease
を実行して、TSファイルを読み込みソフトウェアで使用するQMファイルを実行時に生成する。
lupdate
コマンドを使用する場合は、コンパイルする翻訳ファイル(TSファイル)を、QtプロジェクトファイルおよびCMakeプロジェクトファイルに記述する必要がある。
lreleaseコマンド
lrelease
コマンドは、TSファイルをQMファイルに変換・生成する。
lrelease <Qtプロジェクトファイルのパス>
QMファイルは、ローカライズされたソフトウェアで使用できるコンパクトなバイナリ形式である。
lrelease
コマンドがコンパイルするTSファイルは、コマンドラインから実行する、または、Qtプロジェクトファイルから間接的に与えることができる。
QMファイルが無い場合、ソフトウェアは設計者が代替として配置したテキストを使用して実行される。
QMファイルを適切な場所に配置することにより、ソフトウェアはQMファイルを自動的に検出して使用する。
また、lrelease
コマンドは、Qtプロジェクトファイルを指定せずに実行することもできる。
lrelease.exe <TSファイル 1> <TSファイル 2> <TSファイル ...>
※注意
lrelease
コマンドは、"finished"とマークされた翻訳のみを取り込む。
それ以外の場合は、代わりに原文が使用される。
その他のオプションを知りたい場合は、lrelease -help
コマンドを実行すること。
lupdateコマンド
lupdate
コマンドは、指定されたソースファイル、ヘッダファイル、Qtデザイナーインターフェイスファイルの中から翻訳可能な文字列を見つけて、
TSファイル(翻訳ファイル)からQMファイルへ生成または更新する。
処理するファイルと更新するファイルは、コマンドラインから実行する、または、Qtプロジェクトファイルで指定する。
lupdate <Qtプロジェクトファイルのパス>
また、1つのQMLファイルに対する翻訳ファイルは、lupdate
コマンドを実行することにより、生成することができる。
lupdate <QMLファイル> -ts <対応するTSファイル> 例. lupdate main.qml -ts main_ja.ts
他の言語(フランス語等)の翻訳ファイルを作成する場合は、main_en.tsファイルをmain_fr.tsファイルとしてコピーして、各言語のTSファイルにある文字列を翻訳・記述する。
lupdate
コマンドは、.qrcファイルに記述されたQMLファイルを処理することもできる。
# Qtプロジェクトファイル (.pro) RESOURCES += qml.qrc
全てのQMLファイルを特定の言語のQMファイルへ生成または更新する。
lupdate application.qrc -ts mysoftware_en.ts
.qrcファイルを使用せずに、全てのQMLファイルを特定の言語のQMLファイルへ生成または更新することも可能である。
lupdate -extensions qml -ts mysoftware_en.ts
QMLファイルおよび翻訳する文字列を含むC++のソースコードも存在する場合も、特定の言語のQMLファイルへ生成または更新することが可能である。
lupdate qml.qrc mainwindow.cpp -ts mysoftware_en.ts
TSファイルは、Qtプロジェクトファイルに記述せずに、lupdate
コマンドを実行して、翻訳ファイルを指定することもできる。
以下の例では、英語とフランス語に使用するTSからQMファイルへ生成または更新している。
lupdate qml.qrc mainwindow.cpp -ts mysoftware_en.ts mysoftware_fr.ts
TSファイルの雛形を翻訳者に渡して、翻訳者はQt Linguistを使用してTSファイルを読み込み、翻訳を記述する。
社内に翻訳者がいる企業は、ソフトウェアの開発に合わせて、定期的にlupdate
コマンドを実行するとよい。
これにより、翻訳作業量は少なくなり、プロジェクトの期間中に均等に分散されて、翻訳者は同時に多くのプロジェクトをサポートできるようになる。
TSファイルは、人間が読めるXML形式であり、必要に応じてバージョン管理システムで管理することができる。
また、lupdate
コマンドは、Localization Interchange File Format(XLIFF)形式のファイルも処理することができる。
※注意
XLIFF形式のファイルの最小サポートバージョンは、1.1である。
XLIFF 1.0以前のファイルはサポートされていないので注意すること。
その他のオプションを知りたい場合は、lupdate -help
コマンドを実行すること。
未完成の翻訳
lrelease
コマンドおよびlupdate
コマンドは、TSファイルの翻訳が不完全な場合でも使用することができる。
その場合、不足している翻訳箇所は、実行時にネイティブ言語のフレーズに置き換えられる。