หลังจากการดีบั๊กหลายครั้ง ฉันได้แก้ไขปัญหานี้โดยการเปรียบเทียบพฤติกรรมของ Drupal กับการติดตั้งใหม่ทั้งหมด แน่นอน "drush locale-update" ควรจะได้รับการแปลสำหรับโมดูล contrib!
สิ่งที่เกิดขึ้นที่นี่คือบรรทัดนี้ใน Composer.json:
"กำหนดค่า": {
"ทิ้งการเปลี่ยนแปลง": จริง
"การติดตั้งที่ต้องการ": "แหล่งที่มา",
"จัดเรียงแพ็คเกจ": จริง
},
แนวรุกคือ "การติดตั้งที่ต้องการ": "แหล่งที่มา". สิ่งนี้เกิดขึ้นเมื่อไม่นานมานี้ ไม่มีใครรู้ว่าทำไมและนักแต่งเพลงต้องชำระเงินโค้ดจาก git แทนที่จะดาวน์โหลดไฟล์ zip จาก Drupal
สิ่งนี้ไม่ได้สร้างความแตกต่างมากนัก ยกเว้นว่าโดยปกติแล้ว Drupal จะเพิ่มข้อมูลลงในไฟล์ info.yml ของโมดูล:
# ข้อมูลที่เพิ่มโดยสคริปต์บรรจุภัณฑ์ Drupal.org เมื่อ 2021-04-02
รุ่น: '8.x-1.2'
โครงการ: 'foobar'
วันที่ประทับ: 1617351415
ด้วย git checkout สิ่งนี้จะหายไป! และเมื่อ Drupal ตรวจหาคำแปลในภายหลัง ก็จะผ่านโมดูลทั้งหมดและพยายามรับชื่อโครงการ เห็นได้ชัดว่าในโครงการ Drupal ได้รับการแปล ไม่ใช่แต่ละโมดูล บางโมดูลประกอบด้วยโมดูลย่อยจำนวนมาก ซึ่งทั้งหมดใช้ชื่อโครงการเดียวกัน ดังนั้นจึงใช้ฐานการแปลเดียวกัน เนื่องจากโมดูล contrib ทั้งหมดของฉันมาจาก git แทนที่จะมาจากไฟล์ zip ที่ปรับปรุงแล้ว นี่หมายความว่า Drupal ข้ามมันไปทั้งหมดใน "drush locale-update"! ไม่มีข้อมูลเกี่ยวกับเรื่องนี้ออกมา พวกเขาเพียงแค่ข้ามไปอย่างเงียบๆ
วิธีแก้ไขสำหรับฉันคือเปลี่ยนบรรทัดที่ไม่เหมาะสมเป็น:
"การติดตั้งที่ต้องการ": {
"drupal/*": "ส่วน",
"*": "แหล่งที่มา"
},
นอกจากนี้ โปรดทราบว่าคุณต้องลบโมดูลออกจากเว็บ/โมดูล/ส่วนรวม และติดตั้งใหม่ผ่านทางผู้แต่ง เพียงแค่เปลี่ยนด้านบนและเรียกใช้ "composer install" ไม่เพียงพอ!