我可以安装翻译器 myApp.installTranslator(&translator)
是否可以拥有多个翻译文件并从我的应用程序的不同部分加载它们?我该怎么做?
是的你可以.正如医生所说:
将翻译文件translationFile添加到要用于翻译的翻译文件列表中.
可以安装多个翻译文件.按照安装它们的相反顺序搜索翻译,因此首先搜索最近安装的翻译文件,最后搜索安装的第一个翻译文件.只要找到包含匹配字符串的翻译,搜索就会停止.
安装或删除QTranslator或更改已安装的QTranslator会为QCoreApplication实例生成LanguageChange事件.QApplication实例会将事件传播到所有顶层窗口,其中changeEvent的重新实现可以通过将用户可见字符串通过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
}
Run Code Online (Sandbox Code Playgroud)
您也可以删除翻译:
void MainWindow::on_someButton_2_clicked()
{
qApp->removeTranslator(&translator);
ui->retranslateUi(this);
}
Run Code Online (Sandbox Code Playgroud)
国际化是一个很大的部分,所以我可以建议下一个链接:
和书籍:
Qt开发的基础(专家在开源中的声音) 第10章
使用Qt 4(第2版)进行C++ GUI编程(Prentice Hall开源软件开发系列) 第18章
Qt4.8.Professionalnoe programmirovanie na C++(俄语) 第31章(俄语)
| 归档时间: |
|
| 查看次数: |
1686 次 |
| 最近记录: |