qt程序中文国际化
中文国际化是在QT程序设计中很重要的一个环节,这里用一个简单的例子介绍中文国际化得过程。
在这里我们还是写一个经典的helloworld的例子。
zh_CN.cpp
#include
#include
#include
#include
#include
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();
}
代码中红色部分为关键代码。
QTextCodec::setCodecForTr(QTextCodec::codecForNAME(UTF-8)) ;
这段代码是设置文字的编码格式,这里选择UTF-8.
app.setFont(QFont(simsun, 10));
设置字体为宋体,字体大小为10磅。这个设置的前提是我们有这个字库。simsun.ttc在windows的字体库中可以找到。当然也可以选择其他的字体,如wenquanyi,simfang等。我们把字库拷贝到开发板的字库目录下,修改字库目录下FONTdir文件,添加如下内容:
simsun simsun.ttc TTC n 50 120 u
QTranslator translator( 0 );
translator.load( zh_CN, . );
app.installTranslator( translator );
上面三段代码是程序运行时需要装载的翻译文件设置。
QObject::tr(helloworld!)
这句是告诉编译器,这个字符串是可以翻译的。
下面是翻译过程:
1、修改zh_CN.pro文件,添加如下内容:
TRASHLATI* = zh_CN.ts
2、生产ts文件
lupdate zh_CN.ts
查看zh_CH.ts文件:
xml version=1.0 encoding=utf-8 >
helloworld!
3、生产 qm文件
这个可以有两种方法,一种是使用linguist,通过图形界面去生产qm文件,这里介绍另外一种方法。
修改ts文件为:
xml version=1.0 encoding=utf-8 >
helloworld!
然后就是生成qm文件了
lrelease zh_CN.ts –qm zh_CN.qm
4、编译程序。将可执行文件和qm文件拷贝到文件系统中运行,你就可以看到一个汉化的节面了。
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- Linux内核解读入门(11-09)
- Linux操作系统网络驱动程序编写(04-11)
- Linux系统对ISA总线DMA的实现(06-19)
- 基于MPEG-4的嵌入式多媒体监控系统中压缩/解压卡的设计与实现(10-15)
- Windows CE下驱动程序开发基础(04-10)