diff --git a/po/fa.po b/po/fa.po
index f13cb695..263355b2 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Comprehensive Rust 🦀\n"
 "POT-Creation-Date: 2024-09-11T22:10:46Z\n"
-"PO-Revision-Date: 2024-09-13 00:14+0330\n"
+"PO-Revision-Date: 2024-09-13 23:14+0330\n"
 "Last-Translator: alix1383 <dev.alix13@gmail.com>\n"
 "Language-Team: Persian\n"
 "Language: fa\n"
@@ -566,7 +566,7 @@ msgstr ""
 
 #: src/SUMMARY.md
 msgid "`FromIterator`"
-msgstr ""
+msgstr "`FromIterator`"
 
 #: src/SUMMARY.md src/iterators.md src/iterators/exercise.md
 msgid "Exercise: Iterator Method Chaining"
@@ -637,7 +637,7 @@ msgstr ""
 
 #: src/SUMMARY.md
 msgid "`Error` Trait"
-msgstr ""
+msgstr "`Error` Trait"
 
 #: src/SUMMARY.md src/error-handling/thiserror-and-anyhow.md
 msgid "`thiserror` and `anyhow`"
@@ -1009,7 +1009,7 @@ msgstr "یک مثال ساده"
 
 #: src/SUMMARY.md src/bare-metal/no_std.md src/bare-metal/alloc.md
 msgid "`alloc`"
-msgstr ""
+msgstr "`alloc`"
 
 #: src/SUMMARY.md src/bare-metal/microcontrollers.md
 msgid "Microcontrollers"
@@ -1126,7 +1126,7 @@ msgstr ""
 
 #: src/SUMMARY.md src/bare-metal/useful-crates/aarch64-paging.md
 msgid "`aarch64-paging`"
-msgstr ""
+msgstr "`aarch64-paging`"
 
 #: src/SUMMARY.md src/bare-metal/useful-crates/buddy_system_allocator.md
 msgid "`buddy_system_allocator`"
@@ -1355,6 +1355,14 @@ msgid ""
 "io/github/stars/google/comprehensive-rust?style=flat-square)](https://github."
 "com/google/comprehensive-rust/stargazers)"
 msgstr ""
+"[![Build workflow](https://img.shields.io/github/actions/workflow/status/"
+"google/comprehensive-rust/build.yml?style=flat-square)](https://github.com/"
+"google/comprehensive-rust/actions/workflows/build.yml?query=branch%3Amain) [!"
+"[GitHub contributors](https://img.shields.io/github/contributors/google/"
+"comprehensive-rust?style=flat-square)](https://github.com/google/"
+"comprehensive-rust/graphs/contributors) [![GitHub stars](https://img.shields."
+"io/github/stars/google/comprehensive-rust?style=flat-square)](https://github."
+"com/google/comprehensive-rust/stargazers)"
 
 #: src/index.md
 msgid ""
@@ -3009,7 +3017,7 @@ msgstr ""
 
 #: src/types-and-values/hello-world.md
 msgid "\"Hello 🌍!\""
-msgstr "\"Hello 🌍!\""
+msgstr "\"سلام 🌍!\""
 
 #: src/types-and-values/hello-world.md
 msgid "What you see:"
@@ -3366,9 +3374,8 @@ msgid "// The base case.\n"
 msgstr "//حالت پایه\n"
 
 #: src/types-and-values/exercise.md src/control-flow-basics/exercise.md
-#, fuzzy
 msgid "\"Implement this\""
-msgstr "پیاده سازی"
+msgstr "\"این را پیاده‌سازی کن\""
 
 #: src/types-and-values/exercise.md
 msgid "// The recursive case.\n"
@@ -3405,7 +3412,7 @@ msgstr ""
 
 #: src/control-flow-basics/if.md
 msgid "\"zero!\""
-msgstr "\"zero!\""
+msgstr "\"صفر!\""
 
 #: src/control-flow-basics/if.md
 msgid "\"biggish\""
@@ -4084,7 +4091,7 @@ msgstr "\"matrix: {:#?}\""
 
 #: src/tuples-and-arrays/exercise.md src/tuples-and-arrays/solution.md
 msgid "\"transposed: {:#?}\""
-msgstr "\"transposed: {:#?}\""
+msgstr "\"جابجا شده است: {:#?}\""
 
 #: src/references.md src/smart-pointers.md src/borrowing.md
 #: src/concurrency/async-pitfalls.md
@@ -4327,7 +4334,7 @@ msgstr "`str&` تکه‌ای از بایت‌های رمزگذاری‌شده UT
 
 #: src/references/strings.md src/std-traits/read-and-write.md
 msgid "\"World\""
-msgstr "\"World\""
+msgstr "\"دنیا\""
 
 #: src/references/strings.md
 msgid "\"s1: {s1}\""
@@ -4335,7 +4342,7 @@ msgstr "\"s1: {s1}\""
 
 #: src/references/strings.md
 msgid "\"Hello \""
-msgstr "\"Hello \""
+msgstr "\"سلام\""
 
 #: src/references/strings.md src/memory-management/move.md
 msgid "\"s2: {s2}\""
@@ -4589,7 +4596,7 @@ msgstr "\"از یک دانشمند حوزه موشک در ناسا بپرس\""
 #: src/bare-metal/microcontrollers/type-state.md
 #: src/concurrency/async-pitfalls/cancellation.md
 msgid "// ...\n"
-msgstr ""
+msgstr "// ...\n"
 
 #: src/user-defined-types/tuple-structs.md
 msgid ""
@@ -4638,16 +4645,19 @@ msgstr ""
 "است:"
 
 #: src/user-defined-types/enums.md
+#, fuzzy
 msgid "// Simple variant\n"
-msgstr ""
+msgstr "// Simple variant\n"
 
 #: src/user-defined-types/enums.md
+#, fuzzy
 msgid "// Tuple variant\n"
-msgstr ""
+msgstr "// Tuple variant\n"
 
 #: src/user-defined-types/enums.md
+#, fuzzy
 msgid "// Struct variant\n"
-msgstr ""
+msgstr "// Struct variant\n"
 
 #: src/user-defined-types/enums.md
 msgid "\"On this turn: {:?}\""
@@ -4819,9 +4829,8 @@ msgstr ""
 "نمی‌شوند:"
 
 #: src/user-defined-types/static.md
-#, fuzzy
 msgid "\"Welcome to RustOS 3.14\""
-msgstr "به روز ۱ خوش آمدید"
+msgstr "\"به RustOS 3.14 خوش آمدید\""
 
 #: src/user-defined-types/static.md
 msgid "\"{BANNER}\""
@@ -4887,8 +4896,9 @@ msgid ""
 msgstr ""
 
 #: src/user-defined-types/aliases.md
+#, fuzzy
 msgid "// Aliases are more useful with long, complex types:\n"
-msgstr ""
+msgstr "// Aliases are more useful with long, complex types:\n"
 
 #: src/user-defined-types/aliases.md
 msgid "C programmers will recognize this as similar to a `typedef`."
@@ -4910,39 +4920,50 @@ msgid ""
 msgstr ""
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
+#, fuzzy
 msgid ""
 "/// An event in the elevator system that the controller must react to.\n"
 msgstr ""
+"/// An event in the elevator system that the controller must react to.\n"
 
 #: src/user-defined-types/exercise.md
+#, fuzzy
 msgid "// TODO: add required variants\n"
-msgstr ""
+msgstr "// TODO: add required variants\n"
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// A direction of travel.\n"
-msgstr ""
+msgstr "/// A direction of travel.\n"
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// The car has arrived on the given floor.\n"
-msgstr ""
+msgstr "/// The car has arrived on the given floor.\n"
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// The car doors have opened.\n"
-msgstr ""
+msgstr "/// The car doors have opened.\n"
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// The car doors have closed.\n"
-msgstr ""
+msgstr "/// The car doors have closed.\n"
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
+#, fuzzy
 msgid ""
 "/// A directional button was pressed in an elevator lobby on the given "
 "floor.\n"
 msgstr ""
+"/// A directional button was pressed in an elevator lobby on the given "
+"floor.\n"
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// A floor button was pressed in the elevator car.\n"
-msgstr ""
+msgstr "/// A floor button was pressed in the elevator car.\n"
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
 #, fuzzy
@@ -4951,11 +4972,11 @@ msgstr "\"یک مسافر طبقه همکف دکمه بالا را فشار دا
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
 msgid "\"The car has arrived on the ground floor: {:?}\""
-msgstr ""
+msgstr "\"ماشین به طبقه همکف رسیده است: {:?}\""
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
 msgid "\"The car door opened: {:?}\""
-msgstr ""
+msgstr "\"در ماشین باز شد: {:?}\""
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
 msgid "\"A passenger has pressed the 3rd floor button: {:?}\""
@@ -4963,43 +4984,51 @@ msgstr "\"یک مسافر دکمه طبقه 3 را فشار داده است: {:?
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
 msgid "\"The car door closed: {:?}\""
-msgstr ""
+msgstr "\"در ماشین بسته شد: {:?}\""
 
 #: src/user-defined-types/exercise.md src/user-defined-types/solution.md
 msgid "\"The car has arrived on the 3rd floor: {:?}\""
-msgstr ""
+msgstr "\"ماشین به طبقه ۳ رسیده است: {:?}\""
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// A button was pressed.\n"
-msgstr ""
+msgstr "/// A button was pressed.\n"
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// The car has arrived at the given floor.\n"
-msgstr ""
+msgstr "/// The car has arrived at the given floor.\n"
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// The car's doors have opened.\n"
-msgstr ""
+msgstr "/// The car's doors have opened.\n"
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// The car's doors have closed.\n"
-msgstr ""
+msgstr "/// The car's doors have closed.\n"
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// A floor is represented as an integer.\n"
-msgstr ""
+msgstr "/// A floor is represented as an integer.\n"
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// A user-accessible button.\n"
-msgstr ""
+msgstr "/// A user-accessible button.\n"
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// A button in the elevator lobby on the given floor.\n"
-msgstr ""
+msgstr "/// A button in the elevator lobby on the given floor.\n"
 
 #: src/user-defined-types/solution.md
+#, fuzzy
 msgid "/// A floor button within the car.\n"
-msgstr ""
+msgstr "/// A floor button within the car.\n"
 
 #: src/welcome-day-2.md
 msgid "Welcome to Day 2"
@@ -5062,11 +5091,11 @@ msgstr "الگوها می توانند مقادیر ساده ای باشند، 
 
 #: src/pattern-matching/match.md
 msgid "'x'"
-msgstr ""
+msgstr "'x'"
 
 #: src/pattern-matching/match.md
 msgid "'q'"
-msgstr ""
+msgstr "'q'"
 
 #: src/pattern-matching/match.md
 msgid "\"Quitting\""
@@ -5076,19 +5105,19 @@ msgstr "\"ترک کردن\""
 #: src/generics/solution.md src/std-traits/solution.md
 #: src/error-handling/exercise.md src/error-handling/solution.md
 msgid "'a'"
-msgstr ""
+msgstr "'a'"
 
 #: src/pattern-matching/match.md
 msgid "'s'"
-msgstr ""
+msgstr "'s'"
 
 #: src/pattern-matching/match.md
 msgid "'w'"
-msgstr ""
+msgstr "'w'"
 
 #: src/pattern-matching/match.md
 msgid "'d'"
-msgstr ""
+msgstr "'d'"
 
 #: src/pattern-matching/match.md
 msgid "\"Moving around\""
@@ -5097,12 +5126,12 @@ msgstr "\"حرکت در اطراف\""
 #: src/pattern-matching/match.md src/error-handling/exercise.md
 #: src/error-handling/solution.md
 msgid "'0'"
-msgstr ""
+msgstr "'0'"
 
 #: src/pattern-matching/match.md src/error-handling/exercise.md
 #: src/error-handling/solution.md
 msgid "'9'"
-msgstr ""
+msgstr "'9'"
 
 #: src/pattern-matching/match.md
 msgid "\"Number input\""
@@ -5114,7 +5143,7 @@ msgstr "\"حروف کوچک: {key}\""
 
 #: src/pattern-matching/match.md
 msgid "\"Something else\""
-msgstr ""
+msgstr "\"یک چیز دیگر\""
 
 #: src/pattern-matching/match.md
 msgid ""
@@ -5211,7 +5240,7 @@ msgstr "مانند tuple ها، ساختار را نیز می توان با تط
 
 #: src/pattern-matching/destructuring-structs.md
 msgid "\"x.0 = 1, b = {b}, y = {y}\""
-msgstr ""
+msgstr "\"x.0 = 1, b = {b}, y = {y}\""
 
 #: src/pattern-matching/destructuring-structs.md
 msgid "\"y = 2, x = {i:?}\""
@@ -5219,7 +5248,7 @@ msgstr ""
 
 #: src/pattern-matching/destructuring-structs.md
 msgid "\"y = {y}, other fields were ignored\""
-msgstr ""
+msgstr "\"در y = {y} ، سایر فیلدها نادیده گرفته شدند\""
 
 #: src/pattern-matching/destructuring-structs.md
 msgid "Change the literal values in `foo` to match with the other patterns."
@@ -5263,7 +5292,7 @@ msgstr "\"{n} تقسیم به دو است {half}\""
 
 #: src/pattern-matching/destructuring-enums.md
 msgid "\"sorry, an error happened: {msg}\""
-msgstr ""
+msgstr "\"با عرض‌پوزش، خطایی رخ داده است: {msg}\""
 
 #: src/pattern-matching/destructuring-enums.md
 msgid ""
@@ -5357,8 +5386,9 @@ msgstr ""
 "یک الگو مطابقت دارد، کدهای مختلفی را اجرا کنید:"
 
 #: src/pattern-matching/let-control-flow.md
+#, fuzzy
 msgid "\"slept for {:?}\""
-msgstr ""
+msgstr "\"slept for {:?}\""
 
 #: src/pattern-matching/let-control-flow.md
 msgid ""
@@ -5382,7 +5412,7 @@ msgstr "\"یک string خالی دریافت کردم\""
 
 #: src/pattern-matching/let-control-flow.md
 msgid "\"got None\""
-msgstr ""
+msgstr "\"هیچ‌کدام\""
 
 #: src/pattern-matching/let-control-flow.md src/pattern-matching/solution.md
 msgid "\"result: {:?}\""
@@ -5535,20 +5565,24 @@ msgstr ""
 "panic مدیریت کنید؟"
 
 #: src/pattern-matching/exercise.md src/pattern-matching/solution.md
+#, fuzzy
 msgid "/// An operation to perform on two subexpressions.\n"
-msgstr ""
+msgstr "/// An operation to perform on two subexpressions.\n"
 
 #: src/pattern-matching/exercise.md src/pattern-matching/solution.md
+#, fuzzy
 msgid "/// An expression, in tree form.\n"
-msgstr ""
+msgstr "/// An expression, in tree form.\n"
 
 #: src/pattern-matching/exercise.md src/pattern-matching/solution.md
+#, fuzzy
 msgid "/// An operation on two subexpressions.\n"
-msgstr ""
+msgstr "/// An operation on two subexpressions.\n"
 
 #: src/pattern-matching/exercise.md src/pattern-matching/solution.md
+#, fuzzy
 msgid "/// A literal value\n"
-msgstr ""
+msgstr "/// A literal value\n"
 
 #: src/pattern-matching/exercise.md src/pattern-matching/solution.md
 msgid "\"division by zero\""
@@ -5567,29 +5601,32 @@ msgstr ""
 "کار را با استفاده از بلوک `impl` انجام می‌دهید:"
 
 #: src/methods-and-traits/methods.md
+#, fuzzy
 msgid "// No receiver, a static method\n"
-msgstr ""
+msgstr "// No receiver, a static method\n"
 
 #: src/methods-and-traits/methods.md
+#, fuzzy
 msgid "// Exclusive borrowed read-write access to self\n"
-msgstr ""
+msgstr "// Exclusive borrowed read-write access to self\n"
 
 #: src/methods-and-traits/methods.md
+#, fuzzy
 msgid "// Shared and read-only borrowed access to self\n"
-msgstr ""
+msgstr "// Shared and read-only borrowed access to self\n"
 
 #: src/methods-and-traits/methods.md
 msgid "\"Recorded {} laps for {}:\""
 msgstr "\"ضبط {} دور برای {}:\""
 
 #: src/methods-and-traits/methods.md
-#, fuzzy
 msgid "\"Lap {idx}: {lap} sec\""
 msgstr "\"Lap {idx}: {lap} sec\""
 
 #: src/methods-and-traits/methods.md
+#, fuzzy
 msgid "// Exclusive ownership of self\n"
-msgstr ""
+msgstr "// Exclusive ownership of self\n"
 
 #: src/methods-and-traits/methods.md
 msgid "\"Race {} is finished, total lap time: {}\""
@@ -5729,12 +5766,14 @@ msgstr ""
 "ایجاد کنید. آنها مشابه interface ها هستند:"
 
 #: src/methods-and-traits/traits.md
+#, fuzzy
 msgid "/// Return a sentence from this pet.\n"
-msgstr ""
+msgstr "/// Return a sentence from this pet.\n"
 
 #: src/methods-and-traits/traits.md
+#, fuzzy
 msgid "/// Print a string to the terminal greeting this pet.\n"
-msgstr ""
+msgstr "/// Print a string to the terminal greeting this pet.\n"
 
 #: src/methods-and-traits/traits.md
 msgid ""
@@ -5759,7 +5798,7 @@ msgstr "\"اوه تو چثدر زیبا هستی! اسمت چیه؟ {}\""
 #: src/methods-and-traits/traits/implementing.md src/generics/dyn-trait.md
 #: src/smart-pointers/trait-objects.md
 msgid "\"Woof, my name is {}!\""
-msgstr ""
+msgstr "\"  Woof، نام من {} است!\""
 
 #: src/methods-and-traits/traits/implementing.md src/generics/dyn-trait.md
 #: src/smart-pointers/trait-objects.md
@@ -5859,20 +5898,23 @@ msgstr ""
 "شوند، به شرح زیر:"
 
 #: src/methods-and-traits/deriving.md
+#, fuzzy
 msgid "// Default trait adds `default` constructor.\n"
-msgstr ""
+msgstr "// Default trait adds `default` constructor.\n"
 
 #: src/methods-and-traits/deriving.md
+#, fuzzy
 msgid "// Clone trait adds `clone` method.\n"
-msgstr ""
+msgstr "// Clone trait adds `clone` method.\n"
 
 #: src/methods-and-traits/deriving.md
 msgid "\"EldurScrollz\""
 msgstr "\"dog\""
 
 #: src/methods-and-traits/deriving.md
+#, fuzzy
 msgid "// Debug trait adds support for printing with `{:?}`.\n"
-msgstr ""
+msgstr "// Debug trait adds support for printing with `{:?}`.\n"
 
 #: src/methods-and-traits/deriving.md
 msgid "\"{:?} vs. {:?}\""
@@ -5927,12 +5969,13 @@ msgstr ""
 "نوع‌های دیگری از پوشش‌دهنده‌ها ممکن است در یک ابزار لاگ مفید باشند؟"
 
 #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md
+#, fuzzy
 msgid "/// Log a message at the given verbosity level.\n"
-msgstr ""
+msgstr "/// Log a message at the given verbosity level.\n"
 
 #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md
 msgid "\"verbosity={verbosity}: {message}\""
-msgstr ""
+msgstr "\"اطلاعات بیشتر={verbosity}: {message}\""
 
 #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md
 msgid "\"FYI\""
@@ -5940,15 +5983,17 @@ msgstr "\"FYI\""
 
 #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md
 msgid "\"Uhoh\""
-msgstr ""
+msgstr "\"اوهو\""
 
 #: src/methods-and-traits/exercise.md
+#, fuzzy
 msgid "// TODO: Define and implement `VerbosityFilter`.\n"
-msgstr ""
+msgstr "// TODO: Define and implement `VerbosityFilter`.\n"
 
 #: src/methods-and-traits/solution.md
+#, fuzzy
 msgid "/// Only log messages up to the given verbosity level.\n"
-msgstr ""
+msgstr "/// Only log messages up to the given verbosity level.\n"
 
 #: src/welcome-day-2-afternoon.md
 msgid ""
@@ -5984,8 +6029,9 @@ msgstr ""
 "یا ذخیره‌شده تخصیص دهید."
 
 #: src/generics/generic-functions.md
+#, fuzzy
 msgid "/// Pick `even` or `odd` depending on the value of `n`.\n"
-msgstr ""
+msgstr "/// Pick `even` or `odd` depending on the value of `n`.\n"
 
 #: src/generics/generic-functions.md
 msgid "\"picked a number: {:?}\""
@@ -6166,8 +6212,9 @@ msgstr ""
 "می‌توانید این کار را با استفاده از `T: Trait` یا `impl Trait` انجام دهید:"
 
 #: src/generics/trait-bounds.md
+#, fuzzy
 msgid "// struct NotClonable;\n"
-msgstr ""
+msgstr "// struct NotClonable;\n"
 
 #: src/generics/trait-bounds.md
 msgid "\"{pair:?}\""
@@ -6223,10 +6270,13 @@ msgstr ""
 "و مقادیر بازگشتی استفاده کرد:"
 
 #: src/generics/impl-trait.md
+#, fuzzy
 msgid ""
 "// Syntactic sugar for:\n"
 "//   fn add_42_millions<T: Into<i32>>(x: T) -> i32 {\n"
 msgstr ""
+"// Syntactic sugar for:\n"
+"//   fn add_42_millions<T: Into<i32>>(x: T) -> i32 {\n"
 
 #: src/generics/impl-trait.md
 msgid "\"{many}\""
@@ -6238,7 +6288,7 @@ msgstr "\"{many_more}\""
 
 #: src/generics/impl-trait.md
 msgid "\"debuggable: {debuggable:?}\""
-msgstr ""
+msgstr "\"قابل دیباگ: {debuggable:?}\""
 
 #: src/generics/impl-trait.md
 msgid ""
@@ -6304,16 +6354,18 @@ msgid "\"Miau!\""
 msgstr "\"Miau!\""
 
 #: src/generics/dyn-trait.md
+#, fuzzy
 msgid "// Uses generics and static dispatch.\n"
-msgstr ""
+msgstr "// Use the system timer as a delay provider.\n"
 
 #: src/generics/dyn-trait.md src/smart-pointers/trait-objects.md
 msgid "\"Hello, who are you? {}\""
 msgstr "\"سلام، شما کی هستید؟ {}\""
 
 #: src/generics/dyn-trait.md
+#, fuzzy
 msgid "// Uses type-erasure and dynamic dispatch.\n"
-msgstr ""
+msgstr "// Uses type-erasure and dynamic dispatch.\n"
 
 #: src/generics/dyn-trait.md
 msgid ""
@@ -6392,21 +6444,22 @@ msgstr ""
 "rust-lang.org/stable/std/cmp/trait.Ord.html)."
 
 #: src/generics/exercise.md
+#, fuzzy
 msgid "// TODO: implement the `min` function used in `main`.\n"
-msgstr ""
+msgstr "// TODO: implement the `min` function used in `main`.\n"
 
 #: src/generics/exercise.md src/generics/solution.md
 #: src/error-handling/exercise.md src/error-handling/solution.md
 msgid "'z'"
-msgstr ""
+msgstr "'z'"
 
 #: src/generics/exercise.md src/generics/solution.md
 msgid "'7'"
-msgstr ""
+msgstr "'7'"
 
 #: src/generics/exercise.md src/generics/solution.md
 msgid "'1'"
-msgstr ""
+msgstr "'1'"
 
 #: src/generics/exercise.md src/generics/solution.md
 msgid "\"goodbye\""
@@ -6535,12 +6588,17 @@ msgid "In fact, you can document your own code:"
 msgstr "در واقع، شما می‌توانید کد خود را مستند کنید:"
 
 #: src/std-types/docs.md
+#, fuzzy
 msgid ""
 "/// Determine whether the first argument is divisible by the second "
 "argument.\n"
 "///\n"
 "/// If the second argument is zero, the result is false.\n"
 msgstr ""
+"/// Determine whether the first argument is divisible by the second "
+"argument.\n"
+"///\n"
+"/// If the second argument is zero, the result is false.\n"
 
 #: src/std-types/docs.md
 msgid ""
@@ -6564,10 +6622,13 @@ msgstr ""
 "`/* .. !*/` استفاده کنید که به آن \"کامنت‌های مستندات داخلی\" می‌گویند:"
 
 #: src/std-types/docs.md
+#, fuzzy
 msgid ""
 "//! This module contains functionality relating to divisibility of "
 "integers.\n"
 msgstr ""
+"//! This module contains functionality relating to divisibility of "
+"integers.\n"
 
 #: src/std-types/docs.md
 msgid ""
@@ -6602,7 +6663,7 @@ msgstr "\"پیدا کردن نوع بازگشتی{position:?}\""
 
 #: src/std-types/option.md
 msgid "'Z'"
-msgstr ""
+msgstr "'Z'"
 
 #: src/std-types/option.md
 msgid "\"Character not found\""
@@ -6670,7 +6731,7 @@ msgstr "\"نمی‌توان محتوای فایل را خواند\""
 
 #: src/std-types/result.md src/error-handling/result.md
 msgid "\"The diary could not be opened: {err}\""
-msgstr ""
+msgstr "\"دفتر خاطرات باز نشد: {err}\""
 
 #: src/std-types/result.md
 msgid ""
@@ -6722,7 +6783,7 @@ msgstr "\"s1: len = {}, capacity = {}\""
 
 #: src/std-types/string.md
 msgid "'!'"
-msgstr ""
+msgstr "'!'"
 
 #: src/std-types/string.md
 msgid "\"s2: len = {}, capacity = {}\""
@@ -6862,27 +6923,30 @@ msgstr ""
 
 #: src/std-types/vec.md
 msgid "\"v1: len = {}, capacity = {}\""
-msgstr ""
+msgstr "\"v1: len = {}, capacity = {}\""
 
 #: src/std-types/vec.md
 msgid "\"v2: len = {}, capacity = {}\""
-msgstr ""
+msgstr "\"v2: len = {}, capacity = {}\""
 
 #: src/std-types/vec.md
+#, fuzzy
 msgid "// Canonical macro to initialize a vector with elements.\n"
-msgstr ""
+msgstr "// Canonical macro to initialize a vector with elements.\n"
 
 #: src/std-types/vec.md
+#, fuzzy
 msgid "// Retain only the even elements.\n"
-msgstr ""
+msgstr "// Retain only the even elements.\n"
 
 #: src/std-types/vec.md
 msgid "\"{v3:?}\""
 msgstr "\"{v3:?}\""
 
 #: src/std-types/vec.md
+#, fuzzy
 msgid "// Remove consecutive duplicates.\n"
-msgstr ""
+msgstr "// Remove consecutive duplicates.\n"
 
 #: src/std-types/vec.md
 msgid ""
@@ -6962,7 +7026,7 @@ msgstr "\"Les Misérables\""
 
 #: src/std-types/hashmap.md
 msgid "\"We know about {} books, but not Les Misérables.\""
-msgstr ""
+msgstr "\"ما درباره {} کتاب می دانیم، اما Les Misérables نه.\""
 
 #: src/std-types/hashmap.md
 msgid "\"Alice's Adventure in Wonderland\""
@@ -6977,8 +7041,9 @@ msgid "\"{book} is unknown.\""
 msgstr "\"{book} ناشناخته است.\""
 
 #: src/std-types/hashmap.md
+#, fuzzy
 msgid "// Use the .entry() method to insert a value if nothing is found.\n"
-msgstr ""
+msgstr "// Use the .entry() method to insert a value if nothing is found.\n"
 
 #: src/std-types/hashmap.md
 msgid "\"{page_counts:#?}\""
@@ -7005,7 +7070,7 @@ msgstr "\"هری پاتر و سنگ جادو\""
 
 #: src/std-types/hashmap.md
 msgid "\"The Hunger Games\""
-msgstr ""
+msgstr "\"The Hunger Games\""
 
 #: src/std-types/hashmap.md
 msgid "Unlike `vec!`, there is unfortunately no standard `hashmap!` macro."
@@ -7094,25 +7159,30 @@ msgstr ""
 "تعداد جستجوهای هش مورد نیاز برای پیاده‌سازی متد `count` را به نصف کاهش دهید."
 
 #: src/std-types/exercise.md src/std-types/solution.md
+#, fuzzy
 msgid ""
 "/// Counter counts the number of times each value of type T has been seen.\n"
 msgstr ""
+"/// Counter counts the number of times each value of type T has been seen.\n"
 
 #: src/std-types/exercise.md src/std-types/solution.md
+#, fuzzy
 msgid "/// Create a new Counter.\n"
-msgstr ""
+msgstr "/// Create a new Counter.\n"
 
 #: src/std-types/exercise.md src/std-types/solution.md
+#, fuzzy
 msgid "/// Count an occurrence of the given value.\n"
-msgstr ""
+msgstr "/// Count an occurrence of the given value.\n"
 
 #: src/std-types/exercise.md src/std-types/solution.md
+#, fuzzy
 msgid "/// Return the number of times the given value has been seen.\n"
-msgstr ""
+msgstr "/// Return the number of times the given value has been seen.\n"
 
 #: src/std-types/exercise.md src/std-types/solution.md
 msgid "\"saw {} values equal to {}\""
-msgstr ""
+msgstr "\"مقادیر {} برابر با {} را دیده‌شده\""
 
 #: src/std-types/exercise.md src/std-types/solution.md
 msgid "\"apple\""
@@ -7470,8 +7540,9 @@ msgid "\"{default_struct:#?}\""
 msgstr "\"{default_struct:#?}\""
 
 #: src/std-traits/default.md
+#, fuzzy
 msgid "\"Y is set!\""
-msgstr "\"Y is set!\""
+msgstr "\" مقدار Y  وارد شده است!\""
 
 #: src/std-traits/default.md
 msgid "\"{almost_default_struct:#?}\""
@@ -7556,9 +7627,8 @@ msgid "\"add_3\""
 msgstr "\"add_3: {}\""
 
 #: src/std-traits/closures.md
-#, fuzzy
 msgid "\"accumulate\""
-msgstr "\"accumulate: {}\""
+msgstr "\"تجمیع: {}\""
 
 #: src/std-traits/closures.md
 #, fuzzy
@@ -8045,6 +8115,26 @@ msgid ""
 "`- - - - - - - - - - - - - -'\n"
 "```"
 msgstr ""
+"```bob\n"
+" Stack                             Heap\n"
+".- - - - - - - - - - - - - -.     .- - - - - - - - - - - - - - - - - - -.\n"
+":                           :     :                                     :\n"
+":    s1 \"(inaccessible)\"    :     :                                     :\n"
+":   +-----------+-------+   :     :   +----+----+----+----+----+----+   :\n"
+":   | ptr       |   o---+---+--+--+-->| H  | e  | l  | l  | o  | !  |   :\n"
+":   | len       |     6 |   :  |  :   +----+----+----+----+----+----+   :\n"
+":   | capacity  |     6 |   :  |  :                                     :\n"
+":   +-----------+-------+   :  |  :                                     :\n"
+":                           :  |  `- - - - - - - - - - - - - - - - - - -'\n"
+":    s2                     :  |\n"
+":   +-----------+-------+   :  |\n"
+":   | ptr       |   o---+---+--'\n"
+":   | len       |     6 |   :\n"
+":   | capacity  |     6 |   :\n"
+":   +-----------+-------+   :\n"
+":                           :\n"
+"`- - - - - - - - - - - - - -'\n"
+"```"
 
 #: src/memory-management/move.md
 msgid ""
@@ -8470,51 +8560,61 @@ msgid "Fill in the missing pieces."
 msgstr "جا‌های خالی را پر کنید."
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
+#, fuzzy
 msgid "/// A representation of a software package.\n"
-msgstr ""
+msgstr "/// A representation of a software package.\n"
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
+#, fuzzy
 msgid ""
 "/// Return a representation of this package as a dependency, for use in\n"
 "    /// building other packages.\n"
 msgstr ""
+"/// Return a representation of this package as a dependency, for use in\n"
+"    /// building other packages.\n"
 
 #: src/memory-management/exercise.md
 msgid "\"1\""
-msgstr ""
+msgstr "\"1\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
+#, fuzzy
 msgid ""
 "/// A builder for a Package. Use `build()` to create the `Package` itself.\n"
 msgstr ""
+"/// A builder for a Package. Use `build()` to create the `Package` itself.\n"
 
 #: src/memory-management/exercise.md
 msgid "\"2\""
 msgstr "\"2\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
+#, fuzzy
 msgid "/// Set the package version.\n"
-msgstr ""
+msgstr "/// Set the package version.\n"
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
+#, fuzzy
 msgid "/// Set the package authors.\n"
-msgstr ""
+msgstr "/// Set the package authors.\n"
 
 #: src/memory-management/exercise.md
 msgid "\"3\""
 msgstr "\"3\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
+#, fuzzy
 msgid "/// Add an additional dependency.\n"
-msgstr ""
+msgstr "/// Add an additional dependency.\n"
 
 #: src/memory-management/exercise.md
 msgid "\"4\""
 msgstr "\"4\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
+#, fuzzy
 msgid "/// Set the language. If not set, language defaults to None.\n"
-msgstr ""
+msgstr "/// Set the language. If not set, language defaults to None.\n"
 
 #: src/memory-management/exercise.md
 msgid "\"5\""
@@ -8526,7 +8626,7 @@ msgstr "\"base64: {base64:?}\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
 msgid "\"0.13\""
-msgstr ""
+msgstr "\"0.13\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
 msgid "\"base64: {base64:?}\""
@@ -8538,7 +8638,7 @@ msgstr "\"log\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
 msgid "\"0.4\""
-msgstr ""
+msgstr "\"0.4\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
 msgid "\"log: {log:?}\""
@@ -8546,7 +8646,7 @@ msgstr "\"log: {log:?}\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
 msgid "\"serde\""
-msgstr ""
+msgstr "\"serde\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
 msgid "\"djmitche\""
@@ -8558,11 +8658,11 @@ msgstr "\"4.0\""
 
 #: src/memory-management/exercise.md src/memory-management/solution.md
 msgid "\"serde: {serde:?}\""
-msgstr ""
+msgstr "\"serde: {serde:?}\""
 
 #: src/memory-management/solution.md
 msgid "\"0.1\""
-msgstr ""
+msgstr "\"0.1\""
 
 #: src/smart-pointers.md
 msgid "Box<T>"
@@ -8604,12 +8704,14 @@ msgstr ""
 "`Box` دارند:"
 
 #: src/smart-pointers/box.md
+#, fuzzy
 msgid "/// A non-empty list: first element and the rest of the list.\n"
-msgstr ""
+msgstr "/// A non-empty list: first element and the rest of the list.\n"
 
 #: src/smart-pointers/box.md
+#, fuzzy
 msgid "/// An empty list.\n"
-msgstr ""
+msgstr "/// An empty list.\n"
 
 #: src/smart-pointers/box.md
 msgid "\"{list:?}\""
@@ -8636,6 +8738,24 @@ msgid ""
 "- - - - -'\n"
 "```"
 msgstr ""
+"```bob\n"
+" Stack                           Heap\n"
+".- - - - - - - - - - - - - - .     .- - - - - - - - - - - - - - - - - - - - "
+"- - - - -.\n"
+":                            :     :                                                 :\n"
+":    "
+"list                    :     :                                                 :\n"
+":   +---------+----+----+    :     :    +---------+----+----+    +------+----"
+"+----+  :\n"
+":   | Element | 1  | o--+----+-----+--->| Element | 2  | o--+--->| Nil  | // "
+"| // |  :\n"
+":   +---------+----+----+    :     :    +---------+----+----+    +------+----"
+"+----+  :\n"
+":                            :     :                                                 :\n"
+":                            :     :                                                 :\n"
+"'- - - - - - - - - - - - - - '     '- - - - - - - - - - - - - - - - - - - - "
+"- - - - -'\n"
+"```"
 
 #: src/smart-pointers/box.md
 msgid ""
@@ -8897,6 +9017,62 @@ msgid ""
 "- -'\n"
 "```"
 msgstr ""
+"```bob\n"
+" Stack                             Heap\n"
+".- - - - - - - - - - - - - -.     .- - - - - - - - - - - - - - - - - - - - - "
+"- -.\n"
+":                           :     :                                             :\n"
+":    \"pets: Vec<dyn Pet>\"   :     :   \"data: Cat\"         +----+----+----"
+"+----+ :\n"
+":   +-----------+-------+   :     :  +-------+-------+    | F  | i  | d  | "
+"o  | :\n"
+":   | ptr       |   o---+---+--.  :  | lives |     9 |    +----+----+----"
+"+----+ :\n"
+":   | len       |     2 |   :  |  :  +-------+-------+      "
+"^                   :\n"
+":   | capacity  |     2 |   :  |  :       ^                 "
+"|                   :\n"
+":   +-----------+-------+   :  |  :       |                 "
+"'-------.           :\n"
+":                           :  |  :       |               data:"
+"\"Dog\"|           :\n"
+":                           :  |  :       |              +-------+--|-------"
+"+   :\n"
+"`- - - - - - - - - - - - - -'  |  :   +---|-+-----+      | name  |  o, 4, 4 "
+"|   :\n"
+"                               `--+-->| o o | o o-|----->| age   |        5 "
+"|   :\n"
+"                                  :   +-|---+-|---+      +-------+----------"
+"+   :\n"
+"                                  :     |     "
+"|                                 :\n"
+"                                  `- - -| - - |- - - - - - - - - - - - - - - "
+"- -'\n"
+"                                        |     |\n"
+"                                        |     |                      "
+"\"Program text\"\n"
+"                                  .- - -| - - |- - - - - - - - - - - - - - - "
+"- -.\n"
+"                                  :     |     |       "
+"vtable                    :\n"
+"                                  :     |     |      +----------------------"
+"+   :\n"
+"                                  :     |     `----->| \"<Dog as Pet>::"
+"talk\" |   :\n"
+"                                  :     |            +----------------------"
+"+   :\n"
+"                                  :     |             "
+"vtable                    :\n"
+"                                  :     |            +----------------------"
+"+   :\n"
+"                                  :     '----------->| \"<Cat as Pet>::"
+"talk\" |   :\n"
+"                                  :                  +----------------------"
+"+   :\n"
+"                                  :                                             :\n"
+"                                  '- - - - - - - - - - - - - - - - - - - - - "
+"- -'\n"
+"```"
 
 #: src/smart-pointers/trait-objects.md
 msgid ""
@@ -8973,27 +9149,34 @@ msgstr ""
 "مقادیر را به ترتیب (in-order) برگرداند."
 
 #: src/smart-pointers/exercise.md src/smart-pointers/solution.md
+#, fuzzy
 msgid "/// A node in the binary tree.\n"
-msgstr ""
+msgstr "/// A node in the binary tree.\n"
 
 #: src/smart-pointers/exercise.md src/smart-pointers/solution.md
+#, fuzzy
 msgid "/// A possibly-empty subtree.\n"
-msgstr ""
+msgstr "/// A possibly-empty subtree.\n"
 
 #: src/smart-pointers/exercise.md src/smart-pointers/solution.md
+#, fuzzy
 msgid ""
 "/// A container storing a set of values, using a binary tree.\n"
 "///\n"
 "/// If the same value is added multiple times, it is only stored once.\n"
 msgstr ""
+"/// A container storing a set of values, using a binary tree.\n"
+"///\n"
+"/// If the same value is added multiple times, it is only stored once.\n"
 
 #: src/smart-pointers/exercise.md
 msgid "// Implement `new`, `insert`, `len`, and `has` for `Subtree`.\n"
-msgstr ""
+msgstr "// Implement `new`, `insert`, `len`, and `has` for `Subtree`.\n"
 
 #: src/smart-pointers/exercise.md src/smart-pointers/solution.md
+#, fuzzy
 msgid "// not a unique item\n"
-msgstr ""
+msgstr "// not a unique item\n"
 
 #: src/smart-pointers/solution.md src/android/testing/googletest.md
 msgid "\"bar\""
@@ -9217,8 +9400,9 @@ msgstr ""
 "نمی‌توانند نقض شوند."
 
 #: src/borrowing/interior-mutability.md
+#, fuzzy
 msgid "// Note that `cell` is NOT declared as mutable.\n"
-msgstr ""
+msgstr "// Note that `cell` is NOT declared as mutable.\n"
 
 #: src/borrowing/interior-mutability.md
 msgid "`RefCell`"
@@ -9244,11 +9428,15 @@ msgid ""
 msgstr ""
 
 #: src/borrowing/interior-mutability.md
+#, fuzzy
 msgid ""
 "// This triggers an error at runtime.\n"
 "        // let other = cell.borrow();\n"
 "        // println!(\"{}\", *other);\n"
 msgstr ""
+"// This triggers an error at runtime.\n"
+"        // let other = cell.borrow();\n"
+"        // println!(\"{}\", *other);\n"
 
 #: src/borrowing/interior-mutability.md
 msgid "\"{cell:?}\""
@@ -9337,7 +9525,7 @@ msgstr ""
 msgid ""
 "\"Update a user's statistics based on measurements from a visit to the "
 "doctor\""
-msgstr ""
+msgstr "\"به‌روزرسانی آمار یک کاربر بر اساس اندازه‌گیری معبار بازدید از پزشک\""
 
 #: src/borrowing/exercise.md src/borrowing/solution.md
 #: src/android/build-rules/library.md
@@ -9388,8 +9576,9 @@ msgstr ""
 "پیچیده‌تر می‌شوند."
 
 #: src/lifetimes/lifetime-annotations.md
+#, fuzzy
 msgid "// What is the lifetime of p3?\n"
-msgstr ""
+msgstr "// What is the lifetime of p3?\n"
 
 #: src/lifetimes/lifetime-annotations.md
 msgid "\"p3: {p3:?}\""
@@ -9511,7 +9700,7 @@ msgstr ""
 
 #: src/lifetimes/struct-lifetimes.md
 msgid "Lifetimes in Data Structures"
-msgstr "طول عمر در ساختمان داده"
+msgstr "Lifetimes in Data Structures"
 
 #: src/lifetimes/struct-lifetimes.md
 msgid ""
@@ -9525,11 +9714,12 @@ msgstr "\"Bye {text}!\""
 
 #: src/lifetimes/struct-lifetimes.md
 msgid "\"The quick brown fox jumps over the lazy dog.\""
-msgstr ""
+msgstr "\"The quick brown fox jumps over the lazy dog.\""
 
 #: src/lifetimes/struct-lifetimes.md
+#, fuzzy
 msgid "// erase(text);\n"
-msgstr ""
+msgstr "// erase(text);\n"
 
 #: src/lifetimes/struct-lifetimes.md
 msgid "\"{fox:?}\""
@@ -9644,14 +9834,17 @@ msgstr ""
 "`Person` و `PhoneNumber` پیاده‌سازی کنید."
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "/// A wire type as seen on the wire.\n"
-msgstr ""
+msgstr "/// A wire type as seen on the wire.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "/// The Varint WireType indicates the value is a single VARINT.\n"
-msgstr ""
+msgstr "/// The Varint WireType indicates the value is a single VARINT.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid ""
 "/// The I64 WireType indicates that the value is precisely 8 bytes in\n"
 "    /// little-endian order containing a 64-bit signed integer or double "
@@ -9661,38 +9854,56 @@ msgid ""
 "a\n"
 "    /// VARINT followed by exactly that number of bytes.\n"
 msgstr ""
+"/// The I64 WireType indicates that the value is precisely 8 bytes in\n"
+"    /// little-endian order containing a 64-bit signed integer or double "
+"type.\n"
+"    //I64,  -- not needed for this exercise\n"
+"    /// The Len WireType indicates that the value is a length represented as "
+"a\n"
+"    /// VARINT followed by exactly that number of bytes.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid ""
 "// The I32 WireType indicates that the value is precisely 4 bytes in\n"
 "    // little-endian order containing a 32-bit signed integer or float "
 "type.\n"
 "    //I32,  -- not needed for this exercise\n"
 msgstr ""
+"// The I32 WireType indicates that the value is precisely 4 bytes in\n"
+"    // little-endian order containing a 32-bit signed integer or float "
+"type.\n"
+"    //I32,  -- not needed for this exercise\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "/// A field's value, typed based on the wire type.\n"
-msgstr ""
+msgstr "/// A field's value, typed based on the wire type.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "//I64(i64),  -- not needed for this exercise\n"
-msgstr ""
+msgstr "//I64(i64),  -- not needed for this exercise\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "//I32(i32),  -- not needed for this exercise\n"
-msgstr ""
+msgstr "//I32(i32),  -- not needed for this exercise\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "/// A field, containing the field number and its value.\n"
-msgstr ""
+msgstr "/// A field, containing the field number and its value.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "//1 => WireType::I64,  -- not needed for this exercise\n"
-msgstr ""
+msgstr "//1 => WireType::I64,  -- not needed for this exercise\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "//5 => WireType::I32,  -- not needed for this exercise\n"
-msgstr ""
+msgstr "//5 => WireType::I32,  -- not needed for this exercise\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
 msgid "\"Invalid wire type: {value}\""
@@ -9703,9 +9914,8 @@ msgid "\"Expected string to be a `Len` field\""
 msgstr "\"انتظار می‌رود که رشته یک فیلد Len باشد\""
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
-#, fuzzy
 msgid "\"Invalid string\""
-msgstr "String"
+msgstr "\"نامعتبر string\""
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
 msgid "\"Expected bytes to be a `Len` field\""
@@ -9716,35 +9926,43 @@ msgid "\"Expected `u64` to be a `Varint` field\""
 msgstr "\"انتظار می‌رود `u64` یک فیلد `Varint` باشد\""
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid ""
 "/// Parse a VARINT, returning the parsed value and the remaining bytes.\n"
 msgstr ""
+"/// Parse a VARINT, returning the parsed value and the remaining bytes.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
 msgid "\"Not enough bytes for varint\""
 msgstr "\"بایت کافی برای varint نیست\""
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid ""
 "// This is the last byte of the VARINT, so convert it to\n"
 "            // a u64 and return it.\n"
 msgstr ""
+"// This is the last byte of the VARINT, so convert it to\n"
+"            // a u64 and return it.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "// More than 7 bytes is invalid.\n"
-msgstr ""
+msgstr "// More than 7 bytes is invalid.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
 msgid "\"Too many bytes for varint\""
-msgstr ""
+msgstr "\"تعداد بایت‌های زیادی برای varint\""
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "/// Convert a tag into a field number and a WireType.\n"
-msgstr ""
+msgstr "/// Convert a tag into a field number and a WireType.\n"
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid "/// Parse a field, returning the remaining bytes\n"
-msgstr ""
+msgstr "/// Parse a field, returning the remaining bytes\n"
 
 #: src/lifetimes/exercise.md
 msgid ""
@@ -9758,6 +9976,7 @@ msgid "\"Return the field, and any un-consumed bytes.\""
 msgstr "\"فیلد و هر بایت مصرف نشده را برگردانید.\""
 
 #: src/lifetimes/exercise.md src/lifetimes/solution.md
+#, fuzzy
 msgid ""
 "/// Parse a message in the given data, calling `T::add_field` for each field "
 "in\n"
@@ -9765,10 +9984,16 @@ msgid ""
 "///\n"
 "/// The entire input is consumed.\n"
 msgstr ""
+"/// Parse a message in the given data, calling `T::add_field` for each field "
+"in\n"
+"/// the message.\n"
+"///\n"
+"/// The entire input is consumed.\n"
 
 #: src/lifetimes/exercise.md
+#, fuzzy
 msgid "// TODO: Implement ProtoMessage for Person and PhoneNumber.\n"
-msgstr ""
+msgstr "// TODO: Implement ProtoMessage for Person and PhoneNumber.\n"
 
 #: src/lifetimes/exercise.md
 msgid ""
@@ -9791,16 +10016,17 @@ msgstr "\"استفاده از len در `usize` معتبر نیست\""
 
 #: src/lifetimes/solution.md
 msgid "\"Unexpected EOF\""
-msgstr ""
+msgstr "\"EOF غیر منتظره\""
 
 #: src/lifetimes/solution.md
+#, fuzzy
 msgid "// skip everything else\n"
-msgstr ""
+msgstr "// skip everything else\n"
 
 #: src/lifetimes/solution.md src/modules/exercise.md src/modules/solution.md
 #: src/testing/unit-tests.md src/testing/solution.md
 msgid "\"\""
-msgstr ""
+msgstr "\".\""
 
 #: src/lifetimes/solution.md
 #, fuzzy
@@ -9962,6 +10188,9 @@ msgid ""
 "lets you build a collection from an [`Iterator`](https://doc.rust-lang.org/"
 "std/iter/trait.Iterator.html)."
 msgstr ""
+"گزینه [`FromIterator`](https://doc.rust-lang.org/std/iter/trait.FromIterator."
+"html) به شما امکان می دهد از یک [`Iterator`](https://doc.rust-lang .org/std/"
+"iter/trait.Iterator.html) یک مجموعه یا collection  بسازید."
 
 #: src/iterators/fromiterator.md
 #, fuzzy
@@ -10011,6 +10240,7 @@ msgid ""
 msgstr ""
 
 #: src/iterators/exercise.md src/iterators/solution.md
+#, fuzzy
 msgid ""
 "/// Calculate the differences between elements of `values` offset by "
 "`offset`,\n"
@@ -10018,6 +10248,11 @@ msgid ""
 "///\n"
 "/// Element `n` of the result is `values[(n+offset)%len] - values[n]`.\n"
 msgstr ""
+"/// Calculate the differences between elements of `values` offset by "
+"`offset`,\n"
+"/// wrapping around from the end of `values` to the beginning.\n"
+"///\n"
+"/// Element `n` of the result is `values[(n+offset)%len] - values[n]`.\n"
 
 #: src/modules.md src/modules/paths.md
 msgid "use, super, self"
@@ -10087,23 +10322,30 @@ msgid ""
 msgstr ""
 
 #: src/modules/filesystem.md
+#, fuzzy
 msgid ""
 "//! This module implements the garden, including a highly performant "
 "germination\n"
 "//! implementation.\n"
 msgstr ""
+"//! This module implements the garden, including a highly performant "
+"germination\n"
+"//! implementation.\n"
 
 #: src/modules/filesystem.md
+#, fuzzy
 msgid "// Re-export types from this module.\n"
-msgstr ""
+msgstr "// Re-export types from this module.\n"
 
 #: src/modules/filesystem.md
+#, fuzzy
 msgid "/// Sow the given seed packets.\n"
-msgstr ""
+msgstr "/// Sow the given seed packets.\n"
 
 #: src/modules/filesystem.md
+#, fuzzy
 msgid "/// Harvest the produce in the garden that is ready.\n"
-msgstr ""
+msgstr "/// Harvest the produce in the garden that is ready.\n"
 
 #: src/modules/filesystem.md
 msgid ""
@@ -10129,7 +10371,7 @@ msgstr ""
 
 #: src/modules/filesystem.md
 msgid "\"some/path.rs\""
-msgstr ""
+msgstr "\"some/path.rs\""
 
 #: src/modules/filesystem.md
 msgid ""
@@ -10221,7 +10463,7 @@ msgstr ""
 
 #: src/modules/paths.md
 msgid "`foo` or `self::foo` refers to `foo` in the current module,"
-msgstr ""
+msgstr "در واقع `foo` یا `self::foo` به `foo` در ماژول فعلی اشاره دارد،"
 
 #: src/modules/paths.md
 msgid "`super::foo` refers to `foo` in the parent module."
@@ -10306,31 +10548,39 @@ msgid "Here's the single-module implementation of the GUI library:"
 msgstr ""
 
 #: src/modules/exercise.md src/modules/solution.md
+#, fuzzy
 msgid "/// Natural width of `self`.\n"
-msgstr ""
+msgstr "/// Natural width of `self`.\n"
 
 #: src/modules/exercise.md src/modules/solution.md
+#, fuzzy
 msgid "/// Draw the widget into a buffer.\n"
-msgstr ""
+msgstr "/// Draw the widget into a buffer.\n"
 
 #: src/modules/exercise.md src/modules/solution.md
+#, fuzzy
 msgid "/// Draw the widget on standard output.\n"
-msgstr ""
+msgstr "/// Draw the widget on standard output.\n"
 
 #: src/modules/exercise.md src/modules/solution.md
 msgid "\"{buffer}\""
 msgstr "\"{buffer}\""
 
 #: src/modules/exercise.md
+#, fuzzy
 msgid "// Add 4 paddings for borders\n"
-msgstr ""
+msgstr "// Add 4 paddings for borders\n"
 
 #: src/modules/exercise.md
+#, fuzzy
 msgid ""
 "// TODO: Change draw_into to return Result<(), std::fmt::Error>. Then use "
 "the\n"
 "        // ?-operator here instead of .unwrap().\n"
 msgstr ""
+"// TODO: Change draw_into to return Result<(), std::fmt::Error>. Then use "
+"the\n"
+"        // ?-operator here instead of .unwrap().\n"
 
 #: src/modules/exercise.md src/modules/solution.md
 msgid "\"+-{:-<inner_width$}-+\""
@@ -10349,8 +10599,9 @@ msgid "\"| {:inner_width$} |\""
 msgstr "\"| {:inner_width$} |\""
 
 #: src/modules/exercise.md src/modules/solution.md
+#, fuzzy
 msgid "// add a bit of padding\n"
-msgstr ""
+msgstr "// add a bit of padding\n"
 
 #: src/modules/exercise.md src/modules/solution.md
 msgid "\"+{:-<width$}+\""
@@ -10366,7 +10617,7 @@ msgstr "\"Rust GUI Demo 1.23\""
 
 #: src/modules/exercise.md src/modules/solution.md
 msgid "\"This is a small text GUI demo.\""
-msgstr ""
+msgstr "\"این یک نسخه نمایشی GUI برای متنی کوچک است.\""
 
 #: src/modules/exercise.md src/modules/solution.md
 msgid "\"Click me!\""
@@ -10381,68 +10632,79 @@ msgstr ""
 
 #: src/modules/solution.md
 msgid "// ---- src/widgets.rs ----\n"
-msgstr ""
+msgstr "// ---- src/widgets.rs ----\n"
 
 #: src/modules/solution.md
 msgid "// ---- src/widgets/label.rs ----\n"
-msgstr ""
+msgstr "// ---- src/widgets/label.rs ----\n"
 
 #: src/modules/solution.md
+#, fuzzy
 msgid "// ANCHOR_END: Label-width\n"
-msgstr ""
+msgstr "// ANCHOR_END: Label-width\n"
 
 #: src/modules/solution.md
 msgid "// ANCHOR: Label-draw_into\n"
-msgstr ""
+msgstr "// ANCHOR: Label-draw_into\n"
 
 #: src/modules/solution.md
+#, fuzzy
 msgid "// ANCHOR_END: Label-draw_into\n"
-msgstr ""
+msgstr "// ANCHOR_END: Label-draw_into\n"
 
 #: src/modules/solution.md
 msgid "// ---- src/widgets/button.rs ----\n"
-msgstr ""
+msgstr "// ---- src/widgets/button.rs ----\n"
 
 #: src/modules/solution.md
+#, fuzzy
 msgid "// ANCHOR_END: Button-width\n"
-msgstr ""
+msgstr "// ANCHOR_END: Button-width\n"
 
 #: src/modules/solution.md
 msgid "// ANCHOR: Button-draw_into\n"
-msgstr ""
+msgstr "// ANCHOR: Button-draw_into\n"
 
 #: src/modules/solution.md
 msgid "// ANCHOR_END: Button-draw_into\n"
-msgstr ""
+msgstr "// ANCHOR_END: Button-draw_into\n"
 
 #: src/modules/solution.md
 msgid "// ---- src/widgets/window.rs ----\n"
-msgstr ""
+msgstr "// ---- src/widgets/window.rs ----\n"
 
 #: src/modules/solution.md
+#, fuzzy
 msgid ""
 "// ANCHOR_END: Window-width\n"
 "        // Add 4 paddings for borders\n"
 msgstr ""
+"// ANCHOR_END: Window-width\n"
+"        // Add 4 paddings for borders\n"
 
 #: src/modules/solution.md
 msgid "// ANCHOR: Window-draw_into\n"
-msgstr ""
+msgstr "// ANCHOR: Window-draw_into\n"
 
 #: src/modules/solution.md
+#, fuzzy
 msgid "// ANCHOR_END: Window-draw_into\n"
-msgstr ""
+msgstr "// ANCHOR_END: Window-draw_into\n"
 
 #: src/modules/solution.md
+#, fuzzy
 msgid ""
 "// TODO: after learning about error handling, you can change\n"
 "        // draw_into to return Result<(), std::fmt::Error>. Then use\n"
 "        // the ?-operator here instead of .unwrap().\n"
 msgstr ""
+"// TODO: after learning about error handling, you can change\n"
+"        // draw_into to return Result<(), std::fmt::Error>. Then use\n"
+"        // the ?-operator here instead of .unwrap().\n"
 
 #: src/modules/solution.md
 msgid "// ---- src/main.rs ----\n"
-msgstr ""
+msgstr "// ---- src/main.rs ----\n"
 
 #: src/testing/unit-tests.md
 msgid "Unit Tests"
@@ -10468,9 +10730,8 @@ msgid ""
 msgstr ""
 
 #: src/testing/unit-tests.md
-#, fuzzy
 msgid "\"Hello World\""
-msgstr "سلام دنیا"
+msgstr "\"سلام دنیا!\""
 
 #: src/testing/unit-tests.md
 msgid "This lets you unit test private helpers."
@@ -10497,8 +10758,9 @@ msgid "Create a `.rs` file under `tests/`:"
 msgstr ""
 
 #: src/testing/other.md
+#, fuzzy
 msgid "// tests/my_library.rs\n"
-msgstr ""
+msgstr "// tests/my_library.rs\n"
 
 #: src/testing/other.md
 msgid "These tests only have access to the public API of your crate."
@@ -10513,6 +10775,7 @@ msgid "Rust has built-in support for documentation tests:"
 msgstr ""
 
 #: src/testing/other.md
+#, fuzzy
 msgid ""
 "/// Shortens a string to the given length.\n"
 "///\n"
@@ -10522,6 +10785,13 @@ msgid ""
 "/// assert_eq!(shorten_string(\"Hello World\", 20), \"Hello World\");\n"
 "/// ```\n"
 msgstr ""
+"/// Shortens a string to the given length.\n"
+"///\n"
+"/// ```\n"
+"/// # use playground::shorten_string;\n"
+"/// assert_eq!(shorten_string(\"Hello World\", 5), \"Hello\");\n"
+"/// assert_eq!(shorten_string(\"Hello World\", 20), \"Hello World\");\n"
+"/// ```\n"
 
 #: src/testing/other.md
 msgid "Code blocks in `///` comments are automatically seen as Rust code."
@@ -10553,6 +10823,8 @@ msgstr ""
 #: src/testing/lints.md
 msgid "\"X probably fits in a u16, right? {}\""
 msgstr ""
+"\"\"X احتمالاً در یک u16 مناسب است، درست است؟ {}\"X احتمالاً در یک u16 مناسب "
+"است، درست است؟ {}\""
 
 #: src/testing/lints.md
 msgid ""
@@ -10662,12 +10934,14 @@ msgid "\"8273 1232 7352 0569\""
 msgstr "\"8273 1232 7352 0569\""
 
 #: src/testing/solution.md
+#, fuzzy
 msgid "// This is the buggy version that appears in the problem.\n"
-msgstr ""
+msgstr "// This is the buggy version that appears in the problem.\n"
 
 #: src/testing/solution.md
+#, fuzzy
 msgid "// This is the solution and passes all of the tests below.\n"
-msgstr ""
+msgstr "// This is the solution and passes all of the tests below.\n"
 
 #: src/testing/solution.md
 msgid "\"1234 5678 1234 5670\""
@@ -10679,7 +10953,7 @@ msgstr "\"آیا {cc_number} یک شماره کارت اعتباری معتبر
 
 #: src/testing/solution.md
 msgid "\"yes\""
-msgstr ""
+msgstr "\"بله\""
 
 #: src/testing/solution.md
 msgid "\"no\""
@@ -10691,23 +10965,23 @@ msgstr "\"foo 0 0\""
 
 #: src/testing/solution.md
 msgid "\" \""
-msgstr ""
+msgstr "\" \""
 
 #: src/testing/solution.md
 msgid "\"  \""
-msgstr ""
+msgstr "\"  \""
 
 #: src/testing/solution.md
 msgid "\"    \""
-msgstr ""
+msgstr "\"    \""
 
 #: src/testing/solution.md
 msgid "\"0\""
-msgstr ""
+msgstr "\"0\""
 
 #: src/testing/solution.md
 msgid "\" 0 0 \""
-msgstr ""
+msgstr "\" 0 0 \""
 
 #: src/welcome-day-4-afternoon.md
 #, fuzzy
@@ -10741,7 +11015,7 @@ msgstr ""
 
 #: src/error-handling/panics.md
 msgid "\"v[100]: {}\""
-msgstr ""
+msgstr "\"v[100]: {}\""
 
 #: src/error-handling/panics.md
 msgid "Panics are for unrecoverable and unexpected errors."
@@ -10898,8 +11172,9 @@ msgid "We can use this to simplify our error handling code:"
 msgstr ""
 
 #: src/error-handling/try.md
+#, fuzzy
 msgid "//fs::write(\"config.dat\", \"alice\").unwrap();\n"
-msgstr ""
+msgstr "//fs::write(\"config.dat\", \"alice\").unwrap();\n"
 
 #: src/error-handling/try.md src/error-handling/try-conversions.md
 #: src/error-handling/thiserror-and-anyhow.md
@@ -10908,7 +11183,7 @@ msgstr "\"config.dat\""
 
 #: src/error-handling/try.md src/error-handling/try-conversions.md
 msgid "\"username or error: {username:?}\""
-msgstr ""
+msgstr "\"نام‌کاربری یا خطا: {username:?}\""
 
 #: src/error-handling/try.md
 msgid "Simplify the `read_username` function to use `?`."
@@ -10958,8 +11233,9 @@ msgid "\"Found no username in {path}\""
 msgstr "\"در این  {path} نام کاربری یافت نشد\""
 
 #: src/error-handling/try-conversions.md
+#, fuzzy
 msgid "//std::fs::write(\"config.dat\", \"\").unwrap();\n"
-msgstr ""
+msgstr "//std::fs::write(\"config.dat\", \"\").unwrap();\n"
 
 #: src/error-handling/try-conversions.md
 msgid ""
@@ -11073,12 +11349,13 @@ msgid "\"Failed to read\""
 msgstr "\"شکست در خواندن\""
 
 #: src/error-handling/thiserror-and-anyhow.md
+#, fuzzy
 msgid "//fs::write(\"config.dat\", \"\").unwrap();\n"
-msgstr ""
+msgstr "//fs::write(\"config.dat\", \"\").unwrap();\n"
 
 #: src/error-handling/thiserror-and-anyhow.md
 msgid "\"Username: {username}\""
-msgstr ""
+msgstr "\"نام‌کاربری: {username}\""
 
 #: src/error-handling/thiserror-and-anyhow.md
 msgid "\"Error: {err:?}\""
@@ -11152,48 +11429,54 @@ msgid ""
 msgstr ""
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
+#, fuzzy
 msgid "/// An arithmetic operator.\n"
-msgstr ""
+msgstr "/// An arithmetic operator.\n"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
+#, fuzzy
 msgid "/// A token in the expression language.\n"
-msgstr ""
+msgstr "/// A token in the expression language.\n"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
+#, fuzzy
 msgid "/// An expression in the expression language.\n"
-msgstr ""
+msgstr "/// An expression in the expression language.\n"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
+#, fuzzy
 msgid "/// A reference to a variable.\n"
-msgstr ""
+msgstr "/// A reference to a variable.\n"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
+#, fuzzy
 msgid "/// A literal number.\n"
-msgstr ""
+msgstr "/// A literal number.\n"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
+#, fuzzy
 msgid "/// A binary operation.\n"
-msgstr ""
+msgstr "/// A binary operation.\n"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
 msgid "'_'"
-msgstr ""
+msgstr "'_'"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
 msgid "'+'"
-msgstr ""
+msgstr "'+'"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
 msgid "'-'"
-msgstr ""
+msgstr "'-'"
 
 #: src/error-handling/exercise.md
 msgid "\"Unexpected character {c}\""
-msgstr ""
+msgstr "\"کاراکتر غیرمنتظره {c}\""
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
 msgid "\"Unexpected end of input\""
-msgstr ""
+msgstr "\"پایان غیرمنتظره در ورودی\""
 
 #: src/error-handling/exercise.md
 msgid "\"Invalid 32-bit integer'\""
@@ -11201,11 +11484,12 @@ msgstr "\"عدد صحیح 32-bit  نامعتبر\""
 
 #: src/error-handling/exercise.md
 msgid "\"Unexpected token {tok:?}\""
-msgstr ""
+msgstr "\"توکن غیرمنتظره {tok:?}\""
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
+#, fuzzy
 msgid "// Look ahead to parse a binary operation if present.\n"
-msgstr ""
+msgstr "// Look ahead to parse a binary operation if present.\n"
 
 #: src/error-handling/exercise.md src/error-handling/solution.md
 msgid "\"10+foo+20-30\""
@@ -11217,15 +11501,15 @@ msgstr "\"{expr:?}\""
 
 #: src/error-handling/solution.md
 msgid "\"Unexpected character '{0}' in input\""
-msgstr ""
+msgstr "\"کاراکتر غیرمنتظره \"{0}\" در ورودی\""
 
 #: src/error-handling/solution.md
 msgid "\"Tokenizer error: {0}\""
-msgstr ""
+msgstr "\"خطای توکن‌سازی: {0}\""
 
 #: src/error-handling/solution.md
 msgid "\"Unexpected token {0:?}\""
-msgstr ""
+msgstr "\"توکن (token) غیرمنتظره {0:?}\""
 
 #: src/error-handling/solution.md
 msgid "\"Invalid number\""
@@ -11242,12 +11526,15 @@ msgstr ""
 #: src/unsafe-rust/unsafe.md
 msgid "**Safe Rust:** memory safe, no undefined behavior possible."
 msgstr ""
+"در **Safe Rust:** حافظه ایمن یا memory safe، هیچ رفتار تعریف نشده‌ای امکان "
+"پذیر نیست."
 
 #: src/unsafe-rust/unsafe.md
 msgid ""
 "**Unsafe Rust:** can trigger undefined behavior if preconditions are "
 "violated."
 msgstr ""
+"در **Unsafe Rust:** در صورت نقض پیش‌شرط‌ها، می‌تواند باعث رفتار نامشخص شود."
 
 #: src/unsafe-rust/unsafe.md
 msgid ""
@@ -11309,6 +11596,7 @@ msgid "\"careful!\""
 msgstr "\"مراقب باش!\""
 
 #: src/unsafe-rust/dereferencing.md
+#, fuzzy
 msgid ""
 "// SAFETY: r1 and r2 were obtained from references and so are guaranteed to\n"
 "    // be non-null and properly aligned, the objects underlying the "
@@ -11317,20 +11605,24 @@ msgid ""
 "    // block, and they are not accessed either through the references or\n"
 "    // concurrently through any other pointers.\n"
 msgstr ""
+"// SAFETY: r1 and r2 were obtained from references and so are guaranteed to\n"
+"    // be non-null and properly aligned, the objects underlying the "
+"references\n"
+"    // from which they were obtained are live throughout the whole unsafe\n"
+"    // block, and they are not accessed either through the references or\n"
+"    // concurrently through any other pointers.\n"
 
 #: src/unsafe-rust/dereferencing.md
-#, fuzzy
 msgid "\"r1 is: {}\""
-msgstr "\"r1 is: {}\""
+msgstr "\"r1 برابر هست: {}\""
 
 #: src/unsafe-rust/dereferencing.md
 msgid "\"uhoh\""
-msgstr ""
+msgstr "\"اوهو\""
 
 #: src/unsafe-rust/dereferencing.md
-#, fuzzy
 msgid "\"r2 is: {}\""
-msgstr "\"r2 is: {}\""
+msgstr "\"r2 برابر هست: {}\""
 
 #: src/unsafe-rust/dereferencing.md
 msgid ""
@@ -11341,6 +11633,12 @@ msgid ""
 "    println!(\"r3 is: {}\", *r3);\n"
 "    */"
 msgstr ""
+"// NOT SAFE. DO NOT DO THIS.\n"
+"    /*\n"
+"    let r3: &String = unsafe { &*r1 };\n"
+"    drop(s);\n"
+"    println!(\"r3 is: {}\", *r3);\n"
+"    */"
 
 #: src/unsafe-rust/dereferencing.md
 msgid ""
@@ -11395,13 +11693,12 @@ msgid "It is safe to read an immutable static variable:"
 msgstr ""
 
 #: src/unsafe-rust/mutable-static.md
-#, fuzzy
 msgid "\"Hello, world!\""
-msgstr "سلام دنیا"
+msgstr "\"سلام دنیا!\""
 
 #: src/unsafe-rust/mutable-static.md
 msgid "\"HELLO_WORLD: {HELLO_WORLD}\""
-msgstr ""
+msgstr "\"HELLO_WORLD: {HELLO_WORLD}\""
 
 #: src/unsafe-rust/mutable-static.md
 msgid ""
@@ -11410,9 +11707,11 @@ msgid ""
 msgstr ""
 
 #: src/unsafe-rust/mutable-static.md
+#, fuzzy
 msgid ""
 "// SAFETY: There are no other threads which could be accessing `COUNTER`.\n"
 msgstr ""
+"// SAFETY: There are no other threads which could be accessing `COUNTER`.\n"
 
 #: src/unsafe-rust/mutable-static.md
 msgid "\"COUNTER: {COUNTER}\""
@@ -11489,10 +11788,13 @@ msgid "\"🗻∈🌏\""
 msgstr "\"🗻∈🌏\""
 
 #: src/unsafe-rust/unsafe-functions.md
+#, fuzzy
 msgid ""
 "// SAFETY: The indices are in the correct order, within the bounds of the\n"
 "    // string slice, and lie on UTF-8 sequence boundaries.\n"
 msgstr ""
+"// SAFETY: The indices are in the correct order, within the bounds of the\n"
+"    // string slice, and lie on UTF-8 sequence boundaries.\n"
 
 #: src/unsafe-rust/unsafe-functions.md
 msgid "\"emoji: {}\""
@@ -11503,14 +11805,17 @@ msgid "\"char count: {}\""
 msgstr "\"char count: {}\""
 
 #: src/unsafe-rust/unsafe-functions.md
+#, fuzzy
 msgid ""
 "// SAFETY: `abs` doesn't deal with pointers and doesn't have any safety\n"
 "    // requirements.\n"
 msgstr ""
+"// SAFETY: `abs` doesn't deal with pointers and doesn't have any safety\n"
+"    // requirements.\n"
 
 #: src/unsafe-rust/unsafe-functions.md
 msgid "\"Absolute value of -3 according to C: {}\""
-msgstr ""
+msgstr "\"مقدار مطلق ۳- طبق C: {}\""
 
 #: src/unsafe-rust/unsafe-functions.md
 msgid ""
@@ -11519,6 +11824,10 @@ msgid ""
 "    // println!(\"char count: {}\", count_chars(unsafe {\n"
 "    // emojis.get_unchecked(0..3) }));\n"
 msgstr ""
+"// Not upholding the UTF-8 encoding requirement breaks memory safety!\n"
+"    // println!(\"emoji: {}\", unsafe { emojis.get_unchecked(0..3) });\n"
+"    // println!(\"char count: {}\", count_chars(unsafe {\n"
+"    // emojis.get_unchecked(0..3) }));\n"
 
 #: src/unsafe-rust/unsafe-functions.md
 msgid "Writing Unsafe Functions"
@@ -11531,6 +11840,7 @@ msgid ""
 msgstr ""
 
 #: src/unsafe-rust/unsafe-functions.md
+#, fuzzy
 msgid ""
 "/// Swaps the values pointed to by the given pointers.\n"
 "///\n"
@@ -11538,10 +11848,16 @@ msgid ""
 "///\n"
 "/// The pointers must be valid and properly aligned.\n"
 msgstr ""
+"/// Swaps the values pointed to by the given pointers.\n"
+"///\n"
+"/// # Safety\n"
+"///\n"
+"/// The pointers must be valid and properly aligned.\n"
 
 #: src/unsafe-rust/unsafe-functions.md
+#, fuzzy
 msgid "// SAFETY: ...\n"
-msgstr ""
+msgstr "// SAFETY: ...\n"
 
 #: src/unsafe-rust/unsafe-functions.md
 msgid "\"a = {}, b = {}\""
@@ -11594,15 +11910,20 @@ msgid ""
 msgstr ""
 
 #: src/unsafe-rust/unsafe-traits.md
+#, fuzzy
 msgid ""
 "/// ...\n"
 "/// # Safety\n"
 "/// The type must have a defined representation and no padding.\n"
 msgstr ""
+"/// ...\n"
+"/// # Safety\n"
+"/// The type must have a defined representation and no padding.\n"
 
 #: src/unsafe-rust/unsafe-traits.md
+#, fuzzy
 msgid "// SAFETY: `u32` has a defined representation and no padding.\n"
-msgstr ""
+msgstr "// SAFETY: `u32` has a defined representation and no padding.\n"
 
 #: src/unsafe-rust/unsafe-traits.md
 msgid ""
@@ -11637,15 +11958,15 @@ msgstr ""
 
 #: src/unsafe-rust/exercise.md
 msgid "[`opendir(3)`](https://man7.org/linux/man-pages/man3/opendir.3.html)"
-msgstr ""
+msgstr "[`opendir(3)`](https://man7.org/linux/man-pages/man3/opendir.3.html)"
 
 #: src/unsafe-rust/exercise.md
 msgid "[`readdir(3)`](https://man7.org/linux/man-pages/man3/readdir.3.html)"
-msgstr ""
+msgstr "[`readdir(3)`](https://man7.org/linux/man-pages/man3/readdir.3.html)"
 
 #: src/unsafe-rust/exercise.md
 msgid "[`closedir(3)`](https://man7.org/linux/man-pages/man3/closedir.3.html)"
-msgstr ""
+msgstr "[`closedir(3)`](https://man7.org/linux/man-pages/man3/closedir.3.html)"
 
 #: src/unsafe-rust/exercise.md
 msgid ""
@@ -11667,6 +11988,8 @@ msgid ""
 "[`str`](https://doc.rust-lang.org/std/primitive.str.html) and [`String`]"
 "(https://doc.rust-lang.org/std/string/struct.String.html)"
 msgstr ""
+"[`str`](https://doc.rust-lang.org/std/primitive.str.html) و [`String`]"
+"(https://doc.rust-lang.org/std/string/struct.String.html)"
 
 #: src/unsafe-rust/exercise.md
 msgid "UTF-8"
@@ -11681,6 +12004,8 @@ msgid ""
 "[`CStr`](https://doc.rust-lang.org/std/ffi/struct.CStr.html) and [`CString`]"
 "(https://doc.rust-lang.org/std/ffi/struct.CString.html)"
 msgstr ""
+"[`CStr`](https://doc.rust-lang.org/std/ffi/struct.CStr.html) and [`CString`]"
+"(https://doc.rust-lang.org/std/ffi/struct.CString.html)"
 
 #: src/unsafe-rust/exercise.md
 msgid "NUL-terminated"
@@ -11695,6 +12020,8 @@ msgid ""
 "[`OsStr`](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) and "
 "[`OsString`](https://doc.rust-lang.org/std/ffi/struct.OsString.html)"
 msgstr ""
+"[`OsStr`](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) و [`OsString`]"
+"(https://doc.rust-lang.org/std/ffi/struct.OsString.html)"
 
 #: src/unsafe-rust/exercise.md
 msgid "OS-specific"
@@ -11723,6 +12050,8 @@ msgid ""
 "`*const i8` to `&CStr`: you need something which can find the trailing `\\0` "
 "character,"
 msgstr ""
+"از `*const i8` به `&CStr`: به چیزی نیاز دارید که بتواند کاراکتر `\\0` را "
+"پیدا کند."
 
 #: src/unsafe-rust/exercise.md
 msgid ""
@@ -11735,6 +12064,9 @@ msgid ""
 "`&[u8]` to `&OsStr`: `&OsStr` is a step towards `OsString`, use [`OsStrExt`]"
 "(https://doc.rust-lang.org/std/os/unix/ffi/trait.OsStrExt.html) to create it,"
 msgstr ""
+"از `&[u8]` به `&OsStr`: `&OsStr` گامی به سوی `OsString` است، از [`OsStrExt`]"
+"(https://doc.rust-lang.org/std/os/unix/ffi/trait.OsStrExt.html) برای ایجاد "
+"آن استفاده کنید،"
 
 #: src/unsafe-rust/exercise.md
 msgid ""
@@ -11756,26 +12088,32 @@ msgstr ""
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
 msgid "\"macos\""
-msgstr ""
+msgstr "\"macos\""
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
+#, fuzzy
 msgid "// Opaque type. See https://doc.rust-lang.org/nomicon/ffi.html.\n"
-msgstr ""
+msgstr "// Opaque type. See https://doc.rust-lang.org/nomicon/ffi.html.\n"
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
+#, fuzzy
 msgid ""
 "// Layout according to the Linux man page for readdir(3), where ino_t and\n"
 "    // off_t are resolved according to the definitions in\n"
 "    // /usr/include/x86_64-linux-gnu/{sys/types.h, bits/typesizes.h}.\n"
 msgstr ""
+"// Layout according to the Linux man page for readdir(3), where ino_t and\n"
+"    // off_t are resolved according to the definitions in\n"
+"    // /usr/include/x86_64-linux-gnu/{sys/types.h, bits/typesizes.h}.\n"
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
+#, fuzzy
 msgid "// Layout according to the macOS man page for dir(5).\n"
-msgstr ""
+msgstr "// Layout according to the macOS man page for dir(5).\n"
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
 msgid "\"x86_64\""
-msgstr ""
+msgstr "\"x86_64\""
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
 msgid ""
@@ -11787,29 +12125,40 @@ msgid ""
 "        // to macOS (as opposed to iOS / wearOS / etc.) on Intel and "
 "PowerPC.\n"
 msgstr ""
+"// See https://github.com/rust-lang/libc/issues/414 and the section on\n"
+"        // _DARWIN_FEATURE_64_BIT_INODE in the macOS man page for stat(2).\n"
+"        //\n"
+"        // \"Platforms that existed before these updates were available\" "
+"refers\n"
+"        // to macOS (as opposed to iOS / wearOS / etc.) on Intel and "
+"PowerPC.\n"
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
 msgid "\"readdir$INODE64\""
 msgstr "\"readdir$INODE64\""
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
+#, fuzzy
 msgid ""
 "// Call opendir and return a Ok value if that worked,\n"
 "        // otherwise return Err with a message.\n"
 msgstr ""
+"// Call opendir and return a Ok value if that worked,\n"
+"        // otherwise return Err with a message.\n"
 
 #: src/unsafe-rust/exercise.md
 msgid "// Keep calling readdir until we get a NULL pointer back.\n"
-msgstr ""
+msgstr "// Keep calling readdir until we get a NULL pointer back.\n"
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
+#, fuzzy
 msgid "// Call closedir as needed.\n"
-msgstr ""
+msgstr "// Call closedir as needed.\n"
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
 #: src/android/interoperability/with-c/rust.md
 msgid "\".\""
-msgstr ""
+msgstr "\".\""
 
 #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md
 msgid "\"files: {:#?}\""
@@ -11820,32 +12169,41 @@ msgid "\"Invalid path: {err}\""
 msgstr "\"مسیر نامعتبر: {err}\""
 
 #: src/unsafe-rust/solution.md
+#, fuzzy
 msgid "// SAFETY: path.as_ptr() cannot be NULL.\n"
-msgstr ""
+msgstr "// SAFETY: path.as_ptr() cannot be NULL.\n"
 
 #: src/unsafe-rust/solution.md
 msgid "\"Could not open {:?}\""
 msgstr "\"نمی‌توان {:?} را باز کرد\""
 
 #: src/unsafe-rust/solution.md
+#, fuzzy
 msgid ""
 "// Keep calling readdir until we get a NULL pointer back.\n"
 "        // SAFETY: self.dir is never NULL.\n"
 msgstr ""
+"// Keep calling readdir until we get a NULL pointer back.\n"
+"        // SAFETY: self.dir is never NULL.\n"
 
 #: src/unsafe-rust/solution.md
+#, fuzzy
 msgid "// We have reached the end of the directory.\n"
-msgstr ""
+msgstr "// We have reached the end of the directory.\n"
 
 #: src/unsafe-rust/solution.md
+#, fuzzy
 msgid ""
 "// SAFETY: dirent is not NULL and dirent.d_name is NUL\n"
 "        // terminated.\n"
 msgstr ""
+"// SAFETY: dirent is not NULL and dirent.d_name is NUL\n"
+"        // terminated.\n"
 
 #: src/unsafe-rust/solution.md
+#, fuzzy
 msgid "// SAFETY: self.dir is not NULL.\n"
-msgstr ""
+msgstr "// SAFETY: self.dir is not NULL.\n"
 
 #: src/unsafe-rust/solution.md
 msgid "\"Could not close {:?}\""
@@ -11861,7 +12219,7 @@ msgstr "\"نویسه غیر UTF-8 در مسیر\""
 
 #: src/unsafe-rust/solution.md
 msgid "\"..\""
-msgstr ""
+msgstr "\"..\""
 
 #: src/unsafe-rust/solution.md
 msgid "\"foo.txt\""
@@ -11869,7 +12227,7 @@ msgstr "\"foo.txt\""
 
 #: src/unsafe-rust/solution.md
 msgid "\"The Foo Diaries\\n\""
-msgstr ""
+msgstr "\"این خاطرات Foo است \\n\""
 
 #: src/unsafe-rust/solution.md
 msgid "\"bar.png\""
@@ -12135,7 +12493,6 @@ msgid "_hello_rust/Android.bp_:"
 msgstr "_hello_rust/Android.bp_:"
 
 #: src/android/build-rules/binary.md
-#, fuzzy
 msgid "\"hello_rust\""
 msgstr "\"hello_rust\""
 
@@ -12153,13 +12510,13 @@ msgid "//! Rust demo.\n"
 msgstr "//! Rust demo.\n"
 
 #: src/android/build-rules/binary.md src/android/build-rules/library.md
+#, fuzzy
 msgid "/// Prints a greeting to standard output.\n"
 msgstr "/// Prints a greeting to standard output.\n"
 
 #: src/android/build-rules/binary.md src/exercises/chromium/build-rules.md
-#, fuzzy
 msgid "\"Hello from Rust!\""
-msgstr "\"Hello from Rust!\""
+msgstr "\"سلام از Rust!\""
 
 #: src/android/build-rules/binary.md
 msgid "You can now build, push, and run the binary:"
@@ -12209,7 +12566,6 @@ msgstr ""
 "crates/) عرضه شده است."
 
 #: src/android/build-rules/library.md
-#, fuzzy
 msgid "\"hello_rust_with_dep\""
 msgstr "\"hello_rust_with_dep\""
 
@@ -12241,6 +12597,7 @@ msgid "_hello_rust/src/lib.rs_:"
 msgstr "_hello_rust/src/lib.rs_:"
 
 #: src/android/build-rules/library.md
+#, fuzzy
 msgid "//! Greeting library.\n"
 msgstr "//! Greeting library.\n"
 
@@ -12249,9 +12606,8 @@ msgid "/// Greet `name`.\n"
 msgstr "/// Greet `name`.\n"
 
 #: src/android/build-rules/library.md
-#, fuzzy
 msgid "\"Hello {name}, it is very nice to meet you!\""
-msgstr "\"Hello {name}, it is very nice to meet you!\""
+msgstr "\"سلام {name}، از آشنایی با شما بسیار خوشحالم!\""
 
 #: src/android/build-rules/library.md
 msgid "You build, push, and run the binary like before:"
@@ -12485,6 +12841,7 @@ msgid "_birthday_service/src/server.rs_:"
 msgstr "_birthday_service/src/server.rs_:"
 
 #: src/android/aidl/example-service/server.md
+#, fuzzy
 msgid "//! Birthday service.\n"
 msgstr "//! Birthday service.\n"
 
@@ -12503,9 +12860,8 @@ msgid "\"birthday_server\""
 msgstr "\"birthday_server\""
 
 #: src/android/aidl/example-service/server.md
-#, fuzzy
 msgid "\"src/server.rs\""
-msgstr "سرورها"
+msgstr "\"src/server.rs\""
 
 #: src/android/aidl/example-service/server.md
 #: src/android/aidl/example-service/client.md
@@ -13056,9 +13412,8 @@ msgstr ""
 "        // object.\n"
 
 #: src/android/aidl/types/file-descriptor.md
-#, fuzzy
 msgid "\"Invalid file handle\""
-msgstr "\"Invalid file handle\""
+msgstr "\"کنترل فایل نامعتبر\""
 
 #: src/android/aidl/types/file-descriptor.md
 msgid ""
@@ -13099,7 +13454,6 @@ msgid "\"libleftpad\""
 msgstr "\"libleftpad\""
 
 #: src/android/testing.md
-#, fuzzy
 msgid "\"leftpad\""
 msgstr "leftpad\""
 
@@ -13108,7 +13462,6 @@ msgid "\"libleftpad_test\""
 msgstr "\"libleftpad_test\""
 
 #: src/android/testing.md
-#, fuzzy
 msgid "\"leftpad_test\""
 msgstr "\"leftpad_test\""
 
@@ -13418,14 +13771,12 @@ msgid "\"rust\""
 msgstr "\"rust\""
 
 #: src/android/logging.md
-#, fuzzy
 msgid "\"Starting program.\""
-msgstr "\"Starting program.\""
+msgstr "\"شروع برنامه.\""
 
 #: src/android/logging.md
-#, fuzzy
 msgid "\"Things are going fine.\""
-msgstr "\"Things are going fine.\""
+msgstr "\"کارها خوب پیش می‌رود.\""
 
 #: src/android/logging.md
 #, fuzzy
@@ -13624,9 +13975,8 @@ msgid "Finally, we can use the bindings in our Rust program:"
 msgstr "در نهایت، می‌توانیم از bindingها در برنامه Rust خود استفاده کنیم:"
 
 #: src/android/interoperability/with-c/bindgen.md
-#, fuzzy
 msgid "\"print_birthday_card\""
-msgstr "\"print_birthday_card\""
+msgstr "\"چاپ_کارت_تولد\""
 
 #: src/android/interoperability/with-c/bindgen.md
 msgid "\"main.rs\""
@@ -13720,9 +14070,8 @@ msgid "\"x ({x}) is smallest!\""
 msgstr "\"x ({x}) is smallest!\""
 
 #: src/android/interoperability/with-c/rust.md
-#, fuzzy
 msgid "\"y ({y}) is probably larger than x ({x})\""
-msgstr "\"y ({y}) is probably larger than x ({x})\""
+msgstr "\" مقدارy  ({y}) احتمالا بزرگتر از x ({x}) است\""
 
 #: src/android/interoperability/with-c/rust.md
 msgid "_interoperability/rust/libanalyze/analyze.h_"
@@ -13842,8 +14191,9 @@ msgstr "\"Rust\""
 
 #: src/android/interoperability/cpp/bridge.md
 #: src/android/interoperability/cpp/cpp-bridge.md
+#, fuzzy
 msgid "// C++ types and signatures exposed to Rust.\n"
-msgstr ""
+msgstr "// C++ types and signatures exposed to Rust.\n"
 
 #: src/android/interoperability/cpp/bridge.md
 #: src/android/interoperability/cpp/cpp-bridge.md
@@ -14348,7 +14698,7 @@ msgstr "\"system\""
 
 #: src/android/interoperability/java.md
 msgid "\"Hello, {input}!\""
-msgstr "\"Hello, {input}!\""
+msgstr "\"سلام, {input}!\""
 
 #: src/android/interoperability/java.md
 msgid "_interoperability/java/Android.bp_:"
@@ -14449,7 +14799,6 @@ msgstr ""
 "commit 1223636 به بعد، مربوط به نوامبر 2023):"
 
 #: src/chromium/setup.md
-#, fuzzy
 msgid ""
 "(A component, debug build is recommended for quickest iteration time. This "
 "is the default!)"
@@ -15936,6 +16285,7 @@ msgid "\"gfx::rust_bindings\""
 msgstr "\"gfx::rust_bindings\""
 
 #: src/chromium/interoperability-with-cpp/error-handling-png.md
+#, fuzzy
 msgid ""
 "/// This returns an FFI-friendly equivalent of `Result<PngReader<'a>,\n"
 "        /// ()>`.\n"
@@ -17237,11 +17587,11 @@ msgstr ""
 
 #: src/bare-metal/no_std.md
 msgid "`Future` and `async`/`await`"
-msgstr ""
+msgstr "`Future` و `async`/`await`"
 
 #: src/bare-metal/no_std.md
 msgid "`fence`, `AtomicBool`, `AtomicPtr`, `AtomicU32`..."
-msgstr ""
+msgstr "`fence`, `AtomicBool`, `AtomicPtr`, `AtomicU32`..."
 
 #: src/bare-metal/no_std.md
 msgid "`Duration`"
@@ -17261,7 +17611,7 @@ msgstr ""
 
 #: src/bare-metal/no_std.md
 msgid "`Error`"
-msgstr ""
+msgstr "`Error`"
 
 #: src/bare-metal/no_std.md
 msgid "`Mutex`, `Condvar`, `Barrier`, `Once`, `RwLock`, `mpsc`"
@@ -17339,16 +17689,19 @@ msgid ""
 msgstr ""
 
 #: src/bare-metal/alloc.md
+#, fuzzy
 msgid "// SAFETY: `HEAP` is only used here and `entry` is only called once.\n"
-msgstr ""
+msgstr "// SAFETY: `HEAP` is only used here and `entry` is only called once.\n"
 
 #: src/bare-metal/alloc.md
+#, fuzzy
 msgid "// Give the allocator some memory to allocate.\n"
-msgstr ""
+msgstr "// Give the allocator some memory to allocate.\n"
 
 #: src/bare-metal/alloc.md
+#, fuzzy
 msgid "// Now we can do things that require heap allocation.\n"
-msgstr ""
+msgstr "// Now we can do things that require heap allocation.\n"
 
 #: src/bare-metal/alloc.md
 #, fuzzy
@@ -17414,34 +17767,42 @@ msgid ""
 msgstr ""
 
 #: src/bare-metal/microcontrollers/mmio.md
+#, fuzzy
 msgid "/// GPIO port 0 peripheral address\n"
-msgstr ""
+msgstr "/// GPIO port 0 peripheral address\n"
 
 #: src/bare-metal/microcontrollers/mmio.md
+#, fuzzy
 msgid "// GPIO peripheral offsets\n"
-msgstr ""
+msgstr "// GPIO peripheral offsets\n"
 
 #: src/bare-metal/microcontrollers/mmio.md
+#, fuzzy
 msgid "// PIN_CNF fields\n"
-msgstr ""
+msgstr "// PIN_CNF fields\n"
 
 #: src/bare-metal/microcontrollers/mmio.md
 #: src/bare-metal/microcontrollers/pacs.md
 #: src/bare-metal/microcontrollers/hals.md
+#, fuzzy
 msgid "// Configure GPIO 0 pins 21 and 28 as push-pull outputs.\n"
-msgstr ""
+msgstr "// Configure GPIO 0 pins 21 and 28 as push-pull outputs.\n"
 
 #: src/bare-metal/microcontrollers/mmio.md
+#, fuzzy
 msgid ""
 "// SAFETY: The pointers are to valid peripheral control registers, and no\n"
 "    // aliases exist.\n"
 msgstr ""
+"// SAFETY: The pointers are to valid peripheral control registers, and no\n"
+"    // aliases exist.\n"
 
 #: src/bare-metal/microcontrollers/mmio.md
 #: src/bare-metal/microcontrollers/pacs.md
 #: src/bare-metal/microcontrollers/hals.md
+#, fuzzy
 msgid "// Set pin 28 low and pin 21 high to turn the LED on.\n"
-msgstr ""
+msgstr "// Set pin 28 low and pin 21 high to turn the LED on.\n"
 
 #: src/bare-metal/microcontrollers/mmio.md
 msgid ""
@@ -17466,6 +17827,9 @@ msgid ""
 "wrappers for memory-mapped peripherals from [CMSIS-SVD](https://www.keil.com/"
 "pack/doc/CMSIS/SVD/html/index.html) files."
 msgstr ""
+"گزینه [`svd2rust`](https://crates.io/crates/svd2rust)  که  wrapperهای Rust "
+"عمدتاً ایمن را برای تجهیزات جانبی دارای memory-map از فایل‌های[CMSIS-SVD]"
+"(https://www.keil.com/pack/doc/CMSIS/SVD/html/index.html) تولید می‌کند."
 
 #: src/bare-metal/microcontrollers/pacs.md
 msgid ""
@@ -17507,6 +17871,10 @@ msgid ""
 "various peripherals. These generally implement traits from [`embedded-hal`]"
 "(https://crates.io/crates/embedded-hal)."
 msgstr ""
+"این [crateهای HAL]‌(https://github.com/rust-embedded/wesome-embedded-rust#hal-"
+"implementation-crates) برای بسیاری از میکروکنترلرها بسته‌بندی‌هایی را در اطراف "
+"تجهیزات جانبی مختلف ارائه می‌دهند. اینها معمولاً ویژگی‌های [`embedded-hal`]"
+"(https://crates.io/crates/embedded-hal) را پیاده‌سازی می‌کنند."
 
 #: src/bare-metal/microcontrollers/hals.md
 msgid "// Create HAL wrapper for GPIO port 0.\n"
@@ -17554,12 +17922,14 @@ msgid "The type state pattern"
 msgstr ""
 
 #: src/bare-metal/microcontrollers/type-state.md
+#, fuzzy
 msgid "// let gpio0_01_again = gpio0.p0_01; // Error, moved.\n"
-msgstr ""
+msgstr "// let gpio0_01_again = gpio0.p0_01; // Error, moved.\n"
 
 #: src/bare-metal/microcontrollers/type-state.md
+#, fuzzy
 msgid "// pin_input.is_high(); // Error, moved.\n"
-msgstr ""
+msgstr "// pin_input.is_high(); // Error, moved.\n"
 
 #: src/bare-metal/microcontrollers/type-state.md
 msgid ""
@@ -17647,6 +18017,8 @@ msgid ""
 "[`embedded-hal-async`](https://crates.io/crates/embedded-hal-async) provides "
 "async versions of the traits."
 msgstr ""
+" برای[`embedded-hal-async`](https://crates.io/crates/embedded-hal-async) "
+"نسخه‌های async از traitها را ارائه می دهد."
 
 #: src/bare-metal/microcontrollers/embedded-hal.md
 msgid ""
@@ -17654,12 +18026,17 @@ msgid ""
 "another approach to non-blocking I/O, based on the [`nb`](https://crates.io/"
 "crates/nb) crate."
 msgstr ""
+"مورد [`embedded-hal-nb`](https://crates.io/crates/embedded-hal-nb) رویکرد "
+"دیگری را برای عدم مسدود کردن I/O ارائه می دهد که بر اساس [`nb`](https:// "
+"crates.io/crates/nb) crate است."
 
 #: src/bare-metal/microcontrollers/probe-rs.md
 msgid ""
 "[probe-rs](https://probe.rs/) is a handy toolset for embedded debugging, "
 "like OpenOCD but better integrated."
 msgstr ""
+"یک [probe-rs](https://probe.rs/) یک مجموعه ابزار مفید برای اشکال زدایی "
+"جاسازی شده است، مانند OpenOCD است، اما بهتر یکپارچه شده است."
 
 #: src/bare-metal/microcontrollers/probe-rs.md
 msgid ""
@@ -17751,7 +18128,7 @@ msgstr ""
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid "[RTIC](https://rtic.rs/)"
-msgstr ""
+msgstr "[RTIC](https://rtic.rs/)"
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid "\"Real-Time Interrupt-driven Concurrency\""
@@ -17764,7 +18141,7 @@ msgstr ""
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid "[Embassy](https://embassy.dev/)"
-msgstr ""
+msgstr "[Embassy](https://embassy.dev/)"
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid "`async` executors with priorities, timers, networking, USB"
@@ -17772,7 +18149,7 @@ msgstr ""
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid "[TockOS](https://www.tockos.org/documentation/getting-started)"
-msgstr ""
+msgstr "[TockOS](https://www.tockos.org/documentation/getting-started)"
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid ""
@@ -17792,7 +18169,7 @@ msgstr ""
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid "[Bindings for FreeRTOS](https://github.com/lobaro/FreeRTOS-rust)"
-msgstr ""
+msgstr "[Bindings for FreeRTOS](https://github.com/lobaro/FreeRTOS-rust)"
 
 #: src/bare-metal/microcontrollers/other-projects.md
 msgid ""
@@ -17933,46 +18310,54 @@ msgstr ""
 
 #: src/exercises/bare-metal/solutions-morning.md
 msgid "([back to exercise](compass.md))"
-msgstr ""
+msgstr "([back to exercise](compass.md))"
 
 #: src/exercises/bare-metal/solutions-morning.md
 msgid "// Configure serial port.\n"
-msgstr ""
+msgstr "// Configure serial port.\n"
 
 #: src/exercises/bare-metal/solutions-morning.md
+#, fuzzy
 msgid "// Use the system timer as a delay provider.\n"
-msgstr ""
+msgstr "// Use the system timer as a delay provider.\n"
 
 #: src/exercises/bare-metal/solutions-morning.md
+#, fuzzy
 msgid "// Set up the I2C controller and Inertial Measurement Unit.\n"
-msgstr ""
+msgstr "// Set up the I2C controller and Inertial Measurement Unit.\n"
 
 #: src/exercises/bare-metal/solutions-morning.md
 msgid "\"Setting up IMU...\""
-msgstr ""
+msgstr "\"راه اندازی IMU...\""
 
 #: src/exercises/bare-metal/solutions-morning.md
+#, fuzzy
 msgid "// Set up display and timer.\n"
-msgstr ""
+msgstr "// Set up display and timer.\n"
 
 #: src/exercises/bare-metal/solutions-morning.md
 msgid "\"Ready.\""
 msgstr "\"آماده.\""
 
 #: src/exercises/bare-metal/solutions-morning.md
+#, fuzzy
 msgid "// Read compass data and log it to the serial port.\n"
-msgstr ""
+msgstr "// Read compass data and log it to the serial port.\n"
 
 #: src/exercises/bare-metal/solutions-morning.md
 msgid "\"{},{},{}\\t{},{},{}\""
 msgstr "\"{},{},{}\\t{},{},{}\""
 
 #: src/exercises/bare-metal/solutions-morning.md
+#, fuzzy
 msgid ""
 "// If button A is pressed, switch to the next mode and briefly blink all "
 "LEDs\n"
 "        // on.\n"
 msgstr ""
+"// If button A is pressed, switch to the next mode and briefly blink all "
+"LEDs\n"
+"        // on.\n"
 
 #: src/bare-metal/aps.md
 msgid "Application processors"
@@ -18080,6 +18465,78 @@ msgid ""
 "    b 2b\n"
 "```"
 msgstr ""
+"```armasm\n"
+".section .init.entry, \"ax\"\n"
+".global entry\n"
+"entry:\n"
+"    /*\n"
+"     * Load and apply the memory management configuration, ready to enable "
+"MMU and\n"
+"     * caches.\n"
+"     */\n"
+"    adrp x30, idmap\n"
+"    msr ttbr0_el1, x30\n"
+"\n"
+"    mov_i x30, .Lmairval\n"
+"    msr mair_el1, x30\n"
+"\n"
+"    mov_i x30, .Ltcrval\n"
+"    /* Copy the supported PA range into TCR_EL1.IPS. */\n"
+"    mrs x29, id_aa64mmfr0_el1\n"
+"    bfi x30, x29, #32, #4\n"
+"\n"
+"    msr tcr_el1, x30\n"
+"\n"
+"    mov_i x30, .Lsctlrval\n"
+"\n"
+"    /*\n"
+"     * Ensure everything before this point has completed, then invalidate "
+"any\n"
+"     * potentially stale local TLB entries before they start being used.\n"
+"     */\n"
+"    isb\n"
+"    tlbi vmalle1\n"
+"    ic iallu\n"
+"    dsb nsh\n"
+"    isb\n"
+"\n"
+"    /*\n"
+"     * Configure sctlr_el1 to enable MMU and cache and don't proceed until "
+"this\n"
+"     * has completed.\n"
+"     */\n"
+"    msr sctlr_el1, x30\n"
+"    isb\n"
+"\n"
+"    /* Disable trapping floating point access in EL1. */\n"
+"    mrs x30, cpacr_el1\n"
+"    orr x30, x30, #(0x3 << 20)\n"
+"    msr cpacr_el1, x30\n"
+"    isb\n"
+"\n"
+"    /* Zero out the bss section. */\n"
+"    adr_l x29, bss_begin\n"
+"    adr_l x30, bss_end\n"
+"0:  cmp x29, x30\n"
+"    b.hs 1f\n"
+"    stp xzr, xzr, [x29], #16\n"
+"    b 0b\n"
+"\n"
+"1:  /* Prepare the stack. */\n"
+"    adr_l x30, boot_stack_end\n"
+"    mov sp, x30\n"
+"\n"
+"    /* Set up exception vector. */\n"
+"    adr x30, vector_table_el1\n"
+"    msr vbar_el1, x30\n"
+"\n"
+"    /* Call into Rust code. */\n"
+"    bl main\n"
+"\n"
+"    /* Loop forever waiting for interrupts. */\n"
+"2:  wfi\n"
+"    b 2b\n"
+"```"
 
 #: src/bare-metal/aps/entry-point.md
 msgid ""
@@ -19454,7 +19911,6 @@ msgid "Bare Metal Rust Afternoon"
 msgstr "بعدازظهربا Bare Metal Rust"
 
 #: src/exercises/bare-metal/solutions-afternoon.md
-#, fuzzy
 msgid "([back to exercise](rtc.md))"
 msgstr "([back to exercise](rtc.md))"
 
@@ -19478,7 +19934,6 @@ msgid "/// The IRQ used by the PL031 RTC.\n"
 msgstr "/// The IRQ used by the PL031 RTC.\n"
 
 #: src/exercises/bare-metal/solutions-afternoon.md
-#, fuzzy
 msgid "\"main({:#x}, {:#x}, {:#x}, {:#x})\""
 msgstr "\"main({:#x}, {:#x}, {:#x}, {:#x})\""
 
@@ -19518,7 +19973,6 @@ msgid "\"Waiting for {}\""
 msgstr "\"Waiting for {}\""
 
 #: src/exercises/bare-metal/solutions-afternoon.md
-#, fuzzy
 msgid "\"matched={}, interrupt_pending={}\""
 msgstr "\"matched={}, interrupt_pending={}\""
 
@@ -20162,7 +20616,7 @@ msgstr "`i8`, `f32`, `bool`, `char`, `&str`, ..."
 
 #: src/concurrency/send-sync/examples.md
 msgid "`(T1, T2)`, `[T; N]`, `&[T]`, `struct { x: T }`, ..."
-msgstr "`i8`, `f32`, `bool`, `char`, `&str`, ..."
+msgstr "`(T1, T2)`, `[T; N]`, `&[T]`, `struct { x: T }`, ..."
 
 #: src/concurrency/send-sync/examples.md
 msgid "`String`, `Option<T>`, `Vec<T>`, `Box<T>`, ..."
@@ -20567,6 +21021,7 @@ msgid "// Create philosophers\n"
 msgstr "// Create philosophers\n"
 
 #: src/concurrency/sync-exercises/dining-philosophers.md
+#, fuzzy
 msgid "// Make each of them think and eat 100 times\n"
 msgstr "// Make each of them think and eat 100 times\n"
 
@@ -20919,6 +21374,8 @@ msgid ""
 "`.await` asynchronously waits for the completion of another operation. "
 "Unlike `block_on`, `.await` doesn't block the current thread."
 msgstr ""
+"همیشه `await` به طور ناهمزمان (asyn) منتظر تکمیل یک عملیات دیگر است. برخلاف "
+"`block_on` یک  `await` معمولاً thread فعلی را مسدود نمی‌کند."
 
 #: src/concurrency/async/async-await.md
 msgid ""
@@ -21081,7 +21538,6 @@ msgid "\"Count in task: {i}!\""
 msgstr "\"شمارش  task: {i}!\""
 
 #: src/concurrency/async/runtimes/tokio.md
-#, fuzzy
 msgid "\"Main task: {i}\""
 msgstr "\"Main task: {i}\""
 
@@ -21142,7 +21598,6 @@ msgid "\"127.0.0.1:0\""
 msgstr "\"127.0.0.1:0\""
 
 #: src/concurrency/async/tasks.md
-#, fuzzy
 msgid "\"listening on port {}\""
 msgstr "\"listening on port {}\""
 
@@ -21162,9 +21617,8 @@ msgid "\"socket error\""
 msgstr "\"socket error\""
 
 #: src/concurrency/async/tasks.md
-#, fuzzy
 msgid "\"Thanks for dialing in, {name}!\\n\""
-msgstr "\"Thanks for dialing in, {name}!\\n\""
+msgstr "\"از تماس تلفنی متشکریم، {name}!\\n\""
 
 #: src/concurrency/async/tasks.md src/concurrency/async-control-flow/join.md
 msgid ""
@@ -21216,14 +21670,12 @@ msgstr ""
 "چندین crate از asynchronous channel پشتیبانی می‌کنند. به عنوان مثال `tokio`:"
 
 #: src/concurrency/async-control-flow/channels.md
-#, fuzzy
 msgid "\"Received {count} pings so far.\""
-msgstr "\"Received {count} pings so far.\""
+msgstr "\"تاکنون {count} عدد ping دریافت شده است.\""
 
 #: src/concurrency/async-control-flow/channels.md
-#, fuzzy
 msgid "\"ping_handler complete\""
-msgstr "\"ping_handler complete\""
+msgstr "\"ping_handler کامل‌شده‌است\""
 
 #: src/concurrency/async-control-flow/channels.md
 #, fuzzy
@@ -21287,17 +21739,14 @@ msgstr ""
 "در JavaScript یا `asyncio.gather` در پایتون است."
 
 #: src/concurrency/async-control-flow/join.md
-#, fuzzy
 msgid "\"https://google.com\""
 msgstr "\"https://google.com\""
 
 #: src/concurrency/async-control-flow/join.md
-#, fuzzy
 msgid "\"https://httpbin.org/ip\""
 msgstr "\"https://httpbin.org/ip\""
 
 #: src/concurrency/async-control-flow/join.md
-#, fuzzy
 msgid "\"https://play.rust-lang.org/\""
 msgstr "\"https://play.rust-lang.org/\""
 
@@ -21371,7 +21820,7 @@ msgstr "\"{msg}\""
 
 #: src/concurrency/async-control-flow/select.md
 msgid "\"timeout\""
-msgstr ""
+msgstr "\"timeout\""
 
 #: src/concurrency/async-control-flow/select.md
 #, fuzzy
@@ -21573,9 +22022,8 @@ msgid "\"failed waiting for response\""
 msgstr "\"failed waiting for response\""
 
 #: src/concurrency/async-pitfalls/pin.md
-#, fuzzy
 msgid "\"work result for iteration {i}: {resp}\""
-msgstr "\"Welcome to chat! Type a message\""
+msgstr "\"نتیجه کار برای تکرار  {i}: {resp}\""
 
 #: src/concurrency/async-pitfalls/pin.md
 msgid ""
@@ -21787,12 +22235,10 @@ msgid "\"not UTF-8\""
 msgstr "\"not UTF-8\""
 
 #: src/concurrency/async-pitfalls/cancellation.md
-#, fuzzy
 msgid "\"hi\\nthere\\n\""
 msgstr "\"hi\\nthere\\n\""
 
 #: src/concurrency/async-pitfalls/cancellation.md
-#, fuzzy
 msgid "\"tick!\""
 msgstr "\"tick!\""
 
@@ -22108,15 +22554,13 @@ msgstr "\"127.0.0.1:2000\""
 
 #: src/concurrency/async-exercises/chat-app.md
 #: src/concurrency/async-exercises/solutions.md
-#, fuzzy
 msgid "\"listening on port 2000\""
 msgstr "\"listening on port 2000\""
 
 #: src/concurrency/async-exercises/chat-app.md
 #: src/concurrency/async-exercises/solutions.md
-#, fuzzy
 msgid "\"New connection from {addr:?}\""
-msgstr "\"New connection from {addr:?}\""
+msgstr "\"اتصال جدید از {addr:?}\""
 
 #: src/concurrency/async-exercises/chat-app.md
 #: src/concurrency/async-exercises/solutions.md
@@ -22214,14 +22658,12 @@ msgid "// tx is dropped here, so we don't need to explicitly drop it later\n"
 msgstr "// tx is dropped here, so we don't need to explicitly drop it later\n"
 
 #: src/concurrency/async-exercises/solutions.md
-#, fuzzy
 msgid "\"Here is a thought: {thought}\""
-msgstr "\"Here is a thought: {thought}\""
+msgstr "\"در اینجا یک ایده وجود دارد: {thought}\""
 
 #: src/concurrency/async-exercises/solutions.md
-#, fuzzy
 msgid "\"Welcome to chat! Type a message\""
-msgstr "\"Welcome to chat! Type a message\""
+msgstr "\"به chat خوش آمدید! یک پیام تایپ کنید\""
 
 #: src/concurrency/async-exercises/solutions.md
 #, fuzzy