Что такое Content-Language и Accept-Language? - PullRequest
54 голосов
/ 28 мая 2011

Я видел HTTP-заголовки Content-Language и Accept-Language, может кто-нибудь объяснить, для чего они и чем они отличаются? У меня есть многоязычный сайт, и мне интересно, должен ли пользователь настроить оба сайта на текущий выбранный язык.

Ответы [ 5 ]

81 голосов
/ 28 мая 2011

Content-Language, заголовок объекта, используется для описания языка (языков), предназначенного для аудитории, так что он позволяет пользователю различать в соответствии с предпочтительным языком пользователя.Заголовки объектов используются как в HTTP-запросах, так и в ответах. 1

Accept-Language, заголовок HTTP запроса, объявляет, на каких языках клиент способен понимать,и какой вариант локали предпочтителен. 2 Может быть несколько языков, каждый с необязательным значением веса или «качества».Например:

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

(Вес по умолчанию равен 1, поэтому это эквивалентно da;q=1, en-GB;q=0.8, en;q=0.7).

Вам нужно будет проанализировать значения и веса, чтобы увидеть,доступен соответствующий перевод, и предоставьте пользователю перевод на максимально возможном весе.

Рекомендуется предоставить пользователям альтернативу, например, значение набора файлов cookie, для принудительной установки определенного языка для вашего сайта.,Это связано с тем, что некоторые пользователи могут захотеть видеть ваш сайт на определенном языке, не меняя при этом свои языковые предпочтения.

15 голосов
/ 28 мая 2011

Content-Language описывает язык, для которого предназначена определенная часть содержимого.Accept-Language - это список языков, на которых пользовательский агент хочет контент. Лучший способ думать об этом - это то, что Content-Language описывает контент, а Accept-Language передает предпочтение.

13 голосов
/ 28 мая 2011

Content-Language - это язык страницы, которую вы обслуживаете. Accept-Language - это список языков, которые вы предпочитаете принимать.

5 голосов
/ 28 декабря 2013

Поле заголовка объекта Content-Language описывает естественный язык (и) предполагаемой аудитории для вложенного объекта.Обратите внимание, что это может быть не эквивалентно всем языкам, используемым в теле объекта.

Поле заголовка запроса Accept-Language ограничивает набор естественных языков, предпочитаемых в качестве ответа на запрос

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

0 голосов
/ 06 августа 2018

Заголовок объекта Content-Language используется для описания языков, предназначенных для аудитории, так что он позволяет пользователю различать в соответствии с предпочтительным языком пользователя.

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

- веб-справочник MDN - HTTP-заголовки - Content-Language

HTTP-заголовок запроса Accept-Language сообщает, на каких языках клиентв состоянии понять, и какой вариант локали является предпочтительным.(Под языками мы подразумеваем естественные языки, такие как английский, а не языки программирования.)

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

- веб-справочник MDN - HTTP-заголовки - Accept-Language

...