- **ممنوعیت مطلق متن هاردکد:** تمام متون جدولها، ستونها، فیلدها، دکمهها، نشانها، پیامهای مودال و نوتیفیکیشنها باید منحصراً از طریق `useTranslation` فراخوانی شوند.
- **ممنوعیت مطلق متن هاردکد:** تمام متون جدولها، ستونها، فیلدها، دکمهها، نشانها، پیامهای مودال و نوتیفیکیشنها باید منحصراً از طریق `useTranslation` فراخوانی شوند.
- **همگامسازی همزمان در هر ۳ زبان:** هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید الزاماً و همزمان در دو زبان دیگر (`fa.json`, `ar.json`, `en.json`) با ترجمه حرفهای و بومی اعمال شود تا تست اعتبارسنجی `npm run check:i18n` و هوک پیش از کامیت (`pre-commit`) کاملاً پاس شود و هیچ کلید ناقص، خالی یا نامتقارنی باقی نماند.
- **همگامسازی همزمان در هر ۳ زبان:** هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید الزاماً و همزمان در دو زبان دیگر (`fa.json`, `ar.json`, `en.json`) با ترجمه حرفهای و بومی اعمال شود تا تست اعتبارسنجی `npm run check:i18n` و هوک پیش از کامیت (`pre-commit`) کاملاً پاس شود و هیچ کلید ناقص، خالی یا نامتقارنی باقی نماند.
- **تقارن کامل تغییرات کلمات (Word Modification Parity):** هر زمان کلمهای در یک متن تغییر کند یا کلماتی حذف شوند، باید همان تغییر مفهومی بلافاصله در هر ۳ فایل اعمال گردد (مطابق قانون اختصاصی `.agents/rules/translation_synchronization.md`).
- **تقارن کامل تغییرات کلمات (Word Modification Parity):** هر زمان کلمهای در یک متن تغییر کند یا کلماتی حذف شوند، باید همان تغییر مفهومی بلافاصله در هر ۳ فایل اعمال گردد (مطابق قانون اختصاصی `.agents/rules/translation_synchronization.md`).
- **استاندارد سراسری نمایش و انتخاب دوگانه تاریخ میلادی و قمری با نام ماه (Mandatory Dual Gregorian + Hijri Date Standard):**
- در تمامی بخشها، جداول، مودالها، کارتها و فرمهای پنل مدیریت (`aqila_panel`)، کلیه تاریخها باید **بهصورت همزمان میلادی و هجری قمری (امالقری) همراه با ذکر نام ماه** (مشابه بخش سفر انتخابی / Custom Trip) نمایش داده شوند:
- در زبان فارسی (`fa`): `نوامبر 2، 2026 (جمادیالاول 22، 1448)`
- در زبان عربی (`ar`): `نوفمبر 2، 2026 (جمادى الأولى 22، 1448 هـ)`
- در زبان انگلیسی (`en`): `November 2, 2026 (Jumada al-Awwal 22, 1448 AH)`
- برای نمایش هرگونه تاریخ یا زمان در پنل، استفاده از `toLocaleDateString` خام یا نمایش تکتقویمی (صرفاً شمسی یا صرفاً عددی `YYYY-MM-DD`) ممنوع است و باید منحصراً از توابع استاندارد `formatDualDate`، `formatDateByLanguage`، `formatDateRangeByLanguage` و `formatDateTimeByLanguage` در `src/lib/date-utils.ts` استفاده شود.
- برای کلیه فیلدهای انتخاب تاریخ در فرمها و دیالوگها، استفاده از `<input type="date">` بومی مرورگر ممنوع بوده و باید منحصراً از کامپوننت `<UniversalDatePicker>` با `allowedModes={['islamic', 'gregorian']}` استفاده گردد.
# استاندارد سراسری نمایش و انتخاب دوگانه تاریخ میلادی و قمری در پنل مدیریت (Dual Gregorian + Hijri Date Standard)
در پنل مدیریت عقیله (`aqila_panel`)، کلیه تاریخها در تمام صفحات، جداول، مودالها، کارتها و انتخابگرهای تاریخ باید بدون استثنا به صورت همزمان **میلادی + هجری قمری (امالقری) با ذکر صریح نام ماه** (مطابق الگوی بخش کاستوم تریپ) نمایش داده شوند:
@ -17,3 +17,6 @@ Whenever adding, updating, or modifying any text, table header, button label, mo
3. **Zero Hardcoded Text in UI Components:**
3. **Zero Hardcoded Text in UI Components:**
- No hardcoded strings in React components, Ant Design or Tailwind elements, table columns, action buttons, or notification toasts. All copy must be fetched via `useTranslation`.
- No hardcoded strings in React components, Ant Design or Tailwind elements, table columns, action buttons, or notification toasts. All copy must be fetched via `useTranslation`.
- Ensure RTL/LTR alignment and smart bidirectional input handling via `rtlUtils.ts`.
- Ensure RTL/LTR alignment and smart bidirectional input handling via `rtlUtils.ts`.
4. **Mandatory Multi-Language Check on Any Change & Pre-Existing Audit:**
- Whenever any component, page, or static data is modified, its multi-language compliance must be verified. If the text, key, or component already existed beforehand, its existing translations across all 3 panel languages (`fa`, `ar`, `en`) must also be inspected and fixed if incomplete, hardcoded, or out-of-sync.
- **ممنوعیت مطلق متن هاردکد:** تمام متون جدولها، ستونها، فیلدها، دکمهها، نشانها، پیامهای مودال و نوتیفیکیشنها باید منحصراً از طریق `useTranslation` فراخوانی شوند.
- **ممنوعیت مطلق متن هاردکد:** تمام متون جدولها، ستونها، فیلدها، دکمهها، نشانها، پیامهای مودال و نوتیفیکیشنها باید منحصراً از طریق `useTranslation` فراخوانی شوند.
- **همگامسازی همزمان در هر ۳ زبان:** هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید الزاماً و همزمان در دو زبان دیگر (`fa.json`, `ar.json`, `en.json`) با ترجمه حرفهای و بومی اعمال شود تا تست اعتبارسنجی `npm run check:i18n` و هوک پیش از کامیت (`pre-commit`) کاملاً پاس شود و هیچ کلید ناقص، خالی یا نامتقارنی باقی نماند.
- **همگامسازی همزمان در هر ۳ زبان:** هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید الزاماً و همزمان در دو زبان دیگر (`fa.json`, `ar.json`, `en.json`) با ترجمه حرفهای و بومی اعمال شود تا تست اعتبارسنجی `npm run check:i18n` و هوک پیش از کامیت (`pre-commit`) کاملاً پاس شود و هیچ کلید ناقص، خالی یا نامتقارنی باقی نماند.
- **تقارن کامل تغییرات کلمات (Word Modification Parity):** هر زمان کلمهای در یک متن تغییر کند یا کلماتی حذف شوند، باید همان تغییر مفهومی بلافاصله در هر ۳ فایل اعمال گردد (مطابق قانون اختصاصی `.agents/rules/translation_synchronization.md`).
- **تقارن کامل تغییرات کلمات (Word Modification Parity):** هر زمان کلمهای در یک متن تغییر کند یا کلماتی حذف شوند، باید همان تغییر مفهومی بلافاصله در هر ۳ فایل اعمال گردد (مطابق قانون اختصاصی `.agents/rules/translation_synchronization.md`).
- **استاندارد سراسری نمایش و انتخاب دوگانه تاریخ میلادی و قمری با نام ماه (Mandatory Dual Gregorian + Hijri Date Standard):**
- در تمامی بخشها، جداول، مودالها، کارتها و فرمهای پنل مدیریت (`aqila_panel`)، کلیه تاریخها باید **بهصورت همزمان میلادی و هجری قمری (امالقری) همراه با ذکر نام ماه** (مشابه بخش سفر انتخابی / Custom Trip) نمایش داده شوند:
- در زبان فارسی (`fa`): `نوامبر 2، 2026 (جمادیالاول 22، 1448)`
- در زبان عربی (`ar`): `نوفمبر 2، 2026 (جمادى الأولى 22، 1448 هـ)`
- در زبان انگلیسی (`en`): `November 2, 2026 (Jumada al-Awwal 22, 1448 AH)`
- برای نمایش هرگونه تاریخ یا زمان در پنل، استفاده از `toLocaleDateString` خام یا نمایش تکتقویمی (صرفاً شمسی یا صرفاً عددی `YYYY-MM-DD`) ممنوع است و باید منحصراً از توابع استاندارد `formatDualDate`، `formatDateByLanguage`، `formatDateRangeByLanguage` و `formatDateTimeByLanguage` در `src/lib/date-utils.ts` استفاده شود.
- برای کلیه فیلدهای انتخاب تاریخ در فرمها و دیالوگها، استفاده از `<input type="date">` بومی مرورگر ممنوع بوده و باید منحصراً از کامپوننت `<UniversalDatePicker>` با `allowedModes={['islamic', 'gregorian']}` استفاده گردد.