După multă depanare, am rezolvat această problemă comparând comportamentul lui Drupal cu o instalare complet nouă. Desigur, „drush locale-update” ar trebui să obțină traduceri pentru modulele contrib!
Ce s-a întâmplat aici a fost această linie în composer.json:
"config": {
„eliminare modificări”: adevărat,
"preferred-install": "sursa",
„sortare-pachete”: adevărat
},
Linia ofensiva este "preferred-install": "sursa". Acest lucru a fost comis cu ceva timp în urmă, nimeni nu știe de ce și îl face pe compozitor să verifice codul din git în loc să descarce fișierul zip din Drupal.
Acest lucru nu face o mare diferență, cu excepția faptului că Drupal adaugă în mod normal informații în fișierul info.yml al modulelor:
# Informații adăugate de scriptul de ambalare Drupal.org pe 2021-04-02
versiunea: „8.x-1.2”
proiect: „foobar”
marcaj data: 1617351415
Cu un git checkout, aceasta lipsește! Și când Drupal verifică mai târziu pentru traduceri, parcurge toate modulele și încearcă să obțină numele proiectului. Aparent, în Drupal proiectele sunt traduse, nu modulele individuale. Unele module conțin o mulțime de sub-module, care au același nume de proiect și, prin urmare, aceeași bază de traducere. Deoarece toate modulele mele de contribuție au venit din git mai degrabă decât din fișierul zip îmbunătățit, asta însemna că Drupal le-a sărit peste toate la „drush locale-update”! Nu a fost scoasă nicio informație despre aceasta, pur și simplu au fost omise în liniște.
Soluția pentru mine a fost să schimb linia ofensătoare la aceasta:
„preferred-install”: {
"drupal/*": "dist",
"*": "sursă"
},
De asemenea, rețineți că trebuie să ștergeți modulele de pe web/modules/contrib și să le reinstalați prin compozitor. Doar schimbarea celor de mai sus și rularea „compositor install” nu este suficientă!