В Views добавив поле Content: Время создания, формат "в прошлом" (time ago) получаю такой вывод например: "5[2] дней 4 часа 28[2] минут 7[2] секунд ago".
Так вот интересно что за значения в квадратных скобках и как их убрать? Также при русской локализации добавляется "ago". Как можно привести вывод даты в порядок : "5 дней 4 часа 28 минут 7 секунд назад"?
Вложение | Размер |
---|---|
![]() | 81.93 КБ |
Комментарии
Для чего нужны значение в квадратных скобках на фронте я так и не понял, но данную проблему формата решил. Значение "[2]" задается локализацией, т.е. переводом admin/config/regional/translate. Поэтому смело ищем там значения перевода с "[2]" и удаляем.
В вот с переводом "ago" сложней. В локализации видимо эта переменная не поддерживается. Поэтому я решил ее кардинально: в ядре Друпала есть файл TimestampAgoFormatter.php (core\lib\Drupal\Core\Field\Plugin\Field\FieldFormatter) который можно чуть "изменить". Находим
<?phppublic static function defaultSettings()?>
в которой есть массив с ключом<?php'past_format' => '@interval ago',?>
и меняем его на<?php'past_format' => '@interval назад',?>
В результате получаем адекватный для русских вывод на фронт типа "5 дней 4 часа 28 минут 7 секунд назад".
С Друпал знаком мало но понимаю что данный выход не корректен. Поэтому было бы здорово, если бы кто то описал решение в рамках друпал а не "фикса" файлов ядра.
Как вариант можно воспользоваться фильтром twig - replace и переопределить поле дата во вьюхе:
{{ created|replace({'ago': "назад"}) }}