diff --git a/po/fa.po b/po/fa.po
index aa62fc1fbe4..cbe022e59d1 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -22787,4 +22787,1449 @@ msgstr ""
#~ "slides):"
#~ msgstr ""
#~ "اینجا مکان مناسبی برای یک برنامه ریزی است.,اگر که شما این موضوع را در "
-#~ "کلاس درس می دهیدما پیشنهاد
\ No newline at end of file
+#~ "کلاس درس می دهیدما پیشنهاد می کنیم که روز را به دو قسمت تقسیم "
+#~ "کنید(اسلایدها را دنبال کنید)"
+
+#~ msgid "Morning: 9:00 to 12:00,"
+#~ msgstr "صبح: ۹:۰۰ تا ۱۲:۰۰"
+
+#~ msgid "Afternoon: 13:00 to 16:00."
+#~ msgstr "بعد از ظهر: ۱۳:۰۰ تا ۱۶:۰۰"
+
+#~ msgid ""
+#~ "You can of course adjust this as necessary. Please make sure to include "
+#~ "breaks, we recommend a break every hour!"
+#~ msgstr ""
+#~ "البته میتوانید این را برحسب نیاز تنظیم کنید. لطفا مطمئن شوید که استراحتها "
+#~ "را نیز درنظر بگیرید، ما توصیه میکنیم هر ساعت یک استراحت داشته باشید!"
+
+#~ msgid "Here is a small example program in Rust:"
+#~ msgstr "یک برنامه کوچیک در Rust:"
+
+#~ msgid ""
+#~ "```rust,editable\n"
+#~ "fn main() { // Program entry point\n"
+#~ " let mut x: i32 = 6; // Mutable variable binding\n"
+#~ " print!(\"{x}\"); // Macro for printing, like printf\n"
+#~ " while x != 1 { // No parenthesis around expression\n"
+#~ " if x % 2 == 0 { // Math like in other languages\n"
+#~ " x = x / 2;\n"
+#~ " } else {\n"
+#~ " x = 3 * x + 1;\n"
+#~ " }\n"
+#~ " print!(\" -> {x}\");\n"
+#~ " }\n"
+#~ " println!();\n"
+#~ "}\n"
+#~ "```"
+#~ msgstr ""
+#~ "```rust,editable\n"
+#~ "fn main() { // نقطه ورودی برنامه\n"
+#~ " let mut x: i32 = 6; //انتساب متغیر قابل تغییر\n"
+#~ " print!(\"{x}\"); // ماکرویی برای چاپکردن به مانند printf\n"
+#~ " while x != 1 { // هیچ پرانتزی اطراف دستور نیست\n"
+#~ " if x % 2 == 0 { // محاسبات مانند بقیه زبان ها \n"
+#~ " x = x / 2;\n"
+#~ " } else {\n"
+#~ " x = 3 * x + 1;\n"
+#~ " }\n"
+#~ " print!(\" -> {x}\");\n"
+#~ " }\n"
+#~ " println!();\n"
+#~ "}\n"
+#~ "```"
+
+#~ msgid ""
+#~ "The code implements the Collatz conjecture: it is believed that the loop "
+#~ "will always end, but this is not yet proved. Edit the code and play with "
+#~ "different inputs."
+#~ msgstr ""
+#~ "این کد حدس کولاتز (`Collatz conjecture`) را پیاده سازی می کند: اعتقاد بر "
+#~ "این است که حلقه همیشه تمام می شود، اما این هنوز ثابت نشده است. کد را "
+#~ "ویرایش کنید و با ورودیهای مختلف بازی کنید."
+
+#~ msgid ""
+#~ "Explain that all variables are statically typed. Try removing `i32` to "
+#~ "trigger type inference. Try with `i8` instead and trigger a runtime "
+#~ "integer overflow."
+#~ msgstr ""
+#~ "توضیح دهید که همه متغیرها از نوع استاتیک هستند. سعی کنید `i32` را حذف "
+#~ "کنید تا استنتاج نوع را فعال کنید. با `i8` امتحان کنید و سرریز "
+#~ "(`overflow`) عدد صحیح در زمان اجرا را فعال کنید.."
+
+#~ msgid "Change `let mut x` to `let x`, discuss the compiler error."
+#~ msgstr ""
+#~ "`let mut x` را به `let x` تغییر دهید، و خطای کامپایلر را بررسی کنید."
+
+#~ msgid ""
+#~ "Show how `print!` gives a compilation error if the arguments don't match "
+#~ "the format string."
+#~ msgstr ""
+#~ "نشان دهید که چگونه `print!` در صورت عدم تطابق "
+#~ "آرگومانها با قالب رشته (`format string`) ، خطای کامپایل می دهد."
+
+#~ msgid ""
+#~ "Show how you need to use `{}` as a placeholder if you want to print an "
+#~ "expression which is more complex than just a single variable."
+#~ msgstr ""
+#~ "نشان دهید که چگونه در صورت تمایل به چاپ عبارتی که پیچیدهتر از یک متغیر "
+#~ "واحد است، باید از `{}` به عنوان جایگزین استفاده کنید."
+
+#~ msgid ""
+#~ "Show the students the standard library, show them how to search for `std::"
+#~ "fmt` which has the rules of the formatting mini-language. It's important "
+#~ "that the students become familiar with searching in the standard library."
+#~ msgstr ""
+#~ "کتابخانه استاندارد را به دانشجویان نشان دهید، به آنها نشان دهید که چگونه "
+#~ "`std::fmt` را که قوانین زبان-کوچک قالببندی را دارد جستجو کنند. مهم است که "
+#~ "دانشجویان با جستجو در کتابخانه استاندارد آشنا شوند."
+
+#~ msgid ""
+#~ "In a shell `rustup doc std::fmt` will open a browser on the local std::"
+#~ "fmt documentation"
+#~ msgstr ""
+#~ "در یک خطفرمان (`shell`) دستور `rustup doc std::fmt` را بزنید تا مستندات "
+#~ "محلی `std::fmt` را توی مرورگر باز کند."
+
+#~ msgid "Compile time memory safety."
+#~ msgstr "ایمنی حافظه در زمان کامپایل."
+
+#~ msgid "Lack of undefined runtime behavior."
+#~ msgstr "عدم وجود رفتار نامشخص در زمان اجرا."
+
+#~ msgid "Modern language features."
+#~ msgstr "ویژگیهای زبانی مدرن."
+
+#~ msgid "Let's consider the following \"minimum wrong example\" program in C:"
+#~ msgstr ""
+#~ "بیایید برنامه «نمونه ای از حداقل اشتباهات» زیر را در C در نظر بگیریم:"
+
+#~ msgid "How many bugs do you spot?"
+#~ msgstr "چند باگ پیدا می کنید؟"
+
+#~ msgid ""
+#~ "Despite just 29 lines of code, this C example contains serious bugs in at "
+#~ "least 11:"
+#~ msgstr "با وجود تنها ۲۹ خط کد، این مثال C حداقل 11 باگ جدی دارد: "
+
+#~ msgid "Assignment `=` instead of equality comparison `==` (line 28)"
+#~ msgstr "تخصیص `=` به جای مقایسه برابری `==` (خط ۲۸)"
+
+#~ msgid "Excess argument to `printf` (line 23)"
+#~ msgstr "ارگمان اضافی به `printf` (خط ۲۳)"
+
+#~ msgid "File descriptor leak (after line 26)"
+#~ msgstr "نشت توصیفگر فایل (`File descriptor`) (پس از خط ۲۶)"
+
+#~ msgid "Forgotten braces in multi-line `if` (line 22)"
+#~ msgstr "فراموشی پرانتز در `if` چند خطی (خط ۲۲)"
+
+#~ msgid "Forgotten `break` in a `switch` statement (line 32)"
+#~ msgstr "فراموشی `break` در `switch` (خط ۳۲)"
+
+#~ msgid ""
+#~ "Forgotten NUL-termination of the `buf` string, leading to a buffer "
+#~ "overflow (line 29)"
+#~ msgstr "فراموشی خاتمه `NUL` رشته `buf`، منجر به سرریز بافر (خط ۲۹) "
+
+#~ msgid "Memory leak by not freeing the `malloc`\\-allocated buffer (line 21)"
+#~ msgstr "نشت حافظه با آزاد نکردن بافر اختصاص داده شده توسط `malloc` (خط ۲۱)"
+
+#~ msgid "Out-of-bounds access (line 17)"
+#~ msgstr "دسترسی خارج از محدوده (خط ۱۷)"
+
+#~ msgid "Unchecked cases in the `switch` statement (line 11)"
+#~ msgstr "حالات بررسی نشده در `switch` (خط ۱۱)"
+
+#~ msgid "Unchecked return values of `stat` and `fopen` (lines 18 and 26)"
+#~ msgstr "مقادیر برگشتی از `stat` و `fopen` بررسی نشده (خطوط ۱۸ و ۲۶)"
+
+#~ msgid ""
+#~ "_Shouldn't these bugs be obvious even for a C compiler?_ \n"
+#~ "No, surprisingly this code compiles warning-free at the default warning "
+#~ "level, even in the latest GCC version (13.2 as of writing)."
+#~ msgstr ""
+#~ "_آیا این باگها نباید برای یک کامپایلر C نمایان باشد؟_ \n"
+#~ "نه، به طور شگفت انگیزی این کد بدون هیچ هشدار در سطح هشدار(`warning`) پیش "
+#~ "فرض کامپایل می شود، حتی در آخرین نسخه GCC (۱۳.۲ این کتاب در زمان نوشتن)."
+
+#~ msgid ""
+#~ "_Isn't this a highly unrealistic example?_ \n"
+#~ "Absolutely not, these kind of bugs have lead to serious security "
+#~ "vulnerabilities in the past. Some examples:"
+#~ msgstr ""
+#~ "_آیا این یک مثال خیلی غیر واقعی نیست؟_ \n"
+#~ "ابدا نه، این نوع از باگها در گذشته منجر به آسیبپذیریهای امنیتی جدی "
+#~ "شدهاند. چند نمونه:"
+
+#~ msgid ""
+#~ "Assignment `=` instead of equality comparison `==`: [The Linux Backdoor "
+#~ "Attempt of 2003](https://freedom-to-tinker.com/2013/10/09/the-linux-"
+#~ "backdoor-attempt-of-2003)"
+#~ msgstr ""
+#~ "تخصیص `=` به جای مقایسه برابر بودن `==`: [The Linux Backdoor Attempt of "
+#~ "2003](https://freedom-to-tinker.com/2013/10/09/the-linux-backdoor-attempt-"
+#~ "of-2003)"
+
+#~ msgid ""
+#~ "Forgotten braces in multi-line `if`: [The Apple goto fail vulnerability]"
+#~ "(https://dwheeler.com/essays/apple-goto-fail.html)"
+#~ msgstr ""
+#~ "فراموشی پرانتز در `if` چند خطی: [The Apple goto fail vulnerability]"
+#~ "(https://dwheeler.com/essays/apple-goto-fail.html)"
+
+#~ msgid ""
+#~ "Forgotten `break` in a `switch` statement: [The break that broke sudo]"
+#~ "(https://nakedsecurity.sophos.com/2012/05/21/anatomy-of-a-security-hole-"
+#~ "the-break-that-broke-sudo)"
+#~ msgstr ""
+#~ "فراموشی گذاشتن `break` در `switch`: [The break that broke "
+#~ "sudo](https://nakedsecurity.sophos.com/2012/05/21/anatomy-of-a-security-"
+#~ "hole-the-break-that-broke-sudo) "
+
+#~ msgid ""
+#~ "_How is Rust any better here?_ \n"
+#~ "Safe Rust makes all of these bugs impossible:"
+#~ msgstr ""
+#~ "_چطوری زبان راست در اینجا بهتر عمل میکند?_ \n"
+#~ "راست ایمن تمام این باگها را غیرممکن میکند:"
+
+#~ msgid "Assignments inside an `if` clause are not supported."
+#~ msgstr "تخصیصها در داخل یک شرط `if` پشتیبانی نمیشوند."
+
+#~ msgid "Format strings are checked at compile-time."
+#~ msgstr "قالببندی رشتهها در زمان کامپایل بررسی میشوند."
+
+#~ msgid "Resources are freed at the end of scope via the `Drop` trait."
+#~ msgstr "منابع در پایان اسکوپ از طریق ویژگی `Drop` آزاد میشوند."
+
+#~ msgid "All `if` clauses require braces."
+#~ msgstr "همه شرطهای `if` نیاز به پرانتز دارند."
+
+#~ msgid ""
+#~ "`match` (as the Rust equivalent to `switch`) does not fall-through, hence "
+#~ "you can't accidentally forget a `break`."
+#~ msgstr ""
+#~ "دستور`match` (به عنوان معادل Rust برای `switch`) فرو نمیپاشد (منظور fall-"
+#~ "through پذیر بودن ان است) ، بنابراین نمیتوانید به طور تصادفی یک break را "
+#~ "فراموش کنید."
+
+#~ msgid "Buffer slices carry their size and don't rely on a NUL terminator."
+#~ msgstr ""
+#~ "برشهای بافر اندازه خود را حمل میکنند و به خاتمه دهنده `NUL` متکی نیستند."
+
+#~ msgid ""
+#~ "Heap-allocated memory is freed via the `Drop` trait when the "
+#~ "corresponding `Box` leaves the scope."
+#~ msgstr ""
+#~ "حافظه اختصاص داده شده به پشته از طریق ویژگی `Drop` زمانی آزاد میشود که "
+#~ "`Box` مورد نظر اسکوپ مربوطه را ترک کند."
+
+#~ msgid ""
+#~ "Out-of-bounds accesses cause a panic or can be checked via the `get` "
+#~ "method of a slice."
+#~ msgstr ""
+#~ "دسترسیهای خارج از محدوده باعث پانیک میشوند یا میتوان آنها را از طریق متد "
+#~ "get یک برش (`slice`) بررسی کرد."
+
+#~ msgid "`match` mandates that all cases are handled."
+#~ msgstr "دستور `match` الزام میکند که حالات بررسی شوند."
+
+#~ msgid ""
+#~ "Fallible Rust functions return `Result` values that need to be unwrapped "
+#~ "and thereby checked for success. Additionally, the compiler emits a "
+#~ "warning if you miss to check the return value of a function marked with "
+#~ "`#[must_use]`."
+#~ msgstr ""
+#~ "توابع خطا پذیر در زبان Rust مقدار Result را برمیگردانند که باید باز شوند "
+#~ "و در نتیجه برای موفقیت بررسی شوند. علاوه بر این، اگر بررسی مقدار برگشتی "
+#~ "تابعی که با `#[must_use]` علامت گذاری شده است را "
+#~ "فراموش کنید، کامپایلر هشدار میدهد."
+
+#~ msgid "Static memory management at compile time:"
+#~ msgstr "مدیریت حافظه ایستا در زمان کامپایل:"
+
+#~ msgid "No memory leaks (_mostly_, see notes)."
+#~ msgstr ""
+#~ "هیچ نشت حافظهای وجود ندارد (_به طور کلی_، به یادداشتها مراجعه کنید)."
+
+#~ msgid ""
+#~ "It is possible to produce memory leaks in (safe) Rust. Some examples are:"
+#~ msgstr ""
+#~ "ایجاد نشت حافظه در Rust (ایمن) امکانپذیر است. برخی از نمونهها عبارتند از:"
+
+#~ msgid ""
+#~ "You can use [`Box::leak`](https://doc.rust-lang.org/std/boxed/struct.Box."
+#~ "html#method.leak) to leak a pointer. A use of this could be to get "
+#~ "runtime-initialized and runtime-sized static variables"
+#~ msgstr ""
+#~ "می توانید از [`Box::leak`](https://doc.rust-lang.org/std/"
+#~ "boxed/struct.Box.html#method.leak) برای نشت دادن یک اشارهگر "
+#~ "استفاده کنید.یک مورد استفاده از این کار میتواند برای بدست آوردن متغیرهای "
+#~ "ایستا با مقداردهی اولیه و اندازه در زمان اجرا باشد."
+
+#~ msgid ""
+#~ "You can use [`std::mem::forget`](https://doc.rust-lang.org/std/mem/fn."
+#~ "forget.html) to make the compiler \"forget\" about a value (meaning the "
+#~ "destructor is never run)."
+#~ msgstr ""
+#~ "می توانید از [`std::mem::forget`](https://doc.rust-lang.org/"
+#~ "std/mem/fn.forget.html) استفاده کنید تا کامپایلر «مقدار» را "
+#~ "فراموش کند (به این معنا که تابع مخرب (`destructor`) هرگز اجرا نمیشود)."
+
+#~ msgid ""
+#~ "You can also accidentally create a [reference cycle](https://doc.rust-"
+#~ "lang.org/book/ch15-06-reference-cycles.html) with `Rc` or `Arc`."
+#~ msgstr ""
+#~ "همچنین میتوانید به طور تصادفی یک [چرخه ارجاع](https://doc.rust-lang.org/"
+#~ "book/ch15-06-reference-cycles.html) با `Rc` یا `Arc` ایجاد کنید."
+
+#~ msgid ""
+#~ "In fact, some will consider infinitely populating a collection a memory "
+#~ "leak and Rust does not protect from those."
+#~ msgstr ""
+#~ "در واقع، برخی از افراد پر کردن بی نهایت یک مجموعه را به عنوان نشت حافظه "
+#~ "در نظر میگیرند و Rust از آن محافظت نمیکند."
+
+#~ msgid ""
+#~ "For the purpose of this course, \"No memory leaks\" should be understood "
+#~ "as \"Pretty much no _accidental_ memory leaks\"."
+#~ msgstr ""
+#~ "برای این دوره، «هیچ نشت حافظه ای» باید به عنوان «تقریبا هیچ نشت حافظه "
+#~ "_تصادفی_» درنظر گرفته شود."
+
+#~ msgid ""
+#~ "Integer overflow is defined via the [`overflow-checks`](https://doc.rust-"
+#~ "lang.org/rustc/codegen-options/index.html#overflow-checks) compile-time "
+#~ "flag. If enabled, the program will panic (a controlled crash of the "
+#~ "program), otherwise you get wrap-around semantics. By default, you get "
+#~ "panics in debug mode (`cargo build`) and wrap-around in release mode "
+#~ "(`cargo build --release`)."
+#~ msgstr ""
+#~ "سرریز عدد صحیح از طریق پرچم زمان کامپایل [`overflow-checks`](https://doc."
+#~ "rust-lang.org/rustc/codegen-options/index.html#overflow-checks) تعریف شده "
+#~ "است. اگر فعال باشد، برنامه خطا خواهد کرد (یک خرابی به صورت کنترل شده)، در "
+#~ "غیر این صورت wrap-around خواهید داشت.به طور پیش فرض، در حالت توسعه `debug "
+#~ "(cargo build)` شما خطا خواهید داشت. و در حالت گرفتن خروجی برای پروداکشن "
+#~ "`release (cargo build --release)` حالت wrap-around خواهید داشت."
+
+#~ msgid ""
+#~ "Bounds checking cannot be disabled with a compiler flag. It can also not "
+#~ "be disabled directly with the `unsafe` keyword. However, `unsafe` allows "
+#~ "you to call functions such as `slice::get_unchecked` which does not do "
+#~ "bounds checking."
+#~ msgstr ""
+#~ "بررسی محدوده نمیتواند با پرچم کامپایل غیرفعال شود. همچنین نمیتوان آن را "
+#~ "به طور مستقیم با کلمه کلیدی `unsafe` غیرفعال کرد. با این حال، `unsafe` به "
+#~ "شما امکان میدهد توابعی مانند `slice::get_unchecked` را صدا بزنید که بررسی "
+#~ "محدوده را انجام نمیدهد. "
+
+#~ msgid "Rust is built with all the experience gained in the last decades."
+#~ msgstr ""
+#~ "زبان Rust با استفاده از تمام تجربیاتی که در دهههای گذشته به دست آمده "
+#~ "ساخته شده است."
+
+#~ msgid "Language Features"
+#~ msgstr "ویژگیهای زبان"
+
+#~ msgid "Tooling"
+#~ msgstr "ابزارها"
+
+#~ msgid ""
+#~ "Zero-cost abstractions, similar to C++, means that you don't have to "
+#~ "'pay' for higher-level programming constructs with memory or CPU. For "
+#~ "example, writing a loop using `for` should result in roughly the same low "
+#~ "level instructions as using the `.iter().fold()` construct."
+#~ msgstr ""
+#~ "انتزاعهای بدون هزینه، مشابه C++، به این معنی است که "
+#~ "شما مجبور نیستید برای ساختارهای برنامهنویسی سطح بالاتر با حافظه یا CPU "
+#~ "«هزینه»ای پرداخت کنید. به عنوان مثال، نوشتن یک حلقه با استفاده از for "
+#~ "باید تقریباً به همان دستورالعملهای سطح پایین به عنوان استفاده از ساختار "
+#~ "`iter().fold()` منجر شود."
+
+#~ msgid ""
+#~ "It may be worth mentioning that Rust enums are 'Algebraic Data Types', "
+#~ "also known as 'sum types', which allow the type system to express things "
+#~ "like `Option` and `Result`."
+#~ msgstr ""
+#~ "ارزش ذکر را دارد که Enumهای زبان Rust از «انواع داده جبری» هستند که "
+#~ "همچنین به عنوان «انواع جمع» شناخته میشوند، که به تایپ سیستم اجازه میدهد "
+#~ "چیزهایی مانند `Option` و `Result` را بیان کند."
+
+#~ msgid ""
+#~ "Remind people to read the errors --- many developers have gotten used to "
+#~ "ignore lengthy compiler output. The Rust compiler is significantly more "
+#~ "talkative than other compilers. It will often provide you with "
+#~ "_actionable_ feedback, ready to copy-paste into your code."
+#~ msgstr ""
+#~ "به افراد یادآوری کنید که خطاها را بخوانند --- بسیاری از توسعه دهندگان به "
+#~ "نادیده گرفتن خروجی طولانی کامپایلر عادت کردهاند. کامپایلر Rust به طور "
+#~ "قابل توجهای پرحرفتر از سایر کامپایلرها است. اغلب بازخوردهای _عملیاتی_ را "
+#~ "در اختیار شما قرار میدهد که آماده کپی و پیست کردن در کد شما هستند."
+
+#~ msgid ""
+#~ "The Rust standard library is small compared to languages like Java, "
+#~ "Python, and Go. Rust does not come with several things you might consider "
+#~ "standard and essential:"
+#~ msgstr ""
+#~ "کتابخانه استاندارد Rust در مقایسه با زبانهایی مانند Java، Python و Go "
+#~ "کوچک است. زبان Rust با چندین چیز که ممکن است آنها را استاندارد و ضروری "
+#~ "در نظر بگیرید همراه نیست:"
+
+#~ msgid "a random number generator, but see [rand](https://docs.rs/rand/)."
+#~ msgstr ""
+#~ "یک تولیدکننده عدد تصادفی، اما [کتابخانه `rand`](https://"
+#~ "docs.rs/rand/) را ببینید."
+
+#~ msgid "support for SSL or TLS, but see [rusttls](https://docs.rs/rustls/)."
+#~ msgstr ""
+#~ "پشتیبانی از SSL یا TLS، اما میتوانید [کتابخانه `rusttls`]"
+#~ "(https://docs.rs/rustls/) را ببینید."
+
+#~ msgid "support for JSON, but see [serde_json](https://docs.rs/serde_json/)."
+#~ msgstr ""
+#~ "پشتیبانی از JSON، اما [کتابخانه `serde_json`](https://docs."
+#~ "rs/serde_json/) را ببینید."
+
+#~ msgid ""
+#~ "The reasoning behind this is that functionality in the standard library "
+#~ "cannot go away, so it has to be very stable. For the examples above, the "
+#~ "Rust community is still working on finding the best solution --- and "
+#~ "perhaps there isn't a single \"best solution\" for some of these things."
+#~ msgstr ""
+#~ "منطق پشت این امر این است که نمیتوان عملکردی را از کتابخانه استاندارد حذف "
+#~ "کرد، بنابراین باید بسیار پایدار باشد. برای مثالهای بالا، جامعه Rust هنوز "
+#~ "در تلاش است تا بهترین راه حل را پیدا کند --- و شاید برای برخی از این "
+#~ "موارد، یک «بهترین راه حل» وجود نداشته باشد. "
+
+#~ msgid ""
+#~ "Rust comes with a built-in package manager in the form of Cargo and this "
+#~ "makes it trivial to download and compile third-party crates. A "
+#~ "consequence of this is that the standard library can be smaller."
+#~ msgstr ""
+#~ "زبان Rust همراه با یک مدیر بسته درون-ساختی به اسم Cargo ارائه می شود و "
+#~ "این امر دانلود و کامپایل کردن crates شخص ثالث را بسیار آسان می کند. یکی "
+#~ "از پیامدهای این امر این است که کتابخانه استاندارد می تواند کوچکتر باشد."
+
+#~ msgid ""
+#~ "Discovering good third-party crates can be a problem. Sites like help with this by letting you compare health metrics for crates "
+#~ "to find a good and trusted one."
+#~ msgstr ""
+#~ "یافتن crates خوب شخص ثالث می تواند مشکل باشد. سایتهایی مانند با اجازه مقایسه معیارهای سلامت برای "
+#~ "crates به شما کمک میکنند تا یک مورد خوب و قابل اعتماد را پیدا کنید."
+
+#~ msgid ""
+#~ "[rust-analyzer](https://rust-analyzer.github.io/) is a well supported LSP "
+#~ "implementation used in major IDEs and text editors."
+#~ msgstr ""
+#~ "[rust-analyzer](https://rust-analyzer.github.io/): یک پیاده سازی LSP است "
+#~ "که در IDEها و ویرایشگرهای متن اصلی استفاده میشود."
+
+#~ msgid "`\"foo\"`, `\"two\\nlines\"`"
+#~ msgstr ""
+#~ "\"foo\"
, \"two\n"
+#~ "lines\"
"
+
+#~ msgid "Like C++, Rust has references:"
+#~ msgstr "مانند C++، راست دارای مراجع است:"
+
+#~ msgid ""
+#~ "We must dereference `ref_x` when assigning to it, similar to C and C++ "
+#~ "pointers."
+#~ msgstr ""
+#~ "باید هنگام تعریف `ref_x` ارجاع دهی شود، مشابه "
+#~ "اشارهگرهای C و C++."
+
+#~ msgid ""
+#~ "References that are declared as `mut` can be bound to different values "
+#~ "over their lifetime."
+#~ msgstr ""
+#~ "مراجعای که بهعنوان `mut` تعریف میشوند، میتوانند در طول عمر خود به مقادیر "
+#~ "مختلفی ارجاع داده شوند."
+
+#~ msgid "A reference is said to \"borrow\" the value it refers to."
+#~ msgstr "گفته میشود که یک مرجع مقدار مورد اشاره خود را «قرض میگیرد»."
+
+#~ msgid ""
+#~ "Rust is tracking the lifetimes of all references to ensure they live long "
+#~ "enough."
+#~ msgstr ""
+#~ "راست برای اینکه اطمینان حاصل کند طولعمر همه مراجع به اندازه کافی است, "
+#~ "آنها را رهگیری میکند."
+
+#~ msgid "`String` vs `str`"
+#~ msgstr "`String` در مقابل `str` "
+
+#~ msgid ""
+#~ "You can borrow `&str` slices from `String` via `&` and optionally range "
+#~ "selection."
+#~ msgstr ""
+#~ "شما میتوانید برشهای &str را از `String` از طریق `&` "
+#~ "و انتخاب محدوده به صورت اختیاری، قرض بگیرید."
+
+#~ msgid ""
+#~ "A Rust version of the famous [FizzBuzz](https://en.wikipedia.org/wiki/"
+#~ "Fizz_buzz) interview question:"
+#~ msgstr ""
+#~ "یک نسخه راست از سوال مصاحبه معروف مصاحبه [FizzBuzz](https://en.wikipedia."
+#~ "org/wiki/Fizz_buzz):"
+
+#~ msgid ""
+#~ "We refer in `main` to a function written below. Neither forward "
+#~ "declarations nor headers are necessary. "
+#~ msgstr ""
+#~ "ما در `main` به یک تابعی که در زیرش نوشته شده است "
+#~ "اشاره میکنیم. نیازی به اعلان از قبل تابع `main` یا "
+#~ "در بخش هدر نیست. "
+
+#~ msgid ""
+#~ "The range expression in the `for` loop in `print_fizzbuzz_to()` contains "
+#~ "`=n`, which causes it to include the upper bound."
+#~ msgstr ""
+#~ "عبارت تعیین محدوده در حلقه `for` در `print_fizzbuzz_to()` حاوی `=n` است "
+#~ "که باعث میشود محدوده حد بالا را هم شامل شود (آخرین عنصر)."
+
+#~ msgid ""
+#~ "All language items in Rust can be documented using special `///` syntax."
+#~ msgstr ""
+#~ "همه موارد زبان در راست را میتوان با استفاده از سینتکس ویژه `///` مستند "
+#~ "کرد."
+
+#~ msgid ""
+#~ "This course does not include rustdoc on slides, just to save space, but "
+#~ "in real code they should be present."
+#~ msgstr ""
+#~ "این دوره برای صرفهجویی در نوشتار متنی rustdoc را در اسلایدها قرار نمیدهد، "
+#~ "اما در کدهای دنیای واقعی باید وجود داشته باشد."
+
+#~ msgid ""
+#~ "Inner doc comments are discussed later (in the page on modules) and need "
+#~ "not be addressed here."
+#~ msgstr ""
+#~ "کامنت های داخل کد در بخشهای بعدی (در صفحه مربوط به ماژولها) مورد بحث قرار "
+#~ "میگیرد و نیازی به پرداختن به آنها در اینجا نیست."
+
+#~ msgid ""
+#~ "Rustdoc comments can contain code snippets that we can run and test using "
+#~ "`cargo test`. We will discuss these tests in the [Testing section](../"
+#~ "testing/doc-tests.html)."
+#~ msgstr ""
+#~ "کامنت های rustdoc میتوانند حاوی قطعه کدهایی باشند که میتوانیم آنها را با "
+#~ "استفاده از `cargo test` اجرا و تست کنیم. ما در "
+#~ "[بخش تست نویسی](../testing/doc-tests.html) در مورد این تستها بحث خواهیم "
+#~ "کرد."
+
+#~ msgid ""
+#~ "Methods are functions associated with a type. The `self` argument of a "
+#~ "method is an instance of the type it is associated with:"
+#~ msgstr ""
+#~ "متدها، تابعهایی مربوط به یک نوع خاص هستند. آرگومان `self` یک متد، نمونهای "
+#~ "از نوعی است که با آن مرتبط است:"
+
+#~ msgid ""
+#~ "We will look much more at methods in today's exercise and in tomorrow's "
+#~ "class."
+#~ msgstr "در تمرین امروز و کلاس فردا بیشتر به متدها میپردازیم."
+
+#~ msgid ""
+#~ "Add a static method called `Rectangle::new` and call this from `main`:"
+#~ msgstr ""
+#~ "یک متد استاتیک به نام `Rectangle::new` اضافه کنید و "
+#~ "آن را از `main` فراخوانی کنید:"
+
+#~ msgid ""
+#~ "While _technically_, Rust does not have custom constructors, static "
+#~ "methods are commonly used to initialize structs (but don't have to). The "
+#~ "actual constructor, `Rectangle { width, height }`, could be called "
+#~ "directly. See the [Rustnomicon](https://doc.rust-lang.org/nomicon/"
+#~ "constructors.html)."
+#~ msgstr ""
+#~ "در حالی که از _نظر فنی_ راست یک متد سازنده خاص ندارد، معمولاً از متدهای "
+#~ "استاتیک برای مقداردهی اولیه ساختارها استفاده میشود (اما الزامی نیست). "
+#~ "سازنده اصلی ، `Rectangle { width, height }` ، را "
+#~ "میتوان به طور مستقیم فراخوانی کرد. برای اطلاعات بیشتر [Rustnomicon]"
+#~ "(https://doc.rust-lang.org/nomicon/constructors.html) را ببینید."
+
+#~ msgid ""
+#~ "Add a `Rectangle::square(width: u32)` constructor to illustrate that such "
+#~ "static methods can take arbitrary parameters."
+#~ msgstr ""
+#~ "برای نشان دادن اینکه چنین متدهای استاتیک میتوانند آرگومانهای دلخواه "
+#~ "بگیرند، با ارگمانهای یک سازنده `Rectangle::square(width: "
+#~ "u32)` اضافه کنید."
+
+#~ msgid "Function Overloading"
+#~ msgstr "سربارگذاری تابع (Function Overloading)"
+
+#~ msgid "Overloading is not supported:"
+#~ msgstr "سربارگذاری پشتیبانی نمیشود, چون:"
+
+#~ msgid "Always takes a fixed number of parameters."
+#~ msgstr "همیشه تعداد ثابتی از آرگومانها میگیرد."
+
+#~ msgid "Default values are not supported:"
+#~ msgstr "مقادیر پیشفرض پشتیبانی نمیشوند:"
+
+#~ msgid "All call sites have the same number of arguments."
+#~ msgstr "تمام محلهای فراخوانی دارای تعداد یکسانی از آرگومان هستند."
+
+#~ msgid "Macros are sometimes used as an alternative."
+#~ msgstr "گاهی اوقات از ماکروها به عنوان جایگزین استفاده میشود."
+
+#~ msgid "However, function parameters can be generic:"
+#~ msgstr "با این حال، پارامترهای تابع میتوانند جنریک باشند:"
+
+#~ msgid ""
+#~ "When using generics, the standard library's `Into` can provide a kind "
+#~ "of limited polymorphism on argument types. We will see more details in a "
+#~ "later section."
+#~ msgstr ""
+#~ "هنگام استفاده از جنریکها، `Into` کتابخانه "
+#~ "استاندارد میتواند نوعی چندشکلی (polymorphism) محدود در انواع آرگومانها "
+#~ "فراهم کند. جزئیات بیشتر را در بخشهای بعدی خواهیم دید."
+
+#~ msgid "Day 1: Morning Exercises"
+#~ msgstr "روز اول: تمرینهای صبح"
+
+#~ msgid "In these exercises, we will explore two parts of Rust:"
+#~ msgstr "در این تمرینها، دو بخش از راست را بررسی خواهیم کرد:"
+
+#~ msgid "Implicit conversions between types."
+#~ msgstr "تبدیلهای ضمنی بین انواع"
+
+#~ msgid "Arrays and `for` loops."
+#~ msgstr "آرایهها و حلقههای `for`"
+
+#~ msgid "A few things to consider while solving the exercises:"
+#~ msgstr "چند نکته را هنگام حل تمرینها درنظر بگیرید:"
+
+#~ msgid ""
+#~ "Use a local Rust installation, if possible. This way you can get auto-"
+#~ "completion in your editor. See the page about [Using Cargo](../../cargo."
+#~ "md) for details on installing Rust."
+#~ msgstr ""
+#~ "در صورت امکان، از نصب محلی راست استفاده کنید. از این طریق میتوانید از "
+#~ "تکمیل خودکار در ویرایشگر خود استفاده کنید. برای جزئیات بیشتر در مورد نصب "
+#~ "راست، صفحه مربوط به [استفاده از کارگو](../../cargo.md) را ببینید."
+
+#~ msgid "Alternatively, use the Rust Playground."
+#~ msgstr "در غیر این صورت از `Rust Playground` استفاده کنید."
+
+#~ msgid ""
+#~ "The code snippets are not editable on purpose: the inline code snippets "
+#~ "lose their state if you navigate away from the page."
+#~ msgstr ""
+#~ "قطعه کدها به صورت عمدی قابل ویرایش نیستند: قطعه کدهای درونخطی اگر از صفحه "
+#~ "خارج شوید، به حالت پیشفرض بازنشانی میشوند و تغییرات شما درنظر گرفته "
+#~ "نمیشود."
+
+#~ msgid ""
+#~ "Rust will not automatically apply _implicit conversions_ between types "
+#~ "([unlike C++](https://en.cppreference.com/w/cpp/language/"
+#~ "implicit_conversion)). You can see this in a program like this:"
+#~ msgstr ""
+#~ "راست به طور خودکار تبدیلهای صریح بین انواع را اعمال نمیکند ([برخلاف زبان "
+#~ "`C++`](https://en.cppreference.com/w/cpp/language/"
+#~ "implicit_conversion)).به عنوان مثال میتوانید این را در یک برنامه ببینید:"
+
+#~ msgid ""
+#~ "The Rust integer types all implement the [`From`](https://doc.rust-"
+#~ "lang.org/std/convert/trait.From.html) and [`Into`](https://doc.rust-"
+#~ "lang.org/std/convert/trait.Into.html) traits to let us convert between "
+#~ "them. The `From` trait has a single `from()` method and similarly, the "
+#~ "`Into` trait has a single `into()` method. Implementing these traits "
+#~ "is how a type expresses that it can be converted into another type."
+#~ msgstr ""
+#~ "همه انواع عدد صحیح راست، تریتهای (Trait) [`Into`]"
+#~ "(https://doc.rust-lang.org/std/convert/trait.Into.html) و [`From`](https://doc.rust-lang.org/std/convert/trait."
+#~ "From.html) را پیادهسازی میکنند تا به ما امکان تبدیل بین انواع عددی صحیح "
+#~ "را بدهند. با پیاده سازی ویژگی `From` همه انواع به "
+#~ "صورت مشترک یک متد `from()` را دارند. با پیادهسازی "
+#~ "تریت `Into` همه انواع یک متد مشترک به اسم `into()` را دارند. پیادهسازی این تریتها راهی است که یک نوع "
+#~ "بیان میکند که میتواند به نوع دیگری تبدیل شود."
+
+#~ msgid ""
+#~ "The standard library has an implementation of `From for i16`, which "
+#~ "means that we can convert a variable `x` of type `i8` to an `i16` by "
+#~ "calling `i16::from(x)`. Or, simpler, with `x.into()`, because `From "
+#~ "for i16` implementation automatically create an implementation of "
+#~ "`Into for i8`."
+#~ msgstr ""
+#~ "کتابخانه استاندارد یک پیادهسازی `From for i16` "
+#~ "دارد `i16` دارد، به این معنی که میتوانیم یک متغیر "
+#~ "`x` از نوع `i8` را با فراخوانی `i16::from(x)` به یک "
+#~ "`i16` تبدیل کنیم. یا به شیوه سادهتر، با `x.into()` ، زیرا پیادهسازی `From`"
+#~ "span> برای نوع `i16` به طور خودکار پیادهسازی`Into` برای نوع `i8` را ایجاد میکند."
+
+#~ msgid ""
+#~ "The same applies for your own `From` implementations for your own types, "
+#~ "so it is sufficient to only implement `From` to get a respective `Into` "
+#~ "implementation automatically."
+#~ msgstr ""
+#~ "همین امر برای پیادهسازیهای `From` خودتان برای انواع "
+#~ "خودتان نیز صدق میکند، بنابراین کافیست فقط `From` را "
+#~ "پیادهسازی کنید تا به طور خودکار پیادهسازی `Into` "
+#~ "مربوطه را دریافت کنید."
+
+#~ msgid "Execute the above program and look at the compiler error."
+#~ msgstr "برنامه فوق را اجرا و به خطای کامپایلر نگاه کنید."
+
+#~ msgid "Update the code above to use `into()` to do the conversion."
+#~ msgstr ""
+#~ "کد بالا را به گونهای بهروزرسانی کنید که از `into()` "
+#~ "برای انجام تبدیل استفاده شود."
+
+#~ msgid ""
+#~ "Change the types of `x` and `y` to other things (such as `f32`, `bool`, "
+#~ "`i128`) to see which types you can convert to which other types. Try "
+#~ "converting small types to big types and the other way around. Check the "
+#~ "[standard library documentation](https://doc.rust-lang.org/std/convert/"
+#~ "trait.From.html) to see if `From` is implemented for the pairs you "
+#~ "check."
+#~ msgstr ""
+#~ "نوع داده `x` و `y` را به چیزهای دیگری (مانند `f32`, `bool`, `i128`) "
+#~ "تغییر دهید تا ببینید کدام انواع را میتوانید به کدام انواع دیگر تبدیل "
+#~ "کنید. سعی کنید انواع کوچک را به انواع بزرگ تبدیل کنید و برعکس. [مستندات "
+#~ "کتابخانه استاندارد](https://doc.rust-lang.org/std/convert/trait.From."
+#~ "html) را بررسی کنید تا ببینید آیا `From` برای "
+#~ "تبدیل انواعایی که بررسی میکنید پیادهسازی شده است یا نه."
+
+#~ msgid "Arrays and `for` Loops"
+#~ msgstr "آرایهها و حلقههای `for`"
+
+#~ msgid "We saw that an array can be declared like this:"
+#~ msgstr "دیدیم که یک آرایه را میتوان به صورت زیر تعریف کرد: "
+
+#~ msgid ""
+#~ "You can print such an array by asking for its debug representation with "
+#~ "`{:?}`:"
+#~ msgstr ""
+#~ "میتوانید چنین آرایهای را با درخواست نمایش اشکالزدایی آن با `{:?}` چاپ کنید:"
+
+#~ msgid ""
+#~ "Rust lets you iterate over things like arrays and ranges using the `for` "
+#~ "keyword:"
+#~ msgstr ""
+#~ "راست به شما این امکان را میدهد تا با استفاده از کلمه کلیدی `for` بر روی "
+#~ "چیزهایی مانند آرایهها و رنجها پیمایش کنید:"
+
+#~ msgid "Bonus Question"
+#~ msgstr "سوال جایزهدار"
+
+#~ msgid ""
+#~ "Could you use `&[i32]` slices instead of hard-coded 3 × 3 matrices for "
+#~ "your argument and return types? Something like `&[&[i32]]` for a two-"
+#~ "dimensional slice-of-slices. Why or why not?"
+#~ msgstr ""
+#~ "آیا میتوانید به جای ماتریسهای 3 × 3 هاردکد شده از برشهای `&[i32]` برای آرگومان و انواع برگشتی تابع خود استفاده "
+#~ "کنید؟ چیزی شبیه `&[&[i32]]` برای برش-از-برش دو بعدی. "
+#~ "آیا امکان پذیر هست؟ چرا اره و چرا نه؟"
+
+#~ msgid ""
+#~ "See the [`ndarray` crate](https://docs.rs/ndarray/) for a production "
+#~ "quality implementation."
+#~ msgstr ""
+#~ "برای دیدن یک پیادهسازی با کیفیت پروداکشن به جعبه [`ndarray`](https://docs.rs/ndarray/) سر بزنید."
+
+#~ msgid ""
+#~ "The solution and the answer to the bonus section are available in the "
+#~ "[Solution](solutions-morning.md#arrays-and-for-loops) section."
+#~ msgstr ""
+#~ "راهحلها و پاسخ به بخش جایزه در بخش جوابها](solutions-morning.md#arrays-"
+#~ "and-for-loops) موجود است."
+
+#~ msgid ""
+#~ "The use of the reference `&array` within `for n in &array` is a subtle "
+#~ "preview of issues of ownership that will come later in the afternoon."
+#~ msgstr ""
+#~ "استفاده از ارجاع `&array` در بخش `for "
+#~ "n in &array` پیشنمایشی کوچکی از مسئله مالکیت است در قسمت عصر که "
+#~ "بعداً به ان خواهیم پرداخت."
+
+#~ msgid "Without the `&`..."
+#~ msgstr "بدون استفاده از `&` ..."
+
+#~ msgid ""
+#~ "The loop would have been one that consumes the array. This is a change "
+#~ "[introduced in the 2021 Edition](https://doc.rust-lang.org/edition-guide/"
+#~ "rust-2021/IntoIterator-for-arrays.html)."
+#~ msgstr ""
+#~ "حلقه به گونهای میبود که آرایه را مصرف میکند. این تغییری [در ویرایش سال "
+#~ "۲۰۲۱ معرفی شده است.](https://doc.rust-lang.org/edition-guide/rust-2021/"
+#~ "IntoIterator-for-arrays.html)"
+
+#~ msgid ""
+#~ "An implicit array copy would have occurred. Since `i32` is a copy type, "
+#~ "then `[i32; 3]` is also a copy type."
+#~ msgstr ""
+#~ "یک کپی آرایه ضمنی رخ میداد. از آنجایی که `i32` یک نوع کپی است، پس `[i32; 3]` نیز یک نوع کپی است."
+
+#~ msgid ""
+#~ "As we have seen, `if` is an expression in Rust. It is used to "
+#~ "conditionally evaluate one of two blocks, but the blocks can have a value "
+#~ "which then becomes the value of the `if` expression. Other control flow "
+#~ "expressions work similarly in Rust."
+#~ msgstr ""
+#~ "همانطور که دیدیم، `if` در Rust یک عبارت است. عبارت `if` برای آن استفاده "
+#~ "میشود که یکی از ۲ بلوک شرطی را در راست ایجاد کند. توجه داشته باشید که در "
+#~ "راست این بلاک های `if` میتوانند یک مقدار را برگرداند و در اصطلاح یک "
+#~ "مقدار داشته باشند. بقیه عبارات کنترل جریان نیز مشابه این کار میکنند."
+
+#~ msgid ""
+#~ "The same rule is used for functions: the value of the function body is "
+#~ "the return value:"
+#~ msgstr ""
+#~ "قانون مشابهای برای توابع نیز صدق میکند: آخرین مقدار در بلاک تابع مقدار "
+#~ "برگشتی است: "
+
+#~ msgid ""
+#~ "The point of this slide is to show that blocks have a type and value in "
+#~ "Rust. "
+#~ msgstr ""
+#~ "هدف از این اسلاید نشان دادن این است که بلوک ها در Rust دارای نوع و مقدار "
+#~ "هستند. "
+
+#~ msgid ""
+#~ "The [`for` loop](https://doc.rust-lang.org/std/keyword.for.html) is "
+#~ "closely related to the [`while let` loop](while-let-expressions.md). It "
+#~ "will automatically call `into_iter()` on the expression and then iterate "
+#~ "over it:"
+#~ msgstr ""
+#~ "[حلقه `for`](https://doc.rust-lang.org/std/keyword.for.html) به طور "
+#~ "نزدیکی به حلقه [حلقه `while let` ](while-let-expressions.md) مرتبط است. "
+#~ "حلقه `for` به طور خودکار `into_iter()` را روی "
+#~ "عبارت فراخوانی میکند و سپس روی آن پیشمایش انجام میدهد:"
+
+#~ msgid "You can use `break` and `continue` here as usual."
+#~ msgstr ""
+#~ "مثل بقیه زبانها میتوانید از `break` و `continue` به صورت عادی استفاده "
+#~ "کنید."
+
+#~ msgid "Index iteration is not a special syntax in Rust for just that case."
+#~ msgstr "پیشمایش اندیس در زبان راست دارای سینتکس خاصی نمیباشد."
+
+#~ msgid "`(0..10)` is a range that implements an `Iterator` trait. "
+#~ msgstr ""
+#~ "(0..10)
یک محدوده است که "
+#~ "ویژگی `Iterator` را پیادهسازی میکند."
+
+#~ msgid ""
+#~ "`step_by` is a method that returns another `Iterator` that skips every "
+#~ "other element. "
+#~ msgstr ""
+#~ "متد `step_by`, متدی است که یک `Iterator` دیگر با قابلیت در نظر نگرفتن "
+#~ "بقیه عناصر را برمیگرداند."
+
+#~ msgid ""
+#~ "Modify the elements in the vector and explain the compiler errors. Change "
+#~ "vector `v` to be mutable and the for loop to `for x in v.iter_mut()`."
+#~ msgstr ""
+#~ "عناصر را در بردار تغییر دهید و خطاهای کامپایلر را توضیح دهید. بردار v را "
+#~ "قابل تغییر کنید (با اضافه کردن `mut`) و حلقه `for` را به `for x in v.iter_mut()` تغییر دهید."
+
+#~ msgid "`loop` expressions"
+#~ msgstr "عبارات `loop`"
+
+#~ msgid ""
+#~ "Finally, there is a [`loop` keyword](https://doc.rust-lang.org/reference/"
+#~ "expressions/loop-expr.html#infinite-loops) which creates an endless loop."
+#~ msgstr ""
+#~ "در نهایت، [کلمه کلیدی `loop`](https://doc.rust-lang.org/reference/"
+#~ "expressions/loop-expr.html#infinite-loops) وجود دارد که یک حلقه بیپایان "
+#~ "ایجاد میکند."
+
+#~ msgid "Here you must either `break` or `return` to stop the loop:"
+#~ msgstr ""
+#~ "اینجا باید از `break` یا `return` برای توقف حلقه و خروج از آن استفاده "
+#~ "کنید:"
+
+#~ msgid "Break the `loop` with a value (e.g. `break 8`) and print it out."
+#~ msgstr ""
+#~ "حلقه `loop` را با یک مقدار متوقف کنید (به عنوان مثال `break "
+#~ "8` ) و آن را چاپ کنید."
+
+#~ msgid ""
+#~ "Due to type inference the `i32` is optional. We will gradually show the "
+#~ "types less and less as the course progresses."
+#~ msgstr ""
+#~ "به دلیل تعیین نوع ضمنی گذاشتن `i32` اختیاریست. با جلو رفتن در این دوره "
+#~ "کمتر و کمتر آن را نشان خواهیم داد."
+
+#~ 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 ""
+#~ "کد زیر به کامپایلر میگوید که بدون اینکه کد به صراحت نوع داده را مشخص کند، "
+#~ "در یک کانتینر عمومی (generic container) خاص کپی کند، با استفاده از _ به "
+#~ "عنوان یک جایگزین برای اعلام نوع داده: "
+
+#~ msgid ""
+#~ "[`collect`](https://doc.rust-lang.org/stable/std/iter/trait.Iterator."
+#~ "html#method.collect) relies on [`FromIterator`](https://doc.rust-lang.org/"
+#~ "std/iter/trait.FromIterator.html), which [`HashSet`](https://doc.rust-"
+#~ "lang.org/std/collections/struct.HashSet.html#impl-FromIterator%3CT%3E-for-"
+#~ "HashSet%3CT,+S%3E) implements."
+#~ msgstr ""
+#~ "[`collect`](https://doc.rust-lang.org/stable/std/iter/trait.Iterator."
+#~ "html#method.collect) به [`FromIterator`](https://doc.rust-lang.org/std/"
+#~ "iter/trait.FromIterator.html) متکی است که [`HashSet`](https://doc.rust-"
+#~ "lang.org/std/collections/struct.HashSet.html#impl-FromIterator%3CT%3E-for-"
+#~ "HashSet%3CT,+S%3E) آن را پیادهسازی میکند."
+
+#~ msgid "Static and Constant Variables"
+#~ msgstr "متغیرهای ایستا و ثابت"
+
+#~ msgid ""
+#~ "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 ""
+#~ "کد زیر نشان می دهد که چرا کامپایلر نمی تواند به سادگی از مکان های حافظه "
+#~ "که قبلا برای یک متغییر در نظر گرفته است به صورت مجدد وقتی که یک متغییر "
+#~ "غیر قابل تغییر داریم استفاده کند. حتی اگر چه نوع داده تغییر نکند."
+
+#~ msgid ""
+#~ "This page offers an enum type `CoinFlip` with two variants `Heads` and "
+#~ "`Tails`. You might note the namespace when using variants."
+#~ msgstr ""
+#~ "در این صفحه نوع`Enum`به اسم `CoinFlip` که دارای `Heads` و `Tails` میباشد. "
+#~ "هنگام استفاده از `Enum`ها، به این اینگونه نامها توجه کنید."
+
+#~ msgid "In both, associated functions are defined within an `impl` block."
+#~ msgstr "در هر دو، توابع مورد نیازشون در داخل یک بلاک `impl` تعریف میشوند."
+
+#~ msgid ""
+#~ "You can define richer enums where the variants carry data. You can then "
+#~ "use the `match` statement to extract the data from each variant:"
+#~ msgstr ""
+#~ "می توانید شمارش های غنی تری را تعریف کنید که در آن انواع مختلف داده "
+#~ "باشند. سپس میتوانید از دستور `match` برای استخراج دادهها از هر فیلد "
+#~ "استفاده کنید:"
+
+#~ msgid ""
+#~ "The expression is matched against the patterns from top to bottom. There "
+#~ "is no fall-through like in C or C++."
+#~ msgstr ""
+#~ "بر خلاف زبانهای برخلاف C یا `C++` طبیق الگو به صورت "
+#~ "از بالا به پایین نمیباشد."
+
+#~ msgid ""
+#~ "The match expression has a value. The value is the last expression in the "
+#~ "match arm which was executed."
+#~ msgstr ""
+#~ "عبارت `match` دارای یک مقدار بازگشتی است. این مقدار آخرین عبارت در بازوی "
+#~ "`match` ای است که اجرا شده است."
+
+#~ msgid ""
+#~ "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. "
+#~ msgstr ""
+#~ "از بالا شروع میکنیم و به دنبال الگویی هستیم که با مقدار مطابقت داشته "
+#~ "باشد، سپس کد پس از `=>` را اجرا میکنیم. بعد از اینکه "
+#~ "توی match اولین طبیق الگو انجام شد جستجو متوقف میشود."
+
+#~ msgid "`match` inspects a hidden discriminant field in the `enum`."
+#~ msgstr ""
+#~ "دستور `match` یک فیلد تشخیصی پنهان (hidden discriminant field) در `enum` "
+#~ "را بررسی می کند."
+
+#~ msgid ""
+#~ "It is possible to retrieve the discriminant by calling `std::mem::"
+#~ "discriminant()`"
+#~ msgstr ""
+#~ "می توان با فراخوانی `std::mem::discriminant()` فیلد "
+#~ "تشخیصی پنهان را دریافت کرد."
+
+#~ msgid ""
+#~ "This is useful, for example, if implementing `PartialEq` for structs "
+#~ "where comparing field values doesn't affect equality."
+#~ msgstr ""
+#~ "بهتره بدانیم که اگر `PartialEq` را برای ساختارهایی پیاده سازی کنیم. "
+#~ "قابلیت `PartialEq` بر برابری تأثیر نمیگذارد."
+
+#~ msgid ""
+#~ "`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."
+#~ msgstr ""
+#~ "`WebEvent::Click { ... }` دقیقاً مانند `WebEvent::Click(Click)` با `struct Click "
+#~ "{ ... }` در سطح بالا نیست.برای مثال, نسخه درونخطی نمیتواند ویژگیها "
+#~ "را پیادهسازی کند."
+
+#~ msgid ""
+#~ "Rust enums are packed tightly, taking constraints due to alignment into "
+#~ "account:"
+#~ msgstr ""
+#~ "`enum`ها در Rust به صورت فشرده بسته بندی شده اند، با در نظر گرفتن محدودیت "
+#~ "های ناشی از هم ترازی:"
+
+#~ msgid ""
+#~ "Internally Rust is using a field (discriminant) to keep track of the enum "
+#~ "variant."
+#~ msgstr ""
+#~ "زبان Rust, به صورت داخلی از یک فیلد (discriminant) برای رهگیری نوع "
+#~ "فیلدهای `enum` استفاده می کند."
+
+#~ msgid "Try out other types such as"
+#~ msgstr "سایر انواعداده را امتحان کنید، مانند:"
+
+#~ msgid "`dbg_size!(bool)`: size 1 bytes, align: 1 bytes,"
+#~ msgstr ""
+#~ "dbg_size!(bool)
: اندازه توی "
+#~ "حافظه 1 بایت، فضای مورد نیاز برای align نیز 1 بایت است,"
+
+#~ msgid ""
+#~ "`dbg_size!(Option)`: size 1 bytes, align: 1 bytes (niche "
+#~ "optimization, see below),"
+#~ msgstr ""
+#~ "dbg_size!(Option)
: "
+#~ "اندازه توی حافظه 1 بایت، ، فضای مورد نیاز برای align نیز 1 بایت است "
+#~ "(بهینهسازی خاص، در زیر ببینید)"
+
+#~ msgid ""
+#~ "`dbg_size!(&i32)`: size 8 bytes, align: 8 bytes (on a 64-bit machine),"
+#~ msgstr ""
+#~ "dbg_size!(&i32)
: اندازه توی "
+#~ "حافظه ۸ بایت، ، فضای مورد نیاز برای align نیز ۸ بایت است (روی ماشین ۶۴ "
+#~ "بیتی)"
+
+#~ msgid ""
+#~ "`dbg_size!(Option<&i32>)`: size 8 bytes, align: 8 bytes (null pointer "
+#~ "optimization, see below)."
+#~ msgstr ""
+#~ "dbg_size!(Option<&i32>)
: "
+#~ "اندازه توی حافظه ۸ بایت، ، فضای مورد نیاز برای align نیز ۸ بایت است "
+#~ "(بهینهسازی اشارهگر NULL را در زیر ببینید)"
+
+#~ msgid ""
+#~ "Niche optimization: Rust will merge unused bit patterns for the enum "
+#~ "discriminant."
+#~ msgstr ""
+#~ "بهینهسازی خاص: Rust الگوهای بیتی استفاده نشده را برای discriminant نوع "
+#~ "`Enum` ادغام میکند."
+
+#~ msgid ""
+#~ "More complex example if you want to discuss what happens when we chain "
+#~ "more than 256 `Option`s together."
+#~ msgstr ""
+#~ "مثال پیچیدهتر اگر میخواهید در مورد اتفاقی که میافتد زمانی که بیش از ۲۶۵ "
+#~ "عدد `Option` را به صورت تو در تو صدا بزنیم بحث کنید."
+
+#~ msgid ""
+#~ "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, execute a block which is "
+#~ "required to abort normal control flow (with `panic`/`return`/`break`/"
+#~ "`continue`):"
+#~ msgstr ""
+#~ "از نسخه 1.65، یک کلیدواژه مشابه به اسم [`let-else`](https://doc.rust-"
+#~ "lang.org/rust-by-example/flow_control/let_else.html) اجازه میدهد تا یک "
+#~ "انتساب به صورت destructuring انجام شود، یا اگر شکست خورد، یک بلوک را اجرا "
+#~ "کند که برای خاتمه دادن به جریان کنترل عادی (با panic/return/break/"
+#~ "continue) ضروری است:"
+
+#~ msgid ""
+#~ "The [`match` keyword](https://doc.rust-lang.org/reference/expressions/"
+#~ "match-expr.html) is used to match a value against one or more patterns. "
+#~ "In that sense, it works like a series of `if let` expressions:"
+#~ msgstr ""
+#~ "[کلمهکلیدی `match`](https://doc.rust-lang.org/reference/expressions/match-"
+#~ "expr.html) برای مطابقت یک مقدار در برابر یک یا چند الگو استفاده میشود. از "
+#~ "این نظر، مانند یک سری عبارات `if let` عمل میکند:"
+
+#~ msgid "Save the match expression to a variable and print it out."
+#~ msgstr ""
+#~ "مقادر بازگشتی از دستور `match` را در متغییری ذخیره کنید و آن را چاپ کنید."
+
+#~ msgid "Remove `.as_deref()` and explain the error."
+#~ msgstr ""
+#~ ".as_deref()
را حذف کنید و "
+#~ "خطا را توضیح دهید."
+
+#~ msgid ""
+#~ "`std::env::args().next()` returns an `Option`, but we cannot "
+#~ "match against `String`."
+#~ msgstr ""
+#~ "std::env::args().next()
یک "
+#~ "`Option` را برمیگرداند،چرا نمی توانیم به "
+#~ "عنوان `String` تطبیق الگو کنیم؟"
+
+#~ msgid ""
+#~ "`as_deref()` transforms an `Option` to `Option<&T::Target>`. In our "
+#~ "case, this turns `Option` into `Option<&str>`."
+#~ msgstr ""
+#~ "as_deref()
یک `Option` را به `Option<&T::Target>`"
+#~ "span> تبدیل میکند. در مورد ما، این `Option` "
+#~ "را به `Option<&str>` تبدیل میکند."
+
+#~ msgid ""
+#~ "We can now use pattern matching to match against the `&str` inside "
+#~ "`Option`."
+#~ msgstr ""
+#~ "اکنون میتوانیم از تطبیق الگو برای مطابقت با `&str` "
+#~ "داخل `Option` استفاده کنیم."
+
+#~ msgid "The `_` pattern is a wildcard pattern which matches any value."
+#~ msgstr ""
+#~ "الگوی _ یک الگوی wildcard (هر حالتی) است که با هر مقداری مطابقت دارد."
+
+#~ msgid ""
+#~ "It can be useful to show how binding works, by for instance replacing a "
+#~ "wildcard character with a variable, or removing the quotes around `q`."
+#~ msgstr ""
+#~ "میتوان با جایگزینی یک کاراکتر`_` با یک متغیر، یا حذف نقل قول ها در اطراف "
+#~ "`q`، به نمایش نحوه کارکرد انتساب کمک کرد."
+
+#~ msgid "You can demonstrate matching on a reference."
+#~ msgstr "میتوانید تطبیق الگو را با یک ارجاع را نشان دهید."
+
+#~ msgid ""
+#~ "This might be a good time to bring up the concept of irrefutable "
+#~ "patterns, as the term can show up in error messages."
+#~ msgstr ""
+#~ "این ممکن است زمان خوبی برای مطرح کردن مفهوم الگوهای غیرقابل انکار "
+#~ "(irrefutable patterns) باشد، زیرا این اصطلاح می تواند در پیام های خطا "
+#~ "ظاهر شود."
+
+#~ msgid "You can also destructure `structs`:"
+#~ msgstr "همچنین میتوانید `structs` را destructure کنید:"
+
+#~ msgid ""
+#~ "Destructuring of slices of unknown length also works with patterns of "
+#~ "fixed length."
+#~ msgstr ""
+#~ "برای destructure کردن برش هایی با طول ناشناخته نیز با الگوهای طول ثابت "
+#~ "کار می کند."
+
+#~ msgid ""
+#~ "When matching, you can add a _guard_ to a pattern. This is an arbitrary "
+#~ "Boolean expression which will be executed if the pattern matches:"
+#~ msgstr ""
+#~ "هنگام تطابق، می توانید یک _guard_ به یک الگو اضافه کنید. این یک عبارت "
+#~ "بولین دلخواه است که در صورت مطابقت الگو اجرا می شود."
+
+#~ msgid ""
+#~ "You can use the variables defined in the pattern in your if expression."
+#~ msgstr ""
+#~ "می توانید از متغیرهای تعریف شده در الگو در عبارت `if` خود استفاده کنید."
+
+#~ msgid "Day 1: Afternoon Exercises"
+#~ msgstr "روز ۱: تمرینهای عصر"
+
+#~ msgid "We will look at two things:"
+#~ msgstr "ما روی ۲ تا چیز نگاهی میاندازیم:"
+
+#~ msgid "The Luhn algorithm,"
+#~ msgstr "الگوریتم Luhn"
+
+#~ msgid "An exercise on pattern matching."
+#~ msgstr "تمرینی درباره تطبیق الگو"
+
+#~ msgid ""
+#~ "Try to solve the problem the \"simple\" way first, using `for` loops and "
+#~ "integers. Then, revisit the solution and try to implement it with "
+#~ "iterators."
+#~ msgstr ""
+#~ "ابتدا سعی کنید مشکل را به روش «ساده» با استفاده از حلقههای `for` و اعداد "
+#~ "صحیح حل کنید. سپس، سعی کنید آن را با استفاده از `iterator`ها پیادهسازی "
+#~ "کنید."
+
+#~ msgid ""
+#~ "Memory management: stack vs heap, manual memory management, scope-based "
+#~ "memory management, and garbage collection."
+#~ msgstr ""
+#~ "مدیریت حافظه: پشته (Stack) در مقابل انباشت (Heap)، مدیریت دستی حافظه، "
+#~ "مدیریت حافظه مبتنی بر اسکوپ و جمع آوری زباله. "
+
+#~ msgid ""
+#~ "Ownership: move semantics, copying and cloning, borrowing, and lifetimes."
+#~ msgstr ""
+#~ "Ownership: حرکت semantics،copying و cloning, borrowing و lifetimes."
+
+#~ msgid "Structs and methods."
+#~ msgstr "ساختارها و متدها."
+
+#~ msgid ""
+#~ "The Standard Library: `String`, `Option` and `Result`, `Vec`, `HashMap`, "
+#~ "`Rc` and `Arc`."
+#~ msgstr ""
+#~ "کتابخانه استاندارد: `String`, `Option` و `Result`, `Vec`, `HashMap`, "
+#~ "`Rc` و `Arc`."
+
+#~ msgid "Modules: visibility, paths, and filesystem hierarchy."
+#~ msgstr "ماژولها: قابل دیدن بودن, مسیرها و مدیریت سلسله مراتبی فایلسیستم"
+
+#~ msgid "First, let's refresh how memory management works."
+#~ msgstr ""
+#~ "قبل از هر چیزی, آنچه درباره مدیریت حافظه میدونیم رو بروز رسانی کنیم."
+
+#~ msgid "The Stack vs The Heap"
+#~ msgstr "پشته (Stack) در مقابل انباشت (Heap)"
+
+#~ msgid "Stack and Heap Example"
+#~ msgstr "یک مثال از پشته و انباشت"
+
+#~ msgid "You allocate and deallocate heap memory yourself."
+#~ msgstr "شما خودتان حافظه انباشت را تخصیص داده و تخصیصزدایی میکنید."
+
+#~ msgid ""
+#~ "If not done with care, this can lead to crashes, bugs, security "
+#~ "vulnerabilities, and memory leaks."
+#~ msgstr ""
+#~ "اگر با دقت انجام نشود، این می تواند منجر به خرابی، اشکال، آسیبپذیریهای "
+#~ "امنیتی و نشتی حافظه شود."
+
+#~ msgid "C Example"
+#~ msgstr "مثالی در زبان C"
+
+#~ msgid "You must call `free` on every pointer you allocate with `malloc`:"
+#~ msgstr ""
+#~ "باید `free` را برای هر اشارهگری که با `malloc` تخصیص میدهید، فراخوانی "
+#~ "کنید:"
+
+#~ msgid ""
+#~ "Memory is leaked if the function returns early between `malloc` and "
+#~ "`free`: the pointer is lost and we cannot deallocate the memory. Worse, "
+#~ "freeing the pointer twice, or accessing a freed pointer can lead to "
+#~ "exploitable security vulnerabilities."
+#~ msgstr ""
+#~ "اگر تابع بین `malloc` و `free` مقداری را بازگرداند و از تابع خارج شویم، "
+#~ "حافظه نشت میکند: اشاره گر گم میشود و نمیتوانیم حافظه را تخصیصزدایی کنیم. "
+#~ "بدتر از آن، آزاد کردن مجدد اشاره گر یا دسترسی به یک اشاره گر که قبلا آزاد "
+#~ "شده میتواند منجر به آسیبپذیریهای امنیتی قابل سوءاستفاده شود."
+
+#~ msgid ""
+#~ "Constructors and destructors let you hook into the lifetime of an object."
+#~ msgstr ""
+#~ "سازندهها و مخربها به شما امکان میدهند تا به طولعمر یک شیء متصل (hook) "
+#~ "شوید."
+
+#~ msgid ""
+#~ "By wrapping a pointer in an object, you can free memory when the object "
+#~ "is destroyed. The compiler guarantees that this happens, even if an "
+#~ "exception is raised."
+#~ msgstr ""
+#~ "با پیچیدن (wrapping) یک اشاره گر در یک شیء، میتوانید هنگام تخریب شیء، "
+#~ "حافظه را آزاد کنید. کامپایلر تضمین میکند که این اتفاق میافتد، حتی اگر یک "
+#~ "exception ایجاد شود."
+
+#~ msgid ""
+#~ "This is often called _resource acquisition is initialization_ (RAII) and "
+#~ "gives you smart pointers."
+#~ msgstr ""
+#~ "این اغلب به عنوان _resource acquisition is initialization_ (RAII) نامیده "
+#~ "میشود و به شما اشاره گرهای هوشمند میدهد."
+
+#~ msgid ""
+#~ "The `std::unique_ptr` object is allocated on the stack, and points to "
+#~ "memory allocated on the heap."
+#~ msgstr ""
+#~ "ابجکت `std::unique_ptr` در پشته تخصیص داده میشود و "
+#~ "به حافظهای که روی انباشت تخصیص داده شده اشاره میکند."
+
+#~ msgid ""
+#~ "At the end of `say_hello`, the `std::unique_ptr` destructor will run."
+#~ msgstr ""
+#~ "در پایان `say_hello`، تابع مخرب `std::unique_ptr` "
+#~ "اجرا میشود."
+
+#~ msgid "The destructor frees the `Person` object it points to."
+#~ msgstr "مخرب شیء `Person` را که به آن اشاره میکند، آزاد میکند."
+
+#~ msgid ""
+#~ "Special move constructors are used when passing ownership to a function:"
+#~ msgstr ""
+#~ "هنگام انتقال مالکیت به یک تابع از سازندههای مخصوص انتقال استفاده میشود:"
+
+#~ msgid ""
+#~ "An alternative to manual and scope-based memory management is automatic "
+#~ "memory management:"
+#~ msgstr ""
+#~ "یک جایگزین برای مدیریت حافظه دستی و مبتنی بر اسکوپ، مدیریت حافظه خودکار "
+#~ "است:"
+
+#~ msgid "The programmer never allocates or deallocates memory explicitly."
+#~ msgstr "برنامه نویس هیچ وقت به صورت صریح حافظه را تخصیص یا آزاد نمیکند."
+
+#~ msgid ""
+#~ "A garbage collector finds unused memory and deallocates it for the "
+#~ "programmer."
+#~ msgstr ""
+#~ "یک جمعآوری زباله حافظه استفاده نشده را پیدا میکند و آن را برای برنامهنویس "
+#~ "تخصیصزدایی (آزاد) میکند."
+
+#~ msgid "Java Example"
+#~ msgstr "مثالی در Java"
+
+#~ msgid "The `person` object is not deallocated after `sayHello` returns:"
+#~ msgstr "شیء `person` پس از بازگشت `sayHello` تخصیصزدایی نمیشود:"
+
+#~ msgid "Memory Management in Rust"
+#~ msgstr "مدیریت حافظه در Rust"
+
+#~ msgid "Memory management in Rust is a mix:"
+#~ msgstr "مدیریت حافظه در Rust ترکیبی از موارد زیر است:"
+
+#~ msgid "Safe and correct like Java, but without a garbage collector."
+#~ msgstr "ایمن و صحیح مانند جاوا، اما بدون جمعآوری زباله."
+
+#~ msgid "Scope-based like C++, but the compiler enforces full adherence."
+#~ msgstr ""
+#~ "مبتنی بر اسکوپ مانند C++، اما کامپایلر همه موارد را "
+#~ "رعایت میکند."
+
+#~ msgid ""
+#~ "A Rust user can choose the right abstraction for the situation, some even "
+#~ "have no cost at runtime like C."
+#~ msgstr ""
+#~ "کاربر Rust میتواند انتخاب کند که کدام انتزاع برای وضعیت مورد نظر مناسب "
+#~ "است، برخی مانند C هزینهای در زمان اجرا ندارند."
+
+#~ msgid "Rust achieves this by modeling _ownership_ explicitly."
+#~ msgstr "زبان Rust این کار را با مدلسازی صریح مالکیت انجام میدهد."
+
+#~ msgid ""
+#~ "If asked how at this point, you can mention that in Rust this is usually "
+#~ "handled by RAII wrapper types such as [Box](https://doc.rust-lang.org/std/"
+#~ "boxed/struct.Box.html), [Vec](https://doc.rust-lang.org/std/vec/struct."
+#~ "Vec.html), [Rc](https://doc.rust-lang.org/std/rc/struct.Rc.html), or [Arc]"
+#~ "(https://doc.rust-lang.org/std/sync/struct.Arc.html). These encapsulate "
+#~ "ownership and memory allocation via various means, and prevent the "
+#~ "potential errors in C."
+#~ msgstr ""
+#~ "اگر توی این مرحله از شما پرسیده شد که چطوری این کار انجام میشود, میتوانید "
+#~ "به این موضوع که زبان راست معمولاً توسط انواع `wrapper RAII` مانند [`Box`]"
+#~ "(https://doc.rust-lang.org/std/boxed/struct.Box.html), [`Vec`](https://"
+#~ "doc.rust-lang.org/std/vec/struct.Vec.html), [`Rc`](https://doc.rust-lang."
+#~ "org/std/rc/struct.Rc.html), یا [`Arc`](https://doc.rust-lang.org/std/sync/"
+#~ "struct.Arc.html) مدیریت را انجام میدهد. اینها مالکیت و تخصیص حافظه را از "
+#~ "طریق روشهای مختلف دربرمیگیرند و از خطاهای بالقوه در C جلوگیری میکنند."
+
+#~ msgid ""
+#~ "You may be asked about destructors here, the [Drop](https://doc.rust-lang."
+#~ "org/std/ops/trait.Drop.html) trait is the Rust equivalent."
+#~ msgstr ""
+#~ "اگر درباره مخربها (destructors) از شما پرسیدند, مخرب ها معادل پیادهسازی "
+#~ "[Drop](https://doc.rust-lang.org/std/ops/trait.Drop.html) هستند."
+
+#~ msgid "A destructor can run here to free up resources."
+#~ msgstr "یک مخرب میتواند در اینجا اجرا شود تا منابع را آزاد کند."
+
+#~ msgid "There is always _exactly_ one variable binding which owns a value."
+#~ msgstr "همیشه مالکیت یک مقدار را یک متغییر که بهش انتساب میدیم دارد"
+
+#~ msgid "The heap data from `s1` is reused for `s2`."
+#~ msgstr "دادههای انباشت از `s1` دوباره برای `s2` استفاده میشود."
+
+#~ msgid ""
+#~ "When `s1` goes out of scope, nothing happens (it has been moved from)."
+#~ msgstr "وقتی از اسکوپ `s1` خارج میشویم، هیچ اتفاقی نمیافتد."
+
+#~ msgid ""
+#~ "If students ask about `derive`, it is sufficient to say that this is a "
+#~ "way to generate code in Rust at compile time. In this case the default "
+#~ "implementations of `Copy` and `Clone` traits are generated."
+#~ msgstr ""
+#~ "اگر دانشجویان در مورد `derive` پرسیدند، کافی است بگوییم که این راهی برای "
+#~ "تولید کد در`Rust` در زمان کامپایل است. در این مورد، پیادهسازیهای پیشفرض "
+#~ "صفتهای `Copy` و `Clone` تولید میشوند."
+
+#, fuzzy
+#~ msgid "Drawing A Simple GUI"
+#~ msgstr "یک کتابخانه GUI ساده"
+
+#, fuzzy
+#~ msgid "concurrency:"
+#~ msgstr "همزمانی"
+
+#, fuzzy
+#~ msgid "control flow:"
+#~ msgstr "کنترل جریان"
+
+#, fuzzy
+#~ msgid "error handling:"
+#~ msgstr "مدیریت خطا (Error Handling)"
+
+#, fuzzy
+#~ msgid "garbage collector:"
+#~ msgstr "Garbage Collection"
+
+#, fuzzy
+#~ msgid "generics:"
+#~ msgstr "Generics"
+
+#, fuzzy
+#~ msgid "integration test:"
+#~ msgstr "Integration Tests"
+
+#, fuzzy
+#~ msgid "main function:"
+#~ msgstr "فراخوانی متدهای ناامن"
+
+#, fuzzy
+#~ msgid "method:"
+#~ msgstr "متدها"
+
+#, fuzzy
+#~ msgid "module:"
+#~ msgstr "ماژولها"
+
+#, fuzzy
+#~ msgid "ownership:"
+#~ msgstr "مالکیت"
+
+#, fuzzy
+#~ msgid "panic:"
+#~ msgstr "Panics"
+
+#, fuzzy
+#~ msgid "receiver:"
+#~ msgstr "درایور"
+
+#, fuzzy
+#~ msgid "standard library:"
+#~ msgstr "کتابخانههای استاندارد"
+
+#, fuzzy
+#~ msgid "struct:"
+#~ msgstr "ساختارها"
+
+#, fuzzy
+#~ msgid "thread:"
+#~ msgstr "تردها"
+
+#, fuzzy
+#~ msgid "trait:"
+#~ msgstr "trait:"
+
+#, fuzzy
+#~ msgid "union:"
+#~ msgstr "Unions"
+
+#, fuzzy
+#~ msgid "unit test:"
+#~ msgstr "تستهای واحد (Unit Tests)"
+
+#, fuzzy
+#~ msgid "variable:\\"
+#~ msgstr "متغیرها"
+
+#, fuzzy
+#~ msgid "Pattern matching"
+#~ msgstr "تطبیق الگو"