当前位置: 首页 > news >正文

iPhone开发秘籍一书中的翻译错误

市面上热卖的iPhone开发秘籍是iPhone Developer's Cookbook的中文版.

很欣赏几位译者对iPhone开发的普及所做的努力,但技术功底实在不敢恭维。

翻译上有明显的漏洞,不是简单的typo,而是似乎译者并没有深入学习过c++或者说书翻译得很匆忙而没有被很好的review过。

我把我看到的一些错误及其修正持续更新在本帖中:

------

1.2节(组建iPhone项目)中,如下一个简单的句子有两处错误:

“它是ANSI C的一个面向对象的子集,而ANSI C是结合C和Smalltalk开发而来的”

英文原文:

“This is an object-oriented
superset of ANSI C, which was developed from a mix of C and Smalltalk.”

其中superset被误译为subset“子集”,而C和Smalltalk的结合明明是Objective-C,怎么成了ANSI C?

正确的译文应该是:

“它是ANSI C的一个面向对象的超集,是由C和Smalltalk语言的一个结合开发而来”。

------

1.5 SDK 限制

"in other ways" 应该是"在其它方面",而不是"换句话说". 整个语境应该是说:

除了使用相似的语言和框架外,在其它方面,和Mac机编程相比,iPhone的开发都是受限制的.

------

1.6 编程范型

"iPhone编程中心采用两种重要的范型",低级错误.

英文原文:iPhone programming centers on two important paradigms

centers on是该句的谓语, 正确的译文应该是:"iPhone编程以两种重要的范型为中心:"

------

1.6.1 "伪多重继承(通过调用转移)", 译者翻译比较合适:

英文原文:

"Multiple inheritance is an important feature of Objective-C’s approach to object- oriented programming. iPhone classes can inherit behaviors and data types from more than one parent.Take the class UITextView, for example. It’s both text and a view. Like other view classes,it can appear onscreen."

原文有一些含混不清, 多重继承在面向对象的语言如C++里是有特定含义的,指的是同时从两个父类派生. 而我们知道Objective-C和Java语言一样是单继承的,只有一个父类. 其面向对象的多重继承特性是通过"消息转发"(或译文中的调用转移)来实现的. UITextView类实际上只有一个父类UIView.下面补充苹果网站上关于消息转发和多重继承特性的官方说明:

消息转发和多重继承

消息转发很象继承,并且可以用来在Objective-C程序中模拟多重继承。如图 5-1所示, 一个对象通过转发来响应消息,看起来就象该对象从别的类那借来了或者”继承“了方法实现一样。

图 5-1消息转发

Figure 5-1 Forwarding

在上图中,Warrior类的一个对象实例将negotiate消息转发给Diplomat类的一个实例。看起来,Warrior类似乎和Diplomat类一样, 响应negotiate消息,并且行为和Diplomat一样(尽管实际上是Diplomat类响应了该消息)。

转发消息的对象看起来有两个继承体系分支——自己的和响应消息的对象的。在上面的例子中,Warrior看起来同时继承自Diplomat和自己的父类。

消息转发提供了多重继承的很多特性。然而,两者有很大的不同:多重继承是将不同的行为封装到单个的对象中,有可能导致庞大的,复杂的对象。而消息转发是将问题分解到更小的对象中,但是又以一种对消息发送对象来说完全透明的方式将这些对象联系起来。

------

page10下面, section 1.6.2:

"它提供了各种外观下的交互解释方式"

英文原文:

"So in that sense alone, the UIViewController does act as a controller by providing these links between the way things look and how interactions are interpreted."

应该译为:

"它提供了事物外观和交互行为解释两者之间的联系"

------

page21, 1.9.4 编辑标识信息

"只可以编辑公司名称条目"应该是"你可以只编辑公司名称条目"

相关文章:

  • 2020WHU校赛 I - Interesting Matrix Problem(规律+整除分块)
  • UVA1025 A Spy in the Metro (dp)
  • 欢迎大家来这里学习
  • UVA437 The Tower of Babylon(记忆化搜索)
  • MySQL启多个实例
  • UVA116 Unidirectional TSP(dp/多段图的最短路)
  • 忍受未知很重要
  • 背包九讲(1)——01背包
  • 两大重要活动议程
  • 背包九讲(2)——完全背包
  • Winforms: 把Label显示为多行
  • Codeforces Round #639 (Div. 2)
  • XXX项目鉴定总结!
  • UVA12563 Jin Ge Jin Qu hao(01背包)
  • 关于CPU步进
  • 【译】JS基础算法脚本:字符串结尾
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 3.7、@ResponseBody 和 @RestController
  • Angular 响应式表单之下拉框
  • bootstrap创建登录注册页面
  • canvas绘制圆角头像
  • EOS是什么
  • Javascript基础之Array数组API
  • mongo索引构建
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • tab.js分享及浏览器兼容性问题汇总
  • Zepto.js源码学习之二
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 译米田引理
  • 带你开发类似Pokemon Go的AR游戏
  • #{}和${}的区别?
  • #git 撤消对文件的更改
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二开)Flink 修改源码拓展 SQL 语法
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • **python多态
  • .form文件_一篇文章学会文件上传
  • .gitignore文件_Git:.gitignore
  • .net Application的目录
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • /var/log/cvslog 太大
  • @Autowired多个相同类型bean装配问题
  • @Import注解详解
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [Apio2012]dispatching 左偏树
  • [Bugku]密码???[writeup]
  • [C++随笔录] 红黑树
  • [Django 0-1] Core.Email 模块
  • [flask] flask的基本介绍、flask快速搭建项目并运行