Sprachumschalter mit TypoScript

Kategorie: TYPO3
Publikationsdatum: 15.04.2011
Der folgende Sprachumschalter ist für eine One-Tree-Seitenstruktur ausgelegt. Er wird mittels TypoScript und RealURL realisiert.

Im TypoScript wird nun definiert, dass die Sprache über die $_GET-Variable L übergeben wird. Des Weiteren wird definiert dass die Variablen unique sein müssen und somit in der URL nur einmal vorkommen dürfen.
TypoScript
  1. # jede Variable darf nur einmal in der URL vorkommen
  2. config.uniqueLinkVars = 1
  3.  
  4. # $_GET-Variablen
  5. config.linkVars = L
Es gibt nun verschiedene Darstellungsmöglichkeiten. Entweder werden immer alle verfügbaren Sprachen angezeigt oder es werden nur die inaktiven Sprachen angezeigt.

Das erste Beispiel übernimmt den Fall, dass alle verfügbaren Sprachen angezeigt werden. Die Standardsprache ist bei uns Deutsch. Weiters verfügbar ist die Sprache Englisch.
TypoScript
  1. ##################################################
  2. # Standardsprache definieren
  3. ##################################################
  4. config.sys_language_uid = 0
  5. config.language = de
  6. config.locale_all = de_DE
  7.  
  8. ##################################################
  9. # Falls es keine Uebersetzung gibt, zeige die Standardsprache
  10. ##################################################
  11. config.sys_language_mode = content_fallback
  12. config.sys_language_overlay = hideNonTranslated
  13.  
  14. ##################################################
  15. # Sprachumschalter
  16. ##################################################
  17. lib.lang.4 = COA
  18. lib.lang.4.wrap = <div class="lang-nav"> | </div>
  19.  
  20. # Deutsch
  21. lib.lang.4.1 = TEXT
  22. lib.lang.4.1.value = <strong>Deutsch</strong>
  23. lib.lang.4.1.typolink.parameter.data = page:uid
  24. lib.lang.4.1.typolink.additionalParams = &L=0
  25. lib.lang.4.1.typolink.ATagParams = class=first lang=de xml:lang=de
  26.  
  27. # Trennstrich
  28. lib.lang.4.2 = TEXT
  29. lib.lang.4.2.value = &nbsp;/&nbsp;
  30.  
  31. # Englisch
  32. lib.lang.4.3 = TEXT
  33. lib.lang.4.3.value = English
  34. lib.lang.4.3.typolink.parameter.data = page:uid
  35. lib.lang.4.3.typolink.additionalParams = &L=1
  36. lib.lang.4.3.typolink.ATagParams = class=first lang=en xml:lang=en
  37.  
  38. ##################################################
  39. # Englisch ist aktiv
  40. ##################################################
  41. [globalVar = GP:L=1]
  42. config.sys_language_uid = 1
  43. config.language = en
  44. config.locale_all = en_GB
  45.  
  46. lib.lang.4.1.value = Deutsch
  47. lib.lang.4.3.value = <strong>English</strong>
  48. [global]
Das zweite Beispiel übernimmt den Fall, dass nur die inaktiven Sprachen angezeigt werden. Die Standardsprache ist bei uns Deutsch. Weiters verfügbar ist die Sprache Englisch.
TypoScript
  1. ##################################################
  2. # Standardsprache definieren
  3. ##################################################
  4. config.sys_language_uid = 0
  5. config.language = de
  6. config.locale_all = de_DE
  7.  
  8. ##################################################
  9. # Falls es keine Uebersetzung gibt, zeige die Standardsprache
  10. ##################################################
  11. config.sys_language_mode = content_fallback
  12. config.sys_language_overlay = hideNonTranslated
  13.  
  14. ##################################################
  15. # Sprachumschalter
  16. ##################################################
  17. lib.lang.4 = COA
  18. lib.lang.4.wrap = <div class="lang-nav"> | </div>
  19.  
  20. # Deutsch: aktiv - Englisch: inaktiv
  21. lib.lang.4.1 = TEXT
  22. lib.lang.4.1.value = English
  23. lib.lang.4.1.typolink.parameter.data = page:uid
  24. lib.lang.4.1.typolink.additionalParams = &L=1
  25. lib.lang.4.1.typolink.ATagParams = class=first lang=en xml:lang=en
  26.  
  27. ##################################################
  28. # Englisch: aktiv - Deutsch: inaktiv
  29. ##################################################
  30. [globalVar = GP:L=1]
  31. config.sys_language_uid = 1
  32. config.language = en
  33. config.locale_all = en_GB
  34.  
  35. lib.lang.4.1.value = Deutsch
  36. lib.lang.4.1.typolink.additionalParams = &L=0
  37. lib.lang.4.1.typolink.ATagParams = class=first lang=de xml:lang=de
  38. [global]
Anschließend für beide Sprachumschalter folgende Konfiguration in dei Datei typo3conf/ext/realurl/ext_localconf.php schreiben. Man kann aber auch eine neue Datei anlegen typo3conf/realurl_conf.php und die Konfiuration dort einfügen. Vorteil der neuen Datei ist, dass man bei einem Update der RealURL-Erweiterung keine Problem bekommt, da das Update nur auf das Verzeichnis typo3conf/ext/realurl/ zugreift.
PHP
  1. $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['preVars'] = array(
  2. array
  3. ( 'GETvar' => 'L',
  4. 'valueMap' => array
  5. ( 'de' => '0',
  6. 'en' => '1'
  7. ),
  8. 'valueDefault' => 'de',
  9. #'noMatch' => 'bypass',
  10. ),
  11. );
Stichwörter: Sprachumschalter, TypoScript, TYPO3
 
 
NACH OBEN