Qt 中的消息未被翻译
Message in Qt doesn't get translated
我已经为我的应用程序创建了翻译。我已经安装了 QTranslator
个加载了翻译文件的实例,它似乎可以正常工作,除了一个案例,而且只有那个案例。
有一个class有方法,看起来像这样:
QString MultiEditorNumeric::getTabLabel()
{
return tr("Number");
}
该消息被lupdate
注意到,我翻译了它并用lrelease
发布了,但是在运行时,该方法返回的消息仍然是"Number"
。
我什至修改了方法,因为我不敢相信:
QString MultiEditorNumeric::getTabLabel()
{
QString s = tr("Number");
qDebug() << s;
return s;
}
是的,这是确切的地方,数字没有被翻译。调试消息不会说谎。
我在以 .qm
后缀命名的文件下发布翻译。这个文件被添加到我的项目资源中并被编译成二进制文件。我试过从资源中删除 qm 文件并重新添加它,但没有帮助。
我还能做什么?我可以检查什么?
我的 class 在 class 声明中没有 Q_OBJECT
宏。我没有从 lupdate
注意到它,因为我发送到 运行 lupdate
的脚本正在静音来自 lupdate
的所有消息。我添加了 Q_OBJECT
,它立即开始工作。
我已经为我的应用程序创建了翻译。我已经安装了 QTranslator
个加载了翻译文件的实例,它似乎可以正常工作,除了一个案例,而且只有那个案例。
有一个class有方法,看起来像这样:
QString MultiEditorNumeric::getTabLabel()
{
return tr("Number");
}
该消息被lupdate
注意到,我翻译了它并用lrelease
发布了,但是在运行时,该方法返回的消息仍然是"Number"
。
我什至修改了方法,因为我不敢相信:
QString MultiEditorNumeric::getTabLabel()
{
QString s = tr("Number");
qDebug() << s;
return s;
}
是的,这是确切的地方,数字没有被翻译。调试消息不会说谎。
我在以 .qm
后缀命名的文件下发布翻译。这个文件被添加到我的项目资源中并被编译成二进制文件。我试过从资源中删除 qm 文件并重新添加它,但没有帮助。
我还能做什么?我可以检查什么?
我的 class 在 class 声明中没有 Q_OBJECT
宏。我没有从 lupdate
注意到它,因为我发送到 运行 lupdate
的脚本正在静音来自 lupdate
的所有消息。我添加了 Q_OBJECT
,它立即开始工作。