Twig: покажите название месяца в зависимости от текущего языка

Я просто пытаюсь показать название месяца на основе текущей локали.

{{ event.date|date('F') }}

но месяцы всегда показываются на английском...

Я пробовал этот код ниже, я нашел здесь, но результат тот же...

class Helper_Twig extends Twig_Extension
{
    public function getFilters()
    {
        return array(
            'datetime' => new Twig_Filter_Method($this, 'datetime')
        );
    }

    public function datetime($d, $format = "%B %e")
    {
        if ($d instanceof \DateTime) {
            $d = $d->getTimestamp();
        }

        return strftime($format, $d);
    }

    public function getName()
    {
        return 'Helper';
    }
}

ПРИМЕЧАНИЕ. В контроллере я проверяю текущий язык с помощью $request->getLocale и он соответствует параметру locale, который я переключаю в parameters.yml.

В чем проблема?

Ответ 1

Вы можете использовать SonataIntlBundle для обработки локализованного представления даты. Intl библиотека должна быть установлена.

Ответ 2

Так как вы определили datetime TwigFilter, вы не должны называть {{ event.date|date('F') }}

Вместо этого вы должны называть это {{ event.date|datetime('%B') }}