接下来真的是要很忙了。有两本 Perl 的书要翻译。一本是 Effective Perl Programming,2nd Edition:
另一本是 Automating System Administration with Perl,2nd Edition:
还是和 cnhacktnt,joejiang 一起协作。
突然体会到,iPad 放在 dock 上看,无比登对。 7 hours 52 minutes ago
接下来真的是要很忙了。有两本 Perl 的书要翻译。一本是 Effective Perl Programming,2nd Edition:
另一本是 Automating System Administration with Perl,2nd Edition:
还是和 cnhacktnt,joejiang 一起协作。
cnhacktnt 推荐的 FieldRunners 非常不错,操作简洁,画面细腻,又有很强的耐玩性。我对老婆说,你整天盯着开心餐厅看怎样摆弄布局,还不如来玩这个塔防游戏。这个周末带孩子的间隙,我就一直在玩这个游戏。
周六参加了 KungFuRails 的首届线下聚会。本来我是不该去的,虽然看过 ruby 和 rails 但没用来实践过什么,将来也没这个打算。开始想去,是因为 GitHub 的 Scott Chacon 要来,另外一起翻译 progit 的 ashchan 也来。后来还没付款,竟然收到官方邀请,就翻译 progit 一书的事情请我作下简单介绍。感谢 cnhackTNT 中间牵线。
清早一路上阳光洒落,心情非常不错。会场很专业,除了没有开放 wifi 没有会议录像之外,几近完美(补记:刚才看到官方说“我们稍后会放出ppt和录像,敬请期待!”)。到场还遇到了 Tim 同学(腾公)。实际上我去是凑热闹的,增长一下见识。很多 twitter 上的熟面孔突然在现实世界中冒出来,很有意思。还看到了 GTUG 中见到过的两位同学。
老实说,有些人的演讲技巧还不到位,不过大家乐于分享的精神是一致的。Scott 果然很腼腆,但听他演讲,整个语调语速很过瘾,高桥先生则好玩得多,显然这次他背负盛名,没放开。我看过上次台湾的演讲视频,那回高桥的节奏控制得很好,流畅且自然,有趣而轻松,可这回太拘谨了。
这次还认识了会场主持人吕国宁。我很钦佩去 ToastMaster 的人,我自己是放不开做不到的。
另外还有个收获,就是 GitHub 的贴纸,一直以来都想要,这次拿了两张,不打算贴 Macbook 上,我有洁癖,收藏下来。
因为 vim 有输入模式和命令模式,所以输入中文的时候,免不了会乱套。上次和 Lodd 说到 vim 的时候,他就说用不惯,中文输入太麻烦。我基本上不在 vim 里面写中文,所以也没怎么在意。
因为开始翻译 progit,主要工作是编辑中文,所以这个问题浮上水面。问了下 cnhacktnt,记得有个 vimim 插件的,于是拿来试试,结果喜出望外。
下了两个词库,vimim.pinyin.huge 和 fcitx.phrase.pinyin。我承认我很土,只会拼音,还是全拼。
翻译一本书着实很累。每一次 commit 都累积了几个小时的劳动。还好有团队,相互鼓励和扶持,才能保证进度和质量。一次次地修订,读上一版本的翻译,修订或是增加新版的翻译,然后自己审校,再交叉审校,再通读审校,最后还要对别人的每次更新再复阅,数也数不清了。但即便如此,总还担心有漏网之鱼,或者将来有读者诟病这里那里的问题。
继续。还有 70 个 rev 需要 review 下。Thanks Joe! Thanks Hui! Thanks Qiang!
《Perl Testing:A Developer’s Notebook》一书的翻译即将告捷,其经过是痛苦的,但受益也颇丰。一直想在翻译过程中,结合实例来探讨相关的问题,以作分享和积累,苦于没有闲暇时间,所以一直没有动笔。
和 Joe Jiang 的合作非常愉快。我们各自跳跃章节来翻译,随后自审,然后互审。最后会就一些细节作探讨和修饰。这个过程起初是漫长而叫人抓狂的,不过到最后,当你看到一件精雕细琢的艺术品呈现在眼前的时候,就会觉得这是那么美好,所有的付出都是值得的。就好比素描,起初的寥寥数笔,渐而丰实,最后巨细俱现,这个过程很享受。
关于翻译,特别是技术读物,我觉得最重要的就是不能领会错作者的原意。翻译英文和直接读英文有着极大的差别。阅读的时候,可能只求大致理解。翻译的时候,就要考量句法结构,前后逻辑关系,仔细揣摩各个代词的指代。通常会发现,原先的粗略理解不够精准。这很重要,因为翻译的目的是传播知识,所以必须对所要传播的知识负责任。说起来容易,做起来却很难。有时候工作久了,难免会疲劳,影响判断力。这个可以通过在时间上分而治之来解决。如果累了,就停下来。如果自己都不太确定,宁肯留着不翻译,以后会过头来再斟酌。还有种情况,不可避免的,就是实实在在的理解错误。这种情况比较隐蔽,自己难以定位发现,所以需要别人的帮助。虽然并不能完全保证发现所有的问题,但起码会好很多。就像读者提供勘误反馈一样。
意思没说错是最基本的要求,接下来就要把文句按中文的语言习惯来翻译。外国人喜欢用被动句,我们喜欢用主动句。所以被动转主动是最常见的技巧。外国人喜欢用很多定语或定语从句来作修饰,一般很长,我们可以拆分为几个短句来说。英语也不乏中文成语一样言简意赅的表述,所以要让读者明白,或者用恰当的成语,或者用较长的短句表述清楚,甚至把原来的几个短句合为一个句子。外国人很喜欢用代词,这个很搞脑子。我猜想他们是说不清楚,所以一天到晚用代词来糊涂了事。但中文翻译过来也都对应使用代词,就会让人越看越糊涂,这违反第一原则。所以翻译的时候经常需要扩展,把指代的(有时候是隐含的)内容清晰的表述出来,或者是某一样东西,或者是某一种具体的情况。检验的标准就是,把这段译文给一个没有读过这本书的人,如果他明白了在讲些什么,就说明没有问题了。碰到实在很难翻译的,就只好结合语境和作者的意图,行文至此的情绪,采用相近的表述。
初步翻译,需要通读章节,对全局有所把握。然后逐句翻译,就要反复阅读原文,写成译句后,又要反复在达意和平滑之间寻求平衡点。完成整个章节的翻译后,还需要通读一遍译文,力求保证基本的通顺,修正别字,漏字,标点使用等。完成较大的某一章后,还需再次通读,有些前后需要连贯或者衔接的地方也要注意修改。接下来初次交叉审阅。看别人的译文的时候,一定要保持对一切的怀疑态度。参照原文阅读译文。发现有蹊跷的地方,力求尝试阅读原文后得出自己的理解判断,然后比较现有的译文,是否有所出入,继而思考究竟是哪一种理解出了问题。这通常会找出之前所提到的隐蔽的理解错误。这很重要,如果这次你为了偷懒或者赶时间,想当然地忽略可能存在问题的地方,那你还指望谁能在后续的审校中再花力气去作细致研究和推敲呢?没有机会了,在成书发布之前都不会有谁会修正它了。读者看到这样的内容后,只会对你其他的辛苦付出一概全盘否定,这个代价太大了,任何一个有责任心的翻译工作者都不应当这样草率行事。所以宁可慢慢来,也不能放过一个可疑之处。初次审校可能会作大幅度的修改。看过译文后再行浓缩或者调优的话,表述方式有可能会作许多修订。接下来,原译者还必须反过头来看哪些地方做了修订,修订是否合理。特别是对理解有出入的地方,如果是审校人的错误,可以探讨之后决断。如此之后基本成形。最后可交若干朋友大致通读,寻找他们所能发现的细小问题,略加修订。这才可以交付出版社。所以这样下来,大体上这本书是要反复看过好多次的。
这次的翻译大体耗时 2 月,期间或急或缓。就像谁也不能保证程序没有 bug 一样,我们也不能保证翻译没有一处错误。所能做的,就是尽可能减少 bug。而更多人的审校,就好比重复不同平台上对翻译质量的测试。如果你或者你的朋友对测试有所了解,并且愿意贡献一点时间和精力的话,我们诚挚地恳请您的帮助。正式交稿在 7 月 1 日,不过我们仍然保留不断修订的能力,因为后续还有很多工作要作,继而排版印刷。
谢谢 Joe 。谢谢支持我们的所有人。
感谢 cnhackTNT 的提醒,在我更新 blog 后设定了当前的 Permalink,然而我想当然的没有作测试。于是得到的是 404。发现 .htaccess 是可以用的,每次更新设置都会改变时间戳。然后再看文档,发现需要对虚拟主机作下面的配置才可以正常使用:
<directory /> AllowOverride All </directory>
其实说起来很简单,你不允许服务器挂载外部的 .htaccess 文件,当然不会起作用。问题就出在我以前都不习惯用 .htaccess 来定义 apache 配置,所以对于 AllowOverride 的理解不那么深刻。