c++ - 是否可以在运行时更改 Qt 上的语言

标签 c++ qt blackberry-10

在我的应用程序中,我需要国际化。 假设我为不同的语言创建了几个 .ts 文件,例如, 德语、法语等 - 连同翻译后的短语。

现在,假设用户想在运行时更改语言。 使用 Qt 方法是不可能的吗?

最佳答案

Qt 5.10 中引入的函数 QQmlEngine::retranslate 只是重新评估所有属性绑定(bind)。这包括在右侧调用 qsTr() 的所有绑定(bind)。

void Settings::switchToLanguage(const QString &language)
{
    if (!m_translator.isEmpty())
        QCoreApplication::removeTranslator(&m_translator);
    m_translator.load(QStringLiteral(":/language_") + language));
    QCoreApplication::installTranslator(&m_translator));
    m_engine->retranslate();
}

更多详情可以查看this post也是。

关于c++ - 是否可以在运行时更改 Qt 上的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15355156/

相关文章:

c++ - 是否可以从 http header 中找到文件名

blackberry-playbook - 导入 blackberry 10 示例项目时,默认配置中需要错误入口点 Assets ?

c++ - 使用 linux 自动工具

c++ - 适用于 g++ 但不适用于 MSVC++

qt - 如何在Qt中对QList <QVariant>进行排序?

html - 哪一个是资源有效的方法 : CSS3 Stylesheet or Canvas API for a HTML5 app to be ported as Blackberry Webworks

android - 阻止 Apk 直接安装到 BB10.2.1 更新设备中

c++ - 了解复制初始化和隐式转换

c++ - 开发 C++ Web 应用程序的最佳方法是什么?

qt - 如何使用 QWebElement 设置输入值(类型 ="file")?