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_TRANSLATIONON に設定して、テストを除外する必要があります。

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)

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