翻译的艺术-public/private

本文探讨了计算机技术词汇中public/private的翻译争议,分析了“公有/私有”与“公用/私用”的准确性及美感,并结合访问权限的概念进行深入解析。

翻译的艺术-public/private

 

计算机技术词汇的翻译并不太难,但是要翻译的很好就不是很容易了。前人有过标准,“信、达、雅”。对于计算机技术词汇,我的理解是:“信”就是要准确,“达”就是要尽量把作者的原意表达全面,“雅”就是高雅,也就是说翻译的要有美感。

简单的说,翻译的标准是要准确、有美感。前一个标准相对的客观,后一个标准比较的主观,不过对这个主观的标准仍然有迹可寻。我们看一个例子:“romantic”->“浪漫”,我们不说这个翻译的准确性(中文里面还有表达这个意思的相近词汇吗?),而其美感是勿庸置疑的,我觉得这是一个伟大的翻译。

这个翻译的美感来自于哪里呢?首先是这个翻译朦胧的表达了“romantic”的本意;另外还有,“浪漫”和“romantic”的发音有点接近。也就是说:朦胧的表达本意和接近的发音可以产生美感。

另外,最初的翻译和翻译传播广度对翻译本身的影响也很大。如果一个外文词汇经过最初的翻译并被广泛的接受了,那么即便有更好的翻译,也很难改过来了。这是习惯和大众的力量。

使用上面表达的意思,我们来考察一些有争议的翻译。首先是public/private,这个的翻译有“公有/私有”,或者“公用/私用”, 裘宗燕老师对此有过论述(http://www.is.pku.edu.cn/%7Eqzy/books/cppl/words.htm):

许多人将pablic/private说成是“公有/私有”,这两个词的意义与这里所需要的意义根本不符。public/private描述的是使用权:谁有权去访问/使用这些成分:是公众普遍可用,还是内部使用。因此我选择“公用/私用”这一对词。成员的所有权原本就非常清楚,完全不需要额外的描述。

在与网友“虫虫”的讨论中,他提出了一个很好的例证:假定类 B 将其成员 m 定义为 private,类 D 由类 B 派生。在类 D 的对象 d 中有没有成员 m?回答当然是“有”!但是 d 能使用其成员 m 吗?“不能”!因为其基类 B 已经将成员 m 保留为“自己用的了”,这也就是“私用”!由于基类将成员保留为私用,派生类的对象即使“有”此成员但却不能用。这又是“有没有”和“可不可以使用”确实不一样的一个明显实例。

首先从准确性的角度来说,public/private表达是可访问性,而不是可见性,而这两者有很大的差别,关于这点可以参考Hurb Sutter的《C++ Exceptional Style》。既然public/private表达是成员“访问权”的有无,而不是成员本身的有无(这基本上反驳了虫虫的例证),那么翻译为“公有/私有”是准确的了。

再者,从美感的角度来看,“有无”表达的是一种存在的状态,是一个中性的词汇,不带感情色彩。“有用/没用”,表达了一种个人的观点,一般是带有比较强的个人色彩的。比如:说某人(物)没用,某人(物)有用;骂人说“没用的东西”。所以“用”相对来说比较庸俗一些。表达“访问权”的有无,使用“有”比“用”更合适,更有美感。

所以我更加倾向于“公有/私有”的翻译方法。

这段内容是一个 **Makefile 中的规则定义**,它的作用是: > **定义一个伪目标 `private/apps/rftest`,用于构建 `rftest` 应用程序,并声明它依赖的模块。** --- ## 🔍 逐部分解释: ### ✅ 原始内容: ```makefile private/apps/rftest: private/libs/wlcsm public/libs/cms_msg public/libs/cms_util prrvate/apps/nvram $(MAKE) -C private/apps/rftest .PHONY : private/apps/rftest ``` --- ### 1. 目标定义: ```makefile private/apps/rftest: private/libs/wlcsm public/libs/cms_msg public/libs/cms_util prrvate/apps/nvram ``` - 表示构建 `private/apps/rftest` 这个目标之前,必须先完成以下依赖项: - `private/libs/wlcsm` - `public/libs/cms_msg` - `public/libs/cms_util` - `prrvate/apps/nvram`(注意这里拼写错误应为 `private`) > ✅ 这些依赖项通常是库文件或其他模块,需要先构建完成,`rftest` 才能链接或使用它们。 --- ### 2. 构建命令: ```makefile $(MAKE) -C private/apps/rftest ``` - 进入 `private/apps/rftest` 目录,并执行该目录下的 Makefile。 - `-C` 是 GNU Make 的参数,表示切换目录后再执行 Makefile。 --- ### 3. `.PHONY` 声明: ```makefile .PHONY : private/apps/rftest ``` - 表示 `private/apps/rftest` 是一个“伪目标”(phony target),不是一个真实的文件名; - 作用是确保即使存在同名文件,也会每次都执行该规则; - 所有用于驱动子目录构建的目标都应声明为 `.PHONY`。 --- ## ⚠️ 注意拼写错误: ```makefile prrvate/apps/nvram ``` 应为: ```makefile private/apps/nvram ``` 这是一个拼写错误,会导致构建系统找不到依赖项,需要注意修复。 --- ## ✅ 总结 | 部分 | 含义 | |------|------| | `private/apps/rftest:` | 定义一个 Makefile 目标 | | 依赖项列表 | 构建 `rftest` 所需的前置模块 | | `$(MAKE) -C ...` | 切换目录并执行子 Makefile | | `.PHONY` | 声明该目标不是文件,而是动作 | --- ## 🧠 使用场景 - 常见于 Broadcom、MTK、Realtek 等嵌入式 SDK 的模块化构建系统; - 用于控制模块构建顺序,确保依赖项先构建; - 支持多层 Makefile 结构,便于管理大型项目。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值