--- title: Accept-Language slug: Web/HTTP/Headers/Accept-Language tags: - En-tête HTTP - En-tête de requête - HTTP - Négociation de contenu - Reference translation_of: Web/HTTP/Headers/Accept-Language ---
L'en-tête Accept-Language
de la requête HTTP indique quelles sont les langues que le client est capable de comprendre, et quelle variante locale est préférée. En utilisant la négociation de contenu, le serveur choisit alors l'une des propositions, l'utilise et informe le client de son choix par l'entête de réponse {{HTTPHeader("Content-Language")}}. Les navigateurs définissent les valeurs adéquates pour cet entête en fonction de la langue de leur interface utilisateur, et même si un utilisateur peut la changer, cela se produit rarement (et cela est vu d'un mauvais œil, dans la mesure où cela permet l'identification par empreinte numérique).
Cet en-tête est une indication destinée à être utilisée lorsque le serveur n'a aucun moyen de déterminer la langue d'une autre manière, comme une URL spécifique, qui est contrôlée par une décision explicite de l'utilisateur. Il est recommandé que le serveur ne passe jamais outre une décision explicite. Le contenu d'Accept-Language
est souvent hors du contrôle de l'utilisateur (comme lors d'un voyage et de l'utilisation d'un cybercafé à l'étranger) ; l'utilisateur peut également vouloir visiter une page dans une langue que celle des paramètres régionaux de son interface utilisateur.
Si le serveur ne peut servir aucune langue qui corresponde, il peut théoriquement renvoyer un code d'erreur {{HTTPStatus ("406")}} (Not Acceptable). Mais, pour une meilleure expérience utilisateur, cela est rarement fait et la façon de faire la plus courante est d'ignorer l'en-tête Accept-Language
dans ce cas.
Type d'en-tête | {{Glossary("Request header")}} |
---|---|
{{Glossary("Forbidden header name")}} | non |
{{Glossary("Simple header", "CORS-safelisted request-header")}} | oui |
Accept-Language: <langue> Accept-Language: <locale> Accept-Language: * // Type multiples, pondérés par la syntaxe {{glossary("quality values", "valeur de qualité")}} : Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5
<langue>
<locale>
'-'
. L'information supplémentaire la plus courante est la variante de pays (telle que'en-US'
) ou le type d'alphabet à utiliser (comme'sr-Lat'
). D'autres variantes comme le type d'orthographe ('de-DE-1996'
) ne sont pas habituellement utilisées dans le contexte de cet en-tête.*
'*'
est utilisé comme un joker.;q=
(pondération q-factor)Accept-Language: de Accept-Language: de-CH Accept-Language: en-US,en;q=0.5
Spécification | Titre |
---|---|
{{RFC("7231", "Accept-Language", "5.3.5")}} | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
{{Compat("http.headers.Accept-Language")}}