diff --git a/.agents/AGENTS.md b/.agents/AGENTS.md index 2ad7434..fcb6378 100644 --- a/.agents/AGENTS.md +++ b/.agents/AGENTS.md @@ -8,14 +8,17 @@ - **ممنوعیت مطلق ایجاد فایل/پوشه خارج از سورس:** هیچ پوشه یا فایل ایجنتی تحت هیچ شرایطی نباید در بیرون از این پروژه یا در روتهای بالادستی ایجاد شود. کلیه دستورالعملها، تنظیمات و قوانین ایجنت باید منحصراً در فایل `AGENTS.md` و پوشه `.agents/` درون همین مخزن سورس کد قرار گیرد. - **همکاری چندنفره و همگامسازی گیت:** با توجه به کار کردن چندین توسعهدهنده روی پروژه، تمام فایلهای ایجنت باید درون مخزن گیت قرار داشته باشند تا با هر `git pull` روی تمام سیستمهای تیم بدون نقص همگام شوند. - **اعتبار سراسری دستورات:** هر قانونی که برای سامانه عقیله یا رفتار ایجنت تعریف میشود، در تمامی پوشهها و پروژهها (بکاند، فرانتاند وب، اپ فلاتر، پنل مدیریت) صادق است و باید به طور مجزا و دقیق در این مخزن خوانده و اطاعت شود. +- **تشخیص و استقرار خودکار قوانین جدید در تمام بخشهای لازم (Automatic Rule Propagation):** هر زمان قانون جدیدی تعریف، آموخته یا تصویب شود، ایجنت موظف است بهصورت خودکار و بدون نیاز به تذکر کاربر تشخیص دهد کدام بخشهای دیگر سامانه (فلاتر، فرانتاند وب، بکاند) به این قانون نیاز دارند و آن را متناسب با نیاز هر بخش فوراً در فایلهای راهنمای همان پروژه مستقر کند (مطابق با `.agents/rules/automatic_rule_propagation.md`). --- ## ۲. استانداردهای توسعه رابط کاربری و معماری - **فناوری و ساختار:** پروژه بر پایه Vite + React + TypeScript توسعه یافته است. - **تایپوگرافی و جهت متن (RTL/LTR):** رعایت فونتهای `Vazirmatn` و `Plus Jakarta Sans`، استفاده از `rtlUtils.ts` جهت تشخیص خودکار جهت متن ورودی کاربران و حفظ ثبات کرسر (`unicode-bidi: plaintext !important; text-align: start !important;`). -- **چندزبانه بودن کامل پنل مدیریت (۳ زبان):** پنل مدیریت منحصراً از ۳ زبان (`fa` فارسی، `ar` عربی، `en` انگلیسی) در مسیر `src/locales/` استفاده میکند. تمام متون جدولها، فیلدها، دکمهها و نشانها باید در هر ۳ فایل دیکشنری زبان (`fa.json`, `ar.json`, `en.json`) تعریف و همگام شوند. - - **قانون هماهنگی ترجمه:** هیچ تغییری نباید تکزبانه باشد؛ هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید همزمان در دو زبان دیگر اعمال شود تا تست `locales.test.ts` کاملاً پاس شود و هیچ کلید ناقص یا نامتعادلی وجود نداشته باشد. +- **چندزبانه بودن کامل، صفر متن هاردکد و همگامسازی صددرصدی (۳ زبان):** پنل مدیریت منحصراً از ۳ زبان (`fa` فارسی، `ar` عربی، `en` انگلیسی) در مسیر `src/locales/` استفاده میکند. + - **ممنوعیت مطلق متن هاردکد:** تمام متون جدولها، ستونها، فیلدها، دکمهها، نشانها، پیامهای مودال و نوتیفیکیشنها باید منحصراً از طریق `useTranslation` فراخوانی شوند. + - **همگامسازی همزمان در هر ۳ زبان:** هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید الزماً و همزمان در دو زبان دیگر (`fa.json`, `ar.json`, `en.json`) با ترجمه حرفهای و بومی اعمال شود تا تست اعتبارسنجی `locales.test.ts` کاملاً پاس شود و هیچ کلید ناقص، خالی یا نامتقارنی باقی نماند. + - **تقارن کامل تغییرات کلمات (Word Modification Parity):** هر زمان کلمهای در یک متن تغییر کند، کلماتی حذف شوند (مانند حذف لیست فرمتهای مجاز یا کوتاهسازی برچسبها) یا به متنی اضافه شوند، باید همان تغییر مفهومی و گرامری بلافاصله در هر ۳ فایل اعمال گردد و قرار دادن متن انگلیسی به عنوان موقت در زبانهای فارسی یا عربی اکیداً ممنوع است (مطابق قانون اختصاصی `.agents/rules/translation_synchronization.md`). --- diff --git a/.agents/rules/automatic_rule_propagation.md b/.agents/rules/automatic_rule_propagation.md new file mode 100644 index 0000000..8a2527e --- /dev/null +++ b/.agents/rules/automatic_rule_propagation.md @@ -0,0 +1,13 @@ +# Automatic Cross-Project Rule Propagation Protocol (Admin Panel) + +Whenever any new rule, standard, or requirement is introduced (via `/learn`, user directives, or bug resolutions): + +1. **Proactive Relevance Assessment:** + - The agent MUST automatically determine whether the rule impacts the Admin Panel and/or other subprojects (Flutter, Frontend Web, Backend). + - Never wait for the user to manually ask to copy or add the rule to other folders. + +2. **Tailored Admin Panel Implementation:** + - Adapt the rule for Vite + React + TypeScript architecture, 3 languages (`src/locales/fa.json`, `ar.json`, `en.json`), automated Vitest locale checks (`locales.test.ts`), and administrative table/form layouts. + +3. **In-Source Persistence:** + - Save updates directly to `aqila_panel/AGENTS.md` and `aqila_panel/.agents/rules/` so the entire team receives them via Git. diff --git a/.agents/rules/translation_synchronization.md b/.agents/rules/translation_synchronization.md new file mode 100644 index 0000000..b46681b --- /dev/null +++ b/.agents/rules/translation_synchronization.md @@ -0,0 +1,19 @@ +# Multi-Language Translation Synchronization Rule - Aqila Admin Panel + +Whenever adding, updating, or modifying any text, table header, button label, modal message, toast notification, or string in `aqila_panel`: + +1. **Mandatory 100% Language Parity across 3 Locales:** + - Any new translation key or modified string MUST be updated across **ALL THREE** locale files simultaneously in `src/locales/`: + - `src/locales/fa.json` (Persian) + - `src/locales/ar.json` (Arabic) + - `src/locales/en.json` (English) + - Zero missing, extra, or empty keys (`fa.json`, `ar.json`, and `en.json` must have perfectly symmetrical key trees). + - All changes must pass the automated translation test (`src/locales/__tests__/locales.test.ts` via `scripts/check-translations.js`). + +2. **Text Modification & Word Parity Consistency:** + - Whenever words are added, removed, or modified in any text (e.g. omitting file extensions, shortening labels, updating status messages), the exact same conceptual and grammatical change MUST be reflected across all 3 files. + - Do not leave raw English text or placeholder strings in Persian or Arabic files. + +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`. + - Ensure RTL/LTR alignment and smart bidirectional input handling via `rtlUtils.ts`. diff --git a/AGENTS.md b/AGENTS.md index 2ad7434..fcb6378 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,14 +8,17 @@ - **ممنوعیت مطلق ایجاد فایل/پوشه خارج از سورس:** هیچ پوشه یا فایل ایجنتی تحت هیچ شرایطی نباید در بیرون از این پروژه یا در روتهای بالادستی ایجاد شود. کلیه دستورالعملها، تنظیمات و قوانین ایجنت باید منحصراً در فایل `AGENTS.md` و پوشه `.agents/` درون همین مخزن سورس کد قرار گیرد. - **همکاری چندنفره و همگامسازی گیت:** با توجه به کار کردن چندین توسعهدهنده روی پروژه، تمام فایلهای ایجنت باید درون مخزن گیت قرار داشته باشند تا با هر `git pull` روی تمام سیستمهای تیم بدون نقص همگام شوند. - **اعتبار سراسری دستورات:** هر قانونی که برای سامانه عقیله یا رفتار ایجنت تعریف میشود، در تمامی پوشهها و پروژهها (بکاند، فرانتاند وب، اپ فلاتر، پنل مدیریت) صادق است و باید به طور مجزا و دقیق در این مخزن خوانده و اطاعت شود. +- **تشخیص و استقرار خودکار قوانین جدید در تمام بخشهای لازم (Automatic Rule Propagation):** هر زمان قانون جدیدی تعریف، آموخته یا تصویب شود، ایجنت موظف است بهصورت خودکار و بدون نیاز به تذکر کاربر تشخیص دهد کدام بخشهای دیگر سامانه (فلاتر، فرانتاند وب، بکاند) به این قانون نیاز دارند و آن را متناسب با نیاز هر بخش فوراً در فایلهای راهنمای همان پروژه مستقر کند (مطابق با `.agents/rules/automatic_rule_propagation.md`). --- ## ۲. استانداردهای توسعه رابط کاربری و معماری - **فناوری و ساختار:** پروژه بر پایه Vite + React + TypeScript توسعه یافته است. - **تایپوگرافی و جهت متن (RTL/LTR):** رعایت فونتهای `Vazirmatn` و `Plus Jakarta Sans`، استفاده از `rtlUtils.ts` جهت تشخیص خودکار جهت متن ورودی کاربران و حفظ ثبات کرسر (`unicode-bidi: plaintext !important; text-align: start !important;`). -- **چندزبانه بودن کامل پنل مدیریت (۳ زبان):** پنل مدیریت منحصراً از ۳ زبان (`fa` فارسی، `ar` عربی، `en` انگلیسی) در مسیر `src/locales/` استفاده میکند. تمام متون جدولها، فیلدها، دکمهها و نشانها باید در هر ۳ فایل دیکشنری زبان (`fa.json`, `ar.json`, `en.json`) تعریف و همگام شوند. - - **قانون هماهنگی ترجمه:** هیچ تغییری نباید تکزبانه باشد؛ هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید همزمان در دو زبان دیگر اعمال شود تا تست `locales.test.ts` کاملاً پاس شود و هیچ کلید ناقص یا نامتعادلی وجود نداشته باشد. +- **چندزبانه بودن کامل، صفر متن هاردکد و همگامسازی صددرصدی (۳ زبان):** پنل مدیریت منحصراً از ۳ زبان (`fa` فارسی، `ar` عربی، `en` انگلیسی) در مسیر `src/locales/` استفاده میکند. + - **ممنوعیت مطلق متن هاردکد:** تمام متون جدولها، ستونها، فیلدها، دکمهها، نشانها، پیامهای مودال و نوتیفیکیشنها باید منحصراً از طریق `useTranslation` فراخوانی شوند. + - **همگامسازی همزمان در هر ۳ زبان:** هر کلید جدید یا اصلاحشده در یکی از این ۳ زبان باید الزماً و همزمان در دو زبان دیگر (`fa.json`, `ar.json`, `en.json`) با ترجمه حرفهای و بومی اعمال شود تا تست اعتبارسنجی `locales.test.ts` کاملاً پاس شود و هیچ کلید ناقص، خالی یا نامتقارنی باقی نماند. + - **تقارن کامل تغییرات کلمات (Word Modification Parity):** هر زمان کلمهای در یک متن تغییر کند، کلماتی حذف شوند (مانند حذف لیست فرمتهای مجاز یا کوتاهسازی برچسبها) یا به متنی اضافه شوند، باید همان تغییر مفهومی و گرامری بلافاصله در هر ۳ فایل اعمال گردد و قرار دادن متن انگلیسی به عنوان موقت در زبانهای فارسی یا عربی اکیداً ممنوع است (مطابق قانون اختصاصی `.agents/rules/translation_synchronization.md`). --- diff --git a/index.html b/index.html index 956f933..be71606 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@ -