QT_TR_NOOP:生成了翻译文件,但是从未使用过翻译的字符串,为什么?

Sep*_*ram 1 c++ qt translation localization

在一个应用程序中,我有很多类显然不是QObject的后代,并且这些对象显然抛出了异常,并且这些异常显然需要进行翻译。因此,我将抛出异常的每个字符串封装在QT_TR_NOOP宏中。这使我可以生成翻译文件。但是,当我运行程序时,字符串仍未翻译。如果我尝试通过QApplication :: translate(“ MyClassName”,“英语文本”)获取它们,则可以很好地获取字符串,但是QT_TR_NOOP(“英语文本”)仅返回英语文本。我应该采取其他措施使其正常工作吗?

另外,还有一个小问题:如果我在不属于任何类成员的函数中使用QT_TR_NOOP,会发生什么?Qt是否只是默默地忽略了这种情况?

Sep*_*ram 5

看来我把整个事情弄错了:(

QT_TR_NOOP用于标记字符串以供外部函数翻译;它应该返回原始文本。我需要的是将翻译应用于非qt类,在此处进行了详细说明:

Qt的国际化:翻译非Qt类

很抱歉打扰。