HTTPQUERY
Français

Accept-Language

Utilisation

L’en-tête Accept-Language fait partie de la négociation de contenu. Le client envoie une liste ordonnée d’étiquettes de langue, et le serveur choisit la meilleure traduction disponible pour la ressource demandée.

Les navigateurs renseignent cet en-tête à partir des paramètres de langue du système d’exploitation. La valeur suit la syntaxe des étiquettes de langue BCP 47, qui prend en charge les codes de langue principaux (en, de, fr) et les sous-étiquettes régionales (en-US, pt-BR, zh-CN). Les valeurs de qualité classent les préférences lorsque plusieurs langues sont listées.

Le serveur indique la langue du contenu renvoyé au moyen de l’en-tête de réponse Content-Language. Lorsqu’aucune traduction correspondante n’existe, la plupart des serveurs renvoient la langue par défaut plutôt que de répondre 406 Not Acceptable, car servir le contenu dans une langue de repli est généralement plus utile que de renvoyer une erreur.

language-tag

Une étiquette de langue BCP 47. Une sous-étiquette principale comme en correspond à n’importe quelle variante régionale. Une étiquette comportant une sous-étiquette de région comme en-GB vise une locale précise.

*

Un caractère générique correspondant à toute langue non déjà listée.

;q= (valeur de qualité)

Un poids compris entre 0 et 1 exprimant une préférence relative. La valeur par défaut est 1.0. Une valeur de 0 marque une langue comme non acceptable.

Exemple

Un client préférant l’anglais britannique, avec l’anglais générique en repli et l’allemand à priorité réduite. Le serveur répond avec du contenu en anglais générique.

Requête

GET / HTTP/1.1
Host: example.com
Accept-Language: en-GB, en;q=0.9, de;q=0.5

Réponse

HTTP/1.1 200 OK
Content-Language: en

Une requête émise par un navigateur configuré en français, avec un repli vers n’importe quelle langue.

Accept-Language: fr-FR, fr;q=0.9, *;q=0.5

Une liste de préférences multilingue plaçant l’espagnol en premier, le portugais en deuxième et l’anglais en troisième.

Accept-Language: es, pt;q=0.8, en;q=0.6