diff --git a/po/bn.po b/po/bn.po
index 06f6e9f5..88b1c949 100644
--- a/po/bn.po
+++ b/po/bn.po
@@ -18,7 +18,7 @@ msgstr "Comprehensive Rust đĻ āĻ āĻāĻĒāύāĻžāĻā§ āϏā§āĻŦāĻžāĻāϤāĻŽ"
#: src/SUMMARY.md:4
msgid "Running the Course"
-msgstr "āĻā§āϰā§āϏ āĻāĻžāϞ⧠āĻāϰāĻž āĻšāĻā§āĻā§"
+msgstr "āĻā§āϰā§āϏ āĻāĻžāϞāĻžāύā§"
#: src/SUMMARY.md:5
msgid "Course Structure"
@@ -34,15 +34,15 @@ msgstr "āĻ
āύā§āĻŦāĻžāĻĻ"
#: src/SUMMARY.md:8
msgid "Using Cargo"
-msgstr "Cargo āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻā§āĻā§"
+msgstr "Cargo āĻŦā§āϝāĻŦāĻšāĻžāϰ"
#: src/SUMMARY.md:9
msgid "Rust Ecosystem"
-msgstr "Rust āĻāϰ āĻāĻā§āϏāĻŋāϏā§āĻā§āĻŽ"
+msgstr "āϰāĻžāϏā§āĻ āĻāĻā§āϏāĻŋāϏā§āĻā§āĻŽ"
#: src/SUMMARY.md:10
msgid "Code Samples"
-msgstr "Code āύāĻŽā§āύāĻž"
+msgstr "āĻā§āĻĄ āύāĻŽā§āύāĻž"
#: src/SUMMARY.md:11
msgid "Running Cargo Locally"
@@ -62,7 +62,7 @@ msgstr "Rust āĻāĻŋ?"
#: src/SUMMARY.md:20
msgid "Hello World!"
-msgstr "āĻāĻšā§ āĻĒā§āĻĨāĻŋāĻŦā§!"
+msgstr "Hello World!"
#: src/SUMMARY.md:21
msgid "Small Example"
@@ -74,11 +74,11 @@ msgstr "Rust āĻā§āύā§?"
#: src/SUMMARY.md:23
msgid "Compile Time Guarantees"
-msgstr "āĻāĻŽā§āĻĒāĻžāĻāϞ āϏāĻŽā§ā§āϰ āĻ
āĻā§āĻā§āĻāĻžāϰ"
+msgstr "āĻāĻŽā§āĻĒāĻžāĻāϞ āϏāĻŽā§ā§āϰ āĻā§āϝāĻžāϰāĻžāύā§āĻāĻŋ"
#: src/SUMMARY.md:24
msgid "Runtime Guarantees"
-msgstr "Runtime āĻ
āĻā§āĻā§āĻāĻžāϰ"
+msgstr "āϰāĻžāύāĻāĻžāĻāĻŽ āĻā§āϝāϰāĻžāύā§āĻāĻŋ"
#: src/SUMMARY.md:25
msgid "Modern Features"
@@ -90,23 +90,23 @@ msgstr "āĻŽā§āϞāĻŋāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ"
#: src/SUMMARY.md:27
msgid "Scalar Types"
-msgstr "āϏā§āĻā§āϞāĻžāϰ āĻĒā§āϰāĻāĻžāϰ"
+msgstr "āϏā§āĻā§āϞāĻžāϰ āĻāĻžāĻāĻĒ"
#: src/SUMMARY.md:28
msgid "Compound Types"
-msgstr "āϝā§āĻ āĻĒā§āϰāĻāĻžāϰ āϏāĻŽā§āĻš"
+msgstr "āĻāĻŽā§āĻĒāĻžāĻāύā§āĻĄ āĻāĻžāĻāĻĒ"
#: src/SUMMARY.md:29
msgid "References"
-msgstr "āϤāĻĨā§āϝāϏā§āϤā§āϰ"
+msgstr "āϰā§āĻĢāĻžāϰā§āύā§āϏ"
#: src/SUMMARY.md:30
msgid "Dangling References"
-msgstr "āĻā§āϞāύā§āϤ āϤāĻĨā§āϝāϏā§āϤā§āϰ"
+msgstr "āĻĄā§āϝāĻžāĻā§āĻāϞāĻŋāĻ āϰā§āĻĢāĻžāϰā§āύā§āϏ"
#: src/SUMMARY.md:31
msgid "Slices"
-msgstr "āĻā§āĻāϰāĻž"
+msgstr "Slices"
#: src/SUMMARY.md:32
msgid "String vs str"
@@ -118,24 +118,23 @@ msgstr "āĻĢāĻžāĻāĻļāύ"
#: src/SUMMARY.md:34
msgid "Rustdoc"
-msgstr "Rust āĻĄāĻ"
+msgstr "Rustdoc"
#: src/SUMMARY.md:35 src/SUMMARY.md:82
msgid "Methods"
-msgstr "āĻĒāĻĻā§āϧāϤāĻŋ"
+msgstr "āĻŽā§āĻĨāĻĄāϏ"
#: src/SUMMARY.md:36
msgid "Overloading"
msgstr "āĻ
āĻāĻžāϰāϞā§āĻĄāĻŋāĻ"
-#: src/SUMMARY.md:37 src/SUMMARY.md:66 src/SUMMARY.md:90 src/SUMMARY.md:119 src/SUMMARY.md:148 src/SUMMARY.md:177 src/SUMMARY.md:204 src/SUMMARY.md:225
-#: src/SUMMARY.md:251 src/SUMMARY.md:273 src/SUMMARY.md:293
+#: src/SUMMARY.md:37 src/SUMMARY.md:66 src/SUMMARY.md:90 src/SUMMARY.md:119 src/SUMMARY.md:148 src/SUMMARY.md:177 src/SUMMARY.md:204 src/SUMMARY.md:225 src/SUMMARY.md:251 src/SUMMARY.md:273 src/SUMMARY.md:293
msgid "Exercises"
msgstr "āĻ
āύā§āĻļā§āϞāύ"
#: src/SUMMARY.md:38
msgid "Implicit Conversions"
-msgstr "Implicitte āϰā§āĻĒāĻžāύā§āϤāϰ"
+msgstr "āĻāĻŽāĻĒā§āϞāĻŋāϏāĻŋāĻ āϰā§āĻĒāĻžāύā§āϤāϰ"
#: src/SUMMARY.md:39
msgid "Arrays and for Loops"
@@ -143,7 +142,7 @@ msgstr "Arrays āĻāĻŦāĻ for-Loops"
#: src/SUMMARY.md:41
msgid "Day 1: Afternoon"
-msgstr "āĻĻāĻŋāύ 1: āĻŦāĻŋāĻāĻžāϞ"
+msgstr "āĻĒā§āϰāĻĨāĻŽ āĻĻāĻŋāύāĻ āĻŦāĻŋāĻāĻžāϞ"
#: src/SUMMARY.md:43
msgid "Variables"
@@ -151,7 +150,7 @@ msgstr "āĻā§āϰāĻŋā§ā§āĻŦāϞ"
#: src/SUMMARY.md:44
msgid "Type Inference"
-msgstr "āϧāϰāύ āĻ
āύā§āĻŽāĻžāύ"
+msgstr "āĻāĻžāĻāĻĒ āĻ
āύā§āĻŽāĻžāύ"
#: src/SUMMARY.md:45
msgid "static & const"
@@ -159,7 +158,7 @@ msgstr "static & const"
#: src/SUMMARY.md:46
msgid "Scopes and Shadowing"
-msgstr "āϏā§āϝā§āĻ āĻāĻŦāĻ āĻāĻžā§āĻž"
+msgstr ""
#: src/SUMMARY.md:47
msgid "Memory Management"
@@ -171,7 +170,7 @@ msgstr "Stack āĻŦāύāĻžāĻŽ Heap"
#: src/SUMMARY.md:49
msgid "Stack Memory"
-msgstr "āϏā§āĻā§āϝāĻžāĻ āĻŽā§āĻŽā§āϰāĻŋ"
+msgstr "Stack āĻŽā§āĻŽā§āϰāĻŋ"
#: src/SUMMARY.md:50
msgid "Manual Memory Management"
@@ -179,11 +178,11 @@ msgstr "āĻŽā§āϝāĻžāύā§ā§āĻžāϞ āĻŽā§āĻŽā§āϰāĻŋ āĻŦā§āϝāĻŦāϏā§āĻĨāĻž
#: src/SUMMARY.md:51
msgid "Scope-Based Memory Management"
-msgstr "āϏā§āϝā§āĻ āĻāĻŋāϤā§āϤāĻŋāĻ āĻŽā§āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāύāĻž"
+msgstr "āϏā§āĻā§āĻĒ āĻāĻŋāϤā§āϤāĻŋāĻ āĻŽā§āĻŽā§āϰāĻŋ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāύāĻž"
#: src/SUMMARY.md:52
msgid "Garbage Collection"
-msgstr "Garbage āϏāĻāĻā§āϰāĻš"
+msgstr ""
#: src/SUMMARY.md:53
msgid "Rust Memory Management"
@@ -199,19 +198,19 @@ msgstr "āĻŽāĻžāϞāĻŋāĻāĻžāύāĻž"
#: src/SUMMARY.md:56
msgid "Move Semantics"
-msgstr "Semantics āϏāϰāĻžāύ"
+msgstr ""
#: src/SUMMARY.md:57
msgid "Moved Strings in Rust"
-msgstr "Rust āĻ āϝ⧠āϏā§āĻā§āϰāĻŋāĻāĻā§āϞ⧠āϏāϰāĻžāύ⧠āĻšā§ā§āĻā§"
+msgstr ""
#: src/SUMMARY.md:58
msgid "Double Frees in Modern C++"
-msgstr "āĻāϧā§āύāĻŋāĻ C++ āĻ āĻĄāĻžāĻŦāϞ āĻŽā§āĻā§āϤ"
+msgstr "āĻāϧā§āύāĻŋāĻ C++ āĻ āĻĄāĻŦāϞ āĻŽā§āĻā§āϤ"
#: src/SUMMARY.md:59
msgid "Moves in Function Calls"
-msgstr "āĻĢāĻžāĻāĻļāύ⧠āĻāϞ⧠āϏāϰ⧠āϝāĻžā§"
+msgstr ""
#: src/SUMMARY.md:60
msgid "Copying and Cloning"
@@ -231,23 +230,23 @@ msgstr "āĻā§āĻŦāύāĻāĻžāϞ"
#: src/SUMMARY.md:64
msgid "Lifetimes in Function Calls"
-msgstr "āĻĢāĻžāĻāĻļāύ āĻāϞ⧠āĻā§āĻŦāύāĻāĻžāϞ"
+msgstr "āĻĢāĻžāĻāĻļāύ āĻāϞ āĻ āĻā§āĻŦāύāĻāĻžāϞ"
#: src/SUMMARY.md:65
msgid "Lifetimes in Data Structures"
-msgstr "āĻĄā§āĻāĻž āĻāĻžāĻ āĻžāĻŽā§āϤ⧠āĻā§āĻŦāύāĻāĻžāϞ"
+msgstr "āĻĄā§āĻāĻž āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻ āĻā§āĻŦāύāĻāĻžāϞ"
#: src/SUMMARY.md:67
msgid "Designing a Library"
-msgstr "āĻāĻāĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āύāĻāĻļāĻž āĻāϰāĻž"
+msgstr ""
#: src/SUMMARY.md:68
msgid "Iterators and Ownership"
-msgstr "Iteratorer āĻāĻŦāĻ āĻŽāĻžāϞāĻŋāĻāĻžāύāĻž"
+msgstr ""
#: src/SUMMARY.md:71
msgid "Day 2: Morning"
-msgstr "āĻĻāĻŋāύ 2: āϏāĻāĻžāϞ"
+msgstr "āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĻāĻŋāύāĻ āϏāĻāĻžāϞ"
#: src/SUMMARY.md:76
msgid "Structs"
@@ -255,7 +254,7 @@ msgstr "Structs"
#: src/SUMMARY.md:77
msgid "Tuple Structs"
-msgstr "Tuple āĻāĻžāĻ āĻžāĻŽā§"
+msgstr "Tuple Structs"
#: src/SUMMARY.md:78
msgid "Field Shorthand Syntax"
@@ -275,7 +274,7 @@ msgstr "Enum āĻāϰ āĻŽāĻžāĻĒ"
#: src/SUMMARY.md:83
msgid "Method Receiver"
-msgstr "Receiver āĻĒāĻĻā§āϧāϤāĻŋ"
+msgstr "Method Receiver"
#: src/SUMMARY.md:84 src/SUMMARY.md:159 src/SUMMARY.md:272
msgid "Example"
@@ -287,15 +286,15 @@ msgstr "āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŽāĻŋāϞāĻžāύā§"
#: src/SUMMARY.md:86
msgid "Destructuring Enums"
-msgstr "Enums āϧā§āĻŦāĻāϏ āĻāϰāĻž"
+msgstr "Enums āĻĄāĻŋāϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ"
#: src/SUMMARY.md:87
msgid "Destructuring Structs"
-msgstr "Structs āϧā§āĻŦāĻāϏ āĻāϰāĻž"
+msgstr "Structs āĻĄāĻŋāϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ "
#: src/SUMMARY.md:88
msgid "Destructuring Arrays"
-msgstr "Arrays āϧā§āĻŦāĻāϏ āĻāϰāĻž"
+msgstr "Arrays āĻĄāĻŋāϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ "
#: src/SUMMARY.md:89
msgid "Match Guards"
@@ -355,11 +354,11 @@ msgstr "break & continue"
#: src/SUMMARY.md:106
msgid "Standard Library"
-msgstr "Standard Library"
+msgstr "āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ"
#: src/SUMMARY.md:107
msgid "Option and Result"
-msgstr "Option and Result"
+msgstr "Option āĻāĻŦāĻ Result"
#: src/SUMMARY.md:108
msgid "String"
@@ -379,11 +378,11 @@ msgstr "Box"
#: src/SUMMARY.md:112
msgid "Recursive Data Types"
-msgstr "Recursive Data āϧāϰāύ"
+msgstr "āϰāĻŋāĻāĻžāϰā§āϏāĻŋāĻ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ"
#: src/SUMMARY.md:113
msgid "Niche Optimization"
-msgstr "Niche Optimization"
+msgstr "Niche āĻ
āĻĒāĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ"
#: src/SUMMARY.md:114
msgid "Rc"
@@ -407,11 +406,11 @@ msgstr "Filesystem Hierarchy"
#: src/SUMMARY.md:120
msgid "Luhn Algorithm"
-msgstr "Luhn āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ"
+msgstr "āϞā§āύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ"
#: src/SUMMARY.md:121
msgid "Strings and Iterators"
-msgstr "Strings and Iterators"
+msgstr "Strings āĻāĻŦāĻ Iterators"
#: src/SUMMARY.md:124
msgid "Day 3: Morning"
@@ -419,15 +418,15 @@ msgstr "āϤā§āϤā§ā§ āĻĻāĻŋāύāĻ āϏāĻāĻžāϞ"
#: src/SUMMARY.md:129
msgid "Generics"
-msgstr "Generics"
+msgstr "āĻā§āύā§āϰāĻŋāĻāϏ"
#: src/SUMMARY.md:130
msgid "Generic Data Types"
-msgstr "āϏāĻžāϧāĻžāϰāĻŖ āĻĄā§āĻāĻž āϧāϰāĻŖ"
+msgstr "āĻā§āύā§āϰāĻŋāĻ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ"
#: src/SUMMARY.md:131
msgid "Generic Methods"
-msgstr "āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞā§"
+msgstr "āĻā§āύā§āϰāĻŋāĻ āĻŽā§āĻĨāĻĄ-āϏāĻŽā§āĻš"
#: src/SUMMARY.md:132
msgid "Monomorphization"
@@ -447,7 +446,7 @@ msgstr "Deriving Traits"
#: src/SUMMARY.md:136
msgid "Default Methods"
-msgstr "āĻĄāĻŋāĻĢāϞā§āĻ āĻĒāĻĻā§āϧāϤāĻŋ"
+msgstr "āĻĄāĻŋāĻĢāϞā§āĻ āĻŽā§āĻĨāĻĄ-āϏāĻŽā§āĻš"
#: src/SUMMARY.md:137
msgid "Trait Bounds"
@@ -471,11 +470,11 @@ msgstr "FromIterator"
#: src/SUMMARY.md:142
msgid "From and Into"
-msgstr "From and Into"
+msgstr "From āĻāĻŦāĻ Into"
#: src/SUMMARY.md:143
msgid "Read and Write"
-msgstr "Read and Write"
+msgstr "Read āĻāĻŦāĻ Write"
#: src/SUMMARY.md:144
msgid "Drop"
@@ -483,7 +482,7 @@ msgstr "Drop"
#: src/SUMMARY.md:145
msgid "Default"
-msgstr "āĻĄāĻŋāĻĢāϞā§āĻ"
+msgstr "Default"
#: src/SUMMARY.md:146
msgid "Operators: Add, Mul, ..."
@@ -503,7 +502,7 @@ msgstr "āϤā§āϤā§ā§ āĻĻāĻŋāύāĻ āĻŦāĻŋāĻāĻžāϞ"
#: src/SUMMARY.md:153
msgid "Error Handling"
-msgstr "āϤā§āϰā§āĻāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž"
+msgstr "āϤā§āϰā§āĻāĻŋ āϏāĻžāĻŽāϞāĻžāύā§"
#: src/SUMMARY.md:154
msgid "Panics"
@@ -519,31 +518,31 @@ msgstr "āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻāϰāϰ āĻšā§āϝāĻžāύā§āĻĄāϞ
#: src/SUMMARY.md:157
msgid "Propagating Errors with ?"
-msgstr "āĻāĻŋāϏā§āϰ āϏāĻžāĻĨā§ āϤā§āϰā§āĻāĻŋ āĻĒā§āϰāĻāĻžāϰ āĻāϰāĻž āĻšāĻā§āĻā§?"
+msgstr "āĻāϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠āĻāϰāϰ/āϤā§āϰā§āĻāĻŋ āĻšāϏā§āϤāĻžāύā§āϤāϰ āĻāϰāĻž ?"
#: src/SUMMARY.md:158
msgid "Converting Error Types"
-msgstr "āϤā§āϰā§āĻāĻŋ āĻĒā§āϰāĻāĻžāϰ āϰā§āĻĒāĻžāύā§āϤāϰ"
+msgstr "āĻāϰāϰā§āϰ āĻāĻžāĻāĻĒ āϰā§āĻĒāĻžāύā§āϤāϰ"
#: src/SUMMARY.md:160
msgid "Deriving Error Enums"
-msgstr "Enums āϤā§āϰā§āĻāĻŋ āĻāĻšāϰāĻŖ"
+msgstr "āĻāϰāϰā§āϰ āĻāύāĻžāĻŽāĻā§āϞ⧠āĻŦā§āϰ āĻāϰāĻž"
#: src/SUMMARY.md:161
msgid "Dynamic Error Types"
-msgstr "āĻāϤāĻŋāĻļā§āϞ āϤā§āϰā§āĻāĻŋāϰ āϧāϰāύ"
+msgstr "āĻĄāĻžā§āύāĻžāĻŽāĻŋāĻ āϤā§āϰā§āĻāĻŋāϰ āϧāϰāύ"
#: src/SUMMARY.md:162
msgid "Adding Context to Errors"
-msgstr "āϤā§āϰā§āĻāĻŋāϤ⧠āĻĒā§āϰāϏāĻā§āĻ āϝā§āĻ āĻāϰāĻž āĻšāĻā§āĻā§"
+msgstr "āϤā§āϰā§āĻāĻŋāϤ⧠āĻāύā§āĻā§āĻā§āϏāĻ āϝā§āĻ āĻāϰāĻž"
#: src/SUMMARY.md:163
msgid "Testing"
-msgstr "āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž"
+msgstr "āĻā§āϏā§āĻāĻŋāĻ"
#: src/SUMMARY.md:164
msgid "Unit Tests"
-msgstr "āĻāĻāύāĻŋāĻ āĻĒāϰā§āĻā§āώāĻž"
+msgstr "āĻāĻāύāĻŋāĻ āĻā§āϏā§āĻ"
#: src/SUMMARY.md:165
msgid "Test Modules"
@@ -551,7 +550,8 @@ msgstr "āĻā§āϏā§āĻ āĻŽāĻĄāĻŋāĻāϞ"
#: src/SUMMARY.md:166
msgid "Documentation Tests"
-msgstr "āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻĒāϰā§āĻā§āώāĻž"
+msgstr "āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻā§āϏā§āĻ"
+
#: src/SUMMARY.md:167
msgid "Integration Tests"
@@ -559,19 +559,19 @@ msgstr "āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻā§āϏā§āĻ"
#: src/SUMMARY.md:168
msgid "Useful crates"
-msgstr "āĻĻāϰāĻāĻžāϰ⧠crates"
+msgstr "āĻĻāϰāĻāĻžāϰ⧠āĻā§āϰā§āĻ-āϏāĻŽā§āĻš"
#: src/SUMMARY.md:169
msgid "Unsafe Rust"
-msgstr "āĻ
āύāĻŋāϰāĻžāĻĒāĻĻ Rust"
+msgstr "āĻ
āύāĻŋāϰāĻžāĻĒāĻĻ āϰāĻžāϏā§āĻ"
#: src/SUMMARY.md:170
msgid "Dereferencing Raw Pointers"
-msgstr "āĻĄāĻŋāϰā§āĻĢāĻžāϰā§āύā§āϏāĻŋāĻ Raw Pointers"
+msgstr "āϰ āĻĒā§ā§āύā§āĻāĻžāϰ āĻĄāĻŋ-āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻāϰāĻž"
#: src/SUMMARY.md:171
msgid "Mutable Static Variables"
-msgstr "āĻĒāϰāĻŋāĻŦāϰā§āϤāύāϝā§āĻā§āϝ Static Variables"
+msgstr "āĻĒāϰāĻŋāĻŦāϰā§āϤāύāϝā§āĻā§āϝ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāϏ"
#: src/SUMMARY.md:172
msgid "Unions"
@@ -591,7 +591,7 @@ msgstr "āĻŦāĻšāĻŋāϰāĻžāĻāϤ āĻĢāĻžāĻāĻļāύ"
#: src/SUMMARY.md:176
msgid "Implementing Unsafe Traits"
-msgstr "āĻ
āύāĻŋāϰāĻžāĻĒāĻĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ-Traits āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ"
+msgstr "āĻ
āύāĻŋāϰāĻžāĻĒāĻĻ Traits āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ"
#: src/SUMMARY.md:178
msgid "Safe FFI Wrapper"
@@ -611,11 +611,11 @@ msgstr "āĻāĻ āύā§āϰ āύāĻŋā§āĻŽ"
#: src/SUMMARY.md:188
msgid "Binary"
-msgstr "Binary"
+msgstr "āĻŦāĻžāĻāύāĻžāϰāĻŋ"
#: src/SUMMARY.md:189
msgid "Library"
-msgstr "Library"
+msgstr "āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ"
#: src/SUMMARY.md:190
msgid "AIDL"
@@ -631,7 +631,7 @@ msgstr "āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ"
#: src/SUMMARY.md:193
msgid "Server"
-msgstr "Server-āϏāĻžāϰā§āĻāĻžāϰ"
+msgstr "āϏāĻžāϰā§āĻāĻžāϰ"
#: src/SUMMARY.md:194
msgid "Deploy"
@@ -639,7 +639,7 @@ msgstr "āϏā§āĻĨāĻžāĻĒāύ"
#: src/SUMMARY.md:195
msgid "Client"
-msgstr "Client-āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ"
+msgstr "āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ"
#: src/SUMMARY.md:196
msgid "Changing API"
@@ -651,7 +651,7 @@ msgstr "Logging"
#: src/SUMMARY.md:198
msgid "Interoperability"
-msgstr "Interoperability"
+msgstr "āĻāύā§āϤāĻāĻāĻžāϰā§āϝāĻā§āώāĻŽāϤāĻž"
#: src/SUMMARY.md:199
msgid "With C"
@@ -691,15 +691,15 @@ msgstr "alloc"
#: src/SUMMARY.md:215
msgid "Microcontrollers"
-msgstr "Microcontrollers-āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰ"
+msgstr "āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰ"
#: src/SUMMARY.md:216
msgid "Raw MMIO"
-msgstr "Raw MMIO"
+msgstr ""
#: src/SUMMARY.md:217
msgid "PACs"
-msgstr "PAC āĻā§āϞā§"
+msgstr ""
#: src/SUMMARY.md:218
msgid "HAL Crates"
@@ -715,31 +715,31 @@ msgstr ""
#: src/SUMMARY.md:221
msgid "embedded-hal"
-msgstr "embedded-hal"
+msgstr ""
#: src/SUMMARY.md:222
msgid "probe-rs, cargo-embed"
-msgstr "probe-rs, cargo-embed"
+msgstr ""
#: src/SUMMARY.md:223
msgid "Debugging"
-msgstr "āĻā§āϞ āϏāϰāĻžāύā§"
+msgstr "āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ"
#: src/SUMMARY.md:224 src/SUMMARY.md:242
msgid "Other Projects"
-msgstr "āĻ
āύā§āϝāĻžāύā§āϝ āĻĒā§āϰāĻāϞā§āĻĒāϏāĻŽā§āĻš"
+msgstr ""
#: src/SUMMARY.md:226
msgid "Compass"
-msgstr "āĻāĻŽā§āĻĒāĻžāϏ"
+msgstr ""
#: src/SUMMARY.md:228
msgid "Bare Metal: Afternoon"
-msgstr "Bare Metal: āĻŦāĻŋāĻāĻžāϞ"
+msgstr ""
#: src/SUMMARY.md:230
msgid "Application Processors"
-msgstr "āĻāĻĒā§āϞāĻŋāĻā§āĻļāύ Processors"
+msgstr "āĻāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻĒā§āϰāϏā§āϏāϰ"
#: src/SUMMARY.md:231
msgid "Inline Assembly"
@@ -751,7 +751,7 @@ msgstr "MMIO"
#: src/SUMMARY.md:233
msgid "Let's Write a UART Driver"
-msgstr "āĻāϞ⧠āĻāĻāĻāĻŋ UART Driver āϞāĻŋāĻāĻŋ"
+msgstr "āĻāϞā§āύ āĻāĻāĻāĻŋ UART Driver āϞāĻŋāĻāĻŋ"
#: src/SUMMARY.md:234
msgid "More Traits"
@@ -759,7 +759,7 @@ msgstr "āĻāϰāĻ Traits"
#: src/SUMMARY.md:235
msgid "A Better UART Driver"
-msgstr "āĻāĻāĻāĻŋ āĻāύā§āύāϤāϰ UART Driver"
+msgstr "āĻāĻāĻāĻŋ āĻāύā§āύāϤāϰ UART āĻĄā§āϰāĻžāĻāĻāĻžāϰ"
#: src/SUMMARY.md:236
msgid "Bitflags"
@@ -767,19 +767,19 @@ msgstr "Bitflags"
#: src/SUMMARY.md:237
msgid "Multiple Registers"
-msgstr "āĻāĻāĻžāϧāĻŋāĻ Registers"
+msgstr "āĻāĻāĻžāϧāĻŋāĻ āϰā§āĻāĻŋāϏā§āĻāĻžāϰāϏ"
#: src/SUMMARY.md:238
msgid "Driver"
-msgstr "Driver"
+msgstr ""
#: src/SUMMARY.md:239 src/SUMMARY.md:241
msgid "Using It"
-msgstr "āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻā§āĻā§"
+msgstr ""
#: src/SUMMARY.md:243
msgid "Useful Crates"
-msgstr "āĻāĻĒāĻāĻžāϰ⧠Crates"
+msgstr "āĻāĻĒāĻāĻžāϰ⧠āĻā§āϰā§āĻāϏāĻŽā§āĻš"
#: src/SUMMARY.md:244
msgid "zerocopy"
@@ -815,7 +815,7 @@ msgstr "Concurrency: āϏāĻāĻžāϞ"
#: src/SUMMARY.md:260
msgid "Threads"
-msgstr "Threads"
+msgstr ""
#: src/SUMMARY.md:261
msgid "Scoped Threads"
@@ -823,15 +823,15 @@ msgstr "āϏā§āĻā§āĻĒāĻĄ Threads"
#: src/SUMMARY.md:262
msgid "Channels"
-msgstr "Channels-āĻā§āϝāĻžāύā§āϞ"
+msgstr ""
#: src/SUMMARY.md:263
msgid "Unbounded Channels"
-msgstr "āϏā§āĻŽāĻžāĻšā§āύ Channels"
+msgstr ""
#: src/SUMMARY.md:264
msgid "Bounded Channels"
-msgstr "āĻāĻŦāĻĻā§āϧ Channels"
+msgstr ""
#: src/SUMMARY.md:265
msgid "Send and Sync"
@@ -851,7 +851,7 @@ msgstr "āĻāĻĻāĻžāĻšāϰāĻŖāϏāĻŽā§āĻš"
#: src/SUMMARY.md:269
msgid "Shared State"
-msgstr "Shared State"
+msgstr ""
#: src/SUMMARY.md:270
msgid "Arc"
@@ -871,7 +871,7 @@ msgstr "āĻŽāĻžāϞā§āĻāĻŋ āĻĨā§āϰā§āĻĄā§āĻĄ āϞāĻŋāĻā§āĻ āĻā§āĻāĻžāϰ
#: src/SUMMARY.md:277
msgid "Concurrency: Afternoon"
-msgstr "Concurrency: āĻŦāĻŋāĻāĻžāϞ"
+msgstr ""
#: src/SUMMARY.md:279
msgid "Async Basics"
@@ -887,7 +887,7 @@ msgstr "āĻāĻŦāĻŋāώā§āϝā§"
#: src/SUMMARY.md:282
msgid "Runtimes"
-msgstr "āϰāĻžāύāĻāĻžāĻāĻŽ"
+msgstr ""
#: src/SUMMARY.md:283
msgid "Tokio"
@@ -899,15 +899,15 @@ msgstr "Tasks-āĻāϰā§āĻŽ"
#: src/SUMMARY.md:285
msgid "Async Channels"
-msgstr "Async āĻā§āϝāĻžāύā§āϞ"
+msgstr ""
#: src/SUMMARY.md:287
msgid "Join"
-msgstr "āϝā§āĻāĻĻāĻžāύ"
+msgstr ""
#: src/SUMMARY.md:288
msgid "Select"
-msgstr "āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ"
+msgstr ""
#: src/SUMMARY.md:289
msgid "Pitfalls"
@@ -915,7 +915,7 @@ msgstr "āĻā§āώāϤāĻŋ"
#: src/SUMMARY.md:290
msgid "Blocking the Executor"
-msgstr "āύāĻŋāϰā§āĻŦāĻžāĻšāĻāĻā§ āĻŦā§āϞāĻ āĻāϰāĻž"
+msgstr "āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻāϰ āĻŦā§āϞāĻ āĻāϰāĻž"
#: src/SUMMARY.md:291
msgid "Pin"
@@ -991,15 +991,11 @@ msgstr "Concurrency: āĻŦāĻŋāĻāĻžāϞ"
#: src/welcome.md:1
msgid "# Welcome to Comprehensive Rust đĻ"
-msgstr "āϏā§āĻŦāĻžāĻāϤāĻŽ Comprehensive Rust đĻ āĻ"
+msgstr "# Comprehensive Rust đĻ āĻ āϏā§āĻŦāĻžāĻāϤāĻŽ"
#: src/welcome.md:3
-msgid ""
-"[](https://github.com/google/"
-"comprehensive-rust/actions/workflows/build.yml)"
-msgstr ""
-"[](https://github.com/google/"
-"comprehensive-rust/actions/workflows/build.yml)"
+msgid "[](https://github.com/google/comprehensive-rust/actions/workflows/build.yml)"
+msgstr "[](https://github.com/google/comprehensive-rust/actions/workflows/build.yml)"
#: src/welcome.md:3
msgid "Build workflow"
@@ -1007,15 +1003,11 @@ msgstr "āĻāϰā§āĻŽāĻĒā§āϰāĻŦāĻžāĻš āϤā§āϰāĻŋ"
#: src/welcome.md:3
msgid ""
-"[](https://github.com/google/"
-"comprehensive-rust/actions/workflows/build.yml)\n"
-"[](https://github.com/google/comprehensive-rust/"
-"graphs/contributors)"
+"[](https://github.com/google/comprehensive-rust/actions/workflows/build.yml)\n"
+"[](https://github.com/google/comprehensive-rust/graphs/contributors)"
msgstr ""
-"[](https://github.com/google/"
-"comprehensive-rust/actions/workflows/build.yml)\n"
-"[](https://github.com/google/comprehensive-rust/"
-"graphs/contributors)"
+"[](https://github.com/google/comprehensive-rust/actions/workflows/build.yml)\n"
+"[](https://github.com/google/comprehensive-rust/graphs/contributors)"
#: src/welcome.md:4
msgid "GitHub contributors"
@@ -1023,12 +1015,10 @@ msgstr "GitHub āĻ
āĻŦāĻĻāĻžāύāĻāĻžāϰā§"
#: src/welcome.md:4
msgid ""
-"[](https://github.com/google/comprehensive-rust/"
-"graphs/contributors)\n"
+"[](https://github.com/google/comprehensive-rust/graphs/contributors)\n"
"[](https://github.com/google/comprehensive-rust/stargazers)"
msgstr ""
-"[](https://github.com/google/comprehensive-rust/"
-"graphs/contributors)\n"
+"[](https://github.com/google/comprehensive-rust/graphs/contributors)\n"
"[](https://github.com/google/comprehensive-rust/stargazers)"
#: src/welcome.md:5
@@ -1036,10 +1026,8 @@ msgid "GitHub stars"
msgstr "GitHub stars"
#: src/welcome.md:5
-msgid ""
-"[](https://github.com/google/comprehensive-rust/stargazers)"
-msgstr ""
-"[](https://github.com/google/comprehensive-rust/stargazers)"
+msgid "[](https://github.com/google/comprehensive-rust/stargazers)"
+msgstr "[](https://github.com/google/comprehensive-rust/stargazers)"
#: src/welcome.md:7
msgid ""
@@ -1047,17 +1035,17 @@ msgid ""
"the full spectrum of Rust, from basic syntax to advanced topics like generics\n"
"and error handling. It also includes Android-specific content on the last day."
msgstr ""
-"āĻāĻāĻŋ āĻāĻāĻāĻŋ āϤāĻŋāύ āĻĻāĻŋāύā§āϰ Rust āĻā§āϰā§āϏ āϝāĻž āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāĻŋāĻŽ āĻĻā§āĻŦāĻžāϰāĻž āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ā§ˇ āĻā§āϰā§āϏ āĻāĻāĻžāϰ āĻāϰā§\n"
-"Rust-āĻāϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻŦāϰā§āĻŖāĻžāϞā§, āĻŽā§āϞāĻŋāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻĨā§āĻā§ āĻā§āύā§āϰāĻŋāĻā§āϰ āĻŽāϤ⧠āĻāύā§āύāϤ āĻŦāĻŋāώāϝāĻŧ āĻĒāϰā§āϝāύā§āϤ\n"
-"āĻāĻŦāĻ āϤā§āϰā§āĻāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻžāĨ¤ āĻāĻāĻŋ āĻļā§āώ āĻĻāĻŋāύ⧠āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāĻŽāĻā§āϰā§āĻ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§āĨ¤"
+"āĻāĻāĻŋ āĻāĻāĻāĻŋ āϤāĻŋāύ āĻĻāĻŋāύā§āϰ āϰāĻžāϏā§āĻ āĻā§āϰā§āϏ āϝāĻž āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāĻŋāĻŽ āĻĻā§āĻŦāĻžāϰāĻž āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ā§ˇ āĻā§āϰā§āϏ āĻāĻāĻžāϰ āĻāϰā§\n"
+"Rust-āĻāϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏā§āĻĒā§āĻāĻā§āϰāĻžāĻŽ, āĻŽā§āϞāĻŋāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻĨā§āĻā§ āĻā§āύā§āϰāĻŋāĻā§ āĻāĻŦāĻ āĻāϰāϰ āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻ āĻāϰ āĻŽāϤ⧠\n"
+"āĻāύā§āύāϤ āĻŦāĻŋāώāϝāĻŧ āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻāĻāĻŋ āĻļā§āώ āĻĻāĻŋāύ⧠āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāĻŽāĻā§āϰā§āĻ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§āĨ¤"
#: src/welcome.md:11
msgid ""
"The goal of the course is to teach you Rust. We assume you don't know anything\n"
"about Rust and hope to:"
msgstr ""
-"āĻā§āϰā§āϏā§āϰ āϞāĻā§āώā§āϝ āĻšāϞ āĻāĻĒāύāĻžāĻā§ Rust āĻļā§āĻāĻžāύā§āĨ¤ āĻāĻŽāϰāĻž āϧāϰ⧠āύāĻŋāϞāĻžāĻŽ āĻāĻĒāύāĻŋ āĻāĻŋāĻā§āĻ āĻāĻžāύā§āύ āύāĻž\n"
-"Rust āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŦāĻ āĻāĻļāĻž āĻāϰāĻŋ:"
+"āĻā§āϰā§āϏā§āϰ āϞāĻā§āώā§āϝ āĻšāϞ āĻāĻĒāύāĻžāĻā§ āϰāĻžāϏā§āĻ āĻļā§āĻāĻžāύā§āĨ¤ āĻāĻŽāϰāĻž āϧāϰ⧠āύāĻŋāϞāĻžāĻŽ āĻāĻĒāύāĻŋ āĻāĻŋāĻā§āĻ āĻāĻžāύā§āύ āύāĻž\n"
+"āϰāĻžāϏā§āĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŦāĻ āĻāĻļāĻž āĻāϰāĻŋāĻ"
#: src/welcome.md:14
msgid ""
@@ -1065,17 +1053,17 @@ msgid ""
"* Enable you to modify existing programs and write new programs in Rust.\n"
"* Show you common Rust idioms."
msgstr ""
-"* āĻāĻĒāύāĻžāĻā§ Rust āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻŦāĻ āĻāĻžāώāĻž āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻāĻŋ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻŦā§āĻāĻžāĻŦā§āĨ¤\n"
-"* āĻāĻĒāύāĻžāĻā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻā§āϞāĻŋ āϏāĻāĻļā§āϧāύ āĻāϰāϤ⧠āĻāĻŦāĻ Rust āĻ āύāϤā§āύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āϞāĻŋāĻāϤ⧠āϏāĻā§āώāĻŽ āĻāϰāĻŦā§āĨ¤\n"
-"* āĻāĻĒāύāĻžāĻā§ āϏāĻžāϧāĻžāϰāĻŖ Rust āĻŦāĻžāĻāϧāĻžāϰāĻž āĻĻā§āĻāĻžāĻŦā§āĨ¤"
+"* āĻāĻĒāύāĻžāĻā§ āϰāĻžāϏā§āĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻŦāĻ āĻāĻžāώāĻž āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻāĻŋ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻŦā§āĻāĻžā§āĨ¤\n"
+"* āĻāĻĒāύāĻžāĻā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻā§āϞāĻŋ āϏāĻāĻļā§āϧāύ āĻāϰāϤ⧠āĻāĻŦāĻ āϰāĻžāϏā§āĻ āĻ āύāϤā§āύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āϞāĻŋāĻāϤ⧠āϏāĻā§āώāĻŽ āĻāϰā§āĨ¤\n"
+"* āĻāĻĒāύāĻžāĻā§ āϏāĻžāϧāĻžāϰāĻŖ āϰāĻžāϏā§āĻ āĻāĻĄāĻŋā§āĻŽāϏ āĻĻā§āĻāĻžā§āĨ¤"
#: src/welcome.md:18
msgid ""
"The first three days show you the fundamentals of Rust. Following this, you're\n"
"invited to dive into one or more spezialized topics:"
msgstr ""
-"āĻĒā§āϰāĻĨāĻŽ āϤāĻŋāύ āĻĻāĻŋāύ āĻāĻĒāύāĻžāĻā§ Rust āĻāϰ āĻŽā§āϞāĻŋāĻāϤā§āĻŦ āĻĻā§āĻāĻžāĻŦā§āĨ¤ āĻāĻ āĻ
āύā§āϝāĻžā§ā§ āĻāĻĒāύāĻŋ\n"
-"āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻŦāĻŋāĻļā§āώāĻžāϝāĻŧāĻŋāϤ āĻŦāĻŋāώāϝāĻŧāĻā§āϞāĻŋāϤ⧠āĻĄā§āĻŦ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāĻŽāύā§āϤā§āϰāĻŋāϤ:"
+"āĻĒā§āϰāĻĨāĻŽ āϤāĻŋāύ āĻĻāĻŋāύ āĻāĻĒāύāĻžāĻā§ āϰāĻžāϏā§āĻ āĻāϰ āĻŽā§āϞāĻŋāĻāϤā§āĻŦ āĻĻā§āĻāĻžāĻŦā§āĨ¤ āĻāĻ āĻ
āύā§āϝāĻžā§ā§ āĻāĻĒāύāĻŋ\n"
+"āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻŦāĻŋāĻļā§āώāĻžāϝāĻŧāĻŋāϤ āĻŦāĻŋāώāϝāĻŧāĻā§āϞāĻŋāϤ⧠āĻĄā§āĻŦ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāĻŽāύā§āϤā§āϰāĻŋāϤāĻ"
#: src/welcome.md:21
msgid ""
@@ -1101,15 +1089,15 @@ msgstr ""
#: src/welcome.md:32
msgid "## Non-Goals"
-msgstr "##āĻāĻĻā§āĻĻā§āĻļā§āϝāĻšā§āύ āϞāĻā§āώā§āϝāϏāĻŽā§āĻš"
+msgstr ""
#: src/welcome.md:34
msgid ""
"Rust is a large language and we won't be able to cover all of it in a few days.\n"
"Some non-goals of this course are:"
msgstr ""
-"Rust āĻāĻāĻāĻŋ āĻŦā§āĻšā§ āĻāĻžāώāĻž āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻāϝāĻŧā§āĻ āĻĻāĻŋāύā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻŋāĻā§ āĻāĻāĻžāϰ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻŦ āύāĻžāĨ¤\n"
-"āĻāĻ āĻā§āϰā§āϏā§āϰ āĻāĻŋāĻā§ āĻāĻĻā§āĻĻā§āĻļā§āϝāĻšā§āύ-āϞāĻā§āώā§āϝ āĻšāϞāĻ"
+"āϰāĻžāϏā§āĻ āĻāĻāĻāĻŋ āĻŦā§āĻšā§ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āϞā§āϝāĻžāĻāĻā§ā§ā§āĻ āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻāϝāĻŧā§āĻ āĻĻāĻŋāύā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻŋāĻā§ āĻāĻāĻžāϰ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻŦ āύāĻžāĨ¤\n"
+"āĻāĻ āĻā§āϰā§āϏā§āϰ āĻāĻŋāĻā§ āĻ
-āϞāĻā§āώā§āϝ āĻšāϞāĻ"
#: src/welcome.md:37
msgid ""
@@ -1118,8 +1106,8 @@ msgid ""
" Example](https://doc.rust-lang.org/rust-by-example/macros.html) instead."
msgstr ""
"* āĻļāĻŋāĻā§āύ āĻāĻŋāĻāĻžāĻŦā§ macros āĻĄā§āĻā§āϞāĻĒ āĻāϰāϤ⧠āĻšā§, āĻ
āύā§āĻā§āϰāĻš āĻāϰ⧠āĻĻā§āĻā§āύ [āĻ
āϧā§āϝāĻžā§ 19.5 Rust āĻāϰ\n"
-" āĻŦāĻ āĻ](https://doc.rust-lang.org/book/ch19-06-macros.html) and [āĻāĻĻāĻžāĻšāϰāĻŖ āĻāϰ āĻŽāϧā§āϝāĻŽā§\n"
-" Rust](https://doc.rust-lang.org/rust-by-example/macros.html) āĻĒāϰāĻŋāĻŦāϰā§āϤā§āĨ¤"
+" āĻŦāĻ āĻ](https://doc.rust-lang.org/book/ch19-06-macros.html) āĻāĻŦāĻ [āĻāĻĻāĻžāĻšāϰāĻŖ āĻāϰ āĻŽāϧā§āϝāĻŽā§\n"
+" āϰāĻžāϏā§āĻ](https://doc.rust-lang.org/rust-by-example/macros.html) āĻĒāϰāĻŋāĻŦāϰā§āϤā§āĨ¤"
#: src/welcome.md:41
msgid "## Assumptions"
@@ -1131,57 +1119,46 @@ msgid ""
"typed language and we will sometimes make comparisons with C and C++ to better\n"
"explain or contrast the Rust approach."
msgstr ""
-"āĻā§āϰā§āϏāĻāĻŋ āĻ
āύā§āĻŽāĻžāύ āĻāϰ⧠āϝ⧠āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāϰāϤ⧠āĻāĻžāύā§āύāĨ¤ Rust āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ\n"
-"āĻāĻžāĻāĻĒ āĻāϰāĻž āĻāĻžāώāĻž āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻāĻāύāĻ āĻāĻāύāĻ C āĻāĻŦāĻ C++ āĻāϰ āϏāĻžāĻĨā§ āĻāϰāĻ āĻāĻžāϞ āϤā§āϞāύāĻž āĻāϰāĻŦ\n"
-" Rust āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻŦāĻž āĻŦā§āϏāĻžāĻĻā§āĻļā§āϝāĨ¤"
+"āĻā§āϰā§āϏāĻāĻŋ āĻ
āύā§āĻŽāĻžāύ āĻāϰ⧠āϝ⧠āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāϰāϤ⧠āĻāĻžāύā§āύāĨ¤ Rust āĻāĻāĻāĻŋ āϏā§āĻā§āϝāĻžāĻāĻŋāĻāĻžāϞāĻŋ\n"
+"āĻāĻžāĻāĻĒāĻĄ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āϞā§āϝāĻžāĻāĻā§ā§ā§āĻ āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻāĻāύāĻ āĻāĻāύāĻ C āĻāĻŦāĻ C++ āĻāϰ āϏāĻžāĻĨā§ āϤā§āϞāύāĻž āĻāϰāĻŦ āĻāĻžāϞā§āĻāĻžāĻŦā§ \n"
+" āĻŦā§āϝāĻžāĻāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻ
āĻĨāĻŦāĻž āĻŦāĻŋāĻĒāϰā§āϤ Rust āĻĒāĻĻā§āϧāϤāĻŋāĨ¤"
#: src/welcome.md:47
msgid ""
"If you know how to program in a dynamically typed language such as Python or\n"
"JavaScript, then you will be able to follow along just fine too."
msgstr ""
-"āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻžāύā§āύ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāϤāĻŋāĻļā§āϞ āĻāĻžāĻāĻĒ āĻāϰāĻž āĻāĻžāώāĻžāϝāĻŧ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāϰāϤ⧠āĻšāϝāĻŧ āϝā§āĻŽāύ āĻĒāĻžāĻāĻĨāύ āĻŦāĻž\n"
-"āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻā§āĻŦ āĻāĻžāϞ āĻŦāϰāĻžāĻŦāϰ āĻ
āύā§āϏāϰāĻŖ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻŦā§."
+"āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻžāύā§āύ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻāύāĻžāĻŽāĻŋāĻā§āϝāĻžāϞāĻŋ āĻāĻžāĻāĻĒāĻĄ āĻāĻžāώāĻžāϝāĻŧ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāϰāϤ⧠āĻšāϝāĻŧ āϝā§āĻŽāύ āĻĒāĻžāĻāĻĨāύ āĻŦāĻž\n"
+"āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻā§āĻŦ āĻāĻžāϞ āĻ
āύā§āϏāϰāĻŖ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻŦā§āύāĨ¤"
-#: src/welcome.md:50 src/cargo/rust-ecosystem.md:19 src/cargo/code-samples.md:22 src/cargo/running-locally.md:68 src/welcome-day-1.md:14
-#: src/welcome-day-1/what-is-rust.md:19 src/hello-world.md:20 src/hello-world/small-example.md:21 src/why-rust.md:9 src/why-rust/compile-time.md:14
-#: src/why-rust/runtime.md:8 src/why-rust/modern.md:19 src/basic-syntax/scalar-types.md:19 src/basic-syntax/compound-types.md:28 src/basic-syntax/slices.md:18
-#: src/basic-syntax/string-slices.md:25 src/basic-syntax/functions.md:33 src/basic-syntax/rustdoc.md:22 src/basic-syntax/methods.md:32
-#: src/basic-syntax/functions-interlude.md:25 src/exercises/day-1/morning.md:9 src/exercises/day-1/for-loops.md:90 src/basic-syntax/variables.md:15
-#: src/basic-syntax/type-inference.md:24 src/basic-syntax/static-and-const.md:46 src/basic-syntax/scopes-shadowing.md:23 src/memory-management/stack.md:26
-#: src/memory-management/rust.md:12 src/ownership/move-semantics.md:20 src/ownership/moves-function-calls.md:18 src/ownership/copy-clone.md:33
-#: src/ownership/borrowing.md:25 src/ownership/shared-unique-borrows.md:23 src/ownership/lifetimes-function-calls.md:27
-#: src/ownership/lifetimes-data-structures.md:23 src/exercises/day-1/afternoon.md:9 src/exercises/day-1/book-library.md:100 src/structs/tuple-structs.md:35
-#: src/structs/field-shorthand.md:25 src/enums.md:31 src/enums/variant-payloads.md:33 src/enums/sizes.md:27 src/methods.md:28 src/methods/receiver.md:23
-#: src/methods/example.md:44 src/pattern-matching.md:23 src/pattern-matching/destructuring-enums.md:33 src/pattern-matching/destructuring-structs.md:21
-#: src/pattern-matching/destructuring-arrays.md:19 src/pattern-matching/match-guards.md:20 src/exercises/day-2/morning.md:9
-#: src/exercises/day-2/points-polygons.md:115 src/control-flow/blocks.md:40 src/control-flow/if-expressions.md:33 src/control-flow/if-let-expressions.md:21
-#: src/control-flow/while-let-expressions.md:24 src/control-flow/for-expressions.md:23 src/control-flow/loop-expressions.md:25
-#: src/control-flow/match-expressions.md:26 src/std.md:23 src/std/option-result.md:16 src/std/string.md:28 src/std/vec.md:35 src/std/hashmap.md:36
-#: src/std/box.md:32 src/std/box-recursive.md:31 src/std/rc.md:29 src/modules.md:26 src/modules/visibility.md:37 src/modules/filesystem.md:42
-#: src/exercises/day-2/afternoon.md:5 src/generics/data-types.md:19 src/generics/methods.md:23 src/traits/trait-objects.md:70 src/traits/default-methods.md:30
-#: src/traits/trait-bounds.md:33 src/traits/impl-trait.md:21 src/traits/iterator.md:30 src/traits/from-iterator.md:15 src/traits/from-into.md:27
-#: src/traits/drop.md:32 src/traits/default.md:38 src/traits/operators.md:24 src/traits/closures.md:23 src/exercises/day-3/morning.md:5
-#: src/error-handling/result.md:25 src/error-handling/try-operator.md:46 src/error-handling/converting-error-types-example.md:48
-#: src/error-handling/deriving-error-enums.md:37 src/error-handling/dynamic-errors.md:34 src/error-handling/error-contexts.md:33 src/unsafe.md:26
-#: src/unsafe/raw-pointers.md:25 src/unsafe/mutable-static-variables.md:30 src/unsafe/unions.md:19 src/unsafe/writing-unsafe-functions.md:31
-#: src/unsafe/extern-functions.md:19 src/unsafe/unsafe-traits.md:28 src/exercises/day-3/afternoon.md:5 src/android/interoperability/with-c/rust.md:81
-#: src/exercises/android/morning.md:10 src/bare-metal/minimal.md:15 src/bare-metal/alloc.md:37 src/bare-metal/microcontrollers.md:23
-#: src/bare-metal/microcontrollers/mmio.md:62 src/bare-metal/microcontrollers/pacs.md:47 src/bare-metal/microcontrollers/hals.md:37
-#: src/bare-metal/microcontrollers/board-support.md:26 src/bare-metal/microcontrollers/type-state.md:30 src/bare-metal/microcontrollers/embedded-hal.md:17
-#: src/bare-metal/microcontrollers/probe-rs.md:14 src/bare-metal/microcontrollers/debugging.md:25 src/bare-metal/microcontrollers/other-projects.md:16
-#: src/exercises/bare-metal/morning.md:5 src/bare-metal/aps.md:7 src/bare-metal/aps/inline-assembly.md:41 src/bare-metal/aps/mmio.md:7
-#: src/bare-metal/aps/uart.md:53 src/bare-metal/aps/uart/traits.md:22 src/bare-metal/aps/better-uart.md:24 src/bare-metal/aps/better-uart/bitflags.md:35
-#: src/bare-metal/aps/better-uart/registers.md:39 src/bare-metal/aps/better-uart/driver.md:62 src/bare-metal/aps/better-uart/using.md:49
-#: src/bare-metal/aps/logging.md:48 src/bare-metal/aps/logging/using.md:44 src/bare-metal/useful-crates/zerocopy.md:43
-#: src/bare-metal/useful-crates/aarch64-paging.md:26 src/bare-metal/useful-crates/buddy_system_allocator.md:24 src/bare-metal/useful-crates/tinyvec.md:21
-#: src/bare-metal/useful-crates/spin.md:21 src/bare-metal/android/vmbase.md:19 src/exercises/bare-metal/afternoon.md:5 src/concurrency/threads.md:28
-#: src/concurrency/scoped-threads.md:35 src/concurrency/channels.md:25 src/concurrency/send-sync.md:18 src/concurrency/send-sync/send.md:11
-#: src/concurrency/send-sync/sync.md:12 src/concurrency/shared_state/arc.md:27 src/concurrency/shared_state/mutex.md:29
-#: src/concurrency/shared_state/example.md:21 src/exercises/concurrency/morning.md:10 src/async/async-await.md:23 src/async/futures.md:30
-#: src/async/runtimes.md:18 src/async/runtimes/tokio.md:31 src/async/tasks.md:51 src/async/channels.md:33 src/async/control-flow/join.md:34
-#: src/async/control-flow/select.md:59 src/async/pitfalls/blocking-executor.md:27 src/async/pitfalls/pin.md:66 src/exercises/concurrency/afternoon.md:11
-#: src/exercises/concurrency/dining-philosophers-async.md:75
+#: src/welcome.md:50 src/cargo/rust-ecosystem.md:19 src/cargo/code-samples.md:22 src/cargo/running-locally.md:68 src/welcome-day-1.md:14 src/welcome-day-1/what-is-rust.md:19 src/hello-world.md:20
+#: src/hello-world/small-example.md:21 src/why-rust.md:9 src/why-rust/compile-time.md:14 src/why-rust/runtime.md:8 src/why-rust/modern.md:19 src/basic-syntax/scalar-types.md:19
+#: src/basic-syntax/compound-types.md:28 src/basic-syntax/slices.md:18 src/basic-syntax/string-slices.md:25 src/basic-syntax/functions.md:33 src/basic-syntax/rustdoc.md:22 src/basic-syntax/methods.md:32
+#: src/basic-syntax/functions-interlude.md:25 src/exercises/day-1/morning.md:9 src/exercises/day-1/for-loops.md:90 src/basic-syntax/variables.md:15 src/basic-syntax/type-inference.md:24
+#: src/basic-syntax/static-and-const.md:46 src/basic-syntax/scopes-shadowing.md:23 src/memory-management/stack.md:26 src/memory-management/rust.md:12 src/ownership/move-semantics.md:20
+#: src/ownership/moves-function-calls.md:18 src/ownership/copy-clone.md:33 src/ownership/borrowing.md:25 src/ownership/shared-unique-borrows.md:23 src/ownership/lifetimes-function-calls.md:27
+#: src/ownership/lifetimes-data-structures.md:23 src/exercises/day-1/afternoon.md:9 src/exercises/day-1/book-library.md:100 src/structs/tuple-structs.md:35 src/structs/field-shorthand.md:25 src/enums.md:31
+#: src/enums/variant-payloads.md:33 src/enums/sizes.md:27 src/methods.md:28 src/methods/receiver.md:23 src/methods/example.md:44 src/pattern-matching.md:23 src/pattern-matching/destructuring-enums.md:33
+#: src/pattern-matching/destructuring-structs.md:21 src/pattern-matching/destructuring-arrays.md:19 src/pattern-matching/match-guards.md:20 src/exercises/day-2/morning.md:9
+#: src/exercises/day-2/points-polygons.md:115 src/control-flow/blocks.md:40 src/control-flow/if-expressions.md:33 src/control-flow/if-let-expressions.md:21 src/control-flow/while-let-expressions.md:24
+#: src/control-flow/for-expressions.md:23 src/control-flow/loop-expressions.md:25 src/control-flow/match-expressions.md:26 src/std.md:23 src/std/option-result.md:16 src/std/string.md:28 src/std/vec.md:35
+#: src/std/hashmap.md:36 src/std/box.md:32 src/std/box-recursive.md:31 src/std/rc.md:29 src/modules.md:26 src/modules/visibility.md:37 src/modules/filesystem.md:42 src/exercises/day-2/afternoon.md:5
+#: src/generics/data-types.md:19 src/generics/methods.md:23 src/traits/trait-objects.md:70 src/traits/default-methods.md:30 src/traits/trait-bounds.md:33 src/traits/impl-trait.md:21 src/traits/iterator.md:30
+#: src/traits/from-iterator.md:15 src/traits/from-into.md:27 src/traits/drop.md:32 src/traits/default.md:38 src/traits/operators.md:24 src/traits/closures.md:23 src/exercises/day-3/morning.md:5
+#: src/error-handling/result.md:25 src/error-handling/try-operator.md:46 src/error-handling/converting-error-types-example.md:48 src/error-handling/deriving-error-enums.md:37
+#: src/error-handling/dynamic-errors.md:34 src/error-handling/error-contexts.md:33 src/unsafe.md:26 src/unsafe/raw-pointers.md:25 src/unsafe/mutable-static-variables.md:30 src/unsafe/unions.md:19
+#: src/unsafe/writing-unsafe-functions.md:31 src/unsafe/extern-functions.md:19 src/unsafe/unsafe-traits.md:28 src/exercises/day-3/afternoon.md:5 src/android/interoperability/with-c/rust.md:81
+#: src/exercises/android/morning.md:10 src/bare-metal/minimal.md:15 src/bare-metal/alloc.md:37 src/bare-metal/microcontrollers.md:23 src/bare-metal/microcontrollers/mmio.md:62
+#: src/bare-metal/microcontrollers/pacs.md:47 src/bare-metal/microcontrollers/hals.md:37 src/bare-metal/microcontrollers/board-support.md:26 src/bare-metal/microcontrollers/type-state.md:30
+#: src/bare-metal/microcontrollers/embedded-hal.md:17 src/bare-metal/microcontrollers/probe-rs.md:14 src/bare-metal/microcontrollers/debugging.md:25 src/bare-metal/microcontrollers/other-projects.md:16
+#: src/exercises/bare-metal/morning.md:5 src/bare-metal/aps.md:7 src/bare-metal/aps/inline-assembly.md:41 src/bare-metal/aps/mmio.md:7 src/bare-metal/aps/uart.md:53 src/bare-metal/aps/uart/traits.md:22
+#: src/bare-metal/aps/better-uart.md:24 src/bare-metal/aps/better-uart/bitflags.md:35 src/bare-metal/aps/better-uart/registers.md:39 src/bare-metal/aps/better-uart/driver.md:62
+#: src/bare-metal/aps/better-uart/using.md:49 src/bare-metal/aps/logging.md:48 src/bare-metal/aps/logging/using.md:44 src/bare-metal/useful-crates/zerocopy.md:43 src/bare-metal/useful-crates/aarch64-paging.md:26
+#: src/bare-metal/useful-crates/buddy_system_allocator.md:24 src/bare-metal/useful-crates/tinyvec.md:21 src/bare-metal/useful-crates/spin.md:21 src/bare-metal/android/vmbase.md:19
+#: src/exercises/bare-metal/afternoon.md:5 src/concurrency/threads.md:28 src/concurrency/scoped-threads.md:35 src/concurrency/channels.md:25 src/concurrency/send-sync.md:18 src/concurrency/send-sync/send.md:11
+#: src/concurrency/send-sync/sync.md:12 src/concurrency/shared_state/arc.md:27 src/concurrency/shared_state/mutex.md:29 src/concurrency/shared_state/example.md:21 src/exercises/concurrency/morning.md:10
+#: src/async/async-await.md:23 src/async/futures.md:30 src/async/runtimes.md:18 src/async/runtimes/tokio.md:31 src/async/tasks.md:51 src/async/channels.md:33 src/async/control-flow/join.md:34
+#: src/async/control-flow/select.md:59 src/async/pitfalls/blocking-executor.md:27 src/async/pitfalls/pin.md:66 src/exercises/concurrency/afternoon.md:11 src/exercises/concurrency/dining-philosophers-async.md:75
msgid ""
msgstr ""
@@ -1191,49 +1168,39 @@ msgid ""
"information to the slides. This could be key points which the instructor should\n"
"cover as well as answers to typical questions which come up in class."
msgstr ""
-"āĻāĻāĻŋ a _speaker note_ āĻāϰ āĻāĻĻāĻžāĻšāϰāĻŖāĨ¤ āĻāĻŽāϰāĻž āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āϤāĻĨā§āϝ āϏā§āϞāĻžāĻāĻĄā§ āϝā§āĻ āĻāϰāϤ⧠āĻāĻāĻā§āϞā§\n"
+"āĻāĻāĻŋ āĻāĻāĻāĻŋ _speaker note_ āĻāϰ āĻāĻĻāĻžāĻšāϰāĻŖāĨ¤ āĻāĻŽāϰāĻž āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āϤāĻĨā§āϝ āϏā§āϞāĻžāĻāĻĄā§ āϝā§āĻ āĻāϰāϤ⧠āĻāĻāĻā§āϞā§\n"
"āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āĨ¤ āĻāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āĻĒāϝāĻŧā§āύā§āĻ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻž āĻĒā§āϰāĻļāĻŋāĻā§āώāĻā§āϰ āĻāĻāĻŋāϤ\n"
"āĻāĻāĻžāϰā§āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻā§āϞāĻžāϏ⧠āĻāϏāĻž āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϰāĻļā§āύā§āϰ āĻāϤā§āϤāϰ āĻĻā§āĻā§āĻžāĨ¤"
-#: src/welcome.md:56 src/cargo/rust-ecosystem.md:67 src/cargo/code-samples.md:35 src/cargo/running-locally.md:74 src/welcome-day-1.md:42
-#: src/welcome-day-1/what-is-rust.md:29 src/hello-world.md:40 src/hello-world/small-example.md:44 src/why-rust.md:24 src/why-rust/compile-time.md:35
-#: src/why-rust/runtime.md:22 src/why-rust/modern.md:66 src/basic-syntax/scalar-types.md:43 src/basic-syntax/compound-types.md:62
-#: src/basic-syntax/references.md:28 src/basic-syntax/slices.md:36 src/basic-syntax/string-slices.md:44 src/basic-syntax/functions.md:41
-#: src/basic-syntax/rustdoc.md:33 src/basic-syntax/methods.md:45 src/exercises/day-1/morning.md:28 src/exercises/day-1/for-loops.md:95
-#: src/basic-syntax/variables.md:20 src/basic-syntax/type-inference.md:48 src/basic-syntax/static-and-const.md:52 src/basic-syntax/scopes-shadowing.md:39
-#: src/memory-management/stack.md:49 src/memory-management/rust.md:18 src/ownership/move-semantics.md:26 src/ownership/moves-function-calls.md:26
-#: src/ownership/copy-clone.md:51 src/ownership/borrowing.md:51 src/ownership/shared-unique-borrows.md:29 src/ownership/lifetimes-function-calls.md:60
-#: src/ownership/lifetimes-data-structures.md:30 src/exercises/day-1/afternoon.md:15 src/exercises/day-1/book-library.md:104 src/structs.md:41
-#: src/structs/tuple-structs.md:43 src/structs/field-shorthand.md:72 src/enums.md:41 src/enums/variant-payloads.md:45 src/enums/sizes.md:155 src/methods.md:41
-#: src/methods/receiver.md:29 src/methods/example.md:53 src/pattern-matching.md:35 src/pattern-matching/destructuring-enums.md:39
-#: src/pattern-matching/destructuring-structs.md:29 src/pattern-matching/destructuring-arrays.md:46 src/pattern-matching/match-guards.md:28
-#: src/exercises/day-2/morning.md:15 src/exercises/day-2/points-polygons.md:125 src/control-flow/blocks.md:46 src/control-flow/if-expressions.md:37
-#: src/control-flow/if-let-expressions.md:41 src/control-flow/while-let-expressions.md:29 src/control-flow/for-expressions.md:30
-#: src/control-flow/loop-expressions.md:32 src/control-flow/match-expressions.md:33 src/std.md:31 src/std/option-result.md:25 src/std/string.md:42
-#: src/std/vec.md:49 src/std/hashmap.md:66 src/std/box.md:39 src/std/box-recursive.md:41 src/std/rc.md:69 src/modules.md:32 src/modules/visibility.md:48
-#: src/modules/filesystem.md:71 src/exercises/day-2/afternoon.md:11 src/generics/data-types.md:25 src/generics/methods.md:31 src/traits/trait-objects.md:83
-#: src/traits/default-methods.md:41 src/traits/trait-bounds.md:50 src/traits/impl-trait.md:44 src/traits/iterator.md:42 src/traits/from-iterator.md:26
-#: src/traits/from-into.md:33 src/traits/drop.md:42 src/traits/default.md:47 src/traits/operators.md:38 src/traits/closures.md:38
-#: src/exercises/day-3/morning.md:11 src/error-handling/result.md:33 src/error-handling/try-operator.md:53
-#: src/error-handling/converting-error-types-example.md:60 src/error-handling/deriving-error-enums.md:45 src/error-handling/dynamic-errors.md:41
-#: src/error-handling/error-contexts.md:42 src/unsafe.md:32 src/unsafe/raw-pointers.md:43 src/unsafe/mutable-static-variables.md:35 src/unsafe/unions.md:28
-#: src/unsafe/writing-unsafe-functions.md:38 src/unsafe/extern-functions.md:28 src/unsafe/unsafe-traits.md:37 src/exercises/day-3/afternoon.md:11
-#: src/android/interoperability/with-c/rust.md:86 src/exercises/android/morning.md:15 src/bare-metal/no_std.md:65 src/bare-metal/minimal.md:26
-#: src/bare-metal/alloc.md:49 src/bare-metal/microcontrollers.md:29 src/bare-metal/microcontrollers/mmio.md:72 src/bare-metal/microcontrollers/pacs.md:65
-#: src/bare-metal/microcontrollers/hals.md:49 src/bare-metal/microcontrollers/board-support.md:40 src/bare-metal/microcontrollers/type-state.md:43
-#: src/bare-metal/microcontrollers/embedded-hal.md:23 src/bare-metal/microcontrollers/probe-rs.md:29 src/bare-metal/microcontrollers/debugging.md:38
-#: src/bare-metal/microcontrollers/other-projects.md:26 src/exercises/bare-metal/morning.md:11 src/bare-metal/aps.md:15 src/bare-metal/aps/inline-assembly.md:58
-#: src/bare-metal/aps/mmio.md:17 src/bare-metal/aps/uart/traits.md:27 src/bare-metal/aps/better-uart.md:28 src/bare-metal/aps/better-uart/bitflags.md:40
-#: src/bare-metal/aps/better-uart/registers.md:46 src/bare-metal/aps/better-uart/driver.md:67 src/bare-metal/aps/better-uart/using.md:55
-#: src/bare-metal/aps/logging.md:52 src/bare-metal/aps/logging/using.md:49 src/bare-metal/useful-crates/zerocopy.md:53
-#: src/bare-metal/useful-crates/aarch64-paging.md:33 src/bare-metal/useful-crates/buddy_system_allocator.md:30 src/bare-metal/useful-crates/tinyvec.md:26
-#: src/bare-metal/useful-crates/spin.md:30 src/bare-metal/android/vmbase.md:25 src/exercises/bare-metal/afternoon.md:11 src/concurrency/threads.md:45
-#: src/concurrency/scoped-threads.md:40 src/concurrency/channels.md:32 src/concurrency/send-sync.md:23 src/concurrency/send-sync/send.md:16
-#: src/concurrency/send-sync/sync.md:18 src/concurrency/shared_state/arc.md:38 src/concurrency/shared_state/mutex.md:45
-#: src/concurrency/shared_state/example.md:56 src/exercises/concurrency/morning.md:16 src/async/async-await.md:48 src/async/futures.md:45
-#: src/async/runtimes.md:29 src/async/runtimes/tokio.md:49 src/async/tasks.md:64 src/async/channels.md:49 src/async/control-flow/join.md:50
-#: src/async/control-flow/select.md:77 src/async/pitfalls/blocking-executor.md:50 src/async/pitfalls/pin.md:112 src/async/pitfalls/async-traits.md:63
-#: src/exercises/concurrency/afternoon.md:17 src/exercises/concurrency/dining-philosophers-async.md:79
+#: src/welcome.md:56 src/cargo/rust-ecosystem.md:67 src/cargo/code-samples.md:35 src/cargo/running-locally.md:74 src/welcome-day-1.md:42 src/welcome-day-1/what-is-rust.md:29 src/hello-world.md:40
+#: src/hello-world/small-example.md:44 src/why-rust.md:24 src/why-rust/compile-time.md:35 src/why-rust/runtime.md:22 src/why-rust/modern.md:66 src/basic-syntax/scalar-types.md:43
+#: src/basic-syntax/compound-types.md:62 src/basic-syntax/references.md:28 src/basic-syntax/slices.md:36 src/basic-syntax/string-slices.md:44 src/basic-syntax/functions.md:41 src/basic-syntax/rustdoc.md:33
+#: src/basic-syntax/methods.md:45 src/exercises/day-1/morning.md:28 src/exercises/day-1/for-loops.md:95 src/basic-syntax/variables.md:20 src/basic-syntax/type-inference.md:48
+#: src/basic-syntax/static-and-const.md:52 src/basic-syntax/scopes-shadowing.md:39 src/memory-management/stack.md:49 src/memory-management/rust.md:18 src/ownership/move-semantics.md:26
+#: src/ownership/moves-function-calls.md:26 src/ownership/copy-clone.md:51 src/ownership/borrowing.md:51 src/ownership/shared-unique-borrows.md:29 src/ownership/lifetimes-function-calls.md:60
+#: src/ownership/lifetimes-data-structures.md:30 src/exercises/day-1/afternoon.md:15 src/exercises/day-1/book-library.md:104 src/structs.md:41 src/structs/tuple-structs.md:43 src/structs/field-shorthand.md:72
+#: src/enums.md:41 src/enums/variant-payloads.md:45 src/enums/sizes.md:155 src/methods.md:41 src/methods/receiver.md:29 src/methods/example.md:53 src/pattern-matching.md:35
+#: src/pattern-matching/destructuring-enums.md:39 src/pattern-matching/destructuring-structs.md:29 src/pattern-matching/destructuring-arrays.md:46 src/pattern-matching/match-guards.md:28
+#: src/exercises/day-2/morning.md:15 src/exercises/day-2/points-polygons.md:125 src/control-flow/blocks.md:46 src/control-flow/if-expressions.md:37 src/control-flow/if-let-expressions.md:41
+#: src/control-flow/while-let-expressions.md:29 src/control-flow/for-expressions.md:30 src/control-flow/loop-expressions.md:32 src/control-flow/match-expressions.md:33 src/std.md:31 src/std/option-result.md:25
+#: src/std/string.md:42 src/std/vec.md:49 src/std/hashmap.md:66 src/std/box.md:39 src/std/box-recursive.md:41 src/std/rc.md:69 src/modules.md:32 src/modules/visibility.md:48 src/modules/filesystem.md:71
+#: src/exercises/day-2/afternoon.md:11 src/generics/data-types.md:25 src/generics/methods.md:31 src/traits/trait-objects.md:83 src/traits/default-methods.md:41 src/traits/trait-bounds.md:50
+#: src/traits/impl-trait.md:44 src/traits/iterator.md:42 src/traits/from-iterator.md:26 src/traits/from-into.md:33 src/traits/drop.md:42 src/traits/default.md:47 src/traits/operators.md:38
+#: src/traits/closures.md:38 src/exercises/day-3/morning.md:11 src/error-handling/result.md:33 src/error-handling/try-operator.md:53 src/error-handling/converting-error-types-example.md:60
+#: src/error-handling/deriving-error-enums.md:45 src/error-handling/dynamic-errors.md:41 src/error-handling/error-contexts.md:42 src/unsafe.md:32 src/unsafe/raw-pointers.md:43
+#: src/unsafe/mutable-static-variables.md:35 src/unsafe/unions.md:28 src/unsafe/writing-unsafe-functions.md:38 src/unsafe/extern-functions.md:28 src/unsafe/unsafe-traits.md:37 src/exercises/day-3/afternoon.md:11
+#: src/android/interoperability/with-c/rust.md:86 src/exercises/android/morning.md:15 src/bare-metal/no_std.md:65 src/bare-metal/minimal.md:26 src/bare-metal/alloc.md:49 src/bare-metal/microcontrollers.md:29
+#: src/bare-metal/microcontrollers/mmio.md:72 src/bare-metal/microcontrollers/pacs.md:65 src/bare-metal/microcontrollers/hals.md:49 src/bare-metal/microcontrollers/board-support.md:40
+#: src/bare-metal/microcontrollers/type-state.md:43 src/bare-metal/microcontrollers/embedded-hal.md:23 src/bare-metal/microcontrollers/probe-rs.md:29 src/bare-metal/microcontrollers/debugging.md:38
+#: src/bare-metal/microcontrollers/other-projects.md:26 src/exercises/bare-metal/morning.md:11 src/bare-metal/aps.md:15 src/bare-metal/aps/inline-assembly.md:58 src/bare-metal/aps/mmio.md:17
+#: src/bare-metal/aps/uart/traits.md:27 src/bare-metal/aps/better-uart.md:28 src/bare-metal/aps/better-uart/bitflags.md:40 src/bare-metal/aps/better-uart/registers.md:46 src/bare-metal/aps/better-uart/driver.md:67
+#: src/bare-metal/aps/better-uart/using.md:55 src/bare-metal/aps/logging.md:52 src/bare-metal/aps/logging/using.md:49 src/bare-metal/useful-crates/zerocopy.md:53 src/bare-metal/useful-crates/aarch64-paging.md:33
+#: src/bare-metal/useful-crates/buddy_system_allocator.md:30 src/bare-metal/useful-crates/tinyvec.md:26 src/bare-metal/useful-crates/spin.md:30 src/bare-metal/android/vmbase.md:25
+#: src/exercises/bare-metal/afternoon.md:11 src/concurrency/threads.md:45 src/concurrency/scoped-threads.md:40 src/concurrency/channels.md:32 src/concurrency/send-sync.md:23 src/concurrency/send-sync/send.md:16
+#: src/concurrency/send-sync/sync.md:18 src/concurrency/shared_state/arc.md:38 src/concurrency/shared_state/mutex.md:45 src/concurrency/shared_state/example.md:56 src/exercises/concurrency/morning.md:16
+#: src/async/async-await.md:48 src/async/futures.md:45 src/async/runtimes.md:29 src/async/runtimes/tokio.md:49 src/async/tasks.md:64 src/async/channels.md:49 src/async/control-flow/join.md:50
+#: src/async/control-flow/select.md:77 src/async/pitfalls/blocking-executor.md:50 src/async/pitfalls/pin.md:112 src/async/pitfalls/async-traits.md:63 src/exercises/concurrency/afternoon.md:17
+#: src/exercises/concurrency/dining-philosophers-async.md:79
msgid " "
msgstr " "
@@ -1330,7 +1297,7 @@ msgid ""
"That is all, good luck running the course! We hope it will be as much fun for\n"
"you as it has been for us!"
msgstr ""
-"āĻāĻāϏāĻŦ āϝā§, āĻā§āϰā§āϏāĻāĻŋ āĻāĻžāϞāĻžāύā§ā§ āĻļā§āĻāĻāĻžāĻŽāύāĻžāĨ¤ āĻāĻŽāϰāĻž āĻāĻļāĻž āĻāϰāĻŋ āĻāĻāĻž āϤāϤāĻāĻžāĻ āĻŽāĻāĻžāϰ āĻšāĻŦā§\n"
+"āĻāĻāϏāĻŦ āϝā§, āĻā§āϰā§āϏāĻāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻļā§āĻāĻāĻžāĻŽāύāĻžāĨ¤ āĻāĻŽāϰāĻž āĻāĻļāĻž āĻāϰāĻŋ āĻāĻāĻž āϤāϤāĻāĻžāĻ āĻŽāĻāĻžāϰ āĻšāĻŦā§\n"
"āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āϝāϤāĻāĻž āĻšā§ā§āĻāĻŋāϞ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§āĨ¤"
#: src/running-the-course.md:46
@@ -1345,11 +1312,11 @@ msgstr ""
#: src/running-the-course/course-structure.md:1
msgid "# Course Structure"
-msgstr "# Course āĻāϰ āĻāĻ āύ"
+msgstr "# āĻā§āϰā§āϏ āĻāϰ āĻāĻ āύ"
#: src/running-the-course/course-structure.md:5
msgid "The course is fast paced and covers a lot of ground:"
-msgstr "āĻā§āϰā§āϏāĻāĻŋ āĻĻā§āϰā§āϤ āĻāϤāĻŋāϰ āĻāĻŦāĻ āĻ
āύā§āĻ āĻāĻŋāĻā§ āĻāĻāĻžāϰ āĻāϰā§:"
+msgstr "āĻā§āϰā§āϏāĻāĻŋ āĻĻā§āϰā§āϤ āĻāϤāĻŋāϰ āĻāĻŦāĻ āĻ
āύā§āĻ āĻāĻŋāĻā§ āĻāĻāĻžāϰ āĻāϰā§āĻ"
#: src/running-the-course/course-structure.md:7
msgid ""
@@ -1357,9 +1324,9 @@ msgid ""
"* Day 2: Compound data types, pattern matching, the standard library.\n"
"* Day 3: Traits and generics, error handling, testing, unsafe Rust."
msgstr ""
-"* āĻĻāĻŋāύ 1: āĻŽā§āϞāĻŋāĻ Rust, āĻŽāĻžāϞāĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āϧāĻžāϰ āĻĒāϰā§āĻā§āώāĻāĨ¤\n"
-"* āĻĻāĻŋāύ 2: āϝā§āĻāĻŋāĻ āĻĄā§āĻāĻž āĻĒā§āϰāĻāĻžāϰ, āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŽā§āϝāĻžāĻāĻŋāĻ, āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĨ¤\n"
-"* āĻĻāĻŋāύ 3: Traits āĻāĻŦāĻ Generics, āϤā§āϰā§āĻāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž, āĻĒāϰā§āĻā§āώāĻž, āĻ
āύāĻŋāϰāĻžāĻĒāĻĻ RustāĨ¤"
+"* āĻĒā§āϰāĻĨāĻŽ āĻĻāĻŋāύāĻ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āϰāĻžāϏā§āĻ, āĻŽāĻžāϞāĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āϧāĻžāϰ āĻĒāϰā§āĻā§āώāĻāĨ¤\n"
+"* āĻĻā§āĻŦāĻŋāϤā§ā§ āĻĻāĻŋāύāĻ āϝā§āĻāĻŋāĻ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒāϏ, āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŽā§āϝāĻžāĻāĻŋāĻ, āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĨ¤\n"
+"* āϤā§āϤā§ā§ āĻĻāĻŋāύāĻ Traits āĻāĻŦāĻ Generics, āĻāϰāϰ āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻ, āĻā§āϏā§āĻāĻŋāĻ, āĻ
āύāĻŋāϰāĻžāĻĒāĻĻ āϰāĻžāϏā§āĻāĨ¤"
#: src/running-the-course/course-structure.md:11
msgid "## Deep Dives"
@@ -1370,8 +1337,8 @@ msgid ""
"In addition to the 3-day class on Rust Fundamentals, we cover some more\n"
"specialized topics:"
msgstr ""
-"Rust āĻĢāĻžāύā§āĻĄāĻžāĻŽā§āύā§āĻāĻžāϞā§āϰ 3 āĻĻāĻŋāύā§āϰ āĻā§āϞāĻžāϏ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻŽāϰāĻž āĻāϰāĻ āĻāĻŋāĻā§ āĻāĻāĻžāϰ āĻāϰāĻŋ\n"
-"āĻŦāĻŋāĻļā§āώ āĻŦāĻŋāώāϝāĻŧ:"
+"āϰāĻžāϏā§āĻ āĻĢāĻžāύā§āĻĄāĻžāĻŽā§āύā§āĻāĻžāϞā§āϰ ā§Š āĻĻāĻŋāύā§āϰ āĻā§āϞāĻžāϏ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻŽāϰāĻž āĻāϰāĻ āĻāĻŋāĻā§ āĻŦāĻŋāĻļā§āώ āĻŦāĻŋāώāϝāĻŧ \n"
+"āĻāĻāĻžāϰ āĻāϰāĻŋāĻ"
#: src/running-the-course/course-structure.md:16
msgid "### Android"
@@ -1419,9 +1386,9 @@ msgid ""
"bare-metal (embedded) development. Both microcontrollers and application\n"
"processors are covered."
msgstr ""
-"The [Bare-Metal Deep Dive](../bare-metal.md): Rust āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰ⧠āĻĻāĻŋāύā§āϰ āĻā§āϞāĻžāϏ\n"
-"bare-metal (embedded) āĻāύā§āύāϝāĻŧāύāĨ¤ āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻāĻŦāĻ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāĻāϝāĻŧāĻ\n"
-"āĻĒā§āϰāϏā§āϏāϰ āĻāĻāĻžāϰ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤"
+"[Bare-Metal Deep Dive](../bare-metal.md): Rust āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠bare-metal (embedded) āĻāύā§āύāϝāĻŧāύ āĻāϰ āĻāύā§āϝ \n"
+"āĻāĻāĻāĻŋ āĻĒā§āϰ⧠āĻĻāĻŋāύā§āϰ āĻā§āϞāĻžāϏāĨ¤ āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻāĻŦāĻ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻĒā§āϰāϏā§āϏāϰ āĻāĻāϝāĻŧāĻ \n"
+"āĻāĻāĻžāϰ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤"
#: src/running-the-course/course-structure.md:40
msgid ""
@@ -1430,9 +1397,9 @@ msgid ""
"will need to install a number of packages as described on the [welcome\n"
"page](../bare-metal.md)."
msgstr ""
-"āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻ
āĻāĻļā§āϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāĻā§ āĻāĻŋāύāϤ⧠āĻšāĻŦā§ [BBC\n"
-"micro:bit](https://microbit.org/) v2 āĻāύā§āύāϝāĻŧāύ āĻŦā§āϰā§āĻĄ āϏāĻŽāϝāĻŧā§āϰ āĻāĻā§āĨ¤ āϏāĻŦāĻžāĻāĻā§ [welcome\n"
-"page](../bare-metal.md).āĻ āĻŦāϰā§āĻŖāĻŋāϤ āĻĒā§āϝāĻžāĻā§āĻāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϏāĻāĻā§āϝāĻž āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤"
+"āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻ
āĻāĻļā§āϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāĻā§ āϏāĻŽāϝāĻŧā§āϰ āĻāĻā§ āĻāĻŋāύāϤ⧠āĻšāĻŦā§ [BBC\n"
+"micro:bit](https://microbit.org/) v2 āĻāύā§āύāϝāĻŧāύ āĻŦā§āϰā§āĻĄāĨ¤ āϏāĻŦāĻžāĻāĻā§ [welcome\n"
+"page](../bare-metal.md) āĻ āĻŦāϰā§āĻŖāĻŋāϤ āĻĒā§āϝāĻžāĻā§āĻāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϏāĻāĻā§āϝāĻž āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤"
#: src/running-the-course/course-structure.md:45
msgid "### Concurrency"
@@ -1489,7 +1456,7 @@ msgstr "# āĻā§āĻŦā§āϰā§āĻĄ āĻļāϰā§āĻāĻāĻžāĻ"
#: src/running-the-course/keyboard-shortcuts.md:3
msgid "There are several useful keyboard shortcuts in mdBook:"
-msgstr "mdBook-āĻ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻĻāϰāĻāĻžāϰ⧠āĻā§āĻŦā§āϰā§āĻĄ āĻļāϰā§āĻāĻāĻžāĻ āϰāϝāĻŧā§āĻā§:"
+msgstr "mdBook-āĻ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻĻāϰāĻāĻžāϰ⧠āĻā§āĻŦā§āϰā§āĻĄ āĻļāϰā§āĻāĻāĻžāĻ āϰāϝāĻŧā§āĻā§āĻ"
#: src/running-the-course/keyboard-shortcuts.md:5
msgid ""
@@ -1561,17 +1528,12 @@ msgid "### Rustup (Recommended)"
msgstr "### Rustup (āĻĒā§āϰāϏā§āϤāĻžāĻŦāĻŋāϤ)"
#: src/cargo.md:12
-msgid ""
-"You can follow the instructions to install cargo and rust compiler, among other standard ecosystem tools with the [rustup][3] tool, which is maintained by the "
-"Rust Foundation."
-msgstr ""
-"āϰāĻžāϏā§āĻ āĻĢāĻžāĻāύā§āĻĄā§āĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖ āĻāϰāĻž [rustup][3] āĻā§āϞ āϏāĻš āĻ
āύā§āϝāĻžāύā§āϝ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻāĻā§āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻāĻĒāύāĻŋ Cargo āĻāĻŦāĻ āϰāĻžāϏā§āĻ āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻ
āύā§āϏāϰāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤"
+msgid "You can follow the instructions to install cargo and rust compiler, among other standard ecosystem tools with the [rustup][3] tool, which is maintained by the Rust Foundation."
+msgstr "āϰāĻžāϏā§āĻ āĻĢāĻžāĻāύā§āĻĄā§āĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖ āĻāϰāĻž [rustup][3] āĻā§āϞ āϏāĻš āĻ
āύā§āϝāĻžāύā§āϝ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻāĻā§āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻāĻĒāύāĻŋ Cargo āĻāĻŦāĻ āϰāĻžāϏā§āĻ āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻ
āύā§āϏāϰāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤"
#: src/cargo.md:14
-msgid ""
-"Along with cargo and rustc, Rustup will install itself as a command line utility that you can use to install/switch toolchains, setup cross compilation, etc."
-msgstr ""
-"Cargo āĻāĻŦāĻ rustc āĻāϰ āϏāĻžāĻĨā§, Rustup āύāĻŋāĻā§āĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āĻāύāϏā§āĻāϞ āĻāϰāĻŦā§ āϝāĻž āĻāĻĒāύāĻŋ āĻā§āϞāĻā§āĻāύ āĻāύāϏā§āĻāϞ/āϏā§āĻāĻ, āϏā§āĻāĻāĻĒ āĻā§āϰāϏ āĻāĻŽā§āĻĒāĻžāĻāϞā§āĻļāύ āĻāϤā§āϝāĻžāĻĻāĻŋ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤"
+msgid "Along with cargo and rustc, Rustup will install itself as a command line utility that you can use to install/switch toolchains, setup cross compilation, etc."
+msgstr "Cargo āĻāĻŦāĻ rustc āĻāϰ āϏāĻžāĻĨā§, Rustup āύāĻŋāĻā§āĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āĻāύāϏā§āĻāϞ āĻāϰāĻŦā§ āϝāĻž āĻāĻĒāύāĻŋ āĻā§āϞāĻā§āĻāύ āĻāύāϏā§āĻāϞ/āϏā§āĻāĻ, āϏā§āĻāĻāĻĒ āĻā§āϰāϏ āĻāĻŽā§āĻĒāĻžāĻāϞā§āĻļāύ āĻāϤā§āϝāĻžāĻĻāĻŋ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤"
#: src/cargo.md:16
msgid "### Package Managers"
@@ -1600,16 +1562,16 @@ msgid ""
"This will allow [rust-analyzer][1] to jump to the definitions. We suggest using\n"
"[VS Code][2] to edit the code (but any LSP compatible editor works)."
msgstr ""
-"āĻāĻāĻŋ [rust-āĻŦāĻŋāĻļā§āϞā§āώāĻ] [1] āĻā§ āϏāĻāĻā§āĻāĻžāϝāĻŧ āϝā§āϤ⧠āĻ
āύā§āĻŽāϤāĻŋ āĻĻā§āĻŦā§āĨ¤ āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻ\n"
-"[VS Code][2] āĻā§āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰāϤ⧠(āĻāĻŋāύā§āϤ⧠āϝā§āĻā§āύ⧠LSP āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āϏāĻŽā§āĻĒāĻžāĻĻāĻ āĻāĻžāĻ āĻāϰā§)āĨ¤"
+"āĻāĻāĻŋ [rust-analyzer] [1] āĻā§ āϏāĻāĻā§āĻāĻžāϝāĻŧ āϝā§āϤ⧠āĻ
āύā§āĻŽāϤāĻŋ āĻĻā§āĻŦā§āĨ¤ āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻ\n"
+"[VS Code][2] āĻā§āĻĄ āĻāĻĄāĻŋāĻ āĻāϰāϤ⧠(āĻāĻŋāύā§āϤ⧠āϝā§āĻā§āύ⧠LSP āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻāĻĄāĻŋāĻāϰ āĻāĻžāĻ āĻāϰā§)āĨ¤"
#: src/cargo.md:29
msgid ""
-"Some folks also like to use the [JetBrains][4] family of IDEs, which do their own analysis but have their own tradeoffs. If you prefer them, you can install "
-"the [Rust Plugin][5]. Please take note that as of January 2023 debugging only works on the CLion version of the JetBrains IDEA suite."
+"Some folks also like to use the [JetBrains][4] family of IDEs, which do their own analysis but have their own tradeoffs. If you prefer them, you can install the [Rust Plugin][5]. Please take note that as of "
+"January 2023 debugging only works on the CLion version of the JetBrains IDEA suite."
msgstr ""
-"āĻāĻŋāĻā§ āϞā§āĻ IDE-āĻāϰ āĻāύā§āϝ [JetBrains][4] āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻāύā§āĻĻ āĻāϰā§, āϝāĻžāϰāĻž āϤāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§ āĻāϰ⧠āĻāĻŋāύā§āϤ⧠āϤāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻā§āϰā§āĻĄāĻ
āĻĢ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϤāĻžāĻĻā§āϰ āĻĒāĻāύā§āĻĻ āĻāϰā§āύ āϤāĻŦā§ āĻāĻĒāύāĻŋ [Rust "
-"Plugin][5] āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻ
āύā§āĻā§āϰāĻš āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻāĻžāύā§āϝāĻŧāĻžāϰ⧠2023 āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ JetBrains IDEA āϏā§āϝā§āĻā§āϰ CLion āϏāĻāϏā§āĻāϰāĻŖā§ āĻāĻžāĻ āĻāϰā§āĨ¤"
+"āĻāĻŋāĻā§ āϞā§āĻ IDE-āĻāϰ āĻāύā§āϝ [JetBrains][4] āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻāύā§āĻĻ āĻāϰā§, āϝāĻžāϰāĻž āϤāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§ āĻāϰ⧠āĻāĻŋāύā§āϤ⧠āϤāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻā§āϰā§āĻĄāĻ
āĻĢ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϤāĻžāĻĻā§āϰ āĻĒāĻāύā§āĻĻ āĻāϰā§āύ āϤāĻŦā§ āĻāĻĒāύāĻŋ [Rust Plugin][5] āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻ
āύā§āĻā§āϰāĻš āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠"
+"āĻāĻžāύā§āϝāĻŧāĻžāϰ⧠2023 āĻ
āύā§āϝāĻžā§ā§ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ JetBrains IDEA āϏā§āϝā§āĻā§āϰ CLion āϏāĻāϏā§āĻāϰāĻŖā§ āĻāĻžāĻ āĻāϰā§āĨ¤"
#: src/cargo/rust-ecosystem.md:1
msgid "# The Rust Ecosystem"
@@ -1649,9 +1611,8 @@ msgstr ""
" āĻāĻĒāύāĻŋ āĻāĻāĻŦāĻžāϰ⧠Rust āĻāϰ āĻāĻāĻžāϧāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖ āĻāĻŦāĻ `āϰāϏā§āĻāĻāĻĒ` āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ\n"
" āĻĒā§āϰāϝāĻŧā§āĻāύ āĻ
āύā§āϏāĻžāϰ⧠āĻāĻĒāύāĻžāĻā§ āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āϏā§āϝā§āĻāĻ āĻāϰāϤ⧠āĻĻā§āĻŦā§āĨ¤"
-#: src/cargo/rust-ecosystem.md:21 src/hello-world.md:25 src/hello-world/small-example.md:27 src/why-rust/runtime.md:10 src/why-rust/modern.md:21
-#: src/basic-syntax/compound-types.md:30 src/pattern-matching/destructuring-enums.md:35 src/error-handling/try-operator.md:48
-#: src/error-handling/converting-error-types-example.md:50 src/concurrency/threads.md:30 src/async/async-await.md:25
+#: src/cargo/rust-ecosystem.md:21 src/hello-world.md:25 src/hello-world/small-example.md:27 src/why-rust/runtime.md:10 src/why-rust/modern.md:21 src/basic-syntax/compound-types.md:30
+#: src/pattern-matching/destructuring-enums.md:35 src/error-handling/try-operator.md:48 src/error-handling/converting-error-types-example.md:50 src/concurrency/threads.md:30 src/async/async-await.md:25
msgid "Key points:"
msgstr "āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻĻāĻŋāĻ:"
@@ -1680,8 +1641,7 @@ msgid ""
"\n"
" * Mention that it is quite rare to ever use the compiler directly not through `cargo` (most users never do).\n"
"\n"
-" * It might be worth alluding that Cargo itself is an extremely powerful and comprehensive tool. It is capable of many advanced features including but not "
-"limited to: \n"
+" * It might be worth alluding that Cargo itself is an extremely powerful and comprehensive tool. It is capable of many advanced features including but not limited to: \n"
" * Project/package structure\n"
" * [workspaces]\n"
" * Dev Dependencies and Runtime Dependency management/caching\n"
@@ -1732,7 +1692,7 @@ msgid ""
"You can use Ctrl + Enter to execute the code when focus is in the\n"
"text box."
msgstr ""
-"āϝāĻāύ āĻā§āĻā§āϏāĻ āĻŦāĻā§āϏ āĻ āĻĢā§āĻāĻžāϏ āĻĨāĻžāĻā§ āϤāĻāύ āĻā§āĻĄāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāϤ⧠āĻāĻĒāύāĻŋ Ctrl + Enter āĻŦā§āϝāĻŦāĻšāĻžāϰ \n"
+"āϝāĻāύ āĻā§āĻā§āϏāĻ āĻŦāĻā§āϏ āĻ āĻĢā§āĻāĻžāϏ āĻĨāĻžāĻā§ āϤāĻāύ āĻā§āĻĄāĻāĻŋ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻ āĻāϰāϤ⧠āĻāĻĒāύāĻŋ Ctrl + Enter āĻŦā§āϝāĻŦāĻšāĻžāϰ \n"
"āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤"
#: src/cargo/code-samples.md:24
@@ -1847,9 +1807,9 @@ msgid ""
"local editor. It will make their life easier since they will have a\n"
"normal development environment."
msgstr ""
-"āĻā§āϞāĻžāϏ āĻ
āĻāĻļāĻā§āϰāĻšāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻāĻžāϰā§āĻā§ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻāĻŦāĻ āĻāĻāĻāĻŋ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻāĻĄāĻŋāĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāϤā§āϏāĻžāĻšāĻŋāϤ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āύ\n"
-"āĨ¤ āĻāĻāĻŋ āϤāĻžāĻĻā§āϰ āĻā§āĻŦāύāĻā§ āϏāĻšāĻ āĻāϰ⧠āϤā§āϞāĻŦā§ āϝā§āĻšā§āϤ⧠āϤāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻĨāĻžāĻāĻŦā§\n"
-"āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāύā§āύāϝāĻŧāύ āĻĒāϰāĻŋāĻŦā§āĻļāĨ¤"
+"āĻā§āϞāĻžāϏ āĻ
āĻāĻļāĻā§āϰāĻšāĻŖāĻāĻžāϰā§āĻĻā§āϰ Cargo āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻāĻŦāĻ āĻāĻāĻāĻŋ āϞā§āĻāĻžāϞ āĻāĻĄāĻŋāĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻā§āϏāĻžāĻšāĻŋāϤ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āύ\n"
+"āĨ¤ āĻāĻāĻŋ āϤāĻžāĻĻā§āϰ āĻā§āĻŦāύāĻā§ āϏāĻšāĻ āĻāϰ⧠āϤā§āϞāĻŦā§ āϝā§āĻšā§āϤ⧠āϤāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ \n"
+"āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻ āĻāύāĻāĻžāĻāϰāύāĻŽā§āύā§āĻ āĻĨāĻžāĻāĻŦā§āĨ¤"
#: src/welcome-day-1.md:1
msgid "# Welcome to Day 1"
@@ -1876,7 +1836,7 @@ msgstr ""
#: src/welcome-day-1.md:16
msgid "Please remind the students that:"
-msgstr "āĻāĻžāϤā§āϰāĻĻā§āϰāĻā§ āĻāĻāĻŋ āĻŽāύ⧠āĻāϰāĻŋā§ā§ āĻĻāĻŋāύ āϝā§āĻ"
+msgstr "āĻļāĻŋāĻā§āώāĻžāϰā§āĻĨā§āĻĻā§āϰ āĻāĻāĻŋ āĻŽāύ⧠āĻāϰāĻŋā§ā§ āĻĻāĻŋāύ āϝā§āĻ"
#: src/welcome-day-1.md:18
msgid ""
@@ -2276,7 +2236,7 @@ msgstr ""
#: src/basic-syntax.md:3
msgid "Much of the Rust syntax will be familiar to you from C, C++ or Java:"
-msgstr "C, C++ or Java āĻĨā§āĻā§ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ Rust āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻĒāϰāĻŋāĻāĻŋāϤ āĻŽāύ⧠āĻšāĻŦā§:"
+msgstr "C, C++ or Java āĻĨā§āĻā§ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϰāĻžāϏā§āĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻĒāϰāĻŋāĻāĻŋāϤ āĻŽāύ⧠āĻšāĻŦā§āĻ"
#: src/basic-syntax.md:5
msgid ""
@@ -2313,7 +2273,7 @@ msgstr ""
#: src/basic-syntax/scalar-types.md:12
msgid "The types have widths as follows:"
-msgstr "types āĻāϰ āĻĒā§āϰāϏā§āĻĨ āύāĻŋāĻŽā§āύāϰā§āĻĒ:"
+msgstr "āĻāĻžāĻāĻĒāĻā§āϞā§āϰ āĻāĻāĻžāϰ āĻ āϰāĻāĻŽ:"
#: src/basic-syntax/scalar-types.md:14
msgid ""
@@ -2329,7 +2289,7 @@ msgstr ""
#: src/basic-syntax/scalar-types.md:21
msgid "There are a few syntaxes which are not shown above:"
-msgstr "āĻāĻŋāĻā§ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻā§ āϝāĻž āĻāĻĒāϰ⧠āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧāύāĻŋ:"
+msgstr "āĻāĻŋāĻā§ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻā§ āϝāĻž āĻāĻĒāϰ⧠āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧāύāĻŋāĻ"
#: src/basic-syntax/scalar-types.md:23
msgid ""
@@ -2503,8 +2463,6 @@ msgid ""
"\n"
"Key points:"
msgstr ""
-"\n"
-"āĻŽā§āϞ āĻŦāĻŋāώā§āĻŦāϏā§āϤā§:"
#: src/basic-syntax/references.md:24
msgid ""
@@ -2580,8 +2538,7 @@ msgid ""
"\n"
"* To easily create a slice of the full array, we can therefore use `&a[..]`.\n"
"\n"
-"* `s` is a reference to a slice of `i32`s. Notice that the type of `s` (`&[i32]`) no longer mentions the array length. This allows us to perform computation "
-"on slices of different sizes.\n"
+"* `s` is a reference to a slice of `i32`s. Notice that the type of `s` (`&[i32]`) no longer mentions the array length. This allows us to perform computation on slices of different sizes.\n"
" \n"
"* Slices always borrow from another object. In this example, `a` has to remain 'alive' (in scope) for at least as long as our slice. \n"
" \n"
@@ -2873,9 +2830,8 @@ msgid ""
"their state if you navigate away from the page."
msgstr ""
-#: src/exercises/day-1/morning.md:22 src/exercises/day-1/afternoon.md:11 src/exercises/day-2/morning.md:11 src/exercises/day-2/afternoon.md:7
-#: src/exercises/day-3/morning.md:7 src/exercises/bare-metal/morning.md:7 src/exercises/bare-metal/afternoon.md:7 src/exercises/concurrency/morning.md:12
-#: src/exercises/concurrency/afternoon.md:13
+#: src/exercises/day-1/morning.md:22 src/exercises/day-1/afternoon.md:11 src/exercises/day-2/morning.md:11 src/exercises/day-2/afternoon.md:7 src/exercises/day-3/morning.md:7 src/exercises/bare-metal/morning.md:7
+#: src/exercises/bare-metal/afternoon.md:7 src/exercises/concurrency/morning.md:12 src/exercises/concurrency/afternoon.md:13
msgid "After looking at the exercises, you can look at the [solutions] provided."
msgstr ""
@@ -3145,9 +3101,7 @@ msgid ""
msgstr ""
#: src/basic-syntax/type-inference.md:32
-msgid ""
-"The following code tells the compiler to copy into a certain generic container without the code ever explicitly specifying the contained type, using `_` as a "
-"placeholder:"
+msgid "The following code tells the compiler to copy into a certain generic container without the code ever explicitly specifying the contained type, using `_` as a placeholder:"
msgstr ""
#: src/basic-syntax/type-inference.md:34
@@ -3166,9 +3120,7 @@ msgid ""
msgstr ""
#: src/basic-syntax/type-inference.md:46
-msgid ""
-"[`collect`](https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.collect) relies on `FromIterator`, which [`HashSet`](https://doc.rust-lang."
-"org/std/iter/trait.FromIterator.html) implements."
+msgid "[`collect`](https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.collect) relies on `FromIterator`, which [`HashSet`](https://doc.rust-lang.org/std/iter/trait.FromIterator.html) implements."
msgstr ""
#: src/basic-syntax/static-and-const.md:1
@@ -3233,8 +3185,8 @@ msgstr ""
#: src/basic-syntax/static-and-const.md:41
msgid ""
-"As noted in the [Rust RFC Book][1], these are not inlined upon use and have an actual associated memory location. This is useful for unsafe and embedded "
-"code, and the variable lives through the entirety of the program execution."
+"As noted in the [Rust RFC Book][1], these are not inlined upon use and have an actual associated memory location. This is useful for unsafe and embedded code, and the variable lives through the entirety of the "
+"program execution."
msgstr ""
#: src/basic-syntax/static-and-const.md:44
@@ -3280,12 +3232,11 @@ msgstr ""
#: src/basic-syntax/scopes-shadowing.md:25
msgid ""
-"* Definition: Shadowing is different from mutation, because after shadowing both variable's memory locations exist at the same time. Both are available under "
-"the same name, depending where you use it in the code. \n"
+"* Definition: Shadowing is different from mutation, because after shadowing both variable's memory locations exist at the same time. Both are available under the same name, depending where you use it in the "
+"code. \n"
"* A shadowing variable can have a different type. \n"
"* Shadowing looks obscure at first, but is convenient for holding on to values after `.unwrap()`.\n"
-"* The following code demonstrates why the compiler can't simply reuse memory locations when shadowing an immutable variable in a scope, even if the type does "
-"not change."
+"* The following code demonstrates why the compiler can't simply reuse memory locations when shadowing an immutable variable in a scope, even if the type does not change."
msgstr ""
#: src/basic-syntax/scopes-shadowing.md:30
@@ -3390,8 +3341,7 @@ msgstr ""
msgid ""
"* Mention that a `String` is backed by a `Vec`, so it has a capacity and length and can grow if mutable via reallocation on the heap.\n"
"\n"
-"* If students ask about it, you can mention that the underlying memory is heap allocated using the [System Allocator] and custom allocators can be implemented "
-"using the [Allocator API]\n"
+"* If students ask about it, you can mention that the underlying memory is heap allocated using the [System Allocator] and custom allocators can be implemented using the [Allocator API]\n"
"\n"
"* We can inspect the memory layout with `unsafe` code. However, you should point out that this is rightfully unsafe!\n"
"\n"
@@ -3417,7 +3367,7 @@ msgstr "# āĻŽā§āϝāĻžāύā§ā§āĻžāϞ āĻŽā§āĻŽā§āϰāĻŋ āĻŦā§āϝāĻŦāϏā§āĻĨ
#: src/memory-management/manual.md:3
msgid "You allocate and deallocate heap memory yourself."
-msgstr "āĻāĻĒāύāĻŋ āύāĻŋāĻā§āĻ heap-memory āĻŦāϰāĻžāĻĻā§āĻĻ āĻāĻŦāĻ āĻĄāĻŋāϞāĻā§āĻ āĻāϰā§āύāĨ¤"
+msgstr "āĻāĻĒāύāĻŋ āύāĻŋāĻā§āĻ heap-memory āĻāϞā§āĻā§āĻ āĻāĻŦāĻ āĻĄāĻŋ-āĻāϞā§āĻā§āĻ āĻāϰā§āύāĨ¤"
#: src/memory-management/manual.md:5
msgid "If not done with care, this can lead to crashes, bugs, security vulnerabilities, and memory leaks."
@@ -3548,8 +3498,7 @@ msgstr ""
#: src/memory-management/rust.md:5
msgid ""
"* Safe and correct like Java, but without a garbage collector.\n"
-"* Depending on which abstraction (or combination of abstractions) you choose, can be a single unique pointer, reference counted, or atomically reference "
-"counted.\n"
+"* Depending on which abstraction (or combination of abstractions) you choose, can be a single unique pointer, reference counted, or atomically reference counted.\n"
"* Scope-based like C++, but the compiler enforces full adherence.\n"
"* A Rust user can choose the right abstraction for the situation, some even have no cost at runtime like C."
msgstr ""
@@ -3560,8 +3509,8 @@ msgstr ""
#: src/memory-management/rust.md:14
msgid ""
-"* If asked how at this point, you can mention that in Rust this is usually handled by RAII wrapper types such as [Box], [Vec], [Rc], or [Arc]. These "
-"encapsulate ownership and memory allocation via various means, and prevent the potential errors in C.\n"
+"* If asked how at this point, you can mention that in Rust this is usually handled by RAII wrapper types such as [Box], [Vec], [Rc], or [Arc]. These encapsulate ownership and memory allocation via various "
+"means, and prevent the potential errors in C.\n"
"\n"
"* You may be asked about destructors here, the [Drop] trait is the Rust equivalent."
msgstr ""
@@ -3977,9 +3926,8 @@ msgstr ""
#: src/ownership/borrowing.md:28
msgid ""
-"* Demonstrate that the return from `add` is cheap because the compiler can eliminate the copy operation. Change the above code to print stack addresses and "
-"run it on the [Playground]. In the \"DEBUG\" optimization level, the addresses should change, while they stay the same when changing to the \"RELEASE\" "
-"setting:\n"
+"* Demonstrate that the return from `add` is cheap because the compiler can eliminate the copy operation. Change the above code to print stack addresses and run it on the [Playground]. In the \"DEBUG\" "
+"optimization level, the addresses should change, while they stay the same when changing to the \"RELEASE\" setting:\n"
"\n"
" ```rust,editable\n"
" #[derive(Debug)]\n"
@@ -4000,8 +3948,8 @@ msgid ""
" }\n"
" ```\n"
"* The Rust compiler can do return value optimization (RVO).\n"
-"* In C++, copy elision has to be defined in the language specification because constructors can have side effects. In Rust, this is not an issue at all. If "
-"RVO did not happen, Rust will always performs a simple and efficient `memcpy` copy."
+"* In C++, copy elision has to be defined in the language specification because constructors can have side effects. In Rust, this is not an issue at all. If RVO did not happen, Rust will always performs a simple "
+"and efficient `memcpy` copy."
msgstr ""
#: src/ownership/shared-unique-borrows.md:1
@@ -4040,8 +3988,7 @@ msgstr ""
msgid ""
"* The above code does not compile because `a` is borrowed as mutable (through `c`) and as immutable (through `b`) at the same time.\n"
"* Move the `println!` statement for `b` before the scope that introduces `c` to make the code compile.\n"
-"* After that change, the compiler realizes that `b` is only ever used before the new mutable borrow of `a` through `c`. This is a feature of the borrow "
-"checker called \"non-lexical lifetimes\"."
+"* After that change, the compiler realizes that `b` is only ever used before the new mutable borrow of `a` through `c`. This is a feature of the borrow checker called \"non-lexical lifetimes\"."
msgstr ""
#: src/ownership/lifetimes.md:1
@@ -4123,8 +4070,8 @@ msgid ""
" ```\n"
" Note how this does not compile since `p3` outlives `p2`.\n"
"\n"
-"* Reset the workspace and change the function signature to `fn left_most<'a, 'b>(p1: &'a Point, p2: &'a Point) -> &'b Point`. This will not compile because "
-"the relationship between the lifetimes `'a` and `'b` is unclear.\n"
+"* Reset the workspace and change the function signature to `fn left_most<'a, 'b>(p1: &'a Point, p2: &'a Point) -> &'b Point`. This will not compile because the relationship between the lifetimes `'a` and `'b` "
+"is unclear.\n"
"* Another way to explain it:\n"
" * Two references to two values are borrowed by a function and the function returns\n"
" another reference.\n"
@@ -4164,14 +4111,12 @@ msgstr ""
#: src/ownership/lifetimes-data-structures.md:25
msgid ""
-"* In the above example, the annotation on `Highlight` enforces that the data underlying the contained `&str` lives at least as long as any instance of "
-"`Highlight` that uses that data.\n"
+"* In the above example, the annotation on `Highlight` enforces that the data underlying the contained `&str` lives at least as long as any instance of `Highlight` that uses that data.\n"
"* If `text` is consumed before the end of the lifetime of `fox` (or `dog`), the borrow checker throws an error.\n"
-"* Types with borrowed data force users to hold on to the original data. This can be useful for creating lightweight views, but it generally makes them "
-"somewhat harder to use.\n"
+"* Types with borrowed data force users to hold on to the original data. This can be useful for creating lightweight views, but it generally makes them somewhat harder to use.\n"
"* When possible, make data structures own their data directly.\n"
-"* Some structs with multiple references inside can have more than one lifetime annotation. This can be necessary if there is a need to describe lifetime "
-"relationships between the references themselves, in addition to the lifetime of the struct itself. Those are very advanced use cases."
+"* Some structs with multiple references inside can have more than one lifetime annotation. This can be necessary if there is a need to describe lifetime relationships between the references themselves, in "
+"addition to the lifetime of the struct itself. Those are very advanced use cases."
msgstr ""
#: src/exercises/day-1/afternoon.md:1
@@ -4550,11 +4495,9 @@ msgid ""
" * Unlike in C++, there is no inheritance between structs.\n"
"* Methods are defined in an `impl` block, which we will see in following slides.\n"
"* This may be a good time to let people know there are different types of structs. \n"
-" * Zero-sized structs `e.g., struct Foo;` might be used when implementing a trait on some type but donât have any data that you want to store in the value "
-"itself. \n"
+" * Zero-sized structs `e.g., struct Foo;` might be used when implementing a trait on some type but donât have any data that you want to store in the value itself. \n"
" * The next slide will introduce Tuple structs, used when the field names are not important.\n"
-"* The syntax `..peter` allows us to copy the majority of the fields from the old struct without having to explicitly type it all out. It must always be the "
-"last element."
+"* The syntax `..peter` allows us to copy the majority of the fields from the old struct without having to explicitly type it all out. It must always be the last element."
msgstr ""
#: src/structs/tuple-structs.md:1
@@ -4731,8 +4674,7 @@ msgid ""
"```"
msgstr ""
-#: src/enums.md:33 src/enums/sizes.md:29 src/methods.md:30 src/methods/example.md:46 src/pattern-matching.md:25 src/pattern-matching/match-guards.md:22
-#: src/control-flow/blocks.md:42
+#: src/enums.md:33 src/enums/sizes.md:29 src/methods.md:30 src/methods/example.md:46 src/pattern-matching.md:25 src/pattern-matching/match-guards.md:22 src/control-flow/blocks.md:42
msgid "Key Points:"
msgstr ""
@@ -4743,8 +4685,7 @@ msgid ""
"* This might be a good time to compare Structs and Enums:\n"
" * In both, you can have a simple version without fields (unit struct) or one with different types of fields (variant payloads). \n"
" * In both, associated functions are defined within an `impl` block.\n"
-" * You could even implement the different variants of an enum with separate structs but then they wouldnât be the same type as they would if they were all "
-"defined in an enum. "
+" * You could even implement the different variants of an enum with separate structs but then they wouldnât be the same type as they would if they were all defined in an enum. "
msgstr ""
#: src/enums/variant-payloads.md:1
@@ -4789,8 +4730,7 @@ msgstr ""
#: src/enums/variant-payloads.md:35
msgid ""
-"* The values in the enum variants can only be accessed after being pattern matched. The pattern binds references to the fields in the \"match arm\" after the "
-"`=>`.\n"
+"* The values in the enum variants can only be accessed after being pattern matched. The pattern binds references to the fields in the \"match arm\" after the `=>`.\n"
" * The expression is matched against the patterns from top to bottom. There is no fall-through like in C or C++.\n"
" * The match expression has a value. The value is the last expression in the match arm which was executed.\n"
" * Starting from the top we look for what pattern matches the value then run the code following the arrow. Once we find a match, we stop. \n"
@@ -4798,8 +4738,7 @@ msgid ""
"* `match` inspects a hidden discriminant field in the `enum`.\n"
"* It is possible to retrieve the discriminant by calling `std::mem::discriminant()`\n"
" * This is useful, for example, if implementing `PartialEq` for structs where comparing field values doesn't affect equality.\n"
-"* `WebEvent::Click { ... }` is not exactly the same as `WebEvent::Click(Click)` with a top level `struct Click { ... }`. The inlined version cannot implement "
-"traits, for example. \n"
+"* `WebEvent::Click { ... }` is not exactly the same as `WebEvent::Click(Click)` with a top level `struct Click { ... }`. The inlined version cannot implement traits, for example. \n"
" "
msgstr ""
@@ -5000,8 +4939,7 @@ msgstr ""
msgid ""
"* It can be helpful to introduce methods by comparing them to functions.\n"
" * Methods are called on an instance of a type (such as a struct or enum), the first parameter represents the instance as `self`.\n"
-" * Developers may choose to use methods to take advantage of method receiver syntax and to help keep them more organized. By using methods we can keep all "
-"the implementation code in one predictable place.\n"
+" * Developers may choose to use methods to take advantage of method receiver syntax and to help keep them more organized. By using methods we can keep all the implementation code in one predictable place.\n"
"* Point out the use of the keyword `self`, a method receiver. \n"
" * Show that it is an abbreviated term for `self:&Self` and perhaps show how the struct name could also be used. \n"
" * Explain that `Self` is a type alias for the type the `impl` block is in and can be used elsewhere in the block.\n"
@@ -5104,8 +5042,8 @@ msgid ""
"* All four methods here use a different method receiver.\n"
" * You can point out how that changes what the function can do with the variable values and if/how it can be used again in `main`.\n"
" * You can showcase the error that appears when trying to call `finish` twice.\n"
-"* Note that although the method receivers are different, the non-static functions are called the same way in the main body. Rust enables automatic referencing "
-"and dereferencing when calling methods. Rust automatically adds in the `&`, `*`, `muts` so that that object matches the method signature.\n"
+"* Note that although the method receivers are different, the non-static functions are called the same way in the main body. Rust enables automatic referencing and dereferencing when calling methods. Rust "
+"automatically adds in the `&`, `*`, `muts` so that that object matches the method signature.\n"
"* You might point out that `print_laps` is using a vector that is iterated over. We describe vectors in more detail in the afternoon. "
msgstr ""
@@ -5202,8 +5140,7 @@ msgstr ""
#: src/pattern-matching/destructuring-enums.md:36
msgid ""
"* The `if`/`else` expression is returning an enum that is later unpacked with a `match`.\n"
-"* You can try adding a third variant to the enum definition and displaying the errors when running the code. Point out the places where your code is now "
-"inexhaustive and how the compiler tries to give you hints."
+"* You can try adding a third variant to the enum definition and displaying the errors when running the code. Point out the places where your code is now inexhaustive and how the compiler tries to give you hints."
msgstr ""
#: src/pattern-matching/destructuring-structs.md:1
@@ -5325,8 +5262,8 @@ msgstr ""
#: src/pattern-matching/match-guards.md:23
msgid ""
"* Match guards as a separate syntax feature are important and necessary when we wish to concisely express more complex ideas than patterns alone would allow.\n"
-"* They are not the same as separate `if` expression inside of the match arm. An `if` expression inside of the branch block (after `=>`) happens after the "
-"match arm is selected. Failing the `if` condition inside of that block won't result in other arms\n"
+"* They are not the same as separate `if` expression inside of the match arm. An `if` expression inside of the branch block (after `=>`) happens after the match arm is selected. Failing the `if` condition inside "
+"of that block won't result in other arms\n"
"of the original `match` expression being considered. \n"
"* You can use the variables defined in the pattern in your if expression.\n"
"* The condition defined in the guard applies to every expression in a pattern with an `|`."
@@ -5687,9 +5624,7 @@ msgid ""
msgstr ""
#: src/control-flow/if-expressions.md:35
-msgid ""
-"Because `if` is an expression and must have a particular type, both of its branch blocks must have the same type. Consider showing what happens if you add `;` "
-"after `x / 2` in the second example."
+msgid "Because `if` is an expression and must have a particular type, both of its branch blocks must have the same type. Consider showing what happens if you add `;` after `x / 2` in the second example."
msgstr ""
#: src/control-flow/if-let-expressions.md:1
@@ -5728,8 +5663,8 @@ msgid ""
"* `if let` can be more concise than `match`, e.g., when only one case is interesting. In contrast, `match` requires all branches to be covered.\n"
"* A common usage is handling `Some` values when working with `Option`.\n"
"* Unlike `match`, `if let` does not support guard clauses for pattern matching.\n"
-"* Since 1.65, a similar [let-else](https://doc.rust-lang.org/rust-by-example/flow_control/let_else.html) construct allows to do a destructuring assignment, or "
-"if it fails, have a non-returning block branch (panic/return/break/continue):\n"
+"* Since 1.65, a similar [let-else](https://doc.rust-lang.org/rust-by-example/flow_control/let_else.html) construct allows to do a destructuring assignment, or if it fails, have a non-returning block branch "
+"(panic/return/break/continue):\n"
"\n"
" ```rust,editable\n"
" fn main() {\n"
@@ -5806,8 +5741,8 @@ msgstr ""
#: src/control-flow/while-let-expressions.md:26
msgid ""
"* Point out that the `while let` loop will keep going as long as the value matches the pattern.\n"
-"* You could rewrite the `while let` loop as an infinite loop with an if statement that breaks when there is no value to unwrap for `iter.next()`. The `while "
-"let` provides syntactic sugar for the above scenario.\n"
+"* You could rewrite the `while let` loop as an infinite loop with an if statement that breaks when there is no value to unwrap for `iter.next()`. The `while let` provides syntactic sugar for the above "
+"scenario.\n"
" "
msgstr ""
@@ -6088,14 +6023,13 @@ msgstr ""
msgid ""
"* `String::new` returns a new empty string, use `String::with_capacity` when you know how much data you want to push to the string.\n"
"* `String::len` returns the size of the `String` in bytes (which can be different from its length in characters).\n"
-"* `String::chars` returns an iterator over the actual characters. Note that a `char` can be different from what a human will consider a \"character\" due to "
-"[grapheme clusters](https://docs.rs/unicode-segmentation/latest/unicode_segmentation/struct.Graphemes.html).\n"
+"* `String::chars` returns an iterator over the actual characters. Note that a `char` can be different from what a human will consider a \"character\" due to [grapheme clusters](https://docs.rs/unicode-"
+"segmentation/latest/unicode_segmentation/struct.Graphemes.html).\n"
"* When people refer to strings they could either be talking about `&str` or `String`. \n"
"* When a type implements `Deref`, the compiler will let you transparently call methods from `T`.\n"
" * `String` implements `Deref` which transparently gives it access to `str`'s methods.\n"
" * Write and compare `let s3 = s1.deref();` and `let s3 = &*s1`;.\n"
-"* `String` is implemented as a wrapper around a vector of bytes, many of the operations you see supported on vectors are also supported on `String`, but with "
-"some extra guarantees.\n"
+"* `String` is implemented as a wrapper around a vector of bytes, many of the operations you see supported on vectors are also supported on `String`, but with some extra guarantees.\n"
"* Compare the different ways to index a `String`:\n"
" * To a character by using `s3.chars().nth(i).unwrap()` where `i` is in-bound, out-of-bounds.\n"
" * To a substring by using `s3[0..4]`, where that slice is on character boundaries or not."
@@ -6202,8 +6136,8 @@ msgstr ""
#: src/std/hashmap.md:38
msgid ""
"* `HashMap` is not defined in the prelude and needs to be brought into scope.\n"
-"* Try the following lines of code. The first line will see if a book is in the hashmap and if not return an alternative value. The second line will insert the "
-"alternative value in the hashmap if the book is not found.\n"
+"* Try the following lines of code. The first line will see if a book is in the hashmap and if not return an alternative value. The second line will insert the alternative value in the hashmap if the book is not "
+"found.\n"
"\n"
" ```rust,ignore\n"
" let pc1 = page_counts\n"
@@ -6275,8 +6209,7 @@ msgid ""
"* In the above example, you can even leave out the `*` in the `println!` statement thanks to `Deref`. \n"
"* A `Box` can be useful when you:\n"
" * have a type whose size that can't be known at compile time, but the Rust compiler wants to know an exact size.\n"
-" * want to transfer ownership of a large amount of data. To avoid copying large amounts of data on the stack, instead store the data on the heap in a `Box` "
-"so only the pointer is moved."
+" * want to transfer ownership of a large amount of data. To avoid copying large amounts of data on the stack, instead store the data on the heap in a `Box` so only the pointer is moved."
msgstr ""
#: src/std/box-recursive.md:1
@@ -6327,8 +6260,7 @@ msgid ""
"* `Box` solves this problem as it has the same size as a regular pointer and just points at the next\n"
"element of the `List` in the heap.\n"
"\n"
-"* Remove the `Box` in the List definition and show the compiler error. \"Recursive with indirection\" is a hint you might want to use a Box or reference of "
-"some kind, instead of storing a value directly. \n"
+"* Remove the `Box` in the List definition and show the compiler error. \"Recursive with indirection\" is a hint you might want to use a Box or reference of some kind, instead of storing a value directly. \n"
" "
msgstr ""
@@ -6396,12 +6328,11 @@ msgstr ""
msgid ""
"* `Rc`'s count ensures that its contained value is valid for as long as there are references.\n"
"* Like C++'s `std::shared_ptr`.\n"
-"* `Rc::clone` is cheap: it creates a pointer to the same allocation and increases the reference count. Does not make a deep clone and can generally be ignored "
-"when looking for performance issues in code.\n"
+"* `Rc::clone` is cheap: it creates a pointer to the same allocation and increases the reference count. Does not make a deep clone and can generally be ignored when looking for performance issues in code.\n"
"* `make_mut` actually clones the inner value if necessary (\"clone-on-write\") and returns a mutable reference.\n"
"* Use `Rc::strong_count` to check the reference count.\n"
-"* Compare the different datatypes mentioned. `Box` enables (im)mutable borrows that are enforced at compile time. `RefCell` enables (im)mutable borrows that "
-"are enforced at run time and will panic if it fails at runtime.\n"
+"* Compare the different datatypes mentioned. `Box` enables (im)mutable borrows that are enforced at compile time. `RefCell` enables (im)mutable borrows that are enforced at run time and will panic if it fails "
+"at runtime.\n"
"* `Rc::downgrade` gives you a *weakly reference-counted* object to\n"
" create cycles that will be dropped properly (likely in combination with\n"
" `RefCell`)."
@@ -7111,8 +7042,8 @@ msgstr ""
msgid ""
"* Types that implement a given trait may be of different sizes. This makes it impossible to have things like `Vec` in the example above.\n"
"* `dyn Pet` is a way to tell the compiler about a dynamically sized type that implements `Pet`.\n"
-"* In the example, `pets` holds *fat pointers* to objects that implement `Pet`. The fat pointer consists of two components, a pointer to the actual object and "
-"a pointer to the virtual method table for the `Pet` implementation of that particular object.\n"
+"* In the example, `pets` holds *fat pointers* to objects that implement `Pet`. The fat pointer consists of two components, a pointer to the actual object and a pointer to the virtual method table for the `Pet` "
+"implementation of that particular object.\n"
"* Compare these outputs in the above example:\n"
" ```rust,ignore\n"
" println!(\"{} {}\", std::mem::size_of::(), std::mem::size_of::());\n"
@@ -9812,8 +9743,7 @@ msgstr ""
msgid "Add this to your `Android.bp` file:"
msgstr ""
-#: src/android/interoperability/with-c/bindgen.md:35 src/android/interoperability/with-c/bindgen.md:55 src/android/interoperability/with-c/bindgen.md:69
-#: src/android/interoperability/with-c/bindgen.md:108
+#: src/android/interoperability/with-c/bindgen.md:35 src/android/interoperability/with-c/bindgen.md:55 src/android/interoperability/with-c/bindgen.md:69 src/android/interoperability/with-c/bindgen.md:108
msgid "_interoperability/bindgen/Android.bp_:"
msgstr ""
@@ -10184,8 +10114,7 @@ msgid ""
"```"
msgstr ""
-#: src/exercises/android/morning.md:1 src/exercises/bare-metal/morning.md:1 src/exercises/bare-metal/afternoon.md:1 src/exercises/concurrency/morning.md:1
-#: src/exercises/concurrency/afternoon.md:1
+#: src/exercises/android/morning.md:1 src/exercises/bare-metal/morning.md:1 src/exercises/bare-metal/afternoon.md:1 src/exercises/concurrency/morning.md:1 src/exercises/concurrency/afternoon.md:1
msgid "# Exercises"
msgstr ""
@@ -10210,7 +10139,7 @@ msgstr ""
#: src/bare-metal.md:1
msgid "# Welcome to Bare Metal Rust"
-msgstr "# Bare Metal Rust āĻ āĻāĻĒāύāĻžāĻā§ āϏā§āĻŦāĻžāĻāϤāĻŽ"
+msgstr ""
#: src/bare-metal.md:3
msgid ""
@@ -10271,7 +10200,7 @@ msgstr ""
#: src/bare-metal.md:38
msgid "On MacOS:"
-msgstr "MacOS āĻāĻ"
+msgstr ""
#: src/bare-metal.md:40
msgid ""
@@ -10578,8 +10507,7 @@ msgstr ""
msgid "* GPIO 0 pin 21 is connected to the first column of the LED matrix, and pin 28 to the first row."
msgstr ""
-#: src/bare-metal/microcontrollers/mmio.md:66 src/bare-metal/microcontrollers/pacs.md:59 src/bare-metal/microcontrollers/hals.md:43
-#: src/bare-metal/microcontrollers/board-support.md:34
+#: src/bare-metal/microcontrollers/mmio.md:66 src/bare-metal/microcontrollers/pacs.md:59 src/bare-metal/microcontrollers/hals.md:43 src/bare-metal/microcontrollers/board-support.md:34
msgid "Run the example with:"
msgstr ""
@@ -11026,8 +10954,8 @@ msgstr ""
msgid "`src/main.rs`:"
msgstr ""
-#: src/exercises/bare-metal/compass.md:28 src/exercises/bare-metal/rtc.md:21 src/exercises/concurrency/dining-philosophers.md:17
-#: src/exercises/concurrency/link-checker.md:55 src/exercises/concurrency/dining-philosophers-async.md:11 src/exercises/concurrency/elevator.md:19
+#: src/exercises/bare-metal/compass.md:28 src/exercises/bare-metal/rtc.md:21 src/exercises/concurrency/dining-philosophers.md:17 src/exercises/concurrency/link-checker.md:55
+#: src/exercises/concurrency/dining-philosophers-async.md:11 src/exercises/concurrency/elevator.md:19
msgid ""
msgstr ""
@@ -11072,8 +11000,8 @@ msgstr ""
msgid "`Cargo.toml` (you shouldn't need to change this):"
msgstr ""
-#: src/exercises/bare-metal/compass.md:66 src/exercises/bare-metal/rtc.md:387 src/exercises/concurrency/dining-philosophers.md:63
-#: src/exercises/concurrency/link-checker.md:35 src/exercises/concurrency/dining-philosophers-async.md:60 src/exercises/concurrency/elevator.md:367
+#: src/exercises/bare-metal/compass.md:66 src/exercises/bare-metal/rtc.md:387 src/exercises/concurrency/dining-philosophers.md:63 src/exercises/concurrency/link-checker.md:35
+#: src/exercises/concurrency/dining-philosophers-async.md:60 src/exercises/concurrency/elevator.md:367
msgid ""
msgstr ""
@@ -13163,7 +13091,7 @@ msgstr ""
#: src/concurrency.md:1
msgid "# Welcome to Concurrency in Rust"
-msgstr "# Concurrency in Rust āĻ āĻāĻĒāύāĻžāĻā§ āϏā§āĻŦāĻžāĻāϤāĻŽ"
+msgstr ""
#: src/concurrency.md:3
msgid ""
@@ -13279,12 +13207,10 @@ msgid ""
"* Normal Rust borrowing rules apply: you can either borrow mutably by one thread, or immutably by any number of threads.\n"
" "
msgstr ""
-"* āĻāϰ āĻāĻžāϰāύ āĻšāϞ⧠āĻāĻ āϝ⧠āϝāĻāύ `thread::scope` āϏāĻŽā§āĻĒā§āϰā§āύ āĻšā§, āϤāĻāύ āϏāĻŽāϏā§āϤ thread āĻā§āϞ⧠āϝā§āĻāĻĻāĻžāύā§āϰ āύāĻŋāĻļā§āĻā§āϤāĻž āĻĻā§ā§, āϝāĻžāϤ⧠āϤāĻžāϰāĻž āϧāĻžāϰ āĻāϰāĻž data āĻĢā§āϰāϤ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤\n"
-"* āϏāĻžāϧāĻžāϰāύ Rust āϧāĻžāϰ āύā§āĻā§āĻžāϰ āύāĻŋā§āĻŽ āĻĒā§āϰāϝā§āĻā§āϝāĻ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ thread āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§ā§āĻāĻžāĻŦā§ āĻ
āĻĨāĻŦāĻž āϝā§āĻā§āύ⧠āϏāĻāĻā§āϝāĻ thread āĻĻā§āĻŦāĻžāϰāĻž āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§ā§āĻāĻžāĻŦā§ āϧāĻžāϰ āύāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ "
#: src/concurrency/channels.md:1
msgid "# Channels"
-msgstr "# āĻā§āϝāĻžāύā§āϞ"
+msgstr ""
#: src/concurrency/channels.md:3
msgid ""
@@ -13324,7 +13250,7 @@ msgstr ""
#: src/concurrency/channels/unbounded.md:1
msgid "# Unbounded Channels"
-msgstr "# āϏāĻŋāĻŽāĻžāĻšā§āύ āĻā§āϝāĻžāύā§āϞāĻā§āϞā§"
+msgstr ""
#: src/concurrency/channels/unbounded.md:3
msgid "You get an unbounded and asynchronous channel with `mpsc::channel()`:"
@@ -13359,7 +13285,7 @@ msgstr ""
#: src/concurrency/channels/bounded.md:1
msgid "# Bounded Channels"
-msgstr "# āϏā§āĻŽāĻžāύāĻžāϝā§āĻā§āϤ āĻā§āϝāĻžāύā§āϞāĻā§āϞā§"
+msgstr ""
#: src/concurrency/channels/bounded.md:3
msgid "Bounded and synchronous channels make `send` block the current thread:"
@@ -13462,16 +13388,13 @@ msgid "> `T` is `Sync` if and only if `&T` is `Send`"
msgstr ""
#: src/concurrency/send-sync/sync.md:14
-msgid ""
-"This statement is essentially a shorthand way of saying that if a type is thread-safe for shared use, it is also thread-safe to pass references of it across "
-"threads."
+msgid "This statement is essentially a shorthand way of saying that if a type is thread-safe for shared use, it is also thread-safe to pass references of it across threads."
msgstr ""
#: src/concurrency/send-sync/sync.md:16
msgid ""
-"This is because if a type is Sync it means that it can be shared across multiple threads without the risk of data races or other synchronization issues, so it "
-"is safe to move it to another thread. A reference to the type is also safe to move to another thread, because the data it references can be accessed from any "
-"thread safely."
+"This is because if a type is Sync it means that it can be shared across multiple threads without the risk of data races or other synchronization issues, so it is safe to move it to another thread. A reference "
+"to the type is also safe to move to another thread, because the data it references can be accessed from any thread safely."
msgstr ""
#: src/concurrency/send-sync/examples.md:1
@@ -14536,8 +14459,8 @@ msgstr ""
#: src/async/pitfalls.md:3
msgid ""
-"Async / await provides convenient and efficient abstraction for concurrent asynchronous programming. However, the async/await model in Rust also comes with "
-"its share of pitfalls and footguns. We illustrate some of them in this chapter:"
+"Async / await provides convenient and efficient abstraction for concurrent asynchronous programming. However, the async/await model in Rust also comes with its share of pitfalls and footguns. We illustrate some "
+"of them in this chapter:"
msgstr ""
#: src/async/pitfalls.md:5
@@ -14734,8 +14657,8 @@ msgstr ""
#: src/async/pitfalls/async-traits.md:3
msgid ""
-"Async methods in traits are not yet supported in the stable channel ([An experimental feature exists in nightly and should be stabilized in the mid term.]"
-"(https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html))"
+"Async methods in traits are not yet supported in the stable channel ([An experimental feature exists in nightly and should be stabilized in the mid term.](https://blog.rust-lang.org/inside-rust/2022/11/17/async-"
+"fn-in-trait-nightly.html))"
msgstr ""
#: src/async/pitfalls/async-traits.md:5
@@ -14934,7 +14857,7 @@ msgstr ""
#: src/exercises/concurrency/elevator.md:12
msgid "## Getting Started"
-msgstr "## āĻļā§āϰ⧠āĻāϰāĻž āϝāĻžāĻ"
+msgstr ""
#: src/exercises/concurrency/elevator.md:14
msgid ""
@@ -15382,7 +15305,7 @@ msgid ""
"_Thank you for taking Comprehensive Rust đĻ!_ We hope you enjoyed it and that it\n"
"was useful."
msgstr ""
-"_Comprehensive Rust đĻ āύā§āĻā§āĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāĻā§ āϧāύā§āϝāĻŦāĻžāĻĻ!_ āĻāĻŽāϰāĻž āĻāĻļāĻž āĻāϰāĻŋ āĻāĻāĻž āĻāĻĒāύāĻŋ āĻāĻĒāĻā§āĻ āĻāϰā§āĻā§āύ āĻāĻŦāĻ āĻāĻāĻŋ\n"
+"Comprehensive Rust đĻ āĻā§āϰā§āϏāĻāĻŋ āύā§āĻā§āĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāĻā§ āϧāύā§āϝāĻŦāĻžāĻĻ! āĻāĻŽāϰāĻž āĻāĻļāĻž āĻāϰāĻŋ āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāĻĒāĻā§āĻ āĻāϰā§āĻā§āύ āĻāĻŦāĻ āĻāĻāĻŋ\n"
"āĻāĻĒāĻāĻžāϰ⧠āĻāĻŋāϞā§āĨ¤"
#: src/thanks.md:6
@@ -15396,7 +15319,7 @@ msgstr ""
#: src/other-resources.md:1
msgid "# Other Rust Resources"
-msgstr "# āĻ
āύā§āϝ Rust Resources"
+msgstr ""
#: src/other-resources.md:3
msgid ""
@@ -15505,7 +15428,7 @@ msgstr ""
#: src/credits.md:10
msgid "## Rust by Example"
-msgstr "## āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ Rust"
+msgstr "## āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϰāĻžāϏā§āĻ"
#: src/credits.md:12
msgid ""
@@ -15517,7 +15440,7 @@ msgstr ""
#: src/credits.md:17
msgid "## Rust on Exercism"
-msgstr "## āĻ
āύā§āĻļā§āϞāύ⧠Rust"
+msgstr "## āĻ
āύā§āĻļā§āϞāύ⧠āϰāĻžāϏā§āĻ"
#: src/credits.md:19
msgid ""
@@ -15649,23 +15572,21 @@ msgstr ""
#: src/exercises/day-1/solutions-morning.md:78
msgid "### Bonus question"
-msgstr "### āĻŦā§āύāĻžāϏ āĻĒā§āϰāĻļā§āύ"
+msgstr ""
#: src/exercises/day-1/solutions-morning.md:80
msgid ""
-"It requires more advanced concepts. It might seem that we could use a slice-of-slices (`&[&[i32]]`) as the input type to transpose and thus make our function "
-"handle any size of matrix. However, this quickly breaks down: the return type cannot be `&[&[i32]]` since it needs to own the data you return."
+"It requires more advanced concepts. It might seem that we could use a slice-of-slices (`&[&[i32]]`) as the input type to transpose and thus make our function handle any size of matrix. However, this quickly "
+"breaks down: the return type cannot be `&[&[i32]]` since it needs to own the data you return."
msgstr ""
#: src/exercises/day-1/solutions-morning.md:82
msgid ""
-"You can attempt to use something like `Vec>`, but this doesn't work out-of-the-box either: it's hard to convert from `Vec>` to `&[&[i32]]` "
-"so now you cannot easily use `pretty_print` either."
+"You can attempt to use something like `Vec>`, but this doesn't work out-of-the-box either: it's hard to convert from `Vec>` to `&[&[i32]]` so now you cannot easily use `pretty_print` either."
msgstr ""
#: src/exercises/day-1/solutions-morning.md:84
-msgid ""
-"Once we get to traits and generics, we'll be able to use the [`std::convert::AsRef`][1] trait to abstract over anything that can be referenced as a slice."
+msgid "Once we get to traits and generics, we'll be able to use the [`std::convert::AsRef`][1] trait to abstract over anything that can be referenced as a slice."
msgstr ""
#: src/exercises/day-1/solutions-morning.md:86