להשתמש בשכתובים לבינלאומיות ('שכתובים של i18n') כדי להציג תכנים שונים בהתאם למדינה או לשפה המועדפת של המשתמש. הנה כמה דוגמאות שניתן להגדיר:
להציג את אותו תוכן בצרפתית לכל המשתמשים המעדיפים צרפתית (בלי קשר ל המדינה).
לדוגמה: דף בית עם טקסט בצרפתיתלהציג תוכן בצרפתית רגילה למשתמשים שמעדיפים צרפתית, אבל משתמשים בקנדה שמעדיפים צרפתית יוכלו להציג תוכן בצרפתית קנדית במקום זאת.
דוגמה: דף בית עם ניסוח צרפתית רגיל לעומת דף בית עם ניסוח בצרפתית (קנדה)הצגת תוכן זהה לכל המשתמשים בקנדה (ללא קשר העדפת שפה).
דוגמה: דף בית עם ההגדרה 'ברירת המחדל' של האתר אלא עם תכונה ספציפית לקנדה (כמו נושא של חג)הצגת תוכן בצרפתית קנדית למשתמשים בקנדה שמעדיפים לצפות בצרפתית.
דוגמה: דף בית עם ניסוח בצרפתית קנדית ותכונה ספציפית לקנדה (למשל, נושא של חג)
Firebase Hosting קובע את המדינה של המשתמש לפי כתובת ה-IP שלו ואת העדפות השפה של המשתמש לפי כותרת הבקשה Accept-Language
(בדרך כלל מוגדרות באופן אוטומטי על ידי דפדפן האינטרנט שלו).
הגדרת שכתובים בעברית
כדי להגדיר שכתובים ללוקליזציה לאתר 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" תיקיות משנה ברמה הבסיסית (root) של הספרייהpublic
, צריך להשתמש ב-/
לערך שלroot
. קווים נטויים לפני ואחרי הערךroot
הם אופציונליים.פריסה של תוכן i18n ומגדירים אותו לאתר Hosting.
אפשר לבדוק את ההגדרה באמצעות שינויים בקובצי cookie.
קודי מדינה ושפה
כשנותנים שמות לתיקיות המשנה של 'תוכן ל-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'
אם הגדרתם שכתובים ללוקליזציה, Hosting יציג תוכן על סמך התנאים הבאים סדר העדיפות:
מרחבי שמות שמורים שמתחילים בפלח נתיב
/__/*
הפניות אוטומטיות מוגדרות
תוכן סטטי בהתאמה מדויקת
קוד שפה + קוד מדינה (לדוגמה, תוכן מ-
fr_ca/
)
הסדר תואם לערכי האיכות של כל שפה הכותרתAccept-Language
.קוד מדינה בלבד (לדוגמה, תוכן מ-
ALL_ca/
)קוד שפה בלבד (לדוגמה, תוכן מ-
fr/
או מ-es_ALL/
)
הסדר תואם לערכי האיכות של כל שפה כותרתAccept-Language
.'ברירת מחדל' תוכן סטטי בהתאמה מדויקת
התוכן הזה לא נכלל ב'תוכן של i18n' כמו בספרייה הרמה הבסיסית (root) של הספרייהpublic
.
שכתובים מוגדרים
טיפול בשגיאות 404
דפי i18n 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':
הספרייה
localized-files/
לא מכילה בפועל אתen_ca/
,en_ALL/
, אוen/
תיקיות משנה, כך ש-Hosting פשוט ידלג למטה עד שהוא מוצא תיקיית משנה תואמת שילוב של שפה ומדינה.למרות שהספרייה
localized-files/
מכילהes_ALL/
תיקיית המשנה, הבקשה לדוגמה שלמעלה לא כוללתes
אוes-foo
. את קוד השפה, כך שמערכת Hosting לא תחפש "תוכן i18n" ש תואם ל-es
.תיקיות משנה שנקראות
fr/
ו-fr_ALL/
מקבילות מנקודת המבט של העדפות המדינה והשפה של המשתמש. אבל אם שתי תיקיות המשנה קיים, Hosting יציג תוכןfr_ALL/
לפני תוכן שלfr/
.
שינוי קודי שפה ומדינה באמצעות קובצי cookie
כדי לשנות את התוכן המוצג, משתמשים בקובצי cookie כדי לשנות את הגדרת המדינה וכותרות שפה.
הנה כמה דרכים שבהן אפשר להשתמש בשינויים של קובצי cookie:
בודקים פיצ'ר עם שילובים שונים של שפה ומדינה כדי לראות מוצג תוכן.
מאפשרים למשתמשים לשנות את התוכן שהם רואים. לדוגמה, אפשר להטמיע בורר שפות, ואז להגדיר את קובץ ה-cookie
firebase-language-override
של המשתמש בהתאם.
כדי להגדיר שינויים של קובצי cookie, מגדירים קובצי cookie עם שניהם או עם אחד מהשמות הבאים:
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 של שפה חייבים להיות רשימה מופרדת בפסיקים של קודי שפות לפי סדר העדפה, ללא תגי משנה או ערכי איכות.
שינויים בקובצי ה-Cookie לא באים לידי ביטוי ביומנים.