İçerik-Dil ve Kabul-Dili nedir?


82

Ben HTTP başlıklarını gördük Content-Languageve Accept-Languagebirisi aralarındaki fark ne için ve bu açıklayabilir? Çok dilli bir sitem var ve her ikisini de kullanıcı tarafından seçilen mevcut dili siteye mi ayarlamalıyım diye merak ediyorum.


Tarayıcılar normalde bunları kullanmadığından, muhtemelen sitenize İçerik-Dili eklemekle uğraşmamalısınız. Bununla birlikte, HTML'nizde lang özelliğini kullanabilirsiniz.
james.garriss

Yanıtlar:


105

Content-Languagebir varlık başlığı, hedef kitleye yönelik dil (ler) i tanımlamak için kullanılır, böylece bir kullanıcının, kullanıcının kendi tercih ettiği dile göre farklılaşmasına izin verir. Varlık başlıkları hem HTTP isteklerinde hem de yanıtlarda kullanılır. 1

Accept-Language, bir istek HTTP başlığı, istemcinin hangi dilleri anlayabildiğini ve hangi yerel ayar varyantının tercih edildiğini bildirir. 2 Her biri isteğe bağlı bir ağırlık veya 'kalite' değerine sahip birden fazla dil olabilir. Örneğin:

Accept-Language: da, en-GB;q=0.8, en;q=0.7

(Varsayılan ağırlık 1'dir, bu nedenle bu eşdeğerdir da;q=1, en-GB;q=0.8, en;q=0.7).

Uygun bir çevirinin olup olmadığını görmek için değerleri ve ağırlıkları ayrıştırmanız ve kullanıcıya tercih edilen en yüksek dil ağırlığında çeviriyi sağlamanız gerekecektir.

Kullanıcılara, siteniz için belirli bir dili zorlamak için bir çerez seti değeri gibi bir alternatif vermeniz önerilir. Bunun nedeni, bazı kullanıcıların sitenizi dil kabul tercihlerini değiştirmeden belirli bir dilde görmek isteyebilmeleridir.


13
Cevabınızda biraz ince ayar yapın: İçerik Dili bir içerik başlığıdır, bu nedenle sunucudan istemciye veya istemciden sunucuya içerik için geçerlidir.
james.garriss

1
RFC2616: “İçerik Dili varlık başlığı alanı, kapalı varlık için hedeflenen hedef kitlenin doğal dilini / dillerini tanımlar. Bununla birlikte, bir varlık içinde birden çok dilin mevcut olması, birden çok dilsel kitleye yönelik olduğu anlamına gelmez. Bir örnek, İngiliz okur yazar bir dinleyici tarafından kullanılması amaçlanan "Latince İlk Ders" gibi başlangıç ​​dili için bir astar olabilir. Bu durumda, İçerik Dili uygun şekilde yalnızca "en" içerir. " R. Fielding, UC Irvine, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee; 1999.
Ucho

Yani bu kesinlikle sayfadaki diller değil. RFC 2616 Bölüm 14.12'ye bakın .
Ucho

20

Content-Languagebelirli bir içerik parçasının amaçladığı dili açıklar. Accept-Language, bir kullanıcı aracısının içerik istediği dillerin listesidir. Bunu düşünmenin en iyi yolu Content-Language, içeriği açıklamak ve Accept-Languagebir tercihi iletmektir.


15

İçerik Dili , sunduğunuz sayfanın dilidir. Kabul-Dil , kabul etmeyi TERCİH ETTİĞİNİZ dillerin bir listesidir.


5

İçerik Dili varlık başlığı alanı, kapalı varlık için hedeflenen kitlenin doğal dilini / dillerini tanımlar. Bunun varlık gövdesi içinde kullanılan tüm dillere eşdeğer olmayabileceğini unutmayın.

Accept-Language istek başlığı alanı, isteğe yanıt olarak tercih edilen doğal diller kümesini kısıtlar.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


0

Content-Language Varlık başlığı bir kullanıcı kullanıcıların kendi tercih ettiği dilde göre ayırt sağlayan, böylece, dil (s) tarif kitleye yönelik kullanılır.

Header type                     Entity header
Forbidden header name           no
CORS-safelisted response-header yes
CORS-safelisted request-header  yes

- MDN Web Referansı - HTTP Başlıkları - İçerik Dili

Accept-Languageİstemci anlayabilir diller istek HTTP başlığı reklamını ve hangi yerel varyantı tercih edilmektedir. (Dillerle, programlama dillerini değil, İngilizce gibi doğal dilleri kastediyoruz.)

Header type                     Request header
Forbidden header name           no
CORS-safelisted request-header  yes

- MDN Web Referansı - HTTP Üstbilgileri - Kabul Dili

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.