lupdate を使う
lupdate
コマンドラインツールは、C++ ソース、C++ ヘッダー、Java、Python、QML、および UI ファイルから翻訳可能な文字列を検出し、TS ファイルを生成または更新します。
qmakeでビルドする場合は、コマンドラインまたは.proファイルで処理するファイルを指定します。
CMakeでビルドする場合は、CMakeコマンドを使用してTSファイルを生成または更新するターゲットを追加し、QMファイルに変換します。lupdate
ツールは、ターゲットのビルド時にコマンドに渡したオプションで実行されます。
プロジェクトファイルでの翻訳の指定についての詳細は、アプリケーションのローカライズを参照してください。
lupdate 構文
lupdate [options] [project-file]... lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file
どこで
options
は1つまたは複数のlupdateオプションを意味します。project-file
はプロジェクト設定ファイルです。source-file
は翻訳可能な文字列を含むファイルです。path
は翻訳ソースファイルを含むフォルダへのパスです。@lst-file
は、lst-file から追加のファイル名(1 行に 1 つ)またはインクルードパス(1 行に 1 つで、先頭に が付く)を読み取ります。-I
ts-files
は、生成または更新するTSファイルです。
最新のヘルプを表示するには、次のように入力します:
lupdate -help
更新オプション
オプション | 動作 |
---|---|
-help | 最新のヘルプ情報を表示して終了する。 |
-no-obsolete | 古い文字列や消えた文字列をすべて削除する。 |
-extensions <ext>[,<ext>]... | 指定された拡張子を持つファイルのみを処理する。リスト内の拡張子をカンマで区切る。空白文字は使用しないでください。デフォルト値はjava,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml,qrc です。 |
-pluralonly | 複数形のメッセージのみを含めます。 |
-silent | 処理内容を説明しないでください。 |
-no-sort | TSファイルのコンテキストをソートしない。 |
-no-recursive | ディレクトリを再帰的にスキャンしない。 |
-recursive | ディレクトリを再帰的にスキャンします (デフォルト)。 |
-I <includepath> or -I<includepath> | この追加の場所でインクルード・ファイルを探す。複数のパスを指定できる。 |
-locations {absolute|relative|none} | ソース・コード参照を TS ファイルに保存する方法を指定または上書きします。
場所を指定しない場合、 |
-no-ui-lines | UI ファイルへの参照に行番号を記録しない。 |
-disable-heuristic {sametext|similartext} | 名前付きマージ・ヒューリスティックを無効にします。複数回指定できます。 |
-project <filename> | プロジェクトの説明を JSON 形式で含むファイル名。lprodump ツールを使用して、.pro ファイルからファイルを生成できます。 |
-pro <filename> | .pro ファイルの名前。.proファイル構文を持つが、他のファイル接尾辞を持つファイルに便利です。プロジェクトは再帰的にマージされます。このオプションは非推奨です。代わりにlupdate-pro ツールを使用してください。 |
-pro-out <directory> | 後続の .pro ファイルを処理するための仮想出力ディレクトリ。 |
-pro-debug | .pro ファイルの処理をトレースします。冗長性を高めるために 2 回指定します。 |
-source-language <language>[_<region>] | 新しいファイルのソース文字列の言語を指定します。指定しない場合は POSIX がデフォルトです。 |
-target-language <language>[_<region>] | 新規ファイルの翻訳の言語を指定します。言語を指定しない場合は、lupdate がファイル名から判断します。 |
-tr-function-alias <function>{+=,=}<alias>[,<function>{+=,=}<alias>]... | += を指定すると、<alias> を<function> の代替スペルとして認識します。=, を指定すると、<alias> を<function> の唯一のスペルとして認識します。利用可能な
|
-ts <ts-file>... | 出力ファイルを指定します。これはTRANSLATIONS よりも優先される。 |
-version | lupdate のバージョンを表示して終了します。 |
-clang-parser [compilation-database-dir] | .cppファイルのパースにはclangを使用してください。そうでない場合は、カスタム・パーサーを使います。このオプションは、パースするファイルに clang コンパイル・データベース (compile_commands.json ) が必要です。このファイルを含むディレクトリへのパスを、コマンド・ライン、-clang-parser オプションの直後、またはプロジェクト・ファイルで指定します。qmake を使用する場合は、.pro ファイルで コマンドラインで指定したディレクトリが優先されます。パスを指定しない場合、 |
-project-roots <directory>... | プロジェクト・ルート・ディレクトリを 1 つ以上指定します。-clang-parser オプションを使用すると、プロジェクト・ルート以下のファイルのみが翻訳対象となります。 |
例
CMakeでlupdateを使う
CMakeでビルドする場合、CMakeコマンドを使ってターゲットの翻訳をCMakeLists.txtファイルに追加し、ターゲットをビルドします。
以下のオプションのいずれかを選択してください:
- app などのターゲットでqt_add_translations を使用します。これはqt_add_lupdateとqt_add_lrelease を呼び出します。
qt_add_lupdate
。
ターゲット(たとえば、app_lupdate
)をビルドして、その .ts ファイルを更新します。すべてのターゲットの .ts ファイルを更新するには、ターゲットupdate_translations
をビルドします。
qmakeでlupdateを使用する
1つのQMLファイルに対して翻訳ファイルを生成するには、次のようにします:
lupdate main.qml -ts main_en.ts
別の言語、たとえばフランス語の翻訳ファイルを作成するには、main_en.ts を main_fr.ts にコピーし、フランス語の TS ファイル内の文字列を翻訳します。
lupdate
.qrc
ファイルに記載されている QML ファイルを処理します:
RESOURCES += qml.qrc
すべてのQMLファイルをlupdate
:
lupdate application.qrc -ts myapp_en.ts
現在の作業ディレクトリ(またはそのサブフォルダ)にあるすべての QML ファイルを、.qrc
ファイルを使わずに処理するには:
lupdate . -extensions qml -ts myapp_en.ts
QML と C++ の両方のソースファイルから翻訳可能な文字列をチェックする:
lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts
プロジェクトファイルで言語を指定せずに、英語とフランス語で使用される .ts ファイルを生成する:
lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts myapp_fr.ts
TS ファイルを翻訳者に渡し、翻訳者は Qt Linguist を使ってファイルを読み、翻訳を挿入します。
XLIFF 形式のファイル
TSファイルフォーマットは、バージョン管理システムで使用できる、人間が読めるシンプルなXMLフォーマットです。さらに、lupdate
は、Localization Interchange File Format (XLIFF) ファイルを処理することができます (.xlf
)。
注: 現在サポートされているのは、XLIFFバージョン1.1と1.2のみです。
XLIFF ファイルは、Qt Linguist で開いて編集することができます。
©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。