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

Hollinaاللغات

اللغات

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

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

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

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

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

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

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

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

غيّر نصًا

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

التطبيقمساحات الأسماء
موقع الإقاماتabout, booking, checkout, common, contact, destinations, home, inquiry, layouts, privacy, saved, stay, stays
لوحة تحكم الحجوزاتai-assistant وauth وcommon وdashboard (مع مجلد لكل صفحة: bookings وcalendar وdomain وinquiries وoverview وreviews وsettings وstay-editor وstays) وdemo-credentials وlayouts
  • المفتاح الناقص في ar.json يظهر كرسالة ناقصة في الجهة العربية، لذلك أبقِ الملفين متطابقين.
  • النص داخل الأقواس {curly} يملؤه التطبيق، مثل {count} أو {name}. أبقِ هذه الكلمات كما هي في اللغتين.
  • تسميات الحالة والدفع وسبب الحظر في لوحة التحكم رسائل أيضًا، في messages/dashboard/domain.

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

  • ترجع رسائل الأخطاء وmessage الخاصة بالكتابة الناجحة بلغة الترويسة Accept-Language. تُعد ar-AE عربية؛ وأي لغة لا تملكها واجهة API تعود إلى الإنجليزية.
  • نصوصها ملفات JSON في back-end/src/i18n/translations/en/ وar/، ملف لكل جزء: admin وauth وavailability وbooking وcommon وdestination وfaq وinquiry وpayment وreview وroles وsettings وstay.
  • تعود الإقامات والوجهات وأسئلة الصفحة الرئيسية باللغتين، على شكل { "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 وtagline و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، فلغة ثالثة في البيانات تغيير في تلك الفئات والكيانات وفحص النشر والتعبئة الأولية.

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

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

حل المشكلات

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

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