Углерод с Laravellocalization не использует правильную локаль

я использую mcamara / Laravel-локализации
в моем проекте, и у меня возникла проблема с Carbon, не распознающим локаль. Когда я использую

$event->start_time->formatLocalized('%A %d %B %Y')

всегда отображается английский формат, хотя я получаю «де» при попытке

App::getLocale()

Очевидно, это связано с тем, что carbon использует локаль из операционной системы, а в моей ОС — de_DE.utf8, так что если я не сделаю

setlocale(LC_TIME, 'de_DE.utf8')

это не работает Я, очевидно, не могу использовать это таким образом, потому что я использую несколько языков.

  • Вариант 1 (плохой и легкий, но работает):

Определите следующее в файле rout.php (или где-то еще)

if(App::getLocale()=="de")
setlocale(LC_TIME, 'de_DE.utf8');
else if(App::getLocale()=="hr")
setlocale(LC_TIME, 'hr_HR.utf8');
else
setlocale(LC_TIME, 'en_EN.utf8');
  • Вариант 2 (длинное и, возможно, лучшее решение? Чувствуете себя правильным)

Так как я определил это вways.php

'prefix' => LaravelLocalization::setLocale(),

Я мог бы продлить setLocale() установить LC_TIME к de_DE или что-нибудь еще. Но для этого мне нужно было бы добавить add ‘Regional’ в config / laravellocalization.php из

'de' => ['name' => 'German','script' => 'Latn', 'native' => 'Deutsch'],

в

'de' => ['regional' => 'de_DE.utf8', 'name' => 'German','script' => 'Latn', 'native' => 'Deutsch'],

Мне также нужно создать такой метод в LaravelLocalization.php (очевидно, я бы расширил класс)

public function getCurrentLocaleRegional()
{
return $this->supportedLocales[ $this->getCurrentLocale() ][ 'regional' ];
}

Теперь я хотел бы знать, какой путь лучше? Или есть другое (более простое) решение этой проблемы?

Я работаю над Ubuntu 15.10 в случае, если это имеет значение

———РЕДАКТИРОВАТЬ———

Для тех, кто читает это, вариант 2 был реализованы и выпущен как версия 1.0.12

3

Решение

Вы всегда можете создать ключ в файлах lang, чтобы сообщить Carbon, как писать формат.

Что-то вроде:

$event->start_time->formatLocalized(trans('general.date_format'))

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]