简介
《Rust 程序设计语言》(The Rust Programming Language)是 Rust 官方推出的正式教程,也是关于 Rust 语言稳定版最基础和全面的指导指南,是学习 Rust 的必备教程。作为 Rust 官方最重要和权威的书籍,本书一直是 Rust 重点维护的书籍,Rust 团队中由两名成员(Steve Klabnik 和 Carol Nichols)专门来撰写和维护本书,还有众多开源社区的人一起参与贡献,包括提供内容和错误修复等。可以书《Rust 程序设计语言》就跟 Rust 语言本身一样,是整个 Rust 开源社区的结晶作品。
同样地,对 Rust 的中文学习资料来说,《Rust 程序设计语言》也是最重要的学习资料,正因为如此,将本书翻译成中文非常重要。中文开源社区中的 KaiserY 从第一版开始就翻译了整本书,在第二版出来后,KaiserY 同样地最先翻译完整本书,这对于想看中文资料学习 Rust 的朋友来说异常重要,KaiserY 的艰苦付出值得我们每个人称赞。
另外《Rust 程序设计语言》中文版的出版图书名称为《Rust 权威指南》(和开源版的翻译独立),但开源版书名我们会保留为《Rust 程序设计语言》译名,因为这已经是中文编程界中的约定,就如 “The C Programming Language” 翻译成《C 程序设计语言》一样,详细可见 Wiki 文档 。
Rust 翻译项目组对本书的翻译情况
在 2017 年 Rust 官方还在撰写本书第二版的时候,Rust 中文翻译项目组也开始翻译此书,一开始 KaiserY 还未开始翻译,而当我们在翻译完前三章后发现 KaiserY 也开始翻译了本书,所以 Rust 中文翻译项目组就不再重复翻译这些内容。最近本项目组重新整理本书的内容,因为已经有 KaiserY 翻译的较为完善的版本,所以我们直接将之前未翻译的章节采用 KaiserY 的内容,我们对 KaiserY 的工作表示由衷感谢,再怎么称赞都不为过。因为我们项目组的一些翻译准则可能会有区别于原仓库内容,所以之后我们项目组内容将会不断更新和维护,如有必要我们也反馈到 KaiserY 的仓库中。
Rust 翻译项目组后续如何维护本书
因为我们项目组翻译的主要准则是,遵循 Rust 官方的原有规范,包括项目目录结构、书本内容、说明文件以及版权信息等,除此之外,我们几乎不添加任何额外内容,而且我们项目组遵循和官方一样的原则,鼓励内容公开和分享,几乎不受任何限制(官方使用 MIT、Apache 2.0 协议,还有一些作品采用 CC0 协议)地复制和传播。所以 Rust 中文翻译项目组对外的作品也不设置任何限制(除开源协议少数条款约束外),也就是说,只要遵循开源协议的条件,想将作品怎么处理就怎么处理,包括拿作品去销售营利也是允许的(像 CC BY-NC-ND 4.0 这样限制商业的协议除外,一般来说,我们项目组不会采用此协议,除非原有翻译的项目已经采用此协议授权,那么我们只能延用此协议)。
所以我们在开源协议的基础上,不断完善和维护相关的内容,本书的简体中文版仓库将不断更新和维护,并且会时刻跟随官方英文版。为了方便同步官方英文版的内容,我们在简体中文版仓库上设置了 english 目录来存放英文版的内容,并将该目录下对应英文版的提交 commit id
值记录,中文版则对照此目录的英文版内容翻译和更新。当后面英文版发生变化时,我们会整体替换掉 english 目录的内容,接着翻译成中文,这样一个好处是比对翻译特别容易,为此我们还采用 Meld 文件或目录对比工具,检查英文更新的内容。
一般来说,我们会在 Rust 发布一个新的稳定版的时候,我们会对之前的简体中文的文档内容打一个版本标签,并上传对应版本 tag
内容到 GitHub 上,接着将英文版的最新内容拷贝替换到简体中文仓库的 english 目录,然后使用 Meld 工具对比变化的文本内容,并进行翻译更新。
为什么我们不直接采用英文仓库来对比呢?有两个原因,一是设置 english 目录是方便且直接地记录下中文版对应版的版本和时间信息,二是英文翻译翻译相对频繁,记录也相对比较多,我们懒得用
git checkout
命令切换到历史版本,简单来说就为了偷懒。为什么时刻跟随英文版,只要英文版一更新,中文版就更新?因为英文版有不定期的更新,而且他们有两个专门的成员来维护,而 Rust 中文翻译项目组成员还有其他工作,只要有空的时候去跟进,如果英文每次变动一点,就更新,那么我们将变得很劳累,但是如果固定一段时间来统一的更新翻译,那我们会轻松一些,而且我们可以找个周末的时候,一次性将英文版的新内容翻译过来。一般来说我们也会几周时间内将原文的新内容翻译成中文。
我们的保证
本书将成为 Rust 中文翻译项目组重点维护的和更新的项目,并且保证内容最新,不会比官方落后太多,重多也不会超过 Rust 的一个新版发布的周期。
为了跟随英文官方,我们总体上不在仓库目录或是书本文件内容上添加额外的内容,对于版本信息或对应英文版本信息,用户都可以直接在页面上直接打开仓库上对应的源代码,这些源码包含时间和记录等信息,而且本站开发了英文切换按钮,可以直接切换到英文的版面。而且中文翻译版对应的英文版信息,可直接在 content 目录找到,故不再各页面上添加 commit id
值。
欢迎加入我们
我们也欢迎更多 Rust 爱好者加入 Rust 中文翻译项目组,可进入到我们项目的 GitHub 主页上,然后加入我们,一起不断完善和丰富 Rust 的中文资源。