共计 795 个字符,预计需要花费 2 分钟才能阅读完成。
Qt 翻译功能最近用得好好的,却是一份新需求导致对这一功能的思考。
最近接到一个 新需求 就是为公司的某个软件添加 多语言翻译功能,由于之前已经做过类似的了。直接移植就可以了。可是实际上并不是那么简单,多语言共有 9 种。可是翻译人员不会用 Qt 的语言家软件。除了中英文自己翻译外,其余的 7 种语言都需要发给专门的翻译人员翻译。7 种语言翻译都统一弄成 excel 文本给他们翻译,当他们翻译完成后又一个一个对应的填在语言家软件里,这操作做了两份语言后,实在是受不了了。心里碎碎念:这到底是什么翻译操作啊,太繁琐了。
于是我不发 excel 文档给他们翻译了,和他们说你翻译到 Qt 的语言家软件 吧。教他们安装 Qt 语言家,并教他们如何使用。说多是泪,我一顿操作猛如虎,一问他们会不会,都说太难了!只好放弃这一想法。顿时陷入沉思中,究竟是谁走漏了风声说:Qt 翻译很简单的!!!
还有就是,语言家提供提取 Qt 项目文件的翻译到文件,我想说的是这操作挺好的。但每次翻译字段更改的时候又要重新刷新一下翻译文件,这设计太难用了。我们常用的思维应该是修改翻译文本,再通过翻译文本去修改 Qt 项目的翻译字段。
常常我们不论翻译和不翻译的文本都使用 tr()
包含一下,但这是用错了,或许有人会说:可以解决乱码问题呀 。只能说有些系统能解决乱码问题。在没有翻译功能的前提下使用tr()
会造成额外性能负担。还有就是 tr()
会根据类名标记翻译字段,这一点很想不明白。作者可能是使用类似 命名空间 的做法来实现翻译字段的命名空间限制,实际使用上只会增加额外的使用负担和学习成本。
回到最初问题(重复工作多),没办法只能写一个小工具(csv 转 qm),csv 格式文件可以被 excel 打开,而工具可以直接将 csv 文件转换为翻译二进制(qm 后缀文件),这样就可以避免一个一个复制到语言家再翻译了。而对翻译人员也相对友好。
Qt 君公众号回复『工具』获取该工具