2011-01-11 44 views
1

在一個應用程序中,我有很多顯然不是QObject後代的類,而且這些對象顯然會拋出異常,而這些異常顯然需要翻譯。所以,我把QT_TR_NOOP宏中拋出的每個字符串都包含在異常中。這使我能夠生成翻譯文件。但是當我運行我的程序時,字符串仍然沒有被翻譯。如果我嘗試通過QApplication :: translate(「MyClassName」,「Text in english」)獲取它們,我可以獲得很好的字符串,但是QT_TR_NOOP(「Text in english」)只返回英文文本。是否有任何額外的步驟可以讓它正常工作?QT_TR_NOOP:生成翻譯文件,但翻譯的字符串從不使用,爲什麼?

此外,一個小問題:如果我在不是任何類的成員的函數中使用QT_TR_NOOP,會發生什麼? Qt是否默默無視這種情況?

回答

3

QT_TR_NOOP僅將文本標記爲可能需要翻譯的內容(以便在Qt Linguist中顯示),但不會進行任何翻譯。爲此你需要使用tr()。

+0

,我必須兩次嵌入翻譯文本一旦QT_TR_NOOP,又在TR()是否有更簡單解? – Septagram 2011-01-11 06:58:25