TYPO3: Sprachumschaltung mit Language Selection (sr_language_menu)
9. Februar 2007
Nach langem Austesten verschiedener Möglichkeiten, halten wir die TYPO3-Extension Language Selection (sr_language_menu) von Stanislas Rolland für die beste Möglichkeit, um eine mehrsprachige TYPO3-Webseite mit einem One-Tree-Konzept (nur eine Seitenbaum für alle Sprachen) umzusetzen. Die Anforderung war dabei, dass auf jeder Seite in einer Sprachnavigation die alternativen, Sprachen als Link ausgegeben werden.
Auch wenn sich die Extension Language Selection relativ problemlos implementieren ließ, so soll hier doch kurz dargestellt werden, welche Schritte dafür notwendig sind, um TYPO3 auf andere Sprachen in UTF-8 umzustellen und die Extension einzubinden.
Neue Sprachen in TYPO3 anlegen

Um neue Sprachen in TYPO3 anzulegen muss man auf die Weltkugel der Root-Seite klicken und im Kontextmenü auf “Neu” klicken.

Wichtig ist, im nachfolgenden Menü auch den ISO-Code der Sprache auszuwählen, da unsere Extension später den Namen des ISO-Codes braucht. Hier alle notwendigen Sprachen, auch die Default-Sprache (bei uns Deutsch) hinzufügen. Wenn man anschließend auf die erweiterte Listenansicht der Root-Seite geht, bekommt man eine Liste der angelegten Sprachen (bei uns Deutsch, Englisch, Türkisch) angegben. Die UIDs der Sprachen findet man heraus, indem man mit der Maus über das Sprachsymbol geht. Diese UIDs brauchen wir später noch!
TYPO3 auf UTF-8 umstellen
Noch bevor wir jetzt Seiten in verschiedenen Sprachen anlegen, sollten wir im TYPO3-Install-Tool unter “All Configuration” im Feld “[BE][forceCharset] = utf-8″ den Wert “UTF-8” eintragen. Es kann sein, dass es jetzt bereits angelegte Seiten mit einem anderen Charset ein bisschen zerschießt. Deswegen sollte man diese Umstellung immer so früh wie möglich machen.
Installation
Zuerst muss die Extension Static Info Tabeles (static_info_tables) installiert werden. Danach die Extension Language Selection von der TYPO3-Webseite herunterladen
und über den Extension-Manager installieren. Jetzt läßt sich im Prinzip schon ein neues Inhaltselement namens “Plugins > Sprachauswahl” einfügen, was allein aber gar nichts nützt, da wir unserem TYPO3 erst noch die neuen Sprachen über das TypoScript beibringen müssen.
URL mit Linkvariablen erzeugen
Die Sprachumschaltung bzw. die Weitergabe der Information, welche Sprache angezeigt werden soll, läuft über die URL. Während eine Seite in der Standardsprache eine URL wie www.meineseite.de/index.php?id=6 besitzt, erhält die englische Version der Seite einen URL mit der Erweiterung &L=1 [www.meineseite.de/index.php?id=6&L=1] wobei die 1 der UID unserer Sprache (s.o.: Neue Sprachen in TYPO3 anlegen).
Diese URLs für die jeweiligen Sprachvarianten erzeugen wir mit folgendem TypoScrip im Template > Setup der Root-Seite außerhalb des page-Objekt (also z.B. ganz am Ende des Setups):
## SPRACHWAHL
# **********************
config.sys_language_mode = strict; 0
config.sys_language_overlay = hideNonTranslated
# ****************************************************
config.sys_language_uid = 0
config.linkVars = L
config.language = de
config.locale_all = de_DE.UTF-8
page.config.language = de
page.config.locale_all = de_DE.UTF-8
# English language, sys_language.uid = 1
[globalVar = GP:L = 1]
config.sys_language_uid = 1
page.config.language = en
page.config.locale_all = en_EN.UTF-8
[global]
# Tuerkisch
[globalVar = GP:L = 2]
config.sys_language_uid = 2
page.config.language = tr
page.config.locale_all = tr_TR.UTF-8
[global]
Die Extension mit TypoScript konfigurieren
Die Konfiguration der Extension lässt sich entweder über den Constant-Editor oder aber direkt im Template > Setup (TypoScript) der Root-Seite vornehmen. Die notwendigen Variablen sind gut im in der Dokumentation von Language Selection beschrieben. Unsere Seite lief mit folgendem TS zufriedenstellend:
## language menu konfigurieren
## ##############################################
plugin.tx_srlanguagemenu_pi1.useSysLanguageTitle = 0
plugin.tx_srlanguagemenu_pi1.defaultLanguageISOCode = DE
plugin.tx_srlanguagemenu_pi1.LanguageISOCode = DE
#Hiermit kann die wraps um die Links aendern/leeren
#plugin.tx_srlanguagemenu_pi1.link.CUR.stdWrap.wrap = <li class=”CUR”>|</li>
#plugin.tx_srlanguagemenu_pi1.link.NO.stdWrap.wrap = <li class=”NO”>|</li>
plugin.tx_srlanguagemenu_pi1.link.NO.stdWrap = |
plugin.tx_srlanguagemenu_pi1.hideIfNoAltLanguages = 1
#Hiermit kann die aktuelle Sprache ausgeblendet werden
#plugin.tx_srlanguagemenu_pi1.showCurrent = 0
# Hier liegt das selbst angepasste Template-File
plugin.tx_srlanguagemenu_pi1.file.templateFile = fileadmin/templates/language_menu/sprachwahl.tmpl
#GIBT EINE LISTENANSICHT AUS (2: Liste, 1: Auswahlliste, 0:Flagge)
plugin.tx_srlanguagemenu_pi1.defaultLayout = 2
plugin.tx_srlanguagemenu_pi1.links.stdWrap.split.wrap >
plugin.tx_srlanguagemenu_pi1._CSS_DEFAULT_STYLE >
#Hiermit koennte man festlegen, dass nur die Spachen 1+2 in der Liste ausgegeben werden
#plugin.tx_srlanguagemenu_pi1.languagesUidsList = 1,2
Den Inhalt des Plugin ausgeben
So, jetzt müssen wir nur noch die Sprachwahl an einer entsprechenden Stelle ausgeben. Hiermit definieren wir das Objekt im TypoScript, dass wir später ausgeben:
sprachwahl.languageMenu < plugin.tx_srlanguagemenu_pi1
Dieses Objekt müssen wir jetzt noch an einen Inhaltscontainer für die Ausgabe auf der Seite binden. Z.B. so:
# PLATZHALTER SPRACHE ansprechen
# *********************************************
page.10.marks.SPRACHE =< sprachwahl.languageMenu
Seiten in neuen Sprachen anlegen
Jetzt sind wir soweit und können anfangen und können unsere Seiten mit neuen Sprachen füllen. Eine Anleitung wie das geht findet man in Kaspars uralt-Doku zu TYPO3 Version3. Doch im Prinzip hat sich nicht viel geändert.
Noch ein kleiner Tipp: Um Seiten aus den Menüs auszublenden bzw. zu verstecken, wenn keine Übersetzung in der aktuellen Sprache für sie vorliegt, muss man einfach bei der auszublendenen Seite in Seiteneigenschaften das Häckchen bei “Verstecke Seite wenn keine Übersetzung für die aktuelle Sprache existiert” anklicken.
Weiterführende Links:
» Sprachumschaltung mit Links [Diese Variante hat das Problem, dass nicht vorhandene die Sprachen nicht ausgeblendet werden und ist damit relativ unflexibel]
» Mehrsprachige Webseiten mit Typo3







20. September 2007, 09:58 Uhr
Tach, schoener Loesungsweg, allerdings hab ich das Problem, dass mir das Auswahlfeld fuer den ISO code fehlt .. komm aber nicht dahinter wie ich den reinbekomme. Installtool “Dump Static” hab ich schon probiert.
Fuer schnelle Hilfe oder nen Tipp waere ich sehr dankbar
Ver: Typo3 4.1.2
Mood
20. September 2007, 10:27 Uhr
Hast Du die Extensions static_info_tables und sr_static_info installiert?
20. September 2007, 11:06 Uhr
Erstmal danke für die schnelle Antwort. Lag an den nicht installierten extensions. Dachte da die laut tut erst nach dem anlegen der zusaetzlichen sprachen und damit der wahl des Iso codes relevant werden muesse ich das zuerst hinbekommen.
*Wunderbar*, eine ganz andere sache an der stelle, da ich mit der Sprachwahl seit wochen schon rummache bin ich fuer meine Englishe Übersetzung mittlerweilen bei UID 6 angekommen. es ist aber nur default und eben eine zusaetzliche Sprache vorhanden.. wie bekomm ich das wieder wieder so hin das english UID 2 und Deutsch UID 1 hat. Ansich ists ja kein Problem .. gefaellt mir aber eben nicht so wirklich.
Gruss
mood
21. September 2007, 12:13 Uhr
Die UID wird ja beim Anlegen des Datensatzes in der Datenbank erzeugt. Probier doch einfach mal über dem phpMyAdmin die UID zu ändern.
Aber deine Seite hat wirklich noch ein kleines Sprachwahl-Problemchen. Viel Glück noch!
tom
23. November 2007, 09:58 Uhr
[…] permalink Sie Dir diese Seite mal an: undkonsorten » TYPO3: Sprachumschaltung mit Language Selection (sr_language_menu) :: […]
28. Dezember 2007, 23:21 Uhr
Hallo,
ich nutze das Scipt und es funktioniert soweit. Ich würde als Anfänger nur gerne wissen, was in dem Template sprachwahl.tmpl zu stehen hat und ob die Seiten automatisch von Typo3 übersetzt werden.
Gruß und Danke im vorraus
16. Januar 2008, 13:35 Uhr
[…] » TYPO3: Sprachumschaltung mit Language Selection (sr_language_menu) […]
14. Mai 2008, 20:35 Uhr
Hallo,
habe das Script kopiert & Extens. installiert.
Aber dann funktioniert Typo3 nicht mehr. Kann nicht speichern. Und die linke Nav fehlt in Typo3 ganz.
Was ist falsch gelaufen?
Gruß Annett
15. Mai 2008, 09:40 Uhr
@ANNETT:
Vielleicht versteckt Dir die folgende Zeile Deine Navigationspunkte, falls sie mit einer anderen Sprach_ID versehen sind:
config.sys_language_mode = strict; 0
config.sys_language_overlay = hideNonTranslated
Kommentier mal aus. Ansonsten, sind die Angaben ein bisschen knapp, um Dir zu sagen, warum Deine Seite jetzt nicht läuft.
// tom
25. Juni 2008, 08:59 Uhr
Vielen Dank für das sehr gute Tutorial-Bestes im Net zu diesem Thema!!!
11. Juli 2008, 12:10 Uhr
[…] bequem ein Sprachumschaltungsmenü erstellen (ein bisschen Typo Script gehört natürlich dazu) … dazu ein guter Link 2. Per hand musst du erst im Typo Script die mehrsprachigkeit definieren. Dann haben deine Seiten […]