Zum Inhalt springen

Abfrage nach Sprache in Typoscript (Template-Script)

Erstellt am 28. September 2004 · 2 Antworten · letzte Antwort am 28. September 2004

Tags: Frage

milhouse ·

Hallo,

ich habe eine mehrsprachige Seite. Es funktioniert auch alles bestens, allerdings habe ich ein Problem mit Texten, die im Typoscript (Template-Script) gesetzt werden. Zum Beispiel setzte ich ein Eingabefeld in Typoscript, hinter dem ein Text steht. Jetzt soll dieser Text natürlich auch in anderen Sprachen übersetzt dastehen. Dafür benötige ich aber eine Abfrage, damit ich je nach Sprach-ID den Text setzen kann... wie funktioniert sowas?

Hier setze ich die Sprache im Typoscript:

# Sprachvariable initialisieren
config.linkVars = sprache
#####################
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
#####################
[globalVar = GP:sprache=1]
config.sys_language_uid = 1
config.language = fr
config.locale_all = fr_FR
[global]
#####################
[globalVar = GP:sprache=2]
config.sys_language_uid = 2
config.language = it
config.locale_all = it_IT
[global]
#####################
[globalVar = GP:sprache=3]
config.sys_language_uid = 3
config.language = en
config.locale_all = english
[global]
#####################

wie kann ich jetzt innerhalb eines Marks die Variable abfragen und je nachdem den Text setzen?

Danke für eure Hilfe.

jenses ·

Hallo !

Ich empfehle dir erst einmal, die Variable "sprache" durch "L" zu ersetzen.
L ist Quasi-Standard und wird auch in vielen Extensions benutzt.
Du ersparst dir viel Ärger und Code-Anpassung, wenn du dich auch daran hälst.

1. Sprachdeklaration im TS muß vollständig so aussehen :

# Sprachvariable initialisieren 
config.linkVars = L
##################### 
[globalVar = GP:L=0] 
config.sys_language_uid = 0 
config.language = de 
config.locale_all = de_DE 
[global] 
##################### 
[globalVar = GP:L=1] 
config.sys_language_uid = 1 
config.language = fr 
config.locale_all = fr_FR 
[global] 
##################### 
[globalVar = GP:L=2] 
config.sys_language_uid = 2 
config.language = it 
config.locale_all = it_IT 
[global] 
##################### 
[globalVar = GP:L=3] 
config.sys_language_uid = 3 
config.language = en 
config.locale_all = english 
[global] 
#####################

In deinem Beispiel wurde "sprache" bei deutsch kein Wert zugewiesen.

2. Die sprachabhängige Ersetzung des Markers machst du so :

marks.MARKER = TEXT
marks.MARKER.value = HEADER
marks.MARKER.lang.de = Überschrift

Bei deutsch wird "Überschrift" ausgegeben, bei allen anderen Sprachen "HEADER".

Du kannst natürlich auch den Text für jede Sprache einzeln angeben :

marks.MARKER = TEXT
marks.MARKER.lang.de = sauerkraut
marks.MARKER.lang.fr = froschschenkel
marks.MARKER.lang.it = spaghetti
marks.MARKER.lang.en = steak medium

viele Grüße
jenses