J'ai vu les en-têtes HTTP de Content-Language
et Accept-Language
, quelqu'un pourrait-il expliquer leur utilité et la différence entre eux? J'ai un site multilingue et je me demande si je devrais définir les deux langues de site actuellement sélectionnées par l'utilisateur.
Content-Language
, un en-tête d'entité, est utilisé pour décrire la ou les langues destinées au public cible, de manière à permettre à l'utilisateur de se différencier en fonction de la langue de son choix. Les en-têtes d'entité sont utilisés dans les requêtes et les réponses HTTP.1
Accept-Language
, un en-tête HTTP de requête, indique quelles langues le client est capable de comprendre et quelle variante de langue est préférée.2 Il peut y avoir plusieurs langues, chacune avec un poids optionnel ou une valeur 'qualité'. Par exemple:
Accept-Language: da, en-gb;q=0.8, en;q=0.7
(Le poids par défaut est 1, cela équivaut donc à da;q=1, en-gb;q=0.8, en;q=0.7
).
Vous devrez analyser les valeurs et les poids pour voir si une traduction appropriée est disponible et fournir à l'utilisateur la traduction dans le poids de langue préféré le plus élevé.
Il est recommandé de donner aux utilisateurs une alternative, telle qu'une valeur de cookie, pour forcer une certaine langue pour votre site. En effet, certains utilisateurs voudront peut-être voir votre site dans une langue donnée sans modifier leurs préférences d'acceptation de la langue.
Content-Language
décrit la langue à laquelle est destiné un contenu particulier. Accept-Language
est la liste des langues dans lesquelles un utilisateur veut du contenu. La meilleure façon de procéder est que Content-Language
décrit le contenu et que Accept-Language
exprime une préférence.
Content-Language est la langue de la page que vous servez . Accept-Language est une liste des langues que vous PRÉFÈREZ accepter.
Le champ d'en-tête d'entité Content-Language décrit le ou les langages naturels du public visé pour l'entité incluse. Notez que cela peut ne pas être équivalent à toutes les langues utilisées dans le corps d'entité.
Le champ d'en-tête de demande Accept-Language restreint l'ensemble des langages naturels préférés pour répondre à la demande.
L'entête
Content-Language
entity est utilisé pour décrire la ou les langues destinées au public cible, de manière à permettre à l'utilisateur de se différencier en fonction de la langue de son choix.Header type Entity header Forbidden header name no CORS-safelisted response-header yes CORS-safelisted request-header yes
L'en-tête HTTP de la requête
Accept-Language
indique les langues que le client est capable de comprendre et les variantes de paramètres régionaux à privilégier. (Par langues, nous entendons les langues naturelles, telles que l'anglais, et non les langages de programmation.)Header type Request header Forbidden header name no CORS-safelisted request-header yes