Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

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

Данный заголовок является подсказкой для сервера, на каком языке отдавать содержимое пользователю, когда нет другого способа определить это (например, явно указанный язык в URL'е, который пользователь явно выбрал). Рекомендуется никогда не переопределять на стороне сервера явный выбор пользователем языка. Содержимое заголовка Accept-Language часто не может быть переопределено пользователем (например, в путешествии, когда пользователь пользуется услугами итернет-кафе); также пользователь может захотеть посмотреть содержимое сайта на языке отлично от языка интерфейса.

Если сервер не может предоставить содержимое на языке переданном в заголовке Accept-Language, теоретически он может вернуть HTTP-статус 406 (Not Acceptable). Однако, для удобства пользователя, зачастую сервер в данном случае просто игнорирует заголовок  Accept-Language .

Header type Request header
Forbidden header name нет
CORS-safelisted request-header да

Синтаксис

Accept-Language: <language>
Accept-Language: <locale>
Accept-Language: *

// Multiple types, weighted with the quality value syntax:
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5

Директивы

<language>
A language expressed as a 2 or 3-character string.
<locale>
A full language tag. In addition to the language itself, it may contain additional information after a '-'. The most common extra information is the country variant (like 'en-US') or the type of alphabet to use (like 'sr-Lat'). Other variants like the type of orthography ('de-DE-1996') are usually not used in the context of this header.
*
Any language; '*' is used as a wildcard.
;q= (q-factor weighting)
Any value placed in an order of preference expressed using a relative quality value called weight.

Examples

Accept-Language: de

Accept-Language: de-CH

Accept-Language: en-US,en;q=0.5

Specifications

Specification Title
RFC 7231, секция 5.3.5: Accept-Language Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context

Browser compatibility

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
Базовая поддержкаChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

See also

Метки документа и участники

Внесли вклад в эту страницу: serj-by
Обновлялась последний раз: serj-by,