From 31f5a520605a33ee34232f28a4524d9097ea5bac Mon Sep 17 00:00:00 2001 From: Joao Ramos Date: Wed, 7 Feb 2024 22:23:38 +0000 Subject: [PATCH 1/3] Added Service page --- src/app/ar/services/page.tsx | 5 +- src/app/services/page.tsx | 5 +- src/templates/Services.tsx | 223 ++++++++++++++++++++++++++++++++++ src/translation/services.json | 222 +++++++++++++++++++++++++++++++++ 4 files changed, 449 insertions(+), 6 deletions(-) create mode 100644 src/templates/Services.tsx create mode 100644 src/translation/services.json diff --git a/src/app/ar/services/page.tsx b/src/app/ar/services/page.tsx index 32b6d2c..dbce977 100644 --- a/src/app/ar/services/page.tsx +++ b/src/app/ar/services/page.tsx @@ -1,6 +1,5 @@ -import About from "@/templates/About"; -import ComingSoon from "@/templates/ComingSoon"; +import Services from "@/templates/Services"; export default function Page() { - return ; + return ; } diff --git a/src/app/services/page.tsx b/src/app/services/page.tsx index a98ba39..784872e 100644 --- a/src/app/services/page.tsx +++ b/src/app/services/page.tsx @@ -1,6 +1,5 @@ -import About from "@/templates/About"; -import ComingSoon from "@/templates/ComingSoon"; +import Services from "@/templates/Services"; export default function Page() { - return ; + return ; } diff --git a/src/templates/Services.tsx b/src/templates/Services.tsx new file mode 100644 index 0000000..38272e2 --- /dev/null +++ b/src/templates/Services.tsx @@ -0,0 +1,223 @@ +import Navbar from "@/components/Navbar"; +import clsx from "clsx"; +import Title from "@/components/Title"; +import { + BsBook, + BsBlockquoteLeft, + BsFillPencilFill, + BsMic, + BsSoundwave, + BsBookmarkStar, + BsCheck2Circle, + BsEarbuds, + BsFileBarGraph, + BsBank, +} from "react-icons/bs"; +import translation from "@/translation/services.json"; +import Footer from "@/components/Footer"; + +interface Props { + language: "en" | "ar"; +} + +interface SectionStruct { + id: string; + title: string; + description: string; + bullets: { + title: string; + values: string[]; + icon: any; + }[]; +} + +export default function About({ language }: Props) { + const struct = [ + { + id: "english_writing_evaluation", + title: translation.english_writing_evaluation.title[language], + description: translation.english_writing_evaluation.description[language], + bullets: [ + { + title: translation.english_writing_evaluation.evaluation[language], + values: + translation.english_writing_evaluation.evaluation_values[language], + icon: BsBlockquoteLeft, + }, + { + title: translation.english_writing_evaluation.acquire[language], + values: + translation.english_writing_evaluation.acquire_values[language], + icon: BsFillPencilFill, + }, + ], + }, + { + id: "speaking_practice_evaluation", + title: translation.speaking_practice_evaluation.title[language], + description: + translation.speaking_practice_evaluation.description[language], + bullets: [ + { + title: translation.speaking_practice_evaluation.evaluation[language], + values: + translation.speaking_practice_evaluation.evaluation_values[ + language + ], + icon: BsMic, + }, + { + title: translation.speaking_practice_evaluation.acquire[language], + values: + translation.speaking_practice_evaluation.acquire_values[language], + icon: BsBook, + }, + ], + }, + { + id: "reading_and_listening", + title: translation.reading_and_listening.title[language], + description: translation.reading_and_listening.description[language], + bullets: [ + { + title: translation.reading_and_listening.evaluation[language], + values: translation.reading_and_listening.evaluation_values[language], + icon: BsSoundwave, + }, + { + title: translation.reading_and_listening.acquire[language], + values: translation.reading_and_listening.acquire_values[language], + icon: BsBookmarkStar, + }, + ], + }, + { + id: "practice_tests", + title: translation.practice_tests.title[language], + description: translation.practice_tests.description[language], + bullets: [ + { + title: translation.practice_tests.evaluation[language], + values: translation.practice_tests.evaluation_values[language], + icon: BsCheck2Circle, + }, + { + title: translation.practice_tests.acquire[language], + values: translation.practice_tests.acquire_values[language], + icon: BsEarbuds, + }, + ], + }, + { + id: "progress_tracking", + title: translation.progress_tracking.title[language], + description: translation.progress_tracking.description[language], + bullets: [ + { + title: translation.progress_tracking.advantages[language], + values: translation.progress_tracking.advantages_values[language], + icon: BsFileBarGraph, + }, + ], + }, + ]; + + const final_struct = [ + { + id: "unified_english_level_test", + title: translation.unified_english_level_test.title[language], + description: translation.unified_english_level_test.description[language], + bullets: [ + { + title: translation.unified_english_level_test.advantages[language], + values: + translation.unified_english_level_test.advantages_values[language], + icon: BsBank, + }, + ], + }, + { + id: "customized_packages", + title: translation.customized_packages.title[language], + description: translation.customized_packages.description[language], + bullets: [], + }, + ]; + + const renderStruct = (data: SectionStruct[], getBackgroundColor: (index: number) => string) => + data.map((section, index) => ( +
+
+
+ {section.title} +
+ {section.description} +
+ {section.bullets.map((bullet) => ( +
+
+ {bullet.icon && ( + + )} +
+
+ + {bullet.title} + +
    + {bullet.values.map((value) => ( +
  • {value}
  • + ))} +
+
+
+ ))} +
+
+
+ )); + + return ( +
+ +
+
+ {translation.services[language]} +
+
+ {renderStruct( + struct, + (index: number) => `bg-${index % 2 ? "mti-gray-seasalt" : "white"}` + )} +
+
+ + {translation.corporate_educational_institutions[language]} + +
+
+ {renderStruct( + final_struct, + (index: number) => `bg-${index % 2 ? "white" : "mti-gray-seasalt"}` + )} +
+
+ ); +} diff --git a/src/translation/services.json b/src/translation/services.json new file mode 100644 index 0000000..6727fab --- /dev/null +++ b/src/translation/services.json @@ -0,0 +1,222 @@ +{ + "services": { + "en": "Services", + "ar": "الخدمات" + }, + "english_writing_evaluation": { + "title": { + "en": "Automated English Writing Evaluation", + "ar": "تقييم كتابة اللغة الإنجليزية التلقائي" + }, + "description": { + "en": "Swiftly assess your writing with EnCoach's AI platform, offering detailed feedback in seconds. Save time and receive a comprehensive brief highlighting covered aspects and ways to enhance English writing skills. Identify weaknesses, improve, and approach your IELTS confidently.", + "ar": "قم بتقييم كتابتك بسرعة باستخدام منصتنا الذكية إنكوتش واحصل على تعليقات مفصلة في ثوانٍ. وفّر وقتًا واحصل على ملخص شامل يسلط الضوء على الجوانب المغطاة وطرق تعزيز مهارات الكتابة باللغة الإنجليزية. حدد النقاط الضعيفة وقم بالتحسين واستعد بثقة لاختبار الآيلتس" + }, + "evaluation": { + "en": "Evaluation is based on the following:", + "ar": "يتم تقييم الكتابة استنادًا إلى ما يلي" + }, + "evaluation_values": { + "en": [ + "Grammar mistakes", + "Sentence ", + "Punctuation mistakes", + "Cohesiveness and consistency with the topic" + ], + "ar": [ + " أخطاء القواعد النحوية", + " بناء الجملة", + " أخطاء حروف التشكيل وحروف الجر", + " الانسجام والاتساق مع الموضوع" + ] + }, + "acquire": { + "en": "What you will acquire with EnCoach:", + "ar": "ما ستحصل عليه من خلال إنكوتش :" + }, + "acquire_values": { + "en": [ + "Tips for effective writing.", + "Quality writing strategies.", + "Sample text to compare your writing to." + ], + "ar": [ + " نصائح للكتابة الفعّالة.", + "استراتيجيات كتابة عالية الجودة.", + "نصوص نموذجية لمقارنتها مع إجابتك." + ] + } + }, + "speaking_practice_evaluation": { + "title": { + "en": "English Speaking Practice and Evaluation", + "ar": "تمرن وقيم مهارة التحدث باللغة الإنجليزية" + }, + "description": { + "en": "Elevate English speaking with EnCoach's practice and evaluation. Instant feedback and results save time for efficient improvement, fostering a professional accent.", + "ar": "قم بتطوير مهارة التحدث باللغة الإنجليزية من خلال تمرينات وتقييمات إنكوتش. تعليقات فورية ونتائج سريعة توفر وقتًا للتحسين الفعّال، وتساهم في تحسين النطق بشكل حرفي." + }, + "evaluation": { + "en": "Evaluation is based on the following:", + "ar": "يتم تقييم المهارة استنادًا إلى ما يلي:" + }, + "evaluation_values": { + "en": ["Pronunciation and Vocabulary", "Grammar when speaking"], + "ar": [" النطق والمفردات", " القواعد النحوية عند التحدث"] + }, + "acquire": { + "en": "What you will acquire with EnCoach:", + "ar": "ما ستحصل عليه من خلال إنكوتش:" + }, + "acquire_values": { + "en": ["Correct pronunciation", "Enhanced vocabulary"], + "ar": ["النطق الصحيح", "تحسين المفردات"] + } + }, + "reading_and_listening": { + "title": { + "en": "Reading and Listening Comprehension Practice", + "ar": "تمرين فهم القراءة والاستماع" + }, + "description": { + "en": "EnCoach prepares you for IELTS reading and listening with diverse accents and instant feedback. Our materials address vocabulary concerns, ensuring you excel.", + "ar": "يُعد إنكوتش استعدادًا لاختبار الآيلتس في مهارتي القراءة والاستماع من خلال توفير مجموعة متنوعة من اللهجات والتعليقات الفورية. تتناول موادنا تحديات المفردات، مما يضمن تفوقك في هذه المهارات" + }, + "evaluation": { + "en": "Evaluation is based on the following:", + "ar": "يتم تقييم المهارة استنادًا إلى ما يلي:" + }, + "evaluation_values": { + "en": ["Correct answers", "Contextual analysis", "Response time"], + "ar": [" الإجابات الصحيحة", " تحليل السياق", " وقت الاستجابة"] + }, + "acquire": { + "en": "What you will acquire with EnCoach:", + "ar": "ما ستحصل عليه من خلال إنكوتش :" + }, + "acquire_values": { + "en": [ + "Understanding different accents.", + "Strategies for analyzing the context of the written material.", + "Improved time management.", + "Computer-based IELTS exam prep", + "Reading skills: skimming, main ideas, writer’s context" + ], + "ar": [ + " فهم لهجات مختلفة.", + "استراتيجيات لتحليل سياق المواد المكتوبة.", + "تحسين إدارة الوقت.", + "تحضير امتحان الآيلتس على الحاسوب.", + "مهارات القراءة: السرعة في القراءة، وفهم الأفكار الرئيسية، وسياق الكاتب." + ] + } + }, + "practice_tests": { + "title": { + "en": "Practice Tests and Score Evaluation", + "ar": "اختبارات تطبيقية مقيمة بالدرجات" + }, + "description": { + "en": "Prepare for your IELTS test with EnCoach. With instant evaluation for each section, we help you improve and succeed.", + "ar": "استعد لامتحان الإيلتس الخاص بك مع إنكوتش بتقييم فوري لكل قسم، نساعدك على التحسين والنجاح." + }, + "evaluation": { + "en": "Evaluation is based on the following:", + "ar": "يتم تقييم الدرجات استنادًا إلى ما يلي:" + }, + "evaluation_values": { + "en": ["No. of correct answers", "Speed of responses"], + "ar": [" عدد الإجابات الصحيحة", " سرعة الاستجابات"] + }, + "acquire": { + "en": "What you will acquire with EnCoach:", + "ar": "ما ستحصل عليه من خلال إنكوتش:" + }, + "acquire_values": { + "en": [ + "Tips and tricks to score 8+", + "Better writing and speaking strategies", + "Training of your ear to pick different accents", + "In-depth understanding of the reading material" + ], + "ar": [ + "نصائح وحيل للحصول على عالية.", + "استراتيجيات أفضل للكتابة والتحدث.", + "تدريب أذنك للتعرف على اللهجات المختلفة.", + "فهم عميق للمواد المقروءة." + ] + } + }, + "progress_tracking": { + "title": { + "en": "Progress Tracking and Analytics", + "ar": "تتبع التقدم والتحليلات" + }, + "description": { + "en": "Monitor IELTS preparation progress with EnCoach. Instant feedback, detailed analysis, and improvement insights optimize performance for success.", + "ar": "راقب تقدم استعدادك لاختبار الآيلتس مع إنكوتش وأحصل على تعليقات فوريه مع تحليل مفصل لأجل متابعة التحسين " + }, + "advantages": { + "en": "Advantages of progress tracking and analytics:", + "ar": "مزايا تتبع التقدم والتحليلات" + }, + "advantages_values": { + "en": [ + "Highlighting weaknesses,", + "Assessing pre-existing knowledge", + "Providing thorough analyses for writing, speaking, listening, and reading sections" + ], + "ar": [ + "إبراز النقاط الضعيفة.", + "تقييم المعرفة السابقة.", + "توفير تحليلات شاملة لأقسام الكتابة، والتحدث، والاستماع، والقراءة." + ] + } + }, + "corporate_educational_institutions": { + "en": "Corporate and Educational Institutions", + "ar": "الشركات والمؤسسات التعليمية" + }, + "unified_english_level_test": { + "title": { + "en": "Unified English level test for corporate and educational institutions", + "ar": "اختبار موحد لمستوى اللغة الإنجليزية للشركات والمؤسسات التعليمية" + }, + "description": { + "en": "EnCoach elevates language skills through unified English-level tests for companies and educational institutions. Showcase proficiency efficiently with internationally recognized CEFR level classification.", + "ar": "يعزز إنكوتش مهارات اللغة من خلال اختبارات موحدة لمستوى اللغة الإنجليزية للشركات والمؤسسات التعليمية. تقييم المستوى المتوافق مع التصنيف المعترف به دوليًا وفقًا لمستويات CEFR." + }, + "advantages": { + "en": "Advantages of Unified English level test:", + "ar": "مزايا اختبارات موحدة لمستوى اللغة الإنجليزية:" + }, + "advantages_values": { + "en": [ + "Cost-effective tests", + "CEFR Benchmark ", + "Developed by language experts", + "Quick language proficiency proof", + "Business English acquisition", + "Academic English improvement" + ], + "ar": [ + " اختبارات فعّالة من حيث التكلفة", + " منسجم مع المعايير CEFR", + " تم تطويرها بواسطة خبراء اللغة", + " إثبات سريع لمهارات اللغة", + " اكتساب اللغة الإنجليزية بكل احتراف", + " تحسين اللغة الإنجليزية الأكاديمية" + ] + } + }, + "customized_packages": { + "title": { + "en": "Customized Packages for Corporate and Educational Institutions", + "ar": "حزم مخصصة للشركات والمؤسسات التعليمية" + }, + "description": { + "en": "EnCoach offers tailored packages for corporate and educational institutions, meeting specific English level needs. Achieve success with effective and efficient training.", + "ar": "يقدم إنكوتش حزم مخصصة للشركات والمؤسسات التعليمية، تلبي احتياجات فحص اللغة الإنجليزية. حقق النجاح من خلال تدريب فعّال ." + } + } +} From 8c1ec834f312525645e62e3b0bd2715d5c9d895e Mon Sep 17 00:00:00 2001 From: Joao Ramos Date: Fri, 9 Feb 2024 18:03:52 +0000 Subject: [PATCH 2/3] Applied dir to all pages --- src/templates/About.tsx | 2 +- src/templates/ComingSoon.tsx | 2 +- src/templates/History.tsx | 2 +- src/templates/Home.tsx | 2 +- src/templates/Price.tsx | 5 ++--- src/templates/Privacy.tsx | 6 +++--- src/templates/Services.tsx | 2 +- src/templates/Terms.tsx | 6 +++--- 8 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/templates/About.tsx b/src/templates/About.tsx index 4b691c0..97ef04b 100644 --- a/src/templates/About.tsx +++ b/src/templates/About.tsx @@ -30,7 +30,7 @@ interface Props { export default function About({language}: Props) { return ( -
+
diff --git a/src/templates/ComingSoon.tsx b/src/templates/ComingSoon.tsx index 7fbaad3..7d0f437 100644 --- a/src/templates/ComingSoon.tsx +++ b/src/templates/ComingSoon.tsx @@ -20,7 +20,7 @@ interface Props { export default function ComingSoon({ page, language }: Props) { return ( -
+
diff --git a/src/templates/History.tsx b/src/templates/History.tsx index 8e1341c..cae76a3 100644 --- a/src/templates/History.tsx +++ b/src/templates/History.tsx @@ -50,7 +50,7 @@ const Element = ({date, label, isEven, language, Icon}: ElementProps) => { export default function History({language}: Props) { return ( -
+
diff --git a/src/templates/Home.tsx b/src/templates/Home.tsx index 5842291..056ad06 100644 --- a/src/templates/Home.tsx +++ b/src/templates/Home.tsx @@ -14,7 +14,7 @@ interface Props { export default function Home({language}: Props) { return ( -
+
diff --git a/src/templates/Price.tsx b/src/templates/Price.tsx index f1cec90..3a8eb98 100644 --- a/src/templates/Price.tsx +++ b/src/templates/Price.tsx @@ -40,10 +40,9 @@ export default function Page({language}: {language: "en" | "ar"}) { getData(); }, []); return ( -
+
- -
+

{translation.title[language]}

{payments.map((p) => ( diff --git a/src/templates/Privacy.tsx b/src/templates/Privacy.tsx index 8783ad8..71f7e44 100644 --- a/src/templates/Privacy.tsx +++ b/src/templates/Privacy.tsx @@ -22,16 +22,16 @@ interface Content { export default function Privacy({language}: Props) { return ( -
+
-
+
{translation.title[language]}
-
+
+
diff --git a/src/templates/Terms.tsx b/src/templates/Terms.tsx index 18c76c3..494b16d 100644 --- a/src/templates/Terms.tsx +++ b/src/templates/Terms.tsx @@ -22,16 +22,16 @@ interface Content { export default function Terms({language}: Props) { return ( -
+
-
+
{translation.title[language]}
-
+
Date: Tue, 13 Feb 2024 00:29:29 +0000 Subject: [PATCH 3/3] Fixed some minor appearance issues related to the direction of the text --- src/components/Navbar.tsx | 2 +- src/templates/About.tsx | 20 +- src/templates/Home.tsx | 6 +- src/templates/Services.tsx | 377 +++++++++++++++++-------------------- 4 files changed, 183 insertions(+), 222 deletions(-) diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index fbf09cc..1b27485 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -28,7 +28,7 @@ export default function Navbar({currentPage, language}: {currentPage: string; la EnCoach logo -
+
{items.map((item) => (
-
+
{translation.ceo_message.title[language]} {translation.ceo_message.text[language].split("\n").map((line, index) => ( -

{line}

+

{line}


))} @@ -115,12 +115,8 @@ export default function About({language}: Props) { {/* Capabilities */}
-
-
+
+
{translation.capabilities.title[language]}
{translation.capabilities.intro[language]} @@ -182,12 +178,8 @@ export default function About({language}: Props) { {/* Expertise */}
-
-
+
+
{translation.expertise.title[language]}
{translation.expertise.intro[language]} diff --git a/src/templates/Home.tsx b/src/templates/Home.tsx index 056ad06..9addc48 100644 --- a/src/templates/Home.tsx +++ b/src/templates/Home.tsx @@ -14,7 +14,9 @@ interface Props { export default function Home({language}: Props) { return ( -
+
@@ -169,7 +171,7 @@ export default function Home({language}: Props) {
-
+
diff --git a/src/templates/Services.tsx b/src/templates/Services.tsx index 0cb7310..93d8600 100644 --- a/src/templates/Services.tsx +++ b/src/templates/Services.tsx @@ -2,222 +2,189 @@ import Navbar from "@/components/Navbar"; import clsx from "clsx"; import Title from "@/components/Title"; import { - BsBook, - BsBlockquoteLeft, - BsFillPencilFill, - BsMic, - BsSoundwave, - BsBookmarkStar, - BsCheck2Circle, - BsEarbuds, - BsFileBarGraph, - BsBank, + BsBook, + BsBlockquoteLeft, + BsFillPencilFill, + BsMic, + BsSoundwave, + BsBookmarkStar, + BsCheck2Circle, + BsEarbuds, + BsFileBarGraph, + BsBank, } from "react-icons/bs"; import translation from "@/translation/services.json"; import Footer from "@/components/Footer"; interface Props { - language: "en" | "ar"; + language: "en" | "ar"; } interface SectionStruct { - id: string; - title: string; - description: string; - bullets: { - title: string; - values: string[]; - icon: any; - }[]; + id: string; + title: string; + description: string; + bullets: { + title: string; + values: string[]; + icon: any; + }[]; } -export default function About({ language }: Props) { - const struct = [ - { - id: "english_writing_evaluation", - title: translation.english_writing_evaluation.title[language], - description: translation.english_writing_evaluation.description[language], - bullets: [ - { - title: translation.english_writing_evaluation.evaluation[language], - values: - translation.english_writing_evaluation.evaluation_values[language], - icon: BsBlockquoteLeft, - }, - { - title: translation.english_writing_evaluation.acquire[language], - values: - translation.english_writing_evaluation.acquire_values[language], - icon: BsFillPencilFill, - }, - ], - }, - { - id: "speaking_practice_evaluation", - title: translation.speaking_practice_evaluation.title[language], - description: - translation.speaking_practice_evaluation.description[language], - bullets: [ - { - title: translation.speaking_practice_evaluation.evaluation[language], - values: - translation.speaking_practice_evaluation.evaluation_values[ - language - ], - icon: BsMic, - }, - { - title: translation.speaking_practice_evaluation.acquire[language], - values: - translation.speaking_practice_evaluation.acquire_values[language], - icon: BsBook, - }, - ], - }, - { - id: "reading_and_listening", - title: translation.reading_and_listening.title[language], - description: translation.reading_and_listening.description[language], - bullets: [ - { - title: translation.reading_and_listening.evaluation[language], - values: translation.reading_and_listening.evaluation_values[language], - icon: BsSoundwave, - }, - { - title: translation.reading_and_listening.acquire[language], - values: translation.reading_and_listening.acquire_values[language], - icon: BsBookmarkStar, - }, - ], - }, - { - id: "practice_tests", - title: translation.practice_tests.title[language], - description: translation.practice_tests.description[language], - bullets: [ - { - title: translation.practice_tests.evaluation[language], - values: translation.practice_tests.evaluation_values[language], - icon: BsCheck2Circle, - }, - { - title: translation.practice_tests.acquire[language], - values: translation.practice_tests.acquire_values[language], - icon: BsEarbuds, - }, - ], - }, - { - id: "progress_tracking", - title: translation.progress_tracking.title[language], - description: translation.progress_tracking.description[language], - bullets: [ - { - title: translation.progress_tracking.advantages[language], - values: translation.progress_tracking.advantages_values[language], - icon: BsFileBarGraph, - }, - ], - }, - ]; +export default function About({language}: Props) { + const struct = [ + { + id: "english_writing_evaluation", + title: translation.english_writing_evaluation.title[language], + description: translation.english_writing_evaluation.description[language], + bullets: [ + { + title: translation.english_writing_evaluation.evaluation[language], + values: translation.english_writing_evaluation.evaluation_values[language], + icon: BsBlockquoteLeft, + }, + { + title: translation.english_writing_evaluation.acquire[language], + values: translation.english_writing_evaluation.acquire_values[language], + icon: BsFillPencilFill, + }, + ], + }, + { + id: "speaking_practice_evaluation", + title: translation.speaking_practice_evaluation.title[language], + description: translation.speaking_practice_evaluation.description[language], + bullets: [ + { + title: translation.speaking_practice_evaluation.evaluation[language], + values: translation.speaking_practice_evaluation.evaluation_values[language], + icon: BsMic, + }, + { + title: translation.speaking_practice_evaluation.acquire[language], + values: translation.speaking_practice_evaluation.acquire_values[language], + icon: BsBook, + }, + ], + }, + { + id: "reading_and_listening", + title: translation.reading_and_listening.title[language], + description: translation.reading_and_listening.description[language], + bullets: [ + { + title: translation.reading_and_listening.evaluation[language], + values: translation.reading_and_listening.evaluation_values[language], + icon: BsSoundwave, + }, + { + title: translation.reading_and_listening.acquire[language], + values: translation.reading_and_listening.acquire_values[language], + icon: BsBookmarkStar, + }, + ], + }, + { + id: "practice_tests", + title: translation.practice_tests.title[language], + description: translation.practice_tests.description[language], + bullets: [ + { + title: translation.practice_tests.evaluation[language], + values: translation.practice_tests.evaluation_values[language], + icon: BsCheck2Circle, + }, + { + title: translation.practice_tests.acquire[language], + values: translation.practice_tests.acquire_values[language], + icon: BsEarbuds, + }, + ], + }, + { + id: "progress_tracking", + title: translation.progress_tracking.title[language], + description: translation.progress_tracking.description[language], + bullets: [ + { + title: translation.progress_tracking.advantages[language], + values: translation.progress_tracking.advantages_values[language], + icon: BsFileBarGraph, + }, + ], + }, + ]; - const final_struct = [ - { - id: "unified_english_level_test", - title: translation.unified_english_level_test.title[language], - description: translation.unified_english_level_test.description[language], - bullets: [ - { - title: translation.unified_english_level_test.advantages[language], - values: - translation.unified_english_level_test.advantages_values[language], - icon: BsBank, - }, - ], - }, - { - id: "customized_packages", - title: translation.customized_packages.title[language], - description: translation.customized_packages.description[language], - bullets: [], - }, - ]; + const final_struct = [ + { + id: "unified_english_level_test", + title: translation.unified_english_level_test.title[language], + description: translation.unified_english_level_test.description[language], + bullets: [ + { + title: translation.unified_english_level_test.advantages[language], + values: translation.unified_english_level_test.advantages_values[language], + icon: BsBank, + }, + ], + }, + { + id: "customized_packages", + title: translation.customized_packages.title[language], + description: translation.customized_packages.description[language], + bullets: [], + }, + ]; - const renderStruct = (data: SectionStruct[], getBackgroundColor: (index: number) => string) => - data.map((section, index) => ( -
-
-
- {section.title} -
- {section.description} -
- {section.bullets.map((bullet) => ( -
-
- {bullet.icon && ( - - )} -
-
- - {bullet.title} - -
    - {bullet.values.map((value) => ( -
  • {value}
  • - ))} -
-
-
- ))} -
-
-
- )); + const renderStruct = (data: SectionStruct[], getBackgroundColor: (index: number) => string) => + data.map((section, index) => ( +
+
+
+ {section.title} +
+ {section.description} +
+ {section.bullets.map((bullet) => ( +
+
+ {bullet.icon && } +
+
+ {bullet.title} +
    + {bullet.values.map((value) => ( +
  • {value}
  • + ))} +
+
+
+ ))} +
+
+
+ )); - return ( -
- -
-
- {translation.services[language]} -
-
- {renderStruct( - struct, - (index: number) => `bg-${index % 2 ? "mti-gray-seasalt" : "white"}` - )} -
-
- - {translation.corporate_educational_institutions[language]} - -
-
- {renderStruct( - final_struct, - (index: number) => `bg-${index % 2 ? "white" : "mti-gray-seasalt"}` - )} -
-
- ); + return ( +
+ +
+
+ {translation.services[language]} +
+
+ {renderStruct(struct, (index: number) => `bg-${index % 2 ? "mti-gray-seasalt" : "white"}`)} +
+
+ {translation.corporate_educational_institutions[language]} +
+
+ {renderStruct(final_struct, (index: number) => `bg-${index % 2 ? "white" : "mti-gray-seasalt"}`)} +
+ ); }