Sprachmenü erstellen
There are more than many ways to do it... So beginnt die ausführliche Dokumentation zur Mehrsprachigkeit von Kasper Skårhøj (doc_l10nguide). Lernen Sie hier, wie TYPO3 Sie unterstützt und wie Sie TYPO3 dabei unterstützen können...
Es gibt prinzipiell zwei Arten, mehrsprachige Seiten anzulegen, die sich grundlegend voneinander unterscheiden. Bei der einen Variante legen Sie für jede Sprache einen eigenen Ast bzw. Baum an. Damit werden die Sprachen wie unterschiedliche Bereiche der Webseite behandelt. Bei der anderen Variante verwalten Sie alle Sprachen im gleichen Baum. Jeder Seite im Backend wird die Übersetzung in andere Sprachen direkt zugeordnet. Dies bewirkt, dass der Besucher beim Link zur Sprachumschaltung auf der gleichen Seite verbleibt und nicht erst wieder auf der Startseite der jeweils neuen Sprache anfangen muss.
Beide Varianten haben ihre Berechtigung und werden für unterschiedliche Bedürfnisse eingesetzt.
Erstellung eines Sprachmenüs für die Variante "Alle Sprachen in einem Baum"
Zuallererst müssen wir über TypoScript Konfiguration die Sprachen einrichten. Das Toplevel-Objekt CONFIG stellt einige Eigenschaften zur Verfügung, die die sprachspezifische Ausgabe erzeugen.
Die Konfiguration für eine Webseite mit Deutsch als Standardsprache sieht wie folgt aus:
config {
language = de
locale_all = de_DE
htmlTag_langKey = de
}
Diese Einstellungen sollten – unabhängig davon, wie viele Sprachen Sie auf der Webseite darstellen wollen, gesetzt werden – also auch für einsprachige Webseiten. Die folgenden zusätzlichen Zeilen sind nur notwendig, da wir mehrere Sprachen verwalten und konfigurieren.
config {
linkVars = L
uniqueLinkVars = 1
sys_language_uid = 0
}
Detaillierte Informationen zu den einzelnen Einstellungen können Sie in der TSRef nachlesen.
Anschliessend fügen wir im Backend all unsere benötigten Sprachen im obersten Element im Seitenbaum hinzu.
Die UID wird später für die Konfiguration der Sprachen und das Sprachmenü (per TypoScript) benötigt.
Nun können wir redaktionell im Modul Web, Page zu jeder Seite eine alternative Seitensprache anlegen und die Seite mitsamt Inhalten durch die TYPO3-Lokalisierungsfunktionen übersetzen lassen
Ist die Standardsprache definiert, können wir nun per TypoScript alle weiteren Sprachen konfigurieren, hierbei ist darauf zu achten, daß sys_language_uid die ID der jeweiligen Sprache ist und die Abfrage globalVar = GP:L = 1 genau auf diese ID prüft
# languages #
# english
[globalVar = GP:L = 1]
config {
language = en
locale_all = en_US
htmlTag_langKey = en
sys_language_uid = 1
}
[global]
# franzoesisch
[globalVar = GP:L = 2]
config {
language = fr
locale_all = fr_FR
htmlTag_langKey = fr
sys_language_uid = 2
}
[global]
Menü für die Sprachumschaltung
Nun können wir das Menü erstellen. In diesem Beispiel verwenden wir ein Textmenü, es können genauso grafische Menüs mit Flaggen erzeugt werden. Dies ist jedoch Stoff für einen weiteren Artikel.
temp.menu_lang = COA
temp.menu_lang {
10 = HMENU
10 {
# deutsch und englisch
special = language
special.value = 0,1
1 = TMENU
1 {
NO = 1
NO.stdWrap.cObject = TEXT
NO.stdWrap.cObject {
value = Deutsch || Englisch
lang.en = German || English
}
ACT < .NO
ACT.stdWrap.cObject {
value = DEUTSCH || Englisch
lang.en = German || ENGLISH
}
}
}
}
Es gibt ausser den beiden Zuständen NO und ACT noch die beiden speziell für das Sprachmenü nützlichen Zustände USERDEF1 und USERDEF2, die bei der Darstellung der Menüpunkte nicht übersetzter Seiten greifen.
Mit diesen vier Grundtypen und einer geschickten Konfiguration des Fallback Verhaltens kann man die Sprachnavigationsleiste sehr gut an den aktuellen Bedarf anpassen. Genauere Erläuterung der einzelnen Einstellungen und weitere Beispiele folgen in den nächsten Artikeln und sind im Buch nachlesbar.
Themensammlung: Ideen für weitere Artikel:
- Datenhaltung: wo werden meine mehrsprachigen Inhalte vorgehalten und wie kann ich dies beim Erstellen einer neuen Extension nutzen?
- Fallback: wie verhält sich TYPO3, wenn Inhalte nicht übersetzt sind - und vorallem, wie kann ich darauf Einfluss nehmen?
- Mehrsprachigkeit und Zeichensatzprobleme bei Sprachen mit arabischen, asiatischen und kyrillischen Zeichen
- Hilfen für Redakteure mehrsprachiger Seiten
- Automatische Spracherkennung
Wenn Sie Interesse an einem der Artikel oder einen neuen Artikelvorschlag haben, können Sie uns gerne Ihr
Feedback senden, wir nehmen interessante Themen gerne in unsere Liste auf bzw. setzen oft angefragte Artikel in unserer Prioritäetenliste nach vorne.
