[英]translate buttons on qml dialogs
我正在使用帶有“取消”和“是”按鈕的QML MessageDialog 。 我的手機設置為德語,但是“取消”和“是”按鈕未翻譯。
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(),
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
這是行不通的。 這段代碼:
qDebug() << QLibraryInfo::location(QLibraryInfo::TranslationsPath);
qDebug() << qtTranslator.isEmpty();
告訴我:
翻譯路徑為: /work/build/______________________________PADDING______________________________/translations
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_DIR
和TRDESTDIR
更改為您的實際位置。 另外,您應該將qt*_ru.qm
更改為您的語言。
然后,您可以像這樣加載翻譯:
qtTranslator.load("qt_ru","assets:/translations")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.