色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          Qt 國際化及 Qt Linguist 的使用

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

          本文引用地址:http://cafeforensic.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ù)做標(biāo)記。

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

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



          關(guān)鍵詞:

          評論


          相關(guān)推薦

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

          關(guān)閉