我的项目中有一个带有qsTr()函数的qml文件。我也为这个qml创建了一个翻译文件。在主程序中,我创建了一个QDeclarativeView对象来运行qml文件,还创建了一个QTranslator。我发送了一个指向这个Qtranslator的指针,以及一个指向当语言改变时调用的另一个函数的QApplication的指针。在这个函数中,我写道:
QLocale myLocale;
QString locale = myLocale.name();
m_translator->load(pagePrefix +'_'+ locale);//(QLibraryInfo::TranslationsPath));
m_appManager->installTranslator(m_translator);然后我再次加载了qml文件。但这并没有改变翻译(而且区域设置也改变了)。我不知道问题出在哪里……
发布于 2011-06-14 15:44:25
在代码中验证转换器是否已成功加载。
bool loaded = false;
loaded = m_translator->load(pagePrefix +'_'+ locale);
if (!loaded)
qWarning() << QString("can't load %1 translation").arg(locale);有了这个,你可以看到你的文件是正确的lodad还是根本不是。如果不是,请验证.qm文件的路径。如果是,请确保您的.qm内部有正确的转换。
顺便说一句,确保你安装的是你的翻译版本
m_appManager->installTranslator(m_translator);在你创建你的小部件之前(如果我没记错的话,你应该按这个顺序来做)
https://stackoverflow.com/questions/6339799
复制相似问题