انتقل إلى المقال
Aniq-UI

E-Commerceاللغات

اللغات

كيف يعمل المتجر بالإنجليزية والعربية، وكيف تغيّر أي نص، وما الذي تغيّره لإضافة لغة.

لحزمة الحزمة الكاملة

اللغات المتوفرة

الإنجليزية والعربية، في التطبيقات الثلاثة. تعرض العربية الواجهة كلها من اليمين إلى اليسار، مع خطوطها الخاصة في المتجر.

التطبيقالإنجليزيةالعربية
المتجر/en/…/ar/…
لوحة الإدارة/en/…/ar/…
APIAccept-Language: enAccept-Language: ar

الإنجليزية هي اللغة الافتراضية. تُحفظ المنتجات والفئات باسم ووصف باللغتين، يُدخلان جنبًا إلى جنب في لوحة الإدارة.

كيف تُختار اللغة

  • اللغة هي الجزء الأول من العنوان. المسار الذي لا يتضمنها يذهب إلى /en؛ ولا تُكتشف لغة المتصفح.
  • يبدّل محدد اللغة ذلك الجزء من العنوان ويُبقي الصفحة نفسها.
  • في المتجر، يُضبط الاتجاه قبل أول عرض للصفحة، فلا تظهر الصفحة العربية من اليسار إلى اليمين ولو للحظة.
  • ترسل الواجهتان الأماميتان لغة الصفحة إلى واجهة API، فتعود رسائلها باللغة نفسها.

غيّر نصًا

كل كلمة ظاهرة موجودة في messages/<namespace>/en.json وar.json، في مجلد كل واجهة أمامية. غيّر القيمة، وأبقِ المفتاح، وغيّرها في الملفين.

التطبيقمساحات الأسماء
المتجرaccount, auth, cart, checkout, common, home, layouts, seo, store, support, tryon, wishlist
لوحة الإدارةai-assistant، وauth، وcommon، وdashboard (مع مجلد لكل صفحة)، وdemo-credentials، وlayouts
  • المفتاح المفقود من ar.json يظهر كخطأ رسالة مفقودة في النسخة العربية، لذا أبقِ الملفين متطابقين.
  • تسميات الشريط الجانبي في لوحة الإدارة هي الاستثناء: فهي مكتوبة بالإنجليزية والعربية في src/layouts/dashboard/sidebar/config/navigationData.ts.
  • النص داخل الأقواس المعقوفة {curly} يملؤه التطبيق، مثل {brand}. أبقِ تلك الكلمات كما هي في اللغتين.

التسميات العربية في التطبيقات نفسها

عندما تكتب عن المتجر بالعربية، استخدم التسميات التي تعرضها شاشاته:

الإنجليزيةالعربيةالمكان
Homeالرئيسيةقائمة المتجر
Shopالمتجرقائمة المتجر
Cartالسلةالمتجر
Checkoutإتمام الشراءالمتجر
Wishlistالمفضلةالمتجر
Sign Inتسجيل الدخولكلا التطبيقين
Track Orderتتبع الطلبالمتجر
Overviewنظرة عامةالشريط الجانبي للوحة الإدارة
AI Assistantالمساعد الذكيالشريط الجانبي للوحة الإدارة
Productsالمنتجاتالشريط الجانبي للوحة الإدارة
Categoriesالفئاتالشريط الجانبي للوحة الإدارة
Ordersالطلباتالشريط الجانبي للوحة الإدارة
Usersالمستخدمينالشريط الجانبي للوحة الإدارة
Home Pageالصفحة الرئيسيةالشريط الجانبي للوحة الإدارة
Admin Managementإدارة المسؤولينالشريط الجانبي للوحة الإدارة
Admin Rolesأدوار المسؤولينالشريط الجانبي للوحة الإدارة
Settingsالإعداداتالشريط الجانبي للوحة الإدارة
Notificationsالإشعاراتالشريط العلوي للوحة الإدارة

تسمّي صفحة الأدوار وتبويب الإعدادات الموظفين «المشرفين» بينما يسمّيهم الشريط الجانبي «المسؤولين». اختر كلمة واحدة وغيّر الأخرى في messages/dashboard/settings/ إذا كان هذا الفرق يهمك.

ما تترجمه واجهة API

  • تعود رسائل الأخطاء وmessage الخاصة بعمليات الكتابة الناجحة بلغة الترويسة Accept-Language. تُعامَل ar-SA كعربية؛ وأي لغة لا تملكها واجهة API تعود إلى الإنجليزية.
  • نصوصها ملفات JSON في back-end/src/i18n/translations/en/ وar/، ملف لكل مجال: admin وauth وcategory وcommon وcountries وorder وproduct وproject وroles وsettings وtasks وusers.
  • تعود المنتجات والفئات باللغتين، بالشكل { "en": "…", "ar": "…" }، وتختار الواجهة الأمامية إحداهما.

أضف لغة إلى المتجر

اللغتان مكتوبتان في عدة ملفات، لذا فإضافة لغة ثالثة تمس كلًّا منها. المسارات داخل storefront/.

  1. أضف رمز اللغة

    أضفه إلى قوائم اللغات في src/config/i18n.ts وsrc/proxy.ts وsrc/app/[locale]/layout.tsx وsrc/components/LanguageSwitcher.tsx، وإلى src/lib/seo/ogLocales.ts.

  2. ترجم الرسائل

    انسخ en.json إلى <code>.json في كل مجلد من المجلدات الاثني عشر داخل messages/ وترجم القيم.

  3. اضبط الاتجاه

    للغة تُكتب من اليمين إلى اليسار، أضفها إلى RTL_LOCALES في src/app/layout.tsx وإلى src/hooks/locale/useDirection.ts.

  4. وسّع ملفَي الهوية وmanifest

    يحتوي src/config/brand.config.ts وsrc/app/[locale]/manifest.ts على قيمة en وقيمة ar لكل نص: أضف قيمتك. وابحث في src/features/ عن "en" | "ar" ووسّع تلك الأنواع أيضًا.

  5. أضف خطًا لنظام كتابتها

    إذا احتاجت اللغة إلى حروف لا تتضمنها الخطوط المرفقة، فأضف خطًا إلى رابط Google Fonts في src/app/layout.tsx واستخدمه في src/styles/base.css.

تُحفظ المنتجات والفئات بالإنجليزية والعربية فقط. واللغة الثالثة تحتاج أيضًا إلى أن تحملها حقول الكتالوج في واجهة API ونموذج المنتج في لوحة الإدارة.

أضف لغة إلى لوحة الإدارة

المسارات داخل admin-dashboard/.

  1. أضف رمز اللغة

    أضفه إلى قوائم اللغات في src/config/i18n.ts وsrc/proxy.ts وsrc/app/[locale]/layout.tsx وsrc/components/LanguageSwitcher.tsx.

  2. ترجم الرسائل

    أضف ملف <code>.json بجوار كل en.json داخل messages/، بما في ذلك المجلدات داخل messages/dashboard/.

  3. ترجم الشريط الجانبي

    أضف لغتك إلى كل تسمية في src/layouts/dashboard/sidebar/config/navigationData.ts، وإلى النصوص في src/config/brand.config.ts وsrc/app/[locale]/manifest.ts.

  4. اضبط الاتجاه

    للغة تُكتب من اليمين إلى اليسار، أضفها إلى src/hooks/locale/useDirection.ts.

أضف لغة إلى واجهة API

  1. أضف رمز اللغة

    أضفها إلى supportedLocales في back-end/src/i18n/i18n.service.ts.

  2. ترجم الرسائل

    انسخ back-end/src/i18n/translations/en/ إلى مجلد يحمل اسم رمز اللغة وترجم القيم. أي مفتاح تتركه يعود إلى الإنجليزية.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.