Typo3 Internationalisierung – Best Practice

Im Frontend Localization Guide [2] wird recht ausführlich beschrieben wie man Typo3 Seiten für mehrere Sprachen konfiguriert. Wer keine Lust hat das 54-seitige Dokument zu lesen ist hier richtig.


Was will man erreichen?!

Grundsätzlich gibt es zwei Ansätze in Typo3 wie man eine Seite internationalisieren kann. Zum einen besteht die Möglichkeit für den vorhandenen Content eine 1:1 Übersetzung anzufertigen.
Die zweite Alternative nennt sich Lokalisierung. Darunter versteht man die Anpassung einer einzelnen Seite an lokale Gegebenheiten. Einsetzbar beispielsweise auf der “Willkommens”-Seite eines Webangebots. Hier kann für enschlischsprachige Nutzer anderer Content sinnvoll sein als für deutsche oder chinesische.
Beide Ansätze können innerhalb eines Projekts parallel genutzt werden, allerdings nicht parallel auf einer Seite.

Auf gehts – Administrator Tätigkeiten

Charset
Zunächst sollte der Zeichensatz des Backends und Frontends auf UTF-8 eingestellt werden. Dazu wird die Variable forceCharset im Install-Tool auf UTF-8 gesetzt. Ist der Zugriff auf das Install-Tool deaktiviert fügt man der Datei localconf.php die Zeile

$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8'

hinzu. Desweiteren sollte das Metacharset des Frontends auf UTF-8 gesetzt werden. Dazu wird dem Typo-Script Setup des Maintemplates folgender Code hinzugefügt:

config.metaCharset = utf-8

TemplaVoila-Anpassung
Damit sowohl Übersetzungen als auch die oben beschriebene Methode der Lokalisierung verwendet werden kann muss die TemplaVoila Datenstruktur angepasst werden.

<t3datastructure>
    <root type="array">
</root></t3datastructure>

wird ersetzt durch:

<t3datastructure>
<meta type="array">
<langchildren type="integer"&gt;1&lt;/langChildren>
<langdisable type="integer"&gt;0&lt;/langDisable>
</langdisable></langchildren></meta>
    <root type="array">
</root></t3datastructure>

Alternative Sprache für das Projekt anlegen
Jetzt muss Typo3 mitgeteilt werden welche Sprachen im Projekt verwendet werden sollen. Dazu legt man im Root des Projekts mittels List-Modul einen Website-Language-Datensatz an. Die Konfiguration ist selbsterklärend.

Menü zur Sprachauswahl
Im FE wird dem Benutzer häufig über entsprechende Icons die Möglichkeit gegeben eine der möglichen Sprachen auszuwählen.
Hier Code für die Sprachen Deutsch und Englisch:

## Localization menu:
lib.langmenu = HMENU
lib.langmenu {
    special = language
    special.value = 0,1
    special.normalWhenNoLanguage = 0
    1 = GMENU
    1.NO {
        XY = [5.w]+4, [5.h]+4
        backColor = white
        5 = IMAGE
        5.file = EXT:cms/tslib/media/flags/flag_de.gif || 
            EXT:cms/tslib/media/flags/flag_uk.gif
        5.offset = 2,2
    }
    1.ACT &lt; lib.langmenu.1.NO
    1.ACT=1
    1.ACT.backColor = black
    1.USERDEF1 &lt; lib.langmenu.1.NO
    1.USERDEF1=1
    1.USERDEF1.5.file = EXT:cms/tslib/media/flags/flag_de_d.gif ||
                                     EXT:cms/tslib/media/flags/flag_uk_d.gif
    1.USERDEF1.noLink = 0
    1.USERDEF2 &lt; lib.langmenu.1.USERDEF1
    1.USERDEF2.backColor = green
}
lib.langmenu

muss an die Gegebenheiten im Projekt angepasst werden. Ein weiteres Beispiel für ein Sprachmenü findet man unter [2].

Noch ist zwar das Menü vorhanden, erwirkt aber keinen Sprachwechsel. Es muss noch folgender Code hinzugefügt werden. Hier wiederum beispielhaft für Deutsch und Englisch:

config {
    linkVars = L
    sys_language_mode = content_fallback
    sys_language_overlay = hideNonTranslated
    sys_language_uid = 0
    language = de
    locale_all = de_DE
}
[globalVar = GP:L=1]
config {
     sys_language_uid = 1
     language = uk
     local_all = en_UK
}
[global]

Zunächst werden allgemeine Einstellungen vorgenommen und die Default-Sprache konfiguriert. Anschließend folgt die Konfiguration der Alternativsprachen. Die genau Bedeutung kann unter [2] und [3] nachgeschlagen werden.

Und nun?!
Nun kann man sich fleißig ans Übersetzen und Lokalisieren der einzelnen Seiten machen. Wie das geht ist hier beschrieben: Internationalisierung – User Guide

Update (10.10.2007):
Bei der obigen Konfiguration wird pro Sprachwechsel ein “L=”-Parameter an die URL angehängt. Das ist nicht schlimm, aber unschön. Wer das verhindern möchte fügt folgendes dem Maintemplate hinzu:

config.uniqueLinkVar = 1

Quellen:
[1] TemplaVoila Typo3 Wiki
[2] Frontend Localization Guide auf Typo3.org
[3] TSref – TypoScript Reference
[4] Sprachmenü in Typo3

Voraussetzungen:
Typo3 4.x
Einsatz von TemplaVoila für das Template

DeliciousTwitterFacebookLinkedInRedditSlashdotTechnorati FavoritesDiggShare
This entry was posted in Typo3. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">