ضبط إعادة كتابة الترجمات التدويلية (i18n)

استخدِم إعادة كتابة المحتوى بلغات مختلفة ("إعادة كتابة i18n") لعرض محتوى مختلف. استنادًا إلى بلد المستخدم أو لغته المفضّلة إليك بعض الأمثلة الإعدادات التي يمكنك إعدادها:

  • عرض المحتوى الفرنسي نفسه لجميع المستخدمين الذين يفضّلون الفرنسية (بغض النظر عن في البلد).
    مثال: صفحة رئيسية بنص فرنسي

  • عرض محتوى باللغة الفرنسية العادية للمستخدمين الذين يفضلون الفرنسية، ولكن المستخدمون الكنديون الذين يفضّلون الفرنسية ويعرضون محتوًى باللغة الفرنسية الكندية بدلاً من ذلك
    مثال: صفحة رئيسية تحتوي على صياغة فرنسية قياسية مقابل صفحة رئيسية تحتوي على الصياغة الفرنسية الكندية

  • عرض المحتوى نفسه لجميع المستخدمين في كندا (بغض النظر عن اللغة المفضّلة).
    مثال: صفحة رئيسية تحتوي على القيمة "التلقائية" لموقعك الإلكتروني ولكن مع ميزة خاصة بكندا (مثل مظهر الأعياد)

  • عرض محتوى باللغة الفرنسية الكندية للمستخدمين الكنديين الذين يفضّلون اللغة الفرنسية
    مثال: صفحة رئيسية تحتوي على صياغة باللغة الفرنسية الكندية وصفحة خاصة الميزة (مثل مظهر الأعياد)

تحدّد ميزة "استضافة Firebase" بلد المستخدم من عنوان IP لديه إعدادات اللغة المفضّلة للمستخدم من عنوان طلب Accept-Language (عادةً تلقائيًا من خلال متصفّح الويب).

إعداد عمليات إعادة الكتابة بتنسيق i18n

لإعداد إعادة كتابة i18n لموقع الاستضافة، يجب إنشاء "i18n". المحتوى" لكل المحتوى المُترجَم، ثم أضِف السمة i18n إلى ملف firebase.json للإشارة إلى "محتوى i18n" الجديد الدليل.

في ما يلي الخطوات التفصيلية التي يجب اتّباعها:

  1. أنشئ دليلاً منفصلاً ضمن مجلد 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. دليل أو مجلدات فرعية أخرى. يمكنك إنشاء محتوى الخاصة بلغة و/أو بلد معيّنَين

  2. أضِف السمة 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 اختيارية.

  3. نشر "محتوى 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، تعرض خدمة "الاستضافة" المحتوى استنادًا إلى ما يلي: ترتيب الأولوية:

  1. مساحات الاسم المحجوزة التي تبدأ بشريحة مسار /__/*

  2. عمليات إعادة التوجيه التي تم ضبطها

  3. المحتوى الثابت المطابق تمامًا

    1. رمز اللغة + رمز البلد (مثلاً، محتوى من fr_ca/)
      يتبع الترتيب قيم الجودة لكل لغة في عنوان URL الخاص بالطلب. العنوان Accept-Language

    2. رمز البلد فقط (مثلاً، المحتوى من ALL_ca/)

    3. رمز اللغة فقط (مثلاً، المحتوى من fr/ أو es_ALL/)
      يتبع الترتيب قيم الجودة لكل لغة في عنوان URL الخاص بالطلب. عنوان Accept-Language

    4. "تلقائي" محتوى ثابت بمطابقة تامة
      هذا المحتوى خارج "المحتوى المنشور على الإنترنت" الدليل، كما هو الحال في جذر الدليل public.

  4. عمليات إعادة الكتابة التي تم ضبطها

  5. معالجة 404

    1. صفحات i18n 404
      يتّبع هذا الترتيب نفس ترتيب الأولوية المذكور أعلاه للمطابقة التامة. المحتوى الثابت.

    2. صفحة 404 مخصّصة

    3. صفحة 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 (كندا)

ووفقًا لترتيب الأولوية للمطابقة التامة وقيم الجودة الإعدادات المفضّلة للغة، ستعمل الاستضافة على البحث في الأدلة عن الطلبات بالترتيب التالي.

  1. public/localized-files/fr_ca/

  2. public/localized-files/en_ca/

  3. public/localized-files/ALL_ca/

  4. public/localized-files/fr_ALL/

  5. public/localized-files/fr/

  6. public/localized-files/en_ALL/

  7. public/localized-files/en/

  8. public/

  9. معالجة 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";

يجب أن تكون عمليات تجاوز ملفات تعريف ارتباط اللغة قائمة برموز اللغة مفصولة بفواصل في ترتيب الأفضلية، بدون العلامات الفرعية أو قيم الجودة.

لا تظهر تجاوزات ملفات تعريف الارتباط في السجلات.