Register a specific twig filter for russian locale specific date (выводим даты со склонением месяца в twig)
4
Use the registerMarkupTags
Method in the Plugin.php to register a twig filter for a russian locale specific date.
use Lang;
use Carbon\Carbon;
public function registerMarkupTags()
{
return [
'filters' => [
'rudate' => function($time, $format) {
if(! $time instanceof Carbon) {
$time = Carbon::parse($time);
}
if(Lang::getLocale() == 'ru') {
$monthsPlural = array('Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря');
$format = str_replace('%BP', $monthsPlural[$time->month-1], $format);
$months = array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
$format = str_replace('%B', $months[$time->month-1], $format);
} else {
$format = str_replace('%BP', '%B', $format); // remove extra "P"
}
return $time->formatLocalized($format);
}
]
];
}
Now simply use the new filter in your twig files:
{{ '2019-01-16'|rudate('%e %BP, %Y') }} // 16 Января, 2019
There are no comments yet
Be the first one to comment