QT Linguist用法(国际化)

本文介绍使用QTLinguist工具解决QT应用程序中的中文乱码问题。通过创建与使用.ts及.qm文件,实现应用程序内文字的国际化与本地化翻译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是否你也遇到过这种情况:QT代码里输入了中文,运行时却是乱码,加了QTextCodec也无济于事,废话不多说,现介绍QT Linguist用法,QT Linguist是一个将“tr(“”)”引号中的语言翻译成另外语言的工具(估计还有其他的用途),一句话就是个翻译工具。
用法:

1、 创建.ts文件
看过好多源码的人应该会发现在工程根目录下有两个文件,一个是“text_zh.qm”,另一个是“text_zh.ts”,却不知道怎么创建的。别急,现在慢慢介绍两个文件是怎么来的,先介绍.ts,其实就是一个QT Linguist文件,但却不是在QT Linguist中创建的(有点怪异啊!)。.qm等下介绍。


要创建ts文件,首先得创建你的工程,工程都没有就谈不上翻译了。而且QT Linguist只翻译tr引号里的东西。假设你已经有了个工程。
在Creator中打开工程文件:.pro。加入一行:
TRANSLATIONS += text_zh.ts
这里text_zh就是你的ts文件名。
然后打开命令行,进入工程文件所在目录,输入:lupdate text.pro,回车,会出现一下一句话:
Found 45 source text(s) (0 new and 45 already existing) (这是我的)
即:找到了45个要翻译的,0个没翻,45个已翻(大致是这样)
再到你的工程目录看一下,是不是多了个文件:text_zh.ts。对,这就是你敲了命令后新建的文件。
好了,ts文件创建好了,现在就是翻译了。
用QT Linguist打开你的ts文件:


按照上图提示将你要翻译的中文写上就OK了,然后记住保存。

2、.qm文件
保存后,单击文件菜单,有个“发布”选项,单击。然后到工程目录,是不是.qm文件就有了。是不是很简单?还没完,继续。文件好以后还要将加载到程序中:
在main函数中加一下代码:
QApplication a(argc,argv);(这段默认有,不必加,下面要用到a,所以写了)
QTranslator trans; //创建一个QTranslator对象
trans.load(“text_zh.qm”); //将刚才发布的.qm文件加载到程序中
a.installTranslator(&trans);
不要忘了加头文件“QTranslator”。
OK,重新编译,运行。是不是中文出来了?很简单吧!

最后,当你在源文件中新加了tr()后,还要在命令行下在lupdate text.pro下,你新加的东西才会在.ts中出来,然后再翻译就OK了。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值