本文由Yurii原创,转载请注明来源: Life Sailor

本文链接 他山之玉


中午翻阅了O’Reilly台湾公司翻译的《Perl语言入门》,一方面为掌握些Perl的基本概念,避免在《精通正则表达式》的Perl一章中犯错误;另一方面也希望了解些术语。

很高兴地在其中发现了不少好的译名,有的可以直接采用,有的有借鉴意义:
quantifier,我翻译为“限定符”,他们翻译为“量词”,显然“量词”要好,因为此处的“限定符”,取的是“数量限定”之意;
repitition,我翻译为“重复”,他们翻译为“重现”,显然“重现”要好,字符“重现了多少次”,比“重复多少次”更贴切;
alternation,我翻译为“备选项”,他们翻译为“择一匹配”,“择一匹配”很明了,但文气太重,值得斟酌;
character class,我翻译为“字符类”,他们翻译为“字符集”,“集”显然比“类”要合适,但“字符集”在大陆已有所指,不过可以依“集”的思路,翻译为“字符组”;

更高兴的是发现自己“造”的不少翻译,与对岸同仁所用一致:
negative character class,此处的negative,可以硬译为“否定”,但我们都按意译为“排”(排除字符集,排除型字符类);
case-insensitive match,此前我便对sensitive翻译为“敏感”颇有微词,发现对岸同仁如我一般,也翻译为“不区分大小写的匹配”;
……
这样一来,也不枉我的一片苦心。

翻译是很辛苦的事情,穷心尽力,做好了,还是乐在其中的。例如台湾同仁翻译的这句:
当你需要解读相当复杂的正则表达式时,你就得照Perl的方式,利用优先级表来按部就班地看看如何拆解。
这句话的欧化味道稍浓:两个“你”字,以及“当……时”,“来”按部就班地“看看”……
我会翻译为:如果要解读的正则表达式很复杂,就必须按照Perl的规定,根据优先级表逐步拆解。

最近比较满意的两个翻译是:

原意:这种结果是在对用户透明的情况下,新增到变量之上的。
改译:这种结果是在用户无法察觉的情况下,叠加到变量之上的。

原意:如果这样设置,又会发生错误匹配,但正则表达式确实容许如此
(总觉得“确实容许”很别扭,想了很久才理解,这个句子是说,这个问题光靠正则表达式没法解决)
改译:如果这样设置,又会发生错误匹配,但此错不在正则表达式本身

在整本书的翻译和排版即将结束之前,能参考这本书,是很值得高兴的事情。