HTTPQUERY
Русский

Accept-Language

Применение

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

Браузеры заполняют этот заголовок на основе языковых настроек операционной системы. Значение соответствует синтаксису языковых тегов BCP 47 и поддерживает коды основных языков (en, de, fr) и региональные подтеги (en-US, pt-BR, zh-CN). Когда указано несколько языков, значения качества упорядочивают предпочтения.

Язык возвращённого содержимого сервер сообщает через заголовок ответа Content-Language. Когда подходящего перевода нет, большинство серверов возвращают язык по умолчанию, а не отвечают 406 Not Acceptable, поскольку выдача содержимого на резервном языке обычно полезнее, чем возврат ошибки.

language-tag

Языковой тег BCP 47. Основной подтег вроде en совпадает с любым региональным вариантом. Тег с региональным подтегом, например en-GB, нацелен на конкретную локаль.

*

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

;q= (значение качества)

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

Пример

Клиент предпочитает британский английский, в качестве резервного варианта — общий английский, а немецкий — с пониженным приоритетом. Сервер отвечает содержимым на общем английском.

Запрос

GET / HTTP/1.1
Host: example.com
Accept-Language: en-GB, en;q=0.9, de;q=0.5

Ответ

HTTP/1.1 200 OK
Content-Language: en

Запрос из браузера, настроенного на французский, с резервным вариантом в виде любого языка.

Accept-Language: fr-FR, fr;q=0.9, *;q=0.5

Многоязычный список предпочтений, в котором испанский стоит первым, португальский вторым, а английский третьим.

Accept-Language: es, pt;q=0.8, en;q=0.6