צמצום השימוש בשפה זו הוא מאמץ למזער יצירה של טביעת אצבע פסיבית
מוצגות על ידי צמצום העדפות השפה של המשתמשים
Accept-Language
ולשלוח רק את השפה המועדפת ביותר של המשתמש (רק שפה אחת).
החל מ-Chrome 109
בטא, נפתח
גרסת המקור לניסיון
עבור צמצום השימוש בשפה, שמאפשרת לאתרים להביע הסכמה לקבלת
הכותרת Accept-Language
. כך אתרים יוכלו לגלות ולתקן בעיות
לפני שה-Accept-Language
המופחת הופך להתנהגות ברירת המחדל ב-Chrome
במהדורה עתידית. כדי לבדוק את התכונה לפני ההשקה שלה לאוכלוסייה יציבה,
חשוב להצטרף ולבדוק לפני תאריך ההשקה של Chrome 109 (כרגע
מתוזמן ל-10 בינואר 2023).
כדאי לעיין בדוגמאות של הכותרת Accept-Language
לפני ואחרי ההפחתה שבהמשך.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
בהמשך מוצגת סקירה כללית של גרסת המקור לניסיון והסבר לגבי מה שצפוי בהמשך. אפשר לשתף משוב על השינוי הזה או על בעיות שנתקלתם בהן במהלך גרסת המקור לניסיון ב-Accept-Language Retraction GitHub מאגר הנתונים.
מהי שיטת Accept-Language?
אישור השפה המחרוזת משותפת בכל בקשת HTTP ונחשפת ב-JavaScript לכל המשתמשים משאבים שנטענו על ידי הדפדפן. בשלב זה, הוא מכיל את כל בשפות המועדפות עליך.
למה אנחנו מצמצמים את השימוש בתכונה Accept-Language?
צמצום השימוש בשפה זו הוא מאמץ למזער יצירה של טביעת אצבע פסיבית ב-Chrome.
בשלב הזה, הכותרת Accept-Language
משותפת כברירת מחדל בכל HTTP
בקשה והחשיפה ב-JavaScript לכל המשאבים שנטענו על ידי הדפדפן. הוא
מכילים את כל העדפות השפה של המשתמש. במקום שהדפדפן ישלח
את רשימת השפות המלאה שהמשתמש הגדיר למקרה שאתרים רוצים
מספקות תוכן רב-לשוני, אנחנו מוסיפים דרך חדשה שבה אתרים יכולים לציין
בכמה שפות, והדפדפן יישא באחריות ליצור את השפה
במשא ומתן ולהציג את השפה המועדפת.
סיבה נוספת היא שאתרים רבים לא משתמשים בכותרות Accept-Language
לניהול משא ומתן בנושא שפה בכלל (לדוגמה,
מצביע על כך שרק 7.2%
10,000 האתרים המובילים משתמשים ב-Accept-Language
). במצב הפרטי ב-Chrome כבר הפחיתו את
Accept-Language
לאחד.
איך השינוי משפיע על מפתחי אתרים?
אתרים שמסתמכים על Accept-Language
לביצוע משא ומתן בנושא שפה
להתכונן לקבלת מספר קטן יותר של Accept-Language
ולשקול להשתתף
גרסת המקור לניסיון. הערכים המצומצמים של Accept-Language
יופיעו במיקומים הבאים:
- כותרת בקשת ה-HTTP
Accept-Language
. - רכיב ה-getter של JavaScript
navigator.languages
.
הדפדפן יישא באחריות למשא ומתן על השפה כדי לבחור
השפה המועדפת על המשתמש לשליחה לאתרים. כדי שזה יקרה, אתרים צריכים
הוספת שתי כותרות
Variants
(כותרת חדשה מציינת אתרים שתומכים בשפות) Accept-Language
וגם
Content-Language
ב
כותרת התגובה (ראו דוגמה מפורטת בהמשך).
התוכניות המצומצמות של Accept-Language
לא כוללות כרגע את iOS ו-WebView. בנוסף,
הפלטפורמות האלה ימשיכו להשיג הרשימה המלאה של Accept-Language
.
התמיכה בפלטפורמות האלה מתוכננת למועד מאוחר יותר.
גרסת המקור לניסיון של הפחתת שפה
בגרסת המקור לניסיון נדרש מהאתר המשתתף לספק אסימון
תגובה שאומרת לדפדפן להפעיל את הניסיון שצוין. אבל
פירושו שבבקשה הראשונית של הדפדפן לאתר אין דרך לדעת
אם האתר משתתף בגרסת מקור לניסיון. המשמעות היא שהמודל הראשוני
בבקשה בסשן לא תשלח את הערך המצומצם של Accept-Language header
.
בקשות למשאבי משנה בדף הזה, גם מאותו מקור וגם ממקורות שונים,
מקבלים את הכותרת המצומצמת של Accept-Language
. ניווטים הבאים ממקור זהה
יקבל גם את הכותרת המצומצמת של Accept-Language
. ניווטים בין מקורות
יחזור לשלוח את הכותרת המלאה, ואילו הבקשות ממקורות שונים בתוך
(כגון בקשות iframe של צד שלישי) עדיין ישלח את הערך המוקטן של Accept-Language
אם לבקשת המסגרת ברמה העליונה יש אסימון מקור לניסיון חוקי.
האפשרות הזו דומה לתקופת המקור של הפחתת סוכן המשתמש, ואם אתם רוצים לקבלת מידע נוסף על ההטמעה הפנימית של Chromium, אפשר לקרוא ב הטמעה של הפחתת כותרת ה-HTTP עבור Accept-Language.
להשתתף בגרסת המקור לניסיון של Accept-Language Reduction
אפשר לקרוא הנחיות נוספות ב תחילת העבודה עם גרסאות המקור לניסיון של Chrome, אבל השלבים החיוניים מוצגים בהמשך.
שלב 1
כדי להירשם לגרסת המקור לניסיון ולקבל אסימון לדומיינים שלכם, אפשר להיכנס אל תקופת ניסיון לצמצום של קבלת שפות הדף הזה.
שלב 2
מעדכנים את הכותרות של תגובת ה-HTTP:
- צריך להוסיף את
Origin-Trial: <ORIGIN TRIAL TOKEN>
לתשובת ה-HTTP הכותרת, כאשר <ORIGIN TRIAL TOKEN
> מכיל את האסימון שקיבלתם רישום לגרסת המקור לניסיון. - כדי לציין, צריך להוסיף את
Content-Language
לכותרת תגובת ה-HTTP השפה או השפות שמיועדות לקהל. - צריך להוסיף את
Variants
לכותרת תגובת ה-HTTP כדי לציין אתרים השפות הנתמכות. - [אופציונלי] מוסיפים את
Vary: Accept-Language
לתשובת ה-HTTP כדי ליצור מפתח מטמון למשא ומתן לגבי תוכן. - הגדרת הכותרות האלה תפעיל רק את שפת הדפדפן משא ומתן (הפעלה מחדש אפשרית עבור הבקשה הראשונית) עבור המקור. כדי להציג באתרים את ייצוג השפה הנכון המשתמשים צריכים גם לעדכן את האתרים ששולחים את התוכן בהתאם כותרת Accept-Language של המשתמש (ראו דוגמה למטה).
שלב 3
טוענים את האתר ב-Chrome M109 בטא (ואילך) ומתחילים לקבל מחרוזת Accept-Language.
אם יש בעיות או משוב, אפשר לשלוח בקשה להפחתת שפות ב-GitHub מאגר הנתונים.
הדגמה (דמו)
הדגמה של אתר רב-לשוני שהסכים לניסיון המקור (יחד עם קוד המקור) תוכלו לראות https://reduce-accept-language.glitch.me/.
לצורך הדגמה של הבעת הסכמה או ביטול הסכמה בגרסת המקור לניסיון (יחד עם קוד מקור) ראה https://reduce-accept-language-ot.glitch.me/.
לדוגמה, ב-example.com
יש תמיכה בja
(יפנית) ובen
(אנגלית). א'
יכול להיות:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
האתר יודע שהמשתמש מעדיף תוכן באנגלית בהתאם לקבל שפה. כותרות התגובה עשויות לכלול:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
אם למשתמש יש העדפה לתוכן ביפנית, הבקשה תהיה:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
במקרה כזה, האתר מגיב עם כותרות לתוכן ביפנית:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
בצד השרת, ייתכן שהאתר מחפש תמיכה בשפה מסוימת, חזרה לברירת המחדל אם לא זוהתה תמיכה:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
בדוגמה שלמעלה, התשובה של example.com
היא en
או ja
על סמך
הערך Accept-Language
. אם אין התאמה, ברירת המחדל תהיה en
. במקרה הזה, הפרמטר
האתר יכול גם לספק הפניות אוטומטיות לדפים מתאימים בשפה /en
או
/ja
על סמך הערך Accept-Language
. הצגת דוגמאות מפורטות שקשורות לנושאים
כתובות אתר להפניה מחדש מופעלות
מסמך ההטמעה.
תמיכה בגרסת מקור לניסיון של צד שלישי
בשלב זה לא ניתן לרשום את הדומיינים שלך
צד שלישי לצורך תקופת הניסיון.
אם אתם מפעילים שירות שמוטמע כמשאב משנה בכמה מקורות
(כגון הצגת מודעות או ניתוח נתונים), תקבל רק
הכותרת Accept-Language
אם האתר ברמה העליונה משתתף במקור
לתקופת ניסיון.
איך לוודא שגרסת המקור לניסיון פועלת
המדריך ל פתרון בעיות בגרסאות המקור של גרסאות הניסיון של Chrome כוללת רשימת משימות מלאה כדי לוודא שהאסימון מוגדר כראוי.
אתם מגדירים כמה שפות ואת העדיפות שלהן עבור
chrome://settings/languages
או 'הגדרות' ← 'שפות'. כדאי לבחור
שפה שהאתר לא תומך בה ולהעביר אותה לראש הרשימה
כדי להבטיח פתיחת משא ומתן מחדש נוסף.
הכותרות של התגובה הראשונית שמכילות את אסימון המקור לניסיון אמורות להיראות כמו:

כותרות הבקשות הבאות, שמכילות את תכונת Accept-Language המצומצמת, נראות כך:

הפסקת ההשתתפות בגרסת המקור לניסיון
בכל שלב במהלך תקופת הניסיון אפשר להפסיק את ההשתתפות, לקבל את הרשימה המלאה של שפת Accept-Language של המשתמש. כדי להפסיק להשתתף:
- צריך להסיר את הכותרת
Origin-Trial
להפחתה של Accept-Language לניסיון מתגובת ה-HTTP שלכם. - [אופציונלי] מסירים את הכותרת
Variants
שנוספה להבעת הסכמה גרסת המקור לניסיון בתגובת ה-HTTP שלך, אם אינך רוצה לשלוח לכותרת הזו. אפשר גם להשתמש בפונקציהVariants
עם ערך ריק כדי להשלים את הפעולה הזה. - [אופציונלי] הסרת הכותרת
Content-Language
שנוספה אל להפעיל את גרסת המקור לניסיון בתגובת ה-HTTP אם אתם לא רוצים להשתמש בה שולח את הכותרת הזו.
משך תקופת הניסיון של המקור
גרסת המקור לניסיון של Accept-Language Reduction תפעל למשך שישה חודשים לפחות, שמייצג כששה אבני דרך של Chrome. גרסת המקור לניסיון תופיע בגרסה M109 ומסתיימת בגרסה M114 (כלומר, גרסת Chrome האחרונה שכוללת את תקופת הניסיון) זמין). בשלב הזה, Chrome יעריך את המשוב מהמקור לניסיון לפני שממשיכים בשליחת המחרוזת המופחתת של Accept-Language באופן הדרגתי: תחילה מקטינים את הכותרת Accept-Language HTTP ואז מקטינים את ממשק JS. אם לאתר נדרש זמן נוסף לבדיקה, הוא יכול להצטרף ניסיון מקור להוצאה משימוש, שיאפשר להם לקבל גישה לקבל את מחרוזת השפה למשך שישה חודשים נוספים לפחות. אנחנו נפרסם עוד פרטים על תקופת הניסיון להוצאה משימוש כשהיא תהיה מוכנה.
מתן משוב
אם יש בעיות או משוב, אפשר לשלוח בקשה להפחתת שפות ב-GitHub מאגר הנתונים.