Ü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:

SETUP
# 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:

CONSTANTS
# 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]
SETUP
# 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.

Besucher fanden diese Seite unter folgenden Suchbegriffen:

globalvar gp:l 1 · typoscript übersetzung · 1 l oder ein 1 0 l typo · globalvar gp:l · globalvar gp:l 0 im setup