web-dev-qa-db-fra.com

Que sont le langage de contenu et le langage d'acceptation?

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.

48
amateur

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.

76
onteria_

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.

14
D.Shawley

Content-Language est la langue de la page que vous servez . Accept-Language est une liste des langues que vous PRÉFÈREZ accepter.

11
Chrono Kitsune

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.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

5
Rana Prathap

L'entête Content-Languageentity 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

- Référence Web MDN - En-têtes HTTP - Langage de contenu

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

- Référence Web MDN - En-têtes HTTP - Accept-Language

0
georgeawg