中文翻译吾见之——门外汉的场合

来源:互联网 发布:nginx搭建网站 编辑:程序博客网 时间:2024/05/01 01:29

中文翻译吾见之

——门外汉的场合

 

Revision 0.1

by  K ][ N G of @ R KTM

 

[谁是门外汉]

 

门外汉的场合,就是指笔者kingofark的场合。是的,笔者不是专业人士,仅发表个人看法,也不针对特定个人或者团体,泛泛谈之。

 

 

[何时吾见之]

 

笔者近来欣喜的看到人民邮电出版社出版了Primer Plus系列,连忙下载样章来看。印象最深的是与其说是早有耳闻的C++ Primer Plus,倒不如说是C# Primer Plus

 

正如互动出版网上面有网友评论对C++ PrimerC++ Primer Plus做的一番比较所说,Primer Plus系列的起点较低。C# Primer Plus1章“计算机和计算机编程:基本概念”并无新意(当然,笔者没有任何贬义);第2章则引出了笔者的一些联想和想法——如题,是关于中文翻译的。

 

 

[吾见之何]

 

2.5.1节“面向过程编程及先天缺陷”给笔者印象深刻。其用程序分支和对数据的访问两点很现实的说明了问题——比起笔者过去在很多书中看到对面向过程之缺陷冠冕堂皇的、学究的、颇具理论深度的“高谈阔论”(危机啦,需求啦,认知啦——玄乎),这个或许不全面但逼真的解释于初学者而言就更加具有说服力。

 

2.7节“.NET中代码重用的基本单元:集合”——集合?集合(set)?集合(collection)?——仔细一看,原来是集合(assembly!

 

 

[何吾为之抓狂]

 

我知道在数学语言中,set一向被译为“集合”。我知道Java中有collectionssetC#中也有collectionsset;那么如果assembly是“集合”,collections该是什么呢?set呢?中文译名可真是一门学问哦——因为太混乱了罢。我装的金山词霸2002告诉我assembly是“集合, 装配, 集会, 集结, 汇编”的意思(呜呼呀!),大概C#中的assembly没被译为“汇编”都算是值得我们大家庆幸的事情了吧。

 

在中国电力出版社的《C# 精髓》中,collection被译为“集合”;在机械工业出版社的《Java编程思想》(第一版)中,collection也被译为“集合”——于是笔者又不禁担心起set的下场:呃……那个……也译为“集合”吗?

 

情况不止如此。local常常被被译为“局部(的)”,有时候在某些语境下也被译为“本地(的)”——于是问题又来了:当我们遇到Java Native InterfaceJNI)的时候——不知道是谁干的——又把这里的native译为“本地”。

 

本地(local)?本地(native?本地(vicinal)?本地(autochthonic)?呃……那个……指的哪一个?

 

 

[抓狂之后——说点正经的]

 

对于像Java中的collection,笔者认为完全可以不译,因为Java不仅有collection这个概念,还有Class CollectionsInterface CollectionClass CollectionsInterface Collection显然是不能译为中文的(如果有人对此都有异议,不妨看看本文末尾的附录“一个完全正式简体中文版的梦”);既然指的都是同一个范畴的东西,不妨干脆连collection都不要译,让这个概念与实际的Class CollectionsInterface Collection很好的对应起来。如果真的要译——好吧,拜托——请换一个“集合”之外的名称,因为“集合”这个名称在N年以前就已经被set占用了(大家都明白,数学概念是深入人心的基本知识)。对于collection,笔者认为台湾的一种译法“群集”就不错——至少能与set(集合)区别开来。

 

那么assembly呢?在中国电力出版社的《C# 精髓》中,assembly被译为“配件”,这就是个可以接受的译法。其实对于assembly而言,.NET 框架类库中也有一个System.Reflection.Assembly,所以assembly这个概念保留不译也不是不行的。

 

“哦,那照你这么说,干脆全都不译得了!那行吗?!”有人会瞪着反问道。

 

笔者说:“如果能找到比较合适的词,当然可以译;但是如果找不到合适的词,与其四面八方各译各的乱七八糟,还不如不译,至少让大家都记得一个英文assembly不会引起混乱和误解。”

 

其实这里又涉及到一个比较学究的问题:语言学和语言心理学。其实语言词汇写下来,不过是一个记号;而人们真正要理解的,是这个记号所代表的含义,不是这个记号本身。

 

小明知道这本书里“集合”是指java.util.Collections,小强知道那本书里“集合”是指System.Reflection.Assembly——这当然好;问题在于——小明和小强初学的时候会花费多少时间来搞清楚关于“这个里面的‘集合’是指java.util.Collections,不是指System.Reflection.Assembly;那个里面的‘集合’是指System.Reflection.Assembly,不是指java.util.Collections;还有另外N本书里面的‘集合’是指什么呢?……唔,还是阿Q说得好‘凡事总须研究才能明白’……”的问题呢?

 

对于语言词汇本身的问题,一个语言学家研究研究,蛮好;我们也不排除本来想学编程的小明小强会有成为语言学家的可能。

 

那么能不能达到这样的情况呢:

 

1)  大家都统一使用一个比较合适的中文译法(比如,assemlby译为“配件”,collection译为“群集”),使得:在一定的技术范围内,只要一提到这个中文词,大家都独一无二的想到同一个意义(注意,不是指同一个词汇或者同一个名称);

 

或者

 

2)  大家都同意使用原文(比如,assemblycollection),外文不好的同胞克服一下困难,记住几个外来词,使得:在一定的技术范围内,只要一提到这个原文,大家都独一无二的想到同一个意义(注意,不是指同一个词汇或者同一个名称)。

 

这是笔者的理想中的两种情况。理想啊,理想。理想并非总不是虚无飘渺的。前几天笔者就做了一个荒诞恐怖的梦。

 

 

[附录:一个完全正式简体中文版的梦(的片断)]

 

经过数年的深入研究,译者X在语言学、翻译学方面有了长足进展,下面从其论文中摘录部分,以飨读者:

 

l         C++的译法讨论:

C加加”:确切的表达了“C++C的超集”这个想法。其实要不是所有同行都写文章抨击我,我本来还不会这么译——“英文字母的第三个字母所代表的那个计算机语言加加”才是我理想中的译法咧。

“思易佳佳”:特别能表达这门计算机语言的易用和编程思维的优越性。

“肆意加加”:虽然“肆意”多多少少有些贬义,但是很能表达C/C++这个派系支持底层程序设计的强大功能。

 

l         inline的译法讨论:

“内线”:江湖上有“内线人物”的说法,相信大家一旦想到了“内线人物”,就特别能理解inline的含义;所以译为“内线”,以心理暗示的方法提示大家。

 

l         C++friend的译法讨论:

“朋友”:亲切、易懂的译法。

 

…… 理想啊,理想。

 

(完)




原创粉丝点击