Перевод месяцев 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 вашего модуля. Файл ...

Читать

Создание параграфов из CSV файла

Февраль 27, 2024 г.

Параграфы, оторванные от родительской entity нам не нужны, потому эта миграция является дочерней к рассматриваемому примеру миграции статей блога из CSV. Из всего набора полей источника нам требуется только два поля - это id и body. migrate_plus.migration.custom_text_to_paragraph.yml ...

Читать

 

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

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



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