Drupal 6 Menüs in verschiedenen Sprachen: Menutrail

Menüspuren ('menu trails'), ein etwas eigentümlicher Ausdruck, erlaubt Besuchern, sich visuell im Menü (und bspw. auch dem Brotkrümel ('breadcrump')) zu orientieren. Dafür werden die jeweiligen übergeordneten Menüs aktiviert gezeigt (andere Farbe, unterstrichen, usw.). Drupal (6) zeigt aber immer nur eine Menüspur an, jeweils die letzte definierte, auf eine Seite, bspw. einen 'node' oder eine Ansicht ('view').

Das betrifft auch mehrsprachige Webseiten, von denen zwei oder mehrere Menüeinträge auf die selbe Ansicht zeigen (die jeweils weiteren Inhalt in der aktuellen Sprache zeigt). Man könnte das umgehen, in dem man mehrere Ansichten erstellt, für jede Sprache eine. Doch ist das nicht sehr elegant und auch fehleranfällig.

Beispiel

Eine zweisprachige Webseite soll Neuigkeiten auf Deutsch unter dem Titel "Mitteilungen" und französisch unter "Communiqués" anzeigen.

Dafür wird ein Inhaltstyp ('content type') «Mitteilungen» erstellt und eine Ansicht ('view'), mit dem Namen «News». Die Ansicht hat eine Seite ('page') mit dem Titel "Neuigkeiten" und dem Pfad medien/news. Es werden nur die Seiten der jeweilig gewählten Sprache angezeigt. Dazu wird ein Menüeintrag erstellt in den Hauptlinks ('primary links'): "Mitteilungen" (Sprache: deutsch) und der Pfad dazu auf medien/news gesetzt. Ein Klick auf Mitteilungen zeigt die Liste mit den Mitteilungen an.

Nun liegen die Mitteilungen auch auf französisch vor. Man übersetzt den Titel, also Begriff "Mitteilungen" zu "Communiqués" für Ansichten (unter "Oberfläche übersetzen"). Dann erstellt man einen neuen Menüeintrag "Communiqués" (Sprache: français) und (wichtig!) stellt den Pfad auch wieder auf medien/news. Ein Klick im französischen Bereich auf Communiqués zeigt die Mitteilungen und auch den aktiven Pfad. Der Menüeintrag ist aktiviert.

Schaltet man aber nun auf die deutsche Version, sieht man zwar korrekt die deutschen Mitteilungen, aber der Menüpfad (das hervorgehobene Menü) wird nicht mehr angezeigt. Einträge auf dem selben Menülevel sind nicht sichtbar und der Elternmenüeintrag ist nicht aktiv.

Das Problem ist eigentlich ein schwerwiegendes. Doch die Lösung dafür ist recht einfach:

Der Patch

Es gibt zum beschriebenen Problem einen interessanten Eintrag auf drupal.org: http://drupal.org/node/609542#comment-3425724 in dem auch der unten angehängte Patch gelistet ist, der auch für Drupal 6.20 funktioniert.

Der Patch wird im Hauptverzeichnis der Drupal-Installation gesichert, bspw. unter menu.inc.patch und mit

  # patch -p1 <menu.inc.patch 

aufgerufen. (patching file includes/menu.inc erscheint als Antwort).

Dann muss(!) noch der Cache von Drupal geleert werden. Die Menüspur wird ab sofort funktionieren.

Für all diejenigen, die menu.inc aus irgendeinem Grunde nicht patchen können ist unten die gepatchte Version ebenfalls angehängt (als Zip-Archiv).

AnhangGröße
menu.inc_.zip23.41 KB
menu.inc_.patch913 Bytes