使用QTranslator实现国际化
最近在学习QT,其实QT的demo中已经有相关的案例,也是当前网上大家普遍的使用方法。首先在mian.cpp文件中加入如下代码:
QTranslator translator;
translator.load(QString(":/qt_zh_CN"));
app.installTranslator(&translator);
然后在代码中需要翻译的语句都使用tr(),然后使用Linguist,对相应的进行翻译,保存文件放到资源文件中,要使用的时候load就好了,这样也很容易实现动态的切换语言。但是在大型的项目中,当我们要修改相关的翻译的时候就很麻烦了。
XML解决方案
当我们每次修改的时候,都要对资源文件进行重新编译,很浪费时间。而且有时候当我们的项目已经交付的时候,由于翻译问题需要重新发布,这时候你会遇到很多问题,例如客户要求要锁定发布的时间,这样你重新编译就不对了,这时候有一个很好的解决办法,使用XML。
我有参考华为的很多项目(当然不是源码了,就是看他们产品的时候发现的),发现他们很早就使用QT了,而且一直就是使用XML实现国际化。