diff --git a/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/learn-how-bezier-curves-work.arabic.md b/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/learn-how-bezier-curves-work.arabic.md index 55b360ab1e..34f4a99695 100644 --- a/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/learn-how-bezier-curves-work.arabic.md +++ b/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/learn-how-bezier-curves-work.arabic.md @@ -7,7 +7,7 @@ localeTitle: تعلم كيف بيجر المنحنيات العمل --- ## Description -
قدم التحدي الأخير خاصية عرض animation-timing-function وبعض الكلمات الرئيسية التي تغير سرعة الرسوم المتحركة على مدار مدتها. تقدم CSS خيارًا بخلاف الكلمات الرئيسية التي توفر تحكمًا أكثر دقة في كيفية تشغيل الرسم المتحرك ، من خلال استخدام منحنيات Bezier. في الرسوم المتحركة CSS ، يتم استخدام منحنيات Bezier مع وظيفة cubic-bezier . شكل المنحنى يمثل كيفية تشغيل الرسوم المتحركة. يعيش المنحنى على نظام إحداثي 1 في 1. المحور السيني لنظام الإحداثيات هذا هو مدة الرسم المتحرك (فكر فيه كمقياس زمني) ، والمحور الصادي هو التغيير في الرسوم المتحركة. تتكون الدالة cubic-bezier من أربع نقاط رئيسية على هذه الشبكة 1: 1: p0 ، p1 ، p2 ، p3 . يتم تعيين p0 و p3 لك - وهما نقطة البداية والنهاية التي تقع دائما على التوالي في الأصل (0 ، 0) و (1 ، 1). يمكنك تعيين قيم x و y للنقطتين الأخريين ، وحيث تضعها في الشبكة تملي شكل المنحنى الذي سيتبعه الرسم المتحرك. يتم ذلك في CSS عن طريق تعريف قيمتي x و y لنقاط " p1 و p2 في النموذج: (x1, y1, x2, y2) . سحب كل ذلك معا ، وهنا مثال لمنحنى بيزير في رمز CSS: animation-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75); في المثال أعلاه ، تكون قيم x و y مكافئة لكل نقطة (x1 = 0.25 = y1 و x2 = 0.75 = y2) ، والتي إذا تذكرت من فئة الهندسة ، ينتج عنها خط يمتد من الأصل إلى النقطة (1) ، 1). هذا الرسم المتحرك هو تغيير خطي لعنصر خلال طول الرسم المتحرك ، وهو مماثل لاستخدام الكلمة الرئيسية linear . وبعبارة أخرى ، يتغير بسرعة ثابتة.
+
قدم التحدي الأخير خاصية عرض animation-timing-function وبعض الكلمات الرئيسية التي تغير سرعة الرسوم المتحركة على مدار مدتها. تقدم CSS خيارًا بخلاف الكلمات الرئيسية التي توفر تحكمًا أكثر دقة في كيفية تشغيل الرسم المتحرك ، من خلال استخدام منحنيات Bezier. في الرسوم المتحركة CSS ، يتم استخدام منحنيات Bezier مع وظيفة cubic-bezier . شكل المنحنى يمثل كيفية تشغيل الرسوم المتحركة. يعيش المنحنى على نظام إحداثي 1 في 1. المحور السيني لنظام الإحداثيات هذا هو مدة الرسم المتحرك (فكر فيه كمقياس زمني) ، والمحور الصادي هو التغيير في الرسوم المتحركة. تتكون الدالة cubic-bezier من أربع نقاط رئيسية على هذه الشبكة 1: 1: p0 ، p1 ، p2 ، p3 . يتم تعيين p0 و p3 لك - وهما نقطة البداية والنهاية التي تقع دائما على التوالي في الأصل (0 ، 0) و (1 ، 1). يمكنك تعيين قيم x و y للنقطتين الأخريين ، وحيث تضعها في الشبكة تملي شكل المنحنى الذي سيتبعه الرسم المتحرك. يتم ذلك في CSS عن طريق تعريف قيمتي x و y لنقاط p1 و p2 في النموذج: (x1, y1, x2, y2) . سحب كل ذلك معا ، وهنا مثال لمنحنى بيزير في رمز CSS: animation-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75); في المثال أعلاه ، تكون قيم x و y مكافئة لكل نقطة (x1 = 0.25 = y1 و x2 = 0.75 = y2) ، والتي إذا تذكرت من فئة الهندسة ، ينتج عنها خط يمتد من الأصل إلى النقطة (1) ، 1). هذا الرسم المتحرك هو تغيير خطي لعنصر خلال طول الرسم المتحرك ، وهو مماثل لاستخدام الكلمة الرئيسية linear . وبعبارة أخرى ، يتغير بسرعة ثابتة.
## Instructions
بالنسبة للعنصر الذي له معرف ball1 ، قم بتغيير قيمة خاصية animation-timing-function من linear إلى قيمة الدالة المكافئة cubic-bezier المكافئة لها. استخدم قيم النقاط الواردة في المثال أعلاه.
diff --git a/curriculum/challenges/arabic/01-responsive-web-design/basic-css/set-the-id-of-an-element.arabic.md b/curriculum/challenges/arabic/01-responsive-web-design/basic-css/set-the-id-of-an-element.arabic.md index da3d4fbe9b..68ef71181e 100644 --- a/curriculum/challenges/arabic/01-responsive-web-design/basic-css/set-the-id-of-an-element.arabic.md +++ b/curriculum/challenges/arabic/01-responsive-web-design/basic-css/set-the-id-of-an-element.arabic.md @@ -10,7 +10,7 @@ localeTitle: عيّن معرف عنصر
بالإضافة إلى الفصول الدراسية ، يمكن أن يحتوي كل عنصر HTML أيضًا على سمة id . هناك العديد من المزايا لاستخدام سمات id : يمكنك استخدام id لوضع نمط لعنصر واحد ، وبعد ذلك ستعرف أنه يمكنك استخدامها لتحديد عناصر محددة وتعديلها باستخدام جافا سكريبت. يجب أن تكون سمات id فريدة. لن تقوم المتصفحات بفرض هذا ، ولكنها أفضل الممارسات المتفق عليها على نطاق واسع. لذا يرجى عدم إعطاء أكثر من عنصر واحد نفس سمة id . في ما يلي مثال على كيفية إعطاء عنصر h2 معرف تطبيق cat-photo-app : <h2 id="cat-photo-app">
## Instructions -
امنح form الخاص بك form " cat-photo-form .
+
امنح form الخاص بك form cat-photo-form .
## Tests
diff --git a/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/declare-the-doctype-of-an-html-document.arabic.md b/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/declare-the-doctype-of-an-html-document.arabic.md index 5b0fe55e47..50ea07c727 100644 --- a/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/declare-the-doctype-of-an-html-document.arabic.md +++ b/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/declare-the-doctype-of-an-html-document.arabic.md @@ -7,7 +7,7 @@ localeTitle: قم بتعريف Doctype من مستند HTML --- ## Description -
تغطي التحديات حتى الآن عناصر HTML محددة واستخداماتها. ومع ذلك ، هناك بعض العناصر التي تعطي الهيكل العام لصفحتك ، ويجب تضمينها في كل مستند HTML. في الجزء العلوي من المستند ، تحتاج إلى إخبار المتصفح بإصدار HTML الذي تستخدمه صفحتك. HTML هي لغة متطورة ، ويتم تحديثها بانتظام. تدعم معظم المتصفحات الرئيسية أحدث المواصفات ، وهي HTML5. ومع ذلك ، قد تستخدم صفحات الويب القديمة الإصدارات السابقة من اللغة. أنت تخبر المتصفح بهذه المعلومات عن طريق إضافة العلامة <!DOCTYPE ...> على السطر الأول ، حيث يكون الجزء " ... " هو إصدار HTML. بالنسبة إلى HTML5 ، تستخدم <!DOCTYPE html> . ! و DOCTYPE الكبيرة مهمة ، خاصة بالنسبة للمتصفحات القديمة. ليست html حساسة لحالة الأحرف. بعد ذلك ، يجب أن يتم لف بقية تعليمات HTML البرمجية الخاصة بك في علامات html . ينتقل الافتتاح <html> مباشرة أسفل السطر <!DOCTYPE html> ، ويذهب الإغلاق </html> في نهاية الصفحة. في ما يلي مثال على بنية الصفحة:
<! DOCTYPE html>
<HTML>
<! - رمز HTML الخاص بك هنا ->
</ HTML>
+
تغطي التحديات حتى الآن عناصر HTML محددة واستخداماتها. ومع ذلك ، هناك بعض العناصر التي تعطي الهيكل العام لصفحتك ، ويجب تضمينها في كل مستند HTML. في الجزء العلوي من المستند ، تحتاج إلى إخبار المتصفح بإصدار HTML الذي تستخدمه صفحتك. HTML هي لغة متطورة ، ويتم تحديثها بانتظام. تدعم معظم المتصفحات الرئيسية أحدث المواصفات ، وهي HTML5. ومع ذلك ، قد تستخدم صفحات الويب القديمة الإصدارات السابقة من اللغة. أنت تخبر المتصفح بهذه المعلومات عن طريق إضافة العلامة <!DOCTYPE ...> على السطر الأول ، حيث يكون الجزء ... هو إصدار HTML. بالنسبة إلى HTML5 ، تستخدم <!DOCTYPE html> . ! و DOCTYPE الكبيرة مهمة ، خاصة بالنسبة للمتصفحات القديمة. ليست html حساسة لحالة الأحرف. بعد ذلك ، يجب أن يتم لف بقية تعليمات HTML البرمجية الخاصة بك في علامات html . ينتقل الافتتاح <html> مباشرة أسفل السطر <!DOCTYPE html> ، ويذهب الإغلاق </html> في نهاية الصفحة. في ما يلي مثال على بنية الصفحة:
<! DOCTYPE html>
<HTML>
<! - رمز HTML الخاص بك هنا ->
</ HTML>
## Instructions
أضف علامة DOCTYPE لـ HTML5 إلى أعلى مستند HTML الفارغ في محرر الشفرة. تحته ، إضافة علامات html فتح وإغلاق ، والتي التفاف حول عنصر h1 . يمكن أن يتضمن العنوان أي نص.
diff --git a/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.arabic.md b/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.arabic.md index 4cd7ed581b..dd8f09f512 100644 --- a/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.arabic.md +++ b/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.arabic.md @@ -8,7 +8,7 @@ localeTitle: بناء صفحة هبوط منتج --- ## Description -
الهدف: إنشاء تطبيق CodePen.io تشبه وظيفيًا هذا: https://codepen.io/freeCodeCamp/full/RKRbwL . تحقق من قصص المستخدمين أدناه واجتاز جميع الاختبارات. اعطها اسلوبك الشخصي. يمكنك استخدام HTML و JavaScript و CSS لإكمال هذا المشروع. يوصى باستخدام CSS العادي لأن هذا هو ما غطته الدروس حتى الآن ، ويجب أن تحصل على بعض التمرين باستخدام CSS عادي. يمكنك استخدام Bootstrap أو SASS إذا اخترت. لا يوصى باستخدام هذا النوع من التقنيات الإضافية (على سبيل المثال jQuery أو React أو Angular أو Vue) ، ويكون استخدامها على مسؤوليتك الخاصة. سوف تعطيك مشاريع أخرى فرصة للعمل مع مكدسات التكنولوجيا المختلفة مثل React. سنقبل ونحاول إصلاح جميع تقارير المشكلات التي تستخدم مجموعة التكنولوجيا المقترحة لهذا المشروع. الترميز سعيدة! قصة المستخدم # 1: الصفحة المقصودة المنتجات بلدي يجب أن يكون header عنصر المقابلة مع id="header" . قصة المستخدم رقم 2: يمكنني رؤية صورة داخل عنصر header باستخدام id="header-img" مناظر id="header-img" . شعار الشركة سيجعل صورة جيدة هنا. قصة المستخدم رقم 3: داخل عنصر #header أستطيع أن أرى عنصر nav باستخدام id="nav-bar" . قصة المستخدم رقم 4: يمكنني مشاهدة ثلاثة عناصر قابلة للنقر على الأقل داخل عنصر nav ، كل منها يحتوي على nav-link للفئة. قصة المستخدم رقم 5: عندما أنقر على زر .nav-link في عنصر nav ، يتم نقلي إلى القسم المقابل من الصفحة المقصودة. قصة المستخدم رقم 6: يمكنني مشاهدة فيديو منتج مضمّن باستخدام id="video" . قصة المستخدم رقم 7: تحتوي صفحتي المقصودة على عنصر form له id="form" مناظر id="form" . قصة المستخدم رقم 8: داخل النموذج ، هناك حقل input به id="email" حيث يمكنني إدخال عنوان بريد إلكتروني. قصة المستخدم رقم 9: يجب أن يحتوي حقل إدخال #email # على نص #email للسماح للمستخدم بمعرفة ما هو الحقل. قصة المستخدم # 10: #email حقل إدخال يستخدم التحقق من صحة HTML5 للتأكد من أن النص الذي تم إدخاله هو عنوان البريد الإلكتروني. قصة المستخدم رقم 11: في النموذج ، هناك input إرسال مع id="submit" المقابلة id="submit" . قصة المستخدم رقم 12: عندما أنقر على عنصر " #submit ، يتم إرسال الرسالة الإلكترونية إلى صفحة ثابتة (استخدم هذا العنوان #submit : https://www.freecodecamp.com/email-submit ) الذي يؤكد إدخال عنوان البريد الإلكتروني و نشرت بنجاح. قصة المستخدم رقم 13: يجب أن يكون شريط التنقل دائمًا في أعلى منفذ العرض. قصة المستخدم رقم 14: يجب أن تحتوي صفحتي المقصودة للمنتج على استعلام وسائط واحد على الأقل. قصة المستخدم رقم 15: يجب أن تستخدم الصفحة المقصودة للمنتج My CSS flexbox مرة واحدة على الأقل. يمكنك بناء مشروعك عن طريق تسجيل قلم CodePen هذا . أو يمكنك استخدام رابط CDN هذا لتشغيل الاختبارات في أي بيئة تفضلها: https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js بمجرد الانتهاء ، أرسل عنوان URL إلى عملك مشروع مع كل اختباراتها تمر. تذكر استخدام طريقة Read-Search-Ask إذا واجهتك مشكلة.
+
الهدف: إنشاء تطبيق CodePen.io تشبه وظيفيًا هذا: https://codepen.io/freeCodeCamp/full/RKRbwL . تحقق من قصص المستخدمين أدناه واجتاز جميع الاختبارات. اعطها اسلوبك الشخصي. يمكنك استخدام HTML و JavaScript و CSS لإكمال هذا المشروع. يوصى باستخدام CSS العادي لأن هذا هو ما غطته الدروس حتى الآن ، ويجب أن تحصل على بعض التمرين باستخدام CSS عادي. يمكنك استخدام Bootstrap أو SASS إذا اخترت. لا يوصى باستخدام هذا النوع من التقنيات الإضافية (على سبيل المثال jQuery أو React أو Angular أو Vue) ، ويكون استخدامها على مسؤوليتك الخاصة. سوف تعطيك مشاريع أخرى فرصة للعمل مع مكدسات التكنولوجيا المختلفة مثل React. سنقبل ونحاول إصلاح جميع تقارير المشكلات التي تستخدم مجموعة التكنولوجيا المقترحة لهذا المشروع. الترميز سعيدة! قصة المستخدم # 1: الصفحة المقصودة المنتجات بلدي يجب أن يكون header عنصر المقابلة مع id="header" . قصة المستخدم رقم 2: يمكنني رؤية صورة داخل عنصر header باستخدام id="header-img" مناظر id="header-img" . شعار الشركة سيجعل صورة جيدة هنا. قصة المستخدم رقم 3: داخل عنصر #header أستطيع أن أرى عنصر nav باستخدام id="nav-bar" . قصة المستخدم رقم 4: يمكنني مشاهدة ثلاثة عناصر قابلة للنقر على الأقل داخل عنصر nav ، كل منها يحتوي على nav-link للفئة. قصة المستخدم رقم 5: عندما أنقر على زر .nav-link في عنصر nav ، يتم نقلي إلى القسم المقابل من الصفحة المقصودة. قصة المستخدم رقم 6: يمكنني مشاهدة فيديو منتج مضمّن باستخدام id="video" . قصة المستخدم رقم 7: تحتوي صفحتي المقصودة على عنصر form له id="form" مناظر id="form" . قصة المستخدم رقم 8: داخل النموذج ، هناك حقل input به id="email" حيث يمكنني إدخال عنوان بريد إلكتروني. قصة المستخدم رقم 9: يجب أن يحتوي حقل إدخال #email # على نص #email للسماح للمستخدم بمعرفة ما هو الحقل. قصة المستخدم # 10: #email حقل إدخال يستخدم التحقق من صحة HTML5 للتأكد من أن النص الذي تم إدخاله هو عنوان البريد الإلكتروني. قصة المستخدم رقم 11: في النموذج ، هناك input إرسال مع id="submit" المقابلة id="submit" . قصة المستخدم رقم 12: عندما أنقر على عنصر #submit ، يتم إرسال الرسالة الإلكترونية إلى صفحة ثابتة (استخدم هذا العنوان #submit : https://www.freecodecamp.com/email-submit ) الذي يؤكد إدخال عنوان البريد الإلكتروني و نشرت بنجاح. قصة المستخدم رقم 13: يجب أن يكون شريط التنقل دائمًا في أعلى منفذ العرض. قصة المستخدم رقم 14: يجب أن تحتوي صفحتي المقصودة للمنتج على استعلام وسائط واحد على الأقل. قصة المستخدم رقم 15: يجب أن تستخدم الصفحة المقصودة للمنتج My CSS flexbox مرة واحدة على الأقل. يمكنك بناء مشروعك عن طريق تسجيل قلم CodePen هذا . أو يمكنك استخدام رابط CDN هذا لتشغيل الاختبارات في أي بيئة تفضلها: https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js بمجرد الانتهاء ، أرسل عنوان URL إلى عملك مشروع مع كل اختباراتها تمر. تذكر استخدام طريقة Read-Search-Ask إذا واجهتك مشكلة.
## Instructions
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-prototype-chain.arabic.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-prototype-chain.arabic.md index f4346a734f..6a8051684a 100644 --- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-prototype-chain.arabic.md +++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-prototype-chain.arabic.md @@ -17,7 +17,7 @@ localeTitle: فهم سلسلة النموذج ```yml tests: - - text: يجب أن تُظهر الكود الخاص بك أن Object.prototype هو النموذج الأولي لـ Dog.prototype ") + - text: يجب أن تُظهر الكود الخاص بك أن Object.prototype هو النموذج الأولي لـ Dog.prototype) testString: 'assert(/Object\.prototype\.isPrototypeOf/.test(code), "Your code should show that Object.prototype is the prototype of Dog.prototype");' ``` diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/use-inheritance-so-you-dont-repeat-yourself.arabic.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/use-inheritance-so-you-dont-repeat-yourself.arabic.md index 441b29988c..1e0caa573a 100644 --- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/use-inheritance-so-you-dont-repeat-yourself.arabic.md +++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/object-oriented-programming/use-inheritance-so-you-dont-repeat-yourself.arabic.md @@ -7,7 +7,7 @@ localeTitle: استخدام الوراثة حتى لا تكرر نفسك --- ## Description -
هناك مبدأ في البرمجة يسمى " Don't Repeat Yourself (DRY) . السبب في تكرار التعليمات البرمجية هو مشكلة لأن أي تغيير يتطلب إصلاح الكود في أماكن متعددة. هذا عادة ما يعني المزيد من العمل للمبرمجين ومجالاً أكبر للأخطاء. لاحظ في المثال أدناه أن طريقة describe تتم مشاركتها بواسطة Bird and Dog :
Bird.prototype = {
منشئ: الطيور ،
وصف: الوظيفة () {
console.log ("اسمي هو" + this.name)؛
}


Dog.prototype = {
منشئ: كلب ،
وصف: الوظيفة () {
console.log ("اسمي هو" + this.name)؛
}
تكرر طريقة describe في مكانين. يمكن تحرير الرمز ليتبع مبدأ DRY عن طريق إنشاء نوع supertype (أو الأصل) يسمى Animal :
وظيفة الحيوان () {}؛

Animal.prototype = {
منشئ: الحيوان ،
وصف: الوظيفة () {
console.log ("اسمي هو" + this.name)؛
}
بما أن Animal يشتمل على طريقة describe ، فيمكنك إزالتها من Bird and Dog :
Bird.prototype = {
منشئ: الطيور


Dog.prototype = {
منشئ: كلب
+
هناك مبدأ في البرمجة يسمى Don't Repeat Yourself (DRY) . السبب في تكرار التعليمات البرمجية هو مشكلة لأن أي تغيير يتطلب إصلاح الكود في أماكن متعددة. هذا عادة ما يعني المزيد من العمل للمبرمجين ومجالاً أكبر للأخطاء. لاحظ في المثال أدناه أن طريقة describe تتم مشاركتها بواسطة Bird and Dog :
Bird.prototype = {
منشئ: الطيور ،
وصف: الوظيفة () {
console.log ("اسمي هو" + this.name)؛
}


Dog.prototype = {
منشئ: كلب ،
وصف: الوظيفة () {
console.log ("اسمي هو" + this.name)؛
}
تكرر طريقة describe في مكانين. يمكن تحرير الرمز ليتبع مبدأ DRY عن طريق إنشاء نوع supertype (أو الأصل) يسمى Animal :
وظيفة الحيوان () {}؛

Animal.prototype = {
منشئ: الحيوان ،
وصف: الوظيفة () {
console.log ("اسمي هو" + this.name)؛
}
بما أن Animal يشتمل على طريقة describe ، فيمكنك إزالتها من Bird and Dog :
Bird.prototype = {
منشئ: الطيور


Dog.prototype = {
منشئ: كلب
## Instructions
تتكرر طريقة eat في كل من Cat and Bear . قم بتحرير الكود بروح DRY بتحريك طريقة eat إلى نوع supertype Animal .
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/regular-expressions/find-one-or-more-criminals-in-a-hunt.arabic.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/regular-expressions/find-one-or-more-criminals-in-a-hunt.arabic.md index cc3f12b497..c734a2b430 100644 --- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/regular-expressions/find-one-or-more-criminals-in-a-hunt.arabic.md +++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/regular-expressions/find-one-or-more-criminals-in-a-hunt.arabic.md @@ -17,20 +17,20 @@ localeTitle: العثور على واحد أو أكثر من المجرمين ف ```yml tests: - - text: يجب أن يتطابق تعبيرك العادي مع one المجرمين (" C ") في "C" - testString: 'assert("C".match(reCriminals) && "C".match(reCriminals)[0] == "C", "Your regex should match one criminal ("C") in "C"");' - - text: يجب أن يتطابق تعبيرك العادي مع two المجرمين (" CC ") في "CC" - testString: 'assert("CC".match(reCriminals) && "CC".match(reCriminals)[0] == "CC", "Your regex should match two criminals ("CC") in "CC"");' - - text: يجب أن يتطابق "P1P5P4CCCP2P6P3" العادي مع three مجرمين (" CCC ") في "P1P5P4CCCP2P6P3" - testString: 'assert("P1P5P4CCCP2P6P3".match(reCriminals) && "P1P5P4CCCP2P6P3".match(reCriminals)[0] == "CCC", "Your regex should match three criminals ("CCC") in "P1P5P4CCCP2P6P3"");' - - text: يجب أن يتطابق "P6P2P7P4P5CCCCCP3P1" العادي مع five مجرمين (" CCCCC ") في "P6P2P7P4P5CCCCCP3P1" - testString: 'assert("P6P2P7P4P5CCCCCP3P1".match(reCriminals) && "P6P2P7P4P5CCCCCP3P1".match(reCriminals)[0] == "CCCCC", "Your regex should match five criminals ("CCCCC") in "P6P2P7P4P5CCCCCP3P1"");' + - text: يجب أن يتطابق تعبيرك العادي مع one المجرمين ( C) في "C" + testString: 'assert("C".match(reCriminals) && "C".match(reCriminals)[0] == "C", "Your regex should match one criminal (C) in "C"");' + - text: يجب أن يتطابق تعبيرك العادي مع two المجرمين ( CC ) في "CC" + testString: 'assert("CC".match(reCriminals) && "CC".match(reCriminals)[0] == "CC", "Your regex should match two criminals (CC) in "CC"");' + - text: يجب أن يتطابق "P1P5P4CCCP2P6P3" العادي مع three مجرمين (CCC) في "P1P5P4CCCP2P6P3" + testString: 'assert("P1P5P4CCCP2P6P3".match(reCriminals) && "P1P5P4CCCP2P6P3".match(reCriminals)[0] == "CCC", "Your regex should match three criminals (CCC) in "P1P5P4CCCP2P6P3"");' + - text: يجب أن يتطابق "P6P2P7P4P5CCCCCP3P1" العادي مع five مجرمين ( CCCCC ) في "P6P2P7P4P5CCCCCP3P1" + testString: 'assert("P6P2P7P4P5CCCCCP3P1".match(reCriminals) && "P6P2P7P4P5CCCCCP3P1".match(reCriminals)[0] == "CCCCC", "Your regex should match five criminals (CCCCC) in "P6P2P7P4P5CCCCCP3P1"");' - text: يجب ألا يتطابق تعبيرك العادي مع أي مجرمين في "" testString: 'assert(!reCriminals.test(""), "Your regex should not match any criminals in """);' - text: يجب ألا يتطابق "P1P2P3" العادي مع أي مجرمين في "P1P2P3" testString: 'assert(!reCriminals.test("P1P2P3"), "Your regex should not match any criminals in "P1P2P3"");' - - text: يجب أن يتطابق CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC العادي مع fifty المجرمين (" CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC ") في "P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3" . - testString: 'assert("P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3".match(reCriminals) && "P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3".match(reCriminals)[0] == "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", "Your regex should match fifty criminals ("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC") in "P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3".");' + - text: يجب أن يتطابق CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC العادي مع fifty المجرمين ( CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC ) في "P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3" . + testString: 'assert("P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3".match(reCriminals) && "P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3".match(reCriminals)[0] == "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", "Your regex should match fifty criminals (CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC) in "P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3".");' ``` diff --git a/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.arabic.md b/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.arabic.md index e6f4d302e5..5c067f09a4 100644 --- a/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.arabic.md +++ b/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.arabic.md @@ -7,7 +7,7 @@ localeTitle: استخدام تصميم متجاوب مع حاويات السوا --- ## Description -
في قسم HTML5 و CSS من برنامج FreeCodeCamp ، أنشأنا تطبيق صور Cat. الآن دعونا نعود إليها. في هذه المرة ، سنقوم بإعداده باستخدام إطار عمل Bootstrap المتجاوب لـ CSS. سيحدد Bootstrap مدى اتساع الشاشة ويستجيب عن طريق تغيير حجم عناصر HTML - ومن هنا يكون اسم " Responsive Design . مع تصميم متجاوب ، ليست هناك حاجة لتصميم نسخة محمولة من موقع الويب الخاص بك. سوف تبدو جيدة على الأجهزة ذات الشاشات من أي عرض. يمكنك إضافة Bootstrap إلى أي تطبيق بإضافة التعليمة البرمجية التالية إلى أعلى HTML: <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"/> في هذه الحالة ، قمنا بالفعل بإضافته لك إلى هذه الصفحة من وراء الكواليس. لاحظ أن استخدام > أو /> لإغلاق علامة link أمر مقبول. للبدء ، يجب علينا تضمين جميع HTML (باستثناء علامة link وعنصر style ) في عنصر div باستخدام container-fluid للفئة.
+
في قسم HTML5 و CSS من برنامج FreeCodeCamp ، أنشأنا تطبيق صور Cat. الآن دعونا نعود إليها. في هذه المرة ، سنقوم بإعداده باستخدام إطار عمل Bootstrap المتجاوب لـ CSS. سيحدد Bootstrap مدى اتساع الشاشة ويستجيب عن طريق تغيير حجم عناصر HTML - ومن هنا يكون اسم Responsive Design . مع تصميم متجاوب ، ليست هناك حاجة لتصميم نسخة محمولة من موقع الويب الخاص بك. سوف تبدو جيدة على الأجهزة ذات الشاشات من أي عرض. يمكنك إضافة Bootstrap إلى أي تطبيق بإضافة التعليمة البرمجية التالية إلى أعلى HTML: <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"/> في هذه الحالة ، قمنا بالفعل بإضافته لك إلى هذه الصفحة من وراء الكواليس. لاحظ أن استخدام > أو /> لإغلاق علامة link أمر مقبول. للبدء ، يجب علينا تضمين جميع HTML (باستثناء علامة link وعنصر style ) في عنصر div باستخدام container-fluid للفئة.
## Instructions
diff --git a/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-the-bootstrap-grid-to-put-elements-side-by-side.arabic.md b/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-the-bootstrap-grid-to-put-elements-side-by-side.arabic.md index 721037ba4a..e883bcc639 100644 --- a/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-the-bootstrap-grid-to-put-elements-side-by-side.arabic.md +++ b/curriculum/challenges/arabic/03-front-end-libraries/bootstrap/use-the-bootstrap-grid-to-put-elements-side-by-side.arabic.md @@ -7,7 +7,7 @@ localeTitle: استخدم شبكة Bootstrap لوضع عناصر جنبًا إل --- ## Description -
يستخدم Bootstrap نظام شبكة متجاوزة من 12 عمودًا ، مما يجعل من السهل وضع العناصر في صفوف وتحديد العرض النسبي لكل عنصر. يمكن تطبيق معظم طبقات Bootstrap على عنصر div . يحتوي Bootstrap على خصائص عرض العمود المختلفة التي يستخدمها بناءً على مدى اتساع شاشة المستخدم. على سبيل المثال ، تشتمل الهواتف على شاشات ضيقة ، كما تحتوي أجهزة الكمبيوتر المحمولة على شاشات أوسع. خذ على سبيل المثال الطبقة col-md-* في Bootstrap. هنا ، md تعني medium ، و * هو رقم يحدد عدد الأعمدة التي يجب أن يكون العنصر فيها. في هذه الحالة ، يتم تحديد عرض العمود لعنصر على شاشة متوسطة الحجم ، مثل الكمبيوتر المحمول. في تطبيق Cat Photo الذي نقوم ببنائه ، سنستخدم col-xs-* ، حيث xs تعني مساحة صغيرة جدًا (مثل شاشة الهاتف المحمول الصغيرة جدًا) ، و * هو عدد الأعمدة التي تحدد عدد الأعمدة على نطاق واسع يجب أن يكون العنصر. ضع زري " Like و " Info و " Delete جنبًا إلى جنب من خلال تضمين كل ثلاثة منهم في عنصر واحد <div class="row"> ، ثم كل واحد منهم داخل عنصر <div class="col-xs-4"> . يتم تطبيق فئة row على div ، ويمكن أن تتداخل الأزرار نفسها داخلها.
+
يستخدم Bootstrap نظام شبكة متجاوزة من 12 عمودًا ، مما يجعل من السهل وضع العناصر في صفوف وتحديد العرض النسبي لكل عنصر. يمكن تطبيق معظم طبقات Bootstrap على عنصر div . يحتوي Bootstrap على خصائص عرض العمود المختلفة التي يستخدمها بناءً على مدى اتساع شاشة المستخدم. على سبيل المثال ، تشتمل الهواتف على شاشات ضيقة ، كما تحتوي أجهزة الكمبيوتر المحمولة على شاشات أوسع. خذ على سبيل المثال الطبقة col-md-* في Bootstrap. هنا ، md تعني medium ، و * هو رقم يحدد عدد الأعمدة التي يجب أن يكون العنصر فيها. في هذه الحالة ، يتم تحديد عرض العمود لعنصر على شاشة متوسطة الحجم ، مثل الكمبيوتر المحمول. في تطبيق Cat Photo الذي نقوم ببنائه ، سنستخدم col-xs-* ، حيث xs تعني مساحة صغيرة جدًا (مثل شاشة الهاتف المحمول الصغيرة جدًا) ، و * هو عدد الأعمدة التي تحدد عدد الأعمدة على نطاق واسع يجب أن يكون العنصر. ضع زري Like و Info و Delete جنبًا إلى جنب من خلال تضمين كل ثلاثة منهم في عنصر واحد <div class="row"> ، ثم كل واحد منهم داخل عنصر <div class="col-xs-4"> . يتم تطبيق فئة row على div ، ويمكن أن تتداخل الأزرار نفسها داخلها.
## Instructions undefined diff --git a/curriculum/challenges/arabic/03-front-end-libraries/react-and-redux/manage-state-locally-first.arabic.md b/curriculum/challenges/arabic/03-front-end-libraries/react-and-redux/manage-state-locally-first.arabic.md index 16cd7ec5c9..d1a29ca344 100644 --- a/curriculum/challenges/arabic/03-front-end-libraries/react-and-redux/manage-state-locally-first.arabic.md +++ b/curriculum/challenges/arabic/03-front-end-libraries/react-and-redux/manage-state-locally-first.arabic.md @@ -26,7 +26,7 @@ tests: testString: 'async () => { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 100)); const causeChange = (c, v) => c.find("input").simulate("change", { target: { value: v }}); const testValue = "__TEST__EVENT__INPUT"; const changed = () => { causeChange(mockedComponent, testValue); return waitForIt(() => mockedComponent )}; const updated = await changed(); assert(updated.find("input").props().value === testValue, "The input element should render the value of input in local state."); }; ' - text: يجب استدعاء الأسلوب handleChange تحديث قيمة input في الحالة إلى الإدخال الحالي. testString: 'async () => { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 100)); const causeChange = (c, v) => c.find("input").simulate("change", { target: { value: v }}); const initialState = mockedComponent.state(); const testMessage = "__TEST__EVENT__MESSAGE__"; const changed = () => { causeChange(mockedComponent, testMessage); return waitForIt(() => mockedComponent )}; const afterInput = await changed(); assert(initialState.input === "" && afterInput.state().input === "__TEST__EVENT__MESSAGE__", "Calling the method handleChange should update the input value in state to the current input."); }; ' - - text: يجب النقر فوق الزر " Add message استدعاء الأسلوب submitMessage الذي يجب إضافة input الحالي إلى صفيف messages في الحالة. + - text: يجب النقر فوق الزر Add message استدعاء الأسلوب submitMessage الذي يجب إضافة input الحالي إلى صفيف messages في الحالة. testString: 'async () => { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 100)); const causeChange = (c, v) => c.find("input").simulate("change", { target: { value: v }}); const initialState = mockedComponent.state(); const testMessage_1 = "__FIRST__MESSAGE__"; const firstChange = () => { causeChange(mockedComponent, testMessage_1); return waitForIt(() => mockedComponent )}; const firstResult = await firstChange(); const firstSubmit = () => { mockedComponent.find("button").simulate("click"); return waitForIt(() => mockedComponent )}; const afterSubmit_1 = await firstSubmit(); const submitState_1 = afterSubmit_1.state(); const testMessage_2 = "__SECOND__MESSAGE__"; const secondChange = () => { causeChange(mockedComponent, testMessage_2); return waitForIt(() => mockedComponent )}; const secondResult = await secondChange(); const secondSubmit = () => { mockedComponent.find("button").simulate("click"); return waitForIt(() => mockedComponent )}; const afterSubmit_2 = await secondSubmit(); const submitState_2 = afterSubmit_2.state(); assert(initialState.messages.length === 0 && submitState_1.messages.length === 1 && submitState_2.messages.length === 2 && submitState_2.messages[1] === testMessage_2, "Clicking the Add message button should call the method submitMessage which should add the current input to the messages array in state."); }; ' - text: يجب أن تقوم طريقة submitMessage بمسح الإدخال الحالي. testString: 'async () => { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 100)); const causeChange = (c, v) => c.find("input").simulate("change", { target: { value: v }}); const initialState = mockedComponent.state(); const testMessage = "__FIRST__MESSAGE__"; const firstChange = () => { causeChange(mockedComponent, testMessage); return waitForIt(() => mockedComponent )}; const firstResult = await firstChange(); const firstState = firstResult.state(); const firstSubmit = () => { mockedComponent.find("button").simulate("click"); return waitForIt(() => mockedComponent )}; const afterSubmit = await firstSubmit(); const submitState = afterSubmit.state(); assert(firstState.input === testMessage && submitState.input === "", "The submitMessage method should clear the current input."); }; ' diff --git a/curriculum/challenges/arabic/03-front-end-libraries/react/manage-updates-with-lifecycle-methods.arabic.md b/curriculum/challenges/arabic/03-front-end-libraries/react/manage-updates-with-lifecycle-methods.arabic.md index 48fbe1e0a4..e780a7ba4e 100644 --- a/curriculum/challenges/arabic/03-front-end-libraries/react/manage-updates-with-lifecycle-methods.arabic.md +++ b/curriculum/challenges/arabic/03-front-end-libraries/react/manage-updates-with-lifecycle-methods.arabic.md @@ -18,7 +18,7 @@ localeTitle: إدارة التحديثات باستخدام أساليب دور ```yml tests: - - text: يجب أن يقوم مكون " Controller بعرض مكون " Dialog " كطفل. + - text: يجب أن يقوم مكون Controller بعرض مكون Dialog كطفل. testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(Controller)); return mockedComponent.find("Controller").length === 1 && mockedComponent.find("Dialog").length === 1; })(), "The Controller component should render the Dialog component as a child.");' - text: يجب أن يتم تسجيل أسلوب componentWillReceiveProps في مكون Dialog this.props إلى وحدة التحكم. testString: 'assert((function() { const lifecycleChild = React.createElement(Dialog).type.prototype.componentWillReceiveProps.toString().replace(/ /g,""); return lifecycleChild.includes("console.log") && lifecycleChild.includes("this.props") })(), "The componentWillReceiveProps method in the Dialog component should log this.props to the console.");' diff --git a/curriculum/challenges/arabic/03-front-end-libraries/react/optimize-re-renders-with-shouldcomponentupdate.arabic.md b/curriculum/challenges/arabic/03-front-end-libraries/react/optimize-re-renders-with-shouldcomponentupdate.arabic.md index 838b5b16f5..8d2daebb2c 100644 --- a/curriculum/challenges/arabic/03-front-end-libraries/react/optimize-re-renders-with-shouldcomponentupdate.arabic.md +++ b/curriculum/challenges/arabic/03-front-end-libraries/react/optimize-re-renders-with-shouldcomponentupdate.arabic.md @@ -11,7 +11,7 @@ localeTitle: تحسين Re-Renders مع shouldComponentUpdate
حتى الآن ، إذا تلقى أي مكون state جديدة أو props جديدة ، فإنه يعيد نفسه وجميع أبنائه. هذا عادة ما يرام. لكن React يوفر طريقة دورة حياة يمكنك الاتصال بها عندما تتلقى مكونات state الطفل أو props الجديدة ، وتعلن تحديدًا إذا كان يجب تحديث المكونات أم لا. هذه الطريقة هي shouldComponentUpdate() ، وتستغرق nextProps و nextState كمعلمات. هذه الطريقة هي طريقة مفيدة لتحسين الأداء. على سبيل المثال ، السلوك الافتراضي هو أن المكون الخاص بك re-renders عندما يتلقى props الجديدة ، حتى إذا لم يتم تغيير props . يمكنك استخدام shouldComponentUpdate() لمنع هذا عن طريق مقارنة props . يجب أن تقوم الطريقة بإرجاع قيمة boolean تخبر رد ما إذا كان سيتم تحديث المكون أم لا. يمكنك مقارنة الدعائم الحالية ( this.props ) this.props التالية ( nextProps ) لتحديد ما إذا كنت بحاجة إلى التحديث أم لا ، وإرجاع true أو false وفقًا لذلك.
## Instructions -
يتم إضافة أسلوب shouldComponentUpdate() في مكون يسمى OnlyEvens . حاليًا ، يعود هذا الأسلوب إلى true لذا تعيد OnlyEvens الظهور في كل مرة تتلقى فيها props الجديدة. قم بتعديل الطريقة بحيث لا يتم تحديث OnlyEvens إلا إذا كانت value الدعائم الجديدة حتى. انقر فوق الزر " Add وشاهد ترتيب الأحداث في وحدة تحكم المستعرض الخاص بك أثناء تشغيل hooks دورة الحياة الأخرى.
+
يتم إضافة أسلوب shouldComponentUpdate() في مكون يسمى OnlyEvens . حاليًا ، يعود هذا الأسلوب إلى true لذا تعيد OnlyEvens الظهور في كل مرة تتلقى فيها props الجديدة. قم بتعديل الطريقة بحيث لا يتم تحديث OnlyEvens إلا إذا كانت value الدعائم الجديدة حتى. انقر فوق الزر Add وشاهد ترتيب الأحداث في وحدة تحكم المستعرض الخاص بك أثناء تشغيل hooks دورة الحياة الأخرى.
## Tests
diff --git a/curriculum/challenges/arabic/03-front-end-libraries/react/render-with-an-if-else-condition.arabic.md b/curriculum/challenges/arabic/03-front-end-libraries/react/render-with-an-if-else-condition.arabic.md index 52b35e0e16..7693fc9f13 100644 --- a/curriculum/challenges/arabic/03-front-end-libraries/react/render-with-an-if-else-condition.arabic.md +++ b/curriculum/challenges/arabic/03-front-end-libraries/react/render-with-an-if-else-condition.arabic.md @@ -22,7 +22,7 @@ tests: testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(MyComponent)); return mockedComponent.find("MyComponent").length === 1; })(), "MyComponent should exist and render.");' - text: '' testString: 'async () => { const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 250)); const mockedComponent = Enzyme.mount(React.createElement(MyComponent)); const state_1 = () => { mockedComponent.setState({display: true}); return waitForIt(() => mockedComponent )}; const updated = await state_1(); assert(mockedComponent.find("div").length === 1 && mockedComponent.find("div").children().length === 2 && mockedComponent.find("button").length === 1 && mockedComponent.find("h1").length === 1, "When display is set to true, a div, button, and h1 should render."); }; ' - - text: عند تعيين display على " false ، يجب أن يتم display فقط button div button . + - text: عند تعيين display على false ، يجب أن يتم display فقط button div button . testString: 'async () => { const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 250)); const mockedComponent = Enzyme.mount(React.createElement(MyComponent)); const state_1 = () => { mockedComponent.setState({display: false}); return waitForIt(() => mockedComponent )}; const updated = await state_1(); assert(mockedComponent.find("div").length === 1 && mockedComponent.find("div").children().length === 1 && mockedComponent.find("button").length === 1 && mockedComponent.find("h1").length === 0, "When display is set to false, only a div and button should render."); }; ' - text: يجب أن تستخدم طريقة التجسيد عبارة if/else للتحقق من حالة this.state.display . testString: 'getUserInput => assert(getUserInput("index").includes("if") && getUserInput("index").includes("else"), "The render method should use an if/else statement to check the condition of this.state.display.");' diff --git a/curriculum/challenges/arabic/08-coding-interview-prep/rosetta-code/execute-brain.arabic.md b/curriculum/challenges/arabic/08-coding-interview-prep/rosetta-code/execute-brain.arabic.md index 2a3038be3a..718839c631 100644 --- a/curriculum/challenges/arabic/08-coding-interview-prep/rosetta-code/execute-brain.arabic.md +++ b/curriculum/challenges/arabic/08-coding-interview-prep/rosetta-code/execute-brain.arabic.md @@ -20,7 +20,7 @@ tests: - text: '' testString: 'assert(typeof brain(bye) === "string", "brain(bye) should return a string");' - text: '' - testString: 'assert.equal(brain("++++++[>++++++++++<-]>+++++."),"A", "brain("++++++[>++++++++++<-]>+++++.")++++++++++<-]>+++++."),"A", "brain("++++++[>++++++++++<-]>+++++.") should return "A"");' - text: '' testString: 'assert.equal(brain(bye), "Goodbye, World!\r\n", "brain(bye) should return Goodbye, World!\\r\\n");' - text: ''