HTTPQUERY
日本語

Accept-Language

使い方

Accept-Language ヘッダーはコンテンツネゴシエーションの一部です。クライアントが言語タグを優先順位付きで列挙し、サーバーは要求されたリソースについて利用可能な最適な翻訳を選択します。

ブラウザはオペレーティングシステムの言語設定からこのヘッダーの値を組み立てます。値は BCP 47 の言語タグ構文に従い、主要言語コード(en、de、fr)と地域サブタグ(en-US、pt-BR、zh-CN)をサポートします。複数の言語を列挙する場合は、品質値によって優先度が順位付けされます。

サーバーは返したコンテンツの言語を Content-Language レスポンスヘッダーで伝えます。一致する翻訳が存在しない場合、ほとんどのサーバーは 406 Not Acceptable で応答するのではなく既定の言語を返します。エラーを返すよりフォールバック言語でコンテンツを配信するほうが、通常は有用だからです。

language-tag

BCP 47 の言語タグです。en のような主要サブタグは任意の地域バリアントに一致します。en-GB のように地域サブタグを伴うタグは特定のロケールを対象とします。

*

まだ列挙されていない任意の言語に一致するワイルドカードです。

;q=(品質値)

相対的な優先度を表す 0 から 1 の間の重みです。既定値は 1.0 です。値 0 はその言語が受け入れ不可であることを示します。

例

イギリス英語を優先し、汎用の英語をフォールバックとし、ドイツ語をより低い優先度とするクライアントです。サーバーは汎用の英語でコンテンツを返します。

リクエスト

GET / HTTP/1.1
Host: example.com
Accept-Language: en-GB, en;q=0.9, de;q=0.5

レスポンス

HTTP/1.1 200 OK
Content-Language: en

フランス語向けに設定されたブラウザからの、任意の言語をフォールバックとするリクエストです。

Accept-Language: fr-FR, fr;q=0.9, *;q=0.5

スペイン語を 1 番目、ポルトガル語を 2 番目、英語を 3 番目とする多言語の優先度リストです。

Accept-Language: es, pt;q=0.8, en;q=0.6