Mehrsprachige Websites

Lived multilingualism - 2010-03-30Ich lebe in Europa. Die Europäische Union hat 23 offizielle Sprachen. Wenn Sie Websites in einer solchen Umgebung erstellen, müssen Sie über Mehrsprachigkeit nachdenken. Sie stehen dabei vor zwei Herausforderungen: Erstens müssen Sie die statischen Joomla!-Texte übersetzen und zweitens die Inhaltselemente. Während der erste Punkt normalerweise einfach zu lösen ist, ist die zweite Aufgabe die erheblich umfangreichere.
Das Joomla! 2.5 Standardpaket ist momentan ist in mehr als 40 Sprachen erhältlich, mehr werden bald folgen.

Lassen Sie uns in diesem Kapitel eine mehrsprachige Website mit dem Joomla! 2.5 Core erstellen.

Joomla!-Sprachpakete

Sie können die Übersetzungspakete von der Website Joomla Code oder auch direkt aus dem Joomla! Extension Directory herunterladen und mithilfe des Installers installieren (siehe auch das Kapitel Erweiterungen verwalten). Ich habe das deutsche und das französische Sprachpaket installiert. Nach der Installation können Sie in Erweiterungen Sprachen nachsehen. Sie finden dort die drei installierten Sprachen (siehe Abbildung 1).

cocoate.com/node/10332

Abbildung 1: Installierte Sprachen

Konfiguration der Sprachen

Sie sollten in der Sprachverwaltung nachsehen, ob alle Sprachpakete veröffentlicht sind (Erweiterungen Sprachen, Tab: Installiert) und ob die "Sprachattribute" richtig gesetzt sind. Im Bereich Erweiterungen Sprachen Inhalt können Sie Ihren Sites Namen entspreched der Sprache geben.  Wenn kein Inhaltselement vom Installer angelegt wurde, erstellen Sie eins durch einen Klick auf das New-Icon. Das war bei mir beispielsweise nötig, nachdem ich das französische Spachpaket installiert hatte.

cocoate.com/node/6415

Abbildung 2: Attribute der Sprache verändern

Sprachen Filter-Plugin

Damit Joomla! zwischen den verschiedenen Sprachen unterscheiden kann, ist es notwendig, das System-Plugin Sprachen Filter zu aktivieren (Erweiterungen Plugins). In den Basis Optionen können Sie einstellen, ob die Sprachversion, die dem Besucher gezeigt wird, die Standardsprache der Website sein soll oder die Sprache, die in seinen lokalen Browsereinstellungen festgelegt ist. Eine weitere Einstellungsmöglichkeit ist der Automatische Sprachwechsel. Wenn er eingeschaltet ist, ändert sich die Inhaltssprache automatisch passend zur Sprachauswahl im Frontend.

cocoate.com/node/10332

Abbildung 3: PlugIn - Sprachen Filter

Jeder Benutzer kann in seinen Profileinstellungen die Websitesprache einstellen, die er nach der Anmeldung nutzen will. Meistens gibt es ein Benutzermenü, in dem registrierten Benutzern, abhängig von ihren Berechtigungen, verschiedene Menüeinträge angeboten werden. In diesem Benutzermenü erscheint normalerweise auch der Ihr Profil-Link. Der Link führt zu Ihrem Profil, das Sie an dieser Stelle ansehen und bearbeiten können. Im Profilformular im Bereich Basiseinstellungen können Sie neben anderen Einstellungen auch die Sprache festlegen (siehe Abbildung 4). Es ist möglich, die Standardsprache der Website zu verwenden oder eine der angebotenen Sprachen zu wählen. Abhängig von diesen Einstellungen sorgt das Sprachen Filter-Plugin dafür, dass Sie die Website in der gewünschten Sprache sehen können.

cocoate.com/node/6415

Abbildung 4: Benutzerprofil - Basiseinstellungen

Das Sprachauswahl-Modul

Wenn Sie das Modul Sprachauswahl (Language Switcher) aktivieren, haben Sie die Möglichkeit, auf der Website zwischen den Sprachen zu wechseln – unabhängig davon, ob Sie ein Besucher oder ein angemeldeter Benutzer sind. In den Basis Optionen können Sie zusätzlichen Text hinzufügen und auswählen, ob Sie die Sprachauswahl als Flaggen oder als Textlink darstellen wollen. Ich bin sicher, dass Drittanbieter-Templates in naher Zukunft spezielle Template-Positionen für dieses Modul anbieten werden. Im Standard-Template Beez2 arbeitet die position-7 gut mit der Flaggenanzeige des Moduls zusammen.

cocoate.com/node/6415

Abbildung 5: Sprachauswahl

Lesen Sie unbedingt den Erläuterungstext, am Besten zweimal ;-)

Wenn Sie Sprachen wechseln und die Seite, die angezeigt wird ist nicht mit einem Menüeintrag verbunden, dann wird der Benutzer auf die Homepage, die für diese Sprache defineirt ist, umgeleitet.

Wenn im Sprachen Filter Plugin die entsprechende Einstellung vorgenommen wurde, dann wird der Benutzer auf den mit der Sprache verknüpften Menüeintrag geleitet. Danach erfolgt die Navigation über das für diese Sprache definierte Menü.
Falls das Sprachen Filter Plugin nicht aktivviert ist, bekommen SIe unerwünschte Ergebnisse.

Gehen Sie wie folgt vor:

  1. Öffnen Sie den Tab Inhaltssprachen und stellen Sie sicher, dass die gewünschte Inhaltssprache, der Sprachcode für die URL als auch der Prefix für Bilder und Module angezeigt werden
  2. Erstellen Sie eine Startseite und ordnen Sie die Sprache einem Menüeintrag zu. Bestimmen Sie diesen Menüinhalt durch Klick auf das Icon Startseite als Startseite. Diesen Vorgang wiederholen Sie für jede auf der Website verwendete Sprache.
  3. Danach können Sie eine Sprache Artikeln, Kategorien, Modulen, Newsfeeds und Weblinks zuordnen.
  4. Stellen Sie sicher, dass das Sprachenauswahl Modul und das Sprachen Filter Plugin veröffentlicht und aktiviert sind.
  5. Wenn Sie assoziierte Menüeinträge verwenden, stellen Sie sicher, dass das Sprachenauswahl Modul auf den entsprechenden Seiten angezeigt wird.
  6. Die Reihenfolge und Art wie Flaggen angezeigt werden wird in Sprachen - Inhaltssprachen festgelegt.

Wenn dieses Modul veröffentlicht ist, dann ist es empfehlenswert auch das administrator multilanguage status module zu veröffentlichen.

Mehrsprachige Inhaltselemente

Wie ich bereits erwähnt habe, kann jedes Inhaltselement – beispielsweise ein Beitrag – einer Sprache zugeordnet werden. Ihre Aufgabe besteht jetzt darin, all diese Inhaltselemente in der Ursprungssprache und allen Zielsprachen zu erstellen (Abbildung 6). Sie können Inhalte einfach in jeder Sprache erstellen, aber leider bietet Joomla! 2.5 momentan noch keinen Übersetzungs-Workflow an, sodass Sie mächtig aufpassen müssen, nichts zu vergessen.

cocoate.com/node/6415

Abbildung 6: Sprachfeld

Eine mehrsprachige Website

Meine Beispielseite besteht aus:

  • einer Startseite mit Artikeln
  • einem Blog
  • einer "Über uns"-Seite
  • einem Konktaktformular

Alle Inhaltselemente müssen dazu in den verschiedenen Sprachen zur Verfügung stehen (Abbildung 7).

cocoate.com/node/6415

Abbildunge 7: Beispielwebsite

Startseite

Hier zur Hilfe ein Screencast ( momentan noch für Version 1.7 - funktioniert, 2.5 folgt bald)

Ich erstelle ein paar Beiträge für jede Sprache und setze das Attribut Haupteintrag (featured), damit Sie auf der Startseite erscheinen (siehe dazu auch das Kapitel Ein typischer Artikel).

Einmalig erstelle ich ein Menü default mit einen Menülink default, der auf die Hauptbeiträge verweist. Dieser Menülink muss durch einen Klick auf das Startseite Icon zum Standard erklärt werden. Das Menü default benötigt kein eigenes Modul, es muss nur vorhanden sein (Dieses Verhalten ist in der aktuellen stabilen Joomla! 2.5 Version enthalten und wird sicherlich in einem der nächsten Updates entfallen).
Danach erstelle ich pro Sprache ein Menü, sowie das korrespondierende Modul und erstelle jeweils einen Menüeintrag für jede Sprache: Home, Startseite, Accueil. Diese Menülinks müssen dann jeweils zur durch Klick auf das Startseite Icon zur Startseite erklärt werden. Wenn das entsprechende Landesfähnchen neben dem Link erscheint, wird es auch im Sprachauswahl Modul angezeigt werden. Falls nicht, schauen Sie sich das Video nochmal an :)

Menüs zur Mehrsprachigkeit

Abbildung 8: Startseite für jede Sprache

Ein Blog

In meinem Fall habe ich bereits ein Blog auf cocoate.com, und so benutze ich die Newsfeeds-Komponente, um die externen Blogeinträge anzeigen zu lassen. Ich erstelle einen Newsfeed für jede Sprache und die entsprechenden Menüeinträge (siehe auch das Kapitel Newsfeeds).

Eine "Über uns"-Seite

Ich erstelle eine "Über uns"-Seite für jede Sprache, wie im Kapitel Eine "Über uns"-Seite erstellen beschrieben.

Ein Kontaktformular

Ich benutze ein einzelnes Kontaktformular für allgemeine Anfragen. Ich benötige auch nur dieses eine Formular und muss keine Sprache zuweisen. Nur wenn sich die Kontaktdaten unterscheiden, weil Sie beispielsweise eine andere Post- oder E-Mail-Adresse für verschiedene Niederlassungen haben, müssen Sie natürlich mehrere Formulare erstellen.

Anmeldeformular

Auf jeder Seite sehen Sie ein Anmeldeformular. Ich habe einfach das englische Login-Modul zweimal kopiert, es allen Seiten zugewiesen (Menüzuweisung) sowie Titel und Sprache angepasst. Jetzt ist es möglich, sich auf jeder Seite meiner Website zu registrieren und anzumelden.

Benutzermenü

Ich benutze das existierende Benutzermenü. Es bietet Links zum Profil, zum Erstellen eines Beitrags und eines Weblinks an (Abbildung 9)

cocoate.com/node/6415

Abbildung 9: Beitragsbearbeitung im Frontend

Wie Sie gesehen haben, ist es sehr leicht, mit dem Joomla! 2.5 Core eine mehrsprachige Website zu erstellen.

Sprach - Overrides

Wenn Sie Sprach-Strings finden, die nicht zur Sprache Ihrer Website passen, dann können Sie sie in Erweiterungen -> Sprachen -> Overrides verändern.

Ein Sprach-String besteht aus zwei Teilen: einer spezifischen Sprachkonstante und ihrem Wert.

Zum Beispiel, im String:

     COM_CONTENT_READ_MORE="Read more: "

ist 'COM_CONTENT_READ_MORE' die Konstante und 'Read more: ' der Wert.
Sie müssen die spezifische Sprachkonstante auswählen um den Wert überschreiebn zu können.
Suchen Sie nach der Konstante oder dem zu verändernden Wert. Mit Klick auf das gewünschte Ergebnis wird die gewünschte Konstante automatisch in das Formular übernommen (Abbildung 10).

Sie können Sprachstrings auch durch Eingabe eigener Texte suchen.

cocoate.com/node/10332

Abbildung10: Sprach - Overrides

Kommentare

Konnte kein Sprachpaket Französisch für Joomla 2.5 unter http://joomlacode.org/gf/project/jtransl... finden. Hatten Sie eine andere Quelle?
Viele Grüße
Gunter Hellmann

Hier auf jGerman
http://www.jgerman.de/site/downloads/joo...
Viele Grüsse
Hagen

tolle erklärung :-) vielen dank für deine arbeit.
kleine frage noch: ich habe das neue franz. paket installiert (joomla 2.5.3). leider erscheint aber in der suche der begriff "search" sowie beim blog der begriff "continue reading"... und nicht das französische... hast du eine idee, wo mein fehler ist? danke.
gruss, dani

Den Weiterlesen Link kannst du per Hand einstellen in den Artikeln und die Beschriftung des Suchbuttons auch. Vielleicht liegt es daran
Hagen

Danke für die Anleitung zum Sprachumschalter. Hat wirklich geholfen. Flaggen (deutsch, französisch und englisch) erscheinen nun, aber leider immer mit sichtbarem Unterstrich folgend. Was kann ich dagegen tun?

ich kämpfe trotz der hervorragenden anleitungmit einem problem: das modul sprachauswahl ist nur unter "verwalten" sichtbar, ist aber geschützt (und nur für backend gültig). habe dann neue module, z.b. "SprachauswahlDE" und "SprachauswahlFR" erstelt und die meldung erhalten, das modul sei gespeichert worden.
diese module werden auf der site (z.b. pos-7), aber ich kann die module unter 'module' nicht finden und deshalb nicht veränden, löschen usw.
hat jemand einen hinweis dazu?

Schade, dass man für jede Sprache ein eigenes Menü anlegen muss, so kommen bei einer dreisprachigen Seite schnell viele Menüpunkte zusammen und es wird sehr unübersichtlich. Auch auf der Modul-Seite.

hallo zusammen, ich habe eine zweisprachige site (de/fr) erstellt und alles funktioniert an sich wunderbar, nur mit einem punkt kämpfe ich seit tagen (oder eher nächten): die sprachumschaltung der kontaktformulare klappt nicht, bei sprachumschaltung lande ich immer auf der home der anderen sprache. hat jemand dazu einen tipp?