qt_add_lrelease
Qt Linguist.ts ファイルを .qm ファイルに変換するターゲットを追加する。
このコマンドはQt6
パッケージのLinguistTools
コンポーネントで定義されています。でパッケージをロードします:
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
このコマンドは Qt 6.2 で導入されました。
概要
6.7以降:
qt_add_lrelease(TS_FILES file1.ts [file2.ts ...] [LRELEASE_TARGET target-name] [EXCLUDE_FROM_ALL] [NO_GLOBAL_TARGET] [QM_FILES_OUTPUT_VARIABLE variable-name] [OPTIONS ...])
6.2以降(非推奨):
qt_add_lrelease(target TS_FILES file1.ts [file2.ts ...] [NO_TARGET_DEPENDENCY] [NO_GLOBAL_TARGET] [QM_FILES_OUTPUT_VARIABLE variable-name] [OPTIONS ...])
バージョンレスコマンドが無効になっている場合は、代わりにqt6_add_lrelease()
を使ってください。このコマンドと同じ引数セットをサポートしています。
警告 ターゲット・ディレクトリ・スコープと異なるディレクトリ・スコープでqt_add_lrelease
を呼び出すには、少なくとも CMake バージョン 3.18 が必要です。
説明
lrelease を使用して.ts
ファイルを.qm
ファイルに変換するカスタムコマンドを作成します。
カスタムコマンドの実行は、デフォルトでビルドされるカスタムターゲットによって駆動されます。カスタム・ターゲットの名前は、デフォルトで${PROJECT_NAME}_lrelease
となります。さらにqt_add_lrelease
を呼び出すと、数字が付加されたターゲット名が作成される。カスタム・ターゲット名はLRELEASE_TARGET
オプションで指定できる。
.ts
ファイルは、引数TS_FILES
で指定する必要がある。
この関数はqt_add_lupdateと組み合わせて使用するように設計されています。便利なラッパーのqt_add_translations も参照してください。
オプション
lrelease
が呼び出されたときに渡されるべき追加のOPTIONS
を設定することができます。可能なオプションはlrelease のドキュメントにあります。
デフォルトでは、.qm
ファイルはカレントビルドディレクトリ (CMAKE_CURRENT_BINARY_DIR
) に置かれます。これを変更するには、ソース.ts
ファイルのプロパティとしてOUTPUT_LOCATION
を設定します。
例えば、以下のコードでは、.qm
ファイルは現在のビルドディレクトリの下のtranslations
ディレクトリに生成されます。
set_source_files_properties(app_en.ts app_de.ts PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/translations")
生成された .qm ファイルの処理
生成された.qm
ファイルをさらに処理するために、例えばインストールルールを作成するために、qt_add_lrelease
は.qm
ファイルのパスを変数に格納することができます。QM_FILES_OUTPUT_VARIABLE <variable-name>
を関数に渡してください。
デフォルトでのビルド
デフォルトでは、このコマンドはデフォルトのビルド・ターゲットに追加されるカスタム・ターゲットを作成します。これにより、プロジェクトがビルドされるときに.qm
ファイルが常に最新の状態になります。この動作はEXCLUDE_FROM_ALL
引数でオフにすることができます。この場合、ユーザーは${PROJECT_NAME}_lrelease
ターゲットを手動でビルドする必要があります。
アンブレラターゲット
ターゲット${target}_lrelease
に加えて、アンブレラターゲットrelease_translations
が作成されます。このターゲットは、qt_add_lrelease
で作成されたすべての${target}_lrelease
ターゲットを構築します。
この動作を防ぐには、NO_GLOBAL_TARGET
をqt_add_lrelease
に渡します。
このターゲットの名前は、qt_add_lrelease
を呼び出す前に変数QT_GLOBAL_LRELEASE_TARGET
を設定することでオーバーライドできます。
非推奨コマンドシグネチャ
旧バージョンのqt_add_lrelease
は、第1引数にターゲットを取っていた。これはまだ可能ですが、非推奨です。
例
与えられた.ts
ファイルを.qm
ファイルに変換するために、myapp_lrelease
とrelease_translations
のターゲットを追加する。また、生成された.qm
ファイルをインストールする。ターゲットmyapp_lrelease
はデフォルトでビルドされる。
project(myapp) ... qt_add_lrelease( TS_FILES myapp_de.ts myapp_fr.ts QM_FILES_OUTPUT_VARIABLE qm_files ) install(FILES ${qm_files} DESTINATION "translations")
LRELEASE_TARGET
引数を渡すことで、作成されるターゲットの名前を指定できます:
qt_add_lrelease( LRELEASE_TARGET create_myapp_qm_files TS_FILES myapp_de.ts myapp_fr.ts QM_FILES_OUTPUT_VARIABLE qm_files )
© 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.