翻译 qml 对话框上的按钮
translate buttons on qml dialogs
我正在使用带有“取消”和“是”按钮的 QML MessageDialog。我的 phone 设置为德语,但未翻译“取消”和“是”按钮。
我正在关注 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 内部字符串的翻译?
如果你想翻译你的应用程序,你应该用它分发 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")
我正在使用带有“取消”和“是”按钮的 QML MessageDialog。我的 phone 设置为德语,但未翻译“取消”和“是”按钮。
我正在关注 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 内部字符串的翻译?
如果你想翻译你的应用程序,你应该用它分发 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")