本帖最后由 零落 于 2021-2-4 13:44 编辑
文章来源:乐聚机器人研发总监黄怀贤的《基于Gitlab的多国语言管理方法》 如果你正在使用 Gitlab 或者 Github ,本文介绍的方法可能会对你有帮助。通过本文介绍的方法,能方便快捷地对翻译词条进行审核、讨论以及更新。
1、使用 Excel 来整理和同步词条
2、Jabylon 官网:https://jabylon.org/ 特点:支持 Android,iOS,以及 Java 的 .properties 格式文件。 问题:最后一次更新为 2017 年。
3、Weblate 官网: https://weblate.org/zh-hans/ 有以下几个优点: 和 Git高度集成,更新的词条都是作为一个个commit提交到Git中。这样也能方便地从原来回溯到内容的作者。 只要设置好源代码的路径,Weblate就能自动地检测出相关的翻译问题,并解析成可以被编辑的词条。 支持众多的格式: https://docs.weblate.org/en/latest/formats.html 细致且完整的权限控制: https://docs.weblate.org/en/latest/admin/access.html 支持第三方登录: https://docs.weblate.org/en/latest/admin/auth.html#authentication-backends 特别是Gitlab: https://docs.weblate.org/en/latest/admin/auth.html#gitlab-oauth-2
总结:一个很好的软件,在现在没有完全迁移到新的方法之前,我们公司大部分项目使用的还是 Weblate。 1、Excel 的维护成本较高,每次改动内容都需要手工校对。产品改一遍,开发再复制源码仓库中。并且想要找出变化的内容,只能依靠人肉比对和沟通。同时无法快速的针对某个词条进行讨论和改进。比如:某个词条翻译并不是特别文雅,这个时候开发可能需要在沟通群组中和产品进行沟通,再由产品发出修订之后的 Excel 文档。如果出现多次改动的情况就会耗费大量的人力去做重复的事情。
2、JABYLON 解决了校对和修订的问题。但是无法简单快捷的进行讨论。并且在使用的过程中发现如果是在翻译的文档中出现中文,会让导出的 iOS 翻译文件出现编码错误的问题。如果你在使用 JABYLON 的时候也遇到导出到 iOS 的词条出现编码错误的问题,这个 Emacs 的包应该能帮到你,链接如下: https://github.com/carlos-wong/emacs-jabylon-ios
3、Weblate 解决了 JABYLON 编码的问题,同时能和 Gitlab 服务很好地结合到一起, 能根据提前配置好的 branch 来自动提交修改的词条。不过还是存在不能便捷地对翻译词条进行讨论以及快速迭代。因为讨论的记录是单独保留在 weblate 上的,后续在回溯的时候讨论的内容不能和提交的代码关联到一起。 如何结合 Gitlab 来推进翻译工作的进行以及自动整合到项目的源码中 众所周知我们是使用 软件研发流程 来进行需求文档的讨论和迭代的。基于这个方法,将翻译的文档当成需求文档来维护。这样就能使用原有的流程来讨论和修订翻译的词条。再结合 Gitlab Runner (如果你使用的是 Github 的话其实原理类似,只不过使用的是 Github Action) 可以使用将 CSV 格式转化为工程文件的方式将翻译同步到项目源代码的过程自动化。
以下是对一个基本的迭代过程进行描述。 1、由产品将要整理好的翻译词条(以 csv 为格式,Excel 可以导出和打开 csv 格式的文件)作为一个 Merge Request 来提交。 2、相关人员就能在 Merge Request 中对指定的词条进行评论和问题。 每次Merge Request 发生改动都会触发 Gitlab 的 CI, CI 的工具会将翻译的文件转化为 Android,iOS,Web 对应格式的多国语言文件。并在 CI 的脚本中触发一次对应仓库的 Commit 来自动将修改的内容同步到开发项目的源码中。 这样一来,翻译的相关文档也能通过评审来及时发现问题。并且能通过相关项目的 Git 记录来对问题进行溯源,快速地定位问题的原因。
|