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