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
は、XLIFF(Localization Interchange File Format)ファイル(.xlf
)を処理することができます。
注: 現在サポートされているのは、XLIFFバージョン1.1と1.2のみです。
XLIFF ファイルは、Qt Linguist で開いて編集することができます。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.