الحصول على دروبال اللغة المحددة استضافة
فمن الممكن لتخصيص عملية التفاوض اللغة على حد سواء لكيفية كشف لغة المستخدم وكذلك على نوع البيانات التي تطلب.
ويستند API التفاوض اللغة على مفهومين رئيسيين:
- أنواع لغة. التي تصف الأنواع الممكنة من المحتويات للترجمة
- مقدمي اللغة. والتي تسمح دروبال للكشف عن اللغة التي ينبغي أن تكون للمستخدم (لاحظ أن مقدمي لغة تسمى أساليب اللغة في دروبال 8)
الافتراضات التي تقدمها دروبال
أنواع لغة
ويعرف دروبال الأساسية الثلاثة المدمج في أنواع لغة:
لغة واجهة وهو اللغة الرئيسية الصفحة. فهو يستخدم لتقديم عناصر واجهة المستخدم المترجمة مثل العناوين والتسميات، والتعليمات، والرسائل. لغة المحتوى ويستخدم هذا لاختيار اللغة التي لعرض المحتوى الذي يتوفر في أكثر من لغة واحدة (انظر قدرات متعددة اللغات من API الميدان الجديد لمزيد من التفاصيل). لغة URL هذه هي اللغة المرتبطة عناوين المواقع. عند إنشاء URL، وسوف تستخدم هذه القيمة من خلال رابط () كقيمة افتراضية إذا لم يتم توفير تفضيل واضح.
غالبا ما يشارك أنواع لغة مختلفة على نفس القيم، ولكن بعد ذلك يمكن أن يكون القيم مستقلة إذا لزم الأمر.
مقدمي لغة
ويشمل الأساسية مقدمي التالية:
- URL - تحديد اللغة من URL (بادئة المسار أو المجال).
- الدورة - تحديد اللغة من معلمة الطلب / الدورة.
- العضو - متابعة تفضيل لغة المستخدم.
- متصفح - تحديد اللغة من إعدادات اللغة في المستعرض.
- اللغة الافتراضية - استخدام لغة الموقع الافتراضي.
هنا هو صورة مما يدل على العلاقة بين أنواع ومقدمي:
تحديد أنواع اللغة
ابتداء من عام دروبال 7، وAPI لغة تسمح وحدات ساهم في تحديد أنواع لغة إضافية من خلال hook_language_types_info () وتغيير تعريفات نوع لغة القائمة من خلال hook_language_types_info_alter ().
قد يكون هناك نوع اللغة شكلي أو ثابتة. يظهر نوع لغة للتكوين في تكوين> الإقليمية ولغة> لغات> كشف وصفحة اختيار، حيث مقدمي لغة لهذا النوع من اللغة يمكن تكوين. وهناك أنواع اللغة أيضا الثابتة التي مسبقا الإعدادات التفاوض (المعرفة من قبل وحدة)، وبالتالي لا تظهر في الصفحة التكوين. وفيما يلي مقتطف الشفرة التي تجعل من لغة المحتوى (افتراضيا يرث القيم لغة واجهة ل) شكلي:
وكل نوع اللغة شكلي يكون لهم كتلة لها الجلاد (مستقلة) لغة. من الواضح، إذا تم تكوين نوعين اللغة بنفس الطريقة، وكتل من الجلاد لغة تكون متطابقة وظيفيا، وسوف تعمل على كلا النوعين اللغة.
في دروبال 6.X، هناك نوع لغة واحدة فقط، واسمه لغة فقط. أثناء التهيئة لغة تستخدم إعدادات التفاوض اللغة المحددة لتحديد قيمتها. في دروبال 7.X، نفس العملية يحدث لكل نوع لغة محددة، انظر drupal_language_initialize () لمزيد من التفاصيل.
تحديد مقدمي لغة العرف
كل نوع لغة يمكن أن يكون إعدادات التفاوض لغة مختلفة، ويمكن أي كل نوع اللغة لديها مجموعة مختلفة من أساليب الكشف عن اللغة. أو مقدمي الخدمات. المسندة إليها.
مقدمي لغة وظائف رد بسيط هو أن تطبيق منطق معين لإرجاع رمز اللغة. على سبيل المثال، locale_language_from_url () يبحث عن بادئة مسار صحيح أو اسم المجال في URL الطلب الحالي. إذا لم مزود لغة بإرجاع رمز اللغة صالح، مزود القادم المرتبطة نوع اللغة (على أساس الوزن مزود) يتم استدعاء. بهذه الطريقة يتم تعميم مفهوم تراجع وغير مقيدة من بادئة مسار ثابت> تفضيل المستخدم> إعدادات المتصفح> برنامج اللغة الافتراضية المستخدمة في دروبال 6.x.
أيضا مقدمي لغة ووحدة تعريف من خلال hook_language_negotiation_info () ويمكن تغيير تعريفات مقدمي اللغة من خلال hook_language_negotiation_info_alter (). وفيما يلي مقتطف المثال أن يتيح تجاهلها البادئات مسار لمسارات الإدارية:
من أجل التغييرات المذكورة أعلاه ليتم تنفيذها، و "الكشف عن اللغة واختيار" النموذج يحتاج إلى المقدمة.
ويمكن أن تشمل التعاريف مزود لغة اثنين من أكثر الاسترجاعات إلى جانب مقدم اللغة نفسها:
- إذا كان مزود لغة يمكن الاستفادة من كتلة لغة الجلاد، فإن الجلاد رد السماح لها بالعودة الروابط التبديل اللغة التي تناسب منطقها، انظر locale_language_switcher_url () على سبيل المثال.
- إذا كان مزود لغة يحتاج إلى إعادة كتابة عناوين المواقع، فإنه يمكن تحديد رد url_rewrite التي ستوفر منطق إعادة الكتابة.