הגדר שכתוב בינלאומי (i18n)

השתמש בשכתוב בינלאומי ("i18n rewrites") כדי להגיש תוכן שונה בהתאם למדינה של המשתמש או לשפה המועדפת עליו. להלן מספר תצורות לדוגמה שתוכל להגדיר:

  • מגיש אותו התוכן הצרפתי לכול משתמשים המעדיפים צרפתי (ללא קשר לארץ).
    דוגמה: דף בית עם טקסט צרפתי

  • מגיש תוכן הצרפתי הרגילה למשתמשים המעדיפים צרפתי, אבל עבור משתמשים קנדיים המעדיפים צרפתי, לשרת תוכן צרפתי קנדי במקום.
    דוגמא: דף בית עם ניסוח צרפתי רגיל לעומת דף בית עם ניסוח צרפתי קנדי

  • מגיש אותו התוכן לכל המשתמשים הקנדיים (ללא העדפה בשפתם).
    דוגמה: דף בית עם שפת "ברירת המחדל" של האתר שלך אך עם תכונה ספציפית לקנדה (כמו נושא חג)

  • הגישו תוכן צרפתי קנדי ​​למשתמשים קנדים המעדיפים צרפתית.
    דוגמה: דף בית עם ניסוח צרפתי קנדי ​​ותכונה ספציפית לקנדה (כמו נושא חג)

אירוח 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/ )
      הצו כדלקמן ערכי איכות עבור כל שפה ב לבקשת Accept-Language בכותרת.

    2. קוד מדינה בלבד (למשל, תוכן ALL_ca/ )

    3. קוד שפה בלבד (למשל, תוכן fr/ או es_ALL/ )
      הצו כדלקמן ערכי איכות עבור כל שפה ב לבקשת Accept-Language בכותרת.

    4. תוכן סטטי "ברירת מחדל" בהתאמה מדויקת
      זהו תוכן שנמצא מחוץ לספרייה "i18n התוכן", כמו בשורש של public בספרייה.

  4. הוגדר שכתוב

  5. טיפול 404

    1. i18n 404 עמודים
      זאת בהתאם לאותו סדר עדיפות המופיע למעלה לתוכן סטטי בהתאמה מדויקת.

    2. Custom 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 content":

  • localized-files/ הספרייה איננו מכילה למעשה en_ca/ , en_ALL/ או en/ תיקיות משנה, כך אירוח יהיה פשוט לדלג למטה בסדר העדיפויות עד שהוא מוצא תיקיית משנה התאמה עבור שילוב שפה-הארץ של הבקשה.

  • למרות localized-files/ הספרייה מכילה es_ALL/ תיקיית משנה, לבקשה בדוגמא לעיל אינו כולל es או es-foo קוד שפה, כך אירוח לא יחפש "תוכן i18n" כי הגפרורים es .

  • תיקיות משנה בשם fr/ ו fr_ALL/ שקולים מנקודת המבט של העדפות הארץ ושפה של משתמש. עם זאת, אם הן תיקיות משנה קיימים, אירוח ישמש fr_ALL/ תוכן לפני fr/ תוכן.

אתה יכול לשנות איזה תוכן מוגש על ידי שימוש בעוגיות כדי לעקוף את כותרות המדינה והשפה.

להלן מספר דרכים שבהן תוכל להשתמש בשיטות עוגיות:

  • בדוק תכונה עם שילובי שפות/ארצות שונות כדי לבדוק איזה תוכן מוגש.

  • אפשר למשתמשים שלך לשנות את התוכן שהם רואים. לדוגמה, אתה יכול ליישם בורר שפה, ולאחר מכן קבע את המשתמש firebase-language-override עוגיה בהתאם.

כדי עוקפת עוגיה Configure, עוגיות סט עם שניהם או אחד השמות האלה: 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";

עקיפות של קובצי cookie בשפה חייבות להיות רשימה מופרדת בפסיקים של קודי שפה לפי סדר העדפה, ללא תגי משנה או ערכי איכות.

דריסות עוגיות אינן משתקפות ביומנים.