Qt Quick I18N

Generierung von Übersetzungsdateien (TS und QM) für eine Qt Quick Anwendung.

Wenn Sie die Beispielanwendung ausführen, lädt die QML Runtime automatisch eine Übersetzung aus dem Unterverzeichnis i18n des Verzeichnisses, das die Haupt-.qml-Datei enthält, basierend auf der Systemsprache.

Text als übersetzbar markieren

Verwenden Sie in der Datei Main.qml den Befehl qsTr, um UI-Text als übersetzbar zu markieren:

        Text {
            text: qsTr("Hello")

Aktivieren der Übersetzung

Verwenden Sie in der Datei main.cpp den Befehl QQmlApplicationEngine, um automatisch Übersetzungsdateien aus einem Unterverzeichnis namens i18n in das Verzeichnis zu laden, das die Haupt-QML-Datei enthält:

#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;

Die Namen der Übersetzungsdateien im Unterverzeichnis i18n müssen das Präfix qml_ haben. Zum Beispiel: qml_en_AU.ts.

Erstellen von Übersetzungsdateien

Fügen Sie das Modul LinguistTools als Wert des Befehls find_package in die Datei CMakeLists.txt ein:

find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick Qml LinguistTools)

Definieren Sie die zu erzeugenden Übersetzungsdateien mit dem Befehl qt_add_translations:

qt_add_translations(qmli18n
    RESOURCE_PREFIX /qt/qml/Translated/i18n
    TS_FILE_BASE qml
    TS_FILE_DIR i18n
)

Erstellen Sie die Anwendung, um TS- und QM-Dateien zu erzeugen.

Hinweis: Stellen Sie unter Android sicher, dass Sie die QM-Dateien als Ressourcen einbinden.

Hinzufügen von Übersetzungen

Um Übersetzungen für neue Sprachen zu erstellen, kopieren Sie i18n/base.ts nach i18n/qml_<lang>.ts. Sie können Qt Linguist verwenden, um die Zeichenketten zu übersetzen.

Beispielprojekt @ code.qt.io

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