Übersetzungen an zentraler Stelle
Motivation
Manchmal ist es unumgänglich, einzelne Texte direkt in ein TypoScript-Template zu schreiben, z.B. bei der Ausgabe eines Linktextes oder des title-Attributs eines Links oder einer Grafik.
Diese Texte nun direkt in den SETUP-Bereich des (oder der) Templates zu schreiben wäre sehr unflexibel: Ändert sich der Text und ist dieser an mehreren Stellen eingefügt, so besteht die Gefahr, die eine oder andere Stelle zu vergessen, ausserdem können sich Rechtschreibfehler einschleichen.
Ein weiteres Gegenargument ist, dass Übersetzungen bei einer mehrsprachigen Website nicht ohne Weiteres eingefügt werden können.
Negativbeispiel
Nehmen wir den Fall, dass wir einem Bild einen alternativen Text zuweisen möchten und das in drei Sprachen. Das Bild ist hierbei immer das selbe und wird direkt im SETUP unseres Root-Templates angezeigt.
Der unflexible und umständliche Weg wäre dieser:
# Zwei Grafiken erzeugen und jeweils alternative Texte in mehreren Sprachen zuweisen 10 = IMAGE 10.file = fileadmin/images/house.jpg # 1. Deutsch [globalVar = GP:L=0] 10.altText = Ein Haus [global] # 2. Englisch [globalVar = GP:L=1] 10.altText = A house [global] # 3. Französisch [globalVar = GP:L=2] 10.altText = Une maison [global] 20 = IMAGE 20.file = fileadmin/images/car.jpg # 1. Deutsch [globalVar = GP:L=0] 20.altText = Ein Auto [global] # 2. Englisch [globalVar = GP:L=1] 20.altText = A car [global] # 3. Französisch [globalVar = GP:L=2] 20.altText = Une voiture [global]
Umständlich ist das, weil die Conditions für alle Sprachen an jeder Stelle, an der dieses Bild verwendet wird, neu geschrieben werden müssen. Ausserdem ist der Code nicht besonders gut lesbar.
Best Practice
Der bessere Weg ist, die Sprachversionen als Konstanten im CONSTANTS-Bereich des Root-Templates zu definieren und diese im SETUP auf den Unterseiten einzubinden:
# Definition von Texten in mehreren Sprachen # Beachten Sie, dass die Namen der Konstanten in jeder Sprache gleich sind! # 1. Deutsch [globalVar = GP:L=0] alt_house = Ein Haus alt_car = Ein Auto # ... [global] # 2. Englisch [globalVar = GP:L=1] alt_house = A house alt_car = A car # ... [global] # 3. Französisch [globalVar = GP:L=2] alt_house = Une maison alt_car = Une voiture # ... [global]
# Verwendung der übersetzten Texte als Konstanten # Es wird die Übersetzung der jeweils aktiven Sprache eingefügt 10 = IMAGE 10.file = fileadmin/images/house.jpg 10.altText = {$alt_house} 20 = IMAGE 20.file = fileadmin/images/car.jpg 20.altText = {$alt_car}
Wie bereits erwähnt, lassen sich die übersetzten Texte in den Templates auf allen Unterseiten verwenden. Es können so nicht nur alternative Texte für Grafiken sondern z.B. auch Texte in Metatags oder im Footer einer Website ersetzt werden.