このページでは

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

lupdate オプション

オプション動作
-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-sortTS ファイル内のコンテキストをソートしない。
-sort-messagesTS ファイル内のコンテキスト内のメッセージをアルファベット順に並べ替えます。
-no-recursiveディレクトリを再帰的にスキャンしない。
-recursiveディレクトリを再帰的にスキャンする(デフォルト)。
-warnings-are-errors警告をエラーとして扱う。
-I <includepath> or -I<includepath>この追加の場所でインクルードファイルを検索します。複数のパスを指定できます。
-locations {absolute|relative|none}TS ファイルへのソースコード参照の保存方法を指定または上書きします。
  • absolute は、ソースファイルのパスがターゲットファイルに対する相対パスである一方、行番号は絶対値であることを意味します。
  • relative は、ソースファイルのパスがターゲットファイルに対する相対パスであることを意味します。行番号は、同じソースファイル内の他のエントリに対する相対的なものです。
  • none ソースの位置に関する情報は保存されません。

場所を指定しない場合、lupdate は既存のTSファイルからそれを判別します。新しいファイルのデフォルト値はabsolute です。

-no-ui-linesUI ファイルへの参照には行番号を記録しない。
-disable-heuristic {sametext|similartext}名前付きマージヒューリスティックを無効にします。複数回指定可能です。
-project <filename>プロジェクトの説明が JSON 形式で記述されたファイルの名前。lupdate-pro -dump-json <file> を使用して、.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> の唯一の表記として認識します。

利用可能な<function> の値(および現在定義されているエイリアス)は以下の通りです:

  • Q_DECLARE_TR_FUNCTIONS (=Q_DECLARE_TR_FUNCTIONS)
  • QT_TR_N_NOOP (=QT_TR_N_NOOP)
  • QT_TRID_N_NOOP (=QT_TRID_N_NOOP)
  • QT_TRANSLATE_N_NOOP (=QT_TRANSLATE_N_NOOP)
  • QT_TRANSLATE_N_NOOP3 (=QT_TRANSLATE_N_NOOP3)
  • QT_TR_NOOP (=QT_TR_NOOP)
  • QT_TRID_NOOP (=QT_TRID_NOOP)
  • QT_TRANSLATE_NOOP (=QT_TRANSLATE_NOOP)
  • QT_TRANSLATE_NOOP3 (=QT_TRANSLATE_NOOP3)
  • QT_TR_NOOP_UTF8 (=QT_TR_NOOP_UTF8)
  • QT_TRANSLATE_NOOP_UTF8 (=QT_TRANSLATE_NOOP_UTF8)
  • QT_TRANSLATE_NOOP3_UTF8 (=QT_TRANSLATE_NOOP3_UTF8)
  • findMessage (=findMessage)
  • qtTrId (=qtTrId)
  • tr (=tr)
  • trUtf8 (=trUtf8)
  • translate (=translate)
  • qsTr (=qsTr)
  • qsTrId (=qsTrId)
  • qsTranslate (=qsTranslate)
-ts <ts-file>...出力ファイルを指定します。これにより、TRANSLATIONS の設定が上書きされます。
-versionlupdate のバージョンを表示して終了します。

例

CMake での lupdate の使用方法

CMake を使用してビルドを行う場合は、CMake コマンドを使用して CMakeLists.txt ファイルのターゲットに翻訳を追加し、その後、ターゲットをビルドします。

以下のオプションのいずれかを選択してください:

ターゲット(例: `app_lupdate`)をビルドして、そのターゲットの .ts ファイルを更新します。すべてのターゲットの .ts ファイルを更新するには、ターゲット `update_translations` をビルドしてください。

qmake での lupdate の使用

単一の 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

.qrc ファイルを使用せずに、現在の作業ディレクトリ(またはそのサブフォルダ)内のすべてのQMLファイルを処理するには:

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のみが サポートされています。

Qt Linguist では、XLIFF ファイルを開いて編集することができます。

© 2026 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.