1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-03-30 01:16:17 +02:00

45 Commits

Author SHA1 Message Date
kamal
3764569198
Update translations.md (#2538)
Remove duplicate line containing details about language translation and
it's contributors.
2025-01-07 12:26:19 +00:00
Danny Ra
3d1339c546
fa: fix translations.md restore sentence paragraph. (#2446)
fix: translations.md restore sentence paragraph.

---------

Co-authored-by: javad-jafari <javajafarifromsharak@gmail.com>
Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com>
2024-10-19 22:03:57 +03:30
Danny Ra
4096bf89ae
fa: update fuzzy and untranslated part 1 (#2438)
fa: update fuzzy and untranslated part 1

---------

Co-authored-by: javad-jafari <javajafarifromsharak@gmail.com>
Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com>
2024-10-17 01:12:23 +03:30
Henri F.
f1423eaa72
Fix broken link on translations.md (#2437) 2024-10-16 14:50:13 -04:00
Henri F.
28b5b559b3
fa: Adds Farsi to the language selector (#2436)
Adds Farsi to the drop-down language selector and minor rearrangement on
Translation page
#671
2024-10-15 22:17:55 -07:00
Danny Ra
25a2fa6a09
fa: try to complete Farsi - part 4 (#2401)
fa: try to complete Farsi - part 4

---------

Co-authored-by: javad-jafari <javajafarifromsharak@gmail.com>
Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com>
2024-10-14 00:00:04 +03:30
Alix
3edec36fab
add Farsi to Incomplete Translations (#2269) 2024-08-21 07:58:09 +00:00
Jonathan Daniel
1c964f6fe3
Fix a broken link and check internal links (#2195)
In #2153 I aimed to fix a link but broke it.
In this PR, I fix it and add
[`mdbook-linkcheck`](https://github.com/Michael-F-Bryan/mdbook-linkcheck)
to avoid future cases.

Some past fixes that could have been prevented, in addition to mine in
this PR:
* #811
* #2064
* #2146

Note:  
`mdbook-linkcheck` may also check external links with a configuration
change.
It can be beneficial to check also external links from time to time. I
ran it here and found 3 broken links.

Maintainers - sorry for the lack of a preceding issue. We can discuss it
here.
Some remaining work is to fix the outdated internal links in the
translations, not done here.
Let me know what you think about the proposed contribution.

This PR completes #1502.
2024-07-22 11:37:19 +00:00
Andrew Walbran
19e0660505
Link to translation reports. (#2213)
Also explain how to generate the report locally.
2024-07-12 10:11:31 -04:00
Henri F
90acb23506
Fix a single typo on translations.md (#2206) 2024-07-09 10:26:38 +01:00
Henri F
23c30a9e39
Fix broken links to Arabic translation (#2204)
#445
2024-07-08 18:44:34 +00:00
Younies Mahmoud
a976603da5
First step in Arabic Translation (#2193)
Part of : #445
2024-07-05 22:40:03 -07:00
Henri F
a20b8754a5
Publish Ukrainian translation to language selector (#2183)
Closes #836
2024-07-03 14:04:54 -07:00
Henri F
1a1480ea04
Publish Japanese translation to language selector (#2182)
#1463 #652
2024-07-01 10:31:25 -07:00
AdrienBaudemont
8bd2dd06f6
fr: translating remaining paragraphs in section 1 (#2010)
fr: translating remaining paragraphs in section 1. Adding self to French
translators.
2024-04-24 11:03:37 +02:00
Dustin J. Mitchell
face5af783
Update Concurrency course with times (#2007)
As I mentioned in #1536:

* Break into segments at approximately the places @fw-immunant put
breaks
 * Move all of the files into `src/concurrency`
 * Add timings and segment/session metadata so course outlines appear

There's room for more work here, including some additional feedback from
@fw-immunant after the session I observed, but let's do one step at a
time :)
2024-04-23 13:26:41 +00:00
Henri F
85d2987369
Update translations.md with new Korean contributor (#1823)
Co-authored-by: Martin Geisler <mgeisler@google.com>
2024-02-20 10:50:42 +00:00
Ivan De Marino
dc76b73bc4
Adding the Italian translation to the list of incomplete ones (#1747)
Long overdue.

It felt a bit "odd" self-assigning merit, especially because I think I
haven't nearly contributed enough translations. So I looked at the
[history of `it.po` file](https://github.com/google/comprehensive-rust/commits/main/po/it.po)
and identified also @henrythebuilder as the other "owner" of the Italian
translation (definitely, based on number of lines contributed).

@henrythebuilder please confirm you are comfortable with this.
2024-01-24 16:10:53 +00:00
Martin Geisler
c9f66fd425
Format all Markdown files with dprint (#1157)
This is the result of running `dprint fmt` after removing `src/` from
the list of excluded directories.

This also reformats the Rust code: we might want to tweak this a bit in
the future since some of the changes removes the hand-formatting. Of
course, this formatting can be seen as a mis-feature, so maybe this is
good overall.

Thanks to mdbook-i18n-helpers 0.2, the POT file is nearly unchanged
after this, meaning that all existing translations remain valid! A few
messages were changed because of stray whitespace characters:

     msgid ""
     "Slices always borrow from another object. In this example, `a` has to remain "
    -"'alive' (in scope) for at least as long as our slice. "
    +"'alive' (in scope) for at least as long as our slice."
     msgstr ""

The formatting is enforced in CI and we will have to see how annoying
this is in practice for the many contributors. If it becomes annoying,
we should look into fixing dprint/check#11 so that `dprint` can annotate
the lines that need fixing directly, then I think we can consider more
strict formatting checks.

I added more customization to `rustfmt.toml`. This is to better emulate
the dense style used in the course:

- `max_width = 85` allows lines to take up the full width available in
our code blocks (when taking margins and the line numbers into account).
- `wrap_comments = true` ensures that we don't show very long comments
in the code examples. I edited some comments to shorten them and avoid
unnecessary line breaks — please trim other unnecessarily long comments
when you see them! Remember we're writing code for slides 😄
- `use_small_heuristics = "Max"` allows for things like struct literals
and if-statements to take up the full line width configured above.

The formatting settings apply to all our Rust code right now — I think
we could improve this with https://github.com/dprint/dprint/issues/711
which lets us add per-directory `dprint` configuration files. However,
the `inherit: true` setting is not yet implemented (as far as I can
tell), so a nested configuration file will have to copy most or all of
the top-level file.
2023-12-31 00:15:07 +01:00
rickyclarkson
c7a86ca584
Fixing a typo (#1588) 2023-12-13 18:26:34 -05:00
Marshall Pierce
6c5061bb90
Various small fixes (#1556)
Plus one more substantial comment on casting.
2023-12-05 18:06:42 -05:00
Dustin J. Mitchell
6d19292f16
Comprehensive Rust v2 (#1073)
I've taken some work by @fw-immunant and others on the new organization
of the course and condensed it into a form amenable to a text editor and
some computational analysis. You can see the inputs in `course.py` but
the interesting bits are the output: `outline.md` and `slides.md`.

The idea is to break the course into more, smaller segments with
exercises at the ends and breaks in between. So `outline.md` lists the
segments, their duration, and sums those durations up per-day. It shows
we're about an hour too long right now! There are more details of the
segments in `slides.md`, or you can see mostly the same stuff in
`course.py`.

This now contains all of the content from the v1 course, ensuring both
that we've covered everything and that we'll have somewhere to redirect
every page.

Fixes #1082.
Fixes #1465.

---------

Co-authored-by: Nicole LeGare <dlegare.1001@gmail.com>
Co-authored-by: Martin Geisler <mgeisler@google.com>
2023-11-29 16:39:24 +01:00
Martin Geisler
aebb0bc856
Replace hyphens (-) with em-dashes () (#1500)
The new Chromium class likes — like me! — to use dashes in the writing!
However, I believe it should use an em-dash instead of the hyphen.

Luckily this is easy: we have enabled “typographic quotes” in `mdbook`,
which also handles the conversion of `---` to `—` in the generated HTML.
So I normalized the single existing em-dash to a triple-dash to make it
more consistent (and hopefully make it easier for translators to
consistently enter these characters).
2023-11-28 19:41:09 +01:00
Adrian Taylor
7f469fb2c7
Add Chromium section (#1479)
This is a contribution of a Chromium section for Comprehensive Rust.

---------

Co-authored-by: Nicole L <dlegare.1001@gmail.com>
Co-authored-by: Martin Geisler <martin@geisler.net>
2023-11-27 18:21:19 +00:00
Henri F
88edcd02e7
Adds Chinese Traditional to the language drop-down (#1411)
Graduates the Chinese Traditional translation to the language drop-down
selector.
Part of Chinese (Traditional) translation #684.

File stats (Rust Fundamentals):

```
msggrep -v --location=src/{exercises/,}{android,bare-metal,concurrency,async}{.md,"/*","/*/*","/*/*/*"} po/zh-CN.po | msgfmt -o /dev/null --statistics -

1315 translated messages, 146 fuzzy translations, 149 untranslated messages.
```
2023-10-23 09:20:15 -07:00
Qinglin
b155ffd40c
Adds nodmp as a zh-CN translator (#1409) 2023-10-22 15:04:01 -07:00
Henri F
c2e9a45d49
Adds Chinese Simplified to the language drop-down (#1357)
Graduates the Chinese Simplified translation to the language drop-down
selector. Part of #324
2023-10-13 09:15:00 +02:00
Henri F
a46c6c19df
Adds SketchK credit as a zh-CN translator (#1338) 2023-10-11 11:16:24 -05:00
Qinglin
7d321262c4
Fix link in translations.md (#1220) 2023-09-19 07:30:23 +02:00
Henri Fontana
b666356642
Link incomplete zh-CN and zh-TW in translations.md (#1219)
Co-authored-by: Martin Geisler <martin@geisler.net>
2023-09-18 09:47:27 -07:00
Henri Fontana
c5c3a6bb35
Update translations.md with Spanish translation available (#1202)
#284
2023-09-12 08:59:53 -07:00
Martin Geisler
91e87e2da7
Explain that Rust Fundamentals == first 3 days (#1156) 2023-09-01 13:43:20 +01:00
Martin Geisler
62dcb323aa
Update deep-dive titles in course structure (#1121)
I'm trying to align on these names for the additional material:

- Rust in Android
- Bare-Metal Rust
- Concurrency in Rust

It's not perfectly reflected everywhere, but this brings us a bit closer
to that.
2023-08-25 18:38:21 +02:00
Frances Wingerter
d3a90373b0
Reorder material on first two days (#913)
- Morning of Day 1 still introduces the language and its high-level
goals/value proposition, and starts with the built-in data types Rust
provides, and how you define a function. 
- Afternoon of Day 1 gets a front loading of the basic control flow
structures in Rust but not the more exotic ones.
- The exercises for day 1 afternoon will be the Luhn algorithm (where we
can match on digits and enums such as `Option`.
- Morning of day 2 still has discussion of memory management.

Fixes #510.

---------

Co-authored-by: Martin Geisler <mgeisler@google.com>
2023-08-25 17:42:31 +02:00
Henri Fontana
75bc262983
Update translations.md (#979)
Update list of contributors for the pt-BR translation.
2023-07-17 08:49:19 -07:00
Md. Rasel Mandol
5d56a529da
Bengali translation: to link incomplete Bengali translation (#819)
Bengali translation: to link incomplete Bengali translation
2023-06-14 19:37:22 +01:00
Martin Geisler
5de9cdafea
Link to incomplete French, German, and Japanese translations (#730)
These translations all have more than 200 translated messages and
they’ve been updated in the last month.

I suggest we update the list here every few weeks based on input from
the translators: we don’t need a super strict rule here, we just need
interested translators who would like to see their work celebrated.

I suggest we only link completed translations in the language picker
since we have limited space there to differentiate the different
levels of completeness.
2023-05-31 11:55:39 +02:00
Semih Buyukgungor
dabf31d0ce
Fixing some typos (#667)
fix some typos
2023-05-24 08:15:08 +00:00
Martin Geisler
3b21053ff2
Cleanup references to "Day 4" (#603)
* Align outline with new spin-off course structure

With the new structure, the section on Android is a spin-off course
from the main 3-day course on Rust Fundamentals. The Bare-metal and
Concurrency days are spin-off courses in the same way.

* Explain new course structure

* Align Bare-Metal welcome page with other deep dives

* Merge Day 4 page into Course Structure page

* Remove Day 4 Welcome page

This aligns the Concurrency in Rust section with the Bare-Metal Rust
deep dive.

* Show subsections for Android deep dive

This aligns the Rust in Android section with the other deep dives.

* Clean up welcome page and README

We now cover async Rust and the course is no longer a four day course.

* Remove reference to the old Day 4

* Remove Day 4 references from exercises
2023-05-02 08:02:28 +02:00
Dustin J. Mitchell
0d30da7f23
Add an "async" session (#496)
* beginning of an Async section

* address review comments

* Add futures page (#497)

NOTE: `mdbook test` does not allow code samples to reference other crates, so
they must be marked as `compile_fail`; see #175.

* Add Runtimes & Tasks (#522)

These concepts are closely related, and there's not much else to know
about runtimes other than "they exist".

This removes the bit about futures being "inert" because it doesn't
really lead anywhere.

* Async chapter (#524)

* Add async channels chapter

* Async control flow

* Async pitfalls

* Separate in multiple chapters + add daemon section

* Merge reentering threads in blocking-executor

* async_trait

* Async fixes (#546)

* Async: some ideas for simplifying the content (#550)

* Simplify the async-await slide
* Shorten futures and move it up
* Add a page on Tokio

* Modifications to the async section (#556)

* Modifications to the async section

* Remove the "Daemon" slide, as it largely duplicates the "Tasks" slide.
  The introduction to the "Control Flow" section mentions tasks as a
  kind of control flow.

* Reorganize the structure in SUMMARY.md to correspond to the directory
  structure.

* Simplify the "Pin" and "Blocking the Executor" slides with steps in
  the speaker notes to demonstrate / fix the issues.

* Rename "join_all" to "Join".

* Simplify some code samples to shorten them, and to print output rather
  than asserting.

* Clarify speaker notes and include more "Try.." suggestions.

* Be consistent about where `async` blocks are introduced (in the
  "Tasks" slide).

* Explain `join` and `select` in prose.

* Fix formatting of section-header slides.

* Add a note on async trait (#558)

---------

Co-authored-by: sakex <alexandre@senges.ch>
Co-authored-by: rbehjati <razieh@google.com>
2023-04-14 14:06:50 +00:00
Dustin J. Mitchell
bfed596d28
Generalize the day-4 afternoon (#487)
* Generalize the day-4 afternoon

This is in preparation for adding more options for this portion of the
course, and reflects an existing practice of substituting other
materials for this last half-day.

* address review comments
2023-03-10 09:07:36 -05:00
Jiyong Park
eb57ba9e51
Publish Korean translation (#428)
* Publish Korean translation

* 한국어 -> 한국어 (Korean)

* Add translator names for the Korean translation
2023-02-17 17:58:33 +09:00
Martin Geisler
bc2dbd0fd3
Add a page which mentions the translations (#424)
This is to help people discover the language picker.
2023-02-16 13:21:45 +01:00
Martin Geisler
8e3941d2e6
Fix close tag on keyboard shortcut page (#179) 2023-01-18 10:57:31 +00:00
Martin Geisler
08af7574bb Add instructions about how to run the course
I think we need a chapter “before the course” which gives people some
background information about how to run the course. This is the start
of this chapter, we might expand it in the future as we find more
things to communicate here.
2023-01-10 19:12:57 +01:00