lupdate verwenden

Das Befehlszeilentool lupdate findet übersetzbare Zeichenfolgen in C++-Quelltexten, C++-Headern, Java-, Python-, QML- und UI-Dateien und erzeugt oder aktualisiert TS-Dateien.

Wenn Sie mit qmake bauen, geben Sie die zu verarbeitenden Dateien an der Kommandozeile oder in einer .pro-Datei an.

Bei der Erstellung mit CMake verwenden Sie CMake-Befehle, um Ziele hinzuzufügen, die TS-Dateien erstellen oder aktualisieren und sie in QM-Dateien umwandeln. Das Werkzeug lupdate wird mit den Optionen ausgeführt, die Sie den Befehlen übergeben, wenn Sie das Ziel erstellen.

Weitere Informationen zur Angabe von Übersetzungen in Projektdateien finden Sie unter Lokalisierung von Anwendungen.

lupdate-Syntax

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

Wo:

  • options eine oder mehrere Lupdate-Optionen bedeutet.
  • project-file ist die Projektkonfigurationsdatei.
  • source-file ist eine Datei, die übersetzbare Zeichenketten enthält.
  • path ist der Pfad zu einem Ordner, der Übersetzungsquelldateien enthält.
  • @lst-file liest zusätzliche Dateinamen (einen pro Zeile) oder Includepfade (einen pro Zeile und mit -I vorangestellt) aus lst-file.
  • ts-files sind die zu erzeugenden oder zu aktualisierenden TS-Dateien.

Um die neueste Hilfe zu sehen, geben Sie ein:

lupdate -help

lupdate Optionen

OptionAktion
-helpAktuelle Hilfeinformationen anzeigen und beenden.
-no-obsoleteAlle veralteten und verschwundenen Zeichenketten löschen.
-extensions <ext>[,<ext>]...Verarbeitet nur Dateien mit den angegebenen Erweiterungen. Verwenden Sie Kommas, um Erweiterungen in der Liste zu trennen. Verwenden Sie keine Leerzeichen. Der Standardwert ist: java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml,qrc.
-pluralonlyGeben Sie nur Meldungen in der Pluralform an.
-silentErläutern Sie nicht, was getan wird.
-no-sortSortieren Sie keine Kontexte in TS-Dateien.
-no-recursiveVerzeichnisse nicht rekursiv durchsuchen.
-recursiveVerzeichnisse rekursiv durchsuchen (Voreinstellung).
-I <includepath> or -I<includepath>Suchen Sie nach Include-Dateien an diesem zusätzlichen Ort. Sie können mehrere Pfade angeben.
-locations {absolute|relative|none}Spezifizieren oder überschreiben Sie die Art und Weise, wie Quellcode-Referenzen in TS-Dateien gespeichert werden sollen.
  • absolute bedeutet, dass der Quelldateipfad relativ zur Zieldatei ist, aber die Zeilennummer absolut ist.
  • relative bedeutet, dass der Quelldateipfad relativ zur Zieldatei ist. Die Zeilennummer ist relativ zu anderen Einträgen in derselben Quelldatei.
  • none speichert keine Informationen über den Ort der Quelle.

Wenn Sie den Ort nicht angeben, ermittelt lupdate ihn aus vorhandenen TS-Dateien. Der Standardwert für neue Dateien ist absolute.

-no-ui-linesZeichnen Sie keine Zeilennummern in Verweisen auf UI-Dateien auf.
-disable-heuristic {sametext|similartext}Deaktiviert die benannte Zusammenführungsheuristik. Kann mehrfach angegeben werden.
-project <filename>Name einer Datei, die die Beschreibung des Projekts im JSON-Format enthält. Sie können das Tool lprodump verwenden, um die Datei aus einer .pro-Datei zu erzeugen.
-pro <filename>Name einer .pro-Datei. Nützlich für Dateien mit der Dateisyntax .pro, aber einer anderen Dateiendung. Projekte werden rekursiert und zusammengeführt. Diese Option ist veraltet. Verwenden Sie stattdessen das Werkzeug lupdate-pro.
-pro-out <directory>Virtuelles Ausgabeverzeichnis für die Verarbeitung nachfolgender .pro-Dateien.
-pro-debugTrace-Verarbeitung von .pro-Dateien. Geben Sie zweimal an, um die Ausführlichkeit zu erhöhen.
-source-language <language>[_<region>]Geben Sie die Sprache der Quellzeichenketten für neue Dateien an. Standardeinstellung ist POSIX, wenn nicht angegeben.
-target-language <language>[_<region>]Geben Sie die Sprache der Übersetzungen für neue Dateien an. Wenn Sie die Sprache nicht angeben, ermittelt lupdate sie aus dem Dateinamen.
-tr-function-alias <function>{+=,=}<alias>[,<function>{+=,=}<alias>]...Mit += erkennen Sie <alias> als alternative Schreibweise von <function>. Mit =, erkennen Sie <alias> als einzige Schreibweise von <function>.

Verfügbare <function> -Werte (mit ihren aktuell definierten Aliasen) sind:

  • 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>...Geben Sie die Ausgabedateien an. Dies hat Vorrang vor TRANSLATIONS.
-versionZeigt die Version von lupdate an und beendet das Programm.
-clang-parser [compilation-database-dir]Verwenden Sie Clang zum Parsen von .cpp-Dateien. Andernfalls verwenden Sie einen eigenen Parser. Diese Option benötigt eine Clang-Kompilierungsdatenbank (compile_commands.json) für die zu parsenden Dateien. Geben Sie den Pfad zu dem Verzeichnis, das diese Datei enthält, auf der Befehlszeile, direkt nach der Option -clang-parser oder in der Projektdatei an.

Wenn Sie qmake verwenden, setzen Sie die Variable LUPDATE_COMPILE_COMMANDS_PATH in der .pro-Datei.

Ein in der Befehlszeile angegebenes Verzeichnis hat Vorrang. Wenn Sie keinen Pfad angeben, sucht lupdate in allen übergeordneten Pfaden der ersten Eingabedatei nach der Kompilierdatenbank.

-project-roots <directory>...Geben Sie ein oder mehrere Projektstammverzeichnisse an. Bei Verwendung der Option -clang-parser werden nur Dateien unterhalb eines Projektstamms für die Übersetzung berücksichtigt.

Beispiele

Verwendung von lupdate mit CMake

Wenn Sie mit CMake bauen, verwenden Sie CMake-Befehle, um der Datei CMakeLists.txt Übersetzungen für Ziele hinzuzufügen, und bauen Sie dann die Ziele.

Wählen Sie eine der folgenden Optionen:

Erstellen Sie ein Ziel (z. B. app_lupdate), um die .ts-Dateien für dieses Ziel zu aktualisieren. Um die .ts-Dateien für alle Targets zu aktualisieren, erstellen Sie das Target update_translations.

Verwendung von lupdate mit qmake

Um eine Übersetzungsdatei für eine einzelne QML-Datei zu erzeugen:

lupdate main.qml -ts main_en.ts

Um eine Übersetzungsdatei für eine andere Sprache, zum Beispiel Französisch, zu erstellen, kopieren Sie main_en.ts nach main_fr.ts und übersetzen Sie die Strings in der französischen TS-Datei.

lupdate verarbeitet QML-Dateien, die in der Datei .qrc aufgeführt sind:

RESOURCES += qml.qrc

Um alle QML-Dateien von lupdate verarbeiten zu lassen:

lupdate application.qrc -ts myapp_en.ts

Um alle QML-Dateien im aktuellen Arbeitsverzeichnis (oder seinen Unterordnern) zu verarbeiten, ohne eine .qrc Datei zu verwenden:

lupdate . -extensions qml -ts myapp_en.ts

Prüfung auf übersetzbare Zeichenfolgen in QML- und C++-Quelldateien:

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

Um .ts-Dateien zu erzeugen, die für Englisch und Französisch verwendet werden, ohne die Sprachen in der Projektdatei anzugeben:

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

Geben Sie die TS-Dateien an den Übersetzer weiter, der Qt Linguist verwendet, um die Dateien zu lesen und die Übersetzungen einzufügen.

Dateien im XLIFF-Format

Das TS-Dateiformat ist ein einfaches, von Menschen lesbares XML-Format, das Sie mit Versionskontrollsystemen verwenden können. Darüber hinaus kann lupdate auch XLIFF-Dateien (Localization Interchange File Format) verarbeiten (.xlf).

Hinweis: Derzeit werden nur die XLIFF-Versionen 1.1 und 1.2 unterstützt.

Sie können XLIFF-Dateien in Qt Linguist öffnen und bearbeiten.

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