青润发了一篇很有意思文章:专业词汇需要严谨的分析——Serializable到底应该是串行还是序列,较真的精神是让人非常佩服的,我也赞同Serialization应该翻译成“序列化”的观点,理由与清润的类似“串行是一个固定顺序过程的展示,这个固定顺序过程是公认的已知的,不应该是自行设计的”。不过,我更有兴趣的是,serialization为什么应该翻译成“序列化”?又为什么被错误翻译成“串行化”?在我看来,这个问题,凸现了翻译中的困境。

回到Serialization的问题,前不久我也翻译了一篇关于Serialization的文章:发掘Java Serialization API中的秘密,本来serialize想当然就是“序列化”,专有名词嘛,中间却遇到一个词非常难翻译:flatten。原文是这样的:

靠对象的序列化(serialization),你就能把对象flatten,用各种神奇的方式重用。

一直以来,我都觉得“序列化”是一个专用词,指把对象转换成二进制数据的过程。但是,flatten的意思分明是“打扁”嘛,难道把对象“打扁”到磁盘上?再看下面的句子就明了了:

the object can be flattened into bytes and subsequently inflated in the future

原来,flatten的意思就是:不管之前的对象有多大,多神奇,它总可以“还原”成一个个的字节排列成的“普通”字节流——就好像一栋大楼,不论多高多漂亮,最后总是能“拆散”成基本最原始的建筑材料,整齐地码好。
如果这样理解flatten,serialize翻译成“序列化”也就顺理成章了:serial作为形容词的意义之一是:in regular succession without gaps,“没有间隔的规律排列”,所以“serialize”并非石头里蹦出来的专用词,它“原本”的意思就是把对象“打扁”成平凡无奇的二进制字节流,故而被翻译成“序列化”。
那么也就不难理解“串行化”的翻译了——“串行化”的背后,我们也可以隐约看到“前后相继的均等序列”的意思(比如“串行执行”之类),但中文语境里,“串行化”一般是与“并行化”对应的,所以,尽管用“串行化”翻译serialization不会被严谨的译者采纳,它还是“沾边”的。
这就是翻译中的困境:某种语言中的一个词,可能“就是”对应到“单一”的意思,或者关系非常相近的一系列意思,但是在另一种语言中,这一系列意思的关系远不是“非常相近”,甚至“相差万里”(比如watch可以翻译成“手表”和“看”,看似毫无联系,但“手表(small timepiece)”的意思是从1588年第一次出现的,根源是1440年的“用来唤醒睡觉的人的计时装置”,而watch本身就有“看着、提醒(to keep someone or something under close observation)”的意思,所以watch可以是“手表”也可以是“看”)。如果原文中就存在几个意思“沾边”的情况,翻译的时候就非常棘手。

The Universe in a Nutshell
in a nutshell是一个短语,表示“简而言之”,“几句话就能说明白”,从这个意义上说,它可以翻译成“浅谈”之类(这样就跟“时间简史”一致了);但nutshell本身又有又有“果壳”的意思,Stephen Hawking原书的封面也是“果壳中的宇宙”,所以,翻译成“果壳中的宇宙”也不算错,只是丢掉了另一重趣味。

two-edged sword
如果“果壳中的宇宙”说明“双关语翻译时难以两全”,那么two-edge sword翻译成“双刃剑”绝对是一个“想当然”的问题。须知,英文的sword表示a weapon (as a cutlass or rapier) with a long blade for cutting or thrusting that is often used as a symbol of honor or authority,为了区分刀刃的数目,就得说two-edged sword,可是翻译成中文就“忠实”地变成了“双刃剑”。那么,single-edge sword是什么?其实就是“刀”嘛——有谁见过“东洋单刃剑”吗?