qt程序中文国际化

qt程序中文国际化

作者:曹忠明, 华清远见嵌入式学院讲师。

中文国际化是在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文件拷贝到文件系统中运行,你就可以看到一个汉化的节面了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值