Kabul Etme-Dil Azaltma için kaynak denemesine katılma

Accept-Language Azaltma, kullanıcının Accept-Language üst bilgisindeki dil tercihlerini azaltarak ve yalnızca kullanıcının en çok tercih ettiği dili (yalnızca bir) göndererek pasif dijital parmak izi yüzeyini azaltmaya yönelik bir çalışmadır.

Chrome 109 Beta sürümünden itibaren, Kabul Edilen Dil Azaltma özelliği için kaynak deneme sürümünü kullanıma sunacağız. Bu özellik sayesinde siteler, kısaltılmış Accept-Language üst bilgisini almayı etkinleştirebilecek. Bu sayede siteler gelecekteki bir sürümde Chrome'da varsayılan davranış olarak Accept-Language azaltılmadan önce sorunları keşfedip düzeltebilecektir. Özelliği kararlı popülasyona sunulmadan önce test etmek için Chrome 109'un yayın tarihinden önce özelliği etkinleştirip test etmeyi unutmayın (şu anda 10 Ocak 2023 için planlanmıştır).

Kısaltmadan önceki ve sonraki Accept-Language başlığı örneklerine göz atın.

Şu anki adı
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Önerilen
Accept-Language: en-GB

Aşağıda kaynak denemesi ve beklentiler hakkında genel bilgi verilmiştir. Bu değişiklikle veya kaynak denemesi sırasında karşılaştığınız sorunlarla ilgili geri bildirimlerinizi Kabul Edilen Dil Azaltma GitHub deposunda paylaşabilirsiniz.

Kabul-Dili nedir?

Kabul-Dil dizesi her HTTP isteğinde paylaşılır ve tarayıcı tarafından yüklenen tüm kaynaklara JavaScript'te gösterilir. Şu anda kullanıcının tercih ettiği tüm diller yer almaktadır.

Accept-Language neden azaltılıyor?

Accept-Language Azaltma, Chrome'da pasif dijital parmak izi yüzeylerini azaltmaya yönelik bir girişimdir.

Şu anda Accept-Language üst bilgisi varsayılan olarak her HTTP isteğinde paylaşılmaktadır ve tarayıcı tarafından yüklenen tüm kaynaklara JavaScript'te gösterilir. Kullanıcının tüm dil tercihlerini içerir. Tarayıcı, kullanıcıların çok dilli içerik sağlamak istediğinde kullanıcının yapılandırdığı dillerin tam listesini göndermek yerine, sitelerin çok dilli içeriği belirtmesi için yeni bir yol getiriyoruz. Tarayıcı, dil anlaşmasını yapma ve tercih edilen dili görüntüleme sorumluluğunu üstlenecek.

Diğer bir neden de, pek çok sitenin dil anlaşması için Accept-Language başlıklarını hiç kullanmaması olabilir (örneğin, bir çalışma ilk 10.000 sitenin yalnızca% 7,2'sinin Accept-Language kullandığını göstermektedir). Chrome Gizli modu, Accept-Language başlığını zaten bire indirmiştir.

Bu durum web geliştiricileri için ne anlama geliyor?

Dil pazarlığı yapmak için Accept-Language kullanan siteler daha az Accept-Language almaya hazırlanmalı ve kaynak denemesine katılmayı düşünmelidir. İndirilmiş Accept-Language değerleri şurada görünür:

  • Accept-Language HTTP isteği başlığı.
  • navigator.languages JavaScript alıcısı.

Tarayıcı, kullanıcının sitelere gönderilmesini tercih ettiği dili seçmek için dil iletişiminin sorumluluğunu üstlenir. Bunu sağlamak için sitelerin yanıt başlığına iki üst bilgi Variants (yeni bir başlık, dilleri destekleyen siteleri belirtir) Accept-Language ve Content-Language eklemeleri gerekir (aşağıdaki ayrıntılı örneğe bakın).

İndirimli Accept-Language planları şu anda iOS ve Web Görünümü'nü içermemektedir. Bu platformlar, kullanıcıların Accept-Language listesinin tamamını almaya devam edecektir. Bu platformlara yönelik olarak daha sonraki bir tarihte destek verilmesi planlanmaktadır.

Kabul Edilen Dili Azaltma için kaynak denemesi

Kaynak denemesi, katılımcı sitenin yanıtında tarayıcıya belirtilen denemeyi etkinleştirmesini bildiren bir jeton sağlamasını gerektirir. Ancak bu, tarayıcının siteye yaptığı ilk istekte, sitenin kaynak denemesine katılıp katılmadığını bilmesinin mümkün olmadığı anlamına gelir. Yani, bir oturumdaki ilk istek, azaltılmış Accept-Language header değerini göndermez. Bu sayfadaki alt kaynak istekleri (hem aynı kaynak hem de çapraz kaynak) kısaltılmış Accept-Language üst bilgisini alır. Sonraki aynı kaynak gezinmeleri de kısaltılmış Accept-Language üst bilgisini alır. Kaynaklar arası gezinmeler tam üstbilgiyi göndermeye geri dönerken, üst düzey çerçeve isteğinde geçerli bir kaynak deneme jetonu varsa sayfadaki kaynaklar arası istekler (ör. üçüncü taraf iframe istekleri) azaltılmış Accept-Language üst bilgisini göndermeye devam eder.

Bu, User-Agent kısaltma kaynak denemesine benzer. Dahili Chromium uygulaması hakkında daha fazla bilgi edinmek isterseniz Accept-Language HTTP üst bilgisini uygulama bölümünden daha fazla bilgi edinebilirsiniz.

Kabul Edilen Dili Azaltma kaynak denemesine katılma

Chrome'un kaynak denemelerini kullanmaya başlama bölümünde daha fazla bilgi bulabilirsiniz. Ancak temel adımlar aşağıda gösterilmektedir.

1. Adım

Kaynak denemesine kaydolmak ve alanlarınız için jeton almak üzere Dili Azaltma Denemesi sayfasını ziyaret edin.

2. Adım

HTTP yanıt başlıklarınızı güncelleyin:

  1. Origin-Trial: <ORIGIN TRIAL TOKEN> öğesini HTTP yanıt başlığınıza ekleyin. Burada <ORIGIN TRIAL TOKEN>, kaynak denemesine kaydolurken aldığınız jetonu içerir.
  2. Kitlenin hedeflendiği dilleri belirtmek için HTTP yanıt başlığınıza Content-Language ekleyin.
  3. Sitelerin desteklediği dilleri belirtmek için HTTP yanıtı üst bilginize Variants ekleyin.
  4. [İsteğe bağlı] İçerik iletişimi için önbellek anahtarı oluşturmak istiyorsanız HTTP yanıtınıza Vary: Accept-Language kodunu ekleyin.
  5. Bu üst bilgileri ayarlamak, yalnızca belirtilen kaynak için tarayıcı dili anlaşmasını (ilk istek için olası bir yeniden başlatma) tetikler. Sitelerin kullanıcılar için doğru dil temsilini göstermesini sağlamak amacıyla, içeriği kullanıcının Accept-Language üst bilgisine göre gönderen siteleri de güncellemeniz gerekir (aşağıdaki örneğe bakın).

3. Adım

Web sitenizi Chrome M109 Beta'da (veya sonraki bir sürümde) yükleyin ve kısaltılmış Accept-Language dizesini almaya başlayın.

Tüm sorunları veya geri bildirimleri Accept-Language Azaltma GitHub deposuna gönderin.

Demo

Kaynak denemesine kaydolan çok dilli bir sitenin gösterimi için (kaynak koduyla birlikte) https://reduce-accept-language.glitch.me/ adresine bakın.

Kaynak denemesine dahil olma ve kapsam dışı kalma adımları (kaynak koduyla birlikte) için https://reduce-accept-language-ot.glitch.me/ adresine bakın.

Örneğin example.com, ja (Japonca) ve en (İngilizce) dillerini destekler. Talep şu şekilde olabilir:

GET / HTTP/1.1
Host: example.com
Accept-Language: en

Site, kullanıcının kabul ettiği dile bağlı olarak, İngilizce içeriği tercih ettiğini bilmektedir. Yanıt başlıkları şunları içerebilir:

HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Kullanıcının Japonca içerik tercihi varsa istek şöyle olur:

GET / HTTP/1.1
Host: example.com
Accept-Language: ja

Bu durumda, site Japonca içerik için başlıklarla yanıt verir:

HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Sunucu tarafında, site belirli bir dil desteği arıyor, ancak destek algılanmazsa varsayılan ayara dönüyor olabilir:

if(accept_language == 'ja') {
    res.response('ja_page')
}
else {
   res.response('en_page')
}

Yukarıdaki örnekte example.com, Accept-Language değerine göre en veya ja yanıtı verir ve hiçbiri eşleşmezse varsayılan olarak en değerini alır. Bu durumda site, Accept-Language değerine göre /en veya /ja arasından ilgili dil sayfalarına yönlendirmeler de sağlayabilir. Yönlendirmelerle ilgili ayrıntılı örnekleri uygulama belgesinde bulabilirsiniz.

Üçüncü taraf kaynak denemesi desteği

Şu anda alanlarınızın deneme süresi için üçüncü taraf olarak kaydedilmesini desteklemiyoruz. Kaynaklar arasında alt kaynak olarak uygulanmış bir hizmet (ör. reklam sunma veya analiz) yürütüyorsanız üst düzey site kaynak denemesine katılıyorsa yalnızca azaltılmış Accept-Language başlığı alırsınız.

Kaynak denemesinin çalıştığını doğrulama

Chrome'un kaynak denemeleriyle ilgili sorunları giderme rehberi, jetonunuzun doğru şekilde yapılandırıldığından emin olmanız için eksiksiz bir yapılacaklar listesi sağlar.

Birden fazla dili ve bunların önceliklerini chrome://settings/languages veya Ayarlar → Diller bölümünden yapılandırabilirsiniz. Sitenizin desteklemediği bir dili seçip ek yeniden pazarlığın tetiklenmesini sağlamak için bunu listenin en üstüne taşımayı düşünün.

Kaynak deneme jetonunu içeren ilk yanıtın başlıkları aşağıdaki gibi görünmelidir:

İstek başlığının, Accept-Language sayısını azaltan ekran görüntüsü.

Azaltılmış Accept-Language değerini içeren sonraki istek başlıkları şu şekilde görünür:

Kaynak deneme jetonunu içeren ilk yanıtın üstbilgileri.

Kaynak denemesine katılmayı durdur

Deneme süresi boyunca herhangi bir zamanda, katılımı durdurabilir ve kullanıcının Kabul Dili'nin tam listesini alabilirsiniz. Katılmayı durdurmak için:

  1. Accept-Language Reduction deneme sürümü için Origin-Trial üst bilgisini HTTP yanıtınızdan kaldırın.
  2. [İsteğe bağlı] Bu başlığı göndermek istemiyorsanız HTTP yanıtınızdaki kaynak denemesine dahil olmaya eklenen Variants üst bilgisini kaldırın. Bunun için Variants değerini boş bir değerle de kullanabilirsiniz.
  3. [İsteğe bağlı] Bu üst bilgiyi göndermek istemiyorsanız HTTP yanıtınızdaki kaynak denemesini etkinleştirmeye eklenen Content-Language üst bilgisini kaldırın.

Kaynak deneme süresi

Kabul Etme Dilini Azaltma kaynak denemesi en az altı ay sürer. Bu, Chrome'un yaklaşık altı aşamasına denk gelir. Kaynak denemesi M109'da görünür ve M114 ile sona erer (deneme sürümü bulunan son Chrome sürümü). Bu noktada Chrome, kısaltılmış Accept-Language dizesini aşamalı olarak göndermeden önce kaynak denemeden gelen geri bildirimi değerlendirir: Önce Accept-Language HTTP üst bilgisini azaltın ve ardından JS arayüzünü küçültün. Bir site test etmek için daha fazla zamana ihtiyaç duyuyorsa sonraki bir kullanımdan kaldırma kaynak denemesine kaydolabilir. Böylece, Accept-Language dizesinin tamamına en az altı ay daha erişebilir. Desteği sonlandırılan deneme hakkında daha fazla ayrıntıyı, süreç hazır olduğunda yayınlayacağız.

Geri bildirim

Tüm sorunları veya geri bildirimleri Accept-Language Azaltma GitHub deposuna gönderin.