Content-Language
とAccept-Language
のHTTPヘッダーを見ましたが、誰かがこれらの目的とそれらの違いを説明できますか?多言語サイトがあり、ユーザーが現在選択している言語を両方のサイトに設定する必要があるかどうか疑問に思います。
エンティティヘッダーである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セットの値などの代替をユーザーに提供することをお勧めします。これは、一部のユーザーは、言語の受け入れ設定を変更せずに、特定の言語でサイトを表示したい場合があるためです。
Content-Language
は、特定のコンテンツが対象とする言語を説明します。 Accept-Language
は、ユーザーエージェントがコンテンツを必要としている言語のリストです。これを考える最良の方法は、Content-Language
はコンテンツを説明し、Accept-Language
は好みを伝えます。
Content-Language は、提供しているページの言語です。 Accept-Language は、受け入れることが好ましい言語のリストです。
Content-Language entity-headerフィールドは、同封されたエンティティの対象オーディエンスの自然言語を示します。これは、エンティティ本体内で使用されるすべての言語と同等ではないことに注意してください。
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
request HTTPヘッダーは、クライアントが理解できる言語、および優先されるロケールバリアントを通知します。 (言語とは、プログラミング言語ではなく、英語などの自然言語を意味します。)Header type Request header Forbidden header name no CORS-safelisted request-header yes