在Windows7下使用Qt creator开发程序,想直接在源代码中使用中文字符串常量,源码是utf8的,保持utf8是便于迁移到linux,VC编译器总是报错,串中有换行符,怪异的是如果恰好串只有两个中文字符时,一切都是那么美好,多了,VC编译器就会让你痛苦了。
经过一番google,我总结了解决问题的原则:
绝对不要在源码中使用中文字符串常量。
那要显示的中文怎么做?用Qt Linguist.
下面是方法:
第一步:打开.pro文件,在最后面加入一行
TRANSLATIONS = cn.ts
可以自由命名右边的.ts文件
第二步:选择菜单:工具/外部/Qt翻译家/更新翻译(lupdate)
此时,系统将在.pro文件所在目录生成cn.ts文件
第三步:打开cn.ts文件,注意是用菜单:打开文件,用...。这种方式,在对话框中选择
Qt Linguist
第四步:在Qt Linguist中,汉化找到的源代码中的字符串常量。
第五步:完成汉化后,保存并选择【发布】。系统会在cn.ts文件所在目录生成cn.qm文件。
第六步:把汉文件文件添加到,项目资源中。打开.qrc文件,添加cn.qm文件
/tr
cn.qm
第七步:使用汉化结果. 在主窗口显示前,应用实例创建后安装翻译器。
QApplication a(argc, argv);
QTranslator translator;
translator.load(":tr/cn.qm");
a.installTranslator(&translator);
经验:有些时候明明已经翻译了,程序还是不生效,此时你可以选择【清理项目】后再次构建,试一下。