Laravel5でCarbon locale=>jaに設定
事の始まりは上長より
「setlocale(LC_ALL, ‘ja_JP.UTF-8’);がいろんな箇所にあるね、消しても動くはず!!」
からはじまりました。
「setlocale(LC_ALL, ‘ja_JP.UTF-8’)」を全て削除していざ動かしてみると、carbonの曜日指定が英語表記になってしまいました。
あれ、おかしい( *´艸`)日本設定にならない。
これを機会にlocale設定を勉強しました。
laravel ロケールの設定
多言語設定はconfig/app.php設定ファイルで指定できます。
/*
|--------------------------------------------------------------------------
| アプリケーションローカル設定
|--------------------------------------------------------------------------
|
| アプリケーションローカルは翻訳サービスプロバイダにより使用される
| デフォルトローカルを指定します。アプリケーションで提供するローカルを
| 自由に設定してください。
|
*/
'locale' => 'ja',
既に設定済です。
centos7のロケール確認
サーバー設定が怪しいと思い、確認してみました。
$ localectl
System Locale: LANG=ja_JP.utf8
VC Keymap: jp106
X11 Layout: jp
LANG=ja ですね。
php.iniのロケール確認
な、な、なんとー( ;∀;)
php.ini の ‘intl.default_locale’がここが未設定だったので英語表記になってしまっていました。
デフォルトのロケールの値を取得します。PHP の国際化においては、 この値は php.ini の ‘intl.default_locale’ の値となります。 この値が存在しない場合は ICU の関数 uloc_getDefault() で取得します。
ここを設定することで「setlocale(LC_ALL, ‘ja_JP.UTF-8’)」が無くても日本語表記できました。
ちなみにAppServiceProvider.phpに設定を記述することで共通化できます。
/**
* アプリケーションサービスの登録
*
* @return void
*/
public function register()
{
//setlocale(LC_ALL, 'ja_JP.UTF-8');
//Carbon::setLocale(config('app.locale'))
}
またひとつお勉強になりました。