在QML视图中动态更改语言

时间:2019-05-13 05:39:34

标签: qt qml qt5 qqmlcomponent

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

1 个答案:

答案 0 :(得分:0)

要执行所需的操作,首先要熟悉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条。