从英语学渣到前端技术“翻译官”

向作者提问
360前端奇舞团
查看本场Chat

这个主题虽然不属于前端技术栈,但是它和我们前端工程师甚至其他领域的程序员都是密切相关的,因为在程序员的世界里,英语的作用还是很大的。不管是写代码、写文档、写注释、查资料和学习成长,我们都离不开英语,可以说,英语也是程序员世界的“母语”。

由我来分享这个主题,我认为是合适的。我不是学习英语的天才。我也像其他理科男生一样,数理化学得很好,甚至我的语文也很不错,但是英语水平很差。在中学时,英语是我所有课程中花的时间最多的,但成绩却总是在及格线上徘徊。在大学里,我大学四级勉强通过,六级考了三次,最后被我给蒙过了。所以你看,我不是那种能轻松学习英语的料,相反,英语甚至是我的短板。而如果像我这样的英语“学渣”都能掌握得当的翻译英文技术文档的方法,那么同学们还有什么理由掌握不了呢?

2016年,我个人学习成长的最大收获就是英语翻译的成绩。到目前为止,今年我翻译了48篇技术文章,共10.7万字,这还不算我正在翻译的一本图灵引进的技术书籍,那本书我也已经完成了大约60%的翻译进度。

enter image description here

翻译字数的成就对我个人来说是一种鼓舞,而翻译这个行文本身对行业发展也是非常有意义的。目前前端行业比较火,因此各种技术发展很快,前端资讯内容非常多,更新很及时。我统计了10月底那一周的各大前端周刊的更新文章数量,发现英文文章数量竟然多达139篇,约35万字。当然这里面也有一部分重复内容,但总体来说,这一资讯量还是相当惊人的,大约相当于每周推出一本前端相关的技术书籍。有数据统计,同样一篇技术文章,英文文章在国内受众只有中文文章的15%~25%,而要精读一篇英文文章,平均阅读时间是一篇类似的中文文章的2.5倍。这意味着,如果翻译及时,一篇有用的资讯能够增加70%以上的阅读量和减少70%左右的阅读时间,这对于行业来说,是有很大的意义的。

除了对行业的意义之外,翻译对于译者自身当然有许多好处。首先翻译能强迫译者深入和反复阅读,提升英文阅读水平。其次认真翻译本身是一种再创作,能够提升译者的写作水平。再次,文章本身优秀,通过深度阅读,能够提升眼界和技术视野。最后,优秀翻译本身也能提升译者的个人影响力,并且收获成就感。

更重要的是,翻译还是一件很有趣的事儿,比如我们看下面的“神翻译(Bad Cases)”:

  • 秧歌 Young girls.
  • 潍坊的爱 We found love.
  • 我们都是昌平人 We are the champions.
  • 金正日 Days of God.
  • 请在一米线外等候 Please wait outside a noodle.
  • 佛跳墙 God uses VPN.

当然,上面的例子纯属娱乐,不过这些东西说明翻译很有趣。实际上翻译不仅仅有趣,而且程序员是一个适合做技术翻译的职业。因为,程序员写程序是给人看的,只是偶尔让机器执行一下。同样,翻译文章也是给人看的。写程序重要的是代码的可读性,而翻译重要的是文字的可读性。你看,写程序和翻译有很大的共同点,你能成为一名好的程序员,当然也能成为一名好的翻译。

enter image description here

技术翻译的常见误区

在说明如何做好技术翻译之前,我先解释一下技术翻译经常遇到的三个常见的误区。

第一个误区是觉得自己词汇量不高,无法做技术翻译。事实上,绝大多数技术文章要求的词汇量并不高,而且我们现在有网络和搜索引擎帮忙,高中词汇量足够了。

第二个误区是觉得英文水平不好,会影响翻译质量。事实上,就影响翻译质量来说,中文水平对翻译质量的影响要比英文水平的影响更大。

第三个误区是认为翻译翻译,就要一板一眼逐字逐句译出原作者所有的内容。事实上这也是不对的,有时候逐字翻译是不好的,这我们在后面也会看到。

好翻译的三个原则

好的翻译遵循三个原则:

  • 信:即翻译的内容准确,译者完全理解原作者的意思并将意思表达无误地传递给读者。
  • 达:即翻译得语言通顺流畅,让读者能够毫无障碍地读懂文字表达的意思。
  • 雅:即翻译的文字优美,读起来令人愉悦。

在信、达、雅三原则中,一般来讲“信”是最重要的,尤其是技术文章,如果不忠实于作者的思想,不能把原作中的意思无误地传递给读者,就会对读者学习技术造成阻碍,这就与我们通过翻译传播知识的初衷相违背了。

对于做技术翻译的工程师来说,与“信”相比,“达”是较难做到的。很多同学能理解原文的意思,知道作者在讲什么,但是由于技术内容本身比较晦涩和抽象,英文与中文的一些表达习惯又不一样,如何准确将作者的意思转换为符合中文习惯的文字表达给读者,是有一定技巧的,而且需要长期的练习。而“达”又是十分重要的,很多时候衡量一篇译文的价值,就是要看它的文字是否流畅通达,读者是否能快速理解其中的意思。

雅,就是在信、达的基础上,尽量做到文字优美、文采斐然。虽然一般的技术文章在文字上比较平实,但也有的原作会用比较优美的修辞和比喻,如何尽量把原作精彩之处还原出来,是译者需要思考的。

一篇译作只要能做到“信”和“达”,就是一篇有价值的好作品,如果再能做到“雅”那么就有可能成为经典,让读者爱上你的作品。

我们通过一些例子来看具体如何能够做到以上三点:

The term "binding" refers to the act of assigning a value to a name in JavaScript via var assignment, functions arguments, this passing, and property assignment.

_Functional JavaScript _ O'Reilly

这句话,在这本书的译文版里被翻译成这样:

“绑定(binding)” 一词指的是通过 var 关键字、函数参数、this 传递,或属性分配给 JavaScript 中的值分配名字的行为。

显然,读者读到这里很容易便会觉得一头雾水,最关键的原因是有两个“分配”,另外还有一处明显的错误。实际上,这句话如果正确翻译,大概应该是下面这样:

术语“绑定(binding)”,指的是 JavaScript 通过 var 指令赋值、函数传参、this 上下文传递以及属性赋值,将一个值分配给一个名字的行为。_

term 是术语的意思,译文版的书中没有译出来,而更大的问题是 assigning a value to a name 是把一个值分配给一个名字,而译文版的书中将这个翻译成了给 JavaScipt 中的值分配名字,这个中文意思就完全弄反了。

所以上面这个 Bad Case 在“信”和“达”上都出了问题。

再来看另外一个例子:

UI Movement is an endless feed of gifs to inspire web and mobile animations. This is the place to find some really nice animations.

"Top Inspiration Websites for Designers"

这篇文章是众成翻译上的一篇文章,一开始译者是这么翻译的:

UI Movement 有不计其数的 gif 图像来给你 web 和 mobile 动画相关的灵感。这是找到一些非常好的动画的地方。

上面这么翻译不够好,主要的问题在于句子形式。我们说翻译要符合中文语言习惯。前一句里一般中文不会说“有....来给你...”。后一句里由于并不需要特别强调 the place,所以中文一般也不说“是...的地方”。因此比较好的翻译如下:

UI Movement 收集了不计其数的 gif 图像,能带给你 web 与 mobile 动画相关的灵感。这里能找到一些非常好的动画

有时候,英文文章里面会有一些形象的描写,直译不见得合适。看一个例子:

The 15-inch model’s speakers seem to have more oomph than the 13-incher’s, but both can ably fill a hotel room with music, if you should want to leave your portable Bluetooth speaker at home.

"Is The New MacBook Pro With TouchBar A Good Computer?"

both can ably fill a hotel room with music 如果直译过来的话是“巧妙地用音乐将旅馆的房间充满”,这里作者想表达的是什么意思?如果结合上下文,可以这么翻译:

15 英寸模型的扬声器似乎比 13 英寸的更强劲,然而两者都可以满足你居家出行的音乐享受,你不用再随身带着你的外接蓝牙音箱了。

有时候,翻译需要考虑“本地化”,什么叫翻译考虑“本地化”呢?看下面这个例子:

If the connections couldn’t be accepted concurrently, each new web client would have to wait until the clients that arrived earlier were served. This would be almost as slow as taking London’s underground from Waterloo to Bank during rush hour!

Building the Web of Things MANNING

上面这段话中,作者的意思是考虑如果连接不能被并发处理的话,就会等待很长时间,这里作者将长时间等待比喻成在上下班高峰期坐伦敦地铁从 Waterloo 到 Bank。除非很了解英国伦敦的读者,否则并不能对 Waterloo 到 Bank 要等待多久感同身受,所以直译的话效果会打折扣,因此最好做一个“本地化”的改变,翻译如下:

如果连接不能被并发处理,那么每个新增的请求就得一直等待,直到它前面的请求被处理。那样就会像每天早晨8点半从回龙观坐地铁到西二旗一样要经过漫长的等待

当然,也许没到过北京,或者没坐过地铁13号线上班的同学也会不能感同身受,但是这本书的读者群是程序员,很多程序员都在西二旗上班过或者至少知道西二旗,所以这样改了以后,读者的受众面就大了很多。同样,比如一些经典的电影字幕也是这么翻译的:

enter image description here

影响英文翻译可读性的一个很大的因素是定语从句,通常在英文里面表现为嵌套的“that”。在这里举一个例子:

Little Big Details is a blog that highlights the small, often overlooked design elements that make up great digital experiences.

"Top Inspiration Websites for Designers"

这句话中,有两个 that,如果直译的话,就会变成:

Little Big Details 是一个突出细节,注重常被忽视设计元素以达到非常棒数字体验博客。

如果译文中这样的句式多了,读起来就会非常的拗口。因此,我们必须要将句子拆出来,用中文重新组织:

Little Big Details 是一个博客,带着读者发现小的、常被忽视的设计元素,这些元素给用户带来非常棒的数字体验。

英语是有时态和语态的,有时候它们对翻译而言不是很重要,但有时候的确需要注意:

Isn’t JavaScript a toy language that was written in 10 days?

"What programming language should you learn first?"

上面这句话中,written 是 write 的被动语态。一开始原译者将这一句翻译为:

难道 JavaScript 不是一种只写 10 天的玩具语言吗?

这就有歧义了,到底是谁写 10 天?注意这里的被动语态,所以应该理解为被写 10 天,也就是说,是 JavaScript 的作者写了 10 天发明出这种语言。因此最好翻译成:

难道 JavaScript 不是只花了 10 天写出来的玩具语言吗?

有时候,在作者的句子中,会采用一些修辞描写,以及隐喻和比喻,要正确理解这些描写、隐喻和比喻,才能准确理解作者想要表达的意思。

Me Opens HTML file tables every where, deprecated HTML tags, zero evidence of responsive design being taken into account. Takes deep breath Surely the CSS they wrote will be better. Opens CSS file fixed positions, clears left and right, and !important everywhere. Slowly wraps mouse around neck……

"If CSS is so easy why does everyone suck"

这一段比较好玩,尤其是最后一句,我们的译者一开始不理解这个,把 Slowly wraps mouse around nect 给翻译成了“慢慢把鼠标放进衣领”。大概他自己也觉得不妥,为什么作者要把鼠标放进衣领呢?其实当然不是,结合前面的内容,很容易看出作者的意思是自己的代码被别人改得面目全非,因此想要自杀(用鼠标绳把自己勒死)。所以,最后我们的翻译为:

于是我打开HTML文件,(吃惊地)发现到处都是弃用的HTML标签,而且丝毫没有考虑过响应式设计。深呼吸,(暗示自己),他们写的CSS肯定会稍微好点。然而在我打开CSS文件之后,发现(同样)到处都是类似固定(fixed)定位、清除左浮动、右浮动以及!important的代码,于是我慢慢的把鼠标绕在脖子上。(别拦我,让我死)

再来看一段:

Nine years ago I was part of an idealistic group of web advocates looking to free the web from the tyranny of the big silos.

"The Fucking Open Web"

上面这段里其他都不难,难点在于 big silos 怎么翻。我们知道 silo 是粮仓的意思,但是“大粮仓”又是什么鬼呢?实际上这里是一种比喻,把互联网大公司比作存粮很多的地主大户,因此这里可以翻译成“大厂”或者“大鳄”。最后翻译结果为:

九年前我是一个理想主义的 web 拥护者,想要将 web 从大鳄的暴政中拯救出来。

再看一段:

Callback hell is real. Often developers see callbacks as pure evil, even to the point of avoiding them. JavaScriptʼs flexibility does not help at all with this. From the surface, it seems callbacks are the perfect foot gun, so it is best to replace them.

"Saved from Callback Hell"

上面这一段,最麻烦的是 it seems callbacks are the perfect foot gun 这一句如何翻译。一开始译者翻译成“回调似乎并不完美”。这样译会和前面几句话产生矛盾,因为前面在说 Callback hell is real 以及 see callbacks as pure evil,都是说回调地狱是很不好的,后面一下子变成不完美,意思表达不连贯,应该是有问题的。深入思考一下这里的意思,foot gun 应该是一种简写,实际上作者的意思是 shooting yourself in the foot with gun,也就是开枪打中了自己的脚。所以我们最后建议这样翻译:

在实际开发中,回调地狱是真实存在的,开发者将它视为洪水猛兽,甚至到了想逃离它们的地步。而JavaScript的灵活性却对此爱莫能助。从表面上看,回调完全是 JavaScript 让开发者自废武功的设计,理应规避使用它。

有时候作者会用一些专业类比:

We often project our current feelings out indefinitely—and experience what I think of as the second derivative of those feelings.​​​​​​​​​​​​​​

"Sheryl Sandberg Berkeley commencement speech 2016-5"

上面这句出自 Sandberg 在伯克利大学的演讲,这里她说了一个比喻,将 current feelings 比作 the second derivative of those feelings。就是“那些情绪的二阶导数”,可什么是情绪的二阶导数?原来后面她有解释:We feel anxious—and then we feel anxious that we’re anxious. We feel sad—and then we feel sad that we’re sad 就是说,我们感到焦虑,然后我们又因为自己焦虑而更加焦虑。我们感到难过,然后我们又为我们的难过而难过。所以这就是类似于数学上的二阶导数。这里是学霸的比喻。

有很多技术作者的文笔功底还是挺好的,所以需要理解他们的描写:

My gender only affected my internal motivation: I often felt I had to be good, otherwise I would be painting all female tech speakers in a negative light. But other people are not at fault for my own stereotype threat.

"My positive experience as a woman in tech"

这句话是《CSS Secrets》作者 Lea Verou 在她的博客里写的。有两个地方需要理解,一个是 I would be painting all female tech speakers in a negative light 另一个是 stereotype threat。它们其实都不难理解,第一个的意思是“让别人看不起所有的女技术演讲者”,第二个 stereotype 是个专业词汇,叫做“成见威胁”,意思是对一群人歧视的时候,会让被歧视群体中的很多人表现得像歧视内容一样。比如歧视女性,认为大部分女生的理科成绩不好,结果很多本来可以学习好理科的女生也会受到这个影响,导致她们真的没学好理科,这就是 stereotype threat。所以这段话最后这么翻译:

我的性别只是影响了我的内在动机:我常常觉得我自己必须要优秀,否则我将有损女性技术讲师的形象​​​​​​​。而我不想因为自己的“成见威胁”对他人造成负面影响。

有的时候,一些英文单词表达的意思不适合直译:

There are only two kinds of programming languages: those people always bitch about and those nobody uses.

"What programming language should you learn first?"

一开始译者把 bitch 直译出来了,这里实际上 bitch about 是一个词组,意思是抱怨。所以这句话最后我们建议这么翻译:

世界上只有两种编程语言:一种是被人骂的,一种是没人用的。

同样地,还有一个例子:

Option A is not available. So let’s just kick the shit out of option B.

"Sheryl Sandberg Berkeley commencement speech 2016-5"

这里的 shit 是不适合直译出来的。这句话最后翻译为:

我们已经无法选择方案A了,所以我们只能把该死的问题从方案B中剔除。

同样的文字,可以有不同的译法,好的译法可以做到信、达、雅。看下面的例子:

Don’t hit a nail with a sledgehammer​​​​​​​.

"Front-end is ?and JavaScript is ?"

这句话可以有很多种译法,直译的话是“别用大锤砸钉子”,如果考虑“本地化”,可以翻译成“别用大炮打蚊子”,但是如果要翻译得更好,不妨译成“杀鸡焉用牛刀”。

有时候,英语描写的修辞手法在翻译的时候可以根据中文略做修改,这样翻译出来的文字会更有“味道”。比如:

Dave’s death changed me in very profound ways. I learned about the depths of sadness and the brutality of loss. But I also learned that when life sucks you under, you can kick against the bottom, break the surface, and breathe again. I learned that in the face of the void—or in the face of any challenge—you can choose joy and meaning.

"Sheryl Sandberg Berkeley commencement speech 2016-5"

上面句子里,中间加粗体的这句话翻译成中文略做转换,所以整段内容的翻译结果如下:

戴夫的死彻底改变了我,让我理解了一个人的悲伤能有多深,一个人失去至爱是多残酷的事。但是,我也学到了当生活的漩涡把我们吸进深潭时,我们依然可以从潭底跃起,钻出水面,重见光明。我还学到了在面对空虚和面对任何挑战时,我们可以选择找到快乐和意义。

有时候我们应当注意英文单词中的动词和动词短语,根据场景选择不同的翻译会更好:

Curated well-designed products from all over internet. Adding products almost everyday. Curating mostly from Amazon but also adding from multiple different sources. Curated by experts to always keep the same style of products.

"Top Inspiration Websites for Designers"

上面的句子里三个 Curate,翻译的时候可以略做变化:

从网上采集设计良好的产品,几乎每天更新。大部分展品来自亚马逊,也有一部分来源于其他网站。由专家团负责甄选以保持同样的产品风格。

有时候,我们应当对段落进行一些细微的调整或者“重构”,这和调整代码结构有相似之处。比如:

This is everything for today, let us know in the comments if you found something new or if we missed out on something great. I hope you found something that will inspire you to become a better designer.

"Top Inspiration Websites for Designers"

上面的段落一些文章结尾常见的形式,译者最初的翻译是:

以上就是今天的所有内容了,如果你发现了新的东西,或者如果我们错过了一些非常出色的东西,让我们在评论知道。我希望你发现了一些将激励你成为一个更好的设计师的东西。

我们建议做一些微调,能够更加连贯和通顺:

以上就是今天推荐的所有内容了,如果你发现了新的东西,或者你觉得我们错过了一些非常出色的东西,在下方评论区里我们知道。我希望你有所得,希望你的所得能激励你成为一名更好的设计师

有时候,能够根据真实的场景做出一些更加优雅的翻译,比如:

enter image description here

以上是我在这段时间里总结出来的一些 Case,看了那么多例子,那么回到问题上来,究竟我们应当如何成为好的译者

我觉得最重要的几点是:

  • 要有耐心和责任心。初学翻译,最容易犯的错误是急于动手翻译,翻译得太快,不求甚解,不能准确理解甚至误解作者的意思。这个错误和英语水平并没有太直接的关系,即使你英文不好,只要你有足够的耐心和责任心,通过查阅资料和搜索,你肯定能把文中疑惑的点弄明白的。
  • 要多动脑子。有些内容还是需要思考的。特别是一些模凌两可的翻译,一定要结合上下文,甚至作者本人的一些背景资料进行思考。有时候一些好的方法可以采用,比如拿不准一段话怎么翻译的时候,可以查查作者在其他场合是否说过类似的话,或者查查别的作者写的类似主题的文章里是否有可以参考的内容,有很多时候借鉴一下其他资料就能很快明白作者的意思。
  • 要不断练习。翻译也是一个不断提高的过程,一开始肯定速度慢,而且翻译不够准确,但是随着能力提高,翻译效率和质量都会稳步提升的。
  • 要及时整理和总结。最好能记录下每天翻译的字数,以及翻译中遇到的问题,时时“温故而知新”,对快速提高英文水平和翻译水平有非常大的帮助。

总得来说,翻译不仅仅是技术问题,很多时候,你的态度决定了你的翻译质量,也决定了你能在技术翻译这条路上能走多远

那么对读者来说,究竟是读原文好,还是读译文好?有人说阅读原文能接触第一手资料,体会原滋原味。但是,就像前面说的,阅读译文能够节省时间,提升获得资讯的效率。当然前提是译者本身的专业水平、对文章的理解要高于读者,而且掌握恰当的翻译技巧。的确,阅读一篇翻译很烂的文字很痛苦,还不如读原文,但是如果阅读优美的译文,也不失为一种享受。

做技术翻译是一种长期投资,偶尔翻译一两篇文字并不能明显提升英文水平,但如果长期坚持下去,养成习惯,你的英文水平、中文水平和技术能力都能得到很好的提升。所以难的不是如何做,而是如何坚持做,直到养成习惯。每天早晨花费30分钟时间来翻译几段文字,坚持一年下来,你会惊讶你从中得到的收益竟会如此之大。

Easy to learn, hard to turn.


本文首发于GitChat,未经授权不得转载,转载需与GitChat联系。

Albat|ross神奇的风景
这是在哪里的翻译榜单数据?
Albat|ross神奇的风景
精彩,值得学习。
罗展鑫
感谢分享
曲逸韵
每天半小时,
微信扫描登录