小编Cod*_*tor的帖子

如何动态翻译qt应用程序?

我有一个用英语和阿拉伯语两种语言编写的程序,位于名为 app_en 和 app_ar 的文件中。我可以使用 QApplication 中的 installTranslator 在 main 的开头翻译程序。我的问题是如何通过推动 QAction 来更改程序的语言?

这是我的尝试:

我将我的语言 QAction 连接到一个插槽,该插槽获取用户选择的语言,然后保存它并转到另一个功能来安装翻译。这一切都发生在 QMainWindow 之外。

void MainCore::GetAndSaveLanguage(bool){
    //Getting the language the users wants.
    bool OKPressed;
    QString Language = QInputDialog::getItem(NULL, InputDialogString, InputDialogString + ":", Languages, 0, false, &OKPressed)
                        .remove(QRegExp("*(", Qt::CaseSensitive, QRegExp::Wildcard)).remove(')');

    //Checking if ok button was pressed.
    if(OKPressed){
        //Saving the languages.
        Settings->beginGroup("Settings");
        Settings->setValue("Language", Language);
        Settings->endGroup();

        //Update language.
        UpdateTranslations(Language);
     }
}

void MainCore::UpdateTranslations(QString Language){
    //Setting the translation for the qt widgets.
    QTranslator QtTranslator;
    QtTranslator.load("qt_" + Language, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
    QApplication::instance()->installTranslator(&QtTranslator); …
Run Code Online (Sandbox Code Playgroud)

c++ qt translation qt5

5
推荐指数
1
解决办法
2269
查看次数

标签 统计

c++ ×1

qt ×1

qt5 ×1

translation ×1