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

Kinoraاللغات

اللغات

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

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

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

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

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

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

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

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

غيّر نصًا

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

مساحة الأسماءما تحتويه
ai-assistantصفحة المساعد
authصفحات تسجيل الدخول والتسجيل وكلمة المرور
commonكلمات المكونات المشتركة: الجداول، والفلاتر، والرفع، والبحث
dashboardكل صفحات لوحة التحكم والإشعارات، بمجلد لكل قسم (activity وworkouts وnutrition وclients وcontent وsettings وغيرها)
demo-credentialsلوحة العرض التجريبي العام التي يضيف فيها الزائر مفتاح الذكاء الاصطناعي الخاص به
layoutsشريط التنقل، وإطار الشريط الجانبي، وتنبيه البيانات التجريبية
  • المفتاح المفقود من ar.json يظهر كخطأ رسالة مفقودة في النسخة العربية، لذا أبقِ الملفين متطابقين.
  • تسميات الشريط الجانبي هي الاستثناء: فهي مكتوبة بالإنجليزية والعربية في src/layouts/dashboard/sidebar/config/navigationData.ts، الذي يغذّي البحث أيضًا.
  • النص داخل الأقواس {curly} يملؤه التطبيق، مثل {count} أو {name}. أبقِ تلك الكلمات كما هي في اللغتين.
  • تُخزَّن الإشعارات على أنها ما حدث، لا على شكل جملة أبدًا، وتكتب لوحة التحكم الكلمات من ملفات رسائلها. لذا فإن لغة جديدة لها مسألة ترجمة، لا تغيير في واجهة API.

التسميات العربية الخاصة بلوحة التحكم

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

الإنجليزيةالعربيةمن يراها
Dashboardلوحة التحكمالجميع
AI Assistantالمساعد الذكيالجميع
Activityالنشاطالأعضاء
Workoutsالتمارينالأعضاء
Exercise Libraryمكتبة التمارينالأعضاء
Nutritionالتغذيةالأعضاء
Meal Plannerمخطط الوجباتالأعضاء
Sleepالنومالأعضاء
Healthالصحةالأعضاء
Progressالتقدمالأعضاء
Progress Photosصور التقدمالأعضاء
Communityالمجتمعالأعضاء
My Clientsعملائيالمدرب الرئيسي والمدربون الشخصيون
Gymالناديالموظفون
Contentالمحتوىالموظفون
Coachesالمدربونالموظفون
Coach Rolesأدوار المدربينالموظفون
Settingsالإعداداتالجميع
Sign Inتسجيل الدخولصفحة تسجيل الدخول

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

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

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

اللغتان مكتوبتان في عدة ملفات، لذا فإن إضافة لغة ثالثة تمسّ كلًا منها. المسارات داخل 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.

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

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

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

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

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

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

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

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

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

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

حل المشكلات

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

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