LoginSignup
6
4

More than 3 years have passed since last update.

Accept-Language HTTPヘッダー

Posted at

Accept-Language

Railsのことを調べていてAccept-Languageという用語を見かけて、聞きなれない用語だったため調べてまとめることにしました。これはRailsの国際化、言語設定を行う際に使われるもののようです。言語の切り替えを行う方法にはいくつか方法がありますが、今回はその切り替えを行う方法の1つです。HTTPヘッダーのAccept-Languageから言語を選択して、言語を設定します。

HTTPヘッダーとは

WebブラウザからWebサーバーへ送信するHTTPリクエストに含まれる情報のことです。その中でブラウザがどの言語を理解できるか、またはどの種類のロケールかを表している部分がAccept-Languageリクエストヘッダーになります。以下がHTTPヘッダーの例になります。

GET / HTTP/1.1
Accept: image/gif, image/jpeg, */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.1;)
Host: www.xxx.zzz
Connection: Keep-Alive

HTTPのAccept-Languageリクエストヘッダーは、クライアントがどの言語を理解できるか、どの種類のロケールが推奨されるかを示します。コンテンツネゴシエーションを使用して、サーバーは提案されたものから一つを選択して使用し、Content-Languageレスポンスヘッダーを使用してクライアントに選択結果を知らせます。ブラウザはユーザーインターフェイスの言語に従って、このヘッダーに適切な値を設定し、ユーザーはこれを変更することができます。

このヘッダーはヒントであり、サーバーが言語を判別するための方法として、明示的なユーザーの選択によって制御する特定の URL など、他のものがない場合に使用されます。サーバーは明示的な決定を上書きしないことを推奨します。 Accept-Languageの中身はユーザーが制御できないことがよくあります(旅行中で外国のインターネットカフェを使用している場合など)。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4