我手上的这本Windows 程序设计(第5版)(上、下册)是1999年11月第1版 2004年9月第8次印刷
下表内容出自网上网友的文章或我本人与英文电子版对照写出。
‘严重程度’定义:
1--可能是无关紧要的错误或疏漏,并不会造成理解(包括技术层面或非技术层面)上的障碍。但从某种程度上体现了译者的态度。
2--可能是译者想当然的译法,错误比较明显,读者利用自己的常识就可以将其更正。并不会造成理解(主要指技术层面)上的障碍。体现出译者的译法不够严谨。
3--译文出现模棱两可或词不达意,但读者经过阅读上下文可猜出译者所犯的错误。会造成理解(主要指技术层面)上的障碍。
4--译文出现无法理解的句子或与(技术)事实不符的地方,读者很难猜出原文真正的意思。会给理解(主要指技术层面)造成严重障碍。
5--译文在中文语法上是正确的,从表面上也看不出有技术上的错误,但实质上存在着极严重的技术错误,甚至与原文背道而驰,严重误导读者,给读者造成了技术坏点。
在作者的话(Author's Note)中,严重程度:1
第一段最后一句:I'm usually pretty busy,and my cat refuses to learn the Windows API.中译本中略掉了。
译文:我经常很忙,而且我的猫(我没看错吧,Charles还养猫?)也拒绝学习 Windows API。
P3 L16,严重程度:2
Flat Address Space被译成平面地址空间
Flat Address Space单层地址空间:是指具有单一模块、单一地址,未形成层次化结构的系统。
(我也不太确定,但网上采用的是‘单层地址空间’,个人也同意后者(所以才到网上查了一下))
23页,第13行,严重程度:4
“宽字符不需要Unicode。Unicode是一种可能的宽字符编码。”这是什么意思?查查原文,原来是:Wide characters aren't necessarrily Unicode. Unicode is one possible wide-character encoding.意思是说:“宽字符并不等同于Unicode。Unicode只是一种可行的宽字符编码(方案)。”
35页,第13行,严重程度:3
“你必须用sizeof(TCHAR)将其分开。”
其实看书的人看到此处,应该知道这里不应该是什么“分开”,而应该是除法的“除”。查查原文,果不其然:You must divide it by sizeof (TCHAR). 译者是不是已经无知到了只知道divide一词的“分开”这个意思?
50页: 第 -2 行 严重程度:2
错误: 实际上,RegisterClassA函数将获得一个指向WNDCLASSA结构的指针,而RegisterClassW函数将获得一个指向WNDCLASSW结构的指针 更正: 实际上,RegisterClassA函数接受一个指向WNDCLASSA结构的指针作为参数,而RegisterClassW函数接受一个指向WNDCLASSW结构的指针作为参数。
附言: Actually, there's a RegisterClassA function that takes a pointer to the WNDCLASSA structure, and a RegisterClassW function that takes a pointer to the WNDCLASSW structure. RegisterClass返回的是atom,译文给人误解为返回了指针!
P51,第17行,严重程度:4
“当然,这代码段假定由于某种原因,RegisterClass不是默认的...”
原文是:This code fragment assumes, of course, that RegisterClass is not failing for some other reason, such as a NULL lpfnWndProc field of the WNDCLASS structure.
failing是什么意思,懂点英文的朋友都知道,是出错失败啊,怎么变成“默认”了?
应该译成:当然,这代码段假定RegisterClass没有由于其它的原因(比如WNDCLASS的lpfnWndProc域被赋了NULL值)而导致出错(failing)。
51页,最下面,严重程度:1
“最后,一条历史性的经验...”,原文是historical note,这个翻译虽然不伤大雅,但用‘历史性的’一词会让读者肃然起敬,但后面说的不过是以前和现在的编码不同之处而已。historical不光有‘历史性的’意思,还有‘过去用过的’的意思,这里可用意译:以前曾用过的编码方式。。。