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,它立即开始工作。