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.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
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:
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.- Kitlenin hedeflendiği dilleri belirtmek için HTTP yanıt başlığınıza
Content-Language
ekleyin. - Sitelerin desteklediği dilleri belirtmek için HTTP yanıtı üst bilginize
Variants
ekleyin. - [İ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. - 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:
Azaltılmış Accept-Language değerini içeren sonraki istek başlıkları şu şekilde görünür:
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:
- Accept-Language Reduction deneme sürümü için
Origin-Trial
üst bilgisini HTTP yanıtınızdan kaldırın. - [İ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çinVariants
değerini boş bir değerle de kullanabilirsiniz. - [İ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.