Sur cette page

qt_collect_translation_source_targets

Récupère les cibles pouvant faire l'objet d'une traduction.

La commande est définie dans le composant « LinguistTools » du paquet « Qt6 ». Chargez le paquet à l'aide de la commande suivante :

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 plutôt qt6_collect_translation_source_targets(). Elle prend en charge le même ensemble d’arguments que cette commande.

Description

Récupère les cibles pouvant être traduites dans le répertoire DIRECTORY spécifié et dans tous ses sous-répertoires. Si DIRECTORY n’est pas spécifié, la collecte des cibles commence à l’emplacement CMAKE_CURRENT_SOURCE_DIR.

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

Exclusion de 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é de cible QT_EXCLUDE_FROM_TRANSLATION.

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

Quand utiliser 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 ` 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 de l’ CMakeLists.txt de niveau supérieur ou utilisez ` cmake_language(DEFER CALL) ` pour configurer l’internationalisation (i18n) à la fin de la portée du répertoire de niveau supérieur.

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 versions ultérieures, vous pouvez regrouper les cibles source à la fin de la portée du répertoire. De cette manière, qt_collect_translation_source_targets peut être appelé avant que toutes les cibles aient été définies. Cependant, vous devez exclure les tests en définissant la propriété de répertoire QT_EXCLUDE_FROM_TRANSLATION sur 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.