Chinaunix首页 | 论坛 | 博客
  • 博客访问: 152933
  • 博文数量: 40
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-11 09:11
文章分类

全部博文(40)

文章存档

2020年(1)

2017年(36)

2014年(3)

我的朋友

分类: C/C++

2017-03-17 14:34:55

 用白话说,QT国际化这个功能就是依据一个文件来实现动态的切换语言,这个文件相当于一本英汉词汇对照表,加载它之后,便可以到想要使用的语言。 1.要使用QT国际化,首先在工程文件(*.pro)中添加下面这行: TRANSLATIONS+=name.ts(name随你自己定) 2.然后使用lupdate命令生成name.ts文件,name.ts文件就是给我们看的那个英汉对照表,把需要翻译的内容列出来等你翻译。
在LINUX下用命令 lupdate*.pro 生成name.ts文件
在windows下打开QT安装目录下的控制台,我的QT安装在D:/QtSDK/下,点开始菜单,单击所有程序》QtSDK》Desktop》Qt 4.8.1 for Desktop(MinGW),选择好你们自己对应的版本,打开终端后,进入工程目录,就是*.pro所在目录,输入命令: lupdate–pro *.pro –ts name.ts 生成name.ts文件,在这里不得不说一下,很多文章讲在windows下直接使用命令lupdate *.pro生成name.ts文件,是错的,至少在我的电脑上不行,lupdate –help没显示用这个命令行,在此对那些不经自己验证乱发博文的人表示强烈谴责。
 说明: name.ts文件中列出翻译内容包括程序中所有使用tr()包括起来的和QT设计师中所有text。
3.我在加载翻译文件前设置了编码方式,然后在windows下用记事本打开编辑后直接保存。 
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTranslator_translater(0);
_translater.load(":/name.qm");
Linux和windows下使用命令 lrelease *.pro生成name.qm文件 提示错误,意思是说遇到了不能识别的编码错误。后来发现windows下记事本默认的编码格式是ANSI,我却在前面设置了使用UTF-8编码(不知道没有设置会不会也出错),结果我把name.ts文件传到虚拟机中用vim编辑才解决问题,我想在记事本中点击另存为,然后选择UTF-8编码,应该也可以。 生成name.qm文件后……直接贴我的代码吧——
QApplicationa(argc,argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); QTranslator_translater(0);
_translater.load(":/name.qm");//加载name.qm文件
a.installTranslator(&_translater); return a.exec(); name.qm文件就是给QT程序看的英汉对照表,name.ts是给我们看的,当然不仅可以在中文和英文之间翻译,大多数语言都可以实现翻译。
阅读(1170) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~