我有一个应用程序,我想翻译波斯语的UI。为此,我需要在其中加载 qt_fa.qm 和 my_app_fa.qm 。但不幸的是,两个文件都没有正确加载。代码总是按照我的预期运行:
QApplication app(argc, argv);
QTranslator translator;
translator.load("qt_fa"); // returns true
app.installTranslator(&translator);
translator.load("my_app_fa"); // returns true
app.installTranslator(&translator);
.
.
有时 qt_fa 会影响应用程序,并且布局会更改为RTL并显示Qt使用过的单词的翻译,并且不会显示我自己的翻译。
有时 my_app_fa 会影响应用,只显示我自己的翻译。
对原因有任何疑问吗? 感谢
答案 0 :(得分:3)
根据Qt Documentation和示例代码段,您应该从 QTranslator
创建两个对象int main()
{
QApplication app(argc, argv);
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(),
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
QTranslator myappTranslator;
myappTranslator.load("myapp_" + QLocale::system().name());
app.installTranslator(&myappTranslator);
...
return app.exec();
}