web-dev-qa-db-ja.com

Laravel 5炭素グローバルロケール

私はlaravelの同じグローバルロケールを設定しようとしています:

config('app.locale')

carbonで作業します。

あなたはどちらかを使用してそれを行うことができるようです:

Carbon::setLocale('fr')

または

setlocale(LC_TIME, 'theLocale');

したがって、ミドルウェアまたはプロバイダーを使用してみましたが、成功しませんでした。

(なぜこれがlaravelのデフォルト機能ではないのですか?)

11
Mathieu Urstein

これは私の悪いことです、Carbonは実際にphpを使用しています

setlocale();

Carbon::setLocale('fr')

メソッドは、

->diffForHumans()

方法。 php setlocale()がOSに保存されているロケールを参照し、インストールされている1つの用途の1つを選択することに注意してください。

locale -a

コンソールで

第二に、あなたは使用する必要があります

->formatLocalized()

代わりにメソッド

->format()

方法

そして最後に、すべての便利なメソッド

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

ローカライズされていません

最後に、これらの解析文字を使用する必要があります

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

18
Mathieu Urstein

AppServiceProviderで構成しました。

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

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

appServiceProvider

public function register()
{

    // For example im gonna locale all dates to Indonesian (ID)
    config(['app.locale' => 'id']);
    \Carbon\Carbon::setLocale('id');
}

次に、ロケール出力に次のようなことをさせる

// Without locale, the output gonna be like this    
Carbon\Carbon::parse('2019-03-01')->format('d F Y'); //Output: "01 March 2019"

// With locale
Carbon\Carbon::parse('2019-03-01')->translatedFormat('d F Y'); //Output: "01 Maret 2019"

ローカライズ日付の変換の詳細については、以下のリンク https://carbon.nesbot.com/docs/#api-localization を参照してください。