اللغات
اللغتان اللتان تأتي بهما الصفحة، وكيف تعمل العربية من اليمين إلى اليسار، وكيف تضيف لغة.
اللغات المضمّنة
| اللغة | العنوان | النصوص | الاتجاه |
|---|---|---|---|
| الإنجليزية (الافتراضية) | /en | messages/en.json | من اليسار إلى اليمين |
| العربية | /ar | messages/ar.json | من اليمين إلى اليسار |
فتح / يرسل الزائر إلى اللغة التي يفضّلها متصفحه، وإلى الإنجليزية إن لم يفضّل أيًا منهما. في شريط القائمة زر للغة الأخرى؛ وعلى الهواتف يوجد داخل القائمة.
من اليمين إلى اليسار
يضبط التخطيط lang وdir على الصفحة حسب اللغة، فتصبح النصوص وشريط القائمة ونص المنتج والأزرار في العربية من اليمين إلى اليسار. أما العجلة ثلاثية الأبعاد والفواكه العائمة والثلج والكلمة الضخمة خلف العلب فتحافظ على اتجاهها في اللغتين.
يستخدم النص العربي خط Cairo، عبر القاعدة html[lang="ar"] body في src/app/globals.css. واللغات التي تُكتب من اليمين إلى اليسار هي القائمة RTL_LOCALES في src/i18n/routing.ts.
أضف لغة
تضيف الخطوات الفرنسية، fr. استخدم رمز اللغة المكوّن من حرفين.
أضف الرمز إلى التوجيه
في
src/i18n/routing.ts، أضفه إلىlocales. وإذا كانت اللغة تُكتب من اليمين إلى اليسار، فأضفه إلىRTL_LOCALESأيضًا.src/i18n/routing.tslocales: ["en", "ar", "fr"],أنشئ ملف رسائلها
انسخ الملف الإنجليزي، ثم ترجم كل قيمة. وأبقِ المفاتيح كما هي.
الطرفيةفيjuicycp messages/en.json messages/fr.jsonسمّها في مبدّل اللغة
يعرض المبدّل كل لغة باسمها بلغتها، من
localeSwitcher.names. أضف الاسم الجديد إلى كل ملفات الرسائل، بما فيها الملف الجديد.messages/en.json"names": { "en": "English", "ar": "العربية", "fr": "Français" }أعد التشغيل وافتحها
أوقف
yarn devوشغّله مرة أخرى، ثم افتح localhost:3030/frمحلي.النتيجة المتوقعة: تفتح الصفحة باللغة الجديدة، ويعرض شريط القائمة زرًا لكل من اللغتين الأخريين.
تواجه مشكلة؟
اللغة المكتوبة بخط لا يغطيه Arial ولا Cairo تحتاج إلى خط خاص بها: حمّله في src/app/[locale]/layout.tsx كما يُحمَّل Cairo، وأضف له قاعدة في src/app/globals.css مثل قاعدة العربية.
غيّر اللغة الافتراضية أو احذف لغة
defaultLocale في src/i18n/routing.ts هي اللغة التي يحصل عليها الزائر عندما لا يفضّل متصفحه أيًا من لغاتك. لحذف لغة، أزلها من locales وRTL_LOCALES، واحذف ملف رسائلها، وأزل اسمها تحت localeSwitcher.names في الملفات الأخرى. وعندما تبقى لغة واحدة، لا يعرض مبدّل اللغة أي زر.