Typo3 6.2 und Mehrsprachigkeit

Aus Debacher-Wiki
Wechseln zu:Navigation, Suche

Nach langer Zeit tauchte mal wieder der Wunsch nach einer mehrsprachigen Seite auf. Es sollte neben der deutschen Version auch eine englische Version für alles Seiten vorhanden sein. Das war nicht ganz triviel, weil auch im TemplaVoila eine Änderung vorgenommen werden muss und diese nicht gut dokumentiert ist. Die folgenden Seiten finde ich ganz hilfreich:

Hier meine Änderungen gegenüber der "normalen" Seite:

Sprache aktivieren

Zuerst muss man die gewünschte Sprache in der Wurzelseite anlegen, damit bekommt man dann auch die UID der Sprache für den nächsten Schritt.

root-Typoscript

Am Ende hinzugefügt:

# HTTP-Parameter für Sprache festlegen
config.linkVars = L

config {
  # ID der Frontend-Sprache festlegen
  sys_language_uid = 0

  # ISO-Kennung der Frontend-Sprache festlegen (2-stellig)
  language = de

  # Locale festlegen (5-stelliger ISO-Code + Zeichensatz)
  locale_all = de_DE.utf8
  
  # Bei nicht übersetzten Seiten nicht zur Default-Sprache wechseln
  sys_language_mode = content_fallback

  # Nicht übersetzte Inhalte in der Default-Sprache anzeigen
  sys_language_overlay = 1

}

# Bedingung für Seiten mit der Sprach-ID 1 (hier Englisch)
[globalVar = GP:L = 1]
  # ID der Frontend-Sprache, ISO-Kennung und Locale setzen
  config.sys_language_uid = 1
  config.language = en
  config.locale_all = en_UK.UTF8
[global]

TS-config der Root-Seite

# Anzeige Default-Sprache im Backend als Deutsch festlegen
mod.SHARED {
  defaultLanguageFlag = de
  defaultLanguageLabel = Deutsch
}


XML der TV-Templates

Die ersten Zeilen müssen folgendermaßen lauten:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <T3DataStructure>
	<meta type="array">
		<langChildren type="integer">1</langChildren>
		<langDisable type="integer">0</langDisable>
	</meta>
	<ROOT type="array">
 ..

ursprünglich stand da:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <T3DataStructure>
	<meta type="array">
		<langDisable type="integer">1</langDisable>
	</meta>
	<ROOT type="array">
 ..


Konfiguration der einzelnen Seiten

Dann muss man für jede Seite eine Übersetzung anlegen, dazu dient der Reiter Übersetzungen.

Mehrsprach.png

Wichtig ist das auch für die Ausgangsseite, sofern die Elemente enthält, die sich vererben. Ich bringe hier z.B. gern die Headergrafik unter, die fehlt ohne Übersetzung auf den nachfolgenden Seiten.

Wenn eine Übersetzung für die Seite angelegt ist, dann lassen sich auch die einzelnen Kontent-Elemente übersetzen. Die unterschiedlichen Elemente werden dann durch die jeweiligen Flaggen gekennzeichnet.


Aufruf der Seiten

Will man die übersetze Version einer Seite aufrufen, so muss man nur den Parameter ?L=1 an den Link anhängen. Zumindest wenn die Sprach-ID und der HTTP-Parameter entsprechend konfiguriert wurden.