對于翻譯,我沒有什么發言權。我對翻譯的了解大多來自思果先生的《翻譯研究》和《翻譯新究》這兩本書。思果先生是著名的散文家、翻譯家。說來慚愧,我還未能有幸拜讀他的散文,不過只是這兩本翻譯論著就已經感受到老人家文字功底之深了。每次讀都會覺得很舒服,仿佛先生坐在面前諄諄教導翻譯的經驗,時常如醍醐灌頂,發出“哦,原來還能這樣翻譯啊”的感嘆。我最喜歡的是他老人家說的我們翻譯要翻譯得像中文這種思想,我想翻譯畢竟是給中國人看的嘛,盡量不要讓讀者讀譯文讀的太辛苦,所以有關翻譯,推薦譯者去讀讀《翻譯研究》和《翻譯新究》這兩本書。
另一方面,學 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 之禪,我就請了幾個朋友幫忙捉蟲勘誤,但畢竟底子薄,肯定還有漏網之魚,在此,我要感謝各位朋友的辛苦勘誤與支持,再就是懇請譯者、讀者,看了這篇小文,不要沉默,不論是發現問題,還是有意見、建議,請與呆鳥聯系,敬期賜教!