QT Linguist用法(国际化)

是否你也遇到过这种情况: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了。

 

你可能感兴趣的:(语言,qt,工具)