2013-10-08 27 views
1

我有一個.h文件,在那裏定義了一些全局常量。例如被定義產品的名稱,如:裝有QT_TRANSLATE_NOOP的字符串總是翻譯成原始字符串

#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)); 

任何想法是讚賞。

回答

0

用途:

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

QString tr(const char*)將返回的QString。

更改代碼並在ts文件中應用翻譯後重新運行lupdate,釋放到qm並將其包含在您的應用程序中。