chore(i18n,learn): processed translations (#49053)

This commit is contained in:
camperbot
2023-01-17 20:15:16 +05:30
committed by GitHub
parent 30eb3e541f
commit ced07aef3b
146 changed files with 314 additions and 314 deletions

View File

@@ -1,6 +1,6 @@
---
id: bd7123c9c444eddfaeb5bdef
title: إعلان متغيرات المقاطع نصية (Declare String Variables)
title: إعلان متغيرات المقاطع النصية
challengeType: 1
videoUrl: 'https://scrimba.com/c/c2QvWU6'
forumTopicId: 17557
@@ -21,15 +21,15 @@ var myName;
var myName = "your name";
```
`"your name"` يسمي <dfn>مقطع</dfn> <dfn>حرفي</dfn>. المقطع النصي أو مقطع هي مقطع تتكون من رمز أو أكثر، مرفقين في علامات اقتباس (Quotes) مفردة أو مزدوجة.
يسمي`"your name"` <dfn>المقطع</dfn> <dfn>موضوعي</dfn>. يتكون المقطع الموضوعي أو المقطع النصي من رمز أو رموز، مرفقين في علامات اقتباس (quotes) مفردة أو مزدوجة.
# --instructions--
إنشاء متغيرين مقطعين جديدين: `myFirstName` و `myLastName` وعيين قيم الاسم الأول والاسم الأخير على التوالي.
إنشاء متغيرين مقطعين جديدين: وعين `myFirstName` و `myLastName` بقيم اسمك والاسم عائلتك على التوالي.
# --hints--
يجب أن يحتوي مقطع `myFirstName` على حرف واحد في الأقل.
يجب أن يحتوي مقطع `myFirstName` على رمز واحد في الأقل.
```js
assert(
@@ -47,7 +47,7 @@ assert(
);
```
يجب أن يحتوي مقطع `myLastName` على حرف واحد في الأقل.
يجب أن يحتوي مقطع `myLastName` على رمز واحد في الأقل.
```js
assert(

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244b6
title: تسلسلات الهروب في المقاطع (Escape Sequences in Strings)
title: تسلسلات الإخراج في المقاطع النصية
challengeType: 1
videoUrl: 'https://scrimba.com/c/cvmqRh6'
forumTopicId: 17567
@@ -9,26 +9,26 @@ dashedName: escape-sequences-in-strings
# --description--
الاقتباسات (Quotes) ليست الرموز الوحيدة التي يمكن أن تكتب <dfn>باحتياليه</dfn> داخل المقطع (string). وهناك سببان لاستخدام رموز احتيالية (escaping characters):
الاقتباسات (Quotes) ليست الرموز الوحيدة التي يمكن أن تكتب <dfn>مخرَّجة</dfn> داخل المقطع النصي (string). وهناك سببان لاستخدام رموز احتيالية (escaping characters):
1. للسماح لك باستخدام الرموز التي قد لا تتمكن من استخدامها، مثل سطر جديد (newline).
2. للسماح لك بتمثيل الاقتباسات (Quotes) متعددة في مقطع دون أن يسيء JavaScript فهم ما تعنيه.
2. للسماح لك بتمثيل الاقتباسات (Quotes) متعددة في مقطع نصي دون أن يسيء JavaScript فهم ما تعنيه.
وقد تعلمنا ذلك في التحدي السابق.
<table class='table table-striped'><thead><tr><th>الكود</th><th>الناتج</th></tr></thead><tbody><tr><td><code>\'</code></td><td>single quote</td></tr><tr><td><code>\"</code></td><td>double quote</td></tr><tr><td><code>\\</code></td><td>backslash</td></tr><tr><td><code>\n</code></td><td>newline</td></tr><tr><td><code>\t</code></td><td>tab</td></tr><tr><td><code>\r</code></td><td>carriage return</td></tr><tr><td><code>\b</code></td><td>word boundary</td></tr><tr><td><code>\f</code></td><td>form feed</td></tr></tbody></table>
*لاحظ أن يجب أن تكون الخط المائل (backslash) نفسه أحتيالي (escaped) ليتم عرضها كخط مائل backslash.*
*لاحظ أن يجب أن يكون الخط المائل (backslash) نفسه يخرَّج (escaped) ليتم عرضه كخط مائل backslash.*
# --instructions--
عيّن الأسطر الثلاثة التالية من النص في المتغير `myStr` الوحيد باستخدام تسلسل احتيالي (escape sequences).
عيّن الأسطر الثلاثة التالية من النص في المتغير `myStr` الوحيد باستخدام تسلسل التخريج (escape sequences).
<blockquote>FirstLine<br>    \SecondLine<br>ThirdLine</blockquote>
سوف تحتاج إلى استخدام تسلسل احتيالي لإدراج الرموز الخاصة (special characters) بشكل صحيح. ستحتاج أيضًا إلى اتباع التباعد كما هو موضح أعلاه، دون مسافات بين التسلسل الاحتيالي escape sequences أو الكلمات.
سوف تحتاج إلى استخدام تسلسل تخريج لإدراج الرموز الخاصة (special characters) بشكل صحيح. ستحتاج أيضًا إلى اتباع التباعد كما هو موضح أعلاه، دون مسافات بين تسلسل التخريج escape sequences أو الكلمات.
**ملاحظة:** يتم الحصول على التباعد (indentation) في `SecondLine` باستخدام رمز التحايل الشريط (tab escape character) وليس المسافة الفارغة (space).
**ملاحظة:** يتم الحصول على التباعد (indentation) في `SecondLine` باستخدام رمز التخريح الشريط (tab escape character) وليس المسافة الفارغة (space).
# --hints--

View File

@@ -9,7 +9,7 @@ dashedName: find-the-length-of-a-string
# --description--
يمكنك العثور على قيمة طول `String` بكتابة `.length` بعد متغير المقطع (string) أو المقطع النصي (string literal).
يمكنك العثور على قيمة طول `String` بكتابة `.length` بعد متغير المقطع النصي أو بعد مقطع حرفي (string literal).
```js
console.log("Alan Peter".length);

View File

@@ -11,7 +11,7 @@ dashedName: global-scope-and-functions
في JavaScript، يشير <dfn>النطاق</dfn> إلى رؤية المتغيرات. يكون إلى المتغيرات التي تم تعريفها خارج الوظيفة مجال <dfn>شامل</dfn> (Global scope). وهذا يعني أنه يمكن رؤيتها في كل مكان في التعليمات البرمجية JavaScript الخاص بك.
تعلن المتغيرات دون استخدام المصطلحات الآتية `let` أو `const` وتنشئ تلقائيًا في نطاق `global`. هذا يمكن أن يؤدي إلى عواقب غير مقصودة في مكان آخر من التعليمات البرمجية الخاص بك أو عند تشغيل الوظيفة مرة أخرى. يجب عليك دائماً إعلان متغيراتك باستخدام `let` أو `const`.
تعلن المتغيرات دون استخدام المصطلحات الآتية `let` أو `const` وتنشئ تلقائيًا في مجال شامل `global`. هذا يمكن أن يؤدي إلى عواقب غير مقصودة في مكان آخر من التعليمات البرمجية الخاص بك أو عند تشغيل الوظيفة مرة أخرى. يجب عليك دائماً إعلان متغيراتك باستخدام `let` أو `const`.
# --instructions--

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244c0
title: النطاق العام مقابل النطاق المحلي في الوظائف (Global vs. Local Scope in Functions)
title: المجال الشامل مقابل النطاق المحدد في الوظائف
challengeType: 1
videoUrl: 'https://scrimba.com/c/c2QwKH2'
forumTopicId: 18194
@@ -9,7 +9,7 @@ dashedName: global-vs--local-scope-in-functions
# --description--
من الممكن الحصول على متغيرات <dfn>محالية (Local)</dfn> و <dfn>عامة (Global)</dfn> بنفس الاسم. عندما تقوم ذلك، يكون المتغير المحالي (local) له الأسبقية على المتغير العام (global).
من الممكن الحصول على متغيرات <dfn>محدودة (local)</dfn> و <dfn>شاملة (global)</dfn> بنفس الاسم. عندما تقوم ذلك، يكون المتغير المحدود (local) له الأسبقية على المتغير الشامل (global).
وفي هذا المثال:
@@ -22,15 +22,15 @@ function myFun() {
}
```
سوف تنتج الوظيفة `myFun` السلسلة `Head` لأن النسخة المحالية (local) من المتغير موجودة.
سوف تنتج الوظيفة `myFun` المقطع النصي `Head` لأن النسخة المحدودة (local) من المتغير موجودة.
# --instructions--
أضف متغير محالي (local) إلى وظيفة `myOutfit` لتجاوز قيمة `outerWear` بالمقطع `sweater`.
أضف متغير محدود (local) إلى وظيفة `myOutfit` لتجاوز قيمة `outerWear` بالمقطع النصي `sweater`.
# --hints--
لا يجب عليك تغيير قيمة العام (global) الآتي `outerWear`.
لا يجب عليك تغيير قيمة المتغير الشامل (global) الآتي `outerWear`.
```js
assert(outerWear === 'T-Shirt');

View File

@@ -9,9 +9,9 @@ dashedName: local-scope-and-functions
# --description--
المتغيرات التي المعلنا داخل وظيفة (function)، وكذلك الوسائط (parameters) للوظيفة لديها نطاق و يكون <dfn>محلي (local)</dfn>. وهذا يعني أنها لا تبد مرئية إلا في إطار الوظيفة.
المتغيرات التي أعلنة داخل وظيفة (function)، وكذلك الوسائط (parameters) للوظيفة لديها مجال <dfn>محدود (local)</dfn>. وهذا يعني أنها لا تبد مرئية إلا في إطار الوظيفة.
هذه وظيفة `myTest` مع متغير محلي يسمى `loc`.
هذه وظيفة `myTest` مع متغير محدود يسمى `loc`.
```js
function myTest() {
@@ -27,13 +27,13 @@ console.log(loc);
# --instructions--
يحتوي المحرر على اثنين `console.log` لمساعدتك على رؤية ما يحدث. تحقق من وحدة التحكم خلال كتابة الكود لترى كيف يتغير. اعلن متغير محلي اسمه `myVar` داخل `myLocalScope` وفعّل الاختبارات.
يحتوي المحرر على اثنين `console.log` لمساعدتك على رؤية ما يحدث. تحقق من وحدة التحكم خلال كتابة الكود لترى كيف يتغير. اعلن متغير محدود اسمه `myVar` داخل `myLocalScope` وفعّل الاختبارات.
**ملاحظة:** وحدة التحكم ستظل تعرض `ReferenceError: myVar is not defined`، ولكن هذا لن يتسبب في فشل الاختبارات.
# --hints--
لا ينبغي أن يحتوي الكود على متغير عام يدعي `myVar`.
لا ينبغي أن يحتوي الكود على متغير شامل يدعي `myVar`.
```js
function declared() {
@@ -43,7 +43,7 @@ function declared() {
assert.throws(declared, ReferenceError);
```
يجب عليك إضافة متغير محلي يدعي `myVar`.
يجب عليك إضافة متغير محدود يدعي `myVar`.
```js
assert(

View File

@@ -9,7 +9,7 @@ dashedName: modify-array-data-with-indexes
# --description--
على عكس المقاطع، عناصر القائمة هي <dfn>قابلة للتغيير</dfn> ويمكن تغييرها بحرية، حتى لو تم تعريف القائمة بواسطة `const`.
على عكس المقاطع النصية، عناصر القائمة هي <dfn>قابلة للتغيير</dfn> (mutable) ويمكن تغييرها بحرية، حتى لو تم تعريف القائمة بواسطة `const`.
**مثال**

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244b4
title: اقتباس مقاطع بعلامات اقتباس منفردة (Quoting Strings with Single Quotes)
title: اقتباس مقاطع بعلامات اقتباس منفردة
challengeType: 1
videoUrl: 'https://scrimba.com/c/cbQmnhM'
forumTopicId: 18260
@@ -31,15 +31,15 @@ const badStr = 'Finn responds, "Let's go!"';
هنا `badStr` سوف تسبب بخطأ.
في <dfn>goodStr</dfn> أعلاه، يمكنك استخدام أي من علامات الاقتباس بأمان باستخدام الخط المائل (backslash) الآتية `\` كرمز متحايل (escape character).
في <dfn>goodStr</dfn> أعلاه، يمكنك استخدام أي من علامات الاقتباس بأمان باستخدام الخط المائل (backslash) الآتية `\` كرمز التخريج (escape character).
**ملاحظة:** يجب عدم الخلط بين الخط المائل (blackslash) الآتية `\` والخط المائل للأمام (forward slash) الآتية `/`. إنهم لا يفعلون الشيء نفسه.
# --instructions--
غيّر المقطع المقدم إلى مقطع مع اقتباسات فردية في البداية والنهاية وبدون رموز متحايلة (escape characters).
غيّر المقطع المقدم إلى مقطع مع اقتباسات فردية في البداية والنهاية وبدون رموز التخريج (escape characters).
الآن، العلامة `<a>` في المقطع تستخدم اقتباسات مزدوجة في كل مكان. سوف تحتاج إلى تغيير الاقتباسات الخارجية إلى اقتباسات فردية حتى تتمكن من إزالة الرموز متحايلة (escape characters).
الآن، العلامة `<a>` في المقطع تستخدم اقتباسات مزدوجة في كل مكان. سوف تحتاج إلى تغيير الاقتباسات الخارجية إلى اقتباسات فردية حتى تتمكن من إزالة رموز التخريج (escape characters).
# --hints--

View File

@@ -8,9 +8,9 @@ dashedName: record-collection
# --description--
لديك object literal يمثل جزءا من مجموعة سجلات موسيقية الخاصة بك. يحتوي كل سجل على رقم معرف فريد يعدّ الهُوِيَّة والعديد من الخصائص الأخرى. ليست كل السجلات لديها معلومات كاملة.
لديك حروف الكائن التي تمثل جزء من مجموعة سجلاتك الموسيقية. يحتوي كل سجل على رقم معرف فريد يعدّ الهُوِيَّة والعديد من الخصائص الأخرى. ليست كل السجلات لديها معلومات كاملة.
أنت تبدأ بالوظيفة `updateRecords` التي تأخذ object literal يدعي `records`، يحتوي على مجموعة ألبومات موسيقية. و `id`, و `prop` (مثل `artist` أو `tracks`)، و `value`. أكمل الوظيفة باستخدام القواعد أدناه لتعديل الكائن الممرر إلى الوظيفة.
أنت تبدأ بالوظيفة `updateRecords` التي تأخذ الكائن حرفي يدعي `records`، يحتوي على مجموعة ألبومات موسيقية. و `id`, و `prop` (مثل `artist` أو `tracks`)، و `value`. أكمل الوظيفة باستخدام القواعد أدناه لتعديل الكائن الممرر إلى الوظيفة.
- الوظيفة الخاص بك يجب أن يرجع دائما كائن مجموعة السجلات بِرُمَّته.
- إذا كان `prop` ليس `tracks` و `value` ليس مقطع فارغ، حديث أو تعيين `prop` السجلات إلى `value`.

View File

@@ -26,13 +26,13 @@ const myVar = 12 - 6;
# --hints--
The variable `difference` should be equal to `12`.
يجب أن يساوى المتغير `difference` لقيمة `12`.
```js
assert(difference === 12);
```
You should only subtract one number from `45`.
يجب أن تطرح رَقَم واحد فقط من `45`.
```js
assert(/difference=45-33;?/.test(__helpers.removeWhiteSpace(code)));

View File

@@ -1,6 +1,6 @@
---
id: bd7123c9c441eddfaeb5bdef
title: فهم الحالات المنطقية (Understanding Boolean Values)
title: فهم الحالات المنطقية
challengeType: 1
videoUrl: 'https://scrimba.com/c/c9Me8t4'
forumTopicId: 301176

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244ab
title: فهم حساسية الحالة الحروف في المتغيرات (Understanding Case Sensitivity in Variables)
title: فهم حساسية الحالة الحروف في المتغيرات
challengeType: 1
videoUrl: 'https://scrimba.com/c/cd6GDcD'
forumTopicId: 18334

View File

@@ -1,6 +1,6 @@
---
id: 598e8944f009e646fc236146
title: فهم القيم غير المحددة المرتجعة من الوظيفة (Understanding Undefined Value returned from a Function)
title: فهم القيم غير المحددة المرتجعة من الوظيفة
challengeType: 1
videoUrl: 'https://scrimba.com/c/ce2p7cL'
forumTopicId: 301177

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244aa
title: فهم المتغيرات غير المهيأة (Understanding Uninitialized Variables)
title: فهم المتغيرات غير المهيأة
challengeType: 1
videoUrl: 'https://scrimba.com/c/cBa2JAL'
forumTopicId: 18335
@@ -9,7 +9,7 @@ dashedName: understanding-uninitialized-variables
# --description--
عند الإعلان المتغيرات في JavaScript، يكون لها قيمة أولية وهي `undefined`. إذا قمت بعملية رياضية على متغير `undefined` ستكون نتيجتك `NaN` مما يعني <dfn>"Not a Number"</dfn> إي "ليس رقما". إذا ربط مقطع نصي مع متغير `undefined`، فستحصل على <dfn>مقطع نصي</dfn> بقيمة `undefined`.
عند إعلان المتغيرات في JavaScript، يكون لها قيمة أولية وهي `undefined`. إذا قمت بعملية رياضية على متغير قيمته `undefined` ستكون نتيجتك `NaN` مما يعني <dfn>"Not a Number"</dfn> إي "ليس رقما". إذا ربط مقطع نصي مع متغير `undefined`، فستحصل على <dfn>مقطع نصي</dfn> بقيمة `undefined`.
# --instructions--

View File

@@ -37,7 +37,7 @@ function findGreaterOrEqual(a, b) {
}
```
ويعدّ من أفضل الممارسات تشكيل متعهدين شرطيين متعددين، بحيث يكون كل شرط على خط منفصل، كما هو مبين أعلاه. استخدام عدة مشغلين مشروطين دون إهدار مناسب قد يجعل من الصعب قراءة التعليمات البرمجية الخاصة بك. على سبيل المثال:
ويعدّ من أفضل الممارسات تشكيل متعهدين شرطيين متعددين، بحيث يكون كل شرط على خط منفصل، كما هو مبين أعلاه. استخدام عدة مشغلين مشروطين دون إهدار مناسب قد يجعل من الصعب قراءة الكود الخاص بك. على سبيل المثال:
```js
function findGreaterOrEqual(a, b) {

View File

@@ -71,7 +71,7 @@ assert(
);
```
لا ينبغي استخدام المتغيرات العالمية (Global variables) للتخزين المؤقت القائمة (array).
لا ينبغي استخدام المتغيرات الشاملة (Global variables) للتخزين المؤقت للقائمة (array).
```js
countdown(1)

View File

@@ -56,7 +56,7 @@ assert.deepStrictEqual(rangeOfNumbers(6, 9), [6, 7, 8, 9]);
assert.deepStrictEqual(rangeOfNumbers(4, 4), [4]);
```
لا ينبغي استخدام المتغيرات العالمية (Global variables) للتخزين المؤقت القائمة (array).
لا ينبغي استخدام المتغيرات الشاملة (Global variables) للتخزين المؤقت للقائمة (array).
```js
rangeOfNumbers(1, 3)