Sau nhiều lần sửa lỗi, tôi đã giải quyết vấn đề này bằng cách so sánh hành vi của Drupal với bản cài đặt hoàn toàn mới. Tất nhiên "cập nhật ngôn ngữ drush" được cho là nhận bản dịch cho các mô-đun đóng góp!
Điều đã xảy ra ở đây là dòng này trong composer.json:
"cấu hình": {
"loại bỏ thay đổi": đúng,
"cài đặt ưa thích": "nguồn",
"gói sắp xếp": đúng
},
Dòng vi phạm là "cài đặt ưa thích": "nguồn". Điều này đã được cam kết cách đây một thời gian, không ai biết tại sao và nó khiến nhà soạn nhạc kiểm tra mã từ git thay vì tải xuống tệp zip từ Drupal.
Điều này không tạo ra nhiều khác biệt, ngoại trừ việc Drupal thường thêm thông tin vào tệp info.yml của các mô-đun:
# Thông tin được thêm bởi tập lệnh đóng gói Drupal.org vào ngày 2021-04-02
phiên bản: '8.x-1.2'
dự án: 'foobar'
dấu thời gian: 1617351415
Với kiểm tra git, cái này bị thiếu! Và khi Drupal sau đó kiểm tra các bản dịch, nó sẽ duyệt qua tất cả các mô-đun và cố lấy tên dự án. Rõ ràng, trong Drupal, các dự án được dịch chứ không phải các mô-đun riêng lẻ. Một số mô-đun chứa nhiều mô-đun phụ, tất cả đều có chung tên dự án và do đó có cùng cơ sở dịch thuật. Vì tất cả các mô-đun đóng góp của tôi đến từ git chứ không phải từ tệp zip nâng cao, điều này có nghĩa là Drupal đã bỏ qua tất cả chúng trên "cập nhật ngôn ngữ drush"! Không có thông tin nào về điều này được xuất ra, chúng chỉ đơn giản là bị bỏ qua một cách lặng lẽ.
Giải pháp cho tôi là thay đổi dòng vi phạm thành:
"cài đặt ưa thích": {
"drupal/*": "dist",
"*": "nguồn"
},
Cũng lưu ý rằng bạn cần xóa các mô-đun khỏi web/mô-đun/contrib và cài đặt lại chúng qua trình soạn thảo. Chỉ thay đổi ở trên và chạy "cài đặt nhà soạn nhạc" là không đủ!