干货|人人都是翻译项目的Master
在平时的工作中,我们都会经常查阅一些英文文档来解决平时遇到的问题和拓宽视野。看到好的文章或者书籍有没有想要和小伙伴分享的冲动,那么我们一起来翻译吧~
翻译主张 “信 达 雅” 。“信”指意义不悖原文,即是译文要准确,不偏离,不遗漏,也不要随意增减意思;“达”指不拘泥于原文形式,译文通顺明白;“雅”则指译文时选用的词语要得体,追求文章本身的古雅,简明优雅。身为非专业翻译人员,要达到以上三点不是很容易的,但是我们要尽可能往这个方向上努力。一是提高自己的表达水平和阅读能力;二是能够让读者更加的明白作者本来的思想。有句话说得好:当把别人讲明白的时候,自己才算是真正的理解了。
2017 年 6 月 5 日,iKcamp 开始翻译第二本书 —— 《JavaScript 轻量级函数式编程》。如果你看过 iKcamp 最近在掘金、知乎或者公众号上发过的关于这本书的文章,应该对本书有一个大致的了解,本书的作者是火爆全球的 《你不知道的 JavaScript》 一书原作者 。旨在探索函数式编程的核心思想,但是并不会使用大量复杂的概念来诠释,所以称之为“轻量级函数式编程”。“轻量”并不意味着本书是一本“入门级”的书籍,相反,本书包含各种复杂的细节,深入探讨每个知识点,希望可以让读者对函数式编程有一个更深的理解。
身为这次翻译项目的 Master,在这个过程中学会了如何组织一次翻译项目,如何定制翻译计划。秉承着 iKcamp 的分享精神,下面介绍一下我们这次翻译的流程、遇到的一些问题、解决的方式以及待优化的点。希望大家看了之后可以对组织翻译项目有一定的理解,然后也可以提出自己的建议或者解决方案,也可以应用在自己的项目中。
项目详情:
- 书名:《Functional-Light JavaScript》
- 作者: Kyle Simpson
- 文章数量: 21 篇
- 参与成员: iKcamp 中的 17 名童鞋
- 预计完成时间: 2 个月
需要考虑的问题:
在开始翻译之前,有很多问题都需要考虑好,下面几点也是我在项目开始之前都考虑的问题,列出来和大家探讨一下:
- 如何确保翻译质量
- 如何让每位成员都熟知翻译流程和翻译规范
- 如何确保翻译进度
成员之间的联系方式
解决方案
1、如何确保翻译质量
翻译项目自然是翻译质量最重要,那么如何在成员还不算少的情况下确保翻译质量和翻译进度呢?
和小伙伴 Au 商量一番之后,我们决定采用分组制的策略。Master 对接组长,组长对接组内成员,组长由有翻译经验的小伙伴担当。分组的好处有以下几点。- 由于组长已经参加过翻译计划,就能更好的解答组内小伙伴的疑问
- 组长有更自由的职责分配和更多的权利来掌控组内成员的翻译进度和翻译质量
由组长把控组内的翻译质量,继而再由 Master 管控小组的翻译质量
2、如何让每位成员都熟知翻译流程和翻译规范
如果让每位成员都熟知翻译流程和翻译规范,那么就要满足下面的几点要求:
- 要有一个文档,上面清晰的写着如何走完整个翻译流程。
- 这个文档要方便打开,并且支持各个系统,没有格式的阻碍。
- 每位小伙伴都可以随时访问到。
基于以上几点要求,我们最终采取的策略是在 GitHub 上新建一个仓库,用 Markdown 的形式,以读者的视角把整个翻译流程展示出来。具体链接可以戳这里。
3、如何确保翻译进度
其实这个是很头疼的一点,因为参与的小伙伴可能来自不同的公司和不同的部门,那么他们的时间也是不确定的。可能有时候忙一些,有时候闲一些,怎么才能在确保翻译进度的前提下让小伙伴高质量的完成翻译呢?
我当时想的办法是给每一个流程规定一个 deadline,这个 deadline 是根据项目进度来说能给的最宽裕的时间,然后在认领翻译的时候,小伙伴可以根据自己最近时间的宽裕程度来决定翻译完成的时间,只要在这个 deadline 之前都可以。下面是我们认领时候的一张截图。
基本格式为:认领类型(翻译/校对认领)- 截止时间
。
这样就可以不用强制每个人的进度,让小伙伴自己来掌控进度。时间是自己选的,哈哈,那就要在规定的时间完成咯。
4、成员之间的联系方式
iKcamp 的小伙伴来自不同的公司和不通的部门,但是现在共同参加了一个翻译项目。那么如何可以让小伙伴都能明确的知道目前项目的进度以及一起讨论问题呢?这里我们就需要一个平台,可以可视化目前项目的进度,还需要一个可以交流的平台。
当时我想到了一下几种工具:
- Google Docs
- Teambition
- GitHub
- 微信
当时觉得用 Teambition 还不错,可视化,而且能清楚的看到项目目前的进度,可是后来对比了一下 GitHub 的方案,发现其实这些 GitHub 也能做到,比如说用 GitHub 的 label,给每个流程的 label 命名也能很清晰的看到目前项目的进度,而且 GitHub 相对于技术人员更专业一些。关于讨论问题这方面,就要找到一个让大家都能参与进来,而且很方便的工具。所以最后就选用了 GitHub 来可视化项目的进度,用微信群来讨论。
解决了上面的问题,那其实准备工作就做的差不多了,下面就按照流程一步一步的来就好啦。
开始翻译
翻译大概可以概括为以下几步:
- 准备工作
- 以小组的形式自愿认领翻译文章
- 翻译,校对
- 整合
一、准备
Master 把每篇文章提一个 issue,并且每个 issue 附上相对应的 label,用 label 可以很直观的来确认文章目前的进度。我把 issue 的 label 分为 8 种:
不同的 label 对应着目前的文章进度。在 issue 的下方附上对应原文的地址,这样可以让译者更方便的找到对应的原文去翻译,还是上面的那张图片:
二、主要翻译流程
认领文章
分好小组之后,下面开始以组为单位认领翻译文章。每个小组内的小伙伴会商量一下想翻译哪些文章,然后再以组为单位到 label 为翻译认领的 issue 下面认领文章。
组长到对应的 issue 下面留言“认领翻译”之后, Master 会把 issue 的状态由 “翻译认领” 切换为 “正在翻译”。
分配好小组,认领完文章之后,会留时间让大家认真的阅读翻译流程和翻译规范。磨刀不误砍柴工,这些都是翻译工作开始之前的基础,熟悉了这些之后,能够避免很多错误和减少校对的工作量。
开始翻译
函数式编程专有名词库
在翻译的过程中,难免会遇到很多描述不太清楚的专有名词,一个办法是小组内进行讨论,最后商量出来结果,小组内统一翻译。可是这样有一个不好的地方就是:小组内虽然统一了,可是组与组之间并没有统一。所以在这里,我们建了一个函数式编程专有名词库,把在翻译过程中遇到的专有名词及其翻译都添加到这个库中,这样大家翻译的时候遇到不太明白的就可以在此库中查找,统一了大家的翻译,不会出现一词两译的情况。
因为本书的主题是函数式编程,所以这个名词库里大部分都是函数式编程相关的专有名词。大家可以按照项目的不同来决定名词库的主题,也可以把翻译过程中遇到的所有名词都放在一起,这个就看你们的需求啦。
翻译完成
小伙伴完成翻译之后,要在 GitHub 上发起 Pull request,然后在 PR 下留言写上对应的 issue 链接。这样 PR 和 issue 就关联起来了。之后的工作就主要在 PR 下留言完成。
下面为发起 Pull request 的两种方式:
点击按钮之后,会出现下面的页面,在图中可以看到,先选择目标分支,然后选择翻译时自己建的分支,此时就会产生文件的对比,然后点击下方的 Create pull request
绿色按钮,就成功的发起了一个 Pull request。
到目前为止,翻译流程已经结束了,翻译过程可以概括为下面的几步:
校对
如何校对
当译者完成翻译发起 Pull request 之后,在对应的 Pull request 下方会有译者的提交记录。
点进去,就会看到译者的改动点,把鼠标放到你认为需要修改的那一行,会出来一个深蓝色的加号,点击加号,会出来一个文本框,在里面输入你的建议,点击绿色按钮 Start a review
即可。
一校:组内校对
第一轮校对是组内校对,组内成员之间交换文章,检查基本的语法和格式问题并修改。这样在进行第二轮校对的时候就减轻少了一些工作量。
二校:认领校对
一校完成之后,相当于每篇文章都符合基本的格式规范,都能够表达出来作者的基本思想了。下一步就要开始进行“真正的”校对 —— 二校。二校主要校对文章句子的准确度和顺畅度,还有格式。
和认领翻译的文章一样,不做任何限制,组内成员商量想要认领的文章,然后到 label 为校对认领的 PR 下面留言认领校对。
修改
每次校对完成之后,翻译此文章的小伙伴都要根据校对者的意见进行一次修改。在修改过程中可以把一些想法和建议丢到小组内商量,如果和校对者意见不一致的地方,也可以在校对者的留言下方进行回复商量。最终确定修改的方案。
终校
经历了一次翻译、两次校对和两次修改之后,文章整体都差不多了,不过还差最后一步,就是作为一名读者去真正的阅读文章:切身的去体会读者的感受;句子读着是否顺口;有没有格式错误影响阅读体验。所以接下来就是最后一轮校对 —— 终校。每位小伙伴可以选择自己感兴趣的文章进行校对。同时也鼓励大家,有哪些看不懂的地方就在下方留言,我们一同讨论解决办法。
关于校对
在此大家可能会有一个误会,就是校对比翻译更轻松一些。其实我并不是这样认为的。我觉得翻译和校对同样重要,他们的时间比重应该是大差不差的。校对者要确保文章的表达力度、格式及能否被读者所理解,付出的时间也和翻译相当或者更甚。所以,我们的校对不止进行了一遍。尽量做到能清楚的表达作者的意思,而且容易让读者理解。
在此次的翻译中,我也为大家留了充足的时间去校对,文本格式、表达意思都会去斟酌,相信付出的时间和成果是成正比的。
整合
文章有很多互相引用的地方,比如第 6 章会引用第 2 章的段落标题。由于在翻译过程中译者对于作者的思想和上下文的语境可能理解的不是很透彻,所以我们把这一步放在了最后。在最后一步我们统一修改引用的地方,确保上下文一致。
三、结尾
整个翻译项目大致是上面介绍的这些,流程可以概括为下图:
历经 2 个月,在 iKcamp 小伙伴的热情和坚持下本书顺利完成。我相信,iKcamp 的小伙伴在本次翻译中也收获颇丰,同时也克服了很大的困难。在工作压力大的情况下,还能保质保量的完成本书的工作,不仅是热情,还有责任感在推动着我们完成本书的翻译工作。在此特特别的感谢 ikcamp 的全体成员。也欢迎有兴趣的小伙伴加入到 iKcamp 中来,我们一起玩技术~
不过对于翻译项目的 Master 来说,道路还很遥远,因为是第一次担任翻译项目的 Master,很多地方还是欠缺经验,在这个过程中多亏了 Au 还有周妈妈以及小伙伴们的帮忙和配合才完成了此书的翻译。这次翻译流程还有以下需要优化的点,之后大家在组织翻译项目的时候可以想一些更有趣的方法。
- 在翻译和校对阶段的无缝衔接
- 保持项目进度
- 翻译的统一性
本次翻译项目产出的成果
- JavaScript 轻量级函数式编程
- 函数式编程专有名词库
- 翻译规范 —— 包含翻译流程文档、排版规则和校对规范。
iKcamp最新活动
与
“天天练口语”
小程序总榜排名第四、教育类排名第一的研发团队,面对面沟通交流。
干货|人人都是翻译项目的Master的更多相关文章
- 【腾讯Bugly干货分享】人人都可以做深度学习应用:入门篇
导语 2016年,继虚拟现实(VR)之后,人工智能(AI)的概念全面进入大众的视野.谷歌,微软,IBM等科技巨头纷纷重点布局,AI 貌似将成为互联网的下一个风口. 很多开发同学,对人工智能非常感兴趣, ...
- 搜刮一些开源项目的APP
iOS完整App资源收集 <iOS完整app资源收集> <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...
- 人人都是 DBA(V)SQL Server 数据库文件
SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname ...
- 学习笔记——Maven实战(三)多模块项目的POM重构
重复,还是重复 程序员应该有狗一般的嗅觉,要能嗅到重复这一最常见的坏味道,不管重复披着怎样的外衣,一旦发现,都应该毫不留情地彻底地将其干掉.不要因为POM不是产品代码而纵容重复在这里发酵,例如这样一段 ...
- 跨过Nginx上基于uWSGI部署Django项目的坑
先说说他们的关系,Nginx和uWSGI都是Web服务器,Nginx负责静态内容,uWSGI负责Python这样的动态内容,二者配合共同提供Web服务以实现提高效率和负载均衡等目的.uWSGI实现了多 ...
- SpringCloud升级之路2020.0.x版-5.所有项目的parent与spring-framework-common说明
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 源代码文件:htt ...
- 应用集成-在Hexo、Hugo博客框架中使用Gitalk基于Github上仓库项目的issue无后端服务评论系统实践
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x00 Gi ...
- 人人都是 DBA(XII)查询信息收集脚本汇编
什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...
- 团队项目——编写项目的Spec
团队项目--编写项目的Spec 一.Spec的目标 spec主要用来说明软件的外部功能,和用户的交互情况,主要用来说明软件内部的设计.图片编辑器是与生活息息相关的一个必备软件,随的流行, ...
随机推荐
- Web编程:JSP环境安装与配置
Web服务器:Tomcat 数据库服务器:暂时未使用 集成开发环境:eclipse 要运行JSP程序,首先要安装JDK(Java Developer Kit),并且还要配置运行Java程序的环境变量. ...
- 团队作业9——测试与发布(Beta版本)(含展示博客)
团队作业9--测试与发布(Beta版) http://www.cnblogs.com/newteam6/p/6938504.html 团队作业9--展示博客 http://www.cnblogs.co ...
- java201521123118《java程序设计》第5周总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1. 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过 ...
- idea使用转载【别人的专栏】
维C果糖
- Android UI系列--对话框(一)(AlertDialog,TimePickerDialog,DatePickerDialog,ProgressDialog)
一.Dialog介绍 dialog就是一个在屏幕上弹出一个可以让用户做出一个选择,或者输入额外的信息的对话框,一个对话框并不会沾满我们整个的屏幕,并且通常用于模型事件当中需要用户做出一个决定后才会继续 ...
- OJ周末题
字符串分割 字符统计 记票统计
- web自动化1-selenium简介及环境搭建
selenium 开源软件 支持多浏览器Firefox.Chrome.IE 跨平台Windows.Mac.Linux 多语言 java python Ruby php js 对web支持好,多种API ...
- 【】小技巧】CSS文字两端对齐
需求如下,红框所在的文字有四个字的.三个字的.两个字的,如果不两端对齐可以选择居中对齐,或者右对齐.但是如果要像下面这样两端对齐呢? 我相信以前很多人都这么干过:两个字中间使用 来隔开达到四个字的宽度 ...
- NDK中android.mk文件的简单介绍和第三方库的调用
先贴一个样例,然后解释一下: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := mydjvuapi SRC_FILE_ ...
- 简洁灵活的前端框架------BootStrap
前 言 Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷.[1] ...