我需要用法语翻译我的英文 UI,所以我使用 .ts 和 .qm 文件完成了所有必要的工作,将其加载到 QTranslator 类中,并将其安装到 QApplication:
//in the InterfaceWidget constructor:
QTranslator myappTranslator;
bool loaded = myappTranslator.load("myApp_" + QLocale::system().name());
qDebug() << "Is translation file loaded?" << loaded; // RETURNS TRUE
QApplication::installTranslator(&myappTranslator);
ui.setupUi(this);
ui.retranslateUi(this); //works, it translates the UI
稍后,我创建并附加到 InterfaceWidget 另一个名为 ConfigurationTabUI 的小部件(在选项卡中):
m_ConfigurationTabUI = new ConfigurationTabUI(ui.configTab);
相应的 UI 也正确翻译为法语。
这是我的问题:在 ConfigurationTabUI 的方法中,当我尝试翻译一个简单的 QString 时它不起作用:
void ConfigurationTabUI::on_ValidButton_clicked(){
QString msg(ConfigurationTabUI::tr("message to translate"));
qDebug() << "translated string: " << msg; // NOT TRANSLATED
}
我真的不知道为什么...感谢您的帮助。
注意:我使用 Qt5.2 并仔细检查了 .ts 文件是否包含正确的翻译字符串。