Перевод месяцев formatted datetime в Drupal

Недавно изучал вопрос: как правильно переводить месяцы (в коротком и длинном варианте) в полях типа datetime в Drupal. Короткий ответ — через UI translation.

В настройках сайта вы можете задать множество используемых форматов для даты-времени, делается это вот тут:
/admin/config/regional/date-time

Далее, в шаблоне вы для соответствующего view mode можете выбрать нужный формат, в котором поле будет рендериться.

На определенном этапе возникает задача перевода форматированной даты. При этом Drupal создаёт заранее т.н. шаблоны перевода для наименований месяцев с пометками контекста ‘Long month name’ и ‘Abbreviated month name’.

Делается это в lib/Drupal/Core/Datetime/DateHelper.php.

Вы увидите на странице перевода интерфейса соответствующие значения:

Фактически, вам остаётся лишь выполнить перевод через UI translation (/admin/config/regional/translate), чтобы это начало работать. Drupal будет переводить наименования месяцев при рендере форматированных полей дата-время.

Для более сложных случаев вы можете заставить twig использовать нужный вам контекст вручную, например:

Здесь я генерирую аббревиатуру месяца и использую фильтр t с указанием контекста.

Написать комментарий

Мало букафф? Читайте есчо !

Миграция картинки по URL в Media поле (Drupal)

Март 3, 2024 г.

Мне нужен был обработчик для migration API, который создаёт media entity по URL и возвращает его ID. Обработчики представляют из себя расширения ProcessPluginBase, которые нужно размещать в папке /src/Plugin/migrate/process вашего модуля. Файл ...

Читать

Конфигурация для миграции статей (node:blog) из CSV файла

Март 2, 2024 г.

Это пример миграции данных из CSV файла в Drupal. Данная миграция является основной в том смысле, что она ссылается на дочернюю миграцию, в ходе которой будут созданы параграфы (entity_reference_revisions:paragraph) с HTML контентом. А далее мы ...

Читать

 

Комментарии к «Перевод месяцев formatted datetime в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: