2006-09-11

《Perl语言编程3》翻译得真糟糕

  最近在看何伟平翻译的《Perl语言编程3》,感觉翻译得比较糟糕。我有点追求完美,所以看到翻译的别扭的地方就自己动手改了过来。当然,我只是朝着通顺的方向修改,并没有参照原文。目的也不是说我的翻译就是贴切,只是用来对照原翻译的不通顺。
  当然,我丝毫不怀疑译者的 perl 水平,但是,一些翻译得不好的地方还是不吐不快。下面举几个例子与同仁商榷。(节选自“模式匹配”一章)
原文1:

/s 和 /m 修饰词并不涉及任何古怪的东西。它们只是影响 Perl 对待那些包含换行符的匹配的态度。不过它们和你的字串是否包含换行符无关;它们关心的是 Perl 是否应该假设你的字串包含单个行(/s)还是多个行(/m),因为有些元字符根据你是否需要让它们工作于面向行的模式而有不同的行为。

点评:
“古怪”用的很古怪,英文里可能是个中性词,但中文里稍带贬义。最后一句很别扭。

我修改后:
/s 和 /m 修饰词并不涉及什么特别的东西。它们只是影响 Perl 如何处理那些包含换行符的匹配。它们关心的是 Perl 认为你的字串包含单行的(/s)还是多行的(/m),和你的字串是否包含换行符无关。因为有些元字符的行为会根据你是否需要让它们工作于面向行的模式而有所不同。

原文2:
如果你希望这样的模式被且只被编译一次,那么就该使用 /o 修饰词。这么做可以避免开销巨大的运行时重新编译;这么做非常有用,尤其是你在转换的值在执行中不会改变的情况下。

点评:
两个“这么做”重复。最后一
个倒装句,不符合中文说话习惯。

我修改后:
如果你希望这样的模式被且只被编译一次,那么就该使用 /o 修饰词,这样可以避免开销巨大的运行时重新编译。尤其是在你要转换的值在执行中不会改变的情况下,这么做非常有用。

  很明显,很多地方译者的直译的痕迹太明显,不符合中文的说话习惯。翻译的最好要求是“信达雅”,本书也就是基本达到了“信”。
  当然,读这个书的同志们基本上都是搞IT的,可能觉得我要求的高了。我也不多说了,每个人的要求不一样,很正常。就事说事而已。

1 条评论:

  1. “随机文章”是怎么实现的?要添加哪些代码?

    回复删除