Coder Social home page Coder Social logo

kaisery / trpl-zh-cn Goto Github PK

View Code? Open in Web Editor NEW
4.3K 4.3K 553.0 9.15 MB

Rust 程序设计语言(2021 edition)

Home Page: https://kaisery.github.io/trpl-zh-cn/

License: MIT License

CSS 0.06% JavaScript 0.12% Markdown 75.29% Rust 23.68% HTML 0.85%
pdf rust-book typst zh-cn

trpl-zh-cn's Issues

发现一个错误

在15.5节,listing15-23后面的一段。

One important part of this code is that the Messenger trait has one method, send, that takes an immutable reference to self and text of the message.

这些代码中一个重要部分是拥有一个方法 send 的 Messenger trait,其获取一个 self 的可变引用和文本信息。

这里应该是不可变引用,是个笔误吧。

FontAwesome 挂掉导致图标不显示

不清楚是什么时候开始, https://kaisery.github.io/trpl-zh-cn/ 这里的所有 font-awesome 图标都不显示了,导致页面上方导航按钮不显示,代码块右上角本来应该有的运行按钮不显示。 F12 可以看到浏览器请求了 https://kaisery.github.io/trpl-zh-cn/_FontAwesome/css/font-awesome.css 得到了 404 。

实在不是很熟悉 mdbook ,翻 repo 没找到可能相关的地方,对比 commit history 也没看出来是哪里出的问题...

ch19-02中的lifetime bound

感觉ch19-02中的lifetime bound可译为生命周期绑定,从译文可以很容易理解是把一个类型的生命期绑定到至少和另一个类型的生命周期一样长.

关于 trait

特征,特点,特性,使用时最顺口的就是 个性 性子,各种例子很好陈述, 配合的动词毫无疑问就是赋予

lifetime 的翻译讨论

”生命周期”一般指的是 lifecycle
把 lifetime 也翻译为生命周期是否有歧义?

静态站点生成与本地加速

1.有没有意愿使用Vuepress将.md打包成静态html文件的计划?这样会很方便部署的。
2.github上的站点墙内访问挺慢的,所以我可以提供一个看这个文档的站点吗?(将打包的静态文件放到我的网站上)。

ch09-02章节的示例标号与原版不一致

ch09-02章节的示例标号与原版不一致

这样导致了一些问题,比如:

其功能再一次与示例 9-5 和示例 9-5 保持一致,不过这是一个与众不同且更符合工程学的写法。

17-02中Trait对象的对象安全规则翻译有误

关于对象安全的规则第一条,原文为
“The trait does not require Self to be Sized”
应译为
“该 trait 不能要求 Self 是 Sized”
而非现有译文中的
“该 trait 要求 Self 不是 Sized”
我看的时候纠结了半天。

另外,17-02还有不少地方很难懂,看了原文才知道是什么意思。建议改进一下。

src/ch04-01-what-is-ownership.md错别字

src/ch04-01-what-is-ownership.md
“这个表现形式看起来 并不像 图 4-5 中的那样,它是如果 Rust 也拷贝了堆上的数据后内存看起来是怎么样的。”

它是 => 但是/那么

mod-和文件系统章节中,翻译与版本实际不符

翻译中是这样:
Cargo 默认会创建一个库 crate 除非指定其他项目类型,所以如果不像一直以来那样加入 --bin 参数则项目将会是一个库:

但是执行cargo new --help
--bin Use a binary (application) template [default]
--lib Use a library template

指令帮助说明,bin才是默认的方式。
没看过英文版本,不知道是翻译问题,还是英文版就错误。

校对翻译风格

平时对技术文档翻译根本不会有这种奢望,但感觉这项目整体质量不错,只是稍微有些欧化中文的影子。我和一位朋友有兴趣针对风格问题试着校对翻译,在开始之前来和项目维护者们打声招呼,确认下是否愿意接受此类修改。毕竟对风格的看法因人而异,修改后反而会和原文的字面意思有所偏差,如果维护者反对的话我们 fork 时也算有个心理预期。

Trait 建议翻译为 特质

个人理解,Rust的设计**是,Trait组合胜于模板继承(类继承),也就是常说的组合胜于继承,因此只有Trait而没有Class。如果需要提到这一概念,使用“特质组合”比“特征组合”(Rust社区似乎倾向于 特征 这个翻译)要更顺口。 而且 Trait 中可以包含默认实现, “特质”听起来像是有重量的东西,而“特征”、“特性”则更像没有质量的抽象概念。

翻译歧义

https://kaisery.github.io/trpl-zh-cn/ch16-01-threads.html
#线程与-move-闭包

原文:If we were allowed to run this code, there’s a possibility the spawned thread would be immediately put in the background without running at all.
翻译:这段代码可以运行,而新建线程则可能会立刻被转移到后台并完全没有机会运行。

原文是假设这段代码能运行,翻译后为肯定能运行的意思,感觉不大合适。(实际代码是不能运行)
个人理解为:
假如这段代码能正常运行的话,就是可能这个线程被创建后立即移到后台并没有运行。

翻译错误

原文URL地址: https://doc.rust-lang.org/nightly/book/second-edition/ch02-00-guessing-game-tutorial.html#handling-invalid-input
原文内容: Switching from an expect call to a match expression is how you generally move from crash on error to actually handling the error.

翻译版URL地址: https://kaisery.github.io/trpl-zh-cn/ch02-00-guessing-game-tutorial.html
翻译内容: 从expect调用切换到expect语句是如何从遇到错误就崩溃到真正处理错误的常用手段。

应该翻译为: 从expect调用切换到match语句是如何从遇到错误就崩溃到真正处理错误的常用手段。

是否应该更新下README?

我觉得这个文档去年的时候就翻译的差不多了。
我觉得应该更新下各种说明了。这样也比较利于分享。

“列表 10-20” 建议翻译为“码签 10-20”

文章里用来指代对应代码块的称呼,类似论文里“图 3-1”之类的。歪果仁说 "list 10-1","list"应该更类似于“便签条”,“收据单”的意思吧。“列表”这个称呼总让我出戏,其实本来打算建议“码单”来着,不过好像更出戏,额

需求: 集成Travis-CI

留意到issues中有些源码中已经修复, 但是gitbooks.io仍然没有进行更新, 因此提出该需求, 以节约贡献者们的时间.

建议修改

https://kaisery.github.io/trpl-zh-cn/ch10-03-lifetime-syntax.html#结合泛型类型参数trait%20bounds%20和生命周期

这个是列表 10-21 中那个返回两个字符串 slice 中最长者的longest函数,不过带有一个额外的参数ann。ann的类型是泛型T,它可以被放入任何实现了where从句中指定的Display trait 的类型。这个额外的参数会在函数比较字符串 slice 的长度之前被打印出来,这也就是为什么Display trait bound 是必须的。因为生命周期也是泛型,生命周期参数'a和泛型类型参数T都位于函数名后的同一尖括号列表中。


最后一句话改成如下比较好,不然此处一个 ”因为“ 容易引发歧义让读者以为是在解释上一句话中 ”为什么 Display trait bound 是必须的“。

修改:因为生命周期也是泛型,#(所以)生命周期参数'a和泛型类型参数T都位于函数名后的同一尖括号列表中。

建议 scalar

scalar 早年翻译 标量,实在是有点胡扯的嫌疑。没有几个人记得与矢量相对应。
现在不少人已经采用 纯量 一词。或者 无向量。
简单量,简单值,简单数,类似的名词 最容易让人理解。
名词是人类战争的根源。

再所谓,名不正则言不顺!

一些有疑点的表述

The following code shows how you’d use each one in a let statement:

// subtraction
let difference = 95.5 - 4.3;

你说介绍个数字运算符吧,老实的介绍也就罢了,和 let 语句有毛线的关系?我还以为是介绍 let 语句的

代码片段丢失

https://kaisery.github.io/trpl-zh-cn/ch13-03-improving-our-io-project.html#使用迭代器并去掉clone

https://doc.rust-lang.org/book/second-edition/ch13-03-improving-our-io-project.html#removing-a-clone-using-an-iterator

main 方法中丢失代码片段

对于该项目中从clone修改为迭代后原先的语句已不能使用

顺便附上完整版:

fn main() {
    let mut stderr = std::io::stderr();

    let config = Config::new(env::args()).unwrap_or_else(|err| {
        writeln!(
            &mut stderr,
            "Problem parsing arguments: {}",
            err
        ).expect("Could not write to stderr");

        process::exit(1);
    });

    if let Err(e) = minigrep::run(config) {
        eprintln!("Application error: {}", e);

        process::exit(1);
    }
}

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.