2015-09-13 10 views
7

私はあるlaravelの同じグローバルロケール設定しようとしている:Laravel 5カーボングローバルロケール

config('app.locale') 

カーボンで動作するようにします。

は、あなたが使用してそれを行うことができますように思えるのいずれか:

Carbon::setLocale('fr') 

または

setlocale(LC_TIME, 'theLocale'); 

だから私は、ミドルウェアやプロバイダを使用してみましたが、成功しませんでしたしています。

(なぜこれがlaravelのデフォルトの機能ではありません?)

+0

問題は何ですか?何かエラーがあったのですか、それともうまくいかないのですか? デバッグのために何をしましたか? getLocale、configなどの出力をダンプしますか? – Gummibeer

答えて

6

だからこれは私の悪い、カーボンが実際にPHPに

setlocale(); 

を使用している

Carbon::setLocale('fr') 

方法のみです

の場合
->diffForHumans() 

方法。お使いのOS に保存されているロケールへのPHPのsetlocale()参照は、あなたが

->formatLocalized() 
を使用する必要があり、

第二に、あなたのコンソールにインストール1つの使用

locale -a 

のいずれかを選択すること お知らせ

の代わりに

->format() 

方法

最後に

->toDateString() 
->toFormattedDateString() 
->toTimeString() 
->toDateTimeString() 
->toDayDateTimeString() 

のようにすべての便利な方法は、あなたがこれらの解析手紙

http://php.net/manual/en/function.strftime.php

6

を使用する必要が

、最後にローカライズされていない私は、それを構成しAppServiceProvider。

class AppServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     // Localization Carbon 

     \Carbon\Carbon::setLocale(config('app.locale')); 
    } 
}