Sur cette page

qt_collect_translation_source_targets

Collecte les cibles éligibles à la traduction.

Cette commande est définie dans le composant LinguistTools du paquetage Qt6. Chargez le paquetage avec :

find_package(Qt6 REQUIRED COMPONENTS LinguistTools)

Cette commande a été introduite dans Qt 6.7.

Synopsis

qt_collect_translation_source_targets(out_var [DIRECTORY path])

Si les commandes sans version sont désactivées, utilisez qt6_collect_translation_source_targets() à la place. Elle prend en charge le même ensemble d'arguments que cette commande.

Description de la commande

Collecte les cibles éligibles à la traduction dans le répertoire DIRECTORY et tous les sous-répertoires. Si DIRECTORY n'est pas spécifié, la collecte des cibles commence à CMAKE_CURRENT_SOURCE_DIR.

La commande stocke la liste des cibles dans la variable spécifiée comme premier argument.

Exclusion des cibles de la traduction

Par défaut, toutes les cibles exécutables et bibliothèques non importées sont éligibles à la traduction.

Des cibles individuelles peuvent être exclues en définissant la propriété QT_EXCLUDE_FROM_TRANSLATION.

Les cibles situées sous un certain répertoire peuvent être exclues en définissant la propriété de répertoire QT_EXCLUDE_FROM_TRANSLATION.

Quand appeler cette commande

La commande qt_collect_translation_source_targets lit les propriétés du répertoire BUILDSYSTEM_TARGETS. Par conséquent, elle ne collecte que les cibles qui ont déjà été créées. Les cibles créées après l'appel de la commande qt_collect_translation_source_targets ne sont pas collectées.

Pour collecter toutes les cibles du système de construction, appelez qt_collect_translation_source_targets à la fin du répertoire de premier niveau CMakeLists.txt ou utilisez cmake_language(DEFER CALL) pour configurer i18n à la fin du répertoire de premier niveau.

Exemples

Utilisez le résultat de qt_collect_translation_source_targets comme entrée pour qt_add_lupdate.

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.

Avec CMake 3.19 et les versions ultérieures, vous pouvez collecter les cibles source à la fin de l'étendue du répertoire. De cette façon, qt_collect_translation_source_targets peut être appelé avant que toutes les cibles n'aient été définies. Cependant, vous devez exclure les tests en définissant la propriété de répertoire 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)

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