在qt里进行多语言包处理的一些注意点
前端时间要将我们的软件弄一个英文版出来,这个软件是在qt creator上开发的,在创建语言包时磕磕绊绊的遇到些问题这里记录一下
在qt creator上做语言包主要是运用lupdate和lrelease,linguist这三个工具。
首先在工程里的.pro文件里添加
TRANSLATIONS = xx.ts
然后运行lupdate,会生成xx.ts文件
如果源文件或界面文件的需要翻译的内容有改变,需要重新运行lupdate
使用linguist打开xx.ts进行翻译,记得保存
然后运行lrelease生成xx.qm,这个就是语言包了,使用时加载一下就可以了
QTranslator *trans=new QTranslator;
bool flag = trans->load("xx");
a.installTranslator(trans);
如果一切顺利,那么到这里就结束了
下面是一些注意点,首先我们确保qt这里的编码是utf-8的
1、在代码里加入
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
2、cpp文件的文本是utf-8的,如果不是,可以用文本编辑器转换一下
3、在cpp的开头加入#pragma execution_character_set("utf-8"),这句只有在vs2010以上版本才有效,因此qt的sdk包需要相对应的包才行
以上三点是我遇到需要注意的地方。记录一下