本文内容主要包括以下
1:qt多语言工具链lconvert,lupdate,lreleaser的介绍
2:ts多语言文件的结构,多语言工具设计的一些建议
3:在项目中容易遇到的问题和解决方法;
在Qt客户端项目开发过程中,一个任务总是会伴随新的多语言添加。这个过程需要在代码中用QObject::tr宏括住需要翻译的string,例如tr("hello world"); 然后用qt的lupdater工具提取出代码中tr包裹的翻译,生成.ts文件<实质是xml文件>; 并用lreleaser生成体积更小的.qm文件,就可以动态加载到程序中了<类QTranslator>;
简单代码为:
在这个过程中一共用了lupdate,lrelease两个qt自带工具,分别用于提取tr内容生成ts文件以及生成qm文件;如果说我们要对翻译进行编辑,可以用qt的语言家linguist打开对ts文件进行可视化编辑,也可以直接用html编辑器打开进行编辑;
聊聊实际项目使用。
如果我们的项目增加了10个词条,并且有10种多语言需要翻译(中,英,法...),那么我们将编辑多次,且要打开位于不同模块的多个文件,并寻找翻译所在的位置进行替换,是很繁琐无聊的