استخدِم عمليات إعادة الكتابة المتوافقة مع المعايير الدولية ("عمليات إعادة الكتابة المتوافقة مع المعايير الدولية") لعرض محتوى مختلف استنادًا إلى بلد المستخدم أو لغته المفضّلة. في ما يلي بعض الأمثلة على الإعدادات التي يمكنك ضبطها:
عرض المحتوى نفسه باللغة الفرنسية لكل المستخدمين الذين يفضّلون اللغة الفرنسية (بغض النظر عن البلد)
مثال: صفحة رئيسية تتضمّن نصًا باللغة الفرنسيةعرض محتوى باللغة الفرنسية القياسية للمستخدمين الذين يفضّلون اللغة الفرنسية، ولكن بالنسبة إلى المستخدمين الكنديين الذين يفضّلون اللغة الفرنسية، يتم عرض محتوى باللغة الفرنسية الكندية بدلاً من ذلك.
مثال: صفحة رئيسية تستخدم عبارات فرنسية عادية مقابل صفحة رئيسية تستخدم عبارات فرنسية كنديةعرض المحتوى نفسه لكل المستخدمين الكنديين (بغض النظر عن اللغة المفضّلة لديهم)
مثال: صفحة رئيسية تستخدم اللغة "الافتراضية" لموقعك الإلكتروني ولكنها تتضمّن ميزة خاصة بكندا (مثل تصميم مرتبط بمناسبة)عرض محتوى بالفرنسية الكندية للمستخدمين الكنديين الذين يفضّلون اللغة الفرنسية
مثال: صفحة رئيسية تتضمّن عبارات بالفرنسية الكندية وميزة خاصة بكندا (مثل تصميم مرتبط بمناسبة)
تحدّد Firebase Hosting بلد المستخدم من عنوان IP الخاص به، وتحدّد إعدادات اللغة المفضّلة للمستخدم من عنوان Accept-Language
(الذي يحدّده متصفّح الويب تلقائيًا عادةً).
إعداد عمليات إعادة الكتابة المتوافقة مع النشر على نطاق عالمي
لإعداد عمليات إعادة الكتابة المتوافقة مع تدويل المحتوى لموقعك الإلكتروني Hosting، عليك إنشاء دليل "محتوى متوافق مع تدويل المحتوى" لجميع المحتوى المترجم، ثم إضافة السمة i18n
إلى ملف firebase.json
للإشارة إلى دليل "المحتوى المتوافق مع تدويل المحتوى" الجديد.
في ما يلي الخطوات المفصّلة التي يجب اتّباعها:
في مجلد
public
ضمن دليل التطبيق المحلي، أنشئ مجلدًا منفصلاً لـ "المحتوى المتوافق مع معايير اللغة"، ثم أنشئ مجلدات فرعية لكل تركيبة من اللغة والبلد التي يتيحها موقعك الإلكتروني.في كل مجلد فرعي، أضِف المحتوى الخاص بهذا المزيج، مثل الصفحات الرئيسية ذات الطابع الاحتفالي أو صفحات 404 الخاصة بلغة معيّنة.
في ما يلي مثال على دليل "محتوى متعدد اللغات" باسم
localized-files
:public/ index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ ALL_ca/ index.html es_ALL/ index.html 404.html fr/ index.html 404.html fr_ca/ index.html
يحتوي الدليل
localized-files/
على مجلدات فرعية منفصلة لكل مجموعة من اللغات والبلدان التي يتيحها موقعك الإلكتروني. يجب أن يتّبع نمط التسمية لكل مجلد فرعي أحد التنسيقَين التاليَين:languageCode_countryCode
: يحتوي على محتوى مخصّص للمستخدمين الذين لديهم إعدادات اللغة المفضّلة ورمز البلد
languageCode
: يحتوي على محتوى مخصّص للمستخدمين الذين يفضّلون هذه اللغة، ولكن المحتوى ليس خاصًا ببلد معيّن، أي أنّه يعادلlanguageCode_ALL
راجِع القسم الفرعي رموز البلدان واللغات أدناه للحصول على مزيد من التفاصيل حول هذه الرموز. يمكنك استخدام قيمة
ALL
(مع مراعاة حالة الأحرف) للإشارة إلى أي بلد (مثلes_ALL/
) أو أي لغة (مثلALL_ca/
).لا يشترط أن تتضمّن الملفات في مجلد فرعي ملفات مماثلة في الدليل
public
أو في مجلدات فرعية أخرى. يمكنك إنشاء محتوى مخصّص بالكامل للغة و/أو بلد معيّن.أضِف السمة
i18n
إلى ملفfirebase.json
وحدِّد الدليل الذي يحتوي على "محتوى متعدد اللغات". لنتابع مثالنا:// firebase.json "hosting": { "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "i18n": { "root": "/localized-files" // directory that contains your "i18n content" } ... }
يجب أن يكون الدليل المحدّد لـ
root
هو اسم الدليل الذي يحتوي على كل المجلدات الفرعية الخاصة بـ "المحتوى المتوافق مع اللغات المختلفة". إذا وضعت جميع المجلدات الفرعية الخاصة بـ "المحتوى المتوافق مع معايير التدويل" في جذر دليلpublic
، استخدِم/
كقيمةroot
. الشرطات المائلة في بداية ونهاية قيمةroot
هي قيم اختيارية.انشر "محتوى i18n" وإعداداتك على موقعك الإلكتروني Hosting.
يمكنك اختبار إعداداتك باستخدام عمليات إلغاء ملفات تعريف الارتباط.
رموز البلدان واللغات
عند تسمية المجلدات الفرعية الخاصة بـ "المحتوى المتوافق مع عدة لغات"، يجب استخدام أحرف صغيرة لكل من رموز البلدان واللغات. يمكنك استخدام قيمة ALL
(حساسة لحالة الأحرف) للإشارة إلى أي بلد (مثل es_ALL/
) أو أي لغة (مثل ALL_ca/
).
تحصل Hosting على رمز البلد من عنوان IP الخاص بالمستخدم. رموز البلدان هي رموز مكوّنة من حرفَين وفقًا لمعيار ISO 3166-1 alpha-2.
يتم الحصول على رموز اللغة من عنوان الطلب Accept-Language
الخاص بالمستخدم
(يتم عادةً ضبطها تلقائيًا بواسطة متصفح الويب).
وهي رموز ISO 639-1.
يُرجى مراعاة ما يلي عند استخدام رموز اللغات:
عندما يبحث Hosting عن "محتوى متعدد اللغات" لعرضه، يرتب اللغات استنادًا إلى قيم الجودة في عنوان
Accept-Language
.يزيل Hosting أي علامات فرعية خاصة بالمنطقة والبلد في رأس
Accept-Language
، وبالتالي لا يمكن أن يحتوي رمز اللغة في اسم مجلد فرعي "خاص بالمحتوى المتوافق مع معايير اللغة العالمية" على هذه العلامات الفرعية. على سبيل المثال، لا يمكنك استخدامes-419
أوes-US
كرمز لغة في اسم مجلد فرعي، ولكن يمكنك استخدامes
.إذا كنت تريد عرض محتوى خاص بمنطقة أو بلد معيّن، يمكنك إنشاء مجلدات فرعية تحتوي على المحتوى الخاص باللغة والبلد اللذين تريد إتاحتهما.
ترتيب الأولوية لـ "المحتوى المتوافق مع اللغات المختلفة"
في حال إعداد عمليات إعادة كتابة i18n، يعرض Hosting المحتوى استنادًا إلى ترتيب الأولوية التالي:
مساحات الأسماء المحجوزة التي تبدأ بشريحة مسار
/__/*
عمليات إعادة التوجيه التي تم إعدادها
المحتوى الثابت الذي يتضمّن تطابقًا تامًا
رمز اللغة + رمز البلد (مثلاً، المحتوى من
fr_ca/
)
يتبع الترتيب قيم الجودة لكل لغة في العنوانAccept-Language
للطلب.رمز البلد فقط (مثلاً، محتوى من
ALL_ca/
)رمز اللغة فقط (على سبيل المثال، المحتوى من
fr/
أوes_ALL/
)
يتبع الترتيب قيم الجودة لكل لغة في عنوانAccept-Language
للطلب.المحتوى الثابت الذي يتطابق تمامًا مع المحتوى "الافتراضي"
هذا هو المحتوى الذي يقع خارج دليل "محتوى i18n"، مثل المحتوى الموجود في الجذر من الدليلpublic
.
عمليات إعادة الكتابة التي تم ضبطها
التعامل مع أخطاء 404
صفحات i18n 404
تتبع هذه الصفحات ترتيب الأولوية نفسه المذكور أعلاه للمحتوى الثابت الذي يتطابق تمامًا مع طلب البحث.صفحة 404 مخصّصة
صفحة 404 التلقائية (مقدَّمة من Firebase)
مثال على ترتيب الأولوية
لنواصل مثالنا من الأعلى. سنستخدم دليل الأمثلة نفسه وطلب مثال.
مثال على دليل مشروع محلي يتضمّن دليل "محتوى تدويل" (يُسمى
localized-files
)public/ index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ ALL_ca/ index.html es_ALL/ index.html 404.html fr/ index.html 404.html fr_ca/ index.html
مثال على معلومات الطلب
رموز اللغة:
fr
وen
(الفرنسية ثم الإنجليزية)
يتم ترتيب رموز اللغة استنادًا إلى قيم الجودة في العنوانAccept-Language
.رمز البلد:
ca
(كندا)
وفقًا لترتيب الأولوية للمطابقة التامة وقيم الجودة الخاصة بتفضيلات اللغة، سيبحث Hosting في الدلائل عن صفحة مطلوبة بالترتيب التالي.
public/localized-files/fr_ca/
public/localized-files/en_ca/
public/localized-files/ALL_ca/
public/localized-files/fr_ALL/
public/localized-files/fr/
public/localized-files/en_ALL/
public/localized-files/en/
public/
التعامل مع أخطاء 404
أي صفحة سيتم عرضها للمستخدم؟
الصفحة المطلوبة:
index.html
الصفحة المطلوبة:
awesome-page.html
يُرجى ملاحظة ما يلي بشأن عملية البحث عن دليل "محتوى i18n" وعرضه:
لا يحتوي الدليل
localized-files/
في الواقع على المجلدات الفرعيةen_ca/
أوen_ALL/
أوen/
، لذا سيتخطى Hosting قائمة الأولوية إلى أن يعثر على مجلد فرعي مطابق لمجموعة اللغة والبلد الخاصة بالطلب.على الرغم من أنّ الدليل
localized-files/
يحتوي على مجلد فرعيes_ALL/
، لا يتضمّن الطلب الوارد في المثال أعلاه رمز اللغةes
أوes-foo
، وبالتالي لن يبحث Hosting عن "محتوى متعدد اللغات" يطابقes
.المجلدات الفرعية التي تحمل الاسمَين
fr/
وfr_ALL/
متطابقة من منظور الإعدادات المفضّلة للبلد واللغة لدى المستخدم. ومع ذلك، إذا كان كلا المجلّدين الفرعيين متوفّرَين، ستعرض Hosting محتوىfr_ALL/
قبل محتوىfr/
.
تجاوز رموز اللغة والبلد باستخدام ملفات تعريف الارتباط
يمكنك تغيير المحتوى الذي يتم عرضه باستخدام ملفات تعريف الارتباط لتجاوز عناوين البلد واللغة.
في ما يلي بعض الطرق التي يمكنك من خلالها استخدام عمليات إلغاء ملفات تعريف الارتباط:
اختبِر ميزة باستخدام مجموعات مختلفة من اللغات والبلدان لمعرفة المحتوى الذي يتم عرضه.
يمكنك السماح للمستخدمين بتغيير المحتوى الذي يظهر لهم. على سبيل المثال، يمكنك تنفيذ أداة اختيار اللغة، ثم ضبط ملف تعريف الارتباط
firebase-language-override
الخاص بالمستخدم وفقًا لذلك.
لضبط عمليات إلغاء ملفات تعريف الارتباط، اضبط ملفات تعريف الارتباط باستخدام أحد الاسمين التاليين أو كليهما:
firebase-country-override
وfirebase-language-override
. على سبيل المثال،
يستبدل مقتطف رمز JavaScript التالي رمز البلد بـ ca
ويستبدل العنوان Accept-Language
بـ fr,en
:
document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";
يجب أن تكون عمليات إلغاء ملفات تعريف الارتباط الخاصة باللغة عبارة عن قائمة مفصولة بفواصل لرموز اللغات حسب ترتيب الأفضلية، بدون علامات فرعية أو قيم الجودة.
لا تظهر عمليات إلغاء ملفات تعريف الارتباط في السجلات.