簡體   English   中英

qml對話框上的翻譯按鈕

[英]translate buttons on qml dialogs

我正在使用帶有“取消”和“是”按鈕的QML MessageDialog 我的手機設置為德語,但是“取消”和“是”按鈕未翻譯。

我在這里關注qt文檔並將其添加到我的主要文檔中:

QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(),
        QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);

這是行不通的。 這段代碼:

qDebug() << QLibraryInfo::location(QLibraryInfo::TranslationsPath);
qDebug() << qtTranslator.isEmpty();

告訴我:

  1. 翻譯路徑為: /work/build/______________________________PADDING______________________________/translations

  2. qtTranslator對象為空。

我還為自己的字符串加載了一個翻譯器,並且可以正常工作。

所以我可以在Android上正確初始化Qt內部字符串的翻譯嗎?

如果要翻譯應用程序,則應使用它來分發qt翻譯文件。 對於android簡單將翻譯文件復制到assets文件夾。 然后為qtTranslator設置此路徑。

您可以使用qmake做到這一點。 只需將其放入您的.pro文件即可:

android {
    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
    TRDESTDIR = $$system_path($$PWD/android/assets/translations)
    QMAKE_POST_LINK = $$QMAKE_COPY $$shell_path($$[QT_INSTALL_TRANSLATIONS]/qt*_ru.qm) $$TRDESTDIR
}

當然,如果不同,則應將ANDROID_PACKAGE_SOURCE_DIRTRDESTDIR更改為您的實際位置。 另外,您應該將qt*_ru.qm更改為您的語言。

然后,您可以像這樣加載翻譯:

qtTranslator.load("qt_ru","assets:/translations")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM