Code Monkey home page Code Monkey logo

rust-book-chinese's Introduction

相同方式共享 4.0

本作品采用 知识共享署名 - 相同方式共享 4.0 国际许可协议 进行许可。

Rust 程序设计语言(第一版) 简体中文版

本文档为 The Rust Programming Language 的中文翻译。
欢迎为本翻译文档做出贡献。

关于版本

本书是 Rust 程序设计语言(第一版)的翻译

Rust 程序设计语言(第二版)还在施工中,不过大体已经完成。

Rust 程序设计语言(第二版)官方仓库:https://github.com/rust-lang/book

Rust 程序设计语言(第二版)翻译仓库:https://github.com/KaiserY/trpl-zh-cn

Rust 程序设计语言(第二版)翻译阅读:https://kaisery.github.io/trpl-zh-cn

Rust 程序设计语言(第二版)翻译阅读:上海站点加速查看站点http://rustdoc.saigao.fun

Rust 版本

1.17.0

国内镜像

请参考中文 Wiki上的说明

电子书

  • GitBook.com上的电子书中文字体已有所改善,请优先去这里下载:)
  • 请使用 GitBook 来生成电子书。

相关资源

贡献者

贡献者

rust-book-chinese's People

Contributors

armink avatar byteallen avatar hczhcz avatar hltj avatar hy0kl avatar iovxw avatar jayson-huang avatar kaisery avatar kenshinji avatar lisongmin avatar liubin avatar liuchong avatar lyrachord avatar mapx avatar opticaline avatar peng1999 avatar qiuyesuifeng avatar rod-lin avatar selay01 avatar t123yh avatar tinunkai avatar ustcscgy avatar vra avatar weaming avatar wzv5 avatar yqrashawn avatar yqylovy avatar zhukunqian avatar ziqin avatar zzh1996 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-book-chinese's Issues

术语中英文对照表

可以添加一个术语中英文对照表,以统一翻译。也方便贡献者对已有的不当翻译做修订。

5.8章

你这里翻译的5.8章和现在官网上stable的5.8章似乎有比较大的出入?

README中电子书url失效

内容

电子书
[GitBook.com](https://www.gitbook.com/book/kaisery/rust-book-chinese)上的电子书中文字体已有所改善,请优先去这里下载:)
请使用 [GitBook](https://github.com/GitbookIO/gitbook) 来生成电子书。

问题

似乎也没有找到下载以及生成电子书pdf的方式,url好像也失效了。

目前这个repo里面的中文翻译是对应哪里的英文版本来翻译的?

发现有些地方跟英文版本的原文不对应,比如 5.3 原生类型这一节里面第87行是这么写的:

你可以用a.len()来获取a中元素的数量,用a.iter()在循环中迭代所有元素。下面的代码会按顺序打印每一个元素:

而我在现在官方的book的对应章节看到的是这样的:

You can get the number of elements in an array a with a.len():

有些句子官方的文档里面已经删掉了,我们这边的翻译要不要对应更新 ?

“target-triple" 译成 “目标三围” 好像不太妥当

“target-triple" 是 编译器的 专用术语,用 “ cpu- vendor- os" 来标识 交叉编译时的 系统类型, clang, gcc 都有用。 如下几个链接可以参考:
http://clang.llvm.org/docs/CrossCompilation.html#target-triple
https://www.gnu.org/software/autoconf/manual/autoconf-2.65/html_node/Specifying-Target-Triplets.html
http://wiki.osdev.org/Target_Triplet

翻译成“目标三围”感觉体现不出这个意思呢。

然而我也没有想到和找到比较好的翻译方式,^_^

链接问题

文档中许多链接已经失效,或者引向英文Rust Book。建议全部更新为GitBook中的固定连接。如章节5.7,5.8,5.16等

9.3小节中的错误指导原则翻译错误

英文版:Your code after this point needs to rely on not being in this bad state.
中文版:之后的代码的运行依赖于处于这种有害状态

中文版本应该是少了一个否定词。

5.2小节关于!dbg的翻译

...prints the file and line number of where that dbg! macro call occurs in your code...

被翻译为

...打印出你代码中 dbg! 宏调用的文件和行号...

这个说法看起来像是“dbg!宏调用了一个文件”,翻译为“...打印出你代码中调用 dbg! 宏时所在的文件和行号...”会不会更好一点?


另外

so we use a reference to dbg! in the next call.

这个原文似乎本身就有问题……代码中是给 dbg! 传递了一个引用,而不是使用了一个指向 dbg! 的引用,翻译为

所以我们在下一次调用中使用对 dbg! 的引用

是不符合代码的。是不是可以翻译时修正这个原文的错误,改为“ 所以我们在下一次调用 dbg! 时传递一个引用”

gitbook报错

提示如下:

Template render error: (E:\libs\rust-book-chinese\content\Macros 宏.md) [Line 12
7, Column 9]
  unexpected token: . (In file 'content/Macros 宏.md')

源码如下:

macro_rules! foo {
    () => {{
        ...
    }}
}

建议在合适位置增加cargo mirror的说明

建议在第一次增加dependencies的位置,以“”译者注“之类的形式增加cargo mirror的说明。

对于不会翻墙的人,直接就放弃rust了。对于能翻墙的人,也可能某些时候没法翻墙,比如我现在在公司。

移除失效的链接

preface.md 的 rustbook.cn 这个链接已经失效了的样子(现在指向的链接惨不忍睹 😂),是不是拿掉比较好...

字体渲染有问题

有些变形,应该把在线阅读的html标签内部的lang="zh-tw"改为lang="zh-Hans"

1.10 ?

问一下有计划更新到1.10-stable么?

也许我可以掺乎掺乎,经验上看,翻译一下“* programming language”是个很好的学习方法:)

关于在文档中使用“我们”、“你”等人称代词

个人总结:中文教程与英语教程最显著的区别是,英语教程几乎每句都会用到 "let's" "we should" "we can" "your project",但阅遍名书名译(技术书籍),鲜见“让我们”“我们应该”“我们可以”“你的项目”等词语。中文这样的用法应该很少见吧。翻译此类文档我觉得应该去掉此类词语。

"The Rust Programming Language"应该译为“Rust 程序设计语言”

“The XX Programming Language” 这样的表达在国内的标准译法是: XX 程序设计语言。这在出版物中都已是公认的译法,比如:
K&R的 The C Programming Language 为《C 程序设计语言》,
Bjarne Stroustrup 的 The C++ Programming Language 为《C++ 程序设计语言》,
Go团队推出的著作 The Go Programming Language 为《Go 程序设计语言》,
松本行弘 的 The Ruby Programming Language 在国内也译成 《Ruby 程序设计语言》。

还有苹果官方的 The Swift Programming Language、C#之父 Anders Hejlsberg 的书籍 The C# Programming Language,Java之父 James Gosling 的书籍 The Java Programming Language等书。

The XX Programming Language 一般都是该语言的发明人或团队所出图书,通常被人称为 XX 语言的Bible,在美国一般人出书也不敢冒用此书名,在国内的《XX程序设计语言》书名也一般是留给 XX 语言的译作的。The Rust Programming Language 也一样在官方就叫此名,我们翻译书名时也应遵循官方的书名命名。

在此版中文版概述栏可填上:Rust 程序设计语言——Rust 官方教程(中文版)。
在书籍里面的内容将《Rust 编程语言》此说法全部换成《Rust 程序设计语言》。

关于一些名词的翻译问题

比如Vector,Tuple等表示数据结构的名词,翻译成向量、元组的话不如直接使用英文直观。比如“向量”容易和数学上向量的概念混淆。
翻了一下《C++ Primer》和《Thinking in Java》这两本比较经典的入门书籍,里面关于Vector、Map、Set等数据结构,大都不进行翻译。

Slice 是否翻译为“切片”更好?
我之前接触的编程语言里只有Python有类似的功能,而这功能在Python的翻译一般翻译为“切片”。不知道其他语言怎样翻译。

Trait 这个好像是Rust特有的关键字?翻译成“特性”的话,如果我之前没了解过Rust的Trait,光看“特性”的话有点难对上这个关键字。

参考:
[1] C++ Primer 4th edition
[2] Thinking in Java 3rd edition
[3] Python教程 - 廖雪峰的翻译

typo

rust-book-chinese/content/2.3.Hello, Cargo!.md

Cargo.tgml 的文件内容如下 => Cargo.toml

19.2 夹带私货(逃)


newtype 模式用以在外部类型上实现外部 trait
中:
Newtype 是一个源自 (U.C.0079,逃) Haskell 编程语言的概念。使用这个模式没有运行时性能惩罚,这个封装类型在编译时就被省略了。

(U.C.0079,逃)
与原文有出入[doge]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.