คุณใส่ข้อมูลสแตติกใน *.links.menu.yml โดยที่คุณกำหนดปลั๊กอินลิงก์เมนูไดนามิกด้วย ซึ่งจะให้ข้อมูลที่คุณไม่สามารถใส่ในสแตติก yml ได้ และ Diver เพื่อสร้างปลั๊กอินสำหรับแต่ละภาษา ตัวอย่างงานในเครื่องเป็นเพียงตัวอย่างสำหรับงานแปลเท่านั้น
ตัวอย่างการทำงานแบบคงที่:
mymodule.links.menu.yml
mymodule.language.top:
ชื่อเรื่อง: 'EN'
menu_name: หลัก
route_name: '<ไม่มี>'
ขยาย: จริง
# คลาสปลั๊กอินเพื่อแทนที่ชื่อแบบไดนามิก:
# คลาส: Drupal\mymodule\Plugin\Menu\TranslatedNodeTop
mymodule.language.item:
ชื่อเรื่อง: 'โหนด 8 ภาษาสเปน'
พาเรนต์: mymodule.language.top
route_name: entity.node.canonical
route_parameters: { โหนด: '8' }
menu_name: หลัก
ตัวเลือก:
คุณลักษณะ:
ระดับ:
- ฟู-คลาส
- บาร์คลาส
# deriver สำหรับภาษาที่ติดตั้ง
ที่มา: Drupal\mymodule\Plugin\Derivative\TranslatedNodeTabDeriver
# คลาสปลั๊กอินขยาย MenuLinkDefault แทนที่คุณสมบัติคงที่แบบไดนามิก
# พารามิเตอร์เส้นทางจากการจับคู่เส้นทางปัจจุบัน ภาษาจากผู้สืบทอด
# ชื่อเรื่องจากทั้งแอตทริบิวต์และลิงก์ที่เพิ่มสำหรับภาษาปัจจุบัน:
# คลาส: Drupal\mymodule\Plugin\Menu\TranslatedNodeItem
คุณต้องเพิ่มปลั๊กอินไดนามิกสองตัวที่ขยาย MenuLinkDefault ฉันได้รีไซเคิล TranslatedNodeTabDeriver จาก วิธีรับลิงก์ของหน้าแก้ไขโหนดที่แปลแล้วในแท็บรอง.