mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-04-14 04:58:37 +02:00
fa: try to complete Farsi - part 4 (#2401)
fa: try to complete Farsi - part 4 --------- Co-authored-by: javad-jafari <javajafarifromsharak@gmail.com> Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com>
This commit is contained in:
parent
252bb62521
commit
25a2fa6a09
288
po/fa.po
288
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-10-04 21:48+0330\n"
|
||||
"PO-Revision-Date: 2024-10-13 22:50+0330\n"
|
||||
"Last-Translator: alix1383 <dev.alix13@gmail.com>\n"
|
||||
"Language-Team: Persian\n"
|
||||
"Language: fa\n"
|
||||
@ -554,7 +554,7 @@ msgstr "روز چهارم: صبح"
|
||||
#: src/SUMMARY.md src/running-the-course/course-structure.md
|
||||
#: src/welcome-day-4.md src/iterators.md
|
||||
msgid "Iterators"
|
||||
msgstr ""
|
||||
msgstr "Iterators"
|
||||
|
||||
#: src/SUMMARY.md src/iterators/iterator.md src/bare-metal/no_std.md
|
||||
msgid "`Iterator`"
|
||||
@ -776,7 +776,7 @@ msgstr "GoogleTest"
|
||||
|
||||
#: src/SUMMARY.md src/android/testing/mocking.md
|
||||
msgid "Mocking"
|
||||
msgstr ""
|
||||
msgstr "Mocking"
|
||||
|
||||
#: src/SUMMARY.md src/android/logging.md src/bare-metal/aps/logging.md
|
||||
msgid "Logging"
|
||||
@ -812,7 +812,7 @@ msgstr "Rust Bridge"
|
||||
|
||||
#: src/SUMMARY.md src/android/interoperability/cpp/generated-cpp.md
|
||||
msgid "Generated C++"
|
||||
msgstr ""
|
||||
msgstr "Generated C++"
|
||||
|
||||
#: src/SUMMARY.md
|
||||
msgid "C++ Bridge"
|
||||
@ -836,7 +836,7 @@ msgstr "مدیریت خطا ++C "
|
||||
|
||||
#: src/SUMMARY.md src/android/interoperability/cpp/type-mapping.md
|
||||
msgid "Additional Types"
|
||||
msgstr ""
|
||||
msgstr "تایپهای اضافی"
|
||||
|
||||
#: src/SUMMARY.md
|
||||
msgid "Building for Android: C++"
|
||||
@ -904,9 +904,8 @@ msgid "`chromium::import!` Macro"
|
||||
msgstr "`chromium::import!` Macro"
|
||||
|
||||
#: src/SUMMARY.md src/chromium/interoperability-with-cpp.md
|
||||
#, fuzzy
|
||||
msgid "Interoperability with C++"
|
||||
msgstr "قابلیت همکاری"
|
||||
msgstr "قابلیت همکاری با ++C"
|
||||
|
||||
#: src/SUMMARY.md src/chromium/interoperability-with-cpp/example-bindings.md
|
||||
#, fuzzy
|
||||
@ -915,7 +914,7 @@ msgstr "مثالها"
|
||||
|
||||
#: src/SUMMARY.md src/chromium/interoperability-with-cpp/limitations-of-cxx.md
|
||||
msgid "Limitations of CXX"
|
||||
msgstr ""
|
||||
msgstr "محدودیتهای CXX"
|
||||
|
||||
#: src/SUMMARY.md src/chromium/interoperability-with-cpp/error-handling.md
|
||||
msgid "CXX Error Handling"
|
||||
@ -935,7 +934,7 @@ msgstr "استفاده از CXX در Chromium"
|
||||
|
||||
#: src/SUMMARY.md src/chromium/adding-third-party-crates.md
|
||||
msgid "Adding Third Party Crates"
|
||||
msgstr ""
|
||||
msgstr "اضافهکردن Crateهای شخص ثالث"
|
||||
|
||||
#: src/SUMMARY.md
|
||||
msgid "Configuring Cargo.toml"
|
||||
@ -984,7 +983,7 @@ msgstr "کدهای Chromium را بررسی کنید."
|
||||
|
||||
#: src/SUMMARY.md src/chromium/adding-third-party-crates/keeping-up-to-date.md
|
||||
msgid "Keeping Crates Up to Date"
|
||||
msgstr ""
|
||||
msgstr "به روز نگه داشتن Crateها"
|
||||
|
||||
#: src/SUMMARY.md
|
||||
msgid "Bringing It Together - Exercise"
|
||||
@ -2161,6 +2160,10 @@ msgid ""
|
||||
"translation-report.html) or [synced to the latest version of the course]"
|
||||
"(https://google.github.io/comprehensive-rust/synced-translation-report.html)."
|
||||
msgstr ""
|
||||
"فهرست کامل ترجمهها با وضعیت فعلیشان نیز [در آخرین بهروزرسانی](https://google."
|
||||
"github.io/comprehensive-rust/translation-report.html) یا [همگامسازی شده با "
|
||||
"آخرین نسخه دوره](https://google.github.io/comprehensive-rust/synced-"
|
||||
"translation-report.html)."
|
||||
|
||||
#: src/running-the-course/translations.md
|
||||
msgid ""
|
||||
@ -4580,7 +4583,7 @@ msgstr ""
|
||||
|
||||
#: src/user-defined-types/tuple-structs.md
|
||||
msgid "If the field names are unimportant, you can use a tuple struct:"
|
||||
msgstr ""
|
||||
msgstr "اگر نام فیلدها بیاهمیت هستند، میتوانید از ساختار tuple استفاده کنید:"
|
||||
|
||||
#: src/user-defined-types/tuple-structs.md
|
||||
msgid "\"({}, {})\""
|
||||
@ -4612,19 +4615,24 @@ msgstr ""
|
||||
|
||||
#: src/user-defined-types/tuple-structs.md
|
||||
msgid "The number is measured in some units: `Newtons` in the example above."
|
||||
msgstr ""
|
||||
msgstr "این عدد در برخی واحدها اندازه گیری میشود: `Newtons` در مثال بالا."
|
||||
|
||||
#: src/user-defined-types/tuple-structs.md
|
||||
msgid ""
|
||||
"The value passed some validation when it was created, so you no longer have "
|
||||
"to validate it again at every use: `PhoneNumber(String)` or `OddNumber(u32)`."
|
||||
msgstr ""
|
||||
"مقدار زمانی که ایجاد شد مقداری اعتبارسنجی را دریافت کرد، بنابراین دیگر لازم "
|
||||
"نیست در هر بار استفاده دوباره آن را تأیید کنید: `PhoneNumber(String)` یا "
|
||||
"`OddNumber(u32)`."
|
||||
|
||||
#: src/user-defined-types/tuple-structs.md
|
||||
msgid ""
|
||||
"Demonstrate how to add a `f64` value to a `Newtons` type by accessing the "
|
||||
"single field in the newtype."
|
||||
msgstr ""
|
||||
"نحوه افزودن مقدار `f64` به نوع `Newtons` را با دسترسی به single field در نوع "
|
||||
"جدید نشان دهید."
|
||||
|
||||
#: src/user-defined-types/tuple-structs.md
|
||||
msgid ""
|
||||
@ -4643,6 +4651,8 @@ msgid ""
|
||||
"The example is a subtle reference to the [Mars Climate Orbiter](https://en."
|
||||
"wikipedia.org/wiki/Mars_Climate_Orbiter) failure."
|
||||
msgstr ""
|
||||
"این مثال، اشاره ظریفی به شکست [مدارگَرد آبوهوای مریخ](https://en.wikipedia."
|
||||
"org/wiki/Mars_Climate_Orbiter) است."
|
||||
|
||||
#: src/user-defined-types/enums.md
|
||||
msgid ""
|
||||
@ -4721,7 +4731,7 @@ msgstr ""
|
||||
|
||||
#: src/user-defined-types/enums.md
|
||||
msgid "If necessary, it stores an integer of the smallest required size"
|
||||
msgstr ""
|
||||
msgstr "در صورت لزوم، یک عدد صحیح با کوچکترین اندازه مورد نیاز را ذخیره میکند"
|
||||
|
||||
#: src/user-defined-types/enums.md
|
||||
msgid ""
|
||||
@ -4730,6 +4740,10 @@ msgid ""
|
||||
"optimization\"). For example, `Option<&u8>` stores either a pointer to an "
|
||||
"integer or `NULL` for the `None` variant."
|
||||
msgstr ""
|
||||
"اگر مقادیر متغیر مجاز همه الگوهای bit را پوشش ندهند، از الگوهای bit نامعتبر "
|
||||
"برای رمزگذاری متمایز کننده (یک \"niche optimization\") استفاده میکند. برای "
|
||||
"مثال، `Option<&u8>` یک اشارهگر به یک عدد صحیح یا `NULL` را برای نوع `None` "
|
||||
"ذخیره میکند."
|
||||
|
||||
#: src/user-defined-types/enums.md
|
||||
msgid ""
|
||||
@ -10089,11 +10103,11 @@ msgstr ""
|
||||
|
||||
#: src/welcome-day-4.md
|
||||
msgid "Iterators: a deep dive on the `Iterator` trait."
|
||||
msgstr ""
|
||||
msgstr "Iterators: شیرجه عمیق در ویژگی `Iterator`."
|
||||
|
||||
#: src/welcome-day-4.md
|
||||
msgid "Modules and visibility."
|
||||
msgstr ""
|
||||
msgstr "ماژول ها و قابلیت مشاهده"
|
||||
|
||||
#: src/welcome-day-4.md
|
||||
msgid "Testing."
|
||||
@ -10107,22 +10121,24 @@ msgstr "رسیدگی به خطا: panics در `Result` و اپراتور تلا
|
||||
msgid ""
|
||||
"Unsafe Rust: the escape hatch when you can't express yourself in safe Rust."
|
||||
msgstr ""
|
||||
"با Unsafe Rust: پنجره فرار مبتنی بر زمان که نمیتوانید خود را در safe Rust "
|
||||
"بیان کنید."
|
||||
|
||||
#: src/welcome-day-4.md
|
||||
msgid ""
|
||||
"Including 10 minute breaks, this session should take about 2 hours and 40 "
|
||||
"minutes. It contains:"
|
||||
msgstr ""
|
||||
"با احتساب ۱۰ دقیقه استراحت، این جلسه باید حدود ۲ ساعت و ۴۰ دقیقه طول بکشد. "
|
||||
"شامل:"
|
||||
|
||||
#: src/iterators.md
|
||||
#, fuzzy
|
||||
msgid "Iterator"
|
||||
msgstr "FromIterator"
|
||||
msgstr "Iterator"
|
||||
|
||||
#: src/iterators.md
|
||||
#, fuzzy
|
||||
msgid "IntoIterator"
|
||||
msgstr "FromIterator"
|
||||
msgstr "IntoIterator"
|
||||
|
||||
#: src/iterators.md src/iterators/fromiterator.md
|
||||
msgid "FromIterator"
|
||||
@ -10215,7 +10231,7 @@ msgstr ""
|
||||
|
||||
#: src/iterators/intoiterator.md
|
||||
msgid "The example iterates over all combinations of x and y coordinates."
|
||||
msgstr ""
|
||||
msgstr "مثال روی تمام ترکیبات مختصات x و y تکرار میشود."
|
||||
|
||||
#: src/iterators/intoiterator.md
|
||||
msgid ""
|
||||
@ -10238,6 +10254,10 @@ msgid ""
|
||||
"elements from that vector. Use `for e in &some_vector` instead, to iterate "
|
||||
"over references to elements of `some_vector`."
|
||||
msgstr ""
|
||||
"همین مشکل میتواند برای انواع کتابخانه استاندارد رخ دهد: `برای e در "
|
||||
"some_vector` مالکیت `some_vector` را در اختیار میگیرد و روی عناصر متعلق به "
|
||||
"آن بردار تکرار میشود. به جای آن از `e در &some_vector` برای تکرار بر روی "
|
||||
"ارجاعات به عناصر `some_vector` استفاده کنید."
|
||||
|
||||
#: src/iterators/fromiterator.md
|
||||
msgid ""
|
||||
@ -10268,6 +10288,9 @@ msgid ""
|
||||
"shown. The `_` shorthand used here lets Rust infer the type of the `Vec` "
|
||||
"elements."
|
||||
msgstr ""
|
||||
"با کمک \"turbofish\": `some_iterator.collect::<COLLECTION_TYPE>()`، همانطور "
|
||||
"که نشان داده شده است و به طور خلاصه `_` استفاده شده در اینجا به Rust امکان "
|
||||
"میدهد نوع عناصر \"Vec\" را استنتاج کند."
|
||||
|
||||
#: src/iterators/fromiterator.md
|
||||
msgid ""
|
||||
@ -10283,6 +10306,10 @@ msgid ""
|
||||
"There are also more specialized implementations which let you do cool things "
|
||||
"like convert an `Iterator<Item = Result<V, E>>` into a `Result<Vec<V>, E>`."
|
||||
msgstr ""
|
||||
"پیادهسازیهای اولیه `FromIterator` برای`Vec`, `HashMap` و غیره وجود دارد. "
|
||||
"همچنین پیادهسازیهای تخصصیتری وجود دارد که به شما امکان میدهد کارهای جالبی "
|
||||
"مانند تبدیل `Iterator<Item = Result<V, E>>` به یک `Result<Vec<V>, E>` انجام "
|
||||
"دهید."
|
||||
|
||||
#: src/iterators/exercise.md
|
||||
msgid ""
|
||||
@ -10290,6 +10317,9 @@ msgid ""
|
||||
"in the [`Iterator`](https://doc.rust-lang.org/std/iter/trait.Iterator.html) "
|
||||
"trait to implement a complex calculation."
|
||||
msgstr ""
|
||||
"در این تمرین، باید برخی از روش های ارائه شده در [`Iterator`](https://doc."
|
||||
"rust-lang.org/std/iter/trait.Iterator.html) را برای پیادهسازی یک ویژگی پیدا "
|
||||
"کنید و از آنها برای محاسبه پیچیده استفاده کنید."
|
||||
|
||||
#: src/iterators/exercise.md
|
||||
msgid ""
|
||||
@ -10358,7 +10388,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/modules.md
|
||||
msgid "Modules define organization, scope, and are the focus of this section."
|
||||
msgstr ""
|
||||
msgstr "ماژولهای organization، scope، و تمرکز این بخش را تعریف میکنند."
|
||||
|
||||
#: src/modules/filesystem.md
|
||||
msgid ""
|
||||
@ -10393,6 +10423,9 @@ msgid ""
|
||||
"comments\". These document the item that contains them -- in this case, a "
|
||||
"module."
|
||||
msgstr ""
|
||||
"ماژولهای تعریفشده در فایلها را نیز میتوان با استفاده از «کامنتهای مستند "
|
||||
"داخلی» مستند کرد. اینها موردی را که حاوی آنها است - در این مورد، یک ماژول "
|
||||
"مستند میکنند."
|
||||
|
||||
#: src/modules/filesystem.md
|
||||
#, fuzzy
|
||||
@ -10433,6 +10466,8 @@ msgid ""
|
||||
"The main reason to introduce `filename.rs` as alternative to `filename/mod."
|
||||
"rs` was because many files named `mod.rs` can be hard to distinguish in IDEs."
|
||||
msgstr ""
|
||||
"دلیل اصلی معرفی `filename.rs` بهعنوان جایگزین `filename/mod.rs` این بود که "
|
||||
"تشخیص بسیاری از فایلها با نام `mod.rs` در IDEها دشوار است."
|
||||
|
||||
#: src/modules/filesystem.md
|
||||
msgid "Deeper nesting can use folders, even if the main module is a file:"
|
||||
@ -10445,6 +10480,7 @@ msgid ""
|
||||
"The place rust will look for modules can be changed with a compiler "
|
||||
"directive:"
|
||||
msgstr ""
|
||||
"مکانی که rust به دنبال ماژولها میگردد را میتوان با دستور کامپایلر تغییر داد:"
|
||||
|
||||
#: src/modules/filesystem.md
|
||||
msgid "\"some/path.rs\""
|
||||
@ -10461,11 +10497,13 @@ msgstr ""
|
||||
|
||||
#: src/modules/visibility.md
|
||||
msgid "Modules are a privacy boundary:"
|
||||
msgstr ""
|
||||
msgstr "ماژولها یک مرز حریم خصوصی هستند:"
|
||||
|
||||
#: src/modules/visibility.md
|
||||
msgid "Module items are private by default (hides implementation details)."
|
||||
msgstr ""
|
||||
"گزینههای ماژول به طور پیشفرض private هستند (جزئیات پیاده سازی را پنهان "
|
||||
"میکند)."
|
||||
|
||||
#: src/modules/visibility.md
|
||||
msgid "Parent and sibling items are always visible."
|
||||
@ -10504,6 +10542,8 @@ msgid ""
|
||||
"Additionally, there are advanced `pub(...)` specifiers to restrict the scope "
|
||||
"of public visibility."
|
||||
msgstr ""
|
||||
"علاوه بر این، مشخصکنندههای پیشرفته `pub(...)` برای محدود کردن دامنه دید "
|
||||
"عمومی وجود دارد."
|
||||
|
||||
#: src/modules/visibility.md
|
||||
msgid ""
|
||||
@ -10519,7 +10559,7 @@ msgstr "پیکربندی قابل نمایش بودن `pub(crate)` یک الگو
|
||||
|
||||
#: src/modules/visibility.md
|
||||
msgid "Less commonly, you can give visibility to a specific path."
|
||||
msgstr ""
|
||||
msgstr "این مورد کمتر متداول است، شما میتوانید به یک مسیر خاص دید بدهید."
|
||||
|
||||
#: src/modules/visibility.md
|
||||
msgid ""
|
||||
@ -10544,7 +10584,7 @@ msgstr "مسیرها (Paths) به شرح زیر حل میشوند:"
|
||||
|
||||
#: src/modules/paths.md
|
||||
msgid "As a relative path:"
|
||||
msgstr ""
|
||||
msgstr "به عنوان یک path نسبی:"
|
||||
|
||||
#: src/modules/paths.md
|
||||
msgid "`foo` or `self::foo` refers to `foo` in the current module,"
|
||||
@ -10556,7 +10596,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/paths.md
|
||||
msgid "As an absolute path:"
|
||||
msgstr ""
|
||||
msgstr "به عنوان یک path مطلق:"
|
||||
|
||||
#: src/modules/paths.md
|
||||
msgid "`crate::foo` refers to `foo` in the root of the current crate,"
|
||||
@ -10571,12 +10611,16 @@ msgid ""
|
||||
"It is common to \"re-export\" symbols at a shorter path. For example, the "
|
||||
"top-level `lib.rs` in a crate might have"
|
||||
msgstr ""
|
||||
"این\"re-export\" نمادها در مسیر کوتاهتری معمول است. برای مثال، `lib.rs` سطح "
|
||||
"بالا در یک crate ممکن است داشته باشد"
|
||||
|
||||
#: src/modules/paths.md
|
||||
msgid ""
|
||||
"making `DiskStorage` and `NetworkStorage` available to other crates with a "
|
||||
"convenient, short path."
|
||||
msgstr ""
|
||||
"در دسترس قرار دادن `DiskStorage` و `NetworkStorage` برای سایر crateها با یک "
|
||||
"مسیر راحت و کوتاه."
|
||||
|
||||
#: src/modules/paths.md
|
||||
msgid ""
|
||||
@ -10603,12 +10647,17 @@ msgid ""
|
||||
"This library defines a `Widget` trait and a few implementations of that "
|
||||
"trait, as well as a `main` function."
|
||||
msgstr ""
|
||||
"در این تمرین، یک پیادهسازی کتابخانه GUI کوچک را دوباره سازماندهی خواهید کرد. "
|
||||
"این کتابخانه یک ویژگی`Widget` و چند پیادهسازی از آن ویژگی و همچنین یک تابع "
|
||||
"`main` را تعریف میکند."
|
||||
|
||||
#: src/modules/exercise.md
|
||||
msgid ""
|
||||
"It is typical to put each type or set of closely-related types into its own "
|
||||
"module, so each widget type should get its own module."
|
||||
msgstr ""
|
||||
"معمول است که هر نوع یا مجموعهای از انواع مرتبط نزدیک را در ماژول خود قرار "
|
||||
"دهید، بنابراین هر نوع ویجت باید ماژول خاص خود را داشته باشد."
|
||||
|
||||
#: src/modules/exercise.md
|
||||
#, fuzzy
|
||||
@ -10620,12 +10669,16 @@ msgid ""
|
||||
"The Rust playground only supports one file, so you will need to make a Cargo "
|
||||
"project on your local filesystem:"
|
||||
msgstr ""
|
||||
"یک Rust playground فقط از یک فایل پشتیبانی میکند، بنابراین باید یک پروژه "
|
||||
"Cargo را در سیستم فایل محلی خود ایجاد کنید:"
|
||||
|
||||
#: src/modules/exercise.md
|
||||
msgid ""
|
||||
"Edit the resulting `src/main.rs` to add `mod` statements, and add additional "
|
||||
"files in the `src` directory."
|
||||
msgstr ""
|
||||
"این `src/main.rs` حاصل را ویرایش کنید تا عبارات `mod` را اضافه کنید و "
|
||||
"فایلهای اضافی را در دایرکتوری `src` اضافه کنید."
|
||||
|
||||
#: src/modules/exercise.md
|
||||
msgid "Source"
|
||||
@ -10717,6 +10770,9 @@ msgid ""
|
||||
"and get accustomed to the required `mod`, `use`, and `pub` declarations. "
|
||||
"Afterward, discuss what organizations are most idiomatic."
|
||||
msgstr ""
|
||||
"دانشآموزان را تشویق کنید تا کد را بهگونهای تقسیم کنند که برایشان طبیعی است و "
|
||||
"به اعلانهای `mod`, `use` و `pub`عادت کنند. پس از آن، در مورد اینکه چه "
|
||||
"organizationهایی idiomatic هستند بحث کنید."
|
||||
|
||||
#: src/modules/solution.md
|
||||
msgid "// ---- src/widgets.rs ----\n"
|
||||
@ -10808,7 +10864,7 @@ msgstr ""
|
||||
|
||||
#: src/testing/unit-tests.md
|
||||
msgid "Integration tests are supported via the `tests/` directory."
|
||||
msgstr ""
|
||||
msgstr "تستهای یکپارچهسازی از طریق دایرکتوری `tests/` پشتیبانی میشوند."
|
||||
|
||||
#: src/testing/unit-tests.md
|
||||
msgid ""
|
||||
@ -10844,6 +10900,8 @@ msgstr "Integration Tests"
|
||||
#: src/testing/other.md
|
||||
msgid "If you want to test your library as a client, use an integration test."
|
||||
msgstr ""
|
||||
"اگر میخواهید کتابخانه خود را به عنوان یک سرویسگیرنده آزمایش کنید، از تست "
|
||||
"یکپارچهسازی (integration test) استفاده کنید."
|
||||
|
||||
#: src/testing/other.md
|
||||
msgid "Create a `.rs` file under `tests/`:"
|
||||
@ -10864,7 +10922,7 @@ msgstr "تست سندها"
|
||||
|
||||
#: src/testing/other.md
|
||||
msgid "Rust has built-in support for documentation tests:"
|
||||
msgstr ""
|
||||
msgstr "زبان Rust دارای پشتیبانی داخلی برای تستهای مستندسازی است:"
|
||||
|
||||
#: src/testing/other.md
|
||||
#, fuzzy
|
||||
@ -10892,7 +10950,7 @@ msgstr ""
|
||||
|
||||
#: src/testing/other.md
|
||||
msgid "The code will be compiled and executed as part of `cargo test`."
|
||||
msgstr ""
|
||||
msgstr "این کد به عنوان بخشی از `cargo test` کامپایل و اجرا میشود."
|
||||
|
||||
#: src/testing/other.md
|
||||
msgid ""
|
||||
@ -10915,6 +10973,9 @@ msgid ""
|
||||
"built-in lints. [Clippy](https://doc.rust-lang.org/clippy/) provides even "
|
||||
"more lints, organized into groups that can be enabled per-project."
|
||||
msgstr ""
|
||||
"کامپایلر Rust پیامهای خطای جالب و همچنین built-in lint مناسبی تولید میکند. "
|
||||
"[Clippy](https://doc.rust-lang.org/clippy/) که lintهای بیشتری را ارائه "
|
||||
"میدهد، که در گروههایی سازماندهی شدهاند که میتوانند در هر پروژه فعال شوند."
|
||||
|
||||
#: src/testing/lints.md
|
||||
msgid "\"X probably fits in a u16, right? {}\""
|
||||
@ -10999,6 +11060,8 @@ msgid ""
|
||||
"along with two basic unit tests that confirm that most of the algorithm is "
|
||||
"implemented correctly."
|
||||
msgstr ""
|
||||
"کد ارائه شده یک پیادهسازی باگ از الگوریتم luhn را به همراه دو unit test پایه "
|
||||
"ارائه میکند که تأیید میکند بیشتر الگوریتم به درستی پیادهسازی شده است."
|
||||
|
||||
#: src/testing/exercise.md
|
||||
#, fuzzy
|
||||
@ -11132,7 +11195,7 @@ msgstr "خرابیهای زمان اجرا مانند failed bounds checkها
|
||||
|
||||
#: src/error-handling/panics.md
|
||||
msgid "Assertions (such as `assert!`) panic on failure"
|
||||
msgstr ""
|
||||
msgstr "Assertions (such as `assert!`) panic on failure"
|
||||
|
||||
#: src/error-handling/panics.md
|
||||
msgid "Purpose-specific panics can use the `panic!` macro."
|
||||
@ -11226,6 +11289,12 @@ msgid ""
|
||||
"error handling, but means that you can always see in your source code where "
|
||||
"proper error handling is being skipped."
|
||||
msgstr ""
|
||||
"مانند `Option`، هیچ راهی برای فراموش کردن خطا وجود ندارد: شما نمیتوانید به "
|
||||
"مقدار موفقیت یا مقدار خطا بدون تطبیق الگوی اولیه در `Result` دسترسی پیدا "
|
||||
"کنید تا بررسی کنید کدام نوع را دارید. روشهایی مانند`unwrap` نوشتن کدهای "
|
||||
"سریع و کثیف را آسانتر میکنند که مدیریت خطا را به خوبی انجام نمیدهد، اما به "
|
||||
"این معنی است که همیشه میتوانید در کد منبع خود ببینید که در کجا مدیریت صحیح "
|
||||
"خطا نادیده گرفته میشود."
|
||||
|
||||
#: src/error-handling/result.md
|
||||
msgid ""
|
||||
@ -11233,10 +11302,14 @@ msgid ""
|
||||
"conventions that students may be familiar with from other programming "
|
||||
"languages."
|
||||
msgstr ""
|
||||
"مقایسه مدیریت خطا در Rust با قراردادهای مدیریت خطا که دانشآموزان ممکن است با "
|
||||
"سایر زبانهای برنامهنویسی آشنا باشند، ممکن است مفید باشد."
|
||||
|
||||
#: src/error-handling/result.md
|
||||
msgid "Many languages use exceptions, e.g. C++, Java, Python."
|
||||
msgstr ""
|
||||
"بسیاری از زبانها از exceptionها استفاده میکنند، به عنوان مثال. ++C، جاوا، "
|
||||
"پایتون."
|
||||
|
||||
#: src/error-handling/result.md
|
||||
msgid ""
|
||||
@ -11256,6 +11329,9 @@ msgid ""
|
||||
"block is reached. An error originating deep in the call stack may impact an "
|
||||
"unrelated function further up."
|
||||
msgstr ""
|
||||
"استثناها معمولاً call stack را باز میکنند و تا رسیدن به بلوک `try` به سمت "
|
||||
"بالا منتشر میشوند. خطایی که در اعماق call stack ایجاد میشود ممکن است بر "
|
||||
"عملکرد نامرتبط بیشتر تأثیر بگذارد."
|
||||
|
||||
#: src/error-handling/result.md
|
||||
msgid "Error Numbers"
|
||||
@ -11267,6 +11343,9 @@ msgid ""
|
||||
"value) separately from the successful return value of the function. Examples "
|
||||
"include C and Go."
|
||||
msgstr ""
|
||||
"برخی از زبانها دارای توابعی هستند که یک عدد خطا (یا مقداری خطای دیگر) را جدا "
|
||||
"از مقدار بازگشت موفقیتآمیز تابع برمیگردانند. به عنوان مثال می توان به C و Go "
|
||||
"اشاره کرد."
|
||||
|
||||
#: src/error-handling/result.md
|
||||
msgid ""
|
||||
@ -11274,6 +11353,8 @@ msgid ""
|
||||
"value, in which case you may be accessing an uninitialized or otherwise "
|
||||
"invalid success value."
|
||||
msgstr ""
|
||||
"بسته به زبان ممکن است فراموش کنید مقدار خطا را بررسی کنید، در این صورت ممکن "
|
||||
"است به یک مقدار موفقیت نامعتبر یا نامعتبر دسترسی داشته باشید."
|
||||
|
||||
#: src/error-handling/try.md
|
||||
msgid ""
|
||||
@ -11341,7 +11422,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The effective expansion of `?` is a little more complicated than previously "
|
||||
"indicated:"
|
||||
msgstr ""
|
||||
msgstr "گسترش مؤثر `?` کمی پیچیدهتر از آنچه قبلاً ذکر شد است:"
|
||||
|
||||
#: src/error-handling/try-conversions.md
|
||||
msgid "works the same as"
|
||||
@ -11467,6 +11548,10 @@ msgid ""
|
||||
"compatible with `no_std` in [nightly](https://github.com/rust-lang/rust/"
|
||||
"issues/103765) only."
|
||||
msgstr ""
|
||||
"هنگام تعریف یک نوع خطای سفارشی، مطمئن شوید که ویژگی `std::error::Error` را "
|
||||
"اجرا کنید تا بتوان آن را در جعبه قرار داد. اما اگر نیاز به پشتیبانی از ویژگی "
|
||||
"`no_std` دارید، به خاطر داشته باشید که ویژگی `std::error::Error` در حال حاضر "
|
||||
"با `no_std` در [nightly](https://github.com/rust-lang) سازگار است."
|
||||
|
||||
#: src/error-handling/thiserror-and-anyhow.md
|
||||
msgid ""
|
||||
@ -11534,7 +11619,7 @@ msgstr "ویژگی `std::error::Error` به طور خودکار مشتق می
|
||||
|
||||
#: src/error-handling/thiserror-and-anyhow.md
|
||||
msgid "The message from `#[error]` is used to derive the `Display` trait."
|
||||
msgstr ""
|
||||
msgstr "پیام `#[error]` برای استخراج ویژگی `Display` استفاده میشود."
|
||||
|
||||
#: src/error-handling/thiserror-and-anyhow.md
|
||||
msgid "`anyhow`"
|
||||
@ -11565,6 +11650,9 @@ msgid ""
|
||||
"developers, as it provides similar usage patterns and ergonomics to `(T, "
|
||||
"error)` from Go."
|
||||
msgstr ""
|
||||
"عملکرد ارائه شده توسط `anyhow::Result<T>` ممکن است برای توسعهدهندگان Go آشنا "
|
||||
"باشد، زیرا الگوهای استفاده و ارگونومی مشابهی را با `(T, error)` از Go ارائه "
|
||||
"میدهد."
|
||||
|
||||
#: src/error-handling/thiserror-and-anyhow.md
|
||||
msgid ""
|
||||
@ -11583,6 +11671,10 @@ msgid ""
|
||||
"error handling and propagate errors to a return from `main`. Feel free to "
|
||||
"use `thiserror` and `anyhow`."
|
||||
msgstr ""
|
||||
"در زیر یک تجزیهکننده بسیار ساده برای یک زبان عبارت پیادهسازی میکند. با این "
|
||||
"حال، با panic خطاها را کنترل میکند. آن را بازنویسی کنید تا به جای آن از "
|
||||
"مدیریت خطای اصطلاحی استفاده کنید و خطاها را به بازگشت از `main` منتشر کنید. "
|
||||
"با خیال راحت از `thiserror` و `anyhow` استفاده کنید."
|
||||
|
||||
#: src/error-handling/exercise.md
|
||||
msgid ""
|
||||
@ -11590,6 +11682,9 @@ msgid ""
|
||||
"working correctly, update `Tokenizer` to implement "
|
||||
"`Iterator<Item=Result<Token, TokenizerError>>` and handle that in the parser."
|
||||
msgstr ""
|
||||
"نکته: با رفع خطا در عملکرد `parse` شروع کنید. هنگامی که به درستی کار کرد، "
|
||||
"`Tokenizer` را برای پیادهسازی `Iterator<Item=Result<Token, TokenizerError>>` "
|
||||
"بهروزرسانی کنید و آن را در parser کنترل کنید."
|
||||
|
||||
#: src/error-handling/exercise.md src/error-handling/solution.md
|
||||
#, fuzzy
|
||||
@ -11684,7 +11779,7 @@ msgstr "این بخش باید حدود ۱ ساعت و ۵ دقیقه طول بک
|
||||
|
||||
#: src/unsafe-rust/unsafe.md
|
||||
msgid "The Rust language has two parts:"
|
||||
msgstr ""
|
||||
msgstr "زبان Rust دو بخش دارد:"
|
||||
|
||||
#: src/unsafe-rust/unsafe.md
|
||||
msgid "**Safe Rust:** memory safe, no undefined behavior possible."
|
||||
@ -11717,7 +11812,7 @@ msgstr ""
|
||||
|
||||
#: src/unsafe-rust/unsafe.md
|
||||
msgid "Unsafe Rust gives you access to five new capabilities:"
|
||||
msgstr ""
|
||||
msgstr "این Unsafe Rust به شما امکان دسترسی به پنج قابلیت جدید را میدهد:"
|
||||
|
||||
#: src/unsafe-rust/unsafe.md
|
||||
msgid "Dereference raw pointers."
|
||||
@ -11733,11 +11828,11 @@ msgstr ""
|
||||
|
||||
#: src/unsafe-rust/unsafe.md
|
||||
msgid "Call `unsafe` functions, including `extern` functions."
|
||||
msgstr ""
|
||||
msgstr "توابع `unsafe`، از جمله توابع `extern` را فراخوانی کنید."
|
||||
|
||||
#: src/unsafe-rust/unsafe.md
|
||||
msgid "Implement `unsafe` traits."
|
||||
msgstr ""
|
||||
msgstr "ویژگیهای `unsafe` را اجرا کنید."
|
||||
|
||||
#: src/unsafe-rust/unsafe.md
|
||||
msgid ""
|
||||
@ -11756,6 +11851,10 @@ msgid ""
|
||||
"by themselves. It means the compiler no longer enforces Rust's memory-safety "
|
||||
"rules."
|
||||
msgstr ""
|
||||
"همینطور Unsafe Rust به این معنی نیست که کد نادرست است. این بدان معنی است که "
|
||||
"توسعهدهندگان برخی از ویژگیهای ایمنی کامپایلر را خاموش کردهاند و باید کد صحیح "
|
||||
"را خودشان بنویسند. این بدان معناست که کامپایلر دیگر قواعد ایمنی Rust را اجرا "
|
||||
"نمیکند."
|
||||
|
||||
#: src/unsafe-rust/dereferencing.md
|
||||
msgid "Creating pointers is safe, but dereferencing them requires `unsafe`:"
|
||||
@ -11816,26 +11915,32 @@ msgid ""
|
||||
"a comment for each `unsafe` block explaining how the code inside it "
|
||||
"satisfies the safety requirements of the unsafe operations it is doing."
|
||||
msgstr ""
|
||||
"این تمرین خوبی است (و طبق راهنمای سبک Android Rust لازم است) برای هر بلوک "
|
||||
"`unsafe` یک نظر بنویسید و توضیح دهد که چگونه کد داخل آن الزامات ایمنی عملیات "
|
||||
"ناامنی را که انجام میدهد برآورده میکند."
|
||||
|
||||
#: src/unsafe-rust/dereferencing.md
|
||||
msgid ""
|
||||
"In the case of pointer dereferences, this means that the pointers must be "
|
||||
"[_valid_](https://doc.rust-lang.org/std/ptr/index.html#safety), i.e.:"
|
||||
msgstr ""
|
||||
"در مورد عدم ارجاع اشارهگر، این بدان معنی است که نشانگرها باید [_valid_]"
|
||||
"(https://doc.rust-lang.org/std/ptr/index.html#safety) باشند، یعنی:"
|
||||
|
||||
#: src/unsafe-rust/dereferencing.md
|
||||
msgid "The pointer must be non-null."
|
||||
msgstr ""
|
||||
msgstr "اشارهگر باید غیر تهی یا non-null باشد."
|
||||
|
||||
#: src/unsafe-rust/dereferencing.md
|
||||
msgid ""
|
||||
"The pointer must be _dereferenceable_ (within the bounds of a single "
|
||||
"allocated object)."
|
||||
msgstr ""
|
||||
"اشارهگر باید _dereferenceable_ باشد (در محدوده یک object اختصاص داده شده)."
|
||||
|
||||
#: src/unsafe-rust/dereferencing.md
|
||||
msgid "The object must not have been deallocated."
|
||||
msgstr ""
|
||||
msgstr "این object نباید جابجا شده باشد."
|
||||
|
||||
#: src/unsafe-rust/dereferencing.md
|
||||
msgid "There must not be concurrent accesses to the same location."
|
||||
@ -11846,6 +11951,8 @@ msgid ""
|
||||
"If the pointer was obtained by casting a reference, the underlying object "
|
||||
"must be live and no reference may be used to access the memory."
|
||||
msgstr ""
|
||||
"اگر اشارهگر با فرستادن یک reference به دست آمده باشد، object زیرین باید live "
|
||||
"باشد و نمیتوان از هیچ مرجعی برای دسترسی به حافظه استفاده کرد."
|
||||
|
||||
#: src/unsafe-rust/dereferencing.md
|
||||
msgid "In most cases the pointer must also be properly aligned."
|
||||
@ -11864,7 +11971,7 @@ msgstr ""
|
||||
|
||||
#: src/unsafe-rust/mutable-static.md
|
||||
msgid "It is safe to read an immutable static variable:"
|
||||
msgstr ""
|
||||
msgstr "خواندن یک متغیر استاتیک تغییرناپذیر بیخطر است:"
|
||||
|
||||
#: src/unsafe-rust/mutable-static.md
|
||||
msgid "\"Hello, world!\""
|
||||
@ -11879,6 +11986,8 @@ msgid ""
|
||||
"However, since data races can occur, it is unsafe to read and write mutable "
|
||||
"static variables:"
|
||||
msgstr ""
|
||||
"بااینحال، از آنجایی که شرایط رقابتی دادهها ممکن است رخ دهد، خواندن و نوشتن "
|
||||
"متغیرهای mutable static ناامن است:"
|
||||
|
||||
#: src/unsafe-rust/mutable-static.md
|
||||
#, fuzzy
|
||||
@ -11898,6 +12007,10 @@ msgid ""
|
||||
"`unsafe` and see how the compiler explains that it is undefined behavior to "
|
||||
"mutate a static from multiple threads."
|
||||
msgstr ""
|
||||
"برنامه در اینجا امن است زیرا single-thread است. با این حال، کامپایلر Rust "
|
||||
"محافظه کار است و بدترینها را در نظر میگیرد. `unsafe` را حذف کنید و ببینید "
|
||||
"چگونه کامپایلر توضیح میدهد که جهش یک static از چندین thread یک رفتار تعریف "
|
||||
"نشده است."
|
||||
|
||||
#: src/unsafe-rust/mutable-static.md
|
||||
msgid ""
|
||||
@ -11912,6 +12025,8 @@ msgstr ""
|
||||
#: src/unsafe-rust/unions.md
|
||||
msgid "Unions are like enums, but you need to track the active field yourself:"
|
||||
msgstr ""
|
||||
"همینطور Unionها مانند enumها هستند، اما شما باید خودتان active field را "
|
||||
"ردیابی کنید:"
|
||||
|
||||
#: src/unsafe-rust/unions.md
|
||||
msgid "\"int: {}\""
|
||||
@ -11931,6 +12046,9 @@ msgid ""
|
||||
"Unions are very rarely needed in Rust as you can usually use an enum. They "
|
||||
"are occasionally needed for interacting with C library APIs."
|
||||
msgstr ""
|
||||
"به طور کلی Unionها در Rust به ندرت مورد نیاز هستند زیرا معمولاً میتوانید از "
|
||||
"enum استفاده کنید. آنها گاهی اوقات برای تعامل با APIهای کتابخانه C مورد نیاز "
|
||||
"هستند."
|
||||
|
||||
#: src/unsafe-rust/unions.md
|
||||
msgid ""
|
||||
@ -11939,6 +12057,10 @@ msgid ""
|
||||
"transmute.html) or a safe wrapper such as the [`zerocopy`](https://crates.io/"
|
||||
"crates/zerocopy) crate."
|
||||
msgstr ""
|
||||
"اگر فقط میخواهید بایتها را بهعنوان نوع متفاوتی تفسیر کنید، احتمالاً [`std::"
|
||||
"mem::transmute`](https://doc.rust-lang.org/stable/std/mem/fn.transmute.html "
|
||||
"را میخواهید ) یا یک safe wrapper مانند جعبه [`zerocopy`(https://crates.io/"
|
||||
"crates/zerocopy)."
|
||||
|
||||
#: src/unsafe-rust/unsafe-functions.md
|
||||
msgid "Calling Unsafe Functions"
|
||||
@ -12071,6 +12193,8 @@ msgid ""
|
||||
"We wouldn't actually use pointers for a `swap` function - it can be done "
|
||||
"safely with references."
|
||||
msgstr ""
|
||||
"ما در واقع از pointerها برای یک تابع`swap` استفاده نمیکنیم - این کار را "
|
||||
"میتوان بهطور ایمن با referenceها انجام داد."
|
||||
|
||||
#: src/unsafe-rust/unsafe-functions.md
|
||||
msgid ""
|
||||
@ -12093,6 +12217,8 @@ msgid ""
|
||||
"Like with functions, you can mark a trait as `unsafe` if the implementation "
|
||||
"must guarantee particular conditions to avoid undefined behaviour."
|
||||
msgstr ""
|
||||
"مانند توابع، اگر پیادهسازی باید شرایط خاصی را تضمین کند تا از رفتار نامشخص "
|
||||
"جلوگیری شود، میتوانید یک ویژگی را بهعنوان `unsafe` علامتگذاری کنید."
|
||||
|
||||
#: src/unsafe-rust/unsafe-traits.md
|
||||
msgid ""
|
||||
@ -12132,7 +12258,7 @@ msgstr "بخش ایمنی واقعی برای `AsBytes` نسبتا طولانی
|
||||
|
||||
#: src/unsafe-rust/unsafe-traits.md
|
||||
msgid "The built-in `Send` and `Sync` traits are unsafe."
|
||||
msgstr ""
|
||||
msgstr "ویژگیهای داخلی`Send` و `Sync` ناامن (unsafe) هستند."
|
||||
|
||||
#: src/unsafe-rust/exercise.md
|
||||
msgid "Safe FFI Wrapper"
|
||||
@ -12144,6 +12270,10 @@ msgid ""
|
||||
"interface_ (FFI). We will use this to build a safe wrapper for the `libc` "
|
||||
"functions you would use from C to read the names of files in a directory."
|
||||
msgstr ""
|
||||
"زبان Rust پشتیبانی بسیار خوبی برای فراخوانی توابع از طریق رابط تابع خارجی "
|
||||
"_foreign function interface_ (FFI) دارد. ما از آن برای ساختن یک پوشش امن "
|
||||
"برای توابع `libc` استفاده میکنیم که از C برای خواندن نام فایل ها در یک فهرست "
|
||||
"استفاده می کنید."
|
||||
|
||||
#: src/unsafe-rust/exercise.md
|
||||
msgid "You will want to consult the manual pages:"
|
||||
@ -12170,7 +12300,7 @@ msgstr "همچنین میخواهید [`std::ffi`](https://doc.rust-lang.or)
|
||||
|
||||
#: src/unsafe-rust/exercise.md
|
||||
msgid "Encoding"
|
||||
msgstr ""
|
||||
msgstr "رمزگذاری"
|
||||
|
||||
#: src/unsafe-rust/exercise.md
|
||||
msgid "Use"
|
||||
@ -17650,6 +17780,11 @@ msgid ""
|
||||
"[CXX supported types can transfer a lot of u16s](https://cxx.rs/binding/"
|
||||
"slice.html)."
|
||||
msgstr ""
|
||||
"اگر دانشآموزان تصمیم بگیرند که تبدیل را در سمت Rust انجام دهند، باید "
|
||||
"[`String::from_utf16`](https://doc.rust-lang.org/std/string/struct.String."
|
||||
"html#method را در نظر بگیرند. مدیریت خطا را در نظر بگیرید و در نظر داشته "
|
||||
"باشید که کدام [نوع های پشتیبانی شده از CXX می توانند تعداد زیادی از u16 ها "
|
||||
"را منتقل کنند](https://cxx.rs/binding/slice.html)."
|
||||
|
||||
#: src/exercises/chromium/bringing-it-together.md
|
||||
msgid ""
|
||||
@ -17755,6 +17890,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"And give users in the `plugdev` group access to the micro:bit programmer:"
|
||||
msgstr ""
|
||||
"و به کاربران گروه `plugdev` اجازه دسترسی به برنامهنویس micro:bit را بدهید:"
|
||||
|
||||
#: src/bare-metal.md src/bare-metal/microcontrollers/debugging.md
|
||||
msgid "On MacOS:"
|
||||
@ -17875,7 +18011,7 @@ msgstr ""
|
||||
|
||||
#: src/bare-metal/minimal.md
|
||||
msgid "It can also be provided by another crate, such as `panic-halt`."
|
||||
msgstr ""
|
||||
msgstr "همچنین میتوان آن را توسط crate دیگری مانند `panic-halt` تهیه کرد."
|
||||
|
||||
#: src/bare-metal/minimal.md
|
||||
msgid ""
|
||||
@ -17938,6 +18074,8 @@ msgid ""
|
||||
"The const parameter of `LockedHeap` is the max order of the allocator; i.e. "
|
||||
"in this case it can allocate regions of up to 2\\*\\*32 bytes."
|
||||
msgstr ""
|
||||
"پارامتر const `LockedHeap` حداکثر ترتیب تخصیصدهنده (allocator) است. یعنی در "
|
||||
"این مورد میتواند مناطقی تا 2\\*\\*32 بایت را اختصاص دهد."
|
||||
|
||||
#: src/bare-metal/alloc.md
|
||||
msgid ""
|
||||
@ -17945,6 +18083,9 @@ msgid ""
|
||||
"exactly one global allocator defined in your binary. Usually this is done in "
|
||||
"the top-level binary crate."
|
||||
msgstr ""
|
||||
"اگر هر crate ای در درخت وابستگی شما به `alloc` بستگی دارد، باید دقیقاً یک "
|
||||
"تخصیصدهنده سراسری در باینری خود تعریف کنید. معمولاً این کار در binary crate "
|
||||
"سطح بالا انجام میشود."
|
||||
|
||||
#: src/bare-metal/alloc.md
|
||||
msgid ""
|
||||
@ -18072,6 +18213,8 @@ msgid ""
|
||||
"They are organised by peripheral, register, field and value, with names, "
|
||||
"descriptions, addresses and so on."
|
||||
msgstr ""
|
||||
"آنها بر اساس peripheral، register، field و value، با نام، توضیحات، آدرس و "
|
||||
"غیره سازماندهی میشوند."
|
||||
|
||||
#: src/bare-metal/microcontrollers/pacs.md
|
||||
msgid ""
|
||||
@ -18092,6 +18235,8 @@ msgid ""
|
||||
"If you `cargo install cargo-binutils` then you can run `cargo objdump --bin "
|
||||
"pac -- -d --no-show-raw-insn` to see the resulting binary."
|
||||
msgstr ""
|
||||
"اگر`cargo install cargo-binutils` را انجام دهید، میتوانید `cargo objdump --"
|
||||
"bin pac -- -d --no-show-raw-insn` را اجرا کنید تا باینری حاصل را ببینید."
|
||||
|
||||
#: src/bare-metal/microcontrollers/hals.md
|
||||
msgid "HAL crates"
|
||||
@ -18144,12 +18289,16 @@ msgid ""
|
||||
"In this case the board support crate is just providing more useful names, "
|
||||
"and a bit of initialisation."
|
||||
msgstr ""
|
||||
"در این مورد crate پشتیبانی برد فقط نامهای مفیدتر و مقداری مقداردهی اولیه را "
|
||||
"ارائه میدهد."
|
||||
|
||||
#: src/bare-metal/microcontrollers/board-support.md
|
||||
msgid ""
|
||||
"The crate may also include drivers for some on-board devices outside of the "
|
||||
"microcontroller itself."
|
||||
msgstr ""
|
||||
"این crate ممکن است شامل درایورهایی برای برخی از دستگاههای داخلی خارج از خود "
|
||||
"میکروکنترلر نیز باشد."
|
||||
|
||||
#: src/bare-metal/microcontrollers/board-support.md
|
||||
msgid "`microbit-v2` includes a simple driver for the LED matrix."
|
||||
@ -18157,7 +18306,7 @@ msgstr "ء `microbit-v2` شامل یک درایور ساده برای ماتری
|
||||
|
||||
#: src/bare-metal/microcontrollers/type-state.md
|
||||
msgid "The type state pattern"
|
||||
msgstr ""
|
||||
msgstr "یک تایپ state pattern"
|
||||
|
||||
#: src/bare-metal/microcontrollers/type-state.md
|
||||
#, fuzzy
|
||||
@ -18194,6 +18343,11 @@ msgid ""
|
||||
"way without properly configuring it first. Illegal state transitions are "
|
||||
"caught at compile time."
|
||||
msgstr ""
|
||||
"این type یک مقدار state را نشان میدهد که در آن قرار دارد: به عنوان مثال. در "
|
||||
"این مورد، وضعیت پیکربندی یک پین GPIO. این state machine را در type system "
|
||||
"رمزگذاری میکند و تضمین میکند که سعی نکنید از pin به روشی خاص استفاده کنید "
|
||||
"بدون اینکه ابتدا آن را به درستی پیکربندی کنید. state transition غیرمجاز در "
|
||||
"زمان کامپایل شناسایی میشود."
|
||||
|
||||
#: src/bare-metal/microcontrollers/type-state.md
|
||||
msgid ""
|
||||
@ -18205,7 +18359,7 @@ msgstr ""
|
||||
|
||||
#: src/bare-metal/microcontrollers/type-state.md
|
||||
msgid "Many HAL crates follow this pattern."
|
||||
msgstr ""
|
||||
msgstr "بسیاری از HAL crateها از این الگو پیروی میکنند."
|
||||
|
||||
#: src/bare-metal/microcontrollers/embedded-hal.md
|
||||
msgid ""
|
||||
@ -18260,12 +18414,17 @@ msgid ""
|
||||
"them, as initialisation and configuration is usually highly platform-"
|
||||
"specific."
|
||||
msgstr ""
|
||||
"این ویژگیها با استفاده از وسایل جانبی(peripherals) پوشش میدهند، اما آنها را "
|
||||
"مقداردهی اولیه یا پیکربندی نمیکنند، زیرا مقداردهی اولیه و پیکربندی معمولاً به "
|
||||
"پلتفرم خاص بستگی دارد."
|
||||
|
||||
#: src/bare-metal/microcontrollers/embedded-hal.md
|
||||
msgid ""
|
||||
"There are implementations for many microcontrollers, as well as other "
|
||||
"platforms such as Linux on Raspberry Pi."
|
||||
msgstr ""
|
||||
"پیادهسازیهایی برای بسیاری از میکروکنترلرها و همچنین پلتفرمهای دیگری مانند "
|
||||
"لینوکس در Raspberry Pi وجود دارد."
|
||||
|
||||
#: src/bare-metal/microcontrollers/embedded-hal.md
|
||||
msgid ""
|
||||
@ -18301,7 +18460,7 @@ msgstr ""
|
||||
|
||||
#: src/bare-metal/microcontrollers/probe-rs.md
|
||||
msgid "GDB stub and Microsoft DAP (Debug Adapter Protocol) server"
|
||||
msgstr ""
|
||||
msgstr "GDB stub و Microsoft DAP (Debug Adapter Protocol) server"
|
||||
|
||||
#: src/bare-metal/microcontrollers/probe-rs.md
|
||||
msgid "Cargo integration"
|
||||
@ -18343,6 +18502,8 @@ msgid ""
|
||||
"The Debug Access Port is usually either a 5-pin JTAG interface or 2-pin "
|
||||
"Serial Wire Debug."
|
||||
msgstr ""
|
||||
"پورت دسترسی Debug معمولا یا یک رابط JTAG 5 پین یا Serial Wire Debug 2 پین "
|
||||
"است."
|
||||
|
||||
#: src/bare-metal/microcontrollers/probe-rs.md
|
||||
msgid ""
|
||||
@ -18378,7 +18539,7 @@ msgstr ""
|
||||
|
||||
#: src/bare-metal/microcontrollers/debugging.md
|
||||
msgid "_Embed.toml_:"
|
||||
msgstr ""
|
||||
msgstr "_Embed.toml_:"
|
||||
|
||||
#: src/bare-metal/microcontrollers/debugging.md
|
||||
msgid "In one terminal under `src/bare-metal/microcontrollers/examples/`:"
|
||||
@ -18445,6 +18606,8 @@ msgid ""
|
||||
"Microkernel RTOS from Oxide Computer Company with memory protection, "
|
||||
"unprivileged drivers, IPC"
|
||||
msgstr ""
|
||||
"یک Microkernel RTOS از شرکت Oxide Computer با protection از حافظه، درایورهای "
|
||||
"غیرمجاز و IPC"
|
||||
|
||||
#: src/bare-metal/microcontrollers/other-projects.md
|
||||
msgid "[Bindings for FreeRTOS](https://github.com/lobaro/FreeRTOS-rust)"
|
||||
@ -18473,6 +18636,8 @@ msgid ""
|
||||
"It uses the Cortex-M NVIC (Nested Virtual Interrupt Controller) for "
|
||||
"scheduling rather than a proper kernel."
|
||||
msgstr ""
|
||||
"از Cortex-M NVIC (کنترلکننده وقفه مجازی تودرتو-Nested Virtual Interrupt "
|
||||
"Controller) برای زمانبندی به جای یک هسته مناسب استفاده میکند."
|
||||
|
||||
#: src/bare-metal/microcontrollers/other-projects.md
|
||||
msgid "Cortex-M only."
|
||||
@ -18489,6 +18654,8 @@ msgid ""
|
||||
"FreeRTOS is mostly written in C, but there are Rust bindings for writing "
|
||||
"applications."
|
||||
msgstr ""
|
||||
"در واقع FreeRTOS بیشتر به زبان C نوشته شده است، اما رابطهای Rust برای نوشتن "
|
||||
"برنامهها در این حالت وجود دارد."
|
||||
|
||||
#: src/exercises/bare-metal/morning.md
|
||||
msgid ""
|
||||
@ -18534,7 +18701,7 @@ msgstr ""
|
||||
#: src/exercises/bare-metal/compass.md
|
||||
msgid ""
|
||||
"The LSM303AGR Inertial Measurement Unit is connected to the internal I2C bus."
|
||||
msgstr ""
|
||||
msgstr "واحد اندازهگیری اینرسی در قطعه LSM303AGR به bus داخلی I2C متصل است."
|
||||
|
||||
#: src/exercises/bare-metal/compass.md
|
||||
msgid ""
|
||||
@ -18548,6 +18715,9 @@ msgid ""
|
||||
"I2c` trait. The [`microbit::hal::Twim`](https://docs.rs/microbit-v2/latest/"
|
||||
"microbit/hal/struct.Twim.html) struct implements this."
|
||||
msgstr ""
|
||||
"درایور LSM303AGR به چیزی نیاز دارد که ویژگی `embedded_hal::i2c::I2c` را اجرا "
|
||||
"کند. ساختار[`microbit::hal::Twim`](https://docs.rs/microbit-v2/latest/"
|
||||
"microbit/hal/struct.Twim.html) این مورد را پیادهسازی میکند."
|
||||
|
||||
#: src/exercises/bare-metal/compass.md
|
||||
msgid ""
|
||||
@ -18585,7 +18755,7 @@ msgstr "_Cargo.toml_ (نیاز به تغییر ندارد):"
|
||||
|
||||
#: src/exercises/bare-metal/compass.md
|
||||
msgid "_Embed.toml_ (you shouldn't need to change this):"
|
||||
msgstr ""
|
||||
msgstr "_Embed.toml_ (نیازی به تغییر این نیست):"
|
||||
|
||||
#: src/exercises/bare-metal/compass.md src/exercises/bare-metal/rtc.md
|
||||
msgid "_.cargo/config.toml_ (you shouldn't need to change this):"
|
||||
@ -18662,7 +18832,7 @@ msgstr ""
|
||||
|
||||
#: src/bare-metal/aps.md
|
||||
msgid "Application processors"
|
||||
msgstr ""
|
||||
msgstr "Application processors"
|
||||
|
||||
#: src/bare-metal/aps.md
|
||||
msgid ""
|
||||
@ -18867,12 +19037,18 @@ msgid ""
|
||||
"on zeroes. The compiler assumes that the loader will take care of zeroing "
|
||||
"them."
|
||||
msgstr ""
|
||||
"این BSS (نماد شروع بلوک، به دلایل تاریخی) بخشی از object file است که حاوی "
|
||||
"متغیرهای تخصیص یافته استاتیکی است که مقدار اولیه آنها صفر است. برای جلوگیری "
|
||||
"از اتلاف فضا روی صفر، آنها از تصویر حذف شدهاند. کامپایلر فرض میکند که لودر "
|
||||
"از صفر کردن آنها مراقبت میکند."
|
||||
|
||||
#: src/bare-metal/aps/entry-point.md
|
||||
msgid ""
|
||||
"The BSS may already be zeroed, depending on how memory is initialised and "
|
||||
"the image is loaded, but we zero it to be sure."
|
||||
msgstr ""
|
||||
"ممکن است BSS قبلاً صفر شده باشد، بسته به اینکه چگونه حافظه مقداردهی اولیه شده "
|
||||
"و تصویر بارگذاری شده است، اما برای اطمینان آن را صفر میکنیم."
|
||||
|
||||
#: src/bare-metal/aps/entry-point.md
|
||||
msgid ""
|
||||
@ -18889,6 +19065,10 @@ msgid ""
|
||||
"generating unaligned accesses, so it should be fine in this case, but this "
|
||||
"is not necessarily the case in general."
|
||||
msgstr ""
|
||||
"دسترسیهای بدون تراز خطا خواهند داشت. ما کد Rust را برای هدف`aarch64-unknown-"
|
||||
"none` میسازیم که `+strict-align` را تنظیم میکند تا از ایجاد دسترسیهای بدون "
|
||||
"تراز توسط کامپایلر جلوگیری کند، بنابراین در این مورد باید خوب باشد، اما "
|
||||
"لزوماً اینطور نیست."
|
||||
|
||||
#: src/bare-metal/aps/entry-point.md
|
||||
msgid ""
|
||||
@ -18900,6 +19080,13 @@ msgid ""
|
||||
"is cleaned or the VM enables the cache. (Cache is keyed by physical address, "
|
||||
"not VA or IPA.)"
|
||||
msgstr ""
|
||||
"اگر در VM اجرا میشد، این کار میتواند منجر به مشکلات انسجام cache شود. مشکل "
|
||||
"این است که VM مستقیماً با حافظه cache غیرفعال شده به حافظه دسترسی پیدا میکند، "
|
||||
"در حالی که host دارای نام مستعار قابل cache برای همان حافظه است. حتی اگر "
|
||||
"cache به طور صریح به حافظه دسترسی نداشته باشد، دسترسیهای گمانهزنی میتواند "
|
||||
"منجر به پر شدن حافظه cache شود، و پس از پاک شدن حافظه cache یا فعال کردن "
|
||||
"حافظه توسط VM، تغییرات از یک یا دیگری از بین میرود. (حافظه cache با آدرس "
|
||||
"فیزیکی کلید میخورد، نه VA یا IPA.)"
|
||||
|
||||
#: src/bare-metal/aps/entry-point.md
|
||||
msgid ""
|
||||
@ -18923,6 +19110,9 @@ msgid ""
|
||||
"(EL1). If you need to run at a different exception level you'll need to "
|
||||
"modify `entry.S` accordingly."
|
||||
msgstr ""
|
||||
"همه مثالها امروز بعد از ظهر فرض میکنند که ما در سطح استثنا 1 (EL1) اجرا "
|
||||
"خواهیم کرد. اگر نیاز به اجرا در سطح استثنایی متفاوت دارید، باید `entry.S`را "
|
||||
"بر این اساس تغییر دهید."
|
||||
|
||||
#: src/bare-metal/aps/inline-assembly.md
|
||||
msgid "Inline assembly"
|
||||
@ -23076,6 +23266,8 @@ msgid ""
|
||||
"A type associated with a specific trait. Useful for defining the "
|
||||
"relationship between types."
|
||||
msgstr ""
|
||||
"نوع مرتبط:\n"
|
||||
"نوعی که با یک ویژگی خاص مرتبط است. برای تعریف رابطه بین typeها مفید است."
|
||||
|
||||
#: src/glossary.md
|
||||
msgid ""
|
||||
|
@ -14,8 +14,9 @@ volunteers:
|
||||
- [Korean][ko] by [@keispace], [@jiyongp], [@jooyunghan], and [@namhyung].
|
||||
- [Spanish][es] by [@deavid].
|
||||
- [Ukrainian][uk] by [@git-user-cpp], [@yaremam] and [@reta].
|
||||
|
||||
Use the language picker in the top-right corner to switch between languages.
|
||||
- [Farsi][fa] by [@DannyRavi], [@javad-jafari], [@Alix1383], [@moaminsharifi] ,
|
||||
[@hamidrezakp] and [@mehrad77]. . Use the language picker in the top-right
|
||||
corner to switch between languages.
|
||||
|
||||
## Incomplete Translations
|
||||
|
||||
@ -24,8 +25,6 @@ recently updated translations:
|
||||
|
||||
- [Arabic][ar] by [@younies]
|
||||
- [Bengali][bn] by [@raselmandol].
|
||||
- [Farsi][fa] by [@Alix1383], [@DannyRavi], [@hamidrezakp], [@javad-jafari] and
|
||||
[@moaminsharifi].
|
||||
- [French][fr] by [@KookaS], [@vcaen] and [@AdrienBaudemont].
|
||||
- [German][de] by [@Throvn] and [@ronaldfw].
|
||||
- [Italian][it] by [@henrythebuilder] and [@detro].
|
||||
|
Loading…
x
Reference in New Issue
Block a user