المشاركة في مرحلة التجربة والتقييم لتقليل اللغة المقبولة

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

اعتبارًا من الإصدار العلني من Chrome 109، سنفتتح مرحلة تجربة وتقييم لميزة "تقليل Accept-Language"، ما يتيح للمواقع الإلكترونية تفعيل تلقّي العنوان المُعدَّل Accept-Language. سيتيح ذلك للمواقع الإلكترونية اكتشاف المشاكل وحلّها قبل أن يصبح Accept-Language المنخفض السرعة السلوك التلقائي في Chrome في أحد إصداراته المستقبلية. لاختبار الميزة قبل إطلاقها للمستخدمين العاديين، يُرجى التأكّد من تفعيلها واختبارها قبل تاريخ إصدار Chrome 109 (

يمكنك الاطّلاع على أمثلة على رأس Accept-Language قبل وبعد التخفيض أدناه.

ملف
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
مقترَحة
Accept-Language: en-GB

في ما يلي نظرة عامة على الفترة التجريبية الأصلية والتوقعات المترتبة عليها. يمكنك مشاركة ملاحظاتك حول هذا التغيير أو أي مشاكل تواجهها أثناء الفترة التجريبية الأصلية في مستودع GitHub الخاص بالميزة "تقليل عدد اللغات المقبولة".

ما هو Accept-Language؟

تتم مشاركة السلسلة Accept-Language في كل طلب HTTP ويتم عرضها في JavaScript لجميع الموارد التي يحمّلها المتصفّح. يحتوي حاليًا على جميع اللغات المفضّلة للمستخدم.

لماذا يتم تقليل Accept-Language؟

إنّ ميزة "تقليل 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
  • دالة الحصول على JavaScript‏ navigator.languages

سيتحمّل المتصفّح مسؤولية التفاوض على اللغة لاختيار اللغة المفضّلة للمستخدم وإرسالها إلى المواقع الإلكترونية. لإجراء ذلك، يجب أن تُضيف المواقع الإلكترونية عنوانَين Variants (يشير العنوان الجديد إلى المواقع الإلكترونية التي تتيح اللغات) Accept-Language و Content-Language في عنوان الردّ (راجِع المثال التفصيلي أدناه).

لا تشمل خطط Accept-Language المنخفضة السعر حاليًا نظامَي التشغيل iOS وWebView، وسيتمكّن المستخدمون على هذين النظامَين الأساسيَين من الاستفادة من قائمة Accept-Language الكاملة. من المخطّط إتاحة هذه الميزة على هذه الأنظمة الأساسية في وقت لاحق.

مرحلة التجربة والتقييم لميزة "تقليل Accept-Language"

تتطلّب الفترة التجريبية الأصلية من الموقع الإلكتروني المشارِك تقديم رمز مميّز في استجابته يطلب من المتصفّح تفعيل الفترة التجريبية المحدّدة. ومع ذلك، فإنّه يعني ذلك أنّه لا يمكن للمتصفّح معرفة ما إذا كان الموقع الإلكتروني يشارك في تجربة مصدر. وهذا يعني أنّ الطلب الأولي في الجلسة لن يرسل Accept-Language header المُعدَّل. ستتلقّى طلبات الموارد الفرعية في تلك الصفحة، سواء من المصدر نفسه أو من مصادر متعددة،Accept-Language header المُعدَّل. وستتلقّى أيضًا عمليات التنقّل اللاحقة من المصدر نفسه عنوان Accept-Language المُعدَّل. ستعود عمليات التنقّل بين مصادر مختلفة إلى إرسال العنوان الكامل، في حين أنّ الطلبات بين مصادر مختلفة ضمن الصفحة (مثل طلبات إطار iframe التابعة لجهات خارجية) ستظل ترسل العنوان Accept-Language المعدَّل إذا كان طلب الإطار من المستوى الأعلى يتضمّن رمز اختبار صالحًا لمصدر البيانات.

يشبه ذلك الإصدار التجريبي من ميزة تقليل دقة وكيل المستخدم، وإذا أردت معرفة المزيد من المعلومات عن عملية التنفيذ الداخلية في Chromium، يمكنك الاطّلاع على المزيد من المعلومات في مقالة تنفيذ ميزة تقليل دقة عنوان HTTP Accept-Language.

المشاركة في مرحلة تقييم وتجربة ميزة "تقليل عدد اللغات المقبولة"

يمكنك الاطّلاع على مزيد من الإرشادات في مقالة البدء في استخدام مرحلة تجربة وتقييم Topics من Chrome، ولكن يمكنك الاطّلاع على الخطوات الأساسية أدناه.

الخطوة 1

للتسجيل في الفترة التجريبية الأصلية والحصول على رمز مميّز لنطاقاتك، انتقِل إلى صفحة الفترة التجريبية لتقليل عدد اللغات المقبولة.

الخطوة 2

عدِّل رؤوس استجابة HTTP:

  1. أضِف Origin-Trial: <ORIGIN TRIAL TOKEN> إلى عنوان استجابة HTTP، حيث يحتوي <ORIGIN TRIAL TOKEN> على الرمز المميّز الذي حصلت عليه عند التسجيل في مرحلة التقييم والتجربة.
  2. أضِف Content-Language إلى عنوان استجابة HTTP للإشارة إلى اللغات المخصّصة للجمهور.
  3. أضِف Variants إلى عنوان استجابة HTTP للإشارة إلى اللغات المتاحة للمواقع الإلكترونية.
  4. [اختياري] أضِف Vary: Accept-Language إلى استجابة HTTP لإنشاء مفتاح ذاكرة تخزين مؤقت لتفاوض المحتوى.
  5. لن يؤدي ضبط هذه الرؤوس إلا إلى بدء عملية التفاوض بشأن لغة المتصفّح (إعادة تشغيل محتملة للطلب الأولي) للمصدر المُعطى. لجعل المواقع الإلكترونية تعرض تمثيل اللغة الصحيح لمستخدميها، عليك أيضًا تعديل المواقع الإلكترونية التي ترسل المحتوى استنادًا إلى عنوان Accept-Language الخاص بالمستخدم (راجِع المثال أدناه).

الخطوة 3

حمِّل موقعك الإلكتروني في الإصدار التجريبي من Chrome M109 (أو الإصدارات الأحدث) وابدأ في تلقّي سلسلت Accept-Language المختصرة.

يُرجى إرسال أي مشاكل أو ملاحظات إلى مستودع GitHub الخاص بميزة "تقليل عدد اللغات في Accept-Language".

عرض توضيحي

للاطّلاع على عرض توضيحي لموقع إلكتروني متعدّد اللغات تم تفعيله في إصدار تجريبي لأصل الميزة، (بالإضافة إلى رمز المصدر)، يُرجى الانتقال إلى 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

يعلم الموقع الإلكتروني أنّ المستخدم يفضّل المحتوى باللغة الإنجليزية استنادًا إلى ملفه الشخصي accept-language. قد تتضمّن رؤوس الاستجابة ما يلي:

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 المُعدَّلة على النحو التالي:

عناوين الاستجابة الأولية التي تحتوي على رمز مفتاح الفترة التجريبية الأصلي

إيقاف المشاركة في الفترة التجريبية الأصلية

يمكنك في أي وقت خلال الفترة التجريبية إيقاف المشاركة وتلقّي القائمة الكاملة لـ Accept-Language للمستخدم. للتوقّف عن المشاركة:

  1. أزِل عنوان Origin-Trial لميزة "تقليل اللغات" في Origin-Trial التجريبية من استجابة HTTP.
  2. [اختياري] أزِل عنوان Variants الذي تتم إضافته للموافقة على فترة التجربة الأصلية في استجابة HTTP إذا لم تكن مهتمًا بإرسال هذا العنوان. يمكنك أيضًا استخدام Variants مع قيمة فارغة لتحقيق هذا.
  3. [اختياري] أزِل العنوان Content-Language الذي تتم إضافته لأجل تفعيل الفترة التجريبية للمصدر في استجابة HTTP إذا لم تكن مهتمًا ب إرسال هذا العنوان.

مدة مرحلة التجربة والتقييم

ستستمر مرحلة التجربة والتقييم على ميزة "تقليل عدد اللغات المقبولة" لمدة ستة أشهر على الأقل، وهو ما يتوافق مع ستة مَعلمات رئيسية تقريبًا في Chrome. ستظهر مرحلة التجربة والتقييم في الإصدار M109 وتنتهي بالإصدار M114 (أي آخر إصدار من Chrome يتضمّن مرحلة التجربة والتقييم). في هذه المرحلة، سيقيّم Chrome الملاحظات الواردة من الإصدار التمهيدي قبل المتابعة وإرسال سلسلة Accept-Language المُعدَّلة بطريقة مرحلية: أولاً، تقليل عنوان HTTP ‏Accept-Language ثم تقليل واجهة JavaScript. إذا كان الموقع الإلكتروني يحتاج إلى مزيد من الوقت للاختبار، يمكنه الاشتراك في اختبار لاحق لميزة الإزالة نهائيًا، ما سيتيح له الوصول إلى سلسلة ملف تعريف الارتباط ملف تعريف الارتباط Accept-Language بالكامل لمدة ستة أشهر أخرى على الأقل. سننشر المزيد من التفاصيل حول فترة الإصدار التجريبي لإيقاف الميزة نهائيًا عندما تصبح جاهزة.

مشاركة الملاحظات

يُرجى إرسال أي مشاكل أو ملاحظات إلى مستودع GitHub الخاص بميزة "تقليل عدد اللغات في Accept-Language".