Qt LanguageChange事件 - 找出新的语言

时间:2015-04-02 09:00:48

标签: c++ qt multilingual qevent

当我changeEvent(QEvent* event)收到接收类型event->type() == QEvent::LanguageChange时,如何获取有关我的应用中新语言的信息?

2 个答案:

答案 0 :(得分:1)

您可以将已翻译的字符串与其已知的翻译进行比较:

void changeEvent(QEvent *event)
{
    if (event->type() == QEvent::LanguageChange) {
        QString translated = QCoreApplication::translate("some context", "Button");
        if (translated == "Button")
            // language is English
        else if (translated == "Кнопка")
            // language is Russian
        ...
    }
}

答案 1 :(得分:0)

Qt没有任何对象代表申请语langugae。所以你应该自己实现它。

changeEvent(QEvent* event)类型QEvent::LanguageChange installTranslator(QTranslator*)通常由{{1}}引起,因此您应该知道加载到翻译器并将其存储在本地的巫婆语。