我可以安装翻译器作为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章 (俄语使用者(