qt_collect_translation_source_targets
翻訳対象のターゲットを収集します。
このコマンドはQt6
パッケージのLinguistTools
コンポーネントで定義されています。でパッケージを読み込みます:
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
このコマンドは Qt 6.7 で導入されました。
概要
qt_collect_translation_source_targets(out_var [DIRECTORY path])
バージョンレスコマンドが無効になっている場合は、代わりにqt6_collect_translation_source_targets()
を使用してください。このコマンドと同じ引数セットをサポートしています。
説明
指定されたDIRECTORY
とすべてのサブディレクトリにある翻訳対象のターゲットを収集します。DIRECTORY
が指定されていない場合は、CMAKE_CURRENT_SOURCE_DIR
からターゲット収集を開始する。
コマンドは、第一引数として指定された変数にターゲットのリストを格納します。
翻訳からのターゲットの除外
デフォルトでは、インポートされていないすべての実行可能ターゲットとライブラリターゲットが翻訳の対象となります。
ターゲット・プロパティ QT_EXCLUDE_FROM_TRANSLATION を設定することで、単一のターゲットを除外することができます。
特定のディレクトリ以下のターゲットは、ディレクトリ・プロパティ QT_EXCLUDE_FROM_TRANSLATION を設定することで除外できます。
このコマンドを呼び出すタイミング
qt_collect_translation_source_targets
コマンドは、BUILDSYSTEM_TARGETSディレクトリ・プロパティを読み取ります。その結果、すでに作成されているターゲットのみが収集されます。qt_collect_translation_source_targets
が呼び出された後に作成されたターゲットは収集されません。
ビルド・システムのすべてのターゲットを収集するには、トップレベルCMakeLists.txt
の最後にqt_collect_translation_source_targets
を呼び出すか、cmake_language(DEFER CALL)
を使用して、トップレベル・ディレクトリ・スコープの最後に i18n を設定します。
例
qt_add_lupdate
の入力としてqt_collect_translation_source_targets
の結果を使用します。
add_subdirectory(src) # The actual application is defined here. # All targets that have been defined up to this point will be in i18n_targets. qt_collect_translation_source_targets(i18n_targets) qt_add_lupdate(SOURCE_TARGETS ${i18n_targets}) # No targets from this directory are in i18n_targets. add_subdirectory(tests) # Unit tests - we don't want to translate those.
CMake 3.19 以上では、ディレクトリ・スコープの最後にソース・ターゲットを集めることができます。こうすることで、すべてのターゲットが定義される前にqt_collect_translation_source_targets
を呼び出すことができます。ただし、ディレクトリプロパティQT_EXCLUDE_FROM_TRANSLATIONをON
に設定して、テストを除外する必要があります。
function(set_up_translations) qt_collect_translation_source_targets(i18n_targets) qt_add_lupdate(SOURCE_TARGETS ${i18n_targets}) endfunction() cmake_language(DEFER CALL set_up_translations) add_subdirectory(src) # The actual application is defined here. add_subdirectory(tests) # Unit tests - we don't want to translate those. set_property(DIRECTORY tests PROPERTY QT_EXCLUDE_FROM_TRANSLATION ON)
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。