新聞中心

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

        Qt 國際化及 Qt Linguist 的使用

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

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

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

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

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

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

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

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

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

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

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



        關(guān)鍵詞:

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 永靖县| 安国市| 浪卡子县| 襄樊市| 泸州市| 钟祥市| 鄄城县| 白河县| 庄河市| 建宁县| 酒泉市| 循化| 铜川市| 高雄市| 秦皇岛市| 台州市| 灯塔市| 寿宁县| 贵港市| 长垣县| 博兴县| 苏州市| 嫩江县| 黎平县| 鄂州市| 大名县| 牟定县| 锦州市| 阿合奇县| 平顶山市| 泰来县| 文昌市| 肃南| 安达市| 上蔡县| 靖远县| 临沂市| 香格里拉县| 两当县| 高陵县| 镇坪县|