cool IT Team-Blog

Mehrsprachigkeit in Contao leicht gemacht - eine Kurzanleitung

Die Herausforderung war, eine bereits komplett in deutscher Sprache entwickelte Site um die Sprache Englisch zu erweitern. Eine kleine Besonderheit war, dass für angemeldete Frontend-User Formulare entwickelt wurden, die selbstverständlich ebenfalls in englischer Sprache angeboten werden mussten.

Im Web konnte keine "umfassende" Anleitung für diese Aufgabe gefunden werden. Darum möchten wir hier eine Schritt für Schritt Anleitung darstellen, die wir angewendet haben.

Schritt 1: Duplizieren der bestehenden Site-Struktur

Unter "Layout/Seitenstruktur“ den Startpunkt der aktuellen Site duplizieren und schon ist die komplette Site-Struktur für die englische Variante vorbereitet:


  1. Tool Site ID <n> inklusiver  Unterseite duplizieren klicken
  2. Tool In Site ID <n> einfügen klicken
  3. Das ist neu entstanden
Abschließend auf beim neuen Root-Eintrag auf Bearbeiten klicken und im Abschnitt DNS-Einstellungen im Feld Sprache das Sprachkürzel "en" eingeben und die nebenstehende Option Sprachen-Fallback deaktivieren.

Schritt 2: Extension changelanguage installieren

Das ist die einzige Contao-Extension, die benötigt wird: changelanguage. Nach der Installation dieser Extension kann nun ein neues Frontendmodul vom Modultyp Sprachenwechsler erzeugt werden. Dabei werden im Abschnitt Modul-Konfiguration folgende Einstellungen vorgenommen:



Das so vorbereitete Frontend-Modul kann nun an einer beliebigen Stelle des (oder der) Seitenlayouts eingefügt werden. In unserem Fall ist das im Header-Bereich geschehen.

Schritt 3: Sitestruktur und Seiteninhalte mit englischen Texten befüllen

Das ist der aufwändigste Teil der ganzen Sprachumstellung. In unserem Fall ging das allerdings sehr flott, da alle erforderlichen Übersetzungen vom Kunde bereitgestellt wurden. Jedenfalls sind nun im „englischen Zweig“ pro Seite folgende Schritte durchzuführen:
  • In der Seitenstruktur die Seite veröffentlichen (grünes Auge in der Listenansicht geht schnell).
  • Via Seite bearbeiten im Abschnitt Name und Typ im Feld Fallback-Seite die entsprechende deutschsprachige Seite wählen und das Feld Seitenname mit dem neuen englischen Text überschreiben. Das Feld Seitenalias  muss unbedingt geleert werden, es wird dann beim Speichern auf Basis des neuen englischen Seitennamens versorgt.
Und zu guter Letzt müssen dann noch unter "Inhalte / Artikel" eben alle Inhalte übersetzt werden.

Schritt 4: Menüs übersetzen

Wir hatten in unserem Projekt drei Menübereiche: Top-, Main- und Footer-Navigation. Da haben wir einen kleinen Trick angewendet, um uns das Duplizieren aller Seitenlayouts zu ersparen. Die bestehenden Navigationen vom Typ Indviduelle Navigation wurden jeweils dupliziert und mit dem Präfix „_EN“ versehen. Dann wurde ein neues Frontendmodul vom Typ Eigener HTML-Code mit folgendem Inhalt erstellt:

{{iflng::de}}{{insert_module::3}}{{iflng}}
{{iflng::en}}{{insert_module::33}}{{iflng}}

Das Modul mit der ID 3 war das bestehende Modul und wirkt nur im deutschen Modus der Site, und das Modul mit der ID 33 ist das soeben neu erstellte Modul und kommt nur im englischen Modus der Seite zum Einsatz.

Schritt 5: Frontend-User Formulare anpassen

Zu guter Letzt waren noch die selbst entwickelten Frontend-User Formulare anzupassen. An allen Stellen, wo Übersetzungen nötig sind, kann einfach auf die System-Variable "$GLOBALS['TL_LANGUAGE']" zugegriffen werden. Diese ist entweder mit dem String "de" oder "en" versorgt.

Das war es auch schon. Alles ist erledigt.

Es ist also wirklich einfach, eine Contao-Site mit einer weiteren Sprache zu versehen. Contao stellt alle nötigen Funktionalitäten "Out oft the box" zur Verfügung. Lediglich für den Sprachumschalter ist die Extension changelanguage notwendig. Wir jedenfalls haben uns mehr Aufwand für die Umsetzung der Aufgabe erwartet.

Ist doch cool, oder?
Verfasst: 12.12.2014 16:55:03 von Albert Schuster
Tags: changelanguage, contao, multilanguage

1


Kommentare
Matthias Dittrich
Vielen Dank für den Beitrag. Sehr hilfreich - manchmal steht man einfach auf der Leitung ...
22.02.2017 10:05:27

Stephan
Schöner Beitrag. Ergänzend möchte ich diese Erweiterung empfehlen:
https://contao.org/de/erweiterungsliste/view/i18nl10n.de.html

Damit wird Mehrsprachigkeit noch einfacher. Das Duplizieren der Seitenstruktur entfällt vollständig. Sehr einfach und intuitiv bedienbar.


MfG
Stephan
02.11.2015 01:07:23

Einen Kommentar schreiben



 Security code