デフォルトのロケールをブラウザから取得したい
CakePHP3 のロケールは、デフォルトでen_US
にセットされています。
しかし、ブラウザから指定された言語のリストからセットするのが望ましいと考えます。
その取得方法をメモしておきます。
src/config/app.php
'App' => [ : 'defaultLocale' => locale_accept_from_http(env('HTTP_ACCEPT_LANGUAGE', env('APP_DEFAULT_LOCALE', 'en_US'))), : ],
環境変数HTTP_ACCEPT_LANGUAGE
が、設定されていないことはまず考えられませんが、念のためにenv('APP_DEFAULT_LOCALE', 'en_US')
を指定しています。
参考サイト
CakePHP3:メッセージを日本語化する
Locale::acceptFromHttp - 最もあてはまるロケールを HTTP "Accept-Language" ヘッダにもとづいて探す