Puneți informațiile statice în *.links.menu.yml unde definiți și pluginuri de link-uri de meniu dinamic, care oferă informațiile pe care nu le puteți pune într-un yml static. Și derivatul să producă un plugin pentru fiecare limbă. Exemplul de sarcină locală a fost doar un exemplu pentru chestiile de traducere.
Un exemplu static de lucru:
mymodule.links.menu.yml
mymodule.language.top:
titlu: „RO”
nume_meniu: principal
nume_rută: „<niciunul>”
extins: adevărat
# Clasa de plugin pentru a suprascrie titlul în mod dinamic:
# clasa: Drupal\mymodule\Plugin\Menu\TranslatedNodeTop
mymodule.language.item:
titlu: „Nodul 8 spaniol”
părinte: mymodule.language.top
nume_rută: entity.node.canonical
route_parameters: { nod: '8' }
nume_meniu: principal
Opțiuni:
atribute:
clasă:
- clasa foo
- clasa bar
# derivat pentru limbile instalate
derivat: Drupal\mymodule\Plugin\Derivative\TranslatedNodeTabDeriver
# Clasa de plugin care extinde MenuLinkDefault suprascriind proprietățile statice în mod dinamic,
# parametrul rutei din potrivirea rutei curente, limba din derivat
# titlul din ambele și atributele de link adăugate pentru limba curentă:
# clasa: Drupal\mymodule\Plugin\Menu\TranslatedNodeItem
Trebuie să adăugați cele două pluginuri dinamice care extind MenuLinkDefault. Am reciclat TranslatedNodeTabDeriver din Cum să obțineți linkuri către pagina de editare a nodurilor traduse în filele secundare.