我可以加载多个QTranslator文件吗,每个文件用于应用程序的不同部分



我可以安装翻译器作为myApp.installTranslator(&translator)

是否可以有多个翻译文件并从应用程序的不同部分加载它们?我该怎么做?

是的,你可以。正如医生所说:

将翻译文件添加到翻译列表中 用于翻译的文件。

可以安装多个翻译文件。搜索翻译 对于它们的安装顺序相反,所以最 首先搜索最近安装的翻译文件,第一个搜索 最后搜索安装的翻译文件。搜索立即停止 因为找到包含匹配字符串的翻译。

安装或删除 QTranslator,或更改已安装的 QTranslator为QCoreApplication生成一个LanguageChange事件 实例。QApplication实例会将事件传播到所有 顶级窗口,可以在其中重新实现更改事件 通过通过以下方式传递用户可见的字符串来重新翻译用户界面 tr(( 函数到相应的属性资源库。用户界面 Qt Designer生成的类提供了一个retranslateUi((函数 可以调用。

该函数在成功时返回 true,在失败时返回 false。

您需要加载一些翻译文件,qApp宏以获取函数之外QApplication main()实例并执行以下操作:

QTranslator translator;//somewhere
void MainWindow::on_someButton_clicked()
{
    translator.load("://en.qm");
    qApp->installTranslator( &translator );
    ui->retranslateUi(this);               //for Qt designer
}

您也可以通过以下方式删除翻译器:

void MainWindow::on_someButton_2_clicked()
{
    qApp->removeTranslator(&translator);
    ui->retranslateUi(this);
}

国际化是一个重要的部分,所以我也可以建议下一个链接:

Qt的国际化

编写翻译源代码

和书籍:

Qt开发的基础(开源专家的声音(第10章

C++ 使用 Qt 4 进行 GUI 编程(第 2 版((Prentice Hall 开源软件开发系列(第 18 章

Qt4.8. 专业程序mirovanie na C++ (俄语( 第31章 (俄语使用者(

相关内容

  • 没有找到相关文章

最新更新