Laravel 5 Carbon global Locale
Я пытаюсь установить одну и ту же глобальную локаль laravel, которая:
config('app.locale')
для работы с Carbon.
Кажется, вы можете сделать это, используя либо:
Carbon::setLocale('fr')
или
setlocale(LC_TIME, 'theLocale');
Итак, я попытался использовать промежуточное программное обеспечение или поставщиков, но не был успешным.
(почему это не стандартная функция laravel?)
Ответы
Ответ 1
Итак, это мое плохое, Carbon на самом деле использует 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
Ответ 2
Я настроил его в AppServiceProvider.
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
// Localization Carbon
\Carbon\Carbon::setLocale(config('app.locale'));
}
}
Ответ 3
в 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