断断续续搞了快十个月,总算把这个项目收尾了——《802.11 Wireless Networks: The Definitive Guide》中文版,从初译、技术审校到最终排版定稿,全部走完。做无线协议这行的人对这本书应该都不陌生,很多写路由器固件、无线网卡驱动、Wi-Fi测试用例的朋友,入门书单里都有它。没翻以前我以为最难的是英文长难句,翻完才意识到,真正卡人的是你能不能把802.11的帧结构、DCF接入机制、四次握手和漫游流程彻底吃透——吃透了,句子自然顺;吃透了,译文才有资格叫中文版。这篇就当作整个翻译项目的复盘总结,写给对无线协议底层感兴趣的人,也给正准备啃原版的朋友一个参考。不想写成读书笔记,更像一份实际操作记录。
1. 为什么是这本书:802.11这条路,缺的从来不是配置命令
1.1 市面上讲Wi-Fi的书很多,真正讲底层的很少
我见过不少工程师,排查无线问题靠的是"重启大法"和"换个信道"三板斧。这不是态度问题,是知识体系的缺口。市面上讲Wi-Fi配置、组网、优化的书并不少,但大部分是配置命令和最佳实践的堆叠,很少解释清楚一件事背后的机制:为什么2.4GHz信道1、6、11能互不干扰?为什么弱信号下吞吐量掉得那么快?为什么漫游时语音会卡?这些问题的答案都在802.11的物理层和MAC层机制里,而不是在命令行里。原书的价值就在这里,它不教你敲某条命令,而是把物理层和MAC层协议、帧格式、接入流程、省电机制、安全体系、QoS机制拆开讲透。对做协议栈开发、驱动开发、无线测试的人来说,这种底层视角是必须的;对网工来说,弄懂之后再看那些配置命令,会觉得每个参数都有出处。
翻译前我做了个小调研,问了一圈身边朋友:如果要你给新人推荐一本802.11的书,你选哪本?十个人里七个第一反应是这本,理由挺一致——结构完整、概念准确、而且不回避数学细节和时序细节。随之而来的问题是,原版对英文阅读能力有一定要求,尤其是第三部分讲MAC协议的那几章,从句套从句,一个句子半页长。这其实恰好说明:如果要做中文版,翻译质量必须跟得上原书的严谨程度,否则整本书会变成术语堆砌,读者翻几页就不想看了。
1.2 原书的知识骨架到底长什么样
在动手翻译之前,我先把全书框架梳理了一遍。整本书大体分几个大块:最早几章是无线通信基础,讲频谱、天线、信号传播、调制方式,属于物理层的热身;中间最重的一块是MAC层,包含CSMA/CA接入机制、各种帧间隔、帧格式、DCF和PCF、碎片化与重组、省电模式;后半部分用很大篇幅讲802.11安全,从WEP的缺陷到WPA/WPA2的四次握手和802.1X认证,再到后来802.11ax新增的OWE、SAE这些机制;最后是网络规划、部署和性能调优。
这个结构决定了翻译顺序不能乱来。物理层章节里的术语(频段、信道、符号率、MCS)会反复出现在MAC层和安全章节里,如果前面没把术语钉死,后面每一章都要翻工。所以我当时定了一个规矩:不管先译哪一章,术语表必须在一周内先跑起来,并且在全书框架确定之前,先做出术语表的第一版。这是整个项目最值得的一笔投入,后面省下的返工时间远超想象。
2. 翻译入门第一课:先懂协议,再懂文字
2.1 长难句只是表面,真正的坑在技术语义
很多朋友问我翻译这本书最大的难点是不是英文。说实话,英文阅读能力只要过关,长难句根本扛不住事,因为原书作者本身写得很有条理,难点在于技术语义的准确传达。举个最简单的例子,英文里表示强制要求时常用shall,比如"The station shall not transmit",如果翻译成"该站点不应该发送",语气就完全变了。标准语境下shall是强制性义务,对应的中文应该是"不得""必须"。你要是把shall翻译成"应该",读者就会理解为"建议不要",这是翻译事故级别的偏差。
这类例子还有很多。CSMA/CA的全称是载波侦听多路访问/冲突避免,核心是发送前先侦听信道、随机退避、避免碰撞。翻译成"冲突避免"没错,但读者很容易把它和以太网的"冲突检测"混为一谈。所以遇到这种概念,译者不能只翻词,还要在必要时用注释点出它和CSMA/CD的本质区别。我在这版译稿里专门加了一处译注,说明两者的行为差异,原书字面上没有这句话,但这是中文读者一定会产生的疑问。
2.2 一个差点翻车的例子:EDCA参数集
拿一个我实际踩过的例子来说。在讲QoS的那一章,原书用了很大篇幅讲EDCA(增强分布式信道接入),其中有一张表格列出了不同接入类别(AC_BK、AC_BE、AC_VI、AC_VO)对应的EDCA参数集,包括AIFSN、ECWmin、ECWmax、TXOP limit这些字段。初译文稿里,有人把AIFSN直接写成了"仲裁帧间间隔数",概念上不算错,但表头只放中文没有英文,这就出问题了——读者只要去对照抓包工具里的字段名,完全对不上。
还有一处更隐蔽:TXOP limit如果直译成"传输机会限制",乍一看没问题,但它少了一层意思。TXOP是节点赢得信道后获得的一段时间窗口,在这段窗口内可以连续发送多帧,重点是"机会",不是"限制"。如果读者不知道TXOP是什么,他可能会误以为这是某种限速参数。后来我们的处理方式是:首次出现用"传输机会(TXOP)",表格注释里写明"节点获得信道后可连续发送的时长上限",既保留标准术语,又补足机制含义。
2.3 数字、单位与时序:照抄原文也可能出错
协议类书籍里最不能出错的反而是数字和单位,因为它们没有废话空间。原书中有大量dBm、mW、dBi、微秒、毫秒、时隙(slot)之类的单位和数值。翻译初稿时,我们曾把一处信噪比数值表里的"20 dB"照抄成"20分贝",看起来没错,但换行排版后读者容易看漏单位。这只是格式问题。真正的坑是单位换算:有些地方原文用mW表达发射功率,旁边括号给了dBm,中文版如果只保留其中一个,读者就少了一条对照线索。我的规则很简单:数字、单位、公式必须保持原文完全一致,不允许译者按自己的理解"优化"。
还要注意时序描述。802.11协议里有很多"在收到帧后等待SIFS再回复"的描述,SIFS是短帧间间隔,固定值,但DIFS、PIFS、AIFS这些间隔在不同场景下数值不同。翻译"wait for a period"时不能随手写"等待一段时间",严谨的对应是"等待一个空闲时段",最好把对应的间隔名称也用括号标注出来。这一条在初稿里没少被技术审校打回。
3. 术语表怎么建:这是中文版的地基
3.1 三类术语的处理策略:保留、直译、意译
技术翻译最怕的不是翻错一个词,而是一本书里同一个概念多次出现时用了不同的词。无线协议领域经过多年积累,很多术语已经有了行业习惯用法,但具体到这本书,仍然有三类需要区别对待。
第一类是保留原文缩写。AP、STA、BSS、ESS、SSID、RSSI、QoS、OFDM、OFDMA、MU-MIMO这些,直接保留英文缩写,不强行翻译成"接入点""站点""基本服务集"。原因很简单:中文读者读完书要去看协议标准、看抓包工具、看芯片手册,这些场景里大家讲的就是AP、STA,强行翻译反而制造壁垒。第一次出现时可以给全称加注释,但正文和表格里统一用缩写。
第二类是直译加括注。beacon译为"信标(Beacon)",帧间间隔译为"帧间间隔(IFS)",关联译为"关联(Association)",省电模式译为"省电模式(Power Save)"。这类术语直译后能看懂,但为了让读者回查英文原文时能对上,首次出现或术语表中保留英文。
第三类是需要意译的。这里的"意译"不是自由发挥,而是用一个中文词组把机制说清楚。backoff就译成"退避",retry limit译成"重试上限",overlapping basic service set译成"重叠基本服务集"。这类词直译会显得僵硬,意译反而准确。但必须建立术语表,确保通篇一致。最终我们的术语表大概收了300多条,其中约四成是保留英文缩写,三成五是直译加括注,剩下的是意译加统一规范。
3.2 frame、packet、datagram:先分清这三个词再动笔
没有做过底层协议的人很容易把frame、packet、datagram混着翻,全写成"数据包"。这在很多技术书里也许能蒙混过关,但在这本书里不行。原书作者在介绍协议层次时专门区分了不同层级的叫法:数据链路层的帧(frame)、网络层的数据包(packet)、还有上层的数据报(datagram)。如果翻译时全都用"数据包",读者看到"帧格式""帧校验序列"的时候就会疑惑:为什么一会儿叫包,一会儿叫帧?
我的处理方式是做一个"同义词差异说明"放在译序里:frame统一译"帧",packet统一译"分组"(少数场合用"数据包"并括注英文),datagram译"数据报"。正文中出现datagram的场景量不大,但必须区分。类似容易混的词还有throughput(吞吐量)和bandwidth(带宽),latency(时延)和delay(延迟),channel(信道)和channel width(信道宽度)。这些词在初稿里反复出现混用情况,光靠译者的直觉根本兜不住,只能靠术语表加检查清单来兜底。
3.3 团队协作:术语表不是一次性的,要持续回收
如果全书只有一个人翻,术语表心里有数就行。但实际不可能三个月内一个人翻完一本数百页的技术书,所以我拉了两位朋友帮忙,一位平时做无线测试,一位做嵌入式开发。三人并行翻译,如果各翻各的,术语统一度基本没救。从第一周开始,我们就建立了术语表同步机制。
具体做法很简单:每个人译每一章时遇到新的术语,先查术语表;术语表没有的话,自己给出暂译名并填入共享表格,每周同步一次。遇到争议术语,不靠讨论决定,而是定一个明确标准:查标准文档的官方措辞,查已有经典译本的习惯,查抓包工具里的字段显示。比如beacon interval,标准文档对应的中文资料常见"信标间隔",抓包工具显示为Beacon interval,那就统一用"信标间隔(Beacon interval)"。遇到实在对不上的,比如opportunistic key caching,标准文档没有统一译法,就译成"机会性密钥缓存"并加括注,在术语表里备注背景。
这套机制的副产品是一份可以复用的术语表,后续写文档、做培训都能用。这也是我建议所有做技术翻译的人都要坚持做的一步——它不是额外工作,它是节省后续所有校对时间的前提。
4. 实操:六轮迭代,从初译到定稿到底做了什么
4.1 初译阶段:按能力拆章,按节奏推进
初译阶段我把全书章节按内容类型分成三类:物理层和信道部分交给某位懂射频的同事,MAC层和QoS部分由我自己主译,安全和部署章节交给另一位做测试的朋友。为什么这么分?因为译稿质量很大程度上取决于译者对内容的熟悉度。让网工去翻物理层,他可能会把MCS、编码率这种概念翻出外行话;让开发去翻部署章节,又会漏掉很多实务经验层面的弦外之音。
每天产量也要控制。技术翻译不是文学翻译,但同样需要状态,疲劳翻译是术语不统一的头号原因。我们给自己定的节奏是每天3000到5000字,不追求一天一章。翻译过程中直接在文档里留批注,凡是有疑问、有歧义、需要查证的地方,用统一的标记标注,不打断写作节奏。初译阶段大概占总时间的五成,回头看这个比例是合理的——指望初译一步到位,后面审校会百倍痛苦。
4.2 技术审校:找一个不参与翻译的人做协议审查
初译完成之后,我没有马上开始语言润色,而是先做了一轮技术审校。这一步最关键的地方在于:审校的人最好不是译者本人,也不是参与分工翻译的人,而是一个懂协议、懂无线原理、但没掺和翻译过程的人。我请了一位做过无线协议栈开发的同事,让他拿英文原版对照译稿逐章过。他不管句子通不通顺,只看三件事:数字是不是对的,单位是不是对的,约束条件是不是丢的。
比如shall和should的区别,初译时我们大部分都注意了,但仍有几处漏网,被他标了出来。还有一个更典型的例子:在讲RTS/CTS机制的章节,原书写到"the RTS frame contains the duration value that is not a duration of the RTS frame itself",从句绕得比较多。初译稿里出现了语义含糊,他没有看懂,直接打了问号。后来我们重新翻成"RTS帧携带的时长字段,表示的不是RTS帧本身的长度",并把duration在这里的含义加了一个译注。如果没有这一轮技术审校,这个问题很可能就带着含糊的表述交付了。
技术审校阶段还要做一项工作:把原文图表里的字段名、状态机里的状态名,全部和译稿对照一遍。这一遍很痛苦,但很有必要。因为表格内容很容易在翻译和排版过程中被改错、漏掉,或与正文矛盾。
4.3 语言风格与中英文混排:细节决定阅读体验
技术审校通过后,语言润色和排版检查又是两回事。技术书籍的中文排版有个老大难问题:中英文混排。英文单词和中文之间要不要空格?标点用全角还是半角?括号里的英文和中文怎么排?抓包工具字段名保留原样,译注里又怎么区分?这些问题不提前定规则,最后的稿子一定乱七八糟。
我们定的规则比较保守:正文里中英文之间保留空格,术语第一次出现带英文括注,后续不再重复;所有数字和单位中间不空格,比如"100 ms"写作"100ms";代码块、命令行、配置文件示例一律保持英文原样,不翻译,因为读者复制到真机环境里必须用英文。图表标题中英文双语,表内字段名保留英文,字段说明给中文。这个规则可能不是最漂亮的,但胜在一本书内绝对统一,读者体验是第一位的。
排版检查放在最后一遍:逐页过PDF预览,看表格有没有被挤压、公式有没有乱码、长英文单词有没有断行断裂、图表引用编号和中文标题对不对齐。这一遍虽然琐碎,却是整个项目能否真正交付的关键。
4.4 定稿验收:回译抽查与发布清单
最后一轮我做了两件事。第一件事是回译抽查:随机挑十段中文译文,请一位不参与翻译的朋友把它们回译成英文,再与原文比对,看语义有没有漂移。不需要逐字一致,但关键实体、参数名、约束条件、否定关系必须能回到原词。十段里我们就发现了一段关于漫游触发条件的翻译,中文读起来通顺,回译后的英文却变成了"当信号强度低于某个阈值",而原文的真实含义是"当信号强度低于某个阈值且维持一段时间"——漏掉了时间条件。这种问题靠语言润色看不出来,回译抽查很有效。
第二件事是写了一份发布清单:封面、前言、目录、译序、术语表、索引、版本说明,逐项打勾。索引是最容易被忽略的,原书的索引按英文关键词排,中文版如果直接照搬,中文读者根本没法用。我花了两个晚上重新整理索引,中文关键词和英文关键词做成双表对照。做完这两件事,这个版本才算正式定稿。发布渠道就是常见的电子书阅读平台,打包成标准的PDF和EPUB格式。当然这是个人学习型翻译项目,不是商业出版,我在文中都标注了原版版权信息,也建议有条件的朋友购买正版。
5. 踩坑实录与常见问题速查
5.1 五个真实翻车现场
第一个:duration字段。原书和标准里大量出现duration,很多地方直译成"持续时间"。这个译法不是错,但容易造成误解,尤其是读者学到网络分配向量(NAV)的时候,会以为它是某种统计意义上的时间长度。其实它是帧头里的一个字段,用来告诉其他站点"我这个传输占用信道多久",用于虚拟载波侦听。与其叫"持续时间",不如叫"时长字段"并括注英文,避免初学者把它当成网络延迟指标。
第二个:association统一问题。初译稿里曾把association译成"联合",把reassociation译成"重新联合"。这个词单独看能理解,但放在"站点需要与接入点完成关联(association)后才能收发数据"这样的句子里,读者会愣一下。后来全量替换为"关联",并在译序里加了一句说明。
第三个:reserved字段。管理帧里经常出现reserved字段,初译时直接写"预留"。这在中文里容易被理解成"为将来保留的字段",实际上协议里的reserved通常表示"该取值为保留值,接收端应当忽略,目前没有定义具体用途"。译成"预留"不算事故,但最好在第一次出现时加译注,否则读者看到"预留"会去猜它将来拿来干什么。
第四个:单位写法混排。有一个表格列的是不同调制方式下的速率,初译时同事把"Mbps"写成了"兆比特每秒"。这种写法不能算错,但全书其他地方都用英文缩写,混排后读者看着很累。我的规矩是全书单位一律用标准英文缩写,不用中文"兆""千"这类词。
第五个:slot time和timeslot。slot time是802.11里的专有概念,是退避算法的最小时间单位,我见过有人翻译成"时段"或"时间片",这两个词在中文里含义太宽泛。我们统一译"时隙"并保留英文"slot time",避免和"timeslot"混淆。这个坑在讲退避算法的章节特别容易踩。
5.2 常见问题速查表(适合直接收藏)
| 现象 | 原因 | 处理办法 |
|---|---|---|
| 同一术语出现两种译法 | 多人并行、未同步术语表 | 每周合并术语表,用查找替换统一全稿 |
| shall/should/may 语气丢失 | 译者按口语习惯处理 | 强制义务统一用"必须/不得",建议用"建议",允许用"可以" |
| 英文长句从句套从句 | 直译导致中文难读 | 拆分句子,同时保留条件限定词,必要时用"(条件:……)"补足 |
| 表格里的字段被漏译 | 排版时手工改表格 | 技术审校时逐格比对原文 |
| 数字单位不一致 | 不同章节自行换算 | 全书统一单位缩写,数值不换算,除非原文已有换算 |
| 索引无法使用 | 直接沿用英文索引 | 重新整理中文关键词索引,附英文对照 |
这张表只能说明结论,实际操作里还要配一张检查清单。比如"术语一致性检查"可以写成脚本自动跑:把术语表导出成CSV,再用脚本扫描译稿,凡是出现英文缩写却不在术语表里的、凡是中文术语和术语表不一致的,全部列出来。人工再看一遍这些警告,效率高很多。
5.3 复盘数据与耗时比例
翻完这本书,我对整个项目的投入有了一个比较直观的感觉。英文技术书翻成中文,字数正常会膨胀15%到25%,这本书因为术语密集、句子结构紧凑,实际膨胀率控制在了20%左右,排版时增加了一些换行。术语表最终约350条,其中我们内部争论过、最终定稿时专门备注了决策理由的大概有80条。
耗时比例也有参考价值:初译约五成,技术审校约三成,语言润色加排版校验约两成。很多人以为翻译的权重在"译",实际上初译只占一半,后面每一轮都在消化之前埋的坑。如果重新做一次,我会把初译阶段的术语规范再收紧一点,宁可前面每天少写500字,也要把每个新术语第一次出现时的译法敲定,后面的替换工作能省下很多时间。
6. 翻译之外:这本书给我留下的技术复盘
6.1 边翻译边补课:把新旧协议机制对齐了
翻译过程最爽的部分,其实是借这次机会把802.11从古早演进到当下的完整脉络捋了一遍。早年的b/g时代,DCF、帧间间隔、退避算法是绝对主角;到n/ac时代,40/80MHz带宽、MIMO、帧聚合、块确认这些机制逐渐变成重点;到ax时代又突然冒出OFDMA、BSS Coloring、TWT;再往后还有MLO多链路操作、4096-QAM这些新东西。原书版本对应的协议状态停留在某一阶段,但翻译时一定会遇到作者没有明说、而标准已经更新的地方。
我的办法是,每翻译完一章,就用抓包工具抓一次对应的真实报文,看帧头里的字段和描述是否对应得上。比如翻译到省电模式的TIM和DTIM部分时,我专门抓了一次手机无业务时的Beacon帧,对照TIM字段里的partial virtual bitmap,才算真正看明白了"哪些站点有缓存下行帧"的位图机制。这类操作不算是书里的硬性要求,但对理解原文有奇效,也顺手验证了译文里那些术语在真实报文中长什么样。
6.2 给准备啃原版或做技术翻译的三个建议
第一,千万别先翻正文,先翻译目录和术语表。目录能帮你建立全书结构感,术语表能让你在正文开始前就把最容易出现不一致的地方钉死。第二,翻译时要写译注,不要怕打扰正文阅读。中文读者和英文原版读者的背景知识不一样,译注是技术翻译的核心价值之一。第三,找一位不参与翻译的协议工程师做审校,比多找两位译者更有用。这个项目里帮我们揪出最多问题的,不是英语最厉害的人,而是最懂协议的那位同事。
最后再分享一个小技巧:定稿前,把译稿导出成纯文本,用脚本跑一遍半角符号检查和术语一致性检查。我之前以为人工校对足够,结果脚本报出来仍有几十处英文标点混进中文段落,还有几处AP和接入点混用。这种机器能检测的问题,靠人眼翻十遍都不一定全抓出来。做技术翻译,别迷信人海战术,工具辅助该上就上。