【问题标题】:QObject::tr() not translating language properlyQObject::tr() 没有正确翻译语言
【发布时间】:2014-08-19 20:48:18
【问题描述】:
QLocale systemLocale;
LOG_ERROR() << "SYSTEM LANGUAGE:" << systemLocale.languageToString(systemLocale.language());
LOG_ERROR() << QObject::tr("Welcome");

第二行打印正确的语言,当我从手机设置更改语言时,“欢迎”没有翻译成当前的系统语言。这可能是什么问题?

【问题讨论】:

  • 你翻译了这个字符串吗?您是否将翻译正确地集成到构建中?
  • 请看这篇帖子link
  • 我们可以检查一下我们当前使用的是哪个翻译文件吗?

标签: qt blackberry-10 blackberry-cascades


【解决方案1】:

翻译可能没有加载。加载文件的方法如下:

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() 信号,移除旧翻译器,然后加载新翻译器(代码同上)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 2016-10-27
    相关资源
    最近更新 更多