Qt的翻譯文件QTranslator不能使用問題總結(原)

筆者今天在本身工程中使用翻譯文件,發現沒有起做用,反覆查找,發現是用宏定義了命名空間,生成.ts文件時,不會加上命名空間,因此生成的.qm文件在實際使用時,會沒法找到對應的語句。app

若是將宏定義的命名空間修改成普通字符,則沒有上述問題。spa

剛纔是namespace MyProject{ 是用#define USNS namespace MyProject{定義好宏,直接使用宏的,因此生成文件,不能本身將宏轉換致使翻譯

 

總結一下翻譯碰到要注意的幾個問題:code

1,基本使用blog

QTextCodec * textCodec = QTextCodec::codecForName("System");
QTextCodec::setCodecForLocale(textCodec);

QTranslator translator;
translator.load(":/testTranslate/testtranslate_zh.qm");
a.installTranslator(&translator);

 

2,上面需在窗口建立前,app建立以後調用class

 

3,若是類是在某命名空間內,生成的.ts文件的name會將命名空間名稱加上,若是沒有加上命名空間,翻譯文件安裝會出異常。以下:test

 <name>TTTT::testTranslate</name>命名空間

相關文章
相關標籤/搜索