标签 开源 下的文章

翻译《七周七语言》的那些事儿

今天在互动出版网看到《七周七语言:理解多种编程范型》一书已经开卖了。看到自己参与翻译的第一本书出版了,心中还是很愉悦的,因为自己的辛苦付出终于有了结果。

一、缘起

能够参与到这本书的翻译完全是机缘巧合。记得2011年初我启动了一个《Programming in Haskell》的公共翻译项目,可是由于欠缺版权的考虑,中途不得不终止了该书的翻译。当时经dreamhead介绍联系到图灵刘江总编,希望人邮能 引进版权以促成该书的翻译,但刘总编考虑到该书是有关Haskell这门"小众"语言的,引进后受众面小,书很可能卖不出去,商业价值不高(后得知该书作 者Graham Hutton博士已经在与某出版社谈中文版版权的事宜了,并已经委托其一位同事进行中文版的翻译工作了)。不过刘总编说图灵当时已经引进了《Seven Languages in Seven Weeks》一书的中文版权,但第一译者戴玮因工作学习繁忙,可能无法按期完成全部翻译,问我是否愿意参与翻译。我的最初目标就是翻译一本英文技术书籍, 有这样的机会,而且书还可以在国内出版,于是我就欣然接下了这个翻译工作。

二、翻译过程

经过试译审核,顺利与图灵签订了翻译合同,我将负责翻译该书的PrologScalaHaskell三个章节。正式翻译是在2011年春节后开始的, 为了能在合同规定的第一个时间点交稿,我连续N天翻译到凌晨下半夜,工作日中午午休时间也在抓紧时间翻译,周末也不放松。因为是第一次翻译,生怕自己翻译 的不好,于是对原书中的每句话都字斟句酌,仔细揣摩。另外虽说此书是一本技术书籍,但作者给每门编程语言都赋予了一部电影中的典型人物角色,并用电影中的 情节或人物角色的特征作为章节的导引,这使得每章的开篇十分难于翻译,特别是当我不熟悉语言所对应的那部影片中的那个角色时,翻译更是举步维艰。为此,我 特意看了一遍"雨人(Rain Man)"和"星际旅行(Star Trek)",重温了"剪刀手爱德华(Edward Scissorhands)",为的就是能够更精确地定位本书作者所要表达的意思。Scala一章的第一稿提交后,我收到了图灵编辑不错的反馈。于是再接 再励,在2011年4月末交了全部初稿,5月中旬完成了中耕校对;2012年3月份完成排后稿的校对。

三、关于翻译方法和心得

这是我第一次参与翻译项目,说实在的真没有资格谈什么翻译方法,我也不是什么专业翻译人员。但在这本书的翻译过程中还是有若干经验和教训可以与大家分享的。

* 心态

我认识的参与过技术书籍翻译的朋友都说:翻译不是为了赚钱(那些以翻译为谋生手段的职业翻译除外),这点我深表认同。翻译工作是一件枯燥、辛苦甚至是费力 不讨好(出版后可能被拍砖)的工作。因此翻译前就要摆正心态,弄清楚自己为何要翻译,有了良好心态,才会有持续不断的动力,否则译着译着人就容易产生懈 怠,进度和质量都会下降,你需要这样一种战胜懈怠并持续下去的手段。

* 你是翻译质量的决定者

不要过于期望诸多编辑朋友会拿出百分百的时间对你的翻译内容进行校对,出版社的编辑们太忙了,一个人估计要至少负责10本以上书籍的出版工作,因此你才是翻译质量的决定者,从开始翻译的那一刻你就要保持高质量水准。

* 第一遍就要保持高质量,不要期待你能回头做二次翻译

第一遍翻译时,务必保证按顺序逐字逐句的高质量的翻译,一次到位;遇到难点也不要跳过,而是要集中精神搞定这个难点;否则你就会发现你积蓄的难点越来越 多,严重影响你后续翻译的情绪和心理。不要有回头做全面二次翻译的想法,因为你会发现那基本不可行,二次翻译时你会发现你的思路严重受制于第一次翻译的思 路,因此不仅不会提高什么质量,还会使你变得更加烦躁,严重影响翻译进度。

* 前后一致

保持前后章节的术语、句型等翻译的一致性。这点在翻译和校对时都要重点关注。

* 除了认真还是认真

不是所有人都是翻译天才,大部分译者,特别是技术书籍的译者,可能只是那个领域的从业人员(比如我),在翻译能力上存在不足。但万事就怕认真,认真可以尽量袮补在能力上不足,也是出品高质量译文的必要条件。

四、关于《七周七语言》一书

从本书的中文名字,你也许会将其与"21天学会C语言"之类的捷径书籍混为一谈,但本书的初衷与那些捷径书籍显然不同。本书意在让你在短时间内了解到多种 编程语言的范式和主要特性,并做简单的对比了解。书的作者也许并不期望你在看完某种语言后就彻底学会了这门语言,那显然不是本书的意图。如今也许是另一个 编程语言百家争鸣的时代,新的语言层出不穷,作者试图帮助大家在如此繁多的语言当中找到一些适合你投资、学习和使用的有前途的编程语言。

书的最终版本我也没有拿到,我也只是看了我所翻译的那三章,因此书的内容好坏我也不能妄加评论。这里是Amazon.com上关于此书的一些书评(中文翻译版),另外从本书获得了2011年Jolt大奖可以看出本书还是被业内专家一致看好的。

个人感觉出版的有些晚了,如果能与Jolt大奖的公布同步推出也许效果会更好。书的最终纸质版本我也没有拿到,尚不知书的印刷质量如何,另外翻译的质量如何还得需要大家评判。

最后十分感谢翻译过程刘江、杨海玲 、傅志红、李松峰、丁晓昀等各位老师对我的帮助。

buildc 0.1.7版本发布

最近针对buildc又有了一些新想法,于是今天上午又对buildc进行了多处修改,并相继发布了0.1.6版本和0.1.7版本。

 
一、0.1.6版本的主要改动点
 
* 对buildc cache upgrade的实现进行了修改。
在执行全量更新本地cache前,先对本地cache的情况进行一些检查,并判断是否与当前.buildc.rc中的配置相符。如果两者是一致的,那么只进行update操作;否则则执行真正的upgrade(remove and re-init)。
 
* 调整了整个buildc源码目录的结构。
原先所有代码都放在build_utils目录下,这次我把代码分为两类:一类是核心逻辑(core);另外一类则是工具库类(utils),因此我删除了build_utils目录,同时增加了core和utils两个目录,分别存放不同类别的源文件。
 
在进行这项改造时遇到了一个小问题,那就是Python模块(比如core模块)中的源文件导入(import)另一个同级别模块(比如utils模块)中的符号的问题。以core模块的core.py为例,core.py中导入了env文件中的符号。原先core.py和env.py在同一个模块(build_utils)下,直接import env即可;但现在core.py和env.py分别放在了core和utils目录下,直接import env就会出现导入错误。这里涉及到了Python的模块搜索路径(sys.path)。默认的sys.path只是包括执行脚本的当前目录以及一些Python相关的安装目录(比如/usr/lib/python2.6、/usr/local/lib/python2.6/dist-packages等)。这样Python解释器无法找到core.py所在目录的上层目录utils下的env.py文件。为此我们需要在sys.path中增加一个路径,即'..',core.py文件的代码截取如下:
 
import sys
import os
import shutil
 
sys.path.append('..')
 
from utils import env
 
这样Python解释器就可以在core.py所在目录的上一层目录下寻找模块了。
 
* 将samples中的模板文件统一移到了templates中,删除samples目录
最初设计templates目录下只存放Make.rules相关模板文件,当时考虑的是支持多Make.rules模板。但目前只考虑支持一种,至少目前是这样(也许后续会有变化,但不能肯定),而samples目录下的文件其实也都是各种配置模板,因此将两个目录合二为一。
 
二、0.1.7版本的主要改动点
 
* 修改buildc init的执行语义
原先buildc init在初始情况下会在$(HOME)目录下创建.buildc.rc以及在当前目录下创建buildc.cfg;.buildc.rc是用户级别的配置;而buildc.cfg是项目级别的配置,放在一个init里显然有些不合适,因此0.1.7版本及以后版本在执行buildc init时只会创建$(HOME)/.buildc.rc。
 
* 增加buildc config init
对于项目级别的配置bulidc.cfg,我们使用新命令buildc config init来创建,即初始化一个项目级别的配置。
 
* 用buildc config make替代buildc config-make
顺水推舟,我们去掉了config-make这个command,进而改用buildc config make来生成或重新配置Make.rules文件。
 
做完以上修改后,感觉buildc看起来和用起来都更舒服些。
如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats