Sur cette page

Utilisation de lupdate

L'outil en ligne de commande lupdate recherche les chaînes traduisibles dans les fichiers source C++, les fichiers d'en-tête C++, les fichiers Java, Python, QML et les fichiers d'interface utilisateur, puis génère ou met à jour les fichiers TS.

Lors de la compilation avec qmake, spécifiez les fichiers à traiter en ligne de commande ou dans un fichier .pro.

Lors d'une compilation avec CMake, utilisez les commandes CMake pour ajouter des cibles qui créent ou mettent à jour des fichiers TS et les transforment en fichiers QM. L'outil lupdate s'exécute avec les options que vous transmettez aux commandes lors de la compilation de la cible.

Pour plus d’informations sur la spécification des traductions dans les fichiers de projet, consultez la section Localisation des applications.

Syntaxe de `lupdate`

lupdate [options] [project-file]...
lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file

Où :

  • options désigne une ou plusieurs options lupdate.
  • project-file est le fichier de configuration du projet.
  • source-file est un fichier contenant des chaînes à traduire.
  • path est le chemin d’accès à un dossier contenant les fichiers source de traduction.
  • @lst-file lit des noms de fichiers supplémentaires (un par ligne) ou des chemins d’inclusion (un par ligne et préfixés par -I) à partir du fichier lst.
  • ts-files sont les fichiers TS à générer ou à mettre à jour.

Pour consulter l'aide la plus récente, saisissez :

lupdate -help

lupdate options

OptionAction
-helpAffiche les informations d'aide à jour et quitte le programme.
-no-obsoleteSupprimer toutes les chaînes obsolètes et disparues.
-extensions <ext>[,<ext>]...Traiter uniquement les fichiers portant les extensions indiquées. Séparer les extensions de la liste par des virgules. Ne pas utiliser d'espaces. La valeur par défaut est : java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml,qrc.
-pluralonlyN'inclure que les messages au pluriel.
-silentNe pas expliquer ce qui est en cours d'exécution.
-no-sortNe triez pas les contextes dans les fichiers TS.
-sort-messagesTrier les messages d'un contexte par ordre alphabétique dans les fichiers TS.
-no-recursiveNe pas parcourir les répertoires de manière récursive.
-recursiveEffectuer une analyse récursive des répertoires (par défaut).
-warnings-are-errorsTraiter les avertissements comme des erreurs.
-I <includepath> or -I<includepath>Rechercher les fichiers d'inclusion à cet emplacement supplémentaire. Vous pouvez spécifier plusieurs chemins d'accès.
-locations {absolute|relative|none}Spécifier ou remplacer la méthode d'enregistrement des références au code source dans les fichiers TS.
  • absolute signifie que le chemin d'accès au fichier source est relatif au fichier cible, mais que le numéro de ligne est absolu.
  • relative signifie que le chemin d’accès au fichier source est relatif au fichier cible. Le numéro de ligne est relatif aux autres entrées du même fichier source.
  • none ne stocke aucune information sur l'emplacement de la source.

Si vous ne spécifiez pas l'emplacement, lupdate le détermine à partir des fichiers TS existants. La valeur par défaut pour les nouveaux fichiers est absolute.

-no-ui-linesNe pas enregistrer les numéros de ligne dans les références aux fichiers d’interface utilisateur.
-disable-heuristic {sametext|similartext}Désactivez l’heuristique de fusion nommée. Peut être spécifié plusieurs fois.
-project <filename>Nom d’un fichier contenant la description du projet au format JSON. Vous pouvez utiliser lupdate-pro -dump-json <file> pour générer ce fichier à partir d’un fichier .pro.
-pro <filename>Nom d’un fichier .pro. Utile pour les fichiers respectant la syntaxe des fichiers .pro mais comportant une extension différente. Les projets sont parcourus de manière récursive et fusionnés. Cette option est obsolète. Utilisez plutôt l’outil lupdate-pro.
-pro-out <directory>Répertoire de sortie virtuel pour le traitement des fichiers .pro suivants.
-pro-debugTrace le traitement des fichiers .pro. Spécifiez cette option deux fois pour obtenir davantage de détails.
-source-language <language>[_<region>]Spécifiez la langue des chaînes source pour les nouveaux fichiers. La valeur par défaut est POSIX si elle n’est pas spécifiée.
-target-language <language>[_<region>]Spécifie la langue des traductions pour les nouveaux fichiers. Si vous ne spécifiez pas de langue, lupdate la détermine à partir du nom du fichier.
-tr-function-alias <function>{+=,=}<alias>[,<function>{+=,=}<alias>]...Avec l’option ` +=`, reconnaît ` <alias> ` comme une variante orthographique de ` <function>`. Avec l’option ` =, `, reconnaît ` <alias> ` comme la seule orthographe de ` <function>`.

Les valeurs disponibles pour « <function> » (avec leurs alias actuellement définis) sont les suivantes :

  • Q_DECLARE_TR_FUNCTIONS (=Q_DECLARE_TR_FUNCTIONS)
  • QT_TR_N_NOOP (=QT_TR_N_NOOP)
  • QT_TRID_N_NOOP (=QT_TRID_N_NOOP)
  • QT_TRANSLATE_N_NOOP (=QT_TRANSLATE_N_NOOP)
  • QT_TRANSLATE_N_NOOP3 (=QT_TRANSLATE_N_NOOP3)
  • QT_TR_NOOP (=QT_TR_NOOP)
  • QT_TRID_NOOP (=QT_TRID_NOOP)
  • QT_TRANSLATE_NOOP (=QT_TRANSLATE_NOOP)
  • QT_TRANSLATE_NOOP3 (=QT_TRANSLATE_NOOP3)
  • QT_TR_NOOP_UTF8 (=QT_TR_NOOP_UTF8)
  • QT_TRANSLATE_NOOP_UTF8 (=QT_TRANSLATE_NOOP_UTF8)
  • QT_TRANSLATE_NOOP3_UTF8 (=QT_TRANSLATE_NOOP3_UTF8)
  • findMessage (=findMessage)
  • qtTrId (=qtTrId)
  • tr (=tr)
  • trUtf8 (=trUtf8)
  • translate (=translate)
  • qsTr (=qsTr)
  • qsTrId (=qsTrId)
  • qsTranslate (=qsTranslate)
-ts <ts-file>...Spécifiez les fichiers de sortie. Cela remplace TRANSLATIONS.
-versionAffiche la version de lupdate puis quitte le programme.

Exemples

Utilisation de lupdate avec CMake

Lors d'une compilation avec CMake, utilisez les commandes CMake pour ajouter des traductions aux cibles dans le fichier CMakeLists.txt, puis compilez les cibles.

Sélectionnez l'une des options suivantes :

Compilez une cible (par exemple, app_lupdate) pour mettre à jour ses fichiers .ts. Pour mettre à jour les fichiers .ts de toutes les cibles, compilez la cible update_translations.

Utilisation de lupdate avec qmake

Pour générer un fichier de traduction pour un seul fichier QML :

lupdate main.qml -ts main_en.ts

Pour créer un fichier de traduction dans une autre langue, par exemple le français, copiez main_en.ts dans main_fr.ts, puis traduisez les chaînes de caractères dans le fichier TS français.

lupdate traite les fichiers QML répertoriés dans le fichier « .qrc » :

RESOURCES += qml.qrc

Pour que tous les fichiers QML soient traités par lupdate:

lupdate application.qrc -ts myapp_en.ts

Pour traiter tous les fichiers QML du répertoire de travail actuel (ou de ses sous-dossiers) sans utiliser de fichier « .qrc » :

lupdate . -extensions qml -ts myapp_en.ts

Pour rechercher les chaînes traduisibles dans les fichiers source QML et C++ :

lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts

Pour générer des fichiers .ts destinés à l’anglais et au français sans spécifier les langues dans le fichier de projet :

lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts myapp_fr.ts

Remettez les fichiers .ts au traducteur, qui utilisera Qt Linguist pour lire les fichiers et y insérer les traductions.

Fichiers au format XLIFF

Le format de fichier TS est un format XML simple et lisible par l'utilisateur que vous pouvez utiliser avec des systèmes de contrôle de version. De plus, lupdate peut traiter les fichiers au format XLIFF (Localization Interchange File Format) (.xlf).

Remarque : seules les versions 1.1 et 1.2 du format XLIFF sont actuellement prises en charge.

Vous pouvez ouvrir et modifier des fichiers XLIFF dans Qt Linguist.

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