筆者今天在本身工程中使用翻譯文件,發現沒有起做用,反覆查找,發現是用宏定義了命名空間,生成.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>命名空間