qt程序中文國際化
出處:zbiao_21ic 發(fā)布于:2009-08-28 17:00:25
作者:曹忠明, 華清遠見嵌入式學(xué)院講師。
中文國際化是在QT程序設(shè)計中很重要的一個環(huán)節(jié),這里用一個簡單的例子介紹中文國際化得過程。
在這里我們還是寫一個經(jīng)典的helloworld的例子。
zh_CN.cpp
#include <QApplicATIon>
#include <QPushButton>
#include <QTextCodec>
#include <Qtranslator>
#include <QObject>
int main(int argc, char **argv)
{
QApplicaTIon app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")) ;
app.setFont(QFont("simsun", 10));
QTranslator translator( 0 );
translator.load( "zh_CN", "." );
app.installTranslator( &translator );
QPushButton *pushbutton = new QPushButton(QObject::tr("helloworld!"));
pushbutton->show();
return app.exec();
}
代碼中紅色部分為關(guān)鍵代碼。
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")) ;
這段代碼是設(shè)置文字的編碼格式,這里選擇UTF-8.
app.setFont(QFont("simsun", 10));
設(shè)置字體為宋體,字體大小為10磅。這個設(shè)置的前提是我們有這個字庫。simsun.ttc在windows的字體庫中可以找到。當(dāng)然也可以選擇其他的字體,如wenquanyi,simfang等。我們把字庫拷貝到開發(fā)板的字庫目錄下,修改字庫目錄下fontdir文件,添加如下內(nèi)容:
simsun simsun.ttc TTC n 50 120 u
QTranslator translator( 0 );
translator.load( "zh_CN", "." );
app.installTranslator( &translator );
上面三段代碼是程序運行時需要裝載的翻譯文件設(shè)置。
QObject::tr("helloworld!")
這句是告訴編譯器,這個字符串是可以翻譯的。
下面是翻譯過程:
1、修改zh_CN.pro文件,添加如下內(nèi)容:
TRASHLATI* = zh_CN.ts
2、生產(chǎn)ts文件
lupdate zh_CN.ts
查看zh_CH.ts文件:
< xml version="1.0" encoding="utf-8" >
<!DOCTYPE TS><TS version="1.1">
<context>
<name>QObject</name>
<message>
<location filename="main.cpp" line="17"/>
<source>helloworld!</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
3、生產(chǎn) qm文件
這個可以有兩種方法,一種是使用linguist,通過圖形界面去生產(chǎn)qm文件,這里介紹另外一種方法。
修改ts文件為:
< xml version="1.0" encoding="utf-8" >
<!DOCTYPE TS><TS version="1.1">
<context>
<name>QObject</name>
<message>
<location filename="main.cpp" line="17"/>
<source>helloworld!</source>
<translation>你好!</translation>
</message>
</context>
</TS>
然后就是生成qm文件了
lrelease zh_CN.ts –qm zh_CN.qm
4、編譯程序。將可執(zhí)行文件和qm文件拷貝到文件系統(tǒng)中運行,你就可以看到一個漢化的節(jié)面了。
“本文由華清遠見https://www.embedu.org/index.htm提供”
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04









