Accept Language モジュール

説明

nginx_accept_language_module - HTTPヘッダ内のAccept-Languageフィールドをパースし、webサイトでサポートしているlocalのリストから最もユーザに適したlocaleをせんたくします。

github の giom/nginx_accept_language_moduleで利用可能です

注意

このモジュールはNGIXのソースと一緒に配布されません。 インストレーションの説明を見てください。

設定例

set_from_accept_language $lang en ja pl;

$lang はlocaleを格納する変数で、en ja pl はwebサイトがサポートするlocaleです。

accept_languageのどのlocaleもwebサイトで利用可能ではない場合は、変数(ここでは $lang) はリスト内の最初のlocale(ここでは en)が設定されます。

注意

accept-languageはquality value によってソートされていると思われます(Safari, Firefox, Opera および IE でのテストから)、そして q は無視されます。(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlを見てください)。モジュールを使っている場合、この仮定は動作します... but buyer beware :-)

インストール

  1. モジュールのソースを GitHubからダウンロードします。
  2. 解凍し、そしてNGINXを以下のようにコンパイルします:
$ ./configure --add-module=path/to/nginx_accept_language_module

どうしてそれを生成したのか?

多言語webサイトでmerbを使ってページキャッシングを使っているが、キャッシュから正しい言語を提供する必要がある。

バグ

Guillaume Maury (dev@gom-jabbar.org)にバグを送ってください。

Credits

NGINXモジュールを書くためのガイドについてEvan Millerに感謝します。

代替

このモジュールをシステムに追加できない場合に、この設定によって $language_suffix を管理することができます。

# accept-language: en,en-US;q=0.8,ja;q=0.6
set $first_language $http_accept_language;
if ($http_accept_language ~* '^(.+?),') {
    set $first_language $1;
}

set $language_suffix 'en';
if ($first_language ~* 'ja') {
    set $language_suffix 'ja';
}
TOP
inserted by FC2 system