新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Qt 國(guó)際化及 Qt Linguist 的使用

Qt 國(guó)際化及 Qt Linguist 的使用

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/201610/305533.htm
1action->setText(tr(開(kāi)始));

并且在main函數(shù)中還有這種一段代碼:

01intmain(intargc,char*argv[])
02{
03QApplication a(argc, argv);
04
05QTextCodec *codec = QTextCodec::codecForName(GB2312);
06QTextCodec::setCodecForLocale(codec);
07QTextCodec::setCodecForCStrings(codec);
08QTextCodec::setCodecForTr(codec);
09
10MainWindow w;
11w.show();
12returna.exec();
13}

devbean大神和dbzhang800大神都曾強(qiáng)烈批判過(guò)這種寫(xiě)法,原因有三:

1、如果使用GB2312格式保存這篇代碼,其他人使用UTF-8打開(kāi),那么無(wú)疑將會(huì)看見(jiàn)亂碼。

當(dāng)時(shí)我就出現(xiàn)了這種情況,光哥把代碼給我發(fā)過(guò)來(lái)以后,我發(fā)現(xiàn)我看到代碼中有亂碼,因?yàn)閡buntu 10.10的默認(rèn)編碼格式是UTF-8,無(wú)論我用Qt creator還是gedit打開(kāi)源代碼,都會(huì)看見(jiàn)亂碼。

2、如果將程序發(fā)布到一些非簡(jiǎn)體中文的國(guó)家或地區(qū),可能出現(xiàn)對(duì)方的機(jī)器上根本沒(méi)有安裝任何中文的編碼格式,那么就會(huì)出現(xiàn)對(duì)方無(wú)論如何都無(wú)法正確顯示源代碼甚至無(wú)法正確運(yùn)行程序的情況。

3、Qt提供了強(qiáng)大的多國(guó)語(yǔ)言工具Qt Linguist,不用白不用。

devbean大神和dbzhang800大神的建議做法是:

1、在代碼中所有需要使用中文的地方都用一段英文暫時(shí)代替,并用tr()函數(shù)做標(biāo)記。

2、使用Qt Linguist對(duì)所有被tr()函數(shù)標(biāo)記的字符串進(jìn)行翻譯,并發(fā)布翻譯包。

3、在程序中加載翻譯包。



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉