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 )
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。