Accept-Language
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
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 request header | Ð½ÐµÑ |
| 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>-
Тег ÑзÑка (иногда назÑваÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑом локали, "locale identifier"). СоÑÑÐ¾Ð¸Ñ Ð¸Ð· 2-3 бÑквенного оÑновного ÑзÑкового Ñега, пÑедÑÑавлÑÑÑего ÑзÑк, и опÑионалÑно за ним могÑÑ ÑледоваÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе под-Ñеги, ÑазделÑннÑе
'-'. Ðаиболее ÑаÑпÑоÑÑÑанÑнной дополниÑелÑной инÑоÑмаÑией ÑвлÑÑÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð½Ð° ÑÑÑÐ°Ð½Ñ Ð¸Ð»Ð¸ Ñегион (напÑимеÑ,'en-US'или'fr-CA') или Ñип алÑавиÑа, коÑоÑÑй ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ (напÑимеÑ,'sr-Latn'). ÐÑÑгие ваÑианÑÑ, Ñакие как Ñип оÑÑогÑаÑии ('de-DE-1996') обÑÑно не иÑполÑзÑÑÑÑÑ Ð² конÑекÑÑе данного заголовка. *-
ÐÑбой ÑзÑк;
'*'обознаÑÐ°ÐµÑ Ð»Ñбое знаÑение. ;q=(q-factor weighting)-
ÐÑбое из знаÑений, ÑазмеÑÑннÑÑ Ð² поÑÑдке пÑедпоÑÑениÑ, вÑÑаженном позиÑией quality value, коÑоÑое назÑваÑÑ Ð²ÐµÑами.
ÐÑимеÑÑ
Accept-Language: * Accept-Language: de Accept-Language: de-CH Accept-Language: en-US,en;q=0.5 Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5 Accept-Language: ru-RU, ru;q=0.9, en-US;q=0.8, en;q=0.7, fr;q=0.6
СпеÑиÑикаÑии
| СпеÑиÑикаÑÐ¸Ñ | Ðазвание |
|---|---|
| RFC 7231, Ñаздел 5.3.5: Accept-Language | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- HTTP content negotiation
- Header with the result of the content negotiation:
Content-Language - Other similar headers:
TE,Accept-Encoding,Accept