1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-05-23 19:00:13 +02:00

Eighth Stage of Arabic Translation (#2312)

This commit is contained in:
Younies Mahmoud 2024-08-26 00:23:01 +02:00 committed by GitHub
parent a13f9d4048
commit c1642999b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

212
po/ar.po
View File

@ -3024,9 +3024,10 @@ msgid ""
"hygienic](https://veykril.github.io/tlborm/decl-macros/minutiae/hygiene." "hygienic](https://veykril.github.io/tlborm/decl-macros/minutiae/hygiene."
"html)." "html)."
msgstr "" msgstr ""
"كون الماكروهات 'hygienic' يعني أنها لا تلتقط المعرفات من النطاق الذي تُستخدم " "كون الماكروهات (macros) 'hygienic' يعني أنها لا تلتقط identifiers من scope "
"فيه عن طريق الخطأ. في الواقع، ماكروهات Rust هي فقط [hygienic جزئيًا](https://" "الذي تُستخدم فيه عن طريق الخطأ. في الواقع، ماكروهات Rust (macros) هي فقط "
"veykril.github.io/tlborm/decl-macros/minutiae/hygiene.html)." "[hygienic جزئيًا](https://veykril.github.io/tlborm/decl-macros/minutiae/"
"hygiene.html)."
#: src/types-and-values/hello-world.md #: src/types-and-values/hello-world.md
msgid "" msgid ""
@ -3035,29 +3036,39 @@ msgid ""
"while it is not a functional language, it includes a range of [functional " "while it is not a functional language, it includes a range of [functional "
"concepts](https://doc.rust-lang.org/book/ch13-00-functional-features.html)." "concepts](https://doc.rust-lang.org/book/ch13-00-functional-features.html)."
msgstr "" msgstr ""
"Rust متعدد الأنماط (multi-paradigm). على سبيل المثال، يحتوي على ميزات قوية "
"لبرمجة الكائنات (object-oriented programming features)، وعلى الرغم من أنه "
"ليس لغة وظيفية، إلا أنه يتضمن مجموعة من المفاهيم الوظيفية (functional "
"concepts)."
#: src/types-and-values/variables.md #: src/types-and-values/variables.md
msgid "" msgid ""
"Rust provides type safety via static typing. Variable bindings are made with " "Rust provides type safety via static typing. Variable bindings are made with "
"`let`:" "`let`:"
msgstr "" msgstr ""
"Rust يوفر أمان النوع من خلال الكتابة الثابتة (static typing). يتم إنشاء "
"ارتباطات المتغيرات باستخدام `let`:"
#: src/types-and-values/variables.md src/control-flow-basics/loops/for.md #: src/types-and-values/variables.md src/control-flow-basics/loops/for.md
#: src/control-flow-basics/blocks-and-scopes.md #: src/control-flow-basics/blocks-and-scopes.md
msgid "\"x: {x}\"" msgid "\"x: {x}\""
msgstr "" msgstr "\"x: {x}\""
#: src/types-and-values/variables.md #: src/types-and-values/variables.md
msgid "" msgid ""
"// x = 20;\n" "// x = 20;\n"
" // println!(\"x: {x}\");\n" " // println!(\"x: {x}\");\n"
msgstr "" msgstr ""
"// x = 20;\n"
" // println!(\"x: {x}\");\n"
#: src/types-and-values/variables.md #: src/types-and-values/variables.md
msgid "" msgid ""
"Uncomment the `x = 20` to demonstrate that variables are immutable by " "Uncomment the `x = 20` to demonstrate that variables are immutable by "
"default. Add the `mut` keyword to allow changes." "default. Add the `mut` keyword to allow changes."
msgstr "" msgstr ""
"قم بإلغاء التعليق `x = 20` لإظهار أن المتغيرات غير قابلة للتغيير بشكل "
"افتراضي. أضف الكلمة المفتاحية `mut` للسماح بالتغييرات."
#: src/types-and-values/variables.md #: src/types-and-values/variables.md
msgid "" msgid ""
@ -3065,104 +3076,109 @@ msgid ""
"time, but type inference (covered later) allows the programmer to omit it in " "time, but type inference (covered later) allows the programmer to omit it in "
"many cases." "many cases."
msgstr "" msgstr ""
"الـ `i32` هنا هو نوع المتغير (type). يجب أن يكون هذا معروفًا في وقت الترجمة "
"(compile time)، ولكن استنباط النوع (type inference) (الذي سيتم تغطيته لاحقًا) "
"يسمح للمبرمج بتجاهله في العديد من الحالات."
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "" msgid ""
"Here are some basic built-in types, and the syntax for literal values of " "Here are some basic built-in types, and the syntax for literal values of "
"each type." "each type."
msgstr "" msgstr ""
"هنا بعض الأنواع المدمجة الأساسية (built-in types)، وصيغة القيم الحرفية "
"(literal values) لكل نوع (type)."
#: src/types-and-values/values.md src/unsafe-rust/exercise.md #: src/types-and-values/values.md src/unsafe-rust/exercise.md
msgid "Types" msgid "Types"
msgstr "" msgstr "الأنواع (Types)"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "Literals" msgid "Literals"
msgstr "" msgstr "القيم الحرفية (Literals)"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "Signed integers" msgid "Signed integers"
msgstr "" msgstr "الأعداد الصحيحة الموقعة، اي لها ايشارة (Signed integers)"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`i8`, `i16`, `i32`, `i64`, `i128`, `isize`" msgid "`i8`, `i16`, `i32`, `i64`, `i128`, `isize`"
msgstr "" msgstr "`i8`، `i16`، `i32`، `i64`، `i128`، `isize`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`-10`, `0`, `1_000`, `123_i64`" msgid "`-10`, `0`, `1_000`, `123_i64`"
msgstr "" msgstr "`-10`، `0`، `1_000`، `123_i64`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "Unsigned integers" msgid "Unsigned integers"
msgstr "" msgstr "الأعداد الصحيحة غير الموقعة، اي ليس لها ايشارة (Unsigned integers)"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`u8`, `u16`, `u32`, `u64`, `u128`, `usize`" msgid "`u8`, `u16`, `u32`, `u64`, `u128`, `usize`"
msgstr "" msgstr "`u8`، `u16`، `u32`، `u64`، `u128`، `usize`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`0`, `123`, `10_u16`" msgid "`0`, `123`, `10_u16`"
msgstr "" msgstr "`0`، `123`، `10_u16`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "Floating point numbers" msgid "Floating point numbers"
msgstr "" msgstr "الأعداد العشرية (Floating point numbers)"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`f32`, `f64`" msgid "`f32`, `f64`"
msgstr "" msgstr "`f32`، `f64`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`3.14`, `-10.0e20`, `2_f32`" msgid "`3.14`, `-10.0e20`, `2_f32`"
msgstr "" msgstr "`3.14`، `-10.0e20`، `2_f32`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "Unicode scalar values" msgid "Unicode scalar values"
msgstr "" msgstr "قيم يونيكود العددية (Unicode scalar values)"
#: src/types-and-values/values.md src/android/aidl/types/primitives.md #: src/types-and-values/values.md src/android/aidl/types/primitives.md
msgid "`char`" msgid "`char`"
msgstr "" msgstr "`char`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`'a'`, `'α'`, `'∞'`" msgid "`'a'`, `'α'`, `'∞'`"
msgstr "" msgstr "`'a'`، `'α'`، `'∞'`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "Booleans" msgid "Booleans"
msgstr "" msgstr "القيم المنطقية (Booleans)"
#: src/types-and-values/values.md src/android/aidl/types/primitives.md #: src/types-and-values/values.md src/android/aidl/types/primitives.md
msgid "`bool`" msgid "`bool`"
msgstr "" msgstr "`bool`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`true`, `false`" msgid "`true`, `false`"
msgstr "" msgstr "`true`، `false`"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "The types have widths as follows:" msgid "The types have widths as follows:"
msgstr "" msgstr "عرض الأنواع كما يلي:"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`iN`, `uN`, and `fN` are _N_ bits wide," msgid "`iN`, `uN`, and `fN` are _N_ bits wide,"
msgstr "" msgstr "`iN`، `uN`، و `fN` عرضها _N_ بت،"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`isize` and `usize` are the width of a pointer," msgid "`isize` and `usize` are the width of a pointer,"
msgstr "" msgstr "`isize` و `usize` هما عرض المؤشر،"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`char` is 32 bits wide," msgid "`char` is 32 bits wide,"
msgstr "" msgstr "`char` عرضه 32 بت،"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "`bool` is 8 bits wide." msgid "`bool` is 8 bits wide."
msgstr "" msgstr "`bool` عرضه 8 بت."
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "There are a few syntaxes which are not shown above:" msgid "There are a few syntaxes which are not shown above:"
msgstr "" msgstr "هناك بعض الصيغ التي لم يتم عرضها أعلاه:"
#: src/types-and-values/values.md #: src/types-and-values/values.md
msgid "" msgid ""
@ -3170,10 +3186,12 @@ msgid ""
"`1_000` can be written as `1000` (or `10_00`), and `123_i64` can be written " "`1_000` can be written as `1000` (or `10_00`), and `123_i64` can be written "
"as `123i64`." "as `123i64`."
msgstr "" msgstr ""
"يمكن حذف جميع الشرطات السفلية في الأرقام، فهي فقط من أجل الوضوح. لذلك يمكن "
"كتابة `1_000` كـ `1000` (أو `10_00`)، ويمكن كتابة `123_i64` كـ `123i64`."
#: src/types-and-values/arithmetic.md #: src/types-and-values/arithmetic.md
msgid "\"result: {}\"" msgid "\"result: {}\""
msgstr "" msgstr "\"النتيجة: {}\""
#: src/types-and-values/arithmetic.md #: src/types-and-values/arithmetic.md
msgid "" msgid ""
@ -3181,10 +3199,13 @@ msgid ""
"meaning should be clear: it takes three integers, and returns an integer. " "meaning should be clear: it takes three integers, and returns an integer. "
"Functions will be covered in more detail later." "Functions will be covered in more detail later."
msgstr "" msgstr ""
"هذه هي المرة الأولى التي نرى فيها دالة غير `main`، ولكن يجب أن يكون المعنى "
"واضحًا: إنها تأخذ ثلاثة أعداد صحيحة (integers)، وتعيد عددًا صحيحًا (integer). "
"سيتم تغطية الدوال (functions) بمزيد من التفصيل لاحقًا."
#: src/types-and-values/arithmetic.md #: src/types-and-values/arithmetic.md
msgid "Arithmetic is very similar to other languages, with similar precedence." msgid "Arithmetic is very similar to other languages, with similar precedence."
msgstr "" msgstr "الحساب مشابه جدًا للغات الأخرى، مع أسبقية مشابهة."
#: src/types-and-values/arithmetic.md #: src/types-and-values/arithmetic.md
msgid "" msgid ""
@ -3192,6 +3213,9 @@ msgid ""
"actually undefined, and might do unknown things at runtime. In Rust, it's " "actually undefined, and might do unknown things at runtime. In Rust, it's "
"defined." "defined."
msgstr "" msgstr ""
"ماذا عن تجاوز السعة للأعداد الصحيحة (integer overflow)؟ في C و C++، تجاوز "
"السعة للأعداد الصحيحة الموقعة (signed) غير معرف فعليًا، وقد يقوم بأشياء غير "
"معروفة أثناء التشغيل. في Rust، هو معرف."
#: src/types-and-values/arithmetic.md #: src/types-and-values/arithmetic.md
msgid "" msgid ""
@ -3201,22 +3225,31 @@ msgid ""
"with method syntax, e.g., `(a * b).saturating_add(b * c).saturating_add(c * " "with method syntax, e.g., `(a * b).saturating_add(b * c).saturating_add(c * "
"a)`." "a)`."
msgstr "" msgstr ""
"قم بتغيير `i32` إلى `i16` لرؤية تجاوز السعة للأعداد الصحيحة، والذي يسبب ذعرًا "
"(panic) في بناء التصحيح (debug build) ويلتف في بناء الإصدار (release build). "
"هناك خيارات أخرى، مثل التجاوز (overflowing)، التشبع (saturating)، والحمل "
"(carrying). يتم الوصول إليها باستخدام صيغة الدالة (method syntax)، مثل `(a * "
"b).saturating_add(b * c).saturating_add(c * a)`."
#: src/types-and-values/arithmetic.md #: src/types-and-values/arithmetic.md
msgid "" msgid ""
"In fact, the compiler will detect overflow of constant expressions, which is " "In fact, the compiler will detect overflow of constant expressions, which is "
"why the example requires a separate function." "why the example requires a separate function."
msgstr "" msgstr ""
"في الواقع، سيكتشف المترجم (compiler) تجاوز السعة (overflow) للتعابير الثابتة "
"(constant expressions)، وهذا هو السبب في أن المثال يتطلب دالة منفصلة."
#: src/types-and-values/inference.md #: src/types-and-values/inference.md
msgid "Rust will look at how the variable is _used_ to determine the type:" msgid "Rust will look at how the variable is _used_ to determine the type:"
msgstr "" msgstr "ستنظر Rust في كيفية _استخدام_ المتغير لتحديد النوع:"
#: src/types-and-values/inference.md #: src/types-and-values/inference.md
msgid "" msgid ""
"This slide demonstrates how the Rust compiler infers types based on " "This slide demonstrates how the Rust compiler infers types based on "
"constraints given by variable declarations and usages." "constraints given by variable declarations and usages."
msgstr "" msgstr ""
"توضح هذه الشريحة كيف يستنتج مترجم Rust الأنواع بناءً على القيود المقدمة من "
"انشاء المتغيرات (variable declarations) واستخداماتها."
#: src/types-and-values/inference.md #: src/types-and-values/inference.md
msgid "" msgid ""
@ -3226,6 +3259,10 @@ msgid ""
"of a type. The compiler does the job for us and helps us write more concise " "of a type. The compiler does the job for us and helps us write more concise "
"code." "code."
msgstr "" msgstr ""
"من المهم جدًا التأكيد على أن المتغيرات المعلنة بهذه الطريقة ليست من نوع "
"ديناميكي \"أي نوع\" يمكنه الاحتفاظ بأي بيانات. الكود الآلي الناتج عن هذا "
"التصريح مطابق للتصريح الصريح عن النوع. يقوم المترجم بالعمل نيابة عنا "
"ويساعدنا في كتابة كود أكثر اختصارًا."
#: src/types-and-values/inference.md #: src/types-and-values/inference.md
msgid "" msgid ""
@ -3233,10 +3270,13 @@ msgid ""
"`i32`. This sometimes appears as `{integer}` in error messages. Similarly, " "`i32`. This sometimes appears as `{integer}` in error messages. Similarly, "
"floating-point literals default to `f64`." "floating-point literals default to `f64`."
msgstr "" msgstr ""
"عندما لا يوجد شيء يقيد نوع العدد الصحيح (integer literal)، فإن Rust تستخدم "
"افتراضيًا `i32`. يظهر هذا أحيانًا كـ `{integer}` في رسائل الخطأ. وبالمثل، "
"تستخدم الأعداد العشرية (floating-point literals) افتراضيًا `f64`."
#: src/types-and-values/inference.md #: src/types-and-values/inference.md
msgid "// ERROR: no implementation for `{float} == {integer}`\n" msgid "// ERROR: no implementation for `{float} == {integer}`\n"
msgstr "" msgstr "// خطأ: لا يوجد تنفيذ لـ `{float} == {integer}`\n"
#: src/types-and-values/exercise.md #: src/types-and-values/exercise.md
msgid "" msgid ""
@ -3244,99 +3284,112 @@ msgid ""
"number is calculated recursively as the sum of the n-1'th and n-2'th " "number is calculated recursively as the sum of the n-1'th and n-2'th "
"Fibonacci numbers." "Fibonacci numbers."
msgstr "" msgstr ""
"تبدأ متتالية فيبوناتشي بـ `[0,1]`. بالنسبة لـ n>1، يتم حساب العدد فيبوناتشي "
"الـ n عن طريق الاستدعاء الذاتي كمجموع للعدد فيبوناتشي الـ n-1 والعدد "
"فيبوناتشي الـ n-2."
#: src/types-and-values/exercise.md #: src/types-and-values/exercise.md
msgid "" msgid ""
"Write a function `fib(n)` that calculates the n'th Fibonacci number. When " "Write a function `fib(n)` that calculates the n'th Fibonacci number. When "
"will this function panic?" "will this function panic?"
msgstr "" msgstr ""
"اكتب دالة `fib(n)` التي تحسب العدد فيبوناتشي الـ n. متى ستسبب هذه الدالة "
"ذعرًا (panic)؟"
#: src/types-and-values/exercise.md #: src/types-and-values/exercise.md
msgid "// The base case.\n" msgid "// The base case.\n"
msgstr "" msgstr "// الحالة الأساسية.\n"
#: src/types-and-values/exercise.md src/control-flow-basics/exercise.md #: src/types-and-values/exercise.md src/control-flow-basics/exercise.md
msgid "\"Implement this\"" msgid "\"Implement this\""
msgstr "" msgstr "\"نفذ هذا\""
#: src/types-and-values/exercise.md #: src/types-and-values/exercise.md
msgid "// The recursive case.\n" msgid "// The recursive case.\n"
msgstr "" msgstr "// الحالة العودية (recursive case).\n"
#: src/types-and-values/exercise.md src/types-and-values/solution.md #: src/types-and-values/exercise.md src/types-and-values/solution.md
msgid "\"fib({n}) = {}\"" msgid "\"fib({n}) = {}\""
msgstr "" msgstr "\"fib({n}) = {}\""
#: src/control-flow-basics.md #: src/control-flow-basics.md
msgid "[if Expressions](./control-flow-basics/if.md) (4 minutes)" msgid "[if Expressions](./control-flow-basics/if.md) (4 minutes)"
msgstr "" msgstr "[تعابير if](./control-flow-basics/if.md) (4 دقائق)"
#: src/control-flow-basics.md #: src/control-flow-basics.md
msgid "[Loops](./control-flow-basics/loops.md) (5 minutes)" msgid "[Loops](./control-flow-basics/loops.md) (5 minutes)"
msgstr "" msgstr "[الحلقات (Loops)](./control-flow-basics/loops.md) (5 دقائق)"
#: src/control-flow-basics.md #: src/control-flow-basics.md
msgid "" msgid ""
"[break and continue](./control-flow-basics/break-continue.md) (4 minutes)" "[break and continue](./control-flow-basics/break-continue.md) (4 minutes)"
msgstr "" msgstr "[break و continue](./control-flow-basics/break-continue.md) (4 دقائق)"
#: src/control-flow-basics.md #: src/control-flow-basics.md
msgid "" msgid ""
"[Blocks and Scopes](./control-flow-basics/blocks-and-scopes.md) (5 minutes)" "[Blocks and Scopes](./control-flow-basics/blocks-and-scopes.md) (5 minutes)"
msgstr "" msgstr ""
"[الكتل (Blocks) والنطاقات (Scopes)](./control-flow-basics/blocks-and-scopes."
"md) (5 دقائق)"
#: src/control-flow-basics.md #: src/control-flow-basics.md
msgid "[Functions](./control-flow-basics/functions.md) (3 minutes)" msgid "[Functions](./control-flow-basics/functions.md) (3 minutes)"
msgstr "" msgstr "[الدوال (Functions)](./control-flow-basics/functions.md) (3 دقائق)"
#: src/control-flow-basics.md #: src/control-flow-basics.md
msgid "[Macros](./control-flow-basics/macros.md) (2 minutes)" msgid "[Macros](./control-flow-basics/macros.md) (2 minutes)"
msgstr "" msgstr "[الماكروز (Macros)](./control-flow-basics/macros.md) (2 دقائق)"
#: src/control-flow-basics.md #: src/control-flow-basics.md
msgid "" msgid ""
"[Exercise: Collatz Sequence](./control-flow-basics/exercise.md) (15 minutes)" "[Exercise: Collatz Sequence](./control-flow-basics/exercise.md) (15 minutes)"
msgstr "" msgstr ""
"[تمرين: متتالية كولاتز (Collatz Sequence)](./control-flow-basics/exercise."
"md) (15 دقائق)"
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "`if` expressions" msgid "`if` expressions"
msgstr "" msgstr "تعابير `if`"
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "" msgid ""
"You use [`if` expressions](https://doc.rust-lang.org/reference/expressions/" "You use [`if` expressions](https://doc.rust-lang.org/reference/expressions/"
"if-expr.html#if-expressions) exactly like `if` statements in other languages:" "if-expr.html#if-expressions) exactly like `if` statements in other languages:"
msgstr "" msgstr ""
"تستخدم [تعابير `if`](https://doc.rust-lang.org/reference/expressions/if-expr."
"html#if-expressions) تمامًا مثل جمل `if` في اللغات الأخرى:"
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "\"zero!\"" msgid "\"zero!\""
msgstr "" msgstr "\"صفر!\""
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "\"biggish\"" msgid "\"biggish\""
msgstr "" msgstr "\"كبير نوعًا ما\""
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "\"huge\"" msgid "\"huge\""
msgstr "" msgstr "\"ضخم\""
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "" msgid ""
"In addition, you can use `if` as an expression. The last expression of each " "In addition, you can use `if` as an expression. The last expression of each "
"block becomes the value of the `if` expression:" "block becomes the value of the `if` expression:"
msgstr "" msgstr ""
"بالإضافة إلى ذلك، يمكنك استخدام `if` كتعبير. يصبح التعبير الأخير في كل كتلة "
"هو قيمة تعبير `if`:"
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "\"small\"" msgid "\"small\""
msgstr "" msgstr "\"صغير\""
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "\"large\"" msgid "\"large\""
msgstr "" msgstr "\"كبير\""
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "\"number size: {}\"" msgid "\"number size: {}\""
msgstr "" msgstr "\"حجم الرقم: {}\""
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "" msgid ""
@ -3344,6 +3397,9 @@ msgid ""
"branch blocks must have the same type. Show what happens if you add `;` " "branch blocks must have the same type. Show what happens if you add `;` "
"after `\"small\"` in the second example." "after `\"small\"` in the second example."
msgstr "" msgstr ""
"لأن `if` هو تعبير ويجب أن يكون له نوع معين، يجب أن تكون كلا الكتلتين "
"الفرعيتين من نفس النوع. أظهر ما يحدث إذا أضفت `;` بعد `\"small\"` في المثال "
"الثاني."
#: src/control-flow-basics/if.md #: src/control-flow-basics/if.md
msgid "" msgid ""
@ -3351,14 +3407,16 @@ msgid ""
"separate it from the next statement. Remove the `;` before `println!` to see " "separate it from the next statement. Remove the `;` before `println!` to see "
"the compiler error." "the compiler error."
msgstr "" msgstr ""
"عندما يتم استخدام `if` في تعبير، يجب أن يحتوي التعبير على `;` لفصله عن "
"الجملة التالية. قم بإزالة `;` قبل `println!` لرؤية خطأ المترجم."
#: src/control-flow-basics/loops.md #: src/control-flow-basics/loops.md
msgid "There are three looping keywords in Rust: `while`, `loop`, and `for`:" msgid "There are three looping keywords in Rust: `while`, `loop`, and `for`:"
msgstr "" msgstr "هناك ثلاث كلمات مفتاحية للتكرار في Rust: `while`، `loop`، و `for`:"
#: src/control-flow-basics/loops.md #: src/control-flow-basics/loops.md
msgid "`while`" msgid "`while`"
msgstr "" msgstr "`while`"
#: src/control-flow-basics/loops.md #: src/control-flow-basics/loops.md
msgid "" msgid ""
@ -3366,20 +3424,25 @@ msgid ""
"expr.html#predicate-loops) works much like in other languages, executing the " "expr.html#predicate-loops) works much like in other languages, executing the "
"loop body as long as the condition is true." "loop body as long as the condition is true."
msgstr "" msgstr ""
"تعمل [الكلمة المفتاحية `while`](https://doc.rust-lang.org/reference/"
"expressions/loop-expr.html#predicate-loops) بشكل مشابه لما في اللغات الأخرى، "
"حيث تنفذ جسم الحلقة طالما أن الشرط صحيح."
#: src/control-flow-basics/loops.md #: src/control-flow-basics/loops.md
msgid "\"Final x: {x}\"" msgid "\"Final x: {x}\""
msgstr "" msgstr "\"القيمة النهائية لـ x: {x}\""
#: src/control-flow-basics/loops/for.md #: src/control-flow-basics/loops/for.md
msgid "" msgid ""
"The [`for` loop](https://doc.rust-lang.org/std/keyword.for.html) iterates " "The [`for` loop](https://doc.rust-lang.org/std/keyword.for.html) iterates "
"over ranges of values or the items in a collection:" "over ranges of values or the items in a collection:"
msgstr "" msgstr ""
"تقوم [حلقة `for`](https://doc.rust-lang.org/std/keyword.for.html) بالتكرار "
"عبر نطاقات القيم أو العناصر في مجموعة:"
#: src/control-flow-basics/loops/for.md #: src/control-flow-basics/loops/for.md
msgid "\"elem: {elem}\"" msgid "\"elem: {elem}\""
msgstr "" msgstr "\"العنصر (elem): {elem}\""
#: src/control-flow-basics/loops/for.md #: src/control-flow-basics/loops/for.md
msgid "" msgid ""
@ -3387,28 +3450,37 @@ msgid ""
"iterating over different kinds of ranges/collections. Iterators will be " "iterating over different kinds of ranges/collections. Iterators will be "
"discussed in more detail later." "discussed in more detail later."
msgstr "" msgstr ""
"تستخدم حلقات `for` مفهوم يسمى \"المكررات (iterators)\" للتعامل مع التكرار "
"عبر أنواع مختلفة من النطاقات/المجموعات. سيتم مناقشة المكررات بمزيد من "
"التفصيل لاحقًا."
#: src/control-flow-basics/loops/for.md #: src/control-flow-basics/loops/for.md
msgid "" msgid ""
"Note that the first `for` loop only iterates to `4`. Show the `1..=5` syntax " "Note that the first `for` loop only iterates to `4`. Show the `1..=5` syntax "
"for an inclusive range." "for an inclusive range."
msgstr "" msgstr ""
"لاحظ أن حلقة `for` الأولى تتكرر فقط حتى `4`. أظهر بناء الجملة `1..=5` لنطاق "
"شامل."
#: src/control-flow-basics/loops/loop.md #: src/control-flow-basics/loops/loop.md
msgid "" msgid ""
"The [`loop` statement](https://doc.rust-lang.org/std/keyword.loop.html) just " "The [`loop` statement](https://doc.rust-lang.org/std/keyword.loop.html) just "
"loops forever, until a `break`." "loops forever, until a `break`."
msgstr "" msgstr ""
"تقوم [جملة `loop`](https://doc.rust-lang.org/std/keyword.loop.html) بالتكرار "
"إلى الأبد، حتى يتم استخدام `break`."
#: src/control-flow-basics/loops/loop.md #: src/control-flow-basics/loops/loop.md
msgid "\"{i}\"" msgid "\"{i}\""
msgstr "" msgstr "\"{i}\""
#: src/control-flow-basics/break-continue.md #: src/control-flow-basics/break-continue.md
msgid "" msgid ""
"If you want to immediately start the next iteration use [`continue`](https://" "If you want to immediately start the next iteration use [`continue`](https://"
"doc.rust-lang.org/reference/expressions/loop-expr.html#continue-expressions)." "doc.rust-lang.org/reference/expressions/loop-expr.html#continue-expressions)."
msgstr "" msgstr ""
"إذا كنت تريد بدء التكرار التالي فورًا، استخدم [`continue`](https://doc.rust-"
"lang.org/reference/expressions/loop-expr.html#continue-expressions)."
#: src/control-flow-basics/break-continue.md #: src/control-flow-basics/break-continue.md
msgid "" msgid ""
@ -3417,6 +3489,9 @@ msgid ""
"`loop`, this can take an optional expression that becomes the value of the " "`loop`, this can take an optional expression that becomes the value of the "
"`loop` expression." "`loop` expression."
msgstr "" msgstr ""
"إذا كنت تريد الخروج من أي نوع من الحلقات مبكرًا، استخدم [`break`](https://doc."
"rust-lang.org/reference/expressions/loop-expr.html#break-expressions). "
"بالنسبة لـ `loop`، يمكن أن تأخذ هذه تعبيرًا اختياريًا يصبح قيمة تعبير `loop`."
#: src/control-flow-basics/break-continue.md src/std-traits/exercise.md #: src/control-flow-basics/break-continue.md src/std-traits/exercise.md
#: src/std-traits/solution.md src/smart-pointers/trait-objects.md #: src/std-traits/solution.md src/smart-pointers/trait-objects.md
@ -3425,17 +3500,19 @@ msgstr ""
#: src/android/interoperability/cpp/rust-bridge.md #: src/android/interoperability/cpp/rust-bridge.md
#: src/concurrency/async-pitfalls/cancellation.md #: src/concurrency/async-pitfalls/cancellation.md
msgid "\"{}\"" msgid "\"{}\""
msgstr "" msgstr "\"{}\""
#: src/control-flow-basics/break-continue/labels.md #: src/control-flow-basics/break-continue/labels.md
msgid "" msgid ""
"Both `continue` and `break` can optionally take a label argument which is " "Both `continue` and `break` can optionally take a label argument which is "
"used to break out of nested loops:" "used to break out of nested loops:"
msgstr "" msgstr ""
"يمكن لكل من `continue` و `break` أن يأخذوا اختياريًا وسيط تسمية يُستخدم للخروج "
"من الحلقات المتداخلة:"
#: src/control-flow-basics/break-continue/labels.md #: src/control-flow-basics/break-continue/labels.md
msgid "\"elements searched: {elements_searched}\"" msgid "\"elements searched: {elements_searched}\""
msgstr "" msgstr "\"العناصر التي تم البحث عنها: {elements_searched}\""
#: src/control-flow-basics/break-continue/labels.md #: src/control-flow-basics/break-continue/labels.md
msgid "" msgid ""
@ -3443,10 +3520,13 @@ msgid ""
"value. This is because it's guaranteed to be entered at least once (unlike " "value. This is because it's guaranteed to be entered at least once (unlike "
"`while` and `for` loops)." "`while` and `for` loops)."
msgstr "" msgstr ""
"لاحظ أن `loop` هو البناء التكراري الوحيد الذي يعيد قيمة غير هينة (non-"
"trivial value). هذا لأنه مضمون الدخول إليه مرة واحدة على الأقل (على عكس "
"حلقات `while` و `for` (while و for))."
#: src/control-flow-basics/blocks-and-scopes.md #: src/control-flow-basics/blocks-and-scopes.md
msgid "Blocks" msgid "Blocks"
msgstr "" msgstr "الكتل"
#: src/control-flow-basics/blocks-and-scopes.md #: src/control-flow-basics/blocks-and-scopes.md
msgid "" msgid ""
@ -3454,53 +3534,59 @@ msgid ""
"Each block has a value and a type, which are those of the last expression of " "Each block has a value and a type, which are those of the last expression of "
"the block:" "the block:"
msgstr "" msgstr ""
"الكتلة في Rust تحتوي على تسلسل من التعابير، محاطة بأقواس `{}`. كل كتلة لها "
"قيمة ونوع، وهما نفسهما للعبارة الأخيرة في الكتلة:"
#: src/control-flow-basics/blocks-and-scopes.md #: src/control-flow-basics/blocks-and-scopes.md
msgid "\"y: {y}\"" msgid "\"y: {y}\""
msgstr "" msgstr "\"y: {y}\""
#: src/control-flow-basics/blocks-and-scopes.md #: src/control-flow-basics/blocks-and-scopes.md
msgid "" msgid ""
"If the last expression ends with `;`, then the resulting value and type is " "If the last expression ends with `;`, then the resulting value and type is "
"`()`." "`()`."
msgstr "" msgstr "إذا انتهى التعبير الأخير بـ `;`، فإن القيمة والنوع الناتجين هما `()`."
#: src/control-flow-basics/blocks-and-scopes.md #: src/control-flow-basics/blocks-and-scopes.md
msgid "" msgid ""
"You can show how the value of the block changes by changing the last line in " "You can show how the value of the block changes by changing the last line in "
"the block. For instance, adding/removing a semicolon or using a `return`." "the block. For instance, adding/removing a semicolon or using a `return`."
msgstr "" msgstr ""
"يمكنك إظهار كيفية تغير قيمة الكتلة عن طريق تغيير السطر الأخير في الكتلة. على "
"سبيل المثال، إضافة/إزالة فاصلة منقوطة أو استخدام `return`."
#: src/control-flow-basics/blocks-and-scopes/scopes.md #: src/control-flow-basics/blocks-and-scopes/scopes.md
msgid "A variable's scope is limited to the enclosing block." msgid "A variable's scope is limited to the enclosing block."
msgstr "" msgstr "نطاق المتغير محدود بالكتلة المحيطة به."
#: src/control-flow-basics/blocks-and-scopes/scopes.md #: src/control-flow-basics/blocks-and-scopes/scopes.md
msgid "" msgid ""
"You can shadow variables, both those from outer scopes and variables from " "You can shadow variables, both those from outer scopes and variables from "
"the same scope:" "the same scope:"
msgstr "" msgstr ""
"يمكنك تظليل المتغيرات، سواء تلك من النطاقات الخارجية أو المتغيرات من نفس "
"النطاق:"
#: src/control-flow-basics/blocks-and-scopes/scopes.md #: src/control-flow-basics/blocks-and-scopes/scopes.md
msgid "\"before: {a}\"" msgid "\"before: {a}\""
msgstr "" msgstr "\"قبل: {a}\""
#: src/control-flow-basics/blocks-and-scopes/scopes.md src/generics/exercise.md #: src/control-flow-basics/blocks-and-scopes/scopes.md src/generics/exercise.md
#: src/generics/solution.md src/std-traits/from-and-into.md #: src/generics/solution.md src/std-traits/from-and-into.md
msgid "\"hello\"" msgid "\"hello\""
msgstr "" msgstr "\"hello\""
#: src/control-flow-basics/blocks-and-scopes/scopes.md #: src/control-flow-basics/blocks-and-scopes/scopes.md
msgid "\"inner scope: {a}\"" msgid "\"inner scope: {a}\""
msgstr "" msgstr "\"النطاق الداخلي: {a}\""
#: src/control-flow-basics/blocks-and-scopes/scopes.md #: src/control-flow-basics/blocks-and-scopes/scopes.md
msgid "\"shadowed in inner scope: {a}\"" msgid "\"shadowed in inner scope: {a}\""
msgstr "" msgstr "\"مظلل في النطاق الداخلي: {a}\""
#: src/control-flow-basics/blocks-and-scopes/scopes.md #: src/control-flow-basics/blocks-and-scopes/scopes.md
msgid "\"after: {a}\"" msgid "\"after: {a}\""
msgstr "" msgstr "\"بعد: {a}\""
#: src/control-flow-basics/blocks-and-scopes/scopes.md #: src/control-flow-basics/blocks-and-scopes/scopes.md
msgid "" msgid ""