我正在使用带有取消和是按钮的QML MessageDialog。我的手机设置为德语,但“取消”和“是”按钮未翻译。
我正在关注qt文档here并将其添加到我的主文件中:
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内部蜇的翻译?
答案 0 :(得分:1)
如果您想翻译您的应用程序,您应该使用它来分发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")