Bạn đặt thông tin tĩnh vào *.links.menu.yml, nơi bạn cũng xác định plugin liên kết menu động, cung cấp thông tin mà bạn không thể đặt trong yml tĩnh. Và trình dẫn xuất để tạo plugin cho từng ngôn ngữ. Ví dụ về tác vụ cục bộ chỉ là một ví dụ cho nội dung dịch thuật.
Một ví dụ tĩnh làm việc:
mymodule.links.menu.yml
mymodule.language.top:
tiêu đề: 'EN'
menu_name: chính
route_name: '<none>'
mở rộng: đúng
# Lớp plugin để ghi đè tiêu đề động:
# lớp: Drupal\mymodule\Plugin\Menu\TranslatedNodeTop
mymodule.language.item:
title: 'Nút 8 tiếng Tây Ban Nha'
cha mẹ: mymodule.language.top
route_name: entity.node.canonical
route_parameters: { node: '8' }
menu_name: chính
tùy chọn:
thuộc tính:
lớp:
- foo-lớp
- hạng thanh
# dẫn xuất cho các ngôn ngữ đã cài đặt
công cụ dẫn xuất: Drupal\mymodule\Plugin\Derivative\TranslatedNodeTabDeriver
# Lớp plugin mở rộng MenuLinkDefault ghi đè các thuộc tính tĩnh một cách linh hoạt,
# tham số tuyến đường từ đối sánh tuyến đường hiện tại, ngôn ngữ từ trình dẫn xuất
# tiêu đề từ cả hai và thuộc tính liên kết được thêm cho ngôn ngữ hiện tại:
# lớp: Drupal\mymodule\Plugin\Menu\TranslatedNodeItem
Bạn cần thêm hai plugin động mở rộng MenuLinkDefault. Tôi đã tái chế TranslatedNodeTabDeriver từ Cách nhận liên kết của trang chỉnh sửa nút đã dịch trong tab phụ.