Qt中有许多预先实现的控件,比如说“确定/取消”的按钮组,初学者这些按控件,却无奈与上面的英文和自己的界面不协调。就想去直接修改文字,或者不愿用按钮组,自己随便放两个按钮。
实际上,Qt这么做肯定有它的道理。那就是Qt早就做好了本地化的工作,只等着开发者调用了。当然这些组件也早就有了翻译,而这些翻译,就在Qt的translsation目录下。
1. 从translsation目录下复制对应语言的ts文件。
2. 如果使用Qt的pro文件描述项目,那么在pro文件中增加一行:
TRANSLATIONS += qt_zh_CN.ts
(其中文件名应是对应使用的语言,例如这里的中文)
3. 在程序中向QApplication加载语言文件。
QTranslator translator(0);
translator.load("qt_zh_CN",".");
a.installTranslator(&translator);
4. 编译应用程序时,会在对应位置生成对应的qm文件。应用程序和qm文件应当在一起打包。
当然,你也可以用Qt linguist写其他的ts文件。
大部分文章谈到这个问题时,都是用编译好的qm文件,但是这里直接用ts文件。好处是
1)省略资源文件
2)如果有翻译得不够好的地方,你可以直接修改ts文件。毕竟Qt最近的中文支持一直在走下坡路(没错我说的就是QtCreator那边)