KDE 简体中文翻译启用 Crowdin 在线协作平台

hosiet | 2017/12/22

其实这已经算旧闻了,但消息的传播并不顺畅,想必还有不少朋友不了解相关的情况,所以我在这里算是再进行一次宣传。

给时间紧迫太长不读(TL;DR)的朋友的一句话新闻:现在任何人都可以在 Crowdin 平台上使用网页在线翻译 KDE 了(仅限简体中文),网址是 https://crowdin.com/project/kdeorg/zh-CN,欢迎各位参与。

下面是正文。

历史

历史上,KDE 的翻译一直使用 SVN 提交。对简体中文团队来说,有 SVN 提交权限的管理者可以直接提交翻译,或是接受其他贡献者发送到 kde-china 邮件列表中的翻译文件,在检查后帮助进行提交。显然,这样的工作流对提交者和翻译者来说有较大的负担:

  • 外部贡献者必须使用电子邮件和邮件列表,变相提高了门槛;
  • 审阅过程中如有修改需要打回则多出了邮件来往,拉长了工作时间;
  • KDE 翻译所需的软件(lokalize)和对 po 文件的处理均对翻译者的技术水平提出了要求。

这样的要求不一定都是坏事,但显然还有可以改进的空间。今年(2017年)春天,以某个事件为契机,#kde-cn 的 IRC 频道(同时联通一个电报群组)中发生了关于工作流改进的讨论。在 guoyunhe 的推动下,KDE 简体中文翻译团队实现了工作流的迁移:从邮件列表 + SVN 手工提交切换到了 Crowdin 在线协作翻译平台 + 定期 SVN 文件同步的流程上来。

我们获得了 Crowdin 的支持,由于 kde 是著名的开源项目,翻译得以免费托管在网站上。任何人可以访问如下网址:

https://crowdin.com/project/kdeorg

注册一个帐号(或使用谷歌等社交帐号登录)即可立刻参与到翻译工作中来。

更多信息

更多信息,请见 KDE 简中翻译团队主页。KDE 简体中文翻译团队协作的正式主页是 https://community.kde.org/KDE_Localization/zh-cn,上面提供了与 KDE 简体中文翻译相关的各类信息与注意事项。

常见问题

翻译有什么建议吗?
尽量只翻译自己熟悉的内容;善用翻译存储和术语表;有翻译难点请结合应用程序界面和源代码理解其含义;还有问题也可参与群聊讨论或在邮件列表讨论翻译方式。详情请见上述团队主页。
我该怎么加入#kde-cn电报群组?
请见上述团队主页,页面上有链接。也可加入 Freenode 服务器上的 #kde-cn 频道,频道主题中包含了群组邀请链接。
SVN 翻译仓库与 Crowdin 翻译多久同步一次?
暂时没有固定周期,但一般不会多于一个月。如有需要,可以联系管理员进行同步。

ONE FEEDBACK

  1. 一些我自己的体会。

    目前这个同步流程还是不能完全自动化的,必须有人看管。原因有以下几点:

    1. 文件太多,上传模板和下载翻译都可能出现超时的状况。Crowdin 的服务器有时候会比较繁忙,上传要花费几个小时,而下载要花费几十分钟。
    2. 需要手动构建。意思是需要手动在网页上点那个构建按钮,才能开始全部构建一遍。而下载脚本下载的时候可能会构建,也可能不会构建,这是个 Bug。所以每次我都要手动构建完,再去下载翻译。
    3. SVN 有质量检查。比如一个字符串里有 3 个 %n 而翻译只有两个,SVN 就会认为这是一个错误而拒绝提交。但是 Crowdin 不会做这样的检查,即使对不上也会构建翻译。遇到提交被拒绝的时候,需要我手动去修正错误的字符串。一开始这种情况很常见,因为很多模糊翻译吧。现在已经几乎没有了。

    做改变是很难的。从邮件列表提交,到 Crowdin 平台,有很多头疼的问题,很多次我都想放弃了。但是毕竟干了这么多年,对这件事是有感情的,不想它以后就偃旗息鼓了。于是就一直坚持下来了。

    技术问题都是比较好解决的,最重要的是获得所有贡献者的认可。一旦接入 Crowdin,意味着所有翻译者必须放弃自己原有的 SVN 直接提交的方式,改变自己的工作习惯。要特别感谢为此作出牺牲的各位前辈,毕竟比起 SVN 直接提交,Crowdin 确实有些慢了。

    一旦进行一项比较大的改动,就有更大的风险存在。开始的几个月我经常被突然发现的问题折腾得死去活来。自己起的头,就要负责到底。

Leave a Reply

Your email address will not be published. Required fields are marked *

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).

This site uses Akismet to reduce spam. Learn how your comment data is processed.