Mehrsprachige TYPO3-Projekte realisieren

Defaultsprache

Die Defaultsprache ist die Sprache, in der die Texte ganz normal eingegeben werden oder bereits eingegeben wurden.

Neue Sprache hinzufügen

Um eine neue Sprache in TYPO3 hinzuzufügen geht man ins Backend, wählt links Liste aus und klickt auf die Wurzel des Seitenbaums (die mit der kleinen Weltkugel als Symbol).

Dort klickt man dann ganz unten auf Neuen Datensatz anlegen.

Auf der nächsten Seite wählt man Website Sprache und gibt einen Namen für die Sprache ein (wird meist nur im Backend verwendet); weiter wählt man den ISO Code (die Sprache in englischer Sprache) und ein passendes Flaggensymbol aus. Speichern und gut :-)

Inhalte übersetzen

Die Sprache ist nun eingerichtet und man kann auch schon anfangen, die Inhalte zu übersetzen :-)

Man geht nun links wieder auf Seite und wählt sich aus dem Seitenbaum die zu übersetzende Seite aus. Dort wählt man dann oben statt Spalten den Eintrag Sprachen aus. Nun kann man unter Neue Übersetzung dieser Seite anlegen: die bzw. eine der gerade angelegten Sprache auswählen in der die Seite zunächst übersetzt werden soll. Für diese bekommt man dann in der Ansicht eine neue Spalte und man kann entweder die Inhalte von der Standardsprache kopieren und übersetzen oder aber ganz neu anlegen.

Sprachen im TypoScript eintragen

Nun müssen wir noch ein paar Zeilen im TypoScript ergänzen, um verschiedene Einstellungen festzusetzen:

  1. # Standard-Sprache
  2. # die ID der Standard-Sprache ist immer 0
  3. config.sys_language_uid = 0
  4. # die Sprach-ID wird über den GET-Parameter L übergeben
  5. config.linkVars = L
  6. page.config.baseURL = http://www.domain.de/
  7. page.config.htmlTag_langKey = de-DE
  8. # Sprach-Code in Kurzform
  9. page.config.language = de
  10. # Sprach-Code
  11. page.config.locale_all = de_DE
  12.  
  13. # English language, sys_language.uid = 1
  14. [globalVar = GP:L = 1]
  15. config.sys_language_uid = 1
  16. page.config.baseURL = http://www.domain.com/
  17. page.config.htmlTag_langKey = en
  18. page.config.language = en
  19. page.config.locale_all = en_GB
  20. [global]

Im ersten Teil legt man die Standardsprache fest- diese hat immer die ID 0.

Über baseURL kann man bewirken, dass der Besucher immer auf einer bestimmten Domain surft (dieser Wert ist optional).

Wenn man den Wert htmlTag_langKey setzt, dann werden bei XHTML-Seiten die Attribute xml:lang und lang im html-Tag auf diesen Wert gesetzt (optional).

Die ID der Sprache bekommt man heraus, wenn man wieder dort hin geht, wo man die Sprache angelegt hat - auf die Wurzelseite in der Listenansicht. Wenn man dort die Maus über das Weltkugelsymbol der Sprache hält, verrät der Tooltipp die passende ID :-)

Sprachauswahl im Frontend

Mit der Extension sr_language_menu kann man sehr leicht eine Sprachauswahl für seine Besucher ins Frondend integrieren.

Nachdem man die Extension installiert hat, kann man das Content-Element (Language Selection) auf eine Seite seiner Wahl einbinden.

Man hat die Auswahl zwischen klassischen Fahnenbildern der Sprachen/Länder, einer Dropdownliste und einfachen Links. Die Sprachen kann man wie gewohnt mit dem Ordnersymbol hinzufügen- in dem Popup-Fenster wählt man aus der Wurzelseite einfach die gewünschten Sprachen aus (z. B. die, die man wie o. g. zum TYPO3 hinzugefügt hat).

Das Gute an dieser Extension ist, dass sie bspw. die Fahnensymbole ausgraut, wenn für die aktuelle Seite keine Übersetzung verfügbar ist.

Weitere Einstellungen, die hier nicht weiter diskutiert werden sollen, kann man sich selbst im Constant Editor zu Gemüte führen ;-)

Im Constant Editor muss man auch noch die Standardsprache der Seite festlegen, damit dafür auch das entsprechende Fähnchen angezeigt wird (defaultLanguageISOCode), der wohl zumeist auf de stehen sollte :-]

Sprachauswahl auf jeder Seite anzeigen

Um die Sprachauswahl auf jeder Seite anzuzeigen, legt man das Content Element auf einer "toten" Seite oder in einem SysOrdner an und fügt in seinem Template einen Platzhalter an der passenden Stelle ein (z. B. ###sprachauswahl###). Von diesem Element braucht man dann noch die ID (nicht die von der Seite!). Die kriegt man wieder raus, indem man die Maus über das Symbol des Plugins hält. Folgendes fügt man dann, angepasst auf seine ID, in das TypoScript Template ein:

temp.languageMenu = COA

temp.languageMenu {

  10 = RECORDS

  10.tables = tt_content

  # hier kommt die ID des Content Elements hin!

  10.source = 7

}

Dieses Konstrukt muss man dann noch seinem Platzhalter zuweisen und schon hat man die Sprachauswahl auf jeder Seite. Und natürlich regiert das Plugin auf jeder Seite so, als wäre es dort eingebunden- also graut die unvorhandenen Übersetzungen aus.

Einige mögliche Werte für locale_all

 

af

am

ar

az

az_IR

be

bg

bn

br

bs

ca

cs

cy

da

de

de_AT

dz

el

en

en@boldquot

en_CA

en_GB

en@quot

eo

es

et

et_EE

eu

eu_ES

fa

fi

fr

ga

gl

gu

he

hi

hr

hu

hy

ia

id

is

it

ja

ka

km

ko

ku

ky

lg

li

lt

lv

mg

mi

mk

ml

mn

mr

ms

nb

ne

nl

nn

no

nso

or

pa

pl

pt

pt_BR

ro

ru

rw

sk

sl

sq

sr

sr@ije

sr@Latn

sv

ta

te

th

tk

tl

tr

uk

uz

uz@Latn

vi

wa

wo

xh

yi

zh

zh_CN

zh_HK

zh_TW

 

 

Kategorien
TYPO3-Tutorials
Suche