Что такое Content-Language и Accept-Language?

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

5 ответов


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, чтобы заставить определенный язык для вашего сайт. Это связано с тем, что некоторые пользователи могут захотеть увидеть ваш сайт на определенном языке, не меняя своих предпочтений приема языка.


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


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


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

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

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


на Content-Language заголовок сущность используется для описания языка(ов), предназначенных для аудитории, так что это позволяет пользователю дифференцировать в соответствии с собственным предпочтительным языком пользователей.

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

- MDN Web Reference - HTTP заголовки-контент-Язык

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

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

- MDN Web Reference-HTTP заголовки-принять-язык