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


筆者今天在自己工程中使用翻譯文件,發現沒有起作用,反復查找,發現是用宏定義了命名空間,生成.ts文件時,不會加上命名空間,所以生成的.qm文件在實際使用時,會無法找到對應的語句。

如果將宏定義的命名空間修改為普通字符,則沒有上述問題。

剛才是namespace MyProject{ 是用#define USNS namespace MyProject{定義好宏,直接使用宏的,所以生成文件,不能自己將宏轉換導致

 

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

1,基本使用

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

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

 

2,上面需在窗口創建前,app創建之后調用

 

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

 <name>TTTT::testTranslate</name>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM