Qt grundlegende Methode zum Laden von Übersetzungsdateien

Ich benutze Qt 4.8.3.

 Die Übersetzung von Qt ist in drei Schritte unterteilt:

        1. Führen Sie lupdate aus oder schließen Sie den Vorgang ab, indem Sie das folgende Bild auswählen (wählen Sie Qt language home und schließen Sie dann die Update-Übersetzung ab), extrahieren Sie alle mit tr () gekennzeichneten Zeichenfolgen aus der Anwendung und generieren Sie eine Datei mit dem Suffix * .ts

        2. Verwenden Sie Qt Linguist, um diese * .ts zu übersetzen . Verwenden Sie es dann, um * .qm zu generieren .

        3. Verwenden Sie die QTranslator-Klasse, um * .qm- Dateien in die Anwendung zu laden .

        Fügen Sie diesen Satz zur Anwendungsprojektdatei * .pro hinzu, um mit lupdate eine Datei mit dem Suffix * .ts zu generieren :

TRANSLATIONS = Demo_zh_CN.ts

        Der Dateiname kann selbst festgelegt werden. Führen Sie dann lupdate -verbose project name.pro in der Befehlszeile aus. Nachdem das Programm ausgeführt wurde, wird eine * .ts-Datei generiert.

Öffnen Sie die * .ts-Datei         mit Qt Linguis . Wie gezeigt:

Auf dem Bild sehen Sie die Spalte Kontext, die nach der Klasse in Ihrem Programm aufgelistet ist. Dann ist die Spalte Strings daneben der zu übersetzende Satz. Achten Sie beim Übersetzen auf die Spalte Quellen und Formulare, und die Spalte mit den Warnungen reicht aus. Die Quelle des zu übersetzenden Satzes ist in der vorherigen Spalte und die Warnmeldung in der letzten Spalte zu sehen. Die Warnmeldung ist weiterhin nützlich. Klicken Sie nach der Übersetzung jedes Satzes auf das grüne Häkchen in der Symbolleiste, um die Übersetzung abzuschließen, und fahren Sie mit dem nächsten Satz fort. Im exakten Satz wird ein grünes Häkchen angezeigt, und ein gelbes Häkchen wird angezeigt, wenn eine Warnmeldung angezeigt wird, oder ein Fragezeichen, wenn keine Übersetzung vorhanden ist.

        Hinweis: 1. Ich habe einige Stellen gefunden, ich sollte "\ n" entsprechend dem Originalformat hinzufügen. Nach der Übersetzung wird jedoch im chinesischen Satz anstelle von Wagenrücklauf und Zeilenvorschub auch "\ n" angezeigt. 2. Bei Anweisungen wie "& Load" können wir sie wie bei anderer Software in "& L" übersetzen, sodass keine Warnung vor fehlenden Tastenkombinationen angezeigt wird. 3. Das Format des übersetzten Satzes muss mit dem Format des ursprünglichen Satzes übereinstimmen, insbesondere mit der Interpunktion. Ich habe festgestellt, dass ich zum Beispiel die englische Periode "." Verwendet habe, und dann habe ich sie in die chinesische Periode geändert. "" Es gibt keine Warnung. Wenn jedoch das Original "!" Auf Englisch in "!" Übersetzt wird, wird weiterhin eine Warnmeldung angezeigt. Seltsam ~

        Klicken Sie nach der Übersetzung auf Datei-> Freigeben, um eine * .qm-Datei zu generieren. Verwenden Sie die folgende Anweisung, um in main.cpp zu laden:

        QTranslatorqtTranslator;

        qtTranslator.load ("orbitEditor_zh_CN.qm", ": /");
        a.installTranslator (& qtTranslator); Denken Sie
        natürlich daran, * .qm zur Ressourcendatei * .qrc hinzuzufügen. Ändern Sie den obigen Ladesatz entsprechend den verschiedenen Pfaden.

        Nach dieser Übersetzung können zwei Probleme auftreten:

        1. Anweisungen in den internen Klassen von Qt wie QMessageBox, QDialog usw. werden nicht ins Chinesische übersetzt. Laden Sie für dieses Problem einfach eine andere Übersetzungsdatei. Qt ist bereit für uns im Installationsverzeichnis \ translations. Ich habe die Datei qt_zh_CN.ts verwendet , Qt hat sie für uns übersetzt. Exportieren Sie sie einfach als * .qm-Datei und laden Sie sie.

        2. Nach der Übersetzung ins Chinesische ist der chinesische Text sehr klein und Sie müssen hart arbeiten, um klar zu sehen. . . Die einfachste Methode besteht darin, die globale Textgröße festzulegen.

        Die endgültige Ladeanweisung in main.cpp lautet also:

     QApplicationa(argc,argv);
    //加载中文翻译
    //加载本软件的翻译
    QTranslator qtTranslator;
    qtTranslator.load("orbitEditor_zh_CN.qm",":/");
    a.installTranslator(&qtTranslator);
    //加载Qt其他类,比如QDialog的翻译
    QTranslator qtGloble;
    qtGloble.load("qt_zh_CN.qm",":/");
    a.installTranslator(&qtGloble);
    //设置全局文字大小
    QFont font  = a.font();
    font.setPointSize(12);
    a.setFont(font);

Teil meines Codes:

    #include <QTranslator>
   
    QTranslator trlQt, trlApp;
    const QString& strLocaleName = QLocale::system().name();
    const QString& strQtTrlPath = QLatin1String(":/translations");
    const QString& strQtTrlFile = QLatin1String("qt_") + strLocaleName;

    const QString& strAppTrlPath = QLatin1String(":/translations");
    const QString& strAppTrlFile = QLatin1String("Demo_") + strLocaleName;

    if (trlQt.load(strQtTrlFile, strQtTrlPath)) {
        a.installTranslator(&trlQt);
    }

    if (trlApp.load(strAppTrlFile, strAppTrlPath)) {
        a.installTranslator(&trlApp);
    }

Ausgeliehen von: https://blog.csdn.net/yangxiao_0203/article/details/7488967

Veröffentlicht 27 Originalartikel · 25 Lobpreisungen · 120.000 Aufrufe

Ich denke du magst

Origin blog.csdn.net/weixin_38293850/article/details/89680575
Empfohlen
Rangfolge