09.02.2009 AKTUELL // TYPO3
GESCHRIEBEN VON ALBRECHTK

Spätestens wenn man seine eigene Extension auch mehrsrpachig nutzbar machen will, stolpert man über die TYPO3-Variablen $GLOBALS['TSFE']->sys_language_uid bzw. $GLOBALS['TSFE']->sys_language_content. In beiden steckt scheinbar die ID der aktuell gewählten Sprache. Doch was ist der Unterschied der beiden Variablen?

Um der Sache nachzugehen, habe ich eine kleine Extension mit einem Plugin erstellt, das nichts anderes tut, als die beiden Werte auszugeben.

$content .= '$GLOBALS[\'TSFE\']->sys_language_uid : ';
$content .= $GLOBALS['TSFE']->sys_language_uid.'<br />';
$content .= '$GLOBALS[\'TSFE\']->sys_language_content : ';
$content .= $GLOBALS['TSFE']->sys_language_content.'<br />';

Anschließend habe ich dieses Plugin auf einer Seite ohne Übersetzung eingebettet. Die Seite existiert also nur in der Standardsprache.

Nur Standard-Sprache

Der Aufruf der Seite über das Frontend ergab ganz nach meiner Erwartung folgende Ausgabe:

$GLOBALS['TSFE']->sys_language_uid : 0
$GLOBALS['TSFE']->sys_language_content : 0

Alles klar – wir geben dem Frontend keinen Spachparameter, also wird die Standard-Sprache mit der ID 0 geladen.

Der Aufruf der gleichen Seite mit &L=1 eröffnete auch noch keine weiteren Überraschungen. Ergebnis war wieder

$GLOBALS['TSFE']->sys_language_uid : 0
$GLOBALS['TSFE']->sys_language_content : 0

So weit, so gut. Wir haben keine Sprache mit ID 1 angelegt. Also wird wieder die Standard-Sprache geladen.

Spannend wird es erst, wenn wir im TypoScript-Setup in das Sprachhandling eingreifen. Als ich folgende Einstellung gesetzt hatte …

config.sys_language_mode = content_fallback

… änderte sich bei einem Aufruf der Seite mit &L=1 plötzlich meine Ausgabe:

$GLOBALS['TSFE']->sys_language_uid : 1
$GLOBALS['TSFE']->sys_language_content : 0

Voilà: zwei unterschiedliche Werte! Die beiden Variablen $GLOBALS['TSFE']->sys_language_uid bzw. $GLOBALS['TSFE']->sys_language_content sind also keineswegs redundant, sondern beinhalten je nach Fall unterschiedliche Werte. Welche Variable man für seine Extension-Programmierung verwenden soll, lässt sich nicht pauschal sagen, sondern hängt wohl vom gewünschten Ziel ab.

0 Beiträge zu "TYPO3: Unterschied zwischen sys_language_uid und sys_language_content"
Lass uns Deine Meinung wissen