撇开印刷质量不说,翻译上面差一些,例如:
(1) 前后术语翻译不一致,估计是多人合作翻译所致: "convention over configuration"前面翻译成“习惯重于配置”,后面又翻译成“惯例优于配置”;
(2) 大小写不注意 (或是原稿错误): 例如 order = Order.find(),有时会成 order = order.find()
(3) () 和{}不注意 (或是原稿错误): 例如%w(str1, str2) 有时会成%w{str1, str2},应该是前者吧。
(4) 第 3 版 fixtures 翻译成“夹具”更妥贴一些。
继续扫错中……
不过,内容基本上能保持原貌,只是排版比较紧密,看得没有第 3 版爽呀。宁可多花费 20 元,印刷成第 3 版那样较好。
有兴趣的话可以一起来整理
Web 开发敏捷之道:应用 Rails 进行敏捷 Web 开发 (原书第 4 版) 勘误 http://codecampo.com/topics/476
(3) () 和{}不注意 (或是原稿错误): 例如%w(str1, str2) 有时会成%w{str1, str2}
这个是没问题的,%类符号后面可以用任意括号甚至非括号
很多地方完全根据英文字面翻译过来的,顺序都不带调整的,比如: “控制器总是响应用户每个请求仅一次” “因为控制器必须只回应一次”
翻译不一致,比如 response -> 有的地方写回应,有点地方写响应 hash -> 有的地方用 hash,有的地方用散列
生造难以理解的词语,比如 成组相关回调
是基于 3.0.5 的
我本打算跟着例子慢慢学,结果 3.2.2 变化很大,我看到第二部分的开始就跟不下去了,目录结构都变了
我现在只能看台湾网友写的《Ruby on Rails 实战圣经》,自己买的书反而只能当收藏品了
跟个版本帝伤不起
敏捷 4 当入门可以,当进阶的话还是看看 the rails way 2 好了 记得书上说的是基于 3.0.7 吧? 还有可以装 3.0.7 来学啊,3.2 比 3.0.x 的变化没那么大,就是前端,这些在 rails 的书里没有也算正常吧
书中的翻译很多使用了意译,而非直译,将很多技术要点一笔带过,相当不严谨。
比如对 helper 的解释: 在 Rails 中把这样的方法叫做辅助方法(helper),因为它给编写视图模板带来了便利。 (In Rails, we call methods that make it easier to write templates helpers.) 这翻译把 Rails 中一个非常重要的定义写成好像完全不相干的前后两行。 正确翻译,我觉得应该是:在 Rails 中,我们把用来辅助编写视图模板的方法叫做 Helpers(辅助方法)。
不过这都不算什么,只有摆一本英文版在边上对照看时。对比中文版的渣排版:整段同一字体、去样式、去缩进。这的才是一种灾难。比第三版也要差。难怪连封面都换掉了。
今天有时间把买来的中文版重要的地方翻看了一遍,看过英文版才知道这译版的翻译有多差,前后译词不统一,语句各种不通顺(特别 14 章用户登录)。网上许多地方都把这书推成 Rails 入门的经典书籍,对于很多英文不好的朋友中译版就是一个希望,但估计看完会各种概念不清晰,也学不到最新知识,糟蹋了经典。真心希望出译书的人能用心做好,不然真是误人子弟
下面是一些我在 twitter 上的吐槽
Agile Web Development with Rails 中文第四版从第 20 章开始之后的翻译质量太次了!! 你试试看这句:'虽然大部分存留持续请求的状态属于数据库,且是通过 active record 访问的,但是其他一些位状态有不同的寿命持续和不同的需要进行管理'
居然把'some other bits of state have different life spans and need to be managed differently'翻译成了'但是其他一些位状态有不同的寿命持续和不同的需要进行管理' -- 《Web 开发敏捷之道》
接着我还尝试给骆古道的 twitter 发推
@cnruby hi. 你是 agile web development with rails 的译者'骆古道'吗?我实在是想吐槽一下这中文第四版的翻译质量啊。从第 20.3 开始简直就不是中文啊,然后 20.3.1 的第二段还写着 3.0 的默认选择,原版已经改成了 3.1
@cnruby 然后中文第四版的第 256 页最下面的注意事项,原版中的 'If you store any Rails model objects in a session,' 这段居然就没了......
从开始就翻译一般,先看目录,目录中第二章”Instant Gratification“,被翻译成“及时满足”,这个应该直接用有道词典翻译的,相比原书中的“立竿见影”,相差甚远。 比如说"Marshaling Objects"被翻译成“封送对象”,相比而言,原中文版中翻译成“对象序列化”就更专业,也容易被技术人员理解。 再比如,Second, when you load a marshaled object, Ruby needs to know the definition of the class of that object (and of all the objects it contains). 翻译成“第二个问题,当加载所封送的对象是,Ruby 需要知道该对象的类 (及其包含所有的对象) 定义”,感觉就是单纯的对单词,句子的直译。