Accept cookies for analytics, social media, and advertising, or learn more and adjust your preferences. These cookies are on by default for visitors outside the UK and EEA. Privacy Notice.
nginx_accept_language_module - HTTPヘッダ内のAccept-Language
フィールドをパースし、webサイトでサポートしているlocalのリストから最もユーザに適したlocaleを選択します。
github の giom/nginx_accept_language_moduleで利用可能です
注意
このモジュールはNGINXのソースと一緒に配布されません。 インストレーションの説明を見てください。
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';
}