اللغات
كيف يعمل الموقع بالإنجليزية والعربية، وكيف تُختار اللغة، وما الذي تغيّره لإضافة لغة.
اللغات المتوفرة
| اللغة | العنوان | الاتجاه | الخط |
|---|---|---|---|
| الإنجليزية، وهي الافتراضية | /en | من اليسار إلى اليمين | Inter |
| العربية | /ar | من اليمين إلى اليسار | Noto Sans Arabic |
كل نص ظاهر يأتي من messages/en.json أو messages/ar.json، بما في ذلك النصوص البديلة، وتسميات الأزرار لقارئات الشاشة، وعنوان الصفحة ووصفها.
كيف تُختار اللغة
- اللغة هي الجزء الأول من العنوان:
/enأو/ar. - العنوان الذي لا يحمل لغة، مثل
/، يُعاد توجيهه إلى لغة الزائر: العربية لمتصفح مضبوط على العربية، والإنجليزية لأي لغة أخرى. ولبقية جلسة المتصفح يتذكر آخر لغة فُتحت، في ملف تعريف الارتباطNEXT_LOCALE. - يفتح
/enو/arلغتهما دائمًا. - يعرض مبدّل اللغة في شريط التنقل وقائمة الجوال اسم اللغة الأخرى، ويُبقي الزائر على الصفحة نفسها.
- تتبع
langوdirفي الصفحة اللغة، وكذلك الرابط الأساسي وروابط اللغات لمحركات البحث.
غيّر نصًا
غيّر القيمة في ملفي الرسائل واحتفظ بالمفتاح. يظهر المفتاح المفقود من أحد الملفين كخطأ رسالة مفقودة في صفحة تلك اللغة، لذا أبقِ الملفين متطابقين.
من اليمين إلى اليسار
يستخدم التخطيط فئات Tailwind المنطقية مثل ms-* وpe-* وstart-* وend-*، فتنقلب الهوامش والحشوات والمواضع تلقائيًا في العربية. استخدمها، لا ml-* أو left-*، عندما تضيف عناصر. وتنعكس أيقونات الأسهم بالفئة rtl:-scale-x-100.
تسميات الموقع العربية
عندما تكتب عن الموقع بالعربية، استخدم التسميات التي تعرضها صفحته:
| الإنجليزية | العربية | المكان |
|---|---|---|
Features | المميزات | شريط التنقل |
Work | الأعمال | شريط التنقل |
Process | المنهجية | شريط التنقل |
Pricing | الأسعار | شريط التنقل |
Contact | تواصل معنا | زر شريط التنقل |
Monthly | شهري | الأسعار |
Annual | سنوي | الأسعار |
Send Message | إرسال الرسالة | نموذج التواصل |
أضف لغة
الفرنسية كمثال، بالرمز fr:
أضفها إلى التوجيه
في
src/i18n/routing.ts، أضف الرمز إلىlocales:src/i18n/routing.tslocales: ["en", "ar", "fr"],أنشئ ملف رسائلها
انسخ الملف الإنجليزي وترجم قيمه. احتفظ بكل المفاتيح.
الطرفيةفيlanding-page-template-1cp messages/en.json messages/fr.jsonسمّها في مبدّل اللغة
أضف
"fr": "Français"ضمنlocaleSwitcher.namesفي كل ملف رسائل.امنحها لغة لبطاقات الشبكات الاجتماعية
في
src/i18n/openGraphLocales.ts، أضفfr: "fr_FR". يفشل فحص الأنواع أثناء البناء حتى يكون لكل لغة مدخل هناك.للغة من اليمين إلى اليسار فقط
أضف رمزها إلى
RTL_LOCALESفيsrc/i18n/getDirection.ts. يحمّل التخطيط Noto Sans Arabic للرمزarفقط، أما لنظام كتابة آخر فحمّل خطًا له فيsrc/app/[locale]/layout.tsx.
المبدّل يبدّل بين لغتين
يعرض أول لغة غير اللغة الحالية. مع ثلاث لغات أو أكثر، استبدله بقائمة في src/components/LocaleSwitcher/.