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

时间:2014-12-23 11:36:48

标签: qt qtranslate

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

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

1 个答案:

答案 0 :(得分:6)

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

  

将翻译文件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
}

您也可以删除翻译器:

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

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

Internationalization with Qt

Writing Source Code for Translation

书籍:

Foundations of Qt Development (Expert's Voice in Open Source) 第10章

C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) 第18章

Qt4.8. Professionalnoe programmirovanie na C++ (Russian) 第31章(对于讲俄语的人)