Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
En-tête Accept-Language
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'en-tête de requête HTTPAccept-Language indique quelles sont les langues que le client est capable de comprendre, et quelle variante locale est préférée.En utilisant lané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éponseContent-Language.Les navigateurs définissent les valeurs requises pour cet en-tête en fonction de la langue active de leur interface utilisateur.Les utilisateur·ice·s peuvent aussi définir des langues préférées supplémentaires dans les paramètres du navigateur.
L'en-têteAccept-Language liste généralement les mêmes locales que la propriéténavigator.languages, avec des valeursq (valeurs de qualité) décroissantes. Certains navigateurs, comme Chrome et Safari, ajoutent des balises de repli ne contenant que la langue dansAccept-Language. Par exemple,en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7 lorsquenavigator.languages vaut["en-US", "zh-CN"]. Pour des raisons de confidentialité (réduction de laprise d'empreinte),Accept-Language etnavigator.languages peuvent ne pas inclure la liste complète des préférences utilisateur·ice·s. Par exemple, dans Safari (toujours) et le mode navigation privée de Chrome, une seule langue est listée.
Cet en-tête sert d'indication lorsque le serveur ne peut pas déterminer la langue du contenu cible autrement (par exemple, utiliser une URL spécifique qui dépend d'une décision explicite de l'utilisateur·ice).Le serveur ne doit jamais passer outre un choix explicite de langue de l'utilisateur·ice. Le contenu d'Accept-Language est souvent hors du contrôle de l'utilisateur·ice (par exemple lors d'un voyage).Un·e utilisateur·ice peut aussi vouloir visiter une page dans une langue différente de celle de l'interface utilisateur.
Le serveur peut retourner un code d'erreur406 Not Acceptable lorsqu'il ne peut pas servir de contenu dans une langue correspondante, mais cela est rarement mis en œuvre.Les serveurs ignorent souvent l'en-têteAccept-Language dans ces cas et retournent une réponse réussie avec la ressource la plus appropriée pour une meilleure expérience utilisateur·ice.
| Type d'en-tête | En-tête de requête |
|---|---|
| En-tête de requête interdit | Non |
| En-tête de requête sûr pour le CORS | Oui |
* Les valeurs ne peuvent contenir que0-9,A-Z,a-z, l'espace ou les caractères*,-.;=.
Dans cet article
Syntaxe
Accept-Language: <language>Accept-Language: *// Type multiples, pondérés par la syntaxe de valeur de qualité :Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5Directives
<language>Une balise de langue (parfois appelée « identifiant de locale »).Elle se compose d'une balise de langue de base de 2 à 3 lettres qui indique une langue, éventuellement suivie de sous-balises supplémentaires séparées par
-.L'information supplémentaire la plus courante est la variante de pays ou de région (commeen-USoufr-CA) ou le type d'alphabet à utiliser (commesr-Latn).D'autres variantes, comme le type d'orthographe (de-DE-1996), ne sont généralement pas utilisées dans le contexte de cet en-tête.*(joker)Toute langue qui ne correspond à aucune autre langue présente dans le champ
Accept-Language.;q=(pondération q)Toute valeur placée selon un ordre de préférence exprimé à l'aide d'unevaleur de qualité relative appeléepoids.La valeur de qualité par défaut est
1.
Exemples
>Utilisation des en-têtesAccept-Language
La requête suivante indique une préférence pour l'allemand en utilisant la langue de basede :
Accept-Language: deUtilisation des valeurs de qualité dansAccept-Language
La requête suivante indique une préférence plus forte pour le danois, mais accepte l'anglais britannique et d'autres types d'anglais avec une priorité inférieure :
Accept-Language: da, en-gb;q=0.8, en;q=0.7Spécifications
| Specification |
|---|
| HTTP Semantics> # field.accept-language> |
Compatibilité des navigateurs
Voir aussi
- Négociation de contenu HTTP
- En-tête avec le résultat de la négociation de contenu :
Content-Language - Autres en-têtes similaires :
TE,Accept-Encoding,Accept