QT开发--国际中文化(一)

如果想在程序中显示中文或其他非英文的文字怎么办?QT支持几种显示非英文的文字的方法。我们还是在前两节的hello程序基础上示例如何添加中文显示。

一、

在hello.pro的尾端加入TRANSLATIONS = hello.ts,加入后的hello.pro如下例所示:

TEMPLATE = app
CONFIG  += qt staticlib thread warn_on release
HEADERS += hello.h
SOURCES += hello.cpp/
               main.cpp

TARGET  = hello

TRANSLATIONS = hello.ts

 

二、

在终端中输入

lupdate hello.pro

然后回车,可以看到hello.pro所在目录下已经生成了一个hello.ts文件。这就是为什么我们刚才要在hello.pro加入TRANSLATIONS = hello.ts的原因。

另一个要注意的地方是,hello.ts中的翻译内容是根据程序中的tr("")内的字符串生成的。如我们例子中的tr("Hello")和tr("Quit"),但"You Clicked the Button!/n"因为没有tr,所以并不会出现在hello.ts中。

 


三、

在终端中输入

linguist&

然后回车,调出QT Linguist程序,在程序中打开刚才生成的hello.ts文件,然后写上相应的翻译文字,该例中我们只有两个字符串需要翻译:

Hello --> 你好

Quit --> 退出

输入好需翻译的文字后。点击QT Linguist程序菜单的File->Release...,生成hello.qm文件。把该文件放在与我们稍后编译好的hello程序放在同一目录。

 

四、

修改main.cpp。修改内容如下:

#include <qapplication.h>
#include <qfont.h>
#include <qtranslator.h>
#include "hello.h"

QFont font("",11,QFont::Bold);

int main(int argc,char ** argv)
{
    QApplication app(argc,argv);
    app.setFont(font,TRUE,0);
   
    QTranslator translator(0);
    translator.load("hello.qm", ".");
    app.installTranslator(&translator);

   
    Hello * dlg = new Hello();
    app.setMainWidget(dlg);
    dlg->show();

    return app.exec();
}

其中translator.load("hello.qm", ".")为指定与hello程序同一目录的hello.qm为翻译文件。如需放在不同的目录,可在translator.load的第二个参数中指定。如translator.load("hello.qm", "/usr/tran")是指翻译文件hello.qm是放在/usr/tran目录下。

 

五、

编译并运行hello。可以看到,对话框的标题跟按钮的内容都变成中文的了。

 
第一步 在你的pro里面加入 TRANSLATIONS = myexec_zh.ts 第二步 用lupdate 操作pro 将要翻译的提取到ts文件 命令是 lupdate my.pro 第三步 用 linguist 打开刚才的ts文件,linugist是在qt的bin的目录里面, 是一个界面工具 打开linguist 后用菜单栏file ->open 打开 相应的ts文件 如刚才myexec_zh.ts 打开后你会看到左边是相应的类 右边的上半部 是相应的类里面tr 里面的内容 所以在程序里面 tr里面的都是e文 到这里就用上了 下半部是你要翻译的语言的相应的东西,就是你输入文的地方 要注意的就是 那些标点符号 最好还是用e文输入状态的如save as.... 就应该是 另存为.... 而不是 另存为。。。。注意后面的标点的差别,其绿色的表示翻译好了 ,叹号的表示没有翻译对,交叉的表示没有翻译 第四步 先用 linguist 菜单保存你翻译好的ts文件,接着用linguist界面工具里面菜单file里面的release...,点击这个就会弹出对话框 提示你 输入 qm文件的文件名,用默认的就可以了。按确定后你会在ts文件所在的目录看到一个qm后缀名的个文件,这就程序翻译器要用到的文件。 第五步,在你的程序里面使用刚才得到的qm文件 方法如下 QTranslator translator( 0 ); translator.load( "myexec_zh.qm", "." );//要跟刚才得到的qm的文件名对应 app.installTranslator( &translator ); 切记 在第五步的时候,一定要在界面的前面安装翻译器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值