在Windows7下使用Qt creator開發(fā)程序,想直接在源代碼中使用中文字符串常量,源碼是utf8的,保持utf8是便于遷移到linux,VC編譯器總是報錯,串中有換行符,怪異的是如果恰好串只有兩個中文字符時,一切都是那么美好,多了,VC編譯器就會讓你痛苦了。
經(jīng)過一番google,我總結(jié)了解決問題的原則:
絕對不要在源碼中使用中文字符串常量。
那要顯示的中文怎么做?用Qt Linguist.
下面是方法:
第一步:打開.pro文件,在最后面加入一行
TRANSLATIONS = cn.ts
可以自由命名右邊的.ts文件
第二步:選擇菜單:工具/外部/Qt翻譯家/更新翻譯(lupdate)
此時,系統(tǒng)將在.pro文件所在目錄生成cn.ts文件
第三步:打開cn.ts文件,注意是用菜單:打開文件,用...。這種方式,在對話框中選擇
Qt Linguist
第四步:在Qt Linguist中,漢化找到的源代碼中的字符串常量。
第五步:完成漢化后,保存并選擇【發(fā)布】。系統(tǒng)會在cn.ts文件所在目錄生成cn.qm文件。
第六步:把漢文件文件添加到,項目資源中。打開.qrc文件,添加cn.qm文件
/tr
cn.qm
第七步:使用漢化結(jié)果. 在主窗口顯示前,應(yīng)用實例創(chuàng)建后安裝翻譯器。
QApplication a(argc, argv);
QTranslator translator;
translator.load(":tr/cn.qm");
a.installTranslator(&translator);
經(jīng)驗:有些時候明明已經(jīng)翻譯了,程序還是不生效,此時你可以選擇【清理項目】后再次構(gòu)建,試一下。