Spec-Zone.ru › HTTP

Заголовки: Accept-Language

Заголовок Accept-Language

Базовая поддержка Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она поддерживается браузерами с июля 2015 года.

  • Подробнее
  • Полная таблица совместимости
>

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

Заголовок Accept-Language обычно содержит те же локали, что и свойство navigator.languages, с уменьшающимися значениями q (значениями качества). Некоторые браузеры, например Chrome и Safari, добавляют в Accept-Language резервные теги, содержащие только язык. Например, en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7, когда navigator.languages имеет значение ["en-US", "zh-CN"]. В целях конфиденциальности (для снижения риска цифрового отпечатка) и Accept-Language, и navigator.languages могут не содержать полный список предпочтений пользователя. Например, в Safari (всегда) и в режиме инкогнито Chrome указывается только один язык.

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

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

Тип заголовка Заголовок запроса
Запрещенный заголовок запроса Нет
Заголовок запроса из списка разрешенных для CORS Да*

* Значения могут содержать только 0-9, A-Z, a-z, пробел или символы *,-.;=.

Синтаксис

Accept-Language: <language>
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>

Тег языка (который иногда называют «идентификатором локали»). Он состоит из базового языкового тега длиной 2–3 буквы, указывающего язык, за которым могут следовать дополнительные под-теги, разделенные символом -. Чаще всего дополнительная информация указывает вариант страны или региона (например, en-US или fr-CA) либо тип используемого алфавита (например, sr-Latn). Другие варианты, например тип орфографии (de-DE-1996), обычно не используются в контексте этого заголовка.

* (подстановочный знак)

Любой язык, которому не соответствует ни один другой язык, указанный в поле Accept-Language.

;q= (взвешивание с помощью q-фактора)

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

Примеры

>

Использование заголовков Accept-Language

Следующий запрос указывает на предпочтение немецкого языка с использованием базового тега языка de:

Accept-Language: de

Использование значений качества в Accept-Language

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

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

Спецификации

Спецификация
Семантика HTTP>
# field.accept-language>

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
Accept-Language 1 12 1 15 1 18 4 14 1 1.0 4.4 1

См. также

  • HTTP согласование содержимого
  • Заголовок с результатом согласования содержимого: Content-Language
  • Другие похожие заголовки: TE, Accept-Encoding, Accept

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Accept-Language

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API