Content-LanguageおよびAccept-Languageとは何ですか?


82

私はのHTTPヘッダを見ているContent-LanguageAccept-Language、誰かがこれらのために何であるかを説明し、それらの間の違いだろうか?多言語サイトを持っていますが、ユーザーが両方のサイトを現在選択している言語に設定する必要があるのではないかと考えています。


ブラウザは通常コンテンツ言語を使用しないため、サイトにContent-Languageを追加することを気にしないでください。ただし、HTMLでlang属性を使用することはできます。
james.garriss 2012年

回答:


103

Content-Languageエンティティヘッダーは、オーディエンス向けの言語を説明するために使用されるため、ユーザーはユーザー自身の好みの言語に従って区別することができます。エンティティヘッダーは、HTTP要求と応答の両方で使用されます。1

Accept-Language、リクエストHTTPヘッダーは、クライアントが理解できる言語と、優先されるロケールバリアントをアドバタイズします。2複数の言語が存在する可能性があり、それぞれにオプションの重みまたは「品質」値があります。例えば:

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

(デフォルトの重みは1なので、これはと同等ですda;q=1, en-GB;q=0.8, en;q=0.7)。

値と重みを解析して、適切な翻訳が利用可能かどうかを確認し、ユーザーに最も好ましい言語の重みで翻訳を提供する必要があります。

サイトに特定の言語を強制するために、Cookieセット値などの代替手段をユーザーに提供することをお勧めします。これは、一部のユーザーが、言語の受け入れ設定を変更せずに、特定の言語でサイトを表示したい場合があるためです。


13
答えを少し調整します。Content-Languageはコンテンツヘッダーであるため、サーバーからクライアントへ、またはクライアントからサーバーへのコンテンツに適用されます。
james.garriss 2012年

1
RFC2616:「Content-Languageentity-headerフィールドは、囲まれたエンティティの対象読者の自然言語を記述します。ただし、エンティティ内に複数の言語が存在するからといって、それが複数の言語の対象者を対象としているわけではありません。例としては、「ラテン語の最初のレッスン」などの初心者向けの言語入門書があります。これは、明らかに英語を話す聴衆が使用することを目的としています。この場合、Content-Languageには適切に「en」のみが含まれます。R.フィールディング、UCアーバイン、J。ゲティス、J。モーグル、H。フリスティク、L。マシンター、P。リーチ、T。バーナーズリー; 1999.
Ucho 2017

したがって、それは間違いなくページ上の言語ではありません。RFC2616セクション14.12を参照してください。
ucho 2017

20

Content-Language特定のコンテンツが対象としている言語を説明します。 Accept-Languageは、ユーザーエージェントがコンテンツを必要とする言語のリストです。これを考える最良の方法は、Content-Languageコンテンツを説明しAccept-Language、好みを伝えることです。



5

Content-Languageエンティティヘッダーフィールドは、囲まれたエンティティの対象読者の自然言語を記述します。これは、エンティティ本体内で使用されるすべての言語と同等ではない場合があることに注意してください。

Accept-Language request-headerフィールドは、リクエストへの応答として優先される自然言語のセットを制限します

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


0

Content-Language エンティティヘッダは、ユーザがユーザ自身の言語に応じて区別することを可能にするように、視聴者のために意図される言語(複数可)を記述するために使用されます。

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

— MDNWebリファレンス-HTTPヘッダー-コンテンツ言語

Accept-Languageクライアントが理解できる言語要求HTTPヘッダアドバタイズし、そのロケール変異体が好ましいです。(言語とは、プログラミング言語ではなく、英語などの自然言語を意味します。)

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

— MDNWebリファレンス-HTTPヘッダー-Accept-Language

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.