hesabixArc/CALENDAR_SWITCHER_MULTILINGUAL.md

2.3 KiB

چندزبانه کردن CalendarSwitcher

تغییرات انجام شده

اضافه شدن پشتیبانی چندزبانه

CalendarSwitcher حالا کاملاً چندزبانه است و از ترجمه‌های موجود استفاده می‌کند.

🌐 ترجمه‌های استفاده شده:

انگلیسی (app_en.arb):

  • calendar: "Calendar"
  • gregorian: "Gregorian"
  • jalali: "Jalali"
  • calendarType: "Calendar Type"

فارسی (app_fa.arb):

  • calendar: "تقویم"
  • gregorian: "میلادی"
  • jalali: "شمسی"
  • calendarType: "نوع تقویم"

🔧 تغییرات کد:

1. Import ترجمه‌ها

import 'package:hesabix_ui/l10n/app_localizations.dart';

2. استفاده از ترجمه‌ها

final t = AppLocalizations.of(context);
final String label = isJalali ? t.jalali.substring(0, 3) : t.gregorian.substring(0, 3);

3. Tooltip چندزبانه

tooltip: t.calendarType,

4. منو چندزبانه

PopupMenuItem(
  value: CalendarType.jalali,
  child: Text(t.jalali),
),
PopupMenuItem(
  value: CalendarType.gregorian,
  child: Text(t.gregorian),
),

🎯 نتیجه:

در زبان فارسی:

  • دکمه: "شم" (3 کاراکتر اول "شمسی")
  • منو: "شمسی" و "میلادی"
  • Tooltip: "نوع تقویم"

در زبان انگلیسی:

  • دکمه: "Jal" (3 کاراکتر اول "Jalali")
  • منو: "Jalali" و "Gregorian"
  • Tooltip: "Calendar Type"

ویژگی‌های جدید:

  • چندزبانه کامل: تمام متن‌ها ترجمه شده
  • سازگاری: با سیستم i18n موجود
  • انعطاف: تغییر خودکار با تغییر زبان
  • یکپارچگی: با سایر ویجت‌های چندزبانه

🔄 مقایسه با LanguageSwitcher:

ویژگی LanguageSwitcher CalendarSwitcher
چندزبانه
ترجمه منو
ترجمه tooltip
ترجمه دکمه

تست

  • Flutter analyze بدون خطای critical
  • ترجمه‌ها صحیح
  • عملکرد چندزبانه