1

我有一个 .h 文件,其中定义了一些全局常量。例如产品名称定义如下:

#define PRODUCT_NAME QString(QT_TRANSLATE_NOOP("QObject", "MyProductName"))

字符串MyProductName出现在 *.qs 中,我也翻译了它。当我想使用该变量时,我测试了以下两种方法,但没有一个返回该翻译并且始终显示原始文本。

// style 1
setWindowTitle(QObject::tr(PRODUCT_NAME));

// style 2
setWindowTitle(QApplication::translate("QObject", PRODUCT_NAME));

任何想法都值得赞赏。

4

1 回答 1

0

利用:

#define PRODUCT_NAME QT_TRANSLATE_NOOP("QObject", "MyProductName")
// style 1
setWindowTitle(QObject::tr(PRODUCT_NAME));

QString tr(const char*)将返回一个 QString。

更改代码后重新运行 lupdate 并在 ts 文件中应用翻译,发布到 qm 并将其包含在您的应用程序中。

于 2013-10-08T11:00:19.203 回答