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-sortTSファイルのコンテキストをソートしない。
-no-recursiveディレクトリを再帰的にスキャンしない。
-recursiveディレクトリを再帰的にスキャンします (デフォルト)。
-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 形式で含むファイル名。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> の唯一のスペルとして認識します。

利用可能な<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 のバージョンを表示して終了します。
-clang-parser [compilation-database-dir].cppファイルのパースにはclangを使用してください。そうでない場合は、カスタム・パーサーを使います。このオプションは、パースするファイルに clang コンパイル・データベース (compile_commands.json) が必要です。このファイルを含むディレクトリへのパスを、コマンド・ライン、-clang-parser オプションの直後、またはプロジェクト・ファイルで指定します。

qmake を使用する場合は、.pro ファイルでLUPDATE_COMPILE_COMMANDS_PATH 変数を設定します。

コマンドラインで指定されたディレクトリが優先されます。パスを指定しない場合、lupdate は最初の入力ファイルのすべての親パスからコンパイル・データベースを検索します。

-project-roots <directory>...プロジェクト・ルート・ディレクトリを 1 つ以上指定します。-clang-parser オプションを使用すると、プロジェクト・ルート以下のファイルのみが翻訳対象となります。

CMakeでlupdateを使う

CMakeでビルドする場合、CMakeコマンドを使ってターゲットの翻訳をCMakeLists.txtファイルに追加し、ターゲットをビルドします。

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

ターゲット(たとえば、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.