做梦也没想到,我一个普通文学爱好者,最后竟然活出了码农的感觉,而且还不是那种安安静静写功能的码农,而是这样一种: 亲手捅出了一个炸天级大 BUG,折腾很久把它修掉以后,回头一看,居然顺手把事故现场改造成了一整套质量管理体系。
今年年中,我忙完《红花侠》的全面大修订,突然闲了下来,反倒有些不适应。一个持续很久的项目骤然结束,每天没有几十页文字等着我挑刺,总觉得少了点什么,于是又列了一份书单:《透镜人1:银河巡逻队》、《傲慢与偏见》,以及《Wuthering Heights》。其中,《Wuthering Heights》几乎没有悬念地被我放到了最高优先级。它是我读过的第一部世界名著,也是至今仍然最喜欢的世界名著之一。从《狭路冤家》《咆哮山庄》《魂归离恨天》,到后来成为通行书名的《呼啸山庄》,再到《啸风山庄》等不同译名,这部小说在中文世界已经走过一条漫长而复杂的翻译道路。也正因为如此,我给这个项目定下的目标比另外两本高得多: 尽量绕开现行译本已经形成的表达惯性,重新检查那些长期因袭、却未必真正贴切的译法,同时尽可能压低中文译文中的翻译腔。
为了给这个项目让路,我重新调整了另外两本书的规格。《透镜人1:银河巡逻队》从原计划的英日对勘翻译,改成以日译本为骨架的转译项目;《傲慢与偏见》也从英日对勘调整为以光文社古典新译文库小尾芙佐译本为基础的日文转译。《Wuthering Heights》则从一开始就决定做成两个彼此独立的中文版本。第一版名为**《暴风岗》 ,整体追求短、快、直接的叙事节奏,工作中主要使用 W. W. Norton & Company 2019 年出版的 Wuthering Heights: A Norton Critical Edition, Fifth Edition ,以及日本光文社古典新译文库2010年出版的小野寺健译《嵐が丘》,英文本负责裁决文意,日译本仅负责提供日译者的创意发挥和风格。第二版名为 《风啸丘》**,希望比《暴风岗》保留更多文学性的起伏、人物声音与意象层次, 英文裁决本同样使用 Norton 2019,日译资源则采用日本新潮文库2003年鸿巢友季子译《嵐が丘》。 两版从一开始就不是“同一译文的两个皮肤”:《暴风岗》不是《风啸丘》的简化版,《风啸丘》也不是《暴风岗》的文学润色版,我希望小野寺和鸿巢各自对原作的理解与处理方式,能够真正进入两个独立的中文文本。
翻译工具方面,我使用了 KIMI K3负责初翻,ChatGPT 5.6 Sol负责分项目专项校对,ChatGPT 6 Astra承担主校对以及项目后期抢救阶段的流程规划,DeepSeek V4 Flash则在其他模型额度不足时充当辅助校对。现在回头看,工具其实不是最初的问题,我对工具的调度方式才是。那时我的工作方式非常符合人类直觉:先让一个模型译,发现哪里不对,再叫另一个模型抓;突然觉得比较结构危险,就专项扫比较句;第二天想到日文汉字词可能污染中文,就扫汉字词;过几天发现对白不自然,再扫人物对白;接着看到中文有接缝,又开接缝专项;随后想到法律、继承、医学、建筑、器物、植物可能出错,于是再加一批专项。听起来非常认真,实际上,这就是灾难的开端。
最讽刺的是,我从一开始其实就知道自己最终想要什么。我知道英文应该负责裁决事实关系和核心语义,也知道日译真正有价值的地方并不是代替英文,而是日译者已经完成过一次阅读和文学转换,可以给中文提供解释、节奏、人物声音、显化和意象资源;我也知道,最终的中文不能只是英文语法换成汉字,更不能只是把日语句法重新编码,而必须作为一部中文小说独立成立。换句话说,我脑中实际上已经隐约存在后来整个项目最重要的一条原则:**英文决定“原作说了什么”,日译提供“还可以怎样理解和表现”,中文决定“最后怎样自然地说出来”。**问题是,我没有把这条总原则直接变成给模型执行的项目规范,而是把它拆散成几十个临时命令,于是一个本来应该从顶层设计解决的问题,被我做成了无穷无尽的局部补丁。
结果,《暴风岗》很快进入了一种标准的“补丁驱动开发”状态。今天发现一句日译很怪,就改;明天觉得英文更准确,又把英文关系补回来;后天发现这样不像中文,再润色;大后天另一个模型认为这次润色丢失了限定,又补一刀;再隔几天觉得人物声音漂了,又重新处理。同一句话可能经历三四次甚至更多修改,而前后句还停留在不同阶段。每一次局部修改孤立看可能都有理由,可它们连在一起以后,文本开始出现大量“焊缝”:主语突然漂移,代词找错对象,连接词越来越多,前半句沿着日译走,后半句却突然换成英文逻辑,甚至同一个人物在相邻章节里带着不同阶段形成的语言习惯。 接缝不是某一句话本身的疾病,而是流程失控留下的疤。
更麻烦的是,我很快发现真正危险的甚至不是那些明显的翻译腔。日式长定语、汉字词、不自然的连接词,至少读者一眼能感觉“不太对”;真正危险的是另一种句子:**中文已经非常顺,但意思翻错了。**主体和客体可能反了,比较坐标可能换了,原文只是“可能”,中文却变成“事实”;原文写“朝窗户那边望”,为了让画面更明确,译文擅自坐实成“看着窗外”;原文只是准备做某件事,译文顺手变成已经做完。更复杂的时候,日译先进行一次解释,中文又在这个解释上继续解释,于是一个细微偏差经过两层“帮助读者理解”,最终被放大成一个非常确定的错误事实。这类错误一旦再经过中文润色,反而更难发现,因为它会变成一句非常漂亮、非常流畅、非常像成熟译文的错译。
第十三章的一句话后来成了我最深刻的教训之一。当时中文大意是:“你从前住在暴风岗的时候,到底是怎么能跟这儿的人通得了心的?”我围绕这句话反复折腾过,“彼此交心”是否太文,“心意相通”是否太软,“通得了心”是不是更口语。我一直在研究怎样把它写得更自然,直到后来真正回到 Norton 英文,才发现问题根本不在中文措辞。原文问的并不是“你怎么跟这里的人沟通感情”,而是“你住在这里的时候,是怎么还能保住一个人本来应该有的那些情感的?”心理方向完全不同。我此前那些润色,等于一直在一个错误理解上精装修,地基歪着,墙倒是刷得越来越漂亮。这一处最终让我真正接受了一条后来变得非常重要的原则:**校准理解必须先于润色。**在动中文以前,先确认谁对谁、谁做了什么、什么已经发生、什么只是可能、比较的是哪两个对象、否定到底管到哪里,以及人物是在陈述事实、猜测、撒谎,还是带着偏见解释世界。
到了这个阶段,《暴风岗》已经不再是“有些句子不好看”的问题,而开始散发出浓烈的遗留系统气质。有些地方继承小野寺,有些地方直接按英文重写,有些地方为了中文自然动过,有些地方又被后续专项重新补回;术语、人物口吻、逻辑关系甚至同一类实体,都可能留下不同阶段的处理方式。我最初仍然本能地想“继续抓错”,后来才终于意识到,如果系统没有统一标准,那么抓得越勤快,产生的新补丁可能越多。项目真正的转折点,不是我又找到某一处大错,而是我停止问“这里还能怎么改”,转而问: 以后到底凭什么决定一处文字该不该改?
从这里开始,《暴风岗》才真正进入抢救阶段。第一件事,就是重新给三种文本分配职责。Norton 2019被确立为事实性语义的最终裁决本,负责主体、客体、动作、否定、比较、时间、数量、空间、财产、亲属、医学状态等不能随文学处理改变的内容;小野寺日译则被重新定位为解释、显化、人物声音、叙述节奏和文学转换的重要资源;中文 EPUB成为唯一工作母本,最终目标不是“忠实地保留某一种外语句法”,而是让作品作为中文小说成立。三种文本不再进行二比一投票,小野寺写得再漂亮,如果事实关系与英文冲突,就修;小野寺与英文表面不同,但只是把隐含逻辑说清楚,可以留;英文结构搬进中文很僵,就不照搬;现有中文已经准确、自然、人物声音也成立,即使还能写得更漂亮,也不再为了“优化”而动它。
与此同时,“抓错”也逐渐改造成高风险审计。主客体、比较、否定、条件、情态、时间、数量、动作完成状态、空间方向、代词指向,以及法律、继承、财产、医学、建筑、器物、植物、宗教等领域被列成固定风险表。它们的共同点是:一旦错了,读者理解到的就不是另一种文风,而是另一件事。这意味着翻译不能平均用力,有些文学处理可以宽容,有些地方却必须像查账一样严。此后我越来越少问“这句话够不够漂亮”,而更多地问:“ 这里究竟发生了什么? ”
另外一个重要变化,是我终于放开了“大白话”的权限。文学翻译并不是每一句都必须散发所谓“名著腔”,只要意思准确、人物成立,完全可以写得直接。但大白话并不等于把所有人物磨成一个现代人。洛克伍德仍然应该自恋、装腔而善于自我戏剧化;耐莉仍然会判断、插嘴、偏心;凯瑟琳的语言需要速度、跳跃和爆发力;希斯克利夫并非时时在朗诵诗,他平时可以冷、硬、短,只有情绪爆发时才真正猛烈;哈里顿可以粗朴,却不能因此显得愚蠢;小林顿的娇气、尖酸、自我中心和胆怯也不能被“润色”成普通少年。我这时才真正理解: 去翻译腔,不等于把作品所有不舒服的棱角磨掉。有些不舒服来自翻译,有些不舒服就是人物本身。
最像软件工程的一步,则是后来建立起来的“修改回归测试”。以前修改一句以后,我的逻辑基本是“现在看起来好了,下一句”;后来规则变成,每一处补丁都必须重新回读足够的上下文,检查新的主语有没有漂移、代词有没有突然接错、比较有没有被换掉、情态有没有从“可能”变成“肯定”、人物声音有没有突然跳频道,更要检查这次修订是否在邻句制造了新的中文接缝。第七章的一次修订就是很典型的例子:为了恢复英文的家族复数,我先把“恩肖家的兄妹”改成“恩肖家的人”,单看这一句没有问题,可一回读,紧接着的“把他们领进屋”便可能误接成恩肖家的人,于是还必须把后句明确为“把林顿家的两个孩子领进屋”。第一刀是正确的,但如果没有回归测试,它会在下一句制造一个新的歧义。从此以后, 改对一句不再等于完成修改,只有整个局部上下文重新成立,补丁才算真正落地。
完成大规模语义校译以后,我又专门做了一轮完全相反的工作:关闭英文,关闭日文,只读中文。从第一章到第三十四章,把《暴风岗》当成一部原本就是中文写成的小说连续读下去。这一轮不再问忠实不忠实,只问普通中文读者会不会卡,主语有没有断,句子是不是必须回读才能明白,两次不同阶段的修订之间是否还留着焊缝,某些抽象名词是不是完全可以重新变成动作。最终形成46处候选修改,回归以后撤回5处,只留下41处真正需要处理的中文接缝。那5处撤回本身也成为一条经验: 撤回修改不是失败。能够证明原句其实成立,并阻止一次没有必要的“优化”,本身就是质量控制的一部分。
最后一轮敌对审计时,最大的敌人已经不是小野寺,不是英文,也不是某个模型,而是项目自己的历史。一个地方一旦被标记过“已校”“封板”“冻结”,看久了以后,人和模型都会不自觉地降低警惕,所以我后来明确规定:此前所有“已校”“已锁定”“已无硬错”的结论,都不能自动成为当前正确性的证据;用户喜欢的句子也不能因此免检,反过来,用户曾经怀疑过的句子,如果重新核查以后证据不足,也不能为了显示审计有成果而硬改。第一轮高风险语义审计最终留下63处修改,其中53处属于有直接文本依据的事实性语义偏移;第二轮专门审查小野寺与 Norton 的差异,登记了一百余处日译偏差,其中绝大多数在此前中文里已经正确处理,因此真正新增的修改只有3处;第三轮关闭英日文本进行纯中文连续终读,最后保留41处接缝修复;第四轮则把前三轮107条历史补丁全部重新当成“别人提交的可疑代码”逐条回归,同时另选158个高风险位置覆盖全书34章独立复扫,竟然又抓出4处前三轮从未触碰过的残留A级问题。修完以后再扫,新增确证 A 级问题才终于归零。
最终,四轮敌对审计共保留111条修改记录,合并后对应108个净变化段落;原始上传版加全部修改记录可以逐项复演得到最终 EPUB,而且没有清单之外的变化。这里所谓“冻结候选版”仍然不等于宣称全书绝对零错误,它只意味着:**在已经明确声明的检查范围和方法之内,最后一次独立A级复扫没有再发现证据充分的硬错。**文件结构、内部引用、XML/XHTML等也进行了相应核验,但没有做过的测试绝不冒称做过。这种“报告到哪里就是哪里”的习惯,也是整个事故后期才逐渐形成的。
有意思的是, 《暴风岗》被这样折腾一遍以后,《风啸丘》的后期工作反而明显清楚了。 前者留下的真正资产不是可以直接复制过去的漂亮句子,而是错误模式、高风险清单、审计方法、回归机制和冻结标准。所以我后来专门给《风啸丘》增加了一条规定:《暴风岗》可以提供检查经验,却不能成为现成措辞的答案库。两个版本可以共享“怎样发现错”的办法,不能共享“这一句应该怎么翻”的现成答案,否则两套译文迟早会慢慢长成一本。《风啸丘》的任务也因此可以概括为一句很简单的话: 修正鸿巢友季子女士的错误,不消灭鸿巢女士作为资深英语文学翻译家的创造。
到这里,我才逐渐明白自己到底在做什么。一开始我以为自己只是翻一本小说,后来觉得是在校译两本小说,到最后才发现自己同时兼任了译者、校对、编辑、版本管理员、QA、事故分析员和流程设计师,还要不断防止昨天的自己坑今天的自己。最初那种“看到一句不顺就修一句”的工作方式,最终变成了完整的链条:先明确三种文本的职责,再校准事实语义,再做高风险专项,再处理中文接缝,再进行纯中文连续终读,再对全部历史补丁做回归,再独立复扫,最后才处理 EPUB、PDF、附录、目录和印刷文件。最滑稽的是,这一整套方法大半不是一开始设计出来的,而是被一个又一个错误硬生生逼出来的。
这也让我对所谓“人工智能翻译”有了和项目开始时很不一样的看法。真正困难的部分,可能从来不是找到一个最聪明、最会写中文的模型。模型写得越漂亮,有时反而越容易把一个错误理解包装得没有破绽。真正重要的是建立一套机制,让不同工具知道自己在当前阶段究竟负责什么,让任何模型,包括我自己,都不能在没有证据的时候随便做主。理解权、裁决权、改写权和验收权最好不要糊成一团;新修改必须接受回归;“没有发现问题”也不能偷换成“绝对没有问题”;有时候最好的修改,就是经过核查之后决定不改。
所以现在回头看,我最庆幸的反而不是《暴风岗》最后被救了回来,而是它在最混乱的时候没有被我放弃。那些主客体翻反、日译误读、句法接缝、人物口吻漂移、补丁事故和反复返工,最后逼着我弄明白了一个原本只停留在直觉里的道理: 人工智能辅助文学翻译真正困难的,不只是让AI生成漂亮中文,而是建立一套能够判断谁负责理解、谁有权裁决、哪些创造值得保留、什么时候必须怀疑自己、什么时候应该停止修改,以及怎样证明最后一次“优化”没有重新把已经正确的东西改坏的工作制度。
到最后,这个项目留下来的也许不只是两个《Wuthering Heights》的中文版本。它还留下了一份很长的事故报告,以及一套从事故现场慢慢长出来的方法。某种意义上,这甚至比“我终于翻完了一本书”更有意思。
毕竟,正常人翻译《Wuthering Heights》。
我倒好, 顺手给《 Wuthering Heights 》搭了一套 CI/CD,还做了单元测试、回归测试和 release candidate。 😆
《暴风岗》和《风啸丘》将于2026年9月16日-19日更新第一批章节译文, 这两个译本主要供日语爱好者、英语爱好者、文学爱好者、翻译研究者以及人工智能翻译研究者学习、讨论和研究,不收取任何费用,不进入商业流通,也不产生商业收益。
至于其中仍很可能存在的误译、漏译、判断失当乃至人工智能协作留下的新问题,我并不准备假装它们不存在。相反,如果这些成功和失败都能成为后来研究翻译、转译和人工智能辅助文学翻译的人可以利用的材料,那么这个项目就已经多了一层意料之外的价值。
评论区
共 1 条评论热门最新