Puncte:1

Linkuri dinamice de limbă din meniu?

drapel in

Încerc să găsesc o modalitate de a face următoarele:

  • Adăugați limbi la elementele de meniu Drupal 9
  • Traduceți link-uri de conținut/meniu
  • Furnizați (din Navigarea principală) o listă de limbi pagina curentă este tradusă în

Am reușit să le finalizez pe primele două, dar nu pot vedea cum să obțin un meniu pentru a enumera link-urile care scot opțiunile de limbă disponibile pentru entitatea curentă. Văd că există un bloc de comutare de limbă de la bază, dar există vreo modalitate de a face acest lucru să apară într-un meniu Drupal în sine?

introduceți descrierea imaginii aici

drapel cn
Nu cred că acest lucru a fost încă rezolvat pe deplin în nucleu, există module de ajutor precum https://www.drupal.org/project/menu_block_current_language, https://www.drupal.org/project/menu_manipulator, https: //www.drupal.org/project/menu_multilingual
Kevin avatar
drapel in
Hmmm... trebuie să existe o modalitate de a imita asta. O să arunc o privire în jur
4uk4 avatar
drapel cn
Pentru o soluție de cod, veți avea nevoie de un plugin de link pentru meniu dinamic care să indice nodul curent derivat pentru fiecare limbă. Ca acest exemplu pentru activități locale https://drupal.stackexchange.com/questions/292739/how-to-get-links-of-translated-node-edit-page-in-the-secondary-tabs
Kevin avatar
drapel in
Înțeleg, asta ar funcționa chiar dacă nu este o sarcină locală? Cum l-ați atașa la „Navigație principală”?
Puncte:0
drapel cn

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.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.