files/en-us/web/http/reference/headers/accept-language/index.md
The HTTP Accept-Language {{Glossary("request header")}} indicates the natural language and locale that the client prefers.
The server uses content negotiation to select one of the proposals and informs the client of the choice with the {{HTTPHeader("Content-Language")}} response header.
Browsers set required values for this header according to their active user interface language.
Users can also configure additional preferred languages through browser settings.
The Accept-Language header generally lists the same locales as the {{domxref("navigator.languages")}} property, with decreasing q values (quality values). Some browsers, like Chrome and Safari, add language-only fallback tags in Accept-Language. For example, en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7 when navigator.languages is ["en-US", "zh-CN"]. For privacy purposes (reducing {{Glossary("fingerprinting")}}), both Accept-Language and navigator.languages may not include the full list of user preferences. For example, in Safari (always) and Chrome's incognito mode, only one language is listed.
This header serves as a hint when the server cannot determine the target content language otherwise (for example, use a specific URL that depends on an explicit user decision).
The server should never override an explicit user language choice. The content of Accept-Language is often out of a user's control (when traveling, for instance).
A user may also want to visit a page in a language different from the user interface language.
The server may send back a {{HTTPStatus("406", "406 Not Acceptable")}} error code when unable to serve content in a matching language, but this is rarely implemented.
Servers often ignore the Accept-Language header in such cases and send a successful response with the most appropriate resource instead for a better user experience.
* Values can only be 0-9, A-Z, a-z, space, or the characters *,-.;=.
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>
-.
The most common extra information is the country or region variant (like en-US or fr-CA) or the type of alphabet to use (like sr-Latn).
Other variants, like the type of orthography (de-DE-1996), are usually not used in the context of this header.* (wildcard)
Accept-Language field.;q= (q-factor weighting)
1.The following request has a preference for German using the de base language:
Accept-Language: de
The following request indicates a stronger preference for Danish, but accepts British English and other types of English at a lower priority:
Accept-Language: da, en-gb;q=0.8, en;q=0.7
{{Specifications}}
{{Compat}}