October CMS resources and help articles

Simple and to the point. Optimized by the community.

Register a specific twig filter for russian locale specific date (выводим даты со склонением месяца в twig)

3
by Zotenme, last modified on August 12th, 2019

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

Discussion

0 comments

We use cookies to measure the performance of this website. Do you want to accept these cookies?