html tool

2012年7月1日星期日

Dive into Python 的我的翻译X


       2
[原文]P117
        You have the name of a class      as a string (parserName),
and you have the global namespace  as a dictionary (globals()).

[pope译] 你有一个以字符串(parserName)命名的类,并且你有一个作为(globals())字典的全局命名空间.
[net 译 来源:http://woodpecker.org.cn/diveintopython/html_processing/all_together.html]
我们有了一个字符串形式 (parserName) 的类名称,还有一个 dictionary (globals()) 形式的全局名字空间。
【popexizhi:
1.这次说as 这两个句子net翻译中为“...形式的..”,看原文,自己感觉加上这个解释再读,有类比的韵味,翻译吗?net使用的是不错的选择,但自己感觉应该有更好的,再想一想啊!
2.说自己的翻译吧,这里的name又是一个名称动用的翻译错误,the name of a class as a string(parserName) ,自己翻译为“以字符串(parserName)命名的类”,好吧,直接翻译听起来是那么回事,但从含义上一讲,哪个类的命名不是用字符串呢?这个是常识性错误吧!:)以后翻译完了,像处理其他事情一样,自己看看吧!好习惯,不是时间不时间的问题。别急啊!
3.这个"the global namespace as a dictionary(globals())"翻译为“一个作为(globals())字典的全局命名空间.”这个倒是还说的不错的,从这个翻译可以套用一下上一句,翻译为“一个作为字符串的类名称”这个好像不错啊!:)嘻嘻,看来 自己以后遇到the name of 想要名称动用的翻译时,自己就要注意一点儿了:)】

Combined, you can get a reference to the class which the string names. (Remember, classes are objects, and they can be assigned to variables just like any other object.) If parserName is the string 'ChefDialectizer', parserClass will be the class ChefDialectizer.
[pope译]联合的([?]combined,如何翻译),你可以得到一个包含这个类的命名空间的索引。(记住,classes是对象,并且他们可以通过参数引用像其他对象一样。)如果parserName 的字符串是ChefDialectizer,parserClass 将是 类 ChefDialectizer.[?]上面这段好好查一下意思吧,看翻译应该是使用对象引用的方式引用类名称了,但是自己还是不太明白这个结构是如何实现的。

[net 译 来源:http://woodpecker.org.cn/diveintopython/html_processing/all_together.html]
合起来后,我们可以得到以前者命名的类的引用。(回想一下,类是对象,并且它们可以像其它对象一样赋值给一个变量。) 如果 parserName 是字符串 'ChefDialectizer'parserClass 将是类 ChefDialectizer

【popexizhi:
1.combined net 译为 “合起来后”,自己原来倒是直接翻译成adj 了,语义上说的过去,但语法上就太牵强了。:) 倒是感觉此处翻译为“合之”倒是不错,一会儿联系下文再好好翻译一下。

2.the string names 自己翻译成 命名空间了,这个可是个大错误,命名空间是namespace 明确一下,这个错误说明自己的基础太不稳定了,即使头脑再混这样的错误也是级别太重了:)检讨一下。

3.下面说which ...的从句翻译,自己解释成“包含”,不是不可以,只是不太准确。reference 是引用的直译 ,索引应该是index 这个应该是数据库多用吧?!python中对于类的相关内容,应该没有直接关系的,意思上可能有相近的地方,但你的这个翻译还是太不靠谱了。:) ,好吧下面说说你的改进翻译:合之,君得此名之类于引用。

4.“remember”
net译:回想一下;
pope译: 记住;
net 译的是说现在做回忆的动作,而自己做的是现在让人家做“记住”的动作。动作差异很大嘛!这个后面的“classes are objects”,在5.8章中是说过的“Python also supports class attributes, which are variables owned by the class itself.”所以这个位置自己的翻译是错误的。
这里学习一下remember,两个意义了,
一是你一直知道的“记住”这个动作;
二是“回忆,记起,提及,记得”,对已经记忆的内容的重现,使用动作。
改进译应该使用:记得(好老爷爷讲故事的感觉啊!:))

5."be assigned to"
ner译:赋值给;
pope译:引用
自己是对reference (引用)这个词大爱了,只有有点儿模糊的翻译位置,就首选reference去捣乱啊:),看来自己的城管临时工一定是reference。玩笑了! 自己对assigned to 没记住吧,这里强调一下,
be assigned to :被分配给
reference: 引用,和index 的索引有相似之处,但是在非数据库位置使用
(看来自己的记忆中有个大迷糊区,所有看过,但不是和清楚之所以是因为的词在这里都存储着,而翻译时,我们倾向于使用reference 来迷糊自己:),我的任务是清理这个迷糊的区域内容:))

6..[?]上面这段好好查一下意思吧,看翻译应该是使用对象引用的方式引用类名称了,但是自己还是不太明白这个结构是如何实现的
的回答:
自己的猜想是正确的,就是这个意思,但是应该是“使用同名参数引用类名称”。至于结构上如何实现吗?!
在8.4中

  def unknown_starttag(self, tag, attrs):
        strattrs = "".join([' %s="%s"' % (key, value) for key, value in attrs])
        self.pieces.append("<%(tag)s%(strattrs)s>" % locals())

  读取原始文件时,通过以上创建了attrs表,而这里只是把其中的name格式化成大写开始字符串,赋值给parserName变量,下面的代码是将同名的class从globals()中取出付给parserClass,最后把此类的地址引用交给parser,至于为什么这个class会在globals()中,什么时间构建进去的而不是在其他的位置,这个下面再分析吧。基本实现过程就是这样了。
】    

没有评论:

发表评论