QLocale systemLocale;
LOG_ERROR() << "SYSTEM LANGUAGE:" << systemLocale.languageToString(systemLocale.language());
LOG_ERROR() << QObject::tr("Welcome");
第二行打印正确的语言,当我从手机设置中更改语言时,&#34;欢迎&#34;没有翻译成当前的系统语言。这可能是什么问题?
答案 0 :(得分:0)
可能未加载翻译。以下是加载文件的方法:
QTranslator translator;
QString locale_string = QLocale().name();
QString filename = QString("my_app_%1").arg(locale_string);
if (translator.load(filename, "app/native/qm")) {
app.installTranslator(&translator);
}
例如,这会尝试在法语设备上加载app/native/qm/my_app_fr.qm
的翻译。
请注意,默认情况下,您必须在更改设备语言后重新启动应用程序。当手机语言发生变化时,您可以使用LocaleHandler
更新翻译。收听onSystemLanguageChanged()
信号,删除旧的翻译器,然后加载新的翻译器(与上面相同的代码)。