“Analysis Patterns”的第4章“企业财务观察”有这么一小段:
The actual would be an actual status type with time offset of zero. The prior year is an actual with time offset of one year. The annual plan is a planned status type linked to the annual plan. The quarterly forecast is also a planned status type linked to the latest quarterly forecast. All the quarterly forecasts are instances of the plan.
2004(机械工业出版社)中译本的译文为:
标红的地方,翻译正确。
2020(人民邮电出版社)中译本的译文为:
这个译文里面有一些问题。
(1)“是一个”不等于“具有”
这段文字是围绕图4.11阐述的。
原文的类型图如下:
2020中译本翻译的类型图如下:
我画的UML类图如下:
特别注意一点,原文可能为了省空间,在命名Status Type的子类型时,只用了两个形容词Actual、Planed,这是不合适的,应该写全:Actual Status Type、Planed Status Type。
特别是翻译成中文时,Planed容易和旁边的另一个类“计划”混淆。2020中译本和UML类图把名称补全了。
有了图,我们来看一看,“A是一个B”和“A有一个B”的区别。
①A是一个B
意思是:对象A是类B的一个实例,如下图:
例如,旺财是一只狗:
为了简化,此处直接以名称属性值作为标识。严格来说,应该是这个对象有一个无意义的标识,然后其“名称”的属性值为“A”或“旺财”。
②A是一种B
意思是:类A是类B的一个子类:
例如,狗是一种动物:
③A有一个B
意思是:类A的实例有一个类B的实例作为属性值。
例如,狗有一个狗头:
意味着可能存在以下链接:“旺财”这只狗有一个“旺财头”狗头。
原文的意思应该是①A是一个B。
“年度计划”是一个“计划状态类型”,或者说,“年度计划”是“计划状态类型”的一个实例。
(2)如果把“A具有B类型”当作“A是一个B”来理解呢?
例如,“5具有整数类型”当作“5是一个整数”来理解。这个勉强可以,可能2020中译本译者就是这样来思考的。
但是这又带出一个之前提过的老问题,我们通过比较以下说法,看一下是什么问题:
①A具有B
“旺财”具有“狗”,这说不通,但这样的错误很少犯。
①A具有B类型(理解为A的类型是B)
“旺财”具有“狗”类型,这个可以。
我们再来对比一下2020中译本的译文和类型图:
令A为“上一年的值”,B为“实际状态类型”,代入【A具有B类型】,得到:
“上一年的值”具有“实际状态类型”类型
读者应该可以看出来,2020中译本的译文少了末尾的“类型”二字,只写了:
“上一年的值”具有“实际状态类型”
这就相当于:
“旺财”具有“狗”
**********
这并不是一个“只是少了两个字”的小事,背后还是我们之前的漫谈说过的问题,对知识级概念的理解有误。
为什么【“旺财”具有“狗”】的错误不容易犯,而【“上一年的值”具有“实际状态类型”】的错误容易犯呢?
我们来看下面这个例子:
类叫“性别”,“男”是“性别”的一个实例,说“男”的类型是“性别”也可以。
“男”具有“性别”,说不通,但是这个错误我们基本上不会犯。
我们把“性别”改名为“性类型”呢?
“男”具有“性类型”,这个仍然是错的,因为我们只是把“性别”改成了“性类型”,但是这个错误就很容易犯了,因为这个类的名字里面有个“类型”。
我们之前的“《分析模式》漫谈06-实例不是“一种“隔壁老王”也说过类似问题:
不能因为类(或类型)的名称里面有个“类型”,对它的处理就和别的类不一样。
“**类型”只是它的名字而已。这样的类,可能在概念上比别的类要抽象一点,但要进一步抽象,还可以有比它更抽象的。
往往是在这里产生了错觉,才会出现类似这样的一个错误。
这里有几个题,可以训练一下:
(3)没有“计划值”这个类或类型
再对比一下2020中译本的类型图和译文:
上面的类型图并没有“计划值”,只有一个类型叫“计划”。
原文小心翼翼地使用比较严谨的、形式化的表达,译文却改为更有“文采”的自然语言,这样的改动在2020中译本中有不少。
标签:48,漫谈,财有,旺财,中译本,2020,具有,译文,类型 From: https://blog.csdn.net/rolt/article/details/144029701