diff --git a/curriculum/challenges/arabic/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml b/curriculum/challenges/arabic/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml
index e00138af76c..b65e0f5cbfe 100644
--- a/curriculum/challenges/arabic/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml
+++ b/curriculum/challenges/arabic/00-certifications/front-end-development-libraries-certification/front-end-development-libraries-certification.yml
@@ -13,10 +13,10 @@ tests:
title: بناء عارض Markdown
-
id: 587d7dbc367417b2b2512bae
- title: بناء آلة الدرامز
+ title: أنشئ آلة الطبول
-
id: bd7158d8c442eddfaeb5bd17
- title: بناء آلة حاسبة بإستخدام JavaScript
+ title: ابن آلة حاسبة باستخدام JavaScript
-
id: bd7158d8c442eddfaeb5bd0f
title: بناء ساعة 25 + 5
diff --git a/curriculum/challenges/arabic/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml b/curriculum/challenges/arabic/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml
index 3349d7cd478..dbfa713d1db 100644
--- a/curriculum/challenges/arabic/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml
+++ b/curriculum/challenges/arabic/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml
@@ -7,16 +7,16 @@ isPrivate: true
tests:
-
id: aaa48de84e1ecc7c742e1124
- title: فاحص الـ Palindrome
+ title: مدقق لمعاكس المقطع النصي
-
id: a7f4d8f2483413a6ce226cac
- title: محول الأرقام الرومانية
+ title: محول للأرقام الرومانية
-
id: 56533eb9ac21ba0edf2244e2
- title: شفرة قيصر (Caesars Cipher)
+ title: شفرة قيصر
-
id: aff0395860f5d3034dc0bfc9
- title: مدقق رقم الهاتف
+ title: مدقق لرقم الهاتف
-
id: aa2e6f85cab2ab736c9a9b24
- title: ماكينة تسجيل المدفوعات النقدية
+ title: مكنة لتسجيل النقود
diff --git a/curriculum/challenges/arabic/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml b/curriculum/challenges/arabic/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml
index c487c044fa4..25e29896e5d 100644
--- a/curriculum/challenges/arabic/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml
+++ b/curriculum/challenges/arabic/00-certifications/legacy-front-end-certification/legacy-front-end-certification.yml
@@ -16,7 +16,7 @@ tests:
title: قم ببناء ساعة 25 + 5
-
id: bd7158d8c442eddfaeb5bd17
- title: بناء آلة حاسبة بإستخدام JavaScript
+ title: بناء آلة حاسبة باستخدام JavaScript
-
id: bd7158d8c442eddfaeb5bd10
title: إظهار الطقس المحلي
diff --git a/curriculum/challenges/arabic/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml b/curriculum/challenges/arabic/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml
index 4994d71e9e4..e8e2df55dc5 100644
--- a/curriculum/challenges/arabic/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml
+++ b/curriculum/challenges/arabic/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml
@@ -7,7 +7,7 @@ isPrivate: true
tests:
-
id: bd7158d8c442eddfaeb5bd18
- title: بناء صفحة تحية
+ title: أنشئ مشروع صفحة الثناء
-
id: 587d78af367417b2b2512b03
title: بناء نموذج استطلاع رأي
@@ -16,7 +16,7 @@ tests:
title: بناء الصفحة الرئيسة لمنتج
-
id: 587d78b0367417b2b2512b05
- title: أنشئ صفحة التوثيق الفني
+ title: أنشئ صفحة التوثيق التقنية
-
id: bd7158d8c242eddfaeb5bd13
title: أنشئ معرضا لأعمالك الخاصة
diff --git a/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/fill-in-the-blank-with-placeholder-text.md b/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/fill-in-the-blank-with-placeholder-text.md
index b9a9509f8ea..e48285eea70 100644
--- a/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/fill-in-the-blank-with-placeholder-text.md
+++ b/curriculum/challenges/arabic/01-responsive-web-design/basic-html-and-html5/fill-in-the-blank-with-placeholder-text.md
@@ -13,7 +13,7 @@ Web developers traditionally use lorem ipsum text as placeholder text
Lorem ipsum text has been used as placeholder text by typesetters since the 16th century, and this tradition continues on the web.
-Well, 5 centuries is long enough. Since we're building a CatPhotoApp, let's use something called "kitty ipsum" text.
+Well, 5 centuries is long enough. بما أنك تنشئ برنامج CatPhotoApp، استخدم نص "kitty ipsum".
# --instructions--
diff --git a/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md b/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md
index afe98f114e4..4050a8f54d5 100644
--- a/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md
+++ b/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md
@@ -1,6 +1,6 @@
---
id: bd7158d8c242eddfaeb5bd13
-title: Build a Personal Portfolio Webpage
+title: أنشئ معرضا لأعمالك الخاصة
challengeType: 14
forumTopicId: 301143
dashedName: build-a-personal-portfolio-webpage
diff --git a/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md b/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md
index 1dbc840e0bb..a36f6c5daf1 100644
--- a/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md
+++ b/curriculum/challenges/arabic/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md
@@ -1,6 +1,6 @@
---
id: 587d78af367417b2b2512b04
-title: Build a Product Landing Page
+title: أنشئ صفحة لعرض المنتج
challengeType: 14
forumTopicId: 301144
dashedName: build-a-product-landing-page
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-data-structures/access-property-names-with-bracket-notation.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-data-structures/access-property-names-with-bracket-notation.md
index 194fd0634aa..182176d5d83 100644
--- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-data-structures/access-property-names-with-bracket-notation.md
+++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-data-structures/access-property-names-with-bracket-notation.md
@@ -8,7 +8,7 @@ dashedName: access-property-names-with-bracket-notation
# --description--
-في تحدي الكائن الأول ذكرنا استخدام رمز القوس كوسيلة للوصول إلى قيم الخاصية باستخدام تقييم متغير. على سبيل المثال، تخيل أن كائن `foods` الخاص بنا يتم استخدامه في برنامَج لتسجيل النقود في محل تجارة. لدينا وظيفة ما و التي تعين `selectedFood` ونحن نريد التحقق من كائن `foods` للتأكد من وجود ذلك الطعام. وقد يبدو ذلك كالتالي:
+في تحدي الكائن الأول ذكرنا استخدام رمز القوس كوسيلة للوصول إلى قيم الخاصية باستخدام تقييم متغير. على سبيل المثال، تخيل أن كائننا `foods` يستخدمه مكنة لتسجيل النقود في محل تجارة. لدينا وظيفة ما و التي تعين `selectedFood` ونحن نريد التحقق من كائن `foods` للتأكد من وجود ذلك الطعام. وقد يبدو ذلك كالتالي:
```js
let selectedFood = getCurrentFood(scannedItem);
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/subtract-one-number-from-another-with-javascript.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/subtract-one-number-from-another-with-javascript.md
index 4c579b25941..f1529ae6687 100644
--- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/subtract-one-number-from-another-with-javascript.md
+++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/subtract-one-number-from-another-with-javascript.md
@@ -1,6 +1,6 @@
---
id: cf1111c1c11feddfaeb4bdef
-title: طرح رقم من الآخر باستخدام JavaScript
+title: طرح رَقَم من رَقَم آخر باستخدام JavaScript
challengeType: 1
videoUrl: 'https://scrimba.com/c/cP3yQtk'
forumTopicId: 18314
@@ -9,7 +9,7 @@ dashedName: subtract-one-number-from-another-with-javascript
# --description--
-يمكننا أيضا أن نطرح رقما من آخر.
+يمكننا أيضا أن نطرح رقما من رقما آخر.
يستخدم JavaScript رمز `-` للطرح.
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md
index 99d520c10a2..92b5a944b3d 100644
--- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md
+++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md
@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244e2
-title: Caesars Cipher
+title: شفرة قيصر
challengeType: 5
forumTopicId: 16003
dashedName: caesars-cipher
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register.md
index b0b6a4a3b6d..e1bee22eedd 100644
--- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register.md
+++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register.md
@@ -1,6 +1,6 @@
---
id: aa2e6f85cab2ab736c9a9b24
-title: Cash Register
+title: مكنة لتسجيل النقود
challengeType: 5
forumTopicId: 16012
dashedName: cash-register
@@ -8,11 +8,11 @@ dashedName: cash-register
# --description--
-قم بتصميم دالة درج تسجيل المدفوعات `checkCashRegister()` التي تقبل سعر الشراء كـ argument أولى (`price`)، و الدفع كـ argument ثانية (`cash`) ، و cash-in-drawer اي النقود في الدرج (`cid`) كـ argument ثالثة.
+صمم وظيفة درج لتسجيل النقود `checkCashRegister()` التي تقبل سعر الشراء كمعطى أولى (`price`)، و الدفع كمعطى ثاني (`cash`)، و cash-in-drawer أي النقود في الدرج (`cid`) كمعطى ثالث.
`cid` عبارة عن array ثنائية الأبعاد للعملة المتاحة.
-يجب أن تقوم دالة `checkCashRegister()` دائما بإرجاع object يحتوي على key الـ `status` و key الـ `change`.
+يجب أن تقوم وظيفة `checkCashRegister()` دائما بإنتاج كائن يحتوي على الهوية (key) المسمى `status` و الهوية `change`.
قم بإرجاع `{status: "INSUFFICIENT_FUNDS", change: []}` إذا كان cash-in-drawer أقل من الباقي المستحق، أو إذا كنت لا تستطيع إرجاع الباقي بالضبط.
@@ -40,7 +40,7 @@ dashedName: cash-register
# --hints--
-`checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` يجب ان يرجع object.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` كائن.
```js
assert.deepEqual(
@@ -61,7 +61,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` يجب ان يرجع `{status: "OPEN", change: [["QUARTER", 0.5]]}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` كائن `{status: "OPEN", change: [["QUARTER", 0.5]]}`.
```js
assert.deepEqual(
@@ -80,7 +80,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` يجب ان يرجع `{status: "OPEN", change: [["TWENTY", 60], ["TEN", 20], ["FIVE", 15], ["ONE", 1], ["QUARTER", 0.5], ["DIME", 0.2], ["PENNY", 0.04]]}`.
+يجب أن ينتج `checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` كائن `{status: "OPEN", change: [["TWENTY", 60], ["TEN", 20], ["FIVE", 15], ["ONE", 1], ["QUARTER", 0.5], ["DIME", 0.2], ["PENNY", 0.04]]}`.
```js
assert.deepEqual(
@@ -110,7 +110,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` يجب ان يرجع `{status: "INSUFFICIENT_FUNDS", change: []}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` كائن `{status: "INSUFFICIENT_FUNDS", change: []}`.
```js
assert.deepEqual(
@@ -129,7 +129,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 1], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` يجب ان يرجع `{status: "INSUFFICIENT_FUNDS", change: []}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 1], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` كائن `{status: "INSUFFICIENT_FUNDS", change: []}`.
```js
assert.deepEqual(
@@ -148,7 +148,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` يجب ان يرجع `{status: "CLOSED", change: [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]]}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` كائن `{status: "CLOSED", change: [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]]}`.
```js
assert.deepEqual(
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md
index 6d07135f341..3fd98aeadf1 100644
--- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md
+++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md
@@ -1,6 +1,6 @@
---
id: aaa48de84e1ecc7c742e1124
-title: Palindrome Checker
+title: مدقق لمعاكس المقطع النصي
challengeType: 5
forumTopicId: 16004
dashedName: palindrome-checker
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/roman-numeral-converter.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/roman-numeral-converter.md
index cae6e022074..425b47c65b7 100644
--- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/roman-numeral-converter.md
+++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/roman-numeral-converter.md
@@ -1,6 +1,6 @@
---
id: a7f4d8f2483413a6ce226cac
-title: Roman Numeral Converter
+title: محول للأرقام الرومانية
challengeType: 5
forumTopicId: 16044
dashedName: roman-numeral-converter
diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/telephone-number-validator.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/telephone-number-validator.md
index 2101560a450..a744f7215c4 100644
--- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/telephone-number-validator.md
+++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/telephone-number-validator.md
@@ -1,6 +1,6 @@
---
id: aff0395860f5d3034dc0bfc9
-title: Telephone Number Validator
+title: مدقق الأرقام الهواتف
challengeType: 5
forumTopicId: 16090
dashedName: telephone-number-validator
diff --git a/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md b/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md
index 92c363d3479..d113b307ab5 100644
--- a/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md
+++ b/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md
@@ -1,6 +1,6 @@
---
id: 587d7dbc367417b2b2512bae
-title: أنشئ ألة الطبول
+title: أنشئ آلة الطبول
challengeType: 3
forumTopicId: 301370
dashedName: build-a-drum-machine
diff --git a/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md b/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md
index 97c68f2113b..119c29cdf6c 100644
--- a/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md
+++ b/curriculum/challenges/arabic/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md
@@ -1,6 +1,6 @@
---
id: bd7158d8c442eddfaeb5bd17
-title: أنشئ حاسبة باستخدام JavaScript
+title: بناء آلة حاسبة باستخدام JavaScript
challengeType: 3
forumTopicId: 301371
dashedName: build-a-javascript-calculator
diff --git a/curriculum/challenges/arabic/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/arabic/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
index 44477e239cf..a262400c9f6 100644
--- a/curriculum/challenges/arabic/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
+++ b/curriculum/challenges/arabic/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
@@ -8,25 +8,25 @@ dashedName: timestamp-microservice
# --description--
-Build a full stack JavaScript app that is functionally similar to this: https://timestamp-microservice.freecodecamp.rocks. Working on this project will involve you writing your code using one of the following methods:
+Build a full stack JavaScript app that is functionally similar to this: https://timestamp-microservice.freecodecamp.rocks. سوف يقوم يلزمك العمل على هذا المشروع بكتابة كود باستخدام إحدى الطرق التالية:
-- Clone this GitHub repo and complete your project locally.
-- Use our Replit starter project to complete your project.
-- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo.
+- أستنسخ هذا مستودع من GitHub واكمل مشروعك محلياً.
+- استخدم مشروعنا المبدئي في Replit لإكمال مشروعك.
+- استخدم أي منشئ لموقع لإكمال المشروع. تأكد من دمج جميع الملفات من مستودعنا في GitHub في مشروعك.
-If you use Replit, follow these steps to set up the project:
+إذا كنت تستخدم Replit، اتبع هذه الخطوات لإعداد المشروع:
-- Start by importing the project on Replit.
-- Next, you will see a `.replit` window.
-- Select `Use run command` and click the `Done` button.
+- ابدأ باستيراد (import) المشروع على Replit.
+- بعد ذلك، سترى نافذة `.replit`.
+- اختار `Use run command` وانقر على زر `Done`.
-When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+When you are done, make sure a working demo of your project is hosted somewhere public. ثم أرسل عنوان (URL) إليه في خانة "رابط الحل". وإن أردت تستطيع أيضًا إرسال رابط لكود المصدر لمشروعك في الخانة "رابط Github".
-**Note:** Time zones conversion is not a purpose of this project, so assume all sent valid dates will be parsed with `new Date()` as GMT dates.
+**ملاحظة:** ليس الغرض من هذا المشروع تحويل المناطق الزمنية، لذلك افترض إن جميع التواريخ الصحيحة المرسلة ستحلل بواسطة `new Date()` كتواريخ GMT.
# --hints--
-You should provide your own project, not the example URL.
+يجب عليك تقديم URL لمشروعك، وليس عنوان المثال.
```js
(getUserInput) => {
@@ -36,7 +36,7 @@ You should provide your own project, not the example URL.
};
```
-A request to `/api/:date?` with a valid date should return a JSON object with a `unix` key that is a Unix timestamp of the input date in milliseconds (as type Number)
+يجب أن ينتج كائن JSON عند طلب `/api/:date?` التاريخ الصحيح بهوية (key) المسمى `unix` الذي يكون طابع زمني Unix من تاريخ المدخل بالمللي ثانية (كرقم)
```js
(getUserInput) =>
@@ -54,7 +54,7 @@ A request to `/api/:date?` with a valid date should return a JSON object with a
);
```
-A request to `/api/:date?` with a valid date should return a JSON object with a `utc` key that is a string of the input date in the format: `Thu, 01 Jan 1970 00:00:00 GMT`
+يجب أن ينتج عند كائن JSON طلب `/api/:date?` مع تاريخ صحيح مع هوية `utc` وتكون قيمته مقطع نصي من تاريخ المدخل. وينسق مثل: `Thu, 01 Jan 1970 00:00:00 GMT`
```js
(getUserInput) =>
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md b/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md
index 8afbb9c3eba..72ec9a0ed1c 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md
@@ -8,7 +8,7 @@ dashedName: build-a-survey-form
# --description--
-**Objective:** كم ببناء تطبيق يشبه وظيفيا إلي https://survey-form.freecodecamp.rocks
+**Objective:** أنشئ تطبيق يشبه وظيفيا إلي https://survey-form.freecodecamp.rocks
**المطلبيات:**
@@ -259,7 +259,7 @@ const els = document.querySelectorAll('#dropdown option:not([disabled])')
assert(els.length >= 2)
```
-`#dropdown` الخاص بك يجب أن يكون تابعا لـ `#survey-form`.
+يجب أن يكون `#dropdown` الخاص بك فرع من `#survey-form`.
```js
const el = document.querySelector('#survey-form #dropdown')
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md b/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md
index 51302c37760..b5617bd6a75 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md
@@ -1,6 +1,6 @@
---
id: 587d78b0367417b2b2512b05
-title: أنشئ صفحة التوثيق التقني
+title: أنشئ صفحة التوثيق التقنية
challengeType: 14
forumTopicId: 301146
dashedName: build-a-technical-documentation-page
@@ -8,11 +8,11 @@ dashedName: build-a-technical-documentation-page
# --description--
-**Objective:** قم ببناء تطبيق يشبه وظيفيا إلى https://technical-documentation-page.freecodecamp.rocks
+**Objective:** أنشئ تطبيق يشبه وظيفيا إلى https://technical-documentation-page.freecodecamp.rocks
**المتطلبات:**
-1. يمكنك مشاهدة عنصر `main` مع `id="main-doc"`، والذي يحتوي على المحتوى الرئيسي للصفحة (الوثائق التقنية)
+1. يمكنك مشاهدة عنصر `main` مع `id="main-doc"`، الذي يحتوي على المحتوى الرئيسي للصفحة (الوثائق التقنية)
1. ضمن عنصر `#main-doc` ، يمكنك رؤية عدة عناصر `section`، كل منها مع class بقيمة `main-section`. وينبغي أن يكون هناك خمسة على الأقل
1. العنصر الأول في كل `.main-section` يجب أن يكون عنصر `header`، والذي يحتوي على نص يصف موضوع ذلك القسم.
1. كل عنصر من عناصر `section` مع class بقيمة `main-section` يجب أن يكون لديه `id` يتوافق مع نص كل `header` موجود داخله. يجب استبدال أي مسافات بتسطير سفلي (underscore) (على سبيل المثال القسم الذي يحتوي على header "JavaScript and Java" يجب أن يكون لديه `id="JavaScript_and_Java"`)
@@ -203,7 +203,7 @@ const remainder = headerText.filter(str => linkText.indexOf(str) === -1)
assert(headerText.length > 0 && headerText.length > 0 && remainder.length === 0)
```
-يجب أن يكون لكل `.nav-link` سمة `href` التي تربط مع `.main-section` (على سبيل المثال ، إذا نقرت على العنصر `.nav-link` الذي يحتوي على النص "Hello world" ، تنتقل الصفحة إلى عنصر `section` بهذا الـ id).
+يجب أن يكون لكل `.nav-link` سمة `href` التي تربط مع `.main-section` (على سبيل المثال، إذا نقرت على العنصر `.nav-link` الذي يحتوي على النص "Hello world"، تنتقل الصفحة إلى عنصر `section` بهذا المعرف (id)).
```js
const hrefValues = Array.from(document.querySelectorAll('.nav-link')).map(el => el.getAttribute('href'))
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md b/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md
index 25abb4bc0f0..7fdd0c7fad6 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md
@@ -12,8 +12,8 @@ dashedName: build-a-tribute-page
**المتطلبات:**
-1. يجب أن يكون لصفحة الثناء الخاصة بك عنصر `main` مع `id` بقيمة `main`، والذي يحتوي على جميع العناصر الأخرى
-1. يجب أن ترى عنصرا مع `id` بقيمة `title`، الذي يحتوي على string (اي نص) ،يصف موضوع صفحة الثناء (مثل "الدكتور نورمان بورلاوغ")
+1. يجب أن يكون لصفحتك الثناء عنصر `main` مع `id` بقيمة `main`، الذي يحتوي على جميع العناصر الأخرى
+1. يجب أن ترى عنصرا مع `id` بقيمة `title`، الذي يحتوي على مقطع نصي (string)، يصف موضوع صفحة الثناء (مثل "الدكتور نورمان بورلاوغ")
1. يجب أن ترى إما عنصر `figure` أو `div` مع `id` بقيمة `img-div`
1. داخل عنصر `#img-div` يمكنك رؤية عنصر `img` مع `id="image"`
1. داخل عنصر `#img-div` ، يجب أن ترى عنصرا مع `id="img-caption"` يحتوي على محتوى نصي يصف الصورة المعروضة في `#img-div`
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index 988069c0407..e08ae4dbe23 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ dashedName: step-23
يجب عليك استخدام خاصية `transform` لدوران العنصر.
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
يجب أعطاء منقي `.back-mountain` خاصية `transform` بقيمة `--fcc-expected--`, ولكن وجدت بقيمة `--fcc-actual--`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
يجب عليك إعطاء عنصر `.back-mountain` خاصية `left`.
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index e876bcf81c9..671517feff1 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ dashedName: step-84
يجب عليك إعطاء `.foot.left` خاصية `transform` بقيمة `rotate(80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
يجب عليك إعطاء `.foot.right` خاصية `transform` بقيمة `rotate(-80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index 93b822cb7a8..1aa5ab966c2 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ dashedName: step-91
يجب عليك إعطاء `.arm.left` خاصية `transform` بقيمة `rotate(130deg) scaleX(-1)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index 35e8dddb42a..6f050be3ac1 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ dashedName: step-92
يجب عليك إعطاء `.arm.right` خاصية `transform` بقيمة `rotate(-45deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index b99f65941ef..6cd75f86d08 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ dashedName: step-97
يجب عليك إعطاء `10%` إلى خاصية `transform` بقيمة `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 6b143b466c9..80143e773e3 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ dashedName: step-98
يجب عليك إعطاء أحداثية `20%` خاصية `transform` بقيمة `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index 2d8f943f309..f06e0e747ce 100644
--- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ dashedName: step-99
يجب عليك إعطاء نقطة الطريق `30%` خاصية `transform` بقيمة `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
يجب عليك إعطاء نقطة الطريق `40%` خاصية `transform` بقيمة `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-caesars-cipher-project/caesars-cipher.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-caesars-cipher-project/caesars-cipher.md
index 46c493ad260..9994a599779 100644
--- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-caesars-cipher-project/caesars-cipher.md
+++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-caesars-cipher-project/caesars-cipher.md
@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244e2
-title: Build a Caesars Cipher
+title: بناء شفرة قيصر
challengeType: 5
forumTopicId: 16003
dashedName: build-a-caesars-cipher
diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md
index 4653f6358b1..636ef9a1212 100644
--- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md
+++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md
@@ -1,6 +1,6 @@
---
id: aa2e6f85cab2ab736c9a9b24
-title: Build A Cash Register
+title: أنشئ مكنة لتسجيل النقود
challengeType: 5
forumTopicId: 16012
dashedName: build-a-cash-register
@@ -8,11 +8,11 @@ dashedName: build-a-cash-register
# --description--
-Design a cash register drawer function `checkCashRegister()` that accepts purchase price as the first argument (`price`), payment as the second argument (`cash`), and cash-in-drawer (`cid`) as the third argument.
+صمم وظيفة درج لتسجيل النقود `checkCashRegister()` التي تقبل سعر الشراء كمعطى أولى (`price`)، و الدفع كمعطى ثاني (`cash`)، و cash-in-drawer أي النقود في الدرج (`cid`) كمعطى ثالث.
`cid` is a 2D array listing available currency.
-The `checkCashRegister()` function should always return an object with a `status` key and a `change` key.
+يجب أن تقوم وظيفة `checkCashRegister()` دائما بإنتاج كائن يحتوي على الهوية (key) المسمى `status` و الهوية `change`.
Return `{status: "INSUFFICIENT_FUNDS", change: []}` if cash-in-drawer is less than the change due, or if you cannot return the exact change.
@@ -40,7 +40,7 @@ See below for an example of a cash-in-drawer array:
# --hints--
-`checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` should return an object.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` كائن.
```js
assert.deepEqual(
@@ -61,7 +61,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` should return `{status: "OPEN", change: [["QUARTER", 0.5]]}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` كائن `{status: "OPEN", change: [["QUARTER", 0.5]]}`.
```js
assert.deepEqual(
@@ -80,7 +80,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` should return `{status: "OPEN", change: [["TWENTY", 60], ["TEN", 20], ["FIVE", 15], ["ONE", 1], ["QUARTER", 0.5], ["DIME", 0.2], ["PENNY", 0.04]]}`.
+يجب أن ينتج `checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])` كائن `{status: "OPEN", change: [["TWENTY", 60], ["TEN", 20], ["FIVE", 15], ["ONE", 1], ["QUARTER", 0.5], ["DIME", 0.2], ["PENNY", 0.04]]}`.
```js
assert.deepEqual(
@@ -110,7 +110,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` should return `{status: "INSUFFICIENT_FUNDS", change: []}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` كائن `{status: "INSUFFICIENT_FUNDS", change: []}`.
```js
assert.deepEqual(
@@ -129,7 +129,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 1], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` should return `{status: "INSUFFICIENT_FUNDS", change: []}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 1], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` كائن `{status: "INSUFFICIENT_FUNDS", change: []}`.
```js
assert.deepEqual(
@@ -148,7 +148,7 @@ assert.deepEqual(
);
```
-`checkCashRegister(19.5, 20, [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` should return `{status: "CLOSED", change: [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]]}`.
+يجب أن ينتج `checkCashRegister(19.5, 20, [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]])` كائن `{status: "CLOSED", change: [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]]}`.
```js
assert.deepEqual(
diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md
index 5f7ca896a8c..536578941f6 100644
--- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md
+++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md
@@ -1,6 +1,6 @@
---
id: aaa48de84e1ecc7c742e1124
-title: Build A Palindrome Checker
+title: أنشئ مدقق لمعاكس المقطع النصي
challengeType: 5
forumTopicId: 16004
dashedName: build-a-palindrome-checker
diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md
index 06f0c991879..a5d065b3da7 100644
--- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md
+++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md
@@ -1,6 +1,6 @@
---
id: a7f4d8f2483413a6ce226cac
-title: Build A Roman Numeral Converter
+title: أنشئ محول للأرقام الرومانية
challengeType: 5
forumTopicId: 16044
dashedName: build-a-roman-numeral-converter
diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md
index 282f77b4be9..5e651f8faaa 100644
--- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md
+++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md
@@ -1,6 +1,6 @@
---
id: aff0395860f5d3034dc0bfc9
-title: Build a Telephone Number Validator
+title: بناء مدقق الأرقام الهواتف
challengeType: 5
forumTopicId: 16090
dashedName: build-a-telephone-number-validator
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index faf4e7a44c5..8a45830bc07 100644
--- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ dashedName: step-23
應該使用 `transform` 屬性來旋轉元素。
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
應該設置 `.back-mountain` 的 `transform` 值爲 `--fcc-expected--`,而不是 `--fcc-actual--`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
`.back-mountain` 應該有一個 `left` 屬性。
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index b245962fa7b..72666055d05 100644
--- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ dashedName: step-84
應該將 `.foot.left` 的 `transform` 設置爲 `rotate(80deg)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
應該將 `.foot.right` 的 `transform` 設置爲 `rotate(-80deg)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index d93cf1767f9..b00761013a2 100644
--- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ dashedName: step-91
你應該將 `.arm.left` 的 `transform` 設置爲 `rotate(130deg) scaleX(-1)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index eb8e358766b..5a47b63079c 100644
--- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ dashedName: step-92
你應該將 `.arm.right` 的 `transform` 設置爲 `rotate(-45deg)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index f05ebbeee8c..efdcb998ebc 100644
--- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ dashedName: step-97
應該在 `10%` 位置關鍵幀設置 `transform` 爲 `rotate(110deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 932ca1d8e16..9d3a0860f68 100644
--- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ dashedName: step-98
應該在 `20%` 位置關鍵幀設置 `transform` 爲 `rotate(130deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index 41523654b36..0ad9d2d95b3 100644
--- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ dashedName: step-99
應該在 `30%` 位置關鍵幀設置 `transform` 爲 `rotate(110deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
應該在 `40%` 位置關鍵幀設置 `transform` 爲 `rotate(130deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index 1e76ec7bf30..4515811d5ab 100644
--- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ dashedName: step-23
应该使用 `transform` 属性来旋转元素。
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
应该设置 `.back-mountain` 的 `transform` 值为 `--fcc-expected--`,而不是 `--fcc-actual--`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
`.back-mountain` 应该有一个 `left` 属性。
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index 7c0380948ba..8d6cb1547e3 100644
--- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ dashedName: step-84
应该将 `.foot.left` 的 `transform` 设置为 `rotate(80deg)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
应该将 `.foot.right` 的 `transform` 设置为 `rotate(-80deg)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index 4afa64f2a51..c8e89fb2bc5 100644
--- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ dashedName: step-91
你应该将 `.arm.left` 的 `transform` 设置为 `rotate(130deg) scaleX(-1)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index 10249a53bc1..7b800b5a56a 100644
--- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ dashedName: step-92
你应该将 `.arm.right` 的 `transform` 设置为 `rotate(-45deg)`。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index 4776ed336fb..fdc31910b92 100644
--- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ dashedName: step-97
应该在 `10%` 位置关键帧设置 `transform` 为 `rotate(110deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 971c99a5cd3..5d93ee268e8 100644
--- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ dashedName: step-98
应该在 `20%` 位置关键帧设置 `transform` 为 `rotate(130deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index 398d3f40471..22d1dcb034e 100644
--- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ dashedName: step-99
应该在 `30%` 位置关键帧设置 `transform` 为 `rotate(110deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
应该在 `40%` 位置关键帧设置 `transform` 为 `rotate(130deg) scaleX(-1)`。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index a125456aeb7..c2453528839 100644
--- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ Gire el elemento `.back-mountain` por `45deg` en el sentido de las agujas del re
Debe utilizar la propiedad `transform` para girar el elemento.
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
Debe darle a `.back-mountain` un `transform` de `--fcc-expected--`, pero encontró `--fcc-actual--`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
Debe asignar a `.back-mountain` una propiedad `left`.
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index 0baa6c8e629..2e4c6ec908d 100644
--- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ Para que las patas del pingüino se vean más _penguiny_, gira el pie izquierdo
Debe dar a `.foot.left` un `transform` de `rotate(80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
Debe dar a `.foot.right` un `transform` de `rotate(-80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index 3304e3a5a4c..44e74bfcee3 100644
--- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ Para mantener el degradado lineal en el lado correcto del brazo izquierdo del pi
Debes darle a `.arm.left` una `transform` de `rotate(130deg) scaleX(-1)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index 6c4fbbb8b7f..ce7880cb917 100644
--- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ Gire el brazo derecho `45deg` en sentido contrario a las agujas del reloj.
Debes darle a `.arm.right` una `transform` de `rotate(-45deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index eb4cbb8dcd8..6b0a2aeb90c 100644
--- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ Dentro del primer punto de referencia, gire a `110deg` y mantenga la escala del
Debes darle al waypoint `10%` una `transform` de `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 3be58d6b25b..f81ea423609 100644
--- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ Dentro del segundo punto de referencia, gire a `130deg`, y conserve la escala de
Debe dar al punto de referencia `20%` un `transform` de `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index d52ff1e4020..cdb9cb33e1f 100644
--- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ Para el tercer y cuarto waypoints, repita el patrón `transform` una vez más.
Debe dar al punto de referencia `30%` un `transform` de `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
Debe dar al punto de referencia `40%` un `transform` de `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index a07fa582a50..cdd348db03a 100644
--- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ Rotate the `.back-mountain` element by `45deg` clockwise. Then, give it a `left`
You should use the `transform` property to rotate the element.
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
You should give `.back-mountain` a `transform` of `--fcc-expected--`, but found `--fcc-actual--`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
You should give `.back-mountain` a `left` property.
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index 489c0b1e673..003b9709c0e 100644
--- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ To make the penguin's feet look more _penguiny_, rotate the left foot by `80deg`
You should give `.foot.left` a `transform` of `rotate(80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
You should give `.foot.right` a `transform` of `rotate(-80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index 5d6a74585f8..6ae5fb05350 100644
--- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ To keep the linear gradient on the correct side of the penguin's left arm, first
You should give `.arm.left` a `transform` of `rotate(130deg) scaleX(-1)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index 1a3b8e3cf6b..7b8d308ed34 100644
--- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ Rotate the right arm by `45deg` counterclockwise.
You should give `.arm.right` a `transform` of `rotate(-45deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index e69b8ec5ec3..74235426b56 100644
--- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ Within the first waypoint, rotate to `110deg`, and retain the scaling of the lef
You should give the `10%` waypoint a `transform` of `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 8616f720202..ac97b33ea2a 100644
--- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ Within the second waypoint, rotate to `130deg`, and retain the scaling of the le
You should give the `20%` waypoint a `transform` of `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index 5a7f861b8cb..fd1c9193d00 100644
--- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ For the third and fourth waypoints, repeat the `transform` pattern once more.
You should give the `30%` waypoint a `transform` of `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
You should give the `40%` waypoint a `transform` of `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
index aa77222e949..98624dd61ea 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
index 482c1a185f8..751fa4baa98 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md
index ae5d06f79b5..5082671ffc6 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --hints--
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
index b53faabf4b9..ed23ac4bfa4 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
**Nota:** la conversione tra fusi orari non è un proposito di questo progetto, quindi assumi che tutte le date valide saranno passate a `new Date()` come date GMT.
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
index 73a7913992a..0e6057d67bf 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md b/curriculum/challenges/italian/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md
index 343983f3533..b88ae86d6ae 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione.
Durante il processo di sviluppo, è importante essere in grado di controllare cosa sta succedendo nel tuo codice.
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md b/curriculum/challenges/italian/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md
index e5be0e50a5f..9fad7f937e9 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione.
Il file `package.json` è il centro di qualsiasi progetto Node.js o pacchetto npm. Memorizza informazioni sul tuo progetto, in modo simile a come la sezione <head> di un documento HTML descrive il contenuto di una pagina web. Consiste di un singolo oggetto JSON dove le informazioni sono memorizzate in coppie chiave-valore. Ci sono solo due campi obbligatori; "name" e "version", ma è buona pratica fornire ulteriori informazioni sul tuo progetto che potrebbero essere utili per futuri utenti o manutentori.
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md b/curriculum/challenges/italian/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md
index 9e7326ffaa8..4b71ac45be3 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione.
In questa sfida, imposterai un database MongoDB Atlas e importerai i pacchetti necessari per connetterti ad esso.
diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md
index 240fc8ef5fe..5b901790002 100644
--- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md
+++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione.
Un modello di motore ti permette di utilizzare file di template statici (come quelli scritti in *Pug*) nella tua app. Al runtime, il template engine sostituisce le variabili in un file modello con valori effettivi che possono essere forniti dal tuo server. Quindi trasforma il template in un file HTML statico che viene inviato al client. Questo approccio facilita la progettazione di una pagina HTML e permette di visualizzare le variabili sulla pagina senza dover effettuare una chiamata API dal client.
diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md
index e8f6ebff1d1..32b54e58564 100644
--- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md
+++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione.
# --instructions--
diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/american-british-translator.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/american-british-translator.md
index 4c9a1f5dc01..a0e6ab8350f 100644
--- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/american-british-translator.md
+++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/american-british-translator.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/issue-tracker.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/issue-tracker.md
index cc354044ad0..7ba1e46c37c 100644
--- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/issue-tracker.md
+++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/issue-tracker.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md
index 001ee91ff1a..0394f29a039 100644
--- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md
+++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/personal-library.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/personal-library.md
index 4a0736f4dd8..32a65e83608 100644
--- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/personal-library.md
+++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/personal-library.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
index 78694327594..b71706cd32a 100644
--- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
+++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md b/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md
index b6ee42a86c9..9f8702bb87d 100644
--- a/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md
+++ b/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md
@@ -22,7 +22,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md b/curriculum/challenges/italian/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md
index 0da24590171..fdfa3b6d26d 100644
--- a/curriculum/challenges/italian/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md
+++ b/curriculum/challenges/italian/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/09-information-security/information-security-projects/stock-price-checker.md b/curriculum/challenges/italian/09-information-security/information-security-projects/stock-price-checker.md
index 5a23c20e4bd..ddabdfaf3f7 100644
--- a/curriculum/challenges/italian/09-information-security/information-security-projects/stock-price-checker.md
+++ b/curriculum/challenges/italian/09-information-security/information-security-projects/stock-price-checker.md
@@ -24,7 +24,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --instructions--
diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md
index 0b5f5b070a0..23946424ebb 100644
--- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md
+++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md
@@ -20,7 +20,7 @@ Se utilizzi Replit, segui questi passaggi per impostare il progetto:
- Poi vedrai una finestra `.replit`.
- Seleziona `Use run command` e clicca sul pulsante `Done`.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione.
Helmet ti aiuta a proteggere le tue app Express impostando varie intestazioni HTTP.
diff --git a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md
index e5f5362948c..463a99707ea 100644
--- a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md
+++ b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md
@@ -22,7 +22,7 @@ Ecco le specifiche user story da implementare per questo progetto:
**Suggerimento:** Prova a usare la API di Yelp per trovare locali nella città in cui il tuo utente cerca. Se usi l'API di Yelp, assicurati di menzionarla nella tua app.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --solutions--
diff --git a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-voting-app.md b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-voting-app.md
index 389c68e8cc0..d75572eb29b 100644
--- a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-voting-app.md
+++ b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-a-voting-app.md
@@ -28,7 +28,7 @@ Ecco le specifiche user story da implementare per questo progetto:
**User Story:** Come utente autenticato, se non ti piacciono le opzioni su un sondaggio, puoi creare una nuova opzione.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --solutions--
diff --git a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md
index d38af17c0e2..2b904adea2c 100644
--- a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md
+++ b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md
@@ -18,7 +18,7 @@ Ecco le specifiche user story da implementare per questo progetto:
**User Story:** Puoi ottenere una lista delle stringhe usate più di recente per la ricerca.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --solutions--
diff --git a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md
index 9e33e7dac54..a4c791635ef 100644
--- a/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md
+++ b/curriculum/challenges/italian/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md
@@ -20,7 +20,7 @@ Ecco le specifiche user story da implementare per questo progetto:
**User Story:** Puoi vedere cambiamenti in tempo reale quando altri utenti aggiungono o rimuovono titoli. Per questo dovrai usare Web Socket.
-Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo Link alla soluzione. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo Link GitHub.
# --solutions--
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index 853cfd11a38..33d2021ab48 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ Ruota l'elemento `.back-mountain` di `45deg` in senso orario. Quindi, dagli una
Dovresti usare la proprietà `transform` per ruotare l'elemento.
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
Dovresti dare a `.back-mountain` una proprietà `transform` con il valore `--fcc-expected--` invece di `--fcc-actual--`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
Dovresti dare all'elemento `.back-mountain` una proprietà `left`.
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index 55fc60dd2d3..429e0b6cd3b 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ Per rendere i piedi del pinguino più _a forma di pinguino_, ruota il piede sini
Dovresti dare a `.foot.left` una proprietà `transform` con il valore `rotate(80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
Dovresti dare a `.foot.right` una proprietà `transform` con il valore `rotate(-80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index e0c539edffc..f649b0b6c34 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ Per mantenere la sfumatura lineare sul lato corretto del braccio sinistro del pi
Dovresti dare a `.arm.left` un valore `transform` di `rotate(130deg) scaleX(-1)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index f9e628d8c25..5ed5e7ca49a 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ Ruota il braccio destro di `45deg` in senso antiorario.
Dovresti dare a `.arm.right` un valore `transform` di `rotate(-45deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index 4c00199042b..1ad5dd9c9b7 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ All'interno del primo waypoint, ruota di `110deg` e mantieni la scala del bracci
Dovresti dare al waypoint `10%` una proprietà `transform` con il valore `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 42cf1a6ac46..e27279f0cfe 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ All'interno del secondo waypoint, ruota di `130deg` e mantieni la scala del brac
Dovresti dare al waypoint `20%` una proprietà `transform` di `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index 72c372634f0..8937eed9106 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ Per il terzo e il quarto waypoint, ripeti ancora una volta il pattern `transform
Dovresti assegnare al waypoint `30%` una proprietà `transform` con il valore `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
Dovresti dare al waypoint `40%` una proprietà `transform` con il valore `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/japanese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md b/curriculum/challenges/japanese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
index d6b5238f4e5..dc89d55d37a 100644
--- a/curriculum/challenges/japanese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
+++ b/curriculum/challenges/japanese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
@@ -20,7 +20,7 @@ Replit を使用する場合は、下記の手順でプロジェクトをセッ
- すると、`.replit` ファイルのウィンドウが表示されます。
- `Use run command` を選択して `Done` ボタンをクリックします。
-完了したら、プロジェクトの動作デモをどこか公開の場にホストしてください。 Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+完了したら、プロジェクトの動作デモをどこか公開の場にホストしてください。 そして「回答のリンク」欄に、デモの URL を提出してください。 必要に応じて、プロジェクトのソースコードへのリンクも「GitHub のリンク」欄に提出してください。
# --instructions--
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index e1d53436b37..333d40644cf 100644
--- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ dashedName: step-23
`transform` プロパティを使用して要素を回転させる必要があります。
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
`.back-mountain` には `transform` の `--fcc-expected--` を設定する必要がありますが、`--fcc-actual--` が設定されています。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
`.back-mountain` には `left` プロパティが必要です。
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index 4b240ab1c36..bdf54582a9f 100644
--- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ dashedName: step-84
`.foot.left` の `transform` を `rotate(80deg)` に設定する必要があります。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
`.foot.right` の `transform` を `rotate(-80deg)` に設定する必要があります。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index f5500147bf2..a75867bb9e3 100644
--- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ dashedName: step-91
`.arm.left` の `transform` を `rotate(130deg) scaleX(-1)` に設定する必要があります。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index ee9d1f634c4..0124ea93076 100644
--- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ dashedName: step-92
`.arm.right` の `transform` を `rotate(-45deg)` に設定する必要があります。
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index c3a63ec8771..67506cae0c9 100644
--- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ dashedName: step-97
`10%` 経由点の `transform` を `rotate(110deg) scaleX(-1)` に設定する必要があります。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 611404ac59e..7cc3d0fdc3e 100644
--- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ dashedName: step-98
`20%` 経由点の `transform` を `rotate(130deg) scaleX(-1)` に設定する必要があります。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index e1dcbd8c204..6faa1f95f88 100644
--- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ dashedName: step-99
`30%` 経由点の `transform` を `rotate(110deg) scaleX(-1)` に設定する必要があります。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
`40%` 経由点の `transform` を `rotate(130deg) scaleX(-1)` に設定する必要があります。
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
index b7898a795bb..00b30d7b35a 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
index 12c72842262..8ba20da94cb 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/file-metadata-microservice.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md
index 0b54aecfae0..8127a93e2f3 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/request-header-parser-microservice.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --hints--
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
index 1a965a8eeb4..5953924c5bc 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
**Observação:** a conversão de fusos horários não é um dos objetivos deste projeto, então suponha que todas as datas válidas enviadas serão analisadas com `new Date()` como datas GMT.
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
index 61800777366..ef6a5e9a855 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md
index 5ba5ad8386f..6839ea78e05 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/basic-node-and-express/meet-the-node-console.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link.
Durante o processo de desenvolvimento, é importante poder verificar o que está acontecendo no código.
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md
index 0637a5c096a..92e2460b151 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link.
O arquivo `package.json` é o centro de qualquer projeto do Node.js ou pacote do npm. Ele armazena informações sobre seu projeto, de modo semelhante ao que a seção <head> de um documento HTML usa para descrever o conteúdo de uma página da web. Ele consiste em um único objeto JSON, onde as informações são armazenadas em pares de chave-valor. Existem apenas dois campos obrigatórios: "name" e "version". Porém, é uma boa prática fornecer informações adicionais sobre o seu projeto que possam ser úteis para futuros usuários ou mantenedores.
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md
index ca8962280ca..58fb402db3f 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link.
Neste desafio, você vai configurar um banco de dados do MongoDB Atlas e importar os pacotes necessários para se conectar a ele.
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md b/curriculum/challenges/portuguese/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md
index 3aacf668d5b..a9930dbc6d1 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link.
Um mecanismo de templates (template engine) permite o uso de arquivos de modelo estáticos (como aqueles escritos no *Pug*) na aplicação. Em tempo de execução, o mecanismo de modelos substitui variáveis em um arquivo de modelo por valores reais que podem ser fornecidos pelo servidor. Em seguida, ele transforma o modelo em um arquivo HTML estático, que é enviado ao client. Esta abordagem torna mais fácil projetar uma página HTML e permite exibir variáveis na página sem precisar fazer uma chamada de API do client.
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md
index b2f0a302cdc..ea1b26a77b1 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/american-british-translator.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/american-british-translator.md
index 3c7f2e4b658..f1a623b23b3 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/american-british-translator.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/american-british-translator.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/issue-tracker.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/issue-tracker.md
index 5f658c75c8b..a38406f4657 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/issue-tracker.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/issue-tracker.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md
index 15f239ac134..8ff020760ae 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/personal-library.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/personal-library.md
index d8f9f960572..07f75cfddf7 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/personal-library.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/personal-library.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
index d68678e5f57..f8e050923a0 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md
index da8fbe6e0e3..7ab88c48c7a 100644
--- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md
+++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md
@@ -22,7 +22,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md
index a8d691b45c5..864849149c1 100644
--- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md
+++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md
index 098ec3d43d8..50e486dd329 100644
--- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md
+++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md
@@ -24,7 +24,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --instructions--
diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md
index fff1d03f054..4fbb52a8083 100644
--- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md
+++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md
@@ -20,7 +20,7 @@ Se você usa o Replit, siga estas etapas para configurar o projeto:
- Em seguida, você verá uma janela `.replit`.
- Selecione `Use run command` e clique no botão `Done`.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link.
O Helmet ajuda você a proteger seus aplicativos do Express, definindo vários cabeçalhos HTTP.
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md
index a875a875cc7..5d1857d3a22 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-nightlife-coordination-app.md
@@ -22,7 +22,7 @@ Aqui estão as histórias de usuário que você deve implementar para este proje
**Dica:** tente usar a API Yelp para encontrar espaços nas cidades que seus usuários procuram. Se você usar a API da Yelp, certifique-se de mencionar isso na aplicação.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --solutions--
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-voting-app.md b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-voting-app.md
index 7b4be81c97f..4ee04125131 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-voting-app.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-a-voting-app.md
@@ -28,7 +28,7 @@ Aqui estão as histórias de usuário que você deve implementar para este proje
**História de usuário:** Como um usuário autenticado, se você não gostar das opções em uma enquete, você pode criar uma nova opção.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --solutions--
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md
index 3cd372bee24..e6f3a742ad6 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/build-an-image-search-abstraction-layer.md
@@ -18,7 +18,7 @@ Aqui estão as histórias de usuário que você deve implementar para este proje
**História de usuário:** você pode obter uma lista das strings de pesquisa enviadas mais recentemente.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --solutions--
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md
index 88c9c40d7ef..d8ee0f1b243 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/take-home-projects/chart-the-stock-market.md
@@ -20,7 +20,7 @@ Aqui estão as histórias de usuário que você deve implementar para este proje
**História de usuário:** você pode ver alterações em tempo real quando qualquer outro usuário adicionar ou remover uma ação. Para isso, você precisará usar Web Sockets.
-Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Then submit the URL to it in the Solution Link field. Optionally, also submit a link to your project's source code in the GitHub Link field.
+Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para a solução no campo Solution Link. Como opção, envie também um link para o código-fonte do projeto no campo GitHub Link.
# --solutions--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index 98335941962..6d7aa7b3785 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ Gire o elemento `.back-mountain` `45deg` no sentido horário. Então, dê a prop
Você deve usar a propriedade `transform` para girar o elemento.
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
Você deve dar aos elementos `.back-mountain` um `transform` de `--fcc-expected--`, mas foi encontrado `--fcc-actual--`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
Você deve dar a `.back-mountain` uma propriedade `left`.
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index b30844fbc64..a0b846653b0 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ Para fazer com que os pés do pinguim pareçam mais _como os de um pinguim_, gir
Você deve dar ao `.foot.left` uma `transform` de `rotate(80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
Você deve dar ao `.foot.right` uma `transform` de `rotate(-80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index ff9ba5fbcf9..fa10052d8df 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ Para manter o gradiente linear sobre o lado correto do braço esquerdo do pingui
Você deve dar a `.arm.left` uma `transform` de `rotate(130deg) scaleX(-1)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index bc7310431da..9934a6ecfdd 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ Gire o braço direito `45deg` no sentido anti-horário.
Você deve dar ao `.arm.right` uma `transform` de `rotate(-45deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index d6fdb0028ab..3f18206f857 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ No primeiro ponto de divisão, gire `110deg` e mantenha o dimensionamento do bra
Você deve dar ao ponto de divisão `10%` um `transform` de `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index b7d8e1cc86b..6e03cebb1e1 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ No segundo ponto de divisão, gire `130deg` e mantenha o dimensionamento do bra
Você deve dar ao ponto de divisão `20%` um `transform` de `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index abc299a7cde..da9ec290be6 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ Para o terceiro e quarto pontos de divisão, repita o padrão `transform` mais u
Você deve dar ao ponto de divisão `30%` um `transform` de `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
Você deve dar ao ponto de divisão `40%` um `transform` de `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md
index 1d9ae2c94be..1da4fdd1a16 100644
--- a/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md
+++ b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md
@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244ad
-title: Зменшення числа з JavaScript
+title: Зменшення числа за допомогою JavaScript
challengeType: 1
videoUrl: 'https://scrimba.com/c/cM2KeS2'
forumTopicId: 17558
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
index ef4a1506307..ed580c447a2 100644
--- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
+++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196d1ac33c68d27dcda5796.md
@@ -14,13 +14,25 @@ dashedName: step-23
Ви повинні використати властивість `transform`, щоб повернути елемент.
```js
-assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.notEmpty(backMountain?.transform);
+} else {
+ assert.notEmpty(backMountain?.rotate);
+}
```
Ви повинні надати `.back-mountain` властивість `transform` зі значенням `--fcc-expected--`, але знайдено `--fcc-actual--`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+const backMountain = new __helpers.CSSHelp(document).getStyle('.back-mountain');
+
+if (backMountain?.transform) {
+ assert.equal(backMountain?.transform, 'rotate(45deg)');
+} else {
+ assert.equal(backMountain?.rotate, '45deg');
+}
```
Ви повинні надати `.back-mountain` властивість `left`.
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
index 88518b710d2..a881c380478 100644
--- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
+++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d229b0e542520cd91c685.md
@@ -14,13 +14,25 @@ dashedName: step-84
Ви повинні надати `.foot.left` властивість `transform` зі значенням `rotate(80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+const leftFoot = new __helpers.CSSHelp(document).getStyle('.foot.left');
+
+if (leftFoot?.transform) {
+ assert.equal(leftFoot.getPropVal('transform', true), 'rotate(80deg)');
+} else {
+ assert.equal(leftFoot.getPropVal('rotate', true), '80deg');
+}
```
Ви повинні надати `.foot.right` властивість `transform` зі значенням `rotate(-80deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+const rightFoot = new __helpers.CSSHelp(document).getStyle('.foot.right');
+
+if (rightFoot?.transform) {
+ assert.equal(rightFoot.getPropVal('transform', true), 'rotate(-80deg)');
+} else {
+ assert.equal(rightFoot.getPropVal('rotate', true), '-80deg');
+}
```
# --seed--
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
index 327049b509e..713a9185058 100644
--- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
+++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2d4e80400325ff89664a.md
@@ -14,7 +14,14 @@ dashedName: step-91
Ви повинні надати `.arm.left` властивість `transform` зі значенням `rotate(130deg) scaleX(-1)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+const leftArm = new __helpers.CSSHelp(document).getStyle('.arm.left');
+
+if (leftArm?.rotate && leftArm?.transform) {
+ assert.equal(leftArm.getPropVal('rotate', true), '130deg');
+ assert.equal(leftArm.getPropVal('transform', true), 'scaleX(-1)');
+} else {
+ assert.equal(leftArm.getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
@@ -281,7 +288,6 @@ body {
top: 35%;
left: 5%;
transform-origin: top left;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
index 2a46a3eae2a..e62687fac23 100644
--- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
+++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2ebc81ba81271460850d.md
@@ -14,7 +14,13 @@ dashedName: step-92
Ви повинні надати `.arm.right` властивість `transform` зі значенням `rotate(-45deg)`.
```js
-assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+const rightArm = new __helpers.CSSHelp(document).getStyle('.arm.right');
+
+if (rightArm?.transform) {
+ assert.equal(rightArm?.getPropVal('transform', true), 'rotate(-45deg)');
+} else {
+ assert.equal(rightArm?.getPropVal('rotate', true), '-45deg');
+}
```
# --seed--
@@ -287,7 +293,6 @@ body {
.arm.right {
top: 0%;
right: -5%;
-
}
--fcc-editable-region--
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
index 5ceefa37b7e..77f6c3c74f2 100644
--- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
+++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d32c7fa21f32aaa91d499.md
@@ -14,7 +14,16 @@ dashedName: step-97
Ви повинні надати шляховій точці `10%` властивість `transform` зі значенням `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave10Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%');
+const rotateProp = wave10Percent?.style?.rotate?.replace(/\s+/g, '');
+const transformProp = wave10Percent?.style?.transform?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
index 841adb16ee2..0d73f646901 100644
--- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
+++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d333b738e3c2b5d58b095.md
@@ -14,7 +14,16 @@ dashedName: step-98
Ви повинні надати шляховій точці `20%` властивість `transform` зі значенням `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave20Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%');
+const transformProp = wave20Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave20Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
index f8a8acf41f3..4d70ea9aa62 100644
--- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
+++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d337765b9f02c10e93722.md
@@ -14,13 +14,31 @@ dashedName: step-99
Ви повинні надати шляховій точці `30%` властивість `transform` зі значенням `rotate(110deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+const wave30Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%');
+const transformProp = wave30Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave30Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '110deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(110deg)scaleX(-1)');
+}
```
Ви повинні надати шляховій точці `40%` властивість `transform` зі значенням `rotate(130deg) scaleX(-1)`.
```js
-assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+const wave40Percent = [...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%');
+const transformProp = wave40Percent?.style?.transform?.replace(/\s+/g, '');
+const rotateProp = wave40Percent?.style?.rotate?.replace(/\s+/g, '');
+
+if (rotateProp && transformProp) {
+ assert(rotateProp === '130deg');
+ assert(transformProp === 'scaleX(-1)');
+} else {
+ assert(transformProp === 'rotate(130deg)scaleX(-1)');
+}
```
# --seed--