استخدِم عمليات إعادة الكتابة للغة معيّنة (i18n rewrites) لعرض محتوى مختلف حسب بلد المستخدم أو لغته المفضّلة. إليك بعض الأمثلة الإعدادات التي يمكنك إعدادها:
عرض المحتوى الفرنسي نفسه لجميع المستخدمين الذين يفضّلون الفرنسية (بغض النظر عن في البلد).
مثال: صفحة رئيسية بنص فرنسيعرض محتوى باللغة الفرنسية العادية للمستخدمين الذين يفضلون الفرنسية، ولكن المستخدمون الكنديون الذين يفضّلون الفرنسية ويعرضون محتوًى باللغة الفرنسية الكندية بدلاً من ذلك
مثال: صفحة رئيسية تحتوي على صياغة فرنسية قياسية مقابل صفحة رئيسية تحتوي على الصياغة الفرنسية الكنديةعرض المحتوى نفسه لجميع المستخدمين في كندا (بغض النظر عن اللغة المفضّلة).
مثال: صفحة رئيسية تحتوي على القيمة "التلقائية" لموقعك الإلكتروني ولكن مع ميزة خاصة بكندا (مثل مظهر الأعياد)عرض محتوى باللغة الفرنسية الكندية للمستخدمين الكنديين الذين يفضّلون اللغة الفرنسية
مثال: صفحة رئيسية تحتوي على صياغة باللغة الفرنسية الكندية وصفحة خاصة الميزة (مثل مظهر الأعياد)
يحدّد Firebase Hosting بلد المستخدم من عنوان IP الخاص به
إعدادات اللغة المفضّلة للمستخدم من عنوان طلب Accept-Language
(عادةً
تلقائيًا من خلال متصفّح الويب).
إعداد عمليات إعادة الكتابة بتنسيق i18n
لإعداد إعادة كتابة i18n لموقعك الإلكتروني على Hosting، يجب إنشاء "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" والإعدادات على موقع Hosting الإلكتروني.
يمكنك اختبار عملية الإعداد باستخدام عمليات إلغاء ملفات تعريف الارتباط.
رموز البلدان واللغات
عند تسمية "محتوى i18n" مجلدات فرعية، يجب استخدام الأحرف الصغيرة في كلا البلدين
ورموز اللغات. يمكنك استخدام قيمة ALL
(حسّاسة لحالة الأحرف) للإشارة إلى
أي بلد (مثل es_ALL/
) أو أي لغة (مثل ALL_ca/
).
يحصل Hosting على رمز البلد من عنوان IP للمستخدم. رموز البلدان تتكون من حرفين رموز ISO 3166-1 alpha-2:
يتم الحصول على رموز اللغات من عنوان طلب Accept-Language
للمستخدم.
(عادةً
تلقائيًا من خلال متصفّح الويب).
وهي رموز ISO 639-1.
يجب مراعاة ما يلي عند استخدام رموز اللغات:
عندما يبحث Hosting عن "محتوى i18n" بخدمته، فإنها تطلب لغة بناءً على قيم الجودة في العنوان
Accept-Language
.تُزيل "Hosting" أي علامات فرعية إقليمية وبلدية في
Accept-Language
. وبالتالي، فإن رمز اللغة في "محتوى i18n" لا يمكن لاسم المجلد الفرعي تحتوي على هذه العلامات الفرعية. على سبيل المثال، لا يمكنك استخدامes-419
أوes-US
كـ رمز اللغة في اسم مجلد فرعي، ولكن يمكنك استخدامes
.إذا أردت عرض محتوى خاص بمنطقة معيّنة أو بلد معيّن، يمكنك إنشاء كمجلدات فرعية تحتوي على محتوى محدد باللغة والبلد والدعم.
ترتيب الأولوية لـ "محتوى i18n"
في حال إعادة كتابة i18n، سيعرض Hosting المحتوى استنادًا إلى ما يلي: ترتيب الأولوية:
مساحات الاسم المعرِّفة المحجوزة التي تبدأ بشريحة مسار
/__/*
عمليات إعادة التوجيه التي تم ضبطها
المحتوى الثابت الذي يتطابق تمامًا
رمز اللغة + رمز البلد (مثلاً، محتوى من
fr_ca/
)
يتبع الترتيب قيم الجودة لكل لغة في عنوان URL العنوانAccept-Language
رمز البلد فقط (مثلاً، المحتوى من
ALL_ca/
)رمز اللغة فقط (مثلاً، المحتوى من
fr/
أوes_ALL/
)
يتبع الترتيب قيم الجودة لكل لغة في عنوان URL الخاص بالطلب. عنوانAccept-Language
المحتوى الثابت الذي يتطابق تمامًا مع المحتوى "التلقائي"
هذا المحتوى خارج دليل "محتوى i18n"، مثل جذر دليل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
(كندا)
وفقًا لترتيب الأولوية للمطابقة التامة وقيم الجودة لإعدادات التفضيل للّغة، سيبحث 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 content" وعرض هذا المحتوى:
ولا يحتوي الدليل
localized-files/
فعليًا علىen_ca/
،en_ALL/
، أوen/
مجلد فرعي، لذلك سيتخطى Hosting قائمة الأولويات إلى أن تعثر على مجلد فرعي مطابق لعنوان URL الخاص بالطلب تركيبة اللغة والبلد.رغم أنّ الدليل
localized-files/
يحتوي علىes_ALL/
. مجلد فرعي، لا يحتوي مثال الطلب أعلاه علىes
أوes-foo
رمز اللغة، لذلك لن يبحث Hosting عن "محتوى i18n" الذي/التي يطابق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";
يجب أن تكون عمليات إلغاء ملفات تعريف الارتباط للّغة قائمة مفصولة بفواصل لرموز اللغات مرتبةً في الترتيب المفضّل، بدون علامات فرعية أو قيم جودة.
لا تظهر تجاوزات ملفات تعريف الارتباط في السجلات.