"); //-->
作者:曹忠明, 华清远见嵌入式学院讲师。
中文国际化是在QT程序设计中很重要的一个环节,这里用一个简单的例子介绍中文国际化得过程。
在这里我们还是写一个经典的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();
}
代码中红色部分为关键代码。
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文件,添加如下内容:
TRASHLATIONS = zh_CN.ts
2、生产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、生产 qm文件
这个可以有两种方法,一种是使用linguist,通过图形界面去生产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、编译程序。将可执行文件和qm文件拷贝到文件系统中运行,你就可以看到一个汉化的节面了。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
我们所知道的关于法拉利第一辆电动汽车的一切
Yue Dong 设计的ZigBee计量解决方案
位置验证成为芯片更大的关注点
City Grow 设计的ZigBee计量解决方案
Melexis推出首款双输入电感式传感器,服务未来汽车电子系统
智能本解决方案
数学函数库link问题
限制硬件网络攻击的新方法
请问linux下如何装.exe文件?求救!
电动汽车的税收抵免不再存在
磁场简介:第四部分
3D-IC将如何改变芯片设计
[求助]急需西门子mc35管脚功能的有关资料
有源输入整流电路
半波整流电路
特斯拉FSD驾驶情况变差,NHTSA展开新调查
屏幕文化给显示芯片带来了更大的压力
第三季度全球PC出货量加速增长,换机需求持续释放
用一个FPGA实现多个工业以太网协议
基于DSP的实时红外热成像系统的数据交换及实时显示
求助,重酬,DSP
基于DSP的数字存储示波器显示控制系统的设计
ZVT三相Boost整流输入电路
DSP求助!有重酬!
桥式整流电路
Vishay新款汽车级薄膜电容工作温度高达+125℃,且在高湿条件下展现高稳定性
基于DSP的液晶模块的显示原理及实现
基于ARCVIEW的ADS显示系统的开发
三相PWM整流电路的结构
基于CPLD和Embedded System的LED点阵显示系统的实现