Laravel 5 Carbon global Locale

Я пытаюсь установить тот же глобальный язык laravel, который:

config('app.locale')

для работы с углеродом.

похоже, вы можете сделать это, используя либо:

Carbon::setLocale('fr')

или

setlocale(LC_TIME, 'theLocale');

поэтому я попытался использовать промежуточное ПО или поставщиков, но не был успешным.

(почему это не является функцией по умолчанию laravel?)

2 ответов


Я настроил его в AppServiceProvider.

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

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

так что это мой плохой, углерод на самом деле использует php

setlocale();

на

Carbon::setLocale('fr')

метод предназначен только для

->diffForHumans()

метод. Обратите внимание, что ссылка php setlocale() на локаль, хранящуюся в вашей ОС чтобы выбрать один из установленных, используйте

locale -a

консоль

во-вторых, вы должны использовать

->formatLocalized()

вместо

->format()

метод

и, наконец, все полезные методы, такие как

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

не локализуются

и, наконец, вы должны использовать эти буквы разбора

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