Rails 如何做好 Rails Guide 中文翻译 (讨论要不要翻译的就不要进来了)

zhibin_ · 2013年09月14日 · 最后由 ChanceDoor 回复于 2013年09月21日 · 5112 次阅读

本人第一次发贴,不对的地方请大家见谅啊 ;-)

发这个帖子主要想讨论一下如何做好 Rails Guide 中文翻译,讨论要不要翻译的请不要进来了,我觉得大家各有各的观点,没有谁对谁错,也没必要都认同同一个观点,正所谓 百花齐放,兼容并包。

(https://github.com/ruby-china/rails-guides) 这里已经有了一份中文翻译,但是比较久没有更新了,还不完整,是基于 rails 3.2 的,基于这一份,怎样来做一份比较好的中文翻译呢?

个人认为先要讨论一下目标:

1.应该有一份和 rails/rails 或 docsrails 同步更新的版本,这样就可以一直保持最新。

  1. 特定版本的翻译,比如 4.0/3.2/...等版本,中文翻译是不是要都支持?

比较理想的方式是跟 rails/rails 一样,既有最新的 edge 版本和 master 分支同步,又有不同版本的翻译(基于 rails/rails 的 TAG 来生成的),不过 我还没清楚 rails/rails 每个版本的文档是怎么生成的,是自动生成?还是取每个 TAG 生成了一下?

是简单一点,只要一份最新的?还是最新的 + 稳定版(4.0/3.2/...) ?还是跟 rails/rails 一样每个 TAG 都有一个?

欢迎大家发表建议 ~

讨论好目标之后再看怎么达成这个目标。

Thanks ~

edge 是未完成的,可能会有改动,我觉得不适合翻译。翻译当前稳定版就好了。

我困惑版本升级的时候要怎么更新。

  1. 不要 rails/docrails。这是一个 Public Commit 的库,用于 Quick Fix,所有的改变在合并到 rails/rails 之前还要重新审阅。所以只有 rails/rails 才是最终的版本。

  2. 建议一开始只专注于一个版本,而且应该是 4.0,因为炒冷饭很痛苦。

  3. 就像 @Ray 说的那样,不要 edge,要 stable。edge 留给有能力读原文的人去看足矣。

多谢 @Rei @nightire 的建议 ~ 专注于 4.0 看起来比较实际。但是也要和已经有的 翻译结合好,而且要想好以后像 4.0->5.0 要怎么做。

#3 楼 @zhibin_ diff 4.0 and 5.0,然后查漏补缺吧,貌似也只能这样了。

对了,还有一个建议。在翻译的时候要求提交者提供两个版本,一个是纯中文版,另外一个是英中对照版。对照版按段落分隔,原文在前,译文在后。两个版本走两个路径分支,可以都发布,也可以只发布纯中文版,对照版做别的用处。

这个别的用处主要有两个:第一,如果有人做审阅工作的话会比较方便;第二,对那些希望同时学习英文的人来讲是个福音。

而对译者来说其实也不难,翻译的时候保留一份副本不要去掉原文就可以了。

@nightire 这样貌似很不方便啊,所以我觉得 edge 版本存在的意义就是渐进的过程。如果能保持有 edge 版本翻译和 edge en 版本同步,那么到了 5.0 就相当于,4.0-5.0 之间的差异都在 edge 演进中完成了。

#6 楼 @zhibin_ 你这个太理想主义了,假设有一个人翻译了当前 edge 的一篇,然后一篇的原文不停在更新、更新、更新……你怎么保证原来的译者可以一直跟踪这个进度?人家更新是往里面填东西,不需要考虑差别,我们这翻译你一样 diff head 和 head~1,因为万一原文有改变,你译文不也得跟着改?这个变化是相当频繁的,你看一下官方库的更新日志就知道了。

所以,理想的办法还是跟踪 stable,因为一旦 stable 了,除非明显的错误,否则 rails 是不会去改动原文的,这样就给了译者一个相对稳定的原文,翻译起来才流畅,不至于缺漏。到了下一个 stable 发布的时候,召集原来的译者做一次统一的查漏补缺就好了。

如果你的目标是为了时刻保持更新,这其实不是翻译手册的目标。你要想想翻译手册主要是给谁看的?对于你的目标人群来说有必要保持这种频繁不确定的更新吗?他们跟的过来吗?到头来还要抱怨你翻译质量不好,三天两头变化。而且 edge 版还要保持频繁发布……反正这个过程是很多麻烦的。

多谢 @nightire 中英对照倒是个不错的主意。 其实我也了解 edge 的繁琐,实际操作的时候不会那么频繁,就好像把 4.0 和 5.0 之间的差异分步骤 做在 edge 版本中,和 5.0 发布的时候 diff 相比,只是多少次,多频繁的区别。

#8 楼 @zhibin_ 问题就在这里了,如果我是译者的话,我宁愿你告诉我“每六个月来 diff 一次,统一修改”,而不是“每隔三天来 diff 一次,频繁更新”。

这是时间成本的问题。另外,这两种修改的代价并不是一样的,不仅仅是繁琐的问题,更重要的是在 edge 文档里会出现那种反复修改反复校对的部分(有些地方是要跟随代码的变更而变更的)。你如果要求译者保持进度同步,那就意味着译者也得经历和作者同样的一个过程。

这是其一,还有一点,edge 对应的代码是 master 分支上的,是未来的变化,而不是现在的状况。你得考虑真正看文档的人用的是什么版本?万一在未来的版本有个很大的变化,edge 文档也跟随这个变化做出了修改,但是这个版本尚未发布,那么你这个文档发布出去就会对很多人造成困惑了啊。

为了解决这个问题,那么你还得保留一份 stable 版本以适应目前正在广泛使用的版本。这样一来就变成了译者需要维护两个版本,以后能不能做到我不知道,但初期能吗?有这个必要吗?

所以我建议先集中精力把 stable 完成,若此后还有余力的话,再去追 edge,能够追到和 5.0 同步那是最理想的,那得看我们有没有足够的人力和精力来做到这一点。

可以去 rails 社区询问下,他们应该有这方面的经验

@zhibin_ 你是要牵头做这个事情吗?如果是的话那很好,我建议可以:

  1. 联系一下 @huacnlee @lgn21st,依托在 Github/Ruby-China 组织下,请他们建立一个 Team;
  2. 文档项目指派给这个 Team,你做 Leader;
  3. 在社区召集志愿者担任翻译、审阅、维护代码更新等工作,在 github 上把他们加进 Team 去;
  4. 商量目标、策略、步骤、规范、进度等事项,形成文档放在 github 上;
  5. 更新代码,开工。

#10 楼 @ytwman Rails 官方曾经做出的答复:

There are no stablished practices regarding guides transalations. There have been a few attempts by different communities, but no complete set that I am aware of by now. The practical problem of translations is mainly maintenance. It is a non-trivial effort to keep them up to date in English itself! :)

此前并未有针对手册翻译的成型的实践方法,很多社区都作出过相应的尝试,但目前为止我没有看到一个完整的范例。实际当中的问题主要是在维护方面,即使保持英文文档本身的更新也需要付出很大的努力。

#3 楼 @zhibin_

说真的,别要求这么高了,在我看来即使仅仅是提交一份修改订正都已经很不容易了。 要求提供两个版本的翻译更是...... 极少的人愿意把自己翻译后的东西一遍又一遍的修改订正。

如果愿意开一个分支或者更新一个英文文档都是分分钟的事情.... 问题是要对应的文章都修改更新一遍就很困难了。

我的一个方法是写个脚本,然后自动将文档的原文按照段落复制一份,但是给注释掉,同时留一个英文分支。这样可以通过英文分支找到所有变化的文件,然后通过源文件中的英文原文注释定位到变化的句子,然后翻译就好了。

@nightire 多谢你的建议!! @tassandar 恩,这个我也知道 确实很繁琐。想问一下 RubyChinaTranslation/Rails-Guides-China 和 https://github.com/ruby-china/rails-guides ,是以哪个为主?我发邮件联系 [email protected] 迟迟没有回复啊。你是发布在 https://github.com/Tassandar/Ruby-on-Rails-China 这里是吧?

其实我的想法是既然已经有了部分翻译,要利用好已经有的来做 4.0 的甚至以后的。还有个问题当初为什么没有从 rails/rails fork 过来做中文翻译?fork 过来就可以利用已有的 stable 分支 来支持不同 版本的翻译。做 4.0 的翻译的话就可以 checkout 4-0-stable , 把已有的翻译添加进去,然后做 4.0 的翻译。同时把已有的 3.2 的翻译 提交到 3-2-stable.

@chunlea 没错是可以定位到变化的句子,但是修正呢?是不是要根据 diff 改正中文翻译,然后在把 diff merge 到注释的那个里面来?

#15 楼 @zhibin_ 别抓着这种细节不放,翻译不是一个人的事情,每一位译者有每一位的习惯。有些人认为简单方便的方法,有些人还就是不会,不要因为这种技术原因给翻译制造障碍。

#15 楼 @zhibin_ 直接把变动的段落拷贝过去,然后重新翻译就好了。 ^_^

@tassandar OK, 那简单点,原有 master 新建分支 3.2-translation , 把 https://github.com/rails/rails/tree/4-0-stable/guides copy 过来 新建 4.0-translation 你意下如何? 另外,新建 team 专门负责此事 ,招募人手,开工 4.0, 如何?

19 楼 已删除
20 楼 已删除

反应慢,提交了几次,这算不算 bug。。。

就翻 stable 呗 每个 stable 一个分支

@ChanceDoor 我也是这么想滴

#12 楼 @nightire 哦,这个我只是象征性的以为呢,具体知道的也很少。希望由@zhibin_牵头,这事能做起来吧,虽然翻译上和技术上我出不了力。但有个建议,team 可以顺便开设一个支付宝帐号,用来收赞助,也是新手对于老鸟的贡献做一部分资助吧,例如一杯咖啡钱。

我可以业余的来翻译。但是翻译质量需要和大家共同提高!

#24 楼 @ytwman 我只是回答你关于求助社区的问题而已。

#27 楼 @zhibin_ 你和原来那个 guide 的人联系上了吗?我觉得还是统一在一起比较好啊

@ChanceDoor 没有啊,我也不想拖下去,可以把 3.2 的翻译迁移过来,放到 3-2-stable。

#29 楼 @zhibin_ 然后再另弄一个域名?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号