استخدِم إعادة كتابة المحتوى بلغات مختلفة ("إعادة كتابة i18n") لعرض محتوى مختلف. استنادًا إلى بلد المستخدم أو لغته المفضّلة إليك بعض الأمثلة الإعدادات التي يمكنك إعدادها:
عرض المحتوى الفرنسي نفسه لجميع المستخدمين الذين يفضّلون الفرنسية (بغض النظر عن في البلد).
مثال: صفحة رئيسية بنص فرنسيعرض محتوى باللغة الفرنسية العادية للمستخدمين الذين يفضلون الفرنسية، ولكن المستخدمون الكنديون الذين يفضّلون الفرنسية ويعرضون محتوًى باللغة الفرنسية الكندية بدلاً من ذلك
مثال: صفحة رئيسية تحتوي على صياغة فرنسية قياسية مقابل صفحة رئيسية تحتوي على الصياغة الفرنسية الكنديةعرض المحتوى نفسه لجميع المستخدمين في كندا (بغض النظر عن اللغة المفضّلة).
مثال: صفحة رئيسية تحتوي على القيمة "التلقائية" لموقعك الإلكتروني ولكن مع ميزة خاصة بكندا (مثل مظهر الأعياد)عرض محتوى باللغة الفرنسية الكندية للمستخدمين الكنديين الذين يفضّلون اللغة الفرنسية
مثال: صفحة رئيسية تحتوي على صياغة باللغة الفرنسية الكندية وصفحة خاصة الميزة (مثل مظهر الأعياد)
تحدّد ميزة "استضافة Firebase" بلد المستخدم من عنوان IP لديه
إعدادات اللغة المفضّلة للمستخدم من عنوان طلب Accept-Language
(عادةً
تلقائيًا من خلال متصفّح الويب).
إعداد عمليات إعادة الكتابة بتنسيق i18n
لإعداد إعادة كتابة i18n لموقع الاستضافة، يجب إنشاء "i18n".
المحتوى" لكل المحتوى المُترجَم، ثم أضِف السمة i18n
إلى ملف firebase.json
للإشارة إلى "محتوى i18n" الجديد الدليل.
في ما يلي الخطوات التفصيلية التي يجب اتّباعها:
أنشئ دليلاً منفصلاً ضمن مجلد
public
في دليل التطبيقات المحلية. "لمحتوى i18n"، ثم أنشئ مجلدات فرعية لكل لغة البلد التي يعتمدها موقعك الإلكتروني.في كل مجلد فرعي، أضف المحتوى الخاص بهذه المجموعة، مثل صفحات رئيسية بطابع الأعياد أو صفحات 404 بلغات معيَّنة.
في ما يلي مثال على "محتوى بتنسيق i18n" دليل يسمى
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
وحدِّد الذي يحتوي على "محتوى i18n". متابعة مثالنا:// firebase.json "hosting": { "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "i18n": { "root": "/localized-files" // directory that contains your "i18n content" } ... }
يجب أن يكون الدليل المحدد لـ
root
هو اسم الدليل الذي يحتوي على كل "محتوى i18n" المجلدات الفرعية. إذا وضعت جميع "محتوى بتنسيق i18n" المجلّدات الفرعية في جذر الدليلpublic
، استخدِم/
. للقيمةroot
. الشُرط المائلة البادئة واللاحقة في قيمةroot
اختيارية.نشر "محتوى i18n" وضبط إعداداته على موقع الاستضافة
يمكنك اختبار الإعداد باستخدام إلغاء ملفات تعريف الارتباط.
رموز البلدان واللغات
عند تسمية "محتوى i18n" مجلدات فرعية، يجب استخدام الأحرف الصغيرة في كلا البلدين
ورموز اللغات. يمكنك استخدام قيمة ALL
(حسّاسة لحالة الأحرف) للإشارة إلى
أي بلد (مثل es_ALL/
) أو أي لغة (مثل ALL_ca/
).
تحصل خدمة الاستضافة على رمز البلد من عنوان IP الخاص بالمستخدم. رموز البلدان تتكون من حرفين رموز ISO 3166-1 alpha-2:
يتم الحصول على رموز اللغات من عنوان طلب Accept-Language
للمستخدم.
(عادةً
تلقائيًا من خلال متصفّح الويب).
وهي رموز ISO 639-1.
يجب مراعاة ما يلي عند استخدام رموز اللغات:
عند استضافة عمليات بحث تتضمن "محتوى i18n" بخدمته، فإنها تطلب لغة بناءً على قيم الجودة في العنوان
Accept-Language
.تؤدي استضافة المواقع الإلكترونية إلى إزالة أي علامات فرعية إقليمية وبلدية في
Accept-Language
. وبالتالي، فإن رمز اللغة في "محتوى i18n" لا يمكن لاسم المجلد الفرعي تحتوي على هذه العلامات الفرعية. على سبيل المثال، لا يمكنك استخدامes-419
أوes-US
كـ رمز اللغة في اسم مجلد فرعي، ولكن يمكنك استخدامes
.إذا أردت عرض محتوى خاص بمنطقة معيّنة أو بلد معيّن، يمكنك إنشاء كمجلدات فرعية تحتوي على محتوى محدد باللغة والبلد والدعم.
ترتيب الأولوية لـ "محتوى i18n"
في حال إعداد إعادة كتابة i18n، تعرض خدمة "الاستضافة" المحتوى استنادًا إلى ما يلي: ترتيب الأولوية:
مساحات الاسم المحجوزة التي تبدأ بشريحة مسار
/__/*
عمليات إعادة التوجيه التي تم ضبطها
المحتوى الثابت المطابق تمامًا
رمز اللغة + رمز البلد (مثلاً، محتوى من
fr_ca/
)
يتبع الترتيب قيم الجودة لكل لغة في عنوان URL الخاص بالطلب. العنوانAccept-Language
رمز البلد فقط (مثلاً، المحتوى من
ALL_ca/
)رمز اللغة فقط (مثلاً، المحتوى من
fr/
أوes_ALL/
)
يتبع الترتيب قيم الجودة لكل لغة في عنوان URL الخاص بالطلب. عنوانAccept-Language
"تلقائي" محتوى ثابت بمطابقة تامة
هذا المحتوى خارج "المحتوى المنشور على الإنترنت" الدليل، كما هو الحال في جذر الدليلpublic
.
عمليات إعادة الكتابة التي تم ضبطها
معالجة 404
صفحات i18n 404
يتّبع هذا الترتيب نفس ترتيب الأولوية المذكور أعلاه للمطابقة التامة. المحتوى الثابت.صفحة 404 مخصّصة
صفحة 404 التلقائية (توفّرها Firebase)
مثال على الترتيب ذي الأولوية
دعنا نتابع مثالنا من أعلاه. سنستخدم نفس مثال الدليل مثال لطلب.
مثال على دليل مشروع محلي يتضمن "محتوى i18n" دليل (يُعرف باسم
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
(كندا)
ووفقًا لترتيب الأولوية للمطابقة التامة وقيم الجودة الإعدادات المفضّلة للغة، ستعمل الاستضافة على البحث في الأدلة عن الطلبات بالترتيب التالي.
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/
مجلد فرعي، لذا فإن الاستضافة ستتخطى قائمة الأولويات إلى أن تعثر على مجلد فرعي مطابق لعنوان URL الخاص بالطلب الجمع بين اللغة والبلد.رغم أنّ الدليل
localized-files/
يحتوي علىes_ALL/
. مجلد فرعي، لا يحتوي مثال الطلب أعلاه علىes
أوes-foo
رمز اللغة، وبالتالي لن تبحث الاستضافة عن "محتوى بلغة i18n" الذي/التي يطابقes
.تُعد المجلدات الفرعية المسماة
fr/
وfr_ALL/
متكافئة من منظور إعدادات المستخدم المفضّلة للبلد واللغة ومع ذلك، إذا كان كلا المجلدين الفرعيين الحالي، ستعرض الاستضافة محتوى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";
يجب أن تكون عمليات تجاوز ملفات تعريف ارتباط اللغة قائمة برموز اللغة مفصولة بفواصل في ترتيب الأفضلية، بدون العلامات الفرعية أو قيم الجودة.
لا تظهر تجاوزات ملفات تعريف الارتباط في السجلات.