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

Accept-Language Reduction, Accept-Language başlığında kullanıcının dil tercihlerini azaltarak ve yalnızca kullanıcının en çok tercih ettiği dili (yalnızca bir tane) göndererek pasif parmak izi yüzeylerini azaltmaya yönelik bir çabadır.

Chrome 109 Beta sürümünden itibaren, sitelerin azaltılmış Accept-Language başlığını almasını etkinleştiren Accept-Language Reduction için başlangıç denemesini kullanıma sunacağız. Bu sayede siteler, azaltılmış Accept-Language gelecekteki bir Chrome sürümünde varsayılan davranış haline gelmeden önce sorunları bulup düzeltebilir. Özelliği kararlı sürüme sunulmadan önce test etmek için Chrome 109'un yayınlanma tarihinden (şu anda 10 Ocak 2023 olarak planlanmıştır) önce etkinleştirip test ettiğinizden emin olun.

Aşağıda, azaltmadan önce ve sonra Accept-Language başlığı örneklerini inceleyin.

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

Kaynak denemesine ve bu süreçte neler bekleyebileceğinize genel bir bakış aşağıda verilmiştir. Bu değişiklikle ilgili geri bildirimlerinizi veya kaynak deneme sürümü sırasında karşılaştığınız sorunları Accept-Language Reduction GitHub deposunda paylaşabilirsiniz.

Accept-Language nedir?

Accept-Language dizesi her HTTP isteğinde paylaşılır ve tarayıcı tarafından yüklenen tüm kaynaklara JavaScript'de gösterilir. Şu anda kullanıcının tercih ettiği tüm dilleri içerir.

Accept-Language neden azaltılıyor?

Accept-Language azaltma, Chrome'daki pasif parmak izi alma yüzeylerini azaltmaya yönelik bir çalışmadır.

Şu anda Accept-Language başlığı her HTTP isteğinde varsayılan olarak paylaşılır ve tarayıcı tarafından yüklenen tüm kaynaklara JavaScript'de gösterilir. Kullanıcının tüm dil tercihlerini içerir. Sitelerin çok dilli içerik sunmak istemesi durumunda tarayıcının, kullanıcının yapılandırdığı dillerin tam listesini göndermesi yerine, sitelerin çok dilli içeriği belirtmesi için yeni bir yöntem sunuyoruz. Bu yöntemde, dil pazarlığı yapma ve tercih edilen dili görüntüleme sorumluluğu tarayıcıya aittir.

Diğer bir neden de birçok sitenin dil pazarlığı için Accept-Language üstbilgilerini hiç kullanmamasıdır (örneğin, bir çalışma, en iyi 10.000 sitenin yalnızca% 7,2'sinin Accept-Language kullandığını belirtir). Chrome Gizli modu, Accept-Language sayısını zaten bire indirmiştir.

Bu durum web geliştiriciler 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. Azaltılmış Accept-Language değerleri şu yerlerde görünür:

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

Tarayıcı, kullanıcının sitelere gönderilecek tercih ettiği dili seçmek için dil pazarlığı yapma sorumluluğunu üstlenir. Bunun için sitelerin, yanıt başlığına Variants (yeni bir başlık, dilleri destekleyen siteleri belirtir) Accept-Language ve Content-Language olmak üzere iki başlık eklemesi gerekir (ayrıntılı örneği aşağıda bulabilirsiniz).

Azaltılmış Accept-Language planları şu anda iOS ve WebView'i içermiyor. Bu platformlar, kullanıcıların Accept-Language listesinin tamamını almaya devam edecek. Bu platformlar için destek daha sonraki bir tarihte planlanmaktadır.

Accept-Language kısaltması için kaynak denemesi

Kaynak denemesi için katılımcı sitenin, yanıtında tarayıcıya belirtilen denemeyi etkinleştirmesini söyleyen bir jeton sağlaması gerekir. Ancak bu, tarayıcının siteye yaptığı ilk istekte sitenin bir kaynak denemesine katılıp katılmadığını bilmesinin mümkün olmadığı anlamına gelir. Bu, bir oturumdaki ilk istek, azaltılmış Accept-Language header göndermeyeceği anlamına gelir. Bu sayfadaki hem aynı kaynaktan hem de çapraz kaynaktan gelen alt kaynaklar için istekler, azaltılmış Accept-Language üstbilgisini alır. Aynı kaynaktaki sonraki gezinmeler de azaltılmış Accept-Language başlığını alır. Kaynaklar arası gezinmeler tam başlığı göndermeye geri döner. Üst düzey çerçeve isteğinde geçerli bir kaynak deneme jetonu varsa sayfadaki kaynaklar arası istekler (üçüncü taraf iframe istekleri gibi) yine de azaltılmış Accept-Languagebaşlığı gönderir.

Bu, kullanıcı aracısı azaltma kaynak denemesine benzer. Dahili Chromium uygulaması hakkında daha fazla bilgi edinmek istiyorsanız Reduce Accept-Language HTTP üstbilgisini uygulama başlıklı makaleyi inceleyebilirsiniz.

Accept-Language azaltma kaynağı denemesine katılma

Daha fazla bilgi için Chrome'un kaynak denemelerini kullanmaya başlama başlıklı makaleyi inceleyebilirsiniz. Temel adımlar aşağıda verilmiştir.

1. Adım

Kaynak denemesine kaydolmak ve alanlarınız için jeton almak istiyorsanız Kabul Edilen Dilleri Azaltma Deneme Sürümü sayfasını ziyaret edin.

2. Adım

HTTP yanıtı üstbilgilerinizi güncelleyin:

  1. HTTP yanıt başlığınıza Origin-Trial: <ORIGIN TRIAL TOKEN> ekleyin. Burada <ORIGIN TRIAL TOKEN>, kaynak denemesine kaydolurken aldığınız jetonu içerir.
  2. Kitleye yönelik 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 başlığınıza Variants ekleyin.
  4. [İsteğe bağlı] İçerik için pazarlık yapmak üzere HTTP yanıtınıza Vary: Accept-Language ekleyin.
  5. Bu üstbilgilerin ayarlanması, yalnızca belirli bir kaynak için tarayıcı dili pazarlığını (ilk istek için olası bir yeniden başlatma) tetikler. Sitelerin kullanıcılar için doğru dil temsilini göstermesi amacıyla, içeriği kullanıcının Accept-Language başlığına göre gönderen siteleri de güncellemeniz gerekir (aşağıdaki örneğe bakın).

3. Adım

Web sitenizi Chrome M109 Beta (veya sonraki bir sürüm) sürümünde açın ve azaltılmış Accept-Language dizesini almaya başlayın.

Sorunları veya geri bildirimleri Accept-Language Reduction GitHub deposuna gönderin.

Demo

Kaynak deneme sürümüne kaydolan çok dilli bir sitenin (kaynak kodla birlikte) gösterimi için https://reduce-accept-language.glitch.me/ adresine bakın.

Kaynak deneme sürümünü etkinleştirme ve devre dışı bırakma (kaynak kodla birlikte) gösterimi için https://reduce-accept-language-ot.glitch.me/ adresine bakın.

Örneğin, example.com; ja (Japonca) ve en (İngilizce) dillerini destekler. İstekler şunlar olabilir:

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

Site, kullanıcının accept-language özelliğine göre İngilizce içerikleri tercih ettiğini bilir. Yanıt üstbilgileri ş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 şu şekilde olur:

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

Bu durumda site, Japonca içerik başlıkları ile 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 olabilir ancak destek algılanmazsa varsayılan bir dile geri dönebilir:

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. Hiçbir eşleşme yoksa varsayılan olarak en yanıtı verilir. Bu durumda site, Accept-Language değerine göre /en veya /ja dil sayfalarına yönlendirmeler de sağlayabilir. Yönlendirmelerle ilgili ayrıntılı örnekleri uygulama dokümanında bulabilirsiniz.

Üçüncü taraf kaynağı deneme sürümü desteği

Şu anda alanlarınızı deneme için üçüncü taraf olarak kaydettirmeyi desteklemiyoruz. Kaynaklar arasında alt kaynak olarak uygulanan bir hizmeti (reklam yayını veya analizler gibi) işletiyorsanız yalnızca üst düzey site kaynak denemesine katılıyorsa azaltılmış Accept-Language üstbilgisini alırsınız.

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

Chrome'un kaynak denemeleriyle ilgili sorunları giderme kılavuzunda, jetonunuzun doğru şekilde yapılandırıldığından emin olmak için eksiksiz bir yapılacaklar listesi sağlanır.

Birden fazla dili ve bunların önceliğini chrome://settings/languages veya Ayarlar → Diller'den yapılandırabilirsiniz. Ek yeniden pazarlığın tetiklendiğinden emin olmak için sitenizin desteklemediği bir dili seçip listenin en üstüne taşımayı deneyin.

İlk yanıtın, kaynak deneme jetonunu içeren üstbilgileri şu şekilde görünmelidir:

Azaltılmış Accept-Language içeren istek başlığının ekran görüntüsü.

Azaltılmış Accept-Language içeren sonraki istek üst bilgileri şu şekilde görünür:

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

Kaynak denemeye katılmayı bırakma

Deneme süresi boyunca dilediğiniz zaman katılımı durdurabilir ve kullanıcının Accept-Language özelliğinin tam listesini alabilirsiniz. Görevden çıkmak için:

  1. HTTP yanıtınızdan Accept-Language Reduction denemesi için Origin-Trial üst bilgisini kaldırın.
  2. [İsteğe bağlı] Başlangıç denemesine kaydolmak için HTTP yanıtınıza eklenen Variants üst bilgisini, bu üst bilgisini göndermek istemiyorsanız kaldırın. Bunu yapmak için boş bir değerle birlikte Variants'ü de kullanabilirsiniz.
  3. [İsteğe bağlı] Bu başlığı göndermek istemiyorsanız HTTP yanıtınızda başlangıç denemesine kaydolma işlemi için eklenen Content-Language başlığını kaldırın.

Kaynak deneme süresi

Accept-Language Reduction kaynak denemesi en az altı ay boyunca (yaklaşık altı Chrome aşamasına karşılık gelir) yayınlanacaktır. Kaynak denemesi M109'da gösterilir ve M114'te sona erer (yani deneme sürümünün kullanılabildiği son Chrome sürümü). Bu noktada Chrome, azaltılmış Accept-Language dizesini aşamalı olarak göndermeye devam etmeden önce kaynak deneme sürümünden gelen geri bildirimi değerlendirir: Önce Accept-Language HTTP üst bilgisini, ardından JS arayüzünü azaltır. Bir sitenin test etmek için daha fazla zamana ihtiyacı varsa desteği sonlandırılan kaynak deneme sürümünü etkinleştirebilir. Bu sürüm, en az altı ay daha Accept-Language dizesinin tamamına erişmelerine olanak tanır. Desteği sonlandırma denemesi hazır olduğunda daha fazla bilgi yayınlayacağız.

Geri bildirim

Sorunları veya geri bildirimleri Accept-Language Reduction GitHub deposuna gönderin.