-
+
{(languages.length ? languages.slice(0, 3) : fallbackLanguages).map((language, index) => {
- const card = config.languages.cards.find((item) => item.code === language.code) ?? config.languages.cards[index];
+ const card =
+ config.languages.cards.find((item) => item.code === language.code) ?? config.languages.cards[index];
const name = english ? language.nameEn : language.nameFa;
return (
{language.flag || '🌐'}
-
{language.proficiencySystem === 'CEFR' ? 'A1 — C2' : 'LEVELS'}
-
{name}
-
{card ? t(card.description) : english ? 'Build confidence at your pace.' : 'با ریتم خودت پیشرفت کن.'}
-
{english ? 'Explore route' : 'مشاهده مسیر'}
+
+
+
+ {language.proficiencySystem === 'CEFR' ? 'A1 — C2' : 'LEVELS'}
+
+
{name}
+
+
{language.nativeName}
+
+
+ {card
+ ? t(card.description)
+ : english
+ ? 'Build confidence at your pace.'
+ : 'با ریتم خودت پیشرفت کن.'}
+
+
+
+
+
+
+
+
+
+ {english ? 'Structured lessons' : 'درسهای ساختاریافته'}
+
+
+
+ {english ? 'Progress tracking' : 'پیگیری پیشرفت'}
+
+
+
+ {english ? 'Build my learning path' : 'ساخت مسیر یادگیری من'}{' '}
+
+
);
@@ -179,17 +269,34 @@ function LanguagesSection({ config, locale, languages, section }: LandingRenderP
}
function BenefitsSection({ config, locale, section }: LandingRenderProps) {
+ const english = locale === 'en';
const t = (value: { fa: string; en: string }) => localizedText(value, locale);
+ const items = [
+ ...config.benefits.items,
+ {
+ icon: 'bot',
+ title: { fa: 'دستیار تمرین هوشمند', en: 'AI practice assistance' },
+ description: {
+ fa: 'بین جلسهها با تمرینهای هدفمند، بازخورد سریع و مرور متناسب با مسیرت جلو برو.',
+ en: 'Keep moving between lessons with focused practice, fast feedback, and reviews shaped around your path.',
+ },
+ },
+ ];
return (
- {config.benefits.items.map((item, index) => {
- const Icon = iconMap[item.icon as keyof typeof iconMap] ?? Sparkles;
+ {items.map((item, index) => {
+ const Icon = item.icon === 'bot' ? Bot : (iconMap[item.icon as keyof typeof iconMap] ?? Sparkles);
return (
-
-
+
+
+
+
0{index + 1}
{t(item.title)}
{t(item.description)}
@@ -197,6 +304,44 @@ function BenefitsSection({ config, locale, section }: LandingRenderProps) {
);
})}
+
+
+
{english ? 'One connected experience' : 'یک تجربه یکپارچه'}
+
+ {english
+ ? 'From “where do I start?” to a plan you can follow.'
+ : 'از «از کجا شروع کنم؟» تا برنامهای که میتوانی ادامه بدهی.'}
+
+
+ {english
+ ? 'Assessment, expert guidance, live speaking practice and progress feedback work together—so every session has a clear next step.'
+ : 'تعیین سطح، راهنمایی مدرس، تمرین زنده مکالمه و بازخورد پیشرفت کنار هم کار میکنند؛ بنابراین بعد از هر جلسه قدم بعدی روشن است.'}
+
+
+
+
+ 01
+
+ {english ? 'Know your level' : 'سطحت را بشناس'}
+ {english ? 'Free CEFR assessment' : 'سنجش رایگان CEFR'}
+
+
+
+ 02
+
+ {english ? 'Meet your teacher' : 'مدرست را انتخاب کن'}
+ {english ? 'Goals, schedule and fit' : 'بر اساس هدف و زمان تو'}
+
+
+
+ 03
+
+ {english ? 'Practise and improve' : 'تمرین کن و پیشرفتت را ببین'}
+ {english ? 'Live practice with feedback' : 'تمرین زنده همراه بازخورد'}
+
+
+
+
);
@@ -219,8 +364,19 @@ function PlacementSection({ config, locale, section }: LandingRenderProps) {