对于翻译,我没有什么发言权。我对翻译的了解大多来自思果先生的《翻译研究》和《翻译新究》这两本书。思果先生是著名的散文家、翻译家。说来惭愧,我还未能有幸拜读他的散文,不过只是这两本翻译论著就已经感受到老人家文字功底之深了。每次读都会觉得很舒服,仿佛先生坐在面前谆谆教导翻译的经验,时常如醍醐灌顶,发出“哦,原来还能这样翻译啊”的感叹。我最喜欢的是他老人家说的我们翻译要翻译得像中文这种思想,我想翻译毕竟是给中国人看的嘛,尽量不要让读者读译文读的太辛苦,所以有关翻译,推荐译者去读读《翻译研究》和《翻译新究》这两本书。
另一方面,学 Python 必须知道的一点,我觉得应该是 import this
,这是什么?这就是 Python 之禅。编程语言其实就是把人类的思想翻译给机器听,Python 之禅就是这种翻译工作的理念。都说 Python 是一门优雅简洁、易学易懂的编程语言,我觉得科技界的译者同仁也可以参考,下面是我对 Python 之禅的译文。
Python 之禅
Tim Peters 著
美比丑好,明比涩强。
简胜于繁,繁强于难。
平言莫绕,宜疏莫密。
行文如水,易懂为王。
勿提特例,皆循此规。
实虽胜纯,识错必究。
若需留证,亦要言明。
不明其理,追根问底。
必有一法,可解谜题。
汝非龟叔,求之故难。
立足当下,行必有方。
行难言喻,所思欠妥。
行易言表,所思可嘉。
名正易识,善莫大焉!
下面,容我一句一句把我的启示说来给大家听听。
Beautiful is better than ugly.
美比丑好。
编程之美已经衍生出来了众多之美标题党。而翻译之美,百余年前严复先生提出的信达雅更是世人皆知,就算我们这些后辈没有前人那么深厚的国文功底,也别翻译得让人读得皱眉头。
Explicit is better than implicit.
明比涩强。
编程主张显性,不提倡隐性。翻译也要清清楚楚、明明白白,别拐弯抹角,让人去猜。
Simple is better than complex.
简胜于繁。
写代码要精简,翻译也不能繁琐,译文中有一些常见问题,呆鸟总结下来就是:“一个一个满天飞,你我他们说不腻。所有如果的时候,被来被去被不完。” 这是英文的习惯,我们中国人说话没这么啰里啰嗦,没必要那么老实地按原文译出。
Complex is better than complicated.
繁强于难。
当码农已经很难了,代码写得尽量让同事和未来的自己读起来轻松一点,算得上功德。翻译更是,因为读者更多,不能让不懂英文的人读起来觉得译文比英文还难理解,最后被逼得自学英语去读英文原著。我算是其中一个。
Flat is better than nested.
平言莫绕。
编程讲究扁平,不鼓励嵌套,翻译也可以这么干,最好像梯田一样平铺直叙,别搞得如九连环一般,要烦劳读者去解。
Sparse is better than dense.
宜疏莫密。
编程说的是不要想着用一行代码实现过多的功能,多些写几行没关系,看的清楚,易于理解。我们中文也不喜欢大长句子,一段话几十上百字一逗到底,甚至都不带打嗑呗儿,那可不行,读起来心累。
Readability counts.
行文如水,易懂为王。
编程也好翻译也罢,越容易让人读明白越好!
Special cases aren't special enough to break the rules.
勿提特例,皆循此规。
没有规矩,不成方圆,写代码讲究语言规则,多一个字母,少一个空格,都会报错。翻译这点就宽容多了,没有编译一说,但也不能因此就老拿原文就是怎样怎样说事儿,中文有中文的行文规矩,虽然不需要编译,也做不到译者前辈改译文如重译的境界,但也要多读几遍译文,自己编译一下。
Although practicality beats purity.
Errors should never pass silently.
实虽胜纯,识错必究。
这里说的是实用性比语言的纯粹更重要,但发现错误也一定要说明清楚,计算机是可以 Debug 的,翻译没有,不过我们有万千读者,我希望读者能多与译者沟通,指正勘误,帮助译者优化译文,在此,呆鸟先拜谢了。
Unless explicitly silenced.
若需留证,亦要言明。
编程有注释,翻译有译注。有些英文典故也好,俗语也罢,实在用中文解释不通的,可以用译注说明,起码也算证明这是经过译者思考了的。
In the face of ambiguity, refuse the temptation to guess.
不明其理,追根问底。
这里只说翻译,一定要多读原文,读不懂或理解不清的要多读几遍,多查字典,按思果先生的说法,一本字典是不够的,要想译好文章,多查字典才行。好在我们现在有互联网了,查单词、查典故、查人物、查事件都比当年方便百倍,所以不懂莫猜,请多查多验。
There should be one — and preferably only one — obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
必有一法,可解谜题。汝非龟叔,求之故难。
Dutch 指的是龟叔,Python 的生身父母,荷兰人,大神!所以这两句可以这么认为,原文只有一个,译文也应该只有一个,好的译文就像一字千金的《吕氏春秋》一样,改一字都会破坏整体的美感,你做不到,那是因为你不是翻译大神!好吧,我承认,我现在还理解不了这种境界,貌似除了吕不韦,也还没听谁再这么说过,再说 Python 也一直在优化,所以我还是接着改译文吧。
Now is better than never.
Although never is often better than right now.
立足当下,行必有方。
这句话的意思呆鸟觉得应该是,现在开始做,比永远都不做强。但永远都不做,比想起来就干,不准备、不思考、没方向的蛮干、胡干要强。也就是说,翻译的不好,还不如别翻译,貌似很多事都是如此。
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
行难言喻,所思欠妥。行易言表,所思可嘉。
这句话好理解,译文说的明白,好懂易读就能算好译文了,晦涩难懂,就是糟糕的译文。
Namespaces are one honking great idea — let's do more of those!
名正易识,善莫大焉!
命名空间是编程的事情,在翻译里可以当它说的是名词,已经被大家接受的名词不难,难的是一些少见多怪的名词,比如 Informational Interview,绞尽脑汁翻译成信息化约谈,网上也有翻译成信息化面试的,实际上人家说的是面试前找公司里的招聘经理或部门员工,约出来喝喝咖啡聊聊天,认识一下,了解下公司,老外喜欢这么干,国内这样干的应该都是比较高层了,我等底层人士估计约不出来。所以这个词很少见,很难翻译,求指教。还有诸如 take-home assignment、democratize access、raw intelligence、hustle and grit 这样的,真是叫人不知道该怎么下手好,所以说,把名词翻译好了,真是善莫大焉了。
啰里啰嗦讲了一堆,真正翻译起来才发觉翻译真是个烦人的事情,就好比正在学唱一首歌,自己还没学好,边儿上就来了一个人像苍蝇一样用怪腔怪调唱你学的这首歌,结果本来就唱不好,这下子调子更不知道跑到哪里去了。翻译就是这种感觉,本来只写中文还可以,结果一看英文,反倒不知道中国话该怎么说了。真心感到译者的不易,看来还是要不断加强国文功底。
说了不少对翻译的感悟,自己的翻译其实也是漏洞百出,言不达意,仅这段短短的 Python 之禅,我就请了几个朋友帮忙捉虫勘误,但毕竟底子薄,肯定还有漏网之鱼,在此,我要感谢各位朋友的辛苦勘误与支持,再就是恳请译者、读者,看了这篇小文,不要沉默,不论是发现问题,还是有意见、建议,请与呆鸟联系,敬期赐教!