QML 视图中语言的动态变化

Posted

技术标签:

【中文标题】QML 视图中语言的动态变化【英文标题】:Dynamic changing of Language in QML view 【发布时间】:2019-05-13 05:39:34 【问题描述】:

在我的项目中,有一个包含四种语言选项的语言页面。如果我们改变它们,整个应用程序语言和一些图像就会改变。我的问题是是否有任何信号/回调来切换资源,就像在 android 中一样,或者我们应该为此 QML 遵循的任何其他机制?

【问题讨论】:

阅读doc.qt.io/qt-5/qtquick-internationalization.html Qt wiki 中有一个教程解释了如何实现这一点:wiki.qt.io/How_to_do_dynamic_translation_in_QML希望这会有所帮助。 【参考方案1】:

要做你需要的,首先要熟悉official documentation on Internationalization and Localization with Qt Quick。

接下来,您需要将所有应该翻译成qsTr 的字符串包装起来。然后,这里是切换语言的简化代码:

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();

根据文章New in Qt 5.10: Dynamic Language Change in QML。

【讨论】:

以上是关于QML 视图中语言的动态变化的主要内容,如果未能解决你的问题,请参考以下文章

具有动态变化视图的幻灯片功能

如何为 QML 创建一个动态的全局主题?

子视图内的 UIScrollview 高度动态变化

为啥集合视图中的动态集合单元格不显示为给定大小并且在 swift 3 中滚动后会发生变化

使视图的高度随图像 Xcode swift 的高度动态变化

IOS Constraints for height(动态高度变化)