اللغات
كيف تعمل لوحة التحكم بالإنجليزية والعربية، وأين يوجد كل نص، وما الذي تغيّره لإضافة لغة.
اللغات المتوفرة
| اللغة | العنوان | الاتجاه | الخط |
|---|---|---|---|
| الإنجليزية، اللغة الافتراضية | /en | من اليسار إلى اليمين | Inter |
| العربية | /ar | من اليمين إلى اليسار | Noto Sans Arabic |
كل تسمية وزر ومفتاح مخطط وعنوان جدول ورسالة نموذج وعنوان صفحة موجود باللغتين.
كيف تُختار اللغة
- اللغة هي الجزء الأول من كل عنوان:
/en/dashboard/analyticsو/ar/dashboard/analytics. - الزائر الذي يفتح
/يُوجَّه إلى/arعندما يفضّل متصفحه العربية، وإلى/enفي غير ذلك. يقوم بذلكsrc/proxy.ts. - قائمة اللغة في الترويسة، وهي علم مع رمزه، تبدّل اللغة وتُبقي المستخدم في الصفحة نفسها. وعلى الهاتف تكون في قائمة المستخدم. واللغة ضمن الإعدادات ثم التفضيلات تفعل الشيء نفسه.
من اليمين إلى اليسار
في /ar، يضبط src/app/[locale]/layout.tsx القيمتين lang="ar" وdir="rtl" على الصفحة، فينعكس التخطيط كله: ينتقل الشريط الجانبي إلى اليمين، وتُقرأ البطاقات والجداول والقوائم من اليمين إلى اليسار.
تستخدم المكوّنات أصناف Tailwind المنطقية التي تتبع الاتجاه، مثل ms-2 وpe-4 وstart-0 وtext-start. عندما تضيف عناصر، استخدم هذه بدلًا من ml-* أو pr-* أو left-* أو text-left، وإلا ظهرت الصفحة العربية بشكل خاطئ.
أين توجد النصوص
النصوص مقسّمة بحسب الصفحة تحت messages/، وفي كل مجلد ملفا en.json وar.json:
| المجلد | ما الذي يحتويه |
|---|---|
messages/common/ | الترويسة، والشريط الجانبي، ومنتقي التاريخ، والتذييل، ومبدّل الألوان، وعنوان كل صفحة ووصفها |
messages/auth/ | صفحة تسجيل الدخول وصفحة الهبوط على /en |
messages/dashboard/overview/ | النظرة العامة وودجاتها، والتحويل السريع، والإشعارات |
messages/dashboard/analytics/ | صفحة التحليلات |
messages/dashboard/transactions/ | صفحة المعاملات |
messages/dashboard/cards/ | صفحة البطاقات |
messages/dashboard/settings/ | صفحة الإعدادات |
messages/dashboard/ui-component/ | صفحة مكوّنات الواجهة |
غيّر نصًا
- غيّر القيمة في الملف الإنجليزي وما يقابلها في الملف العربي. أبقِ المفاتيح نفسها في الملفين.
- المفتاح المفقود من أحد الملفين يظهر اسمه بدل النص في صفحة تلك اللغة.
- الكلمات بين أقواس معقوفة، مثل
{theme}، يملؤها التطبيق. أبقِها كما هي.
التسميات العربية في لوحة التحكم نفسها
عندما تكتب عن لوحة التحكم بالعربية، استخدم التسميات التي تعرضها:
| الإنجليزية | العربية |
|---|---|
Sign In | تسجيل الدخول |
Overview | نظرة عامة |
Your Cards | بطاقاتك |
Analytics | التحليلات |
Transactions | المعاملات |
UI Components | مكونات واجهة المستخدم |
Settings | الإعدادات |
Export | تصدير |
Add Transaction | إضافة معاملة |
Logout | تسجيل الخروج |
أضف لغة
أضف رمزها إلى التوجيه
أضف رمز اللغة إلى
localesفيsrc/i18n/routing.ts. مثلًا الفرنسية:src/i18n/routing.tslocales: ['en', 'ar', 'fr'],أضف ملفات رسائلها
في كل مجلد من المجلدات الثمانية تحت
messages/، انسخen.jsonبرمز اللغة الجديدة وترجم القيم. أبقِ كل مفتاح وكل كلمة بين أقواس معقوفة. يحمّلهاsrc/i18n/request.tsبرمز اللغة، فيحتاج كل مجلد إلى الملف. للمجلد المشترك:الطرفيةفيdashboard-template-1cp messages/common/en.json messages/common/fr.jsonأضفها إلى قائمة اللغة
أضفها إلى
languageOptionsفيsrc/components/LanguageSelector.tsx، باسمها وتسمية قصيرة وعلم منcountry-flag-icons، مثل{ id: "fr", label: "Français", shortLabel: "FR", Flag: FR }مع إضافةFRإلى استيراد الأعلام.اضبط اتجاهها وخطها، إذا احتاجت إليهما
العربية وحدها تُعامل على أنها من اليمين إلى اليسار. للغة أخرى بهذا الاتجاه، وسّع فحوص
locale === "ar"فيsrc/app/[locale]/layout.tsxوsrc/components/calendar.tsxوsrc/components/themeToggle.tsxوsrc/features/dashboard/overview/components/CardSection/CardStack/index.tsxوQuickTransferSheet/index.tsxفي التحويل السريع. ولخط لا يغطيه Inter، أضف خطًا بـnext/fontفيlayout.tsx.
أعد تشغيل yarn dev، أو ابنِ من جديد، فتستجيب اللغة الجديدة على عنوانها الخاص، هنا /fr/login.