QT国际化(中英转换)
我们都知道在安卓中,想做国际化很简单,只需要建立对应的资源文件,在对应的strings里面修改字符即可。但在QT中相对会比较麻烦,没安卓那么简单,不过也不是很复杂,最近在弄国际化时,因为刚接触QT,对QT的了解还不是很深,所以有点无从下手,在经过各种百度谷歌之后,以及向法国人请教之后,总算搞定了,然后发现之前网上那些教程都很复杂,而且都是抄来抄去,完成之后我都没能理解他们的做法,也许是因为我刚接触QT还没法理解他们的写法。
首先我现在所做的QT项目,绝大部分都是通过qml直接实现的,QT的C++部分用的很少,只是用来获取数据封装成Model提供给qml使用,所以我所有需要转换的字符都是在qml当中,不过C++成字符的转换应该也是类似的,因为没做,不确定在c++层也同样有效,在qml是可以提取和实现的。
一. 将所有需要翻译的字符用qsTr()包起来,列如:
Text{
width: parent.width
height: 89
anchors.left: parent.left