From 7a25c4ad84477381233f6da5c22dfc92540a0311 Mon Sep 17 00:00:00 2001 From: Danny Ra Date: Fri, 4 Oct 2024 23:28:39 +0330 Subject: [PATCH 1/2] fa: try to complete Farsi part 3 (#2395) fa: try to complete Farsi part 3 --------- Co-authored-by: javad-jafari Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com> --- po/fa.po | 95 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 78 insertions(+), 17 deletions(-) diff --git a/po/fa.po b/po/fa.po index 730cb9758c81..a58bfc3ac14b 100644 --- a/po/fa.po +++ b/po/fa.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Comprehensive Rust 🦀\n" "POT-Creation-Date: 2024-09-11T22:10:46Z\n" -"PO-Revision-Date: 2024-09-24 00:14+0330\n" +"PO-Revision-Date: 2024-10-04 21:48+0330\n" "Last-Translator: alix1383 \n" "Language-Team: Persian\n" "Language: fa\n" @@ -633,7 +633,7 @@ msgstr "عملگرد Try" #: src/SUMMARY.md src/error-handling.md src/error-handling/try-conversions.md msgid "Try Conversions" -msgstr "" +msgstr "این تبدیل‌ها (Conversions) را امتحان کنید" #: src/SUMMARY.md msgid "`Error` Trait" @@ -885,7 +885,7 @@ msgstr "بسته به Rust Code از ++Chromium C" #: src/SUMMARY.md src/chromium/build-rules/vscode.md msgid "Visual Studio Code" -msgstr "" +msgstr "Visual Studio Code" #: src/SUMMARY.md src/exercises/chromium/third-party.md msgid "Exercise" @@ -931,7 +931,7 @@ msgstr "مدیریت خطا: مثال PNG" #: src/SUMMARY.md msgid "Using CXX in Chromium" -msgstr "" +msgstr "استفاده از CXX در Chromium" #: src/SUMMARY.md src/chromium/adding-third-party-crates.md msgid "Adding Third Party Crates" @@ -4589,6 +4589,7 @@ msgstr "\"({}, {})\"" #: src/user-defined-types/tuple-structs.md msgid "This is often used for single-field wrappers (called newtypes):" msgstr "" +"این اغلب برایsingle-field wrapper (که newtypes نامیده می‌شوند) استفاده می‌شود:" #: src/user-defined-types/tuple-structs.md msgid "\"Ask a rocket scientist at NASA\"" @@ -4921,6 +4922,10 @@ msgid "" "various events. Use `#[derive(Debug)]` to allow the types to be formatted " "with `{:?}`." msgstr "" +"ما یک ساختار داده برای نمایش یک رویداد در یک سیستم کنترل آسانسور ایجاد " +"خواهیم کرد. این به شما بستگی دارد که انواع و عملکردها را برای ساخت رویدادهای " +"مختلف تعریف کنید. از `#[derive(Debug)]` استفاده کنید تا اجازه دهید انواع با " +"`{:?}` قالببندی شوند." #: src/user-defined-types/exercise.md msgid "" @@ -4928,6 +4933,8 @@ msgid "" "`main` runs without errors. The next part of the course will cover getting " "data out of these structures." msgstr "" +"این تمرین فقط به ایجاد و پر کردن ساختارهای داده نیاز دارد تا `main` بدون خطا " +"اجرا شود. بخش بعدی این دوره دریافت داده‌ها از این ساختارها را پوشش می‌دهد." #: src/user-defined-types/exercise.md src/user-defined-types/solution.md #, fuzzy @@ -9439,6 +9446,8 @@ msgid "" "These types perform dynamic checks using a counter in the `RefCell` to " "prevent existence of a `RefMut` alongside another `Ref`/`RefMut`." msgstr "" +"این type با استفاده از یک شمارنده در `RefCell` بررسی‌های dynamic را انجام " +"می‌دهند تا از وجود `RefMut` در کنار `Ref`/`RefMut` دیگر جلوگیری کنند." #: src/borrowing/interior-mutability.md msgid "" @@ -10251,7 +10260,7 @@ msgstr "پیاده‌سازی `Iterator`" #: src/iterators/fromiterator.md msgid "There are two ways to specify `B` for this method:" -msgstr "" +msgstr "دو راه برای تعیین`B` برای این روش وجود دارد:" #: src/iterators/fromiterator.md msgid "" @@ -10265,6 +10274,8 @@ msgid "" "With type inference: `let prime_squares: Vec<_> = some_iterator.collect()`. " "Rewrite the example to use this form." msgstr "" +"با نوع inference: `let prime_squares: Vec<_> = some_iterator.collect()`. " +"این مثال را برای استفاده از این فرم بازنویسی کنید." #: src/iterators/fromiterator.md msgid "" @@ -10307,11 +10318,13 @@ msgstr "" #: src/modules.md src/modules/paths.md msgid "use, super, self" -msgstr "" +msgstr "use, super, self" #: src/modules/modules.md msgid "We have seen how `impl` blocks let us namespace functions to a type." msgstr "" +"دیده‌ایم که چگونه بلوک‌های `impl` به ما اجازه می‌دهند تا namespace functions را " +"به یک type تبدیل کنیم." #: src/modules/modules.md msgid "Similarly, `mod` lets us namespace types and functions:" @@ -10358,6 +10371,9 @@ msgid "" "rs`. Similarly, a `garden::vegetables` module can be found at `src/garden/" "vegetables.rs`." msgstr "" +"این به rust می‌گوید که محتوای ماژول `garden` در`src/garden.rs`یافت می‌شود. به " +"طور مشابه، ماژول `garden::vegetables` را می‌توان در `src/garden/vegetables." +"rs` یافت." #: src/modules/filesystem.md msgid "The `crate` root is in:" @@ -10439,6 +10455,9 @@ msgid "" "This is useful, for example, if you would like to place tests for a module " "in a file named `some_module_test.rs`, similar to the convention in Go." msgstr "" +"برای مثال، اگر می‌خواهید تست‌هایی را برای یک ماژول در فایلی به نام " +"`some_module_test.rs` قرار دهید، مفید است، شبیه به قرارداد (convention) در " +"Go." #: src/modules/visibility.md msgid "Modules are a privacy boundary:" @@ -10478,7 +10497,7 @@ msgstr "\"outer::inner::public\"" #: src/modules/visibility.md msgid "Use the `pub` keyword to make modules public." -msgstr "" +msgstr "از کلمه کلیدی `pub` برای public کردن ماژول‌ها استفاده کنید." #: src/modules/visibility.md msgid "" @@ -10807,7 +10826,7 @@ msgstr "\"سلام دنیا!\"" #: src/testing/unit-tests.md msgid "This lets you unit test private helpers." -msgstr "" +msgstr "این به شما امکان می‌دهد تا private helper را آزمایش کنید." #: src/testing/unit-tests.md msgid "The `#[cfg(test)]` attribute is only active when you run `cargo test`." @@ -10837,7 +10856,7 @@ msgstr "// tests/my_library.rs\n" #: src/testing/other.md msgid "These tests only have access to the public API of your crate." -msgstr "" +msgstr "این آزمایش‌ها فقط به public API مربوط به crate شما دسترسی دارند." #: src/testing/other.md msgid "Documentation Tests" @@ -11129,6 +11148,8 @@ msgstr "" msgid "" "Use non-panicking APIs (such as `Vec::get`) if crashing is not acceptable." msgstr "" +"اگر خرابی قابل قبول نیست، از APIهای بدون panic (مانند `Vec::get`) استفاده " +"کنید." #: src/error-handling/panics.md msgid "" @@ -11163,10 +11184,14 @@ msgid "" "This can be useful in servers which should keep running even if a single " "request crashes." msgstr "" +"این کار می‌تواند در سرورهایی مفید باشد که حتی در صورت خراب شدن یک درخواست، " +"باید به کار خود ادامه دهند." #: src/error-handling/panics.md msgid "This does not work if `panic = 'abort'` is set in your `Cargo.toml`." msgstr "" +"اگر `panic = 'abort'` در `Cargo.toml`» شما تنظیم شده باشد، این مورد کار " +"نمی‌کند." #: src/error-handling/result.md msgid "" @@ -11189,6 +11214,8 @@ msgid "" "Whether or not a function can produce an error is encoded in the function's " "type signature by having the function return a `Result` value." msgstr "" +"اینکه آیا یک تابع می‌تواند خطا ایجاد کند یا نه، در signature نوع تابع با " +"برگرداندن تابع مقدار `Result` کدگذاری می‌شود." #: src/error-handling/result.md msgid "" @@ -11266,7 +11293,7 @@ msgstr "بسیار ساده‌تر" #: src/error-handling/try.md msgid "We can use this to simplify our error handling code:" -msgstr "" +msgstr "می‌توانیم از این برای ساده‌سازی کد رسیدگی به خطا استفاده کنیم:" #: src/error-handling/try.md #, fuzzy @@ -11295,6 +11322,8 @@ msgid "" "Use the `fs::write` call to test out the different scenarios: no file, empty " "file, file with username." msgstr "" +"از فراخوانی `fs::write` برای آزمایش سناریوهای مختلف استفاده کنید: بدون فایل، " +"فایل خالی، فایل با نام کاربری." #: src/error-handling/try.md msgid "" @@ -11367,6 +11396,9 @@ msgid "" "`Option` can use the `?` operator on `Option` for arbitrary `T` and " "`U` types." msgstr "" +"هیچ الزامی برای سازگاری `Option` وجود ندارد. تابعی که `Option` را برمی " +"گرداند می تواند از عملگر `?` در `Option` برای انواع دلخواه `T` و `U` " +"استفاده کند." #: src/error-handling/try-conversions.md msgid "" @@ -11648,7 +11680,7 @@ msgstr "\"شماره نامعتبر\"" #: src/unsafe-rust.md msgid "This segment should take about 1 hour and 5 minutes. It contains:" -msgstr "" +msgstr "این بخش باید حدود ۱ ساعت و ۵ دقیقه طول بکشد.و شامل موارد زیر است:" #: src/unsafe-rust/unsafe.md msgid "The Rust language has two parts:" @@ -11672,12 +11704,16 @@ msgid "" "We saw mostly safe Rust in this course, but it's important to know what " "Unsafe Rust is." msgstr "" +"ما عمدتاً safe Rust را در این دوره دیدیم، اما مهم است که بدانیم Unsafe Rust " +"چیست." #: src/unsafe-rust/unsafe.md msgid "" "Unsafe code is usually small and isolated, and its correctness should be " "carefully documented. It is usually wrapped in a safe abstraction layer." msgstr "" +"کد ناامن معمولا کوچک و ایزوله است و صحت آن باید به دقت مستند شود. معمولاً در " +"یک لایه انتزاعی ایمن پیچیده می‌شود." #: src/unsafe-rust/unsafe.md msgid "Unsafe Rust gives you access to five new capabilities:" @@ -11709,6 +11745,9 @@ msgid "" "[Chapter 19.1 in the Rust Book](https://doc.rust-lang.org/book/ch19-01-" "unsafe-rust.html) and the [Rustonomicon](https://doc.rust-lang.org/nomicon/)." msgstr "" +"در ادامه به طور خلاصه به قابلیت‌های unsafe می‌پردازیم. برای جزئیات کامل، لطفاً " +"به [Chapter 19.1 in the Rust Book](https://doc.rust-lang.org/book/ch19-01-" +"unsafe-rust.html) و [Rustonomicon](https://doc.rust-lang.org/nomicon/)." #: src/unsafe-rust/unsafe.md msgid "" @@ -11800,7 +11839,7 @@ msgstr "" #: src/unsafe-rust/dereferencing.md msgid "There must not be concurrent accesses to the same location." -msgstr "" +msgstr "دسترسی همزمان به یک مکان نباید وجود داشته باشد." #: src/unsafe-rust/dereferencing.md msgid "" @@ -11866,6 +11905,9 @@ msgid "" "where it might make sense in low-level `no_std` code, such as implementing a " "heap allocator or working with some C APIs." msgstr "" +"استفاده از یک static قابل تغییر (mutable) به طور کلی ایده بدی است، اما " +"مواردی وجود دارد که ممکن است در کدهای سطح پایین `no_std` منطقی باشد، مانند " +"اجرای یک heap allocator یا کار با برخی از APIهای مربوط به زبان C." #: src/unsafe-rust/unions.md msgid "Unions are like enums, but you need to track the active field yourself:" @@ -12079,6 +12121,8 @@ msgid "" "There should be a `# Safety` section on the Rustdoc for the trait explaining " "the requirements for the trait to be safely implemented." msgstr "" +"باید یک بخش `# Safety` در Rustdoc برای این صفت (trait) وجود داشته باشد که " +"شرایط لازم برای اجرای ایمن این trait را توضیح دهد." #: src/unsafe-rust/unsafe-traits.md msgid "" @@ -12142,7 +12186,7 @@ msgstr "" #: src/unsafe-rust/exercise.md msgid "UTF-8" -msgstr "" +msgstr "UTF-8" #: src/unsafe-rust/exercise.md msgid "Text processing in Rust" @@ -17663,6 +17707,9 @@ msgid "" "Comprehensive Rust course), and ideally also have some experience with bare-" "metal programming in some other language such as C." msgstr "" +"این یک دوره مستقل یک روزه در مورد bare-metal Rust است که با هدف افرادی که با " +"اصول Rust آشنا هستند (شاید از اتمام دوره جامع Rust) و در حالت ایده آل نیز " +"تجربه برنامه‌نویسی bare-metal به زبان دیگری را دارند، مانند C می‌باشد." #: src/bare-metal.md msgid "" @@ -17674,7 +17721,7 @@ msgstr "" #: src/bare-metal.md msgid "What is `no_std` Rust?" -msgstr "" +msgstr "این `no_std` Rust چیست؟" #: src/bare-metal.md msgid "Writing firmware for microcontrollers." @@ -17727,7 +17774,7 @@ msgstr "Slices, `&str`, `CStr`" #: src/bare-metal/no_std.md msgid "`NonZeroU8`..." -msgstr "`net`" +msgstr "`NonZeroU8`..." #: src/bare-metal/no_std.md msgid "`Option`, `Result`" @@ -17909,7 +17956,7 @@ msgstr "" #: src/bare-metal/alloc.md msgid "This example will build but not run, as it doesn't have an entry point." -msgstr "" +msgstr "این مثال ساخته می شود اما اجرا نمی‌شود، زیرا entry point ندارد." #: src/bare-metal/microcontrollers.md msgid "" @@ -18448,6 +18495,7 @@ msgid "" "We will read the direction from an I2C compass, and log the readings to a " "serial port." msgstr "" +"ما جهت را از قطب‌نمای I2C می‌خوانیم و خوانش‌ها را در یک پورت سریال ثبت می‌کنیم." #: src/exercises/bare-metal/morning.md msgid "" @@ -18463,6 +18511,9 @@ msgid "" "serial port. If you have time, try displaying it on the LEDs somehow too, or " "use the buttons somehow." msgstr "" +"ما جهت را از قطب‌نمای I2C می خوانیم و خوانش‌ها را در یک پورت سریال ثبت می‌کنیم. " +"اگر وقت دارید، سعی کنید آن را به نحوی روی LED‌ها نیز نمایش دهید یا به نوعی از " +"دکمه‌ها استفاده کنید." #: src/exercises/bare-metal/compass.md msgid "Hints:" @@ -18513,6 +18564,8 @@ msgid "" "com/pdf/nRF52833_PS_v1.5.pdf) if you want, but it shouldn't be necessary for " "this exercise." msgstr "" +"در صورت تمایل می‌توانید به [nRF52833 datasheet](https://infocenter.nordicsemi." +"com/pdf/nRF52833_PS_v1.5.pdf) نیز نگاه کنید، اما برای این تمرین لازم نیست." #: src/exercises/bare-metal/compass.md msgid "" @@ -18550,7 +18603,7 @@ msgstr "" #: src/exercises/bare-metal/compass.md msgid "Use Ctrl+A Ctrl+Q to quit picocom." -msgstr "" +msgstr "برای خروج از picocom از Ctrl+A و Ctrl+Q استفاده کنید." #: src/exercises/bare-metal/solutions-morning.md msgid "Bare Metal Rust Morning Exercise" @@ -18803,6 +18856,8 @@ msgid "" "This is the same as it would be for C: initialising the processor state, " "zeroing the BSS, and setting up the stack pointer." msgstr "" +"این همان چیزی است که برای C وجود دارد: مقداردهی اولیه وضعیت پردازنده، صفر " +"کردن BSS و تنظیم stack pointer." #: src/bare-metal/aps/entry-point.md msgid "" @@ -18824,6 +18879,8 @@ msgid "" "We need to enable the MMU and cache before reading or writing any memory. If " "we don't:" msgstr "" +"قبل از خواندن یا نوشتن هر حافظه باید MMU و cache را فعال کنیم. اگر این کار " +"را نکنیم:" #: src/bare-metal/aps/entry-point.md msgid "" @@ -18857,6 +18914,8 @@ msgid "" "We also set up the exception vector (`vbar_el1`), which we'll see more about " "later." msgstr "" +"ما همچنین exception vector (`vbar_el1`) را تنظیم کردیم که در ادامه بیشتر در " +"مورد آن خواهیم دید." #: src/bare-metal/aps/entry-point.md msgid "" @@ -20722,6 +20781,8 @@ msgstr "\"Main: got {msg}\"" msgid "" "With bounded (synchronous) channels, `send` can block the current thread:" msgstr "" +"با کانال‌های bounded (synchronous)، فرآیند `send` می‌تواند thread فعلی را " +"مسدود کند:" #: src/concurrency/channels/bounded.md msgid "" From 252bb625213e5cae61fa7ebabe2b308e31271226 Mon Sep 17 00:00:00 2001 From: Yerkebulan Tulibergenov Date: Tue, 8 Oct 2024 20:25:54 -0700 Subject: [PATCH 2/2] Fix typo (#2399) Fix typo --- src/memory-management/copy-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/memory-management/copy-types.md b/src/memory-management/copy-types.md index 6cb434bdbaa3..9514947b9164 100644 --- a/src/memory-management/copy-types.md +++ b/src/memory-management/copy-types.md @@ -60,7 +60,7 @@ In the above example, try the following: # More to Explore - Shared references are `Copy`/`Clone`, mutable references are not. This is - because rust requires that mutable references be exclusive, so while it's + because Rust requires that mutable references be exclusive, so while it's valid to make a copy of a shared reference, creating a copy of a mutable reference would violate Rust's borrowing rules.