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 视图中语言的动态变化的主要内容,如果未能解决你的问题,请参考以下文章