本文引用地址:http://butianyuan.cn/article/201610/305533.htm1 | action->setText(tr( 開(kāi)始 )); |
并且在main函數(shù)中還有這種一段代碼:
01 | int main( int argc, char *argv[]) |
03 |
QApplication a(argc, argv); |
05 |
QTextCodec *codec = QTextCodec::codecForName( GB2312 ); |
06 |
QTextCodec::setCodecForLocale(codec); |
07 |
QTextCodec::setCodecForCStrings(codec); |
08 |
QTextCodec::setCodecForTr(codec); |
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、在程序中加載翻譯包。
評(píng)論