私はのHTTPヘッダを見ているContent-Language
とAccept-Language
、誰かがこれらのために何であるかを説明し、それらの間の違いだろうか?多言語サイトを持っていますが、ユーザーが両方のサイトを現在選択している言語に設定する必要があるのではないかと考えています。
回答:
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セット値などの代替手段をユーザーに提供することをお勧めします。これは、一部のユーザーが、言語の受け入れ設定を変更せずに、特定の言語でサイトを表示したい場合があるためです。
コンテンツ-言語は、提供しているページの言語です。 Accept-Languageは、受け入れることを好む言語のリストです。
Content-Languageエンティティヘッダーフィールドは、囲まれたエンティティの対象読者の自然言語を記述します。これは、エンティティ本体内で使用されるすべての言語と同等ではない場合があることに注意してください。
Accept-Language request-headerフィールドは、リクエストへの応答として優先される自然言語のセットを制限します
Content-Language
エンティティヘッダは、ユーザがユーザ自身の言語に応じて区別することを可能にするように、視聴者のために意図される言語(複数可)を記述するために使用されます。Header type Entity header Forbidden header name no CORS-safelisted response-header yes CORS-safelisted request-header yes
Accept-Language
クライアントが理解できる言語要求HTTPヘッダアドバタイズし、そのロケール変異体が好ましいです。(言語とは、プログラミング言語ではなく、英語などの自然言語を意味します。)Header type Request header Forbidden header name no CORS-safelisted request-header yes