مقدمة
🎯 ماذا يفعل هذا الموديل؟
يتيح لك موديل Locales إدارة دعم اللغات المتعددة في مشروع OneEntry الخاص بك - استرجاع اللغات المتاحة، اكتشاف لغة المستخدم، وبناء تطبيقات دولية تقدم محتوى بعدة لغات.
فكر في الأمر كمدير لغاتك - بدلاً من ترميز اللغات بشكل ثابت في تطبيقك، تقوم بجلب قائمة اللغات النشطة من OneEntry بشكل ديناميكي، مما يسمح لمحتواك بالتكيف تلقائيًا مع مواقع مختلفة (الإنجليزية، الروسية، العربية، الإسبانية، إلخ).
📖 شرح بسيط
في التطبيقات الحديثة، تحتاج غالبًا إلى دعم لغات متعددة:
- 🌍 مواقع التجارة الإلكترونية - خدمة العملاء في دول مختلفة (الإنجليزية، الفرنسية، الألمانية)
- 📱 تطبيقات الهواتف المحمولة - تكييف واجهة المستخدم مع لغة جهاز المستخدم
- 🌐 المواقع الإلكترونية - عرض المحتوى بلغة الزائر المفضلة
- 📚 التوثيق - تقديم المساعدة بعدة لغات
- 🎮 الألعاب - ترجمة الواجهة والمحتوى
المشكلة مع ترميز اللغات بشكل ثابت:
المشاكل:
- 🔄 صعب التحديث - تحتاج إلى إعادة نشر لإضافة لغات جديدة
- 🌍 غير متزامنة - قد تختلف لغات التطبيق عن لغات نظام إدارة المحتوى
- ❌ تباينات في الترجمة - المحتوى موجود في نظام إدارة المحتوى ولكن ليس في التطبيق
- 🔧 صيانة يدوية - تحديث الكود في كل مرة تتغير فيها اللغات
حل Locales:
الفوائد:
- 🔄 دائمًا متزامن - اللغات تتطابق مع ما هو مكون في OneEntry
- 🌍 ديناميكي - إضافة/إزالة اللغات دون تغييرات في الكود
- ✅ مُعتمد - عرض اللغات التي تحتوي على محتوى فقط
- 🎯 مركزي - إدارة اللغات في مكان واحد
✨ المفاهيم الأساسية
ما هي Locale؟
Locale هي مزيج من اللغة والمنطقة يحدد كيفية عرض المحتوى:
- رمز اللغة - رمز اللغة ISO 639-1 (مثل
en,ru,ar) - رمز المنطقة - رمز الدولة ISO 3166-1 (مثل
US,GB,RU) - معرف Locale - تنسيق مجمع:
language_REGION(مثلen_US,ru_RU,ar_SA)
أمثلة:
| رمز Locale | اللغة | المنطقة | الوصف |
|---|---|---|---|
en_US | الإنجليزية | الولايات المتحدة | الإنجليزية الأمريكية |
en_GB | الإنجليزية | بريطانيا الكبرى | الإنجليزية البريطانية |
ru_RU | الروسية | روسيا | الروسية |
es_ES | الإسبانية | إسبانيا | الإسبانية الأوروبية |
es_MX | الإسبانية | المكسيك | الإسبانية المكسيكية |
ar_SA | العربية | السعودية | العربية (السعودية) |
fr_FR | الفرنسية | فرنسا | الفرنسية |
de_DE | الألمانية | ألمانيا | الألمانية |
هيكل Locale
كل Locale في OneEntry يحتوي على:
{
id: 146, // unique ID
shortCode: 'en', // short code
code: 'en_US', // full code
name: 'English (USA)', // name
nativeName: 'English (USA)', // native name
isActive: true, // is active
image: null, // image
position: 1, // position
}
لماذا تستخدم موديل Locales؟
| الفائدة | الوصف |
|---|---|
| دعم متعدد اللغات | تقديم المحتوى بلغة المستخدم المفضلة |
| قائمة لغات ديناميكية | اللغات تتزامن مع تكوين OneEntry |
| كشف Locale الافتراضي | تحديد اللغة الافتراضية تلقائيًا |
| تصفية Locale النشطة | عرض اللغات المفعلة فقط |
| إدارة مركزية | تحديث اللغات في لوحة الإدارة، وليس في الكود |
| تجربة المستخدم | السماح للمستخدمين باختيار لغتهم |
حالات الاستخدام الشائعة
| حالة الاستخدام | الوصف | المثال |
|---|---|---|
| محدد اللغة | قائمة منسدلة لتبديل اللغات | رأس الموقع مع أعلام اللغات |
| توطين المحتوى | جلب المحتوى بلغة المستخدم | منشورات المدونة باللغة الإنجليزية أو الروسية |
| التوجيه | هيكل URL لكل لغة | /en/about, /ru/about |
| منطق التراجع | عرض اللغة الافتراضية إذا كانت الترجمة مفقودة | عرض الإنجليزية إذا لم تكن الإسبانية متاحة |
| تفضيلات المستخدم | تذكر اختيار اللغة للمستخدم | حفظ locale في الكوكيز/localStorage |
📋 ما تحتاج إلى معرفته
تكوين Locales في لوحة الإدارة
لا يمكنك إنشاء Locales عبر SDK - يتم تكوينها في لوحة إدارة OneEntry:
OneEntry Admin Panel → Settings → Languages → Add Language → Select Locale
SDK مخصص لـ جلب معلومات locale، وليس لإنشاء locales.
Locales النشطة مقابل غير النشطة
ليس كل locales المكونة قد تكون نشطة:
| الحالة | المعنى | متى تستخدم |
|---|---|---|
نشطة (isActive: true) | locale مفعلة ولديها محتوى | عرض في محدد اللغة |
غير نشطة (isActive: false) | locale معطلة أو قيد الإعداد | إخفاء عن المستخدمين |
أفضل ممارسة: دائمًا قم بالتصفية حسب isActive عند بناء محددات اللغة
Locale الافتراضي
كل مشروع OneEntry لديه locale افتراضي واحد:
- locale الافتراضي (
isDefault: true) - اللغة الأساسية - تُستخدم عندما لا يتم تحديد locale
- تُستخدم كاحتياطي عندما تكون الترجمة مفقودة
رمز Locale مقابل الرمز القصير
كل locale لها تنسيقين للرمز:
| الحقل | التنسيق | المثال | الاستخدام |
|---|---|---|---|
code | language_REGION | en_US, ru_RU | تحديد locale الكامل |
shortCode | language | en, ru | تحديد اللغة فقط |
📊 جدول مرجعي سريع
| الطريقة | الوصف | حالة الاستخدام |
|---|---|---|
| getLocales() | الحصول على جميع locales (نشطة وغير نشطة) | جلب اللغات المتاحة |
❓ الأسئلة الشائعة (FAQ)
كيف أضيف لغات جديدة إلى مشروعي؟
لا يمكنك إضافة locales عبر SDK. يتم تكوين locales في لوحة إدارة OneEntry.
كيف أضبط اللغة الافتراضية؟
لا يمكنك ضبط locale الافتراضي عبر SDK. يتم تكوين locale الافتراضي في لوحة إدارة OneEntry:
ملاحظة: يمكن أن يكون هناك locale افتراضي واحد فقط في كل مرة.
هل يجب أن أظهر locales غير النشطة للمستخدمين؟
لا! دائمًا قم بالتصفية حسب isActive:
لماذا؟ قد لا تحتوي locales غير النشطة على ترجمات كاملة.
كيف أتعامل مع الترجمات المفقودة؟
استخدم منطق التراجع
هل يمكنني تخزين locales في الذاكرة المؤقتة؟
نعم! نادرًا ما تتغير locales، لذا يُوصى بالتخزين المؤقت.
هل يمكنني استخدام Locales مع Next.js i18n؟
نعم! دمج locales من OneEntry مع Next.js.
كيف أجمع locales حسب اللغة؟
اجمع المتغيرات لنفس اللغة
ماذا لو كنت بحاجة لترجمة عناصر واجهة المستخدم (وليس محتوى CMS)؟
موديل Locales من OneEntry مخصص فقط لمحتوى CMS. لترجمة واجهة المستخدم:
الخيار 1: استخدم مكتبة i18n (react-i18next، next-i18next)
الخيار 2: تخزين ترجمات واجهة المستخدم في OneEntry
إنشاء نوع صفحة "ترجمات" وجلب سلاسل الترجمة
💡 ملاحظات مهمة
Locales للقراءة فقط
موديل Locales هو للقراءة فقط:
- ✅ جلب locales
- ✅ تصفية حسب الحالة النشطة
- ✅ العثور على locale الافتراضي
- ❌ لا يمكن إنشاء locales
- ❌ لا يمكن تحديث locales
- ❌ لا يمكن حذف locales
لإجراء التعديلات: استخدم لوحة إدارة OneEntry.
دائمًا قم بتصفية Locales النشطة
عرض فقط locales النشطة للمستخدمين
لماذا؟ قد لا تحتوي locales غير النشطة على ترجمات كاملة.
يُوصى بالتخزين المؤقت
نادرًا ما تتغير locales - نفذ التخزين المؤقت
تزامن مع محتوى Locales
تأكد من تطابق لغات واجهة المستخدم مع المحتوى المتاح
🎓 أفضل الممارسات
- دائمًا قم بتصفية locales النشطة - عرض اللغات المفعلة فقط
- تخزين locales في الذاكرة المؤقتة - نادرًا ما تتغير، خزّن لأداء أفضل
- استخدم locale الافتراضي كاحتياطي - التعامل مع الترجمات المفقودة
- تذكر تفضيل المستخدم - تذكر اختيار اللغة
- تحقق من رموز locales - تحقق من وجود locale قبل الاستخدام
- اكتشاف لغة المتصفح - اختيار لغة المستخدم تلقائيًا
- اجمع حسب اللغة - عرض المتغيرات اللغوية بشكل منطقي
مزيد من المعلومات حول واجهة المستخدم للموديل https://doc.oneentry.cloud/docs/category/languages
تعريف موديل Locales
يمكن موديل 'Locales' من دعم اللغات المتعددة في OneEntry.
بفضل دعم اللغات المتعددة في منصة OneEntry، يمكنك تخصيص واجهة لوحة التحكم الخاصة بك بشكل مرن وإدارة اللغات في مشروعك بشكل مريح. في هذا القسم، يمكنك التعرف على مبادئ العمل مع اللغات.
const { Locales } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 الوثائق ذات الصلة
- موديل الصفحات - جلب محتوى الصفحات المترجمة
- موديل المنتجات - إدارة المنتجات متعددة اللغات
- موديل GeneralTypes - تصنيف نوع الكيان
- موديل Admins - المستخدمون الإداريون الذين يديرون locales