我正在尝试使用翻译文件。我完成了所有过程:
创建ts文件,将其翻译,但是当我运行该应用程序时,语言仍然与以前相同。
就像在说明中一样,我以诺基亚为例。
可能是我的问题吗?
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTranslator* translator=new QTranslator(0);
if(QFile::exists("hellotr_la.qm"))
qWarning("failed-no file");
if(! translator->load("hellotr_la.qm"))
qWarning("failed loading"); //the warning appears ****
app.installTranslator(translator);
}
最佳答案
.qm文件在哪里?您的代码正在尝试从当前工作目录加载文件,该目录在运行时可以是任何东西。在对 QTranslator::load
的调用中指定目录路径:
QTranslator* translator = new QTranslator();
if (translator->load("hellotr_la", "/path/to/folder/with/qm/files")) {
app.installTranslator(translator);
}
可以从Qt resources加载翻译,因此将它们捆绑在可执行文件中是一个好主意。然后,您将以如下方式加载它们:
QTranslator* translator = new QTranslator();
if (translator->load("hellotr_la", ":/resources/translations")) {
app.installTranslator(translator);
}