本文也发在我的个人博客上:https://hltj.me/translate/2017/06/22/oss-docs-translate-quality.html 。

五月份,我宣布了 Kotlin 官方参考文档翻译完毕的消息,其中有提到这也是唯一一份完整且最新的官方参考文档翻译。不仅如此,其中值得一提的还有翻译质量。

Kotlin 中文站良好的翻译质量跟很多不错的翻译实践是分不开的。这些实践对于其他文档翻译项目也有很高的参考价值,特单独拿出来分享。

直接 fork 外文源站

这个在 Kotlin 官方参考文档翻译完毕已经介绍过:这样做的显著优势是官方站有任何更新可以及时合并进来。虽然这可能会引入冲突解决环节,并可能会影响翻译完整度,但这些与所带来的优势相比都是微不足道的。毕竟很难想象错过勘误的文档甚至内容陈旧的文档如何称之为质量好。

行级对照翻译

Kotlin 中文站翻译参考文档时,我们要求翻译后的中文与英文原文能够行级对应,即每行都是一一对应的。如果英文的一段文字分作了多行,中文也要按照原文分作多行,如下图所示:

这样做有两点优势:

  1. 源站更新后合并过来时,能够减少冲突发生,并且在发生冲突时也便于解决。
  2. 能够逐行对照中英文,便于检查是否有遗漏或者失误的地方。

当然这样一来,会引出一个问题。比如上图的倒数第二段,英文加了两个断行,分别发生在 of 与 inside 之前。中文与之对应,分别断在函数中的之前,而这样一来渲染出的网页就会在断词处多出空格,如下图红圈标注的地方:

当然,如果现在打开 https://www.kotlincn.net/docs/reference/classes.html,在文末并不会看到相应的空格,那是因为我们通过利用 HTML 注释的方式解决了这一问题,见下图: 

小屏校对

我基于 Kotlin 中文站的参考文档制作了相应的 GitBook,之后发现用手机看 ePub 版电子书的时候更容易发现问题,因为手机屏幕尺寸较小,每屏的字数要比电脑屏少很多,更容易聚焦在局部。如果细读这页,就会发现第二段代码有些问题:

也许你已经看出来了,注释导入所有名为“goo”扩展读起来不通顺,因为扩展前面少了个。这样就发现了一处疏忽,加上之后就好了:

上图再往下看,会发现代码中还有问题。没错,括号不对称,fun usage 应该以大括号结尾,但是代码中却是圆括号。通过对比我发现源站就有这一拼写错误,修正后提 PR 给源站,然后再合并回来,就是现在的样子了:

统一术语

相信统一术语的重要性已经深入人心,这里只举一些实际的例子:

  1. 方法”还是“函数”:受既有 Java 术语影响,早期的翻译中很多本该译为“函数”的地方也翻译成了“方法”,因为 Java 中统一称“方法”。 但 Kotlin 不一样,它既有“方法”也有“函数”,甚至也可以像 C++ 那样将方法称为“成员函数”。 所以最好的翻译方式就是“忠于原文”,即原文用“function”则翻译为“函数”,原文用“method”则翻译为“方法”。
  2. 范围”不准确:在统一校对前,译文中有不少“范围”这一术语,其中有的原文是“range”也有的是“scope”。 对于“scope”更确切的译法应该是“作用域”。 而对于“range”更确切的译法应该是“区间”,尤其是“close range”自然应该译作“闭区间”。
  3. 型变”:泛型相关的术语“variance”译为“型变”、“covariant”译为“协变的”、“contravariant”译为“逆变的”。而“invariant”没有译为“不变的”, 为避免歧义,结合型变这一词根,将其翻译为“不型变的”。
  4. 注解”怎么办:通常注解的名词形式“annotation”很好翻译,即“注解”。而其动词形式如果也翻译为“注解”就比较麻烦了,尤其遇到 annotated with the annotation 这样的词句时。 因此,Kotlin 中文站通常将参考文档中的“annotate”翻译成“标注”或者“用注解标注”。这样刚刚提到的词句就翻译为“用该注解标注的”。
  5. 参见”与“参阅”:在统一校对前,“see … for”有多种译法,包括“查看”、“参见”、“参阅”等。统一校对后,将“see … for”统一译为“关于……请参见”。 而将“read … for”统一译为“关于……请参阅”。

注重细节

其实上面介绍的几条都包含了不少细节在里面。Kotlin 中文站参考部分在翻译过程中所注重的细节还有:

  1. “the”有时也要翻译。尤其用于特指上文中提到的一项事物时,通常译作“该”。
  2. 注释也翻译。参见上面的例图。
  3. 中文与英文之间留空格。
  4. 文中以及代码注释中出现的标点都替换为全角。
  5. 表示代码省略的 ... 也替换为中文省略号……
  6. 英文中表示并列关系的逗号,翻译后转换为顿号。如
    “The following escape sequences are supported: \t\b\n\r\'\"\\ and \$.”
    翻译为
    “ 支持这几个转义序列:\t、 \b\n\r\'\"\\ 与 \$。”

群策群力

  • 翻译
    一个人能力毕竟有限,Kotlin 中文站是由大家共同翻译的,参见贡献者名单。
  • 校对
    后期主要由我来统一校对,使用了行级比较、小屏校对等方法,还用到了一些脚本与小工具作为辅助。 但是即便如此,还是会有在所难免的疏漏之处。 这时多人的力量再次凸显:多人评审、读者反馈与协作改进这些实践中的多人参与让 Kotlin 中文站的翻译质量越来越好。

由衷感谢参与 Kotlin 中文站翻译与改进的每个人。 Kotlin 中文站的翻译工作还在进行中,教程部分还有很多章节需要翻译,另外随着官方参考文档的更新中文站也需及时更新,欢迎更多人参与进来。

灰蓝天际 

转载请勿修改,并注明作者:灰蓝天际 及许可协议:署名-非商业性使用-禁止演绎。


欢迎关注:
GitHub:hltj    微博:灰蓝天际

公众号 微博

开源文档翻译的质量保障实践相关推荐

  1. 稳定性高可用测试——各大厂质量保障实践分享汇总(下)

    QECon 2020 (9月上海站) QECon大会的视频和PPT都没有提供在线浏览,不过关注QECon的公众号可以下载到9月的PPT.访问QECon的这篇推文,点击"阅读原文"可 ...

  2. 稳定性高可用测试——各大厂质量保障实践分享汇总(上)

    稳定性测试 京东数科研发效率和质量提升实践 会议介绍 主讲人:熊志男 - 京东数科 高级软件开发工程师 介绍京东数科落地实践"以质量为前提的效能提升"和研发效能平台的过程. 会议资 ...

  3. 质量保障与管理——各大厂质量保障实践分享汇总

    QECon 2020 (9月上海站) QECon大会的视频和PPT都没有提供在线浏览,不过关注QECon的公众号可以下载到9月的PPT.访问QECon的这篇推文,点击"阅读原文"可 ...

  4. IoT物联网——各大厂质量保障实践汇总(智能硬件其他篇)

    智能硬件篇 基于菜鸟智能柜的iot智能硬件分层测试策略(阿里巴巴) 会议介绍 主讲人:郑兴杰 - 阿里巴巴测试开发专家 分享了基于菜鸟智能柜的 IoT 智能硬件分层测试策略 .主要分为三部分:第一部分 ...

  5. AI智能化测试——各大厂质量保障实践分享汇总(下)

    面向人工智能产品的测试体系建设(融360) 会议介绍 主讲人:艾辉 - 融360高级技术经理 首先详细讲解AI的基础知识,包括AI的基础概念和应用场景,以及场见的误区等.其次,以金融信贷风控为场景,讲 ...

  6. 性能测试——各大厂质量保障实践分享汇总

    QECon大会的视频和PPT都没有提供在线浏览,不过关注QECon的公众号可以下载到9月的PPT.访问QECon的这篇推文,点击"阅读原文"可获取直接获取到所有PPT. Web端 ...

  7. AI智能化测试——各大厂质量保障实践分享汇总(上)

    大规模交易系统智能场景测试覆盖技术(滴滴出行) 会议介绍 主讲人:苏京刚-滴滴出行-网约车服务端技术部测试负责人 分享大规模交易系统智能场景测试覆盖技术--RFG.内容分为5部分,首先介绍大规模交易系 ...

  8. AI/大数据测试——各大厂质量保障实践分享汇总

    QECon 2020 (9月上海站) QECon大会的视频和PPT都没有提供在线浏览,不过关注QECon的公众号可以下载到9月的PPT.访问QECon的这篇推文,点击"阅读原文"可 ...

  9. IoT物联网——各大厂质量保障实践分享汇总(智能语音视频篇)

    智能语音篇 智能硬件的听说能力评测探索(腾讯) 会议介绍 主讲人:樊华 - 腾讯 用苹果手机的同学,会使用 siri,用三星手机会使用 bixby,开车的同学会使用车载语音,这些设备像人一样,听得见, ...

最新文章

  1. [原创]FineUI秘密花园(二十四) — 树控件之数据绑定
  2. 计算机视觉与模式识别代码合集第二版three
  3. 判断数据是增量分区全量分区
  4. hash算法总结收集
  5. Linux基础----gcc工具的使用
  6. Aspen hysys换热器修改计算模式Find Fouling模式
  7. ANSYS win10家庭版安装经验:
  8. 只需要5秒就能克隆出你的声音
  9. mysql分页limit (currentPage-1)*pageSize,pageSize
  10. python列表字符全部改为大写_将包含字符串的Python列表转换为小写或大写
  11. 嵌入式开发-STM32硬件I2C驱动OLED屏
  12. Untiy Shader - Metallic vs Specular Workflow 金属 vs 高光的工作流
  13. 什么是程序?什么是程序设计?
  14. 嵌入式系统开发笔记25:win10防火墙打开特定端口
  15. 贝尔曼方程怎么解_贝尔曼方程
  16. 剑指Offer——编程题的Java实现
  17. 时间序列模型R语言实现-批量建模,预测(ARIMA, 随机森林)
  18. 基于Bert文本分类进行行业识别
  19. 乐视乐Max Pro和Max65 Blade亮相
  20. 数学分析笔记9:数项级数

热门文章

  1. 如同黄家驹复活?百度程序猿用AR重现Beyond演唱会
  2. 从零开发英雄联盟、王者荣耀电竞比分预测系统
  3. 上门洗车小程序软件开发所需要的功能有哪些呢?
  4. 仿照google主页面布局html代码,超酷仿GOOGLE首页导航菜单效果
  5. 解决黑群晖DSM5.2系统SSH连接自动断开问题
  6. 赞赏——人人都能赞赏成书
  7. 草稿——记录一下计网学习问题以及redis学习日志
  8. 老板,这里有一份“微信报表”报告请注意查收
  9. 参加阿里云北京峰会随感
  10. 小肩膀POST+JS第三期(价值1000元)_高清带源码