11.. SPDX-License-Identifier: GPL-2.0
22
3- =========================
4- Linux内核中文文档翻译规范
5- =========================
3+ ==========================
4+ Linux 内核中文文档翻译规范
5+ ==========================
66
77修订记录:
8- - v1.0 2025年3月28日 ,司延腾、慕冬亮共同编写了该规范。
8+ - v1.0 2025 年 3 月 28 日 ,司延腾、慕冬亮共同编写了该规范。
99
1010制定规范的背景
1111==============
1212
1313过去几年,在广大社区爱好者的友好合作下,Linux 内核中文文档迎来了蓬勃的发
1414展。在翻译的早期,一切都是混乱的,社区对译稿只有一个准确翻译的要求,以鼓
15- 励更多的开发者参与进来,这是从0到1的必然过程,所以早期的中文文档目录更加
16- 具有多样性 ,不过好在文档不多,维护上并没有过大的压力。
15+ 励更多的开发者参与进来,这是从 0 到 1 的必然过程,所以早期的中文文档目录
16+ 更加具有多样性 ,不过好在文档不多,维护上并没有过大的压力。
1717
1818然而,世事变幻,不觉有年,现在内核中文文档在前进的道路上越走越远,很多潜
1919在的问题逐渐浮出水面,而且随着中文文档数量的增加,翻译更多的文档与提高中
@@ -34,7 +34,7 @@ reviewer 们只能耐心地指导他们如何与社区更好地合作,但是
3434========
3535
3636工欲善其事必先利其器,如果您目前对内核文档翻译满怀热情,并且会独立地安装
37- linux 发行版和简单地使用 linux 命令行,那么可以迅速开始了。若您尚不具备该
37+ Linux 发行版和简单地使用 Linux 命令行,那么可以迅速开始了。若您尚不具备该
3838能力,很多网站上会有详细的手把手教程,最多一个上午,您应该就能掌握对应技
3939能。您需要注意的一点是,请不要使用 root 用户进行后续步骤和文档翻译。
4040
@@ -66,11 +66,18 @@ linux 发行版和简单地使用 linux 命令行,那么可以迅速开始了
6666 cd linux
6767 ./scripts/sphinx-pre-install
6868
69- 以Fedora为例 ,它的输出是这样的::
69+ 以 Fedora 为例 ,它的输出是这样的::
7070
7171 You should run:
7272
73- sudo dnf install -y dejavu-sans-fonts dejavu-sans-mono-fonts dejavu-serif-fonts google-noto-sans-cjk-fonts graphviz-gd latexmk librsvg2-tools texlive-anyfontsize texlive-capt-of texlive-collection-fontsrecommended texlive-ctex texlive-eqparbox texlive-fncychap texlive-framed texlive-luatex85 texlive-multirow texlive-needspace texlive-tabulary texlive-threeparttable texlive-upquote texlive-wrapfig texlive-xecjk
73+ sudo dnf install -y dejavu-sans-fonts dejavu-sans-mono-fonts \
74+ dejavu-serif-fonts google-noto-sans-cjk-fonts graphviz-gd \
75+ latexmk librsvg2-tools texlive-anyfontsize texlive-capt-of \
76+ texlive-collection-fontsrecommended texlive-ctex \
77+ texlive-eqparbox texlive-fncychap texlive-framed \
78+ texlive-luatex85 texlive-multirow texlive-needspace \
79+ texlive-tabulary texlive-threeparttable texlive-upquote \
80+ texlive-wrapfig texlive-xecjk
7481
7582 Sphinx needs to be installed either:
7683 1) via pip/pypi with:
@@ -92,7 +99,8 @@ linux 发行版和简单地使用 linux 命令行,那么可以迅速开始了
9299 https://github.com/sphinx-doc/sphinx/pull/8313
93100
94101请您按照提示复制打印的命令到命令行执行,您必须具备 root 权限才能执行 sudo
95- 开头的命令。
102+ 开头的命令。**请注意 **,最新版本 Sphinx 的文档编译速度有极大提升,强烈建议
103+ 您通过 pip/pypi 安装最新版本 Sphinx。
96104
97105如果您处于一个多用户环境中,为了避免对其他人造成影响,建议您配置单用户
98106sphinx 虚拟环境,即只需要执行::
@@ -126,11 +134,11 @@ sphinx 虚拟环境,即只需要执行::
126134检查编译结果
127135------------
128136
129- 编译输出在Documentation /output/目录下,请用浏览器打开该目录下对应
137+ 编译输出在 Documentation /output/ 目录下,请用浏览器打开该目录下对应
130138的文件进行检查。
131139
132- git和邮箱配置
133- -------------
140+ Git 和邮箱配置
141+ --------------
134142
135143打开命令行执行::
136144
@@ -150,20 +158,20 @@ git和邮箱配置
150158 smtpencryption = ssl
151159 smtpserver = smtp.migadu.com
152160 smtpuser = si.yanteng@linux.dev
153- smtppass = <passwd> # 建议使用第三方客户端专用密码
161+ smtppass = <passwd> # 建议使用第三方客户端专用密码
154162 chainreplyto = false
155163 smtpserverport = 465
156164
157- 关于邮件客户端的配置,请查阅Documentation /translations/zh_CN/process/email-clients.rst。
165+ 关于邮件客户端的配置,请查阅 Documentation /translations/zh_CN/process/email-clients.rst。
158166
159167开始翻译文档
160168============
161169
162170文档索引结构
163171------------
164172
165- 目前中文文档是在Documentation /translations/zh_CN/目录下进行,该
166- 目录结构最终会与Documentation/ 结构一致,所以您只需要将您感兴趣的英文
173+ 目前中文文档是在 Documentation /translations/zh_CN/ 目录下进行,该
174+ 目录结构最终会与 Documentation/ 结构一致,所以您只需要将您感兴趣的英文
167175文档文件和对应的 index.rst 复制到 zh_CN 目录下对应的位置,然后修改更
168176上一级的 index 即可开始您的翻译。
169177
@@ -177,13 +185,12 @@ git和邮箱配置
177185请执行以下命令,新建开发分支::
178186
179187 git checkout docs-next
180- git branch my-trans
181- git checkout my-trans
188+ git checkout -b my-trans
182189
183190译文格式要求
184191------------
185192
186- - 每行长度最多不超过40个字符
193+ - 每行长度最多不超过 40 个字符
187194 - 每行长度请保持一致
188195 - 标题的下划线长度请按照一个英文一个字符、一个中文两个字符与标题对齐
189196 - 其它的修饰符请与英文文档保持一致
@@ -192,7 +199,7 @@ git和邮箱配置
192199
193200 .. SPDX-License-Identifier: GPL-2.0
194201 .. include:: ../disclaimer-zh_CN.rst #您需要了解该文件的路径,根
195- 据您实际翻译的文档灵活调整
202+ 据您实际翻译的文档灵活调整
196203
197204 :Original: Documentation/xxx/xxx.rst #替换为您翻译的英文文档路径
198205
@@ -203,11 +210,11 @@ git和邮箱配置
203210翻译技巧
204211--------
205212
206- 中文文档有每行40字符限制,因为一个中文字符等于2个英文字符。但是社区并没有
207- 那么严格 ,一个诀窍是将您的翻译的内容与英文原文的每行长度对齐即可,这样,
213+ 中文文档有每行 40 字符限制,因为一个中文字符等于 2 个英文字符。但是社区并
214+ 没有那么严格 ,一个诀窍是将您的翻译的内容与英文原文的每行长度对齐即可,这样,
208215您也不必总是检查有没有超限。
209216
210- 如果您的英文阅读能力有限,可以考虑使用辅助翻译工具,例如 deepseek 。但是您
217+ 如果您的英文阅读能力有限,可以考虑使用辅助翻译工具,例如 deepseek。但是您
211218必须仔细地打磨,使译文达到“信达雅”的标准。
212219
213220**请注意 ** 社区不接受纯机器翻译的文档,社区工作建立在信任的基础上,请认真对待。
@@ -248,21 +255,25 @@ git和邮箱配置
248255
249256 Translate .../security/self-protection.rst into Chinese.
250257
251- Update the translation through commit b080e52110ea #请执行git log <您翻译的英文文档路径> 复制最顶部第一个补丁的sha值的前12位,替换掉12位sha值。
258+ Update the translation through commit b080e52110ea
252259 ("docs: update self-protection __ro_after_init status")
260+ # 请执行 git log --oneline <您翻译的英文文档路径>,并替换上述内容
253261
254- Signed-off-by: Yanteng Si <si.yanteng@linux.dev> #如果您前面的步骤正确执行,该行会自动显示,否则请检查gitconfig文件。
262+ Signed-off-by: Yanteng Si <si.yanteng@linux.dev>
263+ # 如果您前面的步骤正确执行,该行会自动显示,否则请检查 gitconfig 文件
255264
256265保存并退出。
257266
258- **请注意 ** 以上四行,缺少任何一行,您都将会在第一轮审阅后返工,如果您需要一个更加明确的示例,请对 zh_CN 目录执行 git log。
267+ **请注意 ** 以上四行,缺少任何一行,您都将会在第一轮审阅后返工,如果您需要一个
268+ 更加明确的示例,请对 zh_CN 目录执行 git log。
259269
260270导出补丁和制作封面
261271------------------
262272
263273这个时候,可以导出补丁,做发送邮件列表最后的准备了。命令行执行::
264274
265275 git format-patch -N
276+ # N 要替换为补丁数量,一般 N 大于等于 1
266277
267278然后命令行会输出类似下面的内容::
268279
@@ -286,13 +297,13 @@ warning 不需要解决::
286297然后执行以下命令为补丁追加更改::
287298
288299 git checkout docs-next
289- git branch test-trans
300+ git checkout -b test-trans-new
290301 git am 0001-xxxxx.patch
291302 ./scripts/checkpatch.pl 0001-xxxxx.patch
292- 直接修改您的翻译
303+ # 直接修改您的翻译
293304 git add .
294305 git am --amend
295- 保存退出
306+ # 保存退出
296307 git am 0002-xxxxx.patch
297308 ……
298309
@@ -301,28 +312,30 @@ warning 不需要解决::
301312最后,如果检测时没有 warning 和 error 需要被处理或者您只有一个补丁,请跳
302313过下面这个步骤,否则请重新导出补丁制作封面::
303314
304- git format-patch -N --cover-letter --thread=shallow #N为您的补丁数量,N一般要大于1。
315+ git format-patch -N --cover-letter --thread=shallow
316+ # N 要替换为补丁数量,一般 N 大于 1
305317
306318然后命令行会输出类似下面的内容::
307319
308320 0000-cover-letter.patch
309321 0001-docs-zh_CN-add-xxxxxxxx.patch
310322 0002-docs-zh_CN-add-xxxxxxxx.patch
323+ ……
311324
312- 您需要用编辑器打开0号补丁 ,修改两处内容::
325+ 您需要用编辑器打开 0 号补丁 ,修改两处内容::
313326
314327 vim 0000-cover-letter.patch
315328
316329 ...
317- Subject: [PATCH 0/1 ] *** SUBJECT HERE *** #修改该字段,概括您的补丁集都做了哪些事情
330+ Subject: [PATCH 0/N ] *** SUBJECT HERE *** #修改该字段,概括您的补丁集都做了哪些事情
318331
319- *** BLURB HERE *** #修改该字段,详细描述您的补丁集做了哪些事情
332+ *** BLURB HERE *** #修改该字段,详细描述您的补丁集做了哪些事情
320333
321334 Yanteng Si (1):
322335 docs/zh_CN: add xxxxx
323336 ...
324337
325- 如果您只有一个补丁,则可以不制作封面,即0号补丁 ,只需要执行::
338+ 如果您只有一个补丁,则可以不制作封面,即 0 号补丁 ,只需要执行::
326339
327340 git format-patch -1
328341
@@ -345,9 +358,10 @@ warning 不需要解决::
345358
346359打开上面您保存的邮件地址,执行::
347360
348- git send-email *.patch --to <maintainer email addr> --cc <others addr> #一个to对应一个地址,一个cc对应一个地址,有几个就写几个。
361+ git send-email *.patch --to <maintainer email addr> --cc <others addr>
362+ # 一个 to 对应一个地址,一个 cc 对应一个地址,有几个就写几个
349363
350- 执行该命令时,请确保网络通常,邮件发送成功一般会返回250 。
364+ 执行该命令时,请确保网络通常,邮件发送成功一般会返回 250 。
351365
352366您可以先发送给自己,尝试发出的 patch 是否可以用 'git am' 工具正常打上。
353367如果检查正常, 您就可以放心的发送到社区评审了。
@@ -382,15 +396,15 @@ reviewer 的评论,做到每条都有回复,每个回复都落实到位。
382396每次迭代一个补丁,不要一次多个::
383397
384398 git am <您要修改的补丁>
385- 直接对文件进行您的修改
399+ # 直接对文件进行您的修改
386400 git add .
387401 git commit --amend
388402
389403当您将所有的评论落实到位后,导出第二版补丁,并修改封面::
390404
391- git format-patch -N -v 2 --cover-letter --thread=shallow
405+ git format-patch -N -v 2 --cover-letter --thread=shallow
392406
393- 打开0号补丁 ,在 BLURB HERE 处编写相较于上个版本,您做了哪些改动。
407+ 打开 0 号补丁 ,在 BLURB HERE 处编写相较于上个版本,您做了哪些改动。
394408
395409然后执行::
396410
@@ -414,7 +428,7 @@ reviewer 的评论,做到每条都有回复,每个回复都落实到位。
414428如果您发送到邮件列表之后。发现发错了补丁集,尤其是在多个版本迭代的过程中;
415429自己发现了一些不妥的翻译;发送错了邮件列表……
416430
417- git email默认会抄送给您一份 ,所以您可以切换为审阅者的角色审查自己的补丁,
431+ git email 默认会抄送给您一份 ,所以您可以切换为审阅者的角色审查自己的补丁,
418432并留下评论,描述有何不妥,将在下个版本怎么改,并付诸行动,重新提交,但是
419433注意频率,每天提交的次数不要超过两次。
420434
@@ -425,9 +439,9 @@ git email默认会抄送给您一份,所以您可以切换为审阅者的角
425439
426440 ./script/checktransupdate.py -l zh_CN``
427441
428- 该命令会列出需要翻译或更新的英文文档。
442+ 该命令会列出需要翻译或更新的英文文档,结果同时保存在 checktransupdate.log 中 。
429443
430- 关于详细操作说明,请参考: Documentation/translations/zh_CN/doc-guide/checktransupdate.rst\
444+ 关于详细操作说明,请参考:Documentation/translations/zh_CN/doc-guide/checktransupdate.rst。
431445
432446进阶
433447----
@@ -439,8 +453,8 @@ git email默认会抄送给您一份,所以您可以切换为审阅者的角
439453常见的问题
440454==========
441455
442- Maintainer回复补丁不能正常apply
443- -------------------------------
456+ Maintainer 回复补丁不能正常 apply
457+ ---------------------------------
444458
445459这通常是因为您的补丁与邮件列表其他人的补丁产生了冲突,别人的补丁先被 apply 了,
446460您的补丁集就无法成功 apply 了,这需要您更新本地分支,在本地解决完冲突后再次提交。
@@ -455,5 +469,5 @@ Maintainer回复补丁不能正常apply
455469大部分情况下,是由于您发送了非纯文本格式的信件,请尽量避免使用 webmail,推荐
456470使用邮件客户端,比如 thunderbird,记得在设置中的回信配置那改为纯文本发送。
457471
458- 如果超过了24小时 ,您依旧没有在<https://lore.kernel.org/linux-doc/>发现您的邮
459- 件 ,请联系您的网络管理员帮忙解决。
472+ 如果超过了 24 小时 ,您依旧没有在<https://lore.kernel.org/linux-doc/>发现您的
473+ 邮件 ,请联系您的网络管理员帮忙解决。
0 commit comments