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 :-)
$ ./configure --add-module=path/to/nginx_accept_language_module
多言語webサイトでmerbを使ってページキャッシングを使っているが、キャッシュから正しい言語を提供する必要がある。
Guillaume Maury (dev@gom-jabbar.org)にバグを送ってください。
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';
}