После долгой отладки я решил эту проблему, сравнив поведение Drupal с совершенно новой установкой. Конечно, "drush locale-update" должен получать переводы для модулей contrib!
Здесь произошла эта строка в composer.json:
"конфигурация": {
«отменить изменения»: правда,
"предпочтительная установка": "источник",
"сортировать-пакеты": правда
},
Оскорбительная линия «предпочтительная установка»: «источник». Это было совершено некоторое время назад, никто не знает, почему, и композитор получает код из git вместо загрузки zip-файла из Drupal.
Это не имеет большого значения, за исключением того, что Drupal обычно добавляет информацию в файл info.yml модулей:
# Информация добавлена скриптом упаковки Drupal.org 2021-04-02
версия: '8.x-1.2'
проект: 'фубар'
дата: 1617351415
С git checkout это отсутствует! И когда Drupal позже проверяет переводы, он проходит через все модули и пытается получить имя проекта. Судя по всему, в Drupal переводятся проекты, а не отдельные модули. Некоторые модули содержат множество подмодулей, которые используют одно и то же имя проекта и, следовательно, одну и ту же базу перевода. Поскольку все мои contrib-модули были получены из git, а не из расширенного zip-файла, это означало, что Drupal пропустил их все при «drush locale-update»! Никакой информации об этом не выводилось, их просто незаметно пропускали.
Решение для меня состояло в том, чтобы изменить оскорбительную строку на это:
"предпочтительная установка": {
"друпал/*": "расстояние",
"*": "источник"
},
Также обратите внимание, что вам необходимо удалить модули из web/modules/contrib и переустановить их через composer. Просто изменить вышеперечисленное и запустить «установку композитора» недостаточно!