Accept-Language

Ви читаєте англійську версію цього вмісту, бо ще не існує перекладу для цієї мови. Допоможіть нам перекласти цю статтю!

Заголовок HTTP-запиту Accept-Language повідомляє про те, які мови клієнт може зрозуміти, і який варіант локалі є кращим. (За мовами ми маємо на увазі природні мови, такі як англійська, а не мови програмування.) Потім, використовуючи узгодження вмісту, сервер вибирає одну з пропозицій, використовує її та інформує клієнта про свій вибір за допомогою заголовку відповіді Content-Language. Браузери встановлюють адекватні значення для цього заголовка відповідно до їхньої мови інтерфейсу користувача, і, навіть, якщо користувач може змінити її, це трапляється рідко (і не схвалюється, оскільки це призводить до fingerprinting).

Цей заголовок є рекомендацією, яку слід використовувати, коли сервер не має можливості визначити мову іншим способом, наприклад, через конкретну URL-адресу, яка керується явним рішенням користувача. Рекомендується, щоб сервер ніколи не перевизначав явне рішення. Зміст Accept-Language часто не керується користувачем (як, наприклад, під час подорожі та використання Інтернет-кафе в іншій країні); користувач може також захотіти відвідати сторінку іншою мовою, ніж локалі свого інтерфейсу користувача.

Якщо сервер не може обслуговувати будь-яку відповідну мову, він теоретично може відправити код помилки 406 (Not Acceptable). Але, з кращого досвіду це робиться рідко, замість цього кращим способом є ігнорування у цьому випадку заголовка Accept-Language .

Тип заголовку Request header
Forbidden header name ні
CORS-safelisted request-header yes

Синтаксис

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'), зазвичай не використовуються в контексті цього заголовку.

*
Будь-яка мова; '*' використовується як шаблон заміни.
;q= (q-factor weighting)
Будь-яке значення, розміщене в порядку уподобань, виражене за допомогою відносного quality value що називається вагою.

Приклади

Accept-Language: de

Accept-Language: de-CH

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

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

Specification Title
RFC 7231, section 5.3.5: Accept-Language Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context
BCP 47 Tags for the Identification of Language

Сумісність з браузерами

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Accept-LanguageChrome Full support YesEdge Full support YesFirefox Full support YesIE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support  
Full support

Див. також