انتقل إلى المقال

Velraاللغات

اللغات

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

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

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

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

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

الإنجليزية هي الافتراضية. يُخزَّن عنوان العقار ووصفه المختصر ووصفه ومدينته ونصوص تحسين الظهور، واسم الحي ووصفه، باللغتين، ويُدخَل ذلك جنبًا إلى جنب في لوحة التحكم؛ الإنجليزية مطلوبة، ويمكن أن تتبعها العربية لاحقًا. وتملأ البيانات الأولية العربية للوكالة التجريبية.

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

  • اللغة هي الجزء الأول من العنوان. المسار بدونها يذهب إلى /en (وجذر لوحة التحكم يذهب إلى /en/dashboard).
  • تبدّل قائمة اللغة ذلك الجزء من العنوان وتبقي الصفحة نفسها.
  • ترسل الواجهتان الأماميتان لغة الصفحة إلى واجهة API، فتعود رسائلها باللغة نفسها.

غيّر نصًا

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

التطبيقمساحات الأسماء
الموقع العامagency, amenities, common, compare, contact, home, layouts, privacy, properties, property, saved, viewing
لوحة تحكم الوكالةai-assistant وauth وcommon وdashboard (مع مجلد لكل صفحة: domain وleads وoverview وproperties وproperty-editor وsettings وstudio وviewings) وdemo-credentials وlayouts
  • المفتاح الناقص في ar.json يظهر كرسالة ناقصة في الجهة العربية، لذلك أبقِ الملفين متطابقين.
  • النص داخل الأقواس {curly} يملؤه التطبيق، مثل {count} أو {name}. أبقِ هذه الكلمات كما هي في اللغتين.
  • تسميات المرافق وأنواع العقارات والحالات هي أيضًا رسائل: messages/amenities في الموقع وmessages/dashboard/domain في لوحة التحكم.

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

  • ترجع رسائل الأخطاء وmessage الخاصة بالكتابة الناجحة بلغة الترويسة Accept-Language. تُعد ar-AE عربية؛ وأي لغة لا تملكها واجهة API تعود إلى الإنجليزية.
  • نصوصها الخاصة ملفات JSON في back-end/src/i18n/translations/en/ وar/، ملف لكل منطقة: admin وauth وcommon وlead وneighborhood وproperty وroles وsettings وviewing.
  • تعود العقارات والأحياء باللغتين، بالشكل { "en": "…", "ar": "…" }، وتختار الواجهة الأمامية إحداهما.

أضف لغة إلى الموقع

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

  1. أضف الرمز إلى locales في src/config/i18n.ts وفي src/proxy.ts.
  2. انسخ كل ملف messages/<namespace>/en.json إلى ملف باسم الرمز الجديد، وترجم القيم.
  3. إذا كانت اللغة تُكتب من اليمين إلى اليسار، فوسّع directionOf في src/config/i18n.ts الذي لا يعرف سوى ar.
  4. أضف نصوصها إلى name وdescription في src/config/brand.config.ts.
  5. الكود الذي يختار نصًا مخزنًا حسب اللغة، مثل src/lib/utils/pickLocalized.ts وتنسيق التاريخ والوقت في طلب المعاينة والتقويم، يختار بين en وar. ابحث في src/ عن "ar" وعالج الرمز الجديد هناك أيضًا.

أضف لغة إلى لوحة التحكم

  1. أضف الرمز إلى locales في src/config/locales.ts (وإلى RTL_LOCALES إذا كانت تُكتب من اليمين إلى اليسار) وفي src/proxy.ts. اللغة المضافة هناك تضيف أيضًا تبويبها إلى كل حقل يُحفظ بعدة لغات.
  2. انسخ كل ملف messages/**/en.json إلى ملف باسم الرمز الجديد، وترجم القيم.
  3. ابحث في src/ عن "ar" لتجد المواضع القليلة التي ما زالت تسمّي اللغتين مباشرة.
  4. اللغة الثالثة في النصوص المخزنة تحتاج أيضًا إلى أن تقبلها واجهة API.

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

تعرف واجهة API اللغتين en وar في back-end/src/i18n/i18n.service.ts. أضف الرمز الجديد هناك، وانسخ src/i18n/translations/en/ إلى مجلد باسمه، وترجم الملفات. النصوص المخزنة زوج { en, ar } يتحقق منه src/common/dto/localized.dto.ts، لذلك فإضافة لغة ثالثة في البيانات تغيير في تلك الأصناف والكيانات والبيانات الأولية.

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

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

حل المشكلات

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

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