久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Qt 國際化及 Qt Linguist 的使用

Qt 國際化及 Qt Linguist 的使用

作者: 時間:2016-10-08 來源:網絡 收藏

本文引用地址:http://cqxgywz.com/article/201610/305533.htm
1action->setText(tr(開始));

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

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大神都曾強烈批判過這種寫法,原因有三:

1、如果使用GB2312格式保存這篇代碼,其他人使用UTF-8打開,那么無疑將會看見亂碼。

當時我就出現了這種情況,光哥把代碼給我發(fā)過來以后,我發(fā)現我看到代碼中有亂碼,因為ubuntu 10.10的默認編碼格式是UTF-8,無論我用Qt creator還是gedit打開源代碼,都會看見亂碼。

2、如果將程序發(fā)布到一些非簡體中文的國家或地區(qū),可能出現對方的機器上根本沒有安裝任何中文的編碼格式,那么就會出現對方無論如何都無法正確顯示源代碼甚至無法正確運行程序的情況。

3、Qt提供了強大的多國語言工具Qt Linguist,不用白不用。

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

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

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

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



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉