Was sind Inhaltssprache und Akzeptanzsprache?

82

Ich habe die HTTP-Header von gesehen Content-Languageund Accept-Languagekönnte jemand erklären, wofür diese sind und welchen Unterschied sie haben? Ich habe eine mehrsprachige Site und frage mich, ob ich beide vom Benutzer auf die aktuell ausgewählte Sprache der Site einstellen soll.

Amateur
quelle
Sie sollten sich wahrscheinlich nicht darum kümmern, Ihrer Site Content-Language hinzuzufügen, da Browser diese normalerweise nicht verwenden. Sie können jedoch das lang-Attribut in Ihrem HTML-Code verwenden.
James.garriss

Antworten:

105

Content-Language, ein Entitätsheader, wird verwendet, um die Sprache (n) zu beschreiben, die für die Zielgruppe bestimmt sind, so dass ein Benutzer nach der eigenen bevorzugten Sprache des Benutzers unterscheiden kann. Entitätsheader werden sowohl in HTTP-Anforderungen als auch in Antworten verwendet. 1

Accept-Language, ein Anforderungs-HTTP-Header, gibt an, welche Sprachen der Client verstehen kann und welche Gebietsschemavariante bevorzugt wird. 2 Es kann mehrere Sprachen geben, die jeweils ein optionales Gewicht oder einen Qualitätswert haben. Zum Beispiel:

Accept-Language: da, en-GB;q=0.8, en;q=0.7

(Das Standardgewicht ist 1, dies entspricht also da;q=1, en-GB;q=0.8, en;q=0.7).

Sie müssen die Werte und Gewichte analysieren, um festzustellen, ob eine geeignete Übersetzung verfügbar ist, und dem Benutzer die Übersetzung in der höchsten bevorzugten Sprachgewichtung bereitstellen.

Es wird empfohlen, dass Sie den Benutzern eine Alternative geben, z. B. einen Cookie-Set-Wert, um eine bestimmte Sprache für Ihre Site zu erzwingen. Dies liegt daran, dass einige Benutzer Ihre Website möglicherweise in einer bestimmten Sprache anzeigen möchten, ohne ihre Sprachakzeptanzeinstellungen zu ändern.

onteria_
quelle
13
Leichte Änderungen an Ihrer Antwort: Content-Language ist ein Inhaltsheader und gilt daher für Inhalte, ob von Server zu Client oder von Client zu Server.
James.garriss
1
RFC2616: „Das Entity-Header-Feld Content-Language beschreibt die natürliche Sprache (n) der Zielgruppe für die eingeschlossene Entität. Nur weil mehrere Sprachen in einer Entität vorhanden sind, bedeutet dies nicht, dass sie für mehrere sprachliche Zielgruppen gedacht ist. Ein Beispiel wäre eine Grundsprache für Anfänger wie "Eine erste Lektion in Latein", die eindeutig für ein englischsprachiges Publikum gedacht ist. In diesem Fall würde die Inhaltssprache ordnungsgemäß nur "en" enthalten. " R. Fielding, UC Irvine, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee; 1999.
Ucho
Das sind also nicht definitiv Sprachen auf der Seite. Siehe RFC 2616, Abschnitt 14.12 .
Ucho
20

Content-Languagebeschreibt die Sprache, für die ein bestimmter Inhalt bestimmt ist. Accept-Languageist die Liste der Sprachen, in denen ein Benutzeragent Inhalte haben möchte. Der beste Weg, dies zu verstehen, besteht darin, Content-LanguageInhalte zu beschreiben und Accept-Languageeine Präferenz zu vermitteln.

D. Shawley
quelle
5

Das Feld Content-Language-Entity-Header beschreibt die natürliche (n) Sprache (n) der Zielgruppe für die eingeschlossene Entität. Beachten Sie, dass dies möglicherweise nicht allen im Entity-Body verwendeten Sprachen entspricht.

Das Feld Accept-Language Request-Header schränkt den Satz natürlicher Sprachen ein, die als Antwort auf die Anfrage bevorzugt werden

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

Rana Prathap
quelle
0

Der Content-Language Entitätsheader wird verwendet, um die Sprache (n) zu beschreiben, die für die Zielgruppe bestimmt sind, so dass ein Benutzer nach der eigenen bevorzugten Sprache des Benutzers unterscheiden kann.

Header type                     Entity header
Forbidden header name           no
CORS-safelisted response-header yes
CORS-safelisted request-header  yes

- MDN-Webreferenz - HTTP-Header - Inhaltssprache

Der Accept-LanguageHTTP-Header für Anforderungen gibt an, welche Sprachen der Client verstehen kann und welche Gebietsschemavariante bevorzugt wird. (Mit Sprachen meinen wir natürliche Sprachen wie Englisch und keine Programmiersprachen.)

Header type                     Request header
Forbidden header name           no
CORS-safelisted request-header  yes

- MDN-Webreferenz - HTTP-Header - Accept-Language

georgeawg
quelle