花了 8 个月的闲暇时间完成 Nodejs API 文档的翻译(初版)

发布于 1周前 作者 ionicwang 来自 nodejs/Nestjs

花了 8 个月的闲暇时间完成 Nodejs API 文档的翻译(初版)

起因

年初,我学习 Node.js 的过程中需要查询一些最新版本的 Node.js API ,加之自己并不能向很多英文熟练的人那样直接阅读英文原版 API 文档,所以选择去阅读中文版的文档。虽然在网上很容易找到 Node.js API 的中文版文档,但我也同时发现了一个比较严重的问题。那几份文档都是基于一年前的版本(甚至更早)进行的翻译,文档中的大部分内容都已经过时或缺失。想到大部分人应该都遇到了和我类似的情况,于是我便萌生了翻译 Node.js API 文档的想法。

翻译过程

翻译文档是件痛苦的事,特别是当你遇到一些你自己都不懂的甚至都没法准确 Google 出来的专业术语时,你会非常抓狂。原本我只是单纯的认为,旧版的和新版的文档应该不会有太大的差异吧...一开始,我通过 Google 机翻加自己调整语序进展的很顺利,而且最初的几章基础核心模块的文档变化并没有那么大,对于一些自己无法理解的部分还可以查阅前人的翻译。但蜜月期很快就过去了,在翻译了最初的几个小章节之后,我发现新版的 API 开始发生了些变化:

  • 所有的示例代码都通过 ES2015 的语法进行重写了

  • 有一些类的部分方法已被废弃,但文档并未将其删除,只添加了稳定度提示。为了保持文档的一致性,我只能选择继续翻译...

  • 有大部分章节的内容都进行了重写(可能是开发者换人或觉得之前阐述不够详细),增加了很多翻译量

  • 新增了很多新的 API ,这部分的翻译量最大,翻译工作最难(无从参考)。

期间有过多次放弃的想法,但当我回想起已经翻译的那部分文档时,不想让自己之前所做的工作付之一炬,毅然坚持下来了。

目前的文档内容较之前旧版文档而言,内容量大概是其 2.5~3 倍,导出的 PDF 文档目前有 650 多页(我是怎么办到的...)。

我还额外增加了一个函数速查表章节(之后会做调整),以方便大家快速查找想要找的 API 。

虽然从今年 4 月初截止今天( 11 月 25 日)为止,终于完成了初版的翻译,但这也是项目的起点。一个人是无法持续完成如此大量的工作的,如果你愿意,欢迎你一起加入到我的翻译队伍中来,帮助和完善 Node.js API 中文版文档的翻译工作。

项目地址

文档分为 Markdown 版本和 Gitbook 版本:

GitHub 项目地址:Node.js API 中文版

Gitbook 项目地址:Node.js API 中文版

阅读文档的话,我建议直接在我放在国内的网站上的 Gitbook 版本 也可以直接访问 http://nodejs.xiangfa.org/


29 回复

强烈支持,虽然我自己还没用过。


这个节点主题谁设定的,求去掉,要闪瞎眼了。

真是挺厉害的

LZ 厉害。我在维护 PHP 手册中文版,可以多多交流经验。

随手看了章翻译的这么不通畅、
···
异步和同步的控制台

console 函数默认是异步执行的,除非目标对象是一个文件。这应该是一种罕见的写块( write blocks ),但是的确有可能出现,因为高速硬盘和操作系统通常采用回写式的缓存。

其实翻得挺好的了啊…

是 6.9.1 的 lts ,还是最新的的 7 的版本?

任何有助于国内程序员学习的都支持

感谢你的批评指正哈,因为本人英文水平不佳加上对 Node.js 中的部分术语至今无法准确定义,因此会存在不少翻译上的错误,我会在之后的一段时间内对稳定进行校正。

,目前版本基本上是基于 5.x 的版本进行翻译的,但之后版本的变化对文档内容的影响应该不会有特别大的出路。根据目前文档的编写逻辑来看,官方只会 Add ,而不会 Delete 内容,废弃的章节或函数官方是以稳定度提示来处理的(也就是废弃的内容依然存在文档内)。

我会在校正当前版本的基础上,尽快得同步官方的文档内容。如果没有用到最新增加的一些 API ,应该不会对你的阅读造成太大影响。

与君共勉!

想到我当年入门编程的第一门语言就是 PHP ,那时还对 PHP 非常热爱,但工作后从事了前端开发的岗位,对 PHP 的接触便越来越少了,但我认为 PHP 依然是一门非常活跃的语言。

php 手册可谓详尽,赞

lz 你的付出值得肯定

我之前记得 namespace 那块跟英文版对比有错 不知道现在改了没

PHP 手册对多语言非常友好(当然 XML 格式也蛮难懂)

PHP 手册的经验是,可以在翻译后在文件头部注释 en 的版本号,更新起来就会容易很多,可以追踪到对应的 diff 。

格式方面,中英文要有空格;中译要用中文标点;特殊名词可以不翻译。

还有刚翻译的时候喜欢把英文惯用表达方式翻译出来,比如「你可以」,「一个」。
像这个句子「停止一个之前通过 setTimeout() 创建的定时器。」可以把「一个」去掉,也不影响意思。
参考「余光中:怎样改进英式中文?——论中文的常态与变态」 http://open.leancloud.cn/improve-chinese.html

有需要帮忙翻译的也可以找我。

如果发现错误可以联系我,或者自己提交补丁。因为手册量实在太大了,但翻译的人非常少。
一般有错误我会及时更新;补丁会定期审核;如果是文件过期不一定能顾得上,现在就有 1700 个文件等着更新。大多数情况下,原译者开了坑之后就不管了。

感谢你的宝贵建议哈,我会努力改进的!

看 spring 的文档,翻了十几页。有道生词本里多了一百多新成员😂😂😂

😂谷歌翻译是我的好朋友



这主题背景和文字颜色确实很闪眼啊,能不能换成和其他板块一样的,这样根本读不下文章。

感觉很厉害 我想问楼主一个问题 为啥你的个人网站里用只用 canvas 放了张图 是不是我太蠢了 没有发先机密

O(∩_∩)O 哈哈~其实你点到的是当做背景的那个 canvas 层。我是一个简约主义者,个人觉得首页没必要做得太过复杂,简简单单即可。所以,首页只放了 logo 以及部分子网站的链接,并且这个页面的代码完全是用原始 JavaScript 编写的,没有引入任何的依赖库。你可以完全查看页面的源代码,来一窥你所说的机密…

哈哈哈 我没有把那个子言聆听当成是图片中的文字了 就没有点 我点的是下边的英文我认为那个是链接点了之后发现没有什么反应 现在明白了

楼主很有恒心,但真的不建议看中文翻译的文档,哪怕是原作者写的文档,比如 vue 的中文文档。英文文档更准确,中文文档再好,但中文本身有很多歧义,无端会给自己挖很多的坑。

所以我的初衷也并不是给可以看懂英文的那批人的。如果自己看不懂英文文档或比较难理解英文文档中的寓意,一知半解的话,那无非是给自己挖坑。我做这份文档,至少可以帮助部分人理解个大概,对于其中有问题的翻译,我会尽可能地去修正,至少给那批无助的人指个大概方向,而不是让他们自生自灭…

非常敬佩你能在8个月的闲暇时间里完成Node.js API文档的翻译工作!这是一项非常有价值且富有挑战性的任务。以下是一些关于如何进一步完善和展示你成果的建议:

首先,你可以考虑使用GitHub来托管你的翻译文档。GitHub不仅是一个代码托管平台,也是文档翻译和协作的理想场所。你可以创建一个新的仓库,将翻译文档按照Node.js官方API的目录结构进行组织,并添加必要的README文件和说明。

# 示例命令:在GitHub上创建一个新的仓库并克隆到本地
git clone https://github.com/yourusername/nodejs-api-docs-translation.git
cd nodejs-api-docs-translation

在仓库中,你可以使用Markdown格式来编写文档,因为它既简洁又易于阅读。例如,你可以创建一个http.md文件来翻译Node.js的HTTP模块文档。

# HTTP 模块

## http.createServer([options][, requestListener])

创建一个新的 HTTP 服务器。

...

此外,你还可以使用一些自动化工具来检查翻译的一致性和准确性,比如使用拼写检查器或翻译质量评估工具。

最后,别忘了在GitHub上发布你的翻译成果,并邀请其他开发者或翻译者进行审查和贡献。这样不仅可以提高翻译的质量,还能让更多人受益于你的工作。

再次感谢你的努力和贡献!期待你的翻译文档能够帮助更多的开发者更好地理解和使用Node.js。

回到顶部