<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.161.161.224</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.161.161.224"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/84.161.161.224"/>
	<updated>2026-05-06T18:56:00Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=360</id>
		<title>Typo3 - Mehrsprachige Seiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=360"/>
		<updated>2006-03-30T13:13:58Z</updated>

		<summary type="html">&lt;p&gt;84.161.161.224: /* Schritt für Schritt Anleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===2 Konzepte===&lt;br /&gt;
Um Mehrsprachigkeit zu realisieren gibt es zwei Ansätze:&lt;br /&gt;
# Multitree - Mehrere Navigationsbäume (für jede Sprache einen). In den Navigationsbäumen müssen die Templates entsprechend Variiert werden.&lt;br /&gt;
# One Tree Fits All - Mehrsprachigkeit mit den Typo3 Bordmitteln (der moderne Ansatz). Hierbei können im System mehrere Sprachen angelegt werden. Jede Sprache hat nachher in der Seitenansicht eine eigene Spalte. So hat man eine gute Übersicht welche Inhaltselemente bereits übersetzt sind.&lt;br /&gt;
&lt;br /&gt;
===Welcher Ansatz ist der Richtige ?===&lt;br /&gt;
Kommt drauf an. Wer soll damit klar kommen? Wieviele Seiten sind es? Werden alle Seiten übersetzt?&lt;br /&gt;
&lt;br /&gt;
===TypoScript Anpassungen===&lt;br /&gt;
Damit das System merkt in welcher Sprache es sich z.Zt. befindet wird der URL ein Parameter mitgegeben. Allgemein ist der Parameter L vereinbart. Das sollte auch eingehalten werden weil einige Extensions nur mit L als Variable arbeiten. &lt;br /&gt;
&lt;br /&gt;
Damit das ganze funktioniert müssen Anpassungen mit TypoScript gemacht werden.&lt;br /&gt;
&lt;br /&gt;
Am besten ein Zusätzliches Basis Template anlegen. Für eine deutsch-englische Seite kann das Setup z.B. so aussehen:&lt;br /&gt;
&lt;br /&gt;
 ### Parameter L definieren 0 soll die default Sprache (deutsch) sein ###&lt;br /&gt;
 config.linkVars = L&lt;br /&gt;
 config.sys_language_uid = 0&lt;br /&gt;
 config.language = de&lt;br /&gt;
 config.locale_all = de_DE&lt;br /&gt;
 &lt;br /&gt;
 # Testen ob die Englische Seite gewünscht wird. In einem CASE Konstrukt wird dazu geprüft&lt;br /&gt;
 # ob die globale Variable L=1 ist&lt;br /&gt;
 [globalVar = GP:L = 1]&lt;br /&gt;
    config.sys_language_uid = 1&lt;br /&gt;
    config.language = en&lt;br /&gt;
    config.locale_all = english&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erläuterung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Im ersten Teil wird die globale Variable L definiert und dann Deutsch als default-Sprache festgelegt und mit L=0 gleichgesetzt. Danach wird getestet ob der Parameter L mit dem Wert 1 übergeben wird. Ist das der Fall wird die Systemsprache auf englisch gesetzt. Das führt später auch dazu, daß die Inhalte aus der Englischen Spalte ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch ein Auswahlmenü mit dem sich die Sprache auf der Webseite auswählen läßt.&lt;br /&gt;
&lt;br /&gt;
===Sprachauswahlmenü programmieren===&lt;br /&gt;
In der Subpart definition (workOnSubparts) des Haupttemplates binden wir ein PHP-Skript ein, dass dafür sorgt, daß an der Stelle des Markers (hier LANGUAGE) das Menü eingebunden wird und das bei Klicks auf einen Link immer die richtige Nummer für die Sprache an die URL angehängt wird.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   #multilanguage-flags&lt;br /&gt;
   marks.LANGUAGE=TEXT&lt;br /&gt;
   marks.LANGUAGE=&amp;amp;nbsp;&lt;br /&gt;
   marks.LANGUAGE=PHP_SCRIPT&lt;br /&gt;
   marks.LANGUAGE.file=fileadmin/scripts/languageMenu_d-e.php&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;php-Skript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
 * languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
 *&lt;br /&gt;
 * @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
 * @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
 */&lt;br /&gt;
 // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.&lt;br /&gt;
 $query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
 $res = mysql(TYPO3_db,$query);&lt;br /&gt;
 $langArr=array();&lt;br /&gt;
 while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
 $langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
 // TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
 // is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
 $pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
 // Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
 // If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
 $flags = array();&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==0?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==1?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
 // Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
 $content = &amp;#039;&amp;lt;span class=&amp;quot;language_selector&amp;quot;&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
===Rootline für mehrere Sprachen einrichten===&lt;br /&gt;
 temp.rootline = HMENU&lt;br /&gt;
 temp.rootline.special = rootline&lt;br /&gt;
 temp.rootline.special.range = 0|-1&lt;br /&gt;
 temp.rootline.wrap = Sie sind hier:&lt;br /&gt;
 temp.rootline.1 = TMENU&lt;br /&gt;
 temp.rootline.1 {&lt;br /&gt;
    target = _top&lt;br /&gt;
    NO.linkWrap = || /&lt;br /&gt;
 }&lt;br /&gt;
 # evt. bestimte Seiten ausblenden...&lt;br /&gt;
 temp.rootline.excludeUidList =&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 3&lt;br /&gt;
 [globalVar = GP:L = 3]&lt;br /&gt;
    temp.rootline.wrap = You are here:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 4&lt;br /&gt;
 [globalVar = GP:L = 4]&lt;br /&gt;
    temp.rootline.wrap = bla bla:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID X (X = beliebige zahl)&lt;br /&gt;
 [globalVar = GP:L = X]&lt;br /&gt;
    temp.rootline.wrap = hierher haben sie sich verirrt:&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
=== Ein Beispiel für ein vollständiges (zweisprachiges) TypoScript ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;nach oben&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = Keine Treffer.&lt;br /&gt;
   20.next.value=nächste&lt;br /&gt;
   20.prev.value=vorherige&lt;br /&gt;
   30.dataArray.10.label = Suche nach:&lt;br /&gt;
   30.dataArray.20.label = Suche in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Überschriften und Schlüsselworten&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Seiteninhalten&lt;br /&gt;
   30.dataArray.40.value = Suche starten&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
# English language, sys_language.uid = 1&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
#  Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;to top&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion - englisch&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = No hits.&lt;br /&gt;
   20.next.value=next&lt;br /&gt;
   20.prev.value=previous&lt;br /&gt;
   30.dataArray.10.label = Searchwords:&lt;br /&gt;
   30.dataArray.20.label = Search in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Headlines &amp;amp; Keywords&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Content&lt;br /&gt;
   30.dataArray.40.value = Start search&lt;br /&gt;
}&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Schritt für Schritt Anleitung ===&lt;br /&gt;
* Mindestens eine weitere Sprache anlegen (Listenansicht - Weltkugel)&lt;br /&gt;
* TypoScript Sprachvariable und Template anpassen:&lt;br /&gt;
* Benötigte Skripte und Bilder(Flaggen) Uploaden&amp;lt;br&amp;gt;z.B. mulitlan_d-e.php, flag_uk.gif...&lt;br /&gt;
* Marker im TypoScript Template anlegen:z.B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Multilanguage-Navi ###&lt;br /&gt;
  marks.LANGUAGE=PHP_SCRIPT&lt;br /&gt;
  marks.LANGUAGE.file=fileadmin/scripts/languageMenu_e-d.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Marker im HTML-Template einbauen. Am besten in divs damit man es per CSS gestalten kann&lt;br /&gt;
 &amp;lt;div id=&amp;quot;languageSelector&amp;quot;&amp;gt;###LANGUAGE###&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Probleme bei mehrsprachigen Seiten ===&lt;br /&gt;
Lösungen bei verschiedenen Problemen mit mehrsprachigen Seiten gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Probleme mit mehrsprachigen Seiten lösen]]&lt;br /&gt;
&lt;br /&gt;
=== Skriptsammlung ===&lt;br /&gt;
==== php-Sprachskript ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
* languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
*&lt;br /&gt;
* @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
* @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
*/&lt;br /&gt;
// First, select all pages_language_overlay records on the current page. &lt;br /&gt;
// Each represents a possibility for a language.&lt;br /&gt;
$query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
$res = mysql(TYPO3_db,$query);&lt;br /&gt;
$langArr=array();&lt;br /&gt;
while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
$langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
// TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
// is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
//$pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
$pointer = &amp;quot;&amp;quot;;&lt;br /&gt;
// Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
// If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
$flags = array();&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; title=&amp;quot;deutsch&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; title=&amp;quot;english&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
$content = &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TypoScript multilanguage Extension ====&lt;br /&gt;
ext_multilang_d-e.tmpl&lt;br /&gt;
&lt;br /&gt;
Setup:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
### ohne Sprachauswahl ###&lt;br /&gt;
&lt;br /&gt;
# Standardsprache deutsch wird festgelegt &lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
page.stylesheet = fileadmin/template/css/main.css&lt;br /&gt;
&lt;br /&gt;
### DEUTSCH ###&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;nach oben&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
### ENGLISCH ###&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main_en.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;to top&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#...&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.161.161.224</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=239</id>
		<title>Typo3 - Mehrsprachige Seiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=239"/>
		<updated>2006-03-30T13:12:34Z</updated>

		<summary type="html">&lt;p&gt;84.161.161.224: /* Schritt für Schritt Anleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===2 Konzepte===&lt;br /&gt;
Um Mehrsprachigkeit zu realisieren gibt es zwei Ansätze:&lt;br /&gt;
# Multitree - Mehrere Navigationsbäume (für jede Sprache einen). In den Navigationsbäumen müssen die Templates entsprechend Variiert werden.&lt;br /&gt;
# One Tree Fits All - Mehrsprachigkeit mit den Typo3 Bordmitteln (der moderne Ansatz). Hierbei können im System mehrere Sprachen angelegt werden. Jede Sprache hat nachher in der Seitenansicht eine eigene Spalte. So hat man eine gute Übersicht welche Inhaltselemente bereits übersetzt sind.&lt;br /&gt;
&lt;br /&gt;
===Welcher Ansatz ist der Richtige ?===&lt;br /&gt;
Kommt drauf an. Wer soll damit klar kommen? Wieviele Seiten sind es? Werden alle Seiten übersetzt?&lt;br /&gt;
&lt;br /&gt;
===TypoScript Anpassungen===&lt;br /&gt;
Damit das System merkt in welcher Sprache es sich z.Zt. befindet wird der URL ein Parameter mitgegeben. Allgemein ist der Parameter L vereinbart. Das sollte auch eingehalten werden weil einige Extensions nur mit L als Variable arbeiten. &lt;br /&gt;
&lt;br /&gt;
Damit das ganze funktioniert müssen Anpassungen mit TypoScript gemacht werden.&lt;br /&gt;
&lt;br /&gt;
Am besten ein Zusätzliches Basis Template anlegen. Für eine deutsch-englische Seite kann das Setup z.B. so aussehen:&lt;br /&gt;
&lt;br /&gt;
 ### Parameter L definieren 0 soll die default Sprache (deutsch) sein ###&lt;br /&gt;
 config.linkVars = L&lt;br /&gt;
 config.sys_language_uid = 0&lt;br /&gt;
 config.language = de&lt;br /&gt;
 config.locale_all = de_DE&lt;br /&gt;
 &lt;br /&gt;
 # Testen ob die Englische Seite gewünscht wird. In einem CASE Konstrukt wird dazu geprüft&lt;br /&gt;
 # ob die globale Variable L=1 ist&lt;br /&gt;
 [globalVar = GP:L = 1]&lt;br /&gt;
    config.sys_language_uid = 1&lt;br /&gt;
    config.language = en&lt;br /&gt;
    config.locale_all = english&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erläuterung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Im ersten Teil wird die globale Variable L definiert und dann Deutsch als default-Sprache festgelegt und mit L=0 gleichgesetzt. Danach wird getestet ob der Parameter L mit dem Wert 1 übergeben wird. Ist das der Fall wird die Systemsprache auf englisch gesetzt. Das führt später auch dazu, daß die Inhalte aus der Englischen Spalte ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch ein Auswahlmenü mit dem sich die Sprache auf der Webseite auswählen läßt.&lt;br /&gt;
&lt;br /&gt;
===Sprachauswahlmenü programmieren===&lt;br /&gt;
In der Subpart definition (workOnSubparts) des Haupttemplates binden wir ein PHP-Skript ein, dass dafür sorgt, daß an der Stelle des Markers (hier LANGUAGE) das Menü eingebunden wird und das bei Klicks auf einen Link immer die richtige Nummer für die Sprache an die URL angehängt wird.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   #multilanguage-flags&lt;br /&gt;
   marks.LANGUAGE=TEXT&lt;br /&gt;
   marks.LANGUAGE=&amp;amp;nbsp;&lt;br /&gt;
   marks.LANGUAGE=PHP_SCRIPT&lt;br /&gt;
   marks.LANGUAGE.file=fileadmin/scripts/languageMenu_d-e.php&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;php-Skript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
 * languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
 *&lt;br /&gt;
 * @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
 * @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
 */&lt;br /&gt;
 // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.&lt;br /&gt;
 $query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
 $res = mysql(TYPO3_db,$query);&lt;br /&gt;
 $langArr=array();&lt;br /&gt;
 while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
 $langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
 // TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
 // is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
 $pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
 // Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
 // If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
 $flags = array();&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==0?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==1?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
 // Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
 $content = &amp;#039;&amp;lt;span class=&amp;quot;language_selector&amp;quot;&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
===Rootline für mehrere Sprachen einrichten===&lt;br /&gt;
 temp.rootline = HMENU&lt;br /&gt;
 temp.rootline.special = rootline&lt;br /&gt;
 temp.rootline.special.range = 0|-1&lt;br /&gt;
 temp.rootline.wrap = Sie sind hier:&lt;br /&gt;
 temp.rootline.1 = TMENU&lt;br /&gt;
 temp.rootline.1 {&lt;br /&gt;
    target = _top&lt;br /&gt;
    NO.linkWrap = || /&lt;br /&gt;
 }&lt;br /&gt;
 # evt. bestimte Seiten ausblenden...&lt;br /&gt;
 temp.rootline.excludeUidList =&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 3&lt;br /&gt;
 [globalVar = GP:L = 3]&lt;br /&gt;
    temp.rootline.wrap = You are here:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 4&lt;br /&gt;
 [globalVar = GP:L = 4]&lt;br /&gt;
    temp.rootline.wrap = bla bla:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID X (X = beliebige zahl)&lt;br /&gt;
 [globalVar = GP:L = X]&lt;br /&gt;
    temp.rootline.wrap = hierher haben sie sich verirrt:&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
=== Ein Beispiel für ein vollständiges (zweisprachiges) TypoScript ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;nach oben&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = Keine Treffer.&lt;br /&gt;
   20.next.value=nächste&lt;br /&gt;
   20.prev.value=vorherige&lt;br /&gt;
   30.dataArray.10.label = Suche nach:&lt;br /&gt;
   30.dataArray.20.label = Suche in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Überschriften und Schlüsselworten&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Seiteninhalten&lt;br /&gt;
   30.dataArray.40.value = Suche starten&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
# English language, sys_language.uid = 1&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
#  Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;to top&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion - englisch&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = No hits.&lt;br /&gt;
   20.next.value=next&lt;br /&gt;
   20.prev.value=previous&lt;br /&gt;
   30.dataArray.10.label = Searchwords:&lt;br /&gt;
   30.dataArray.20.label = Search in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Headlines &amp;amp; Keywords&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Content&lt;br /&gt;
   30.dataArray.40.value = Start search&lt;br /&gt;
}&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Schritt für Schritt Anleitung ===&lt;br /&gt;
# Mindestens eine weitere Sprache anlegen (Listenansicht - Weltkugel)&lt;br /&gt;
# TypoScript Sprachvariable und Template anpassen:&lt;br /&gt;
# Benötigte Skripte und Bilder(Flaggen) Uploaden&amp;lt;br&amp;gt;z.B. mulitlan_d-e.php, flag_uk.gif...&lt;br /&gt;
# Marker im TypoScript Template anlegen:&lt;br /&gt;
z.B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Multilanguage-Navi ###&lt;br /&gt;
  marks.LANGUAGE=PHP_SCRIPT&lt;br /&gt;
  marks.LANGUAGE.file=fileadmin/scripts/languageMenu_e-d.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Marker im HTML-Template einbauen. Am besten in divs damit man es per CSS gestalten kann&lt;br /&gt;
 &amp;lt;div id=&amp;quot;languageSelector&amp;quot;&amp;gt;###LANGUAGE###&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Probleme bei mehrsprachigen Seiten ===&lt;br /&gt;
Lösungen bei verschiedenen Problemen mit mehrsprachigen Seiten gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Probleme mit mehrsprachigen Seiten lösen]]&lt;br /&gt;
&lt;br /&gt;
=== Skriptsammlung ===&lt;br /&gt;
==== php-Sprachskript ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
* languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
*&lt;br /&gt;
* @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
* @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
*/&lt;br /&gt;
// First, select all pages_language_overlay records on the current page. &lt;br /&gt;
// Each represents a possibility for a language.&lt;br /&gt;
$query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
$res = mysql(TYPO3_db,$query);&lt;br /&gt;
$langArr=array();&lt;br /&gt;
while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
$langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
// TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
// is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
//$pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
$pointer = &amp;quot;&amp;quot;;&lt;br /&gt;
// Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
// If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
$flags = array();&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; title=&amp;quot;deutsch&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; title=&amp;quot;english&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
$content = &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TypoScript multilanguage Extension ====&lt;br /&gt;
ext_multilang_d-e.tmpl&lt;br /&gt;
&lt;br /&gt;
Setup:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
### ohne Sprachauswahl ###&lt;br /&gt;
&lt;br /&gt;
# Standardsprache deutsch wird festgelegt &lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
page.stylesheet = fileadmin/template/css/main.css&lt;br /&gt;
&lt;br /&gt;
### DEUTSCH ###&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;nach oben&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
### ENGLISCH ###&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main_en.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;to top&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#...&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.161.161.224</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=238</id>
		<title>Typo3 - Mehrsprachige Seiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=238"/>
		<updated>2006-03-30T13:01:29Z</updated>

		<summary type="html">&lt;p&gt;84.161.161.224: /* Skriptsammlung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===2 Konzepte===&lt;br /&gt;
Um Mehrsprachigkeit zu realisieren gibt es zwei Ansätze:&lt;br /&gt;
# Multitree - Mehrere Navigationsbäume (für jede Sprache einen). In den Navigationsbäumen müssen die Templates entsprechend Variiert werden.&lt;br /&gt;
# One Tree Fits All - Mehrsprachigkeit mit den Typo3 Bordmitteln (der moderne Ansatz). Hierbei können im System mehrere Sprachen angelegt werden. Jede Sprache hat nachher in der Seitenansicht eine eigene Spalte. So hat man eine gute Übersicht welche Inhaltselemente bereits übersetzt sind.&lt;br /&gt;
&lt;br /&gt;
===Welcher Ansatz ist der Richtige ?===&lt;br /&gt;
Kommt drauf an. Wer soll damit klar kommen? Wieviele Seiten sind es? Werden alle Seiten übersetzt?&lt;br /&gt;
&lt;br /&gt;
===TypoScript Anpassungen===&lt;br /&gt;
Damit das System merkt in welcher Sprache es sich z.Zt. befindet wird der URL ein Parameter mitgegeben. Allgemein ist der Parameter L vereinbart. Das sollte auch eingehalten werden weil einige Extensions nur mit L als Variable arbeiten. &lt;br /&gt;
&lt;br /&gt;
Damit das ganze funktioniert müssen Anpassungen mit TypoScript gemacht werden.&lt;br /&gt;
&lt;br /&gt;
Am besten ein Zusätzliches Basis Template anlegen. Für eine deutsch-englische Seite kann das Setup z.B. so aussehen:&lt;br /&gt;
&lt;br /&gt;
 ### Parameter L definieren 0 soll die default Sprache (deutsch) sein ###&lt;br /&gt;
 config.linkVars = L&lt;br /&gt;
 config.sys_language_uid = 0&lt;br /&gt;
 config.language = de&lt;br /&gt;
 config.locale_all = de_DE&lt;br /&gt;
 &lt;br /&gt;
 # Testen ob die Englische Seite gewünscht wird. In einem CASE Konstrukt wird dazu geprüft&lt;br /&gt;
 # ob die globale Variable L=1 ist&lt;br /&gt;
 [globalVar = GP:L = 1]&lt;br /&gt;
    config.sys_language_uid = 1&lt;br /&gt;
    config.language = en&lt;br /&gt;
    config.locale_all = english&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erläuterung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Im ersten Teil wird die globale Variable L definiert und dann Deutsch als default-Sprache festgelegt und mit L=0 gleichgesetzt. Danach wird getestet ob der Parameter L mit dem Wert 1 übergeben wird. Ist das der Fall wird die Systemsprache auf englisch gesetzt. Das führt später auch dazu, daß die Inhalte aus der Englischen Spalte ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch ein Auswahlmenü mit dem sich die Sprache auf der Webseite auswählen läßt.&lt;br /&gt;
&lt;br /&gt;
===Sprachauswahlmenü programmieren===&lt;br /&gt;
In der Subpart definition (workOnSubparts) des Haupttemplates binden wir ein PHP-Skript ein, dass dafür sorgt, daß an der Stelle des Markers (hier LANGUAGE) das Menü eingebunden wird und das bei Klicks auf einen Link immer die richtige Nummer für die Sprache an die URL angehängt wird.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   #multilanguage-flags&lt;br /&gt;
   marks.LANGUAGE=TEXT&lt;br /&gt;
   marks.LANGUAGE=&amp;amp;nbsp;&lt;br /&gt;
   marks.LANGUAGE=PHP_SCRIPT&lt;br /&gt;
   marks.LANGUAGE.file=fileadmin/scripts/languageMenu_d-e.php&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;php-Skript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
 * languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
 *&lt;br /&gt;
 * @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
 * @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
 */&lt;br /&gt;
 // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.&lt;br /&gt;
 $query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
 $res = mysql(TYPO3_db,$query);&lt;br /&gt;
 $langArr=array();&lt;br /&gt;
 while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
 $langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
 // TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
 // is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
 $pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
 // Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
 // If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
 $flags = array();&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==0?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==1?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
 // Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
 $content = &amp;#039;&amp;lt;span class=&amp;quot;language_selector&amp;quot;&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
===Rootline für mehrere Sprachen einrichten===&lt;br /&gt;
 temp.rootline = HMENU&lt;br /&gt;
 temp.rootline.special = rootline&lt;br /&gt;
 temp.rootline.special.range = 0|-1&lt;br /&gt;
 temp.rootline.wrap = Sie sind hier:&lt;br /&gt;
 temp.rootline.1 = TMENU&lt;br /&gt;
 temp.rootline.1 {&lt;br /&gt;
    target = _top&lt;br /&gt;
    NO.linkWrap = || /&lt;br /&gt;
 }&lt;br /&gt;
 # evt. bestimte Seiten ausblenden...&lt;br /&gt;
 temp.rootline.excludeUidList =&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 3&lt;br /&gt;
 [globalVar = GP:L = 3]&lt;br /&gt;
    temp.rootline.wrap = You are here:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 4&lt;br /&gt;
 [globalVar = GP:L = 4]&lt;br /&gt;
    temp.rootline.wrap = bla bla:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID X (X = beliebige zahl)&lt;br /&gt;
 [globalVar = GP:L = X]&lt;br /&gt;
    temp.rootline.wrap = hierher haben sie sich verirrt:&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
=== Ein Beispiel für ein vollständiges (zweisprachiges) TypoScript ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;nach oben&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = Keine Treffer.&lt;br /&gt;
   20.next.value=nächste&lt;br /&gt;
   20.prev.value=vorherige&lt;br /&gt;
   30.dataArray.10.label = Suche nach:&lt;br /&gt;
   30.dataArray.20.label = Suche in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Überschriften und Schlüsselworten&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Seiteninhalten&lt;br /&gt;
   30.dataArray.40.value = Suche starten&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
# English language, sys_language.uid = 1&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
#  Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;to top&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion - englisch&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = No hits.&lt;br /&gt;
   20.next.value=next&lt;br /&gt;
   20.prev.value=previous&lt;br /&gt;
   30.dataArray.10.label = Searchwords:&lt;br /&gt;
   30.dataArray.20.label = Search in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Headlines &amp;amp; Keywords&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Content&lt;br /&gt;
   30.dataArray.40.value = Start search&lt;br /&gt;
}&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Schritt für Schritt Anleitung ===&lt;br /&gt;
1. Mindestens eine weitere Sprache anlegen (Listenansicht - Weltkugel)&lt;br /&gt;
2. TypoScript Sprachvariable und Template anpassen:&lt;br /&gt;
&lt;br /&gt;
3. Benötigte Skripte und Bilder(Flaggen) Uploaden&lt;br /&gt;
&lt;br /&gt;
2. Marker im TypoScript Template anlegen:&lt;br /&gt;
3. Marker im Template einbauen. Am besten in divs damit man es per CSS gestalten kann&lt;br /&gt;
 &amp;lt;div id=&amp;quot;languageSelector&amp;quot;&amp;gt;###LANGUAGE###&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Probleme bei mehrsprachigen Seiten ===&lt;br /&gt;
Lösungen bei verschiedenen Problemen mit mehrsprachigen Seiten gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Probleme mit mehrsprachigen Seiten lösen]]&lt;br /&gt;
&lt;br /&gt;
=== Skriptsammlung ===&lt;br /&gt;
==== php-Sprachskript ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
* languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
*&lt;br /&gt;
* @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
* @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
*/&lt;br /&gt;
// First, select all pages_language_overlay records on the current page. &lt;br /&gt;
// Each represents a possibility for a language.&lt;br /&gt;
$query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
$res = mysql(TYPO3_db,$query);&lt;br /&gt;
$langArr=array();&lt;br /&gt;
while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
$langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
// TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
// is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
//$pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
$pointer = &amp;quot;&amp;quot;;&lt;br /&gt;
// Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
// If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
$flags = array();&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; title=&amp;quot;deutsch&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; title=&amp;quot;english&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
$content = &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TypoScript multilanguage Extension ====&lt;br /&gt;
ext_multilang_d-e.tmpl&lt;br /&gt;
&lt;br /&gt;
Setup:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
### ohne Sprachauswahl ###&lt;br /&gt;
&lt;br /&gt;
# Standardsprache deutsch wird festgelegt &lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
page.stylesheet = fileadmin/template/css/main.css&lt;br /&gt;
&lt;br /&gt;
### DEUTSCH ###&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;nach oben&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
### ENGLISCH ###&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main_en.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;to top&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#...&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.161.161.224</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=237</id>
		<title>Typo3 - Mehrsprachige Seiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=237"/>
		<updated>2006-03-30T13:00:07Z</updated>

		<summary type="html">&lt;p&gt;84.161.161.224: /* Schritt für Schritt Anleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===2 Konzepte===&lt;br /&gt;
Um Mehrsprachigkeit zu realisieren gibt es zwei Ansätze:&lt;br /&gt;
# Multitree - Mehrere Navigationsbäume (für jede Sprache einen). In den Navigationsbäumen müssen die Templates entsprechend Variiert werden.&lt;br /&gt;
# One Tree Fits All - Mehrsprachigkeit mit den Typo3 Bordmitteln (der moderne Ansatz). Hierbei können im System mehrere Sprachen angelegt werden. Jede Sprache hat nachher in der Seitenansicht eine eigene Spalte. So hat man eine gute Übersicht welche Inhaltselemente bereits übersetzt sind.&lt;br /&gt;
&lt;br /&gt;
===Welcher Ansatz ist der Richtige ?===&lt;br /&gt;
Kommt drauf an. Wer soll damit klar kommen? Wieviele Seiten sind es? Werden alle Seiten übersetzt?&lt;br /&gt;
&lt;br /&gt;
===TypoScript Anpassungen===&lt;br /&gt;
Damit das System merkt in welcher Sprache es sich z.Zt. befindet wird der URL ein Parameter mitgegeben. Allgemein ist der Parameter L vereinbart. Das sollte auch eingehalten werden weil einige Extensions nur mit L als Variable arbeiten. &lt;br /&gt;
&lt;br /&gt;
Damit das ganze funktioniert müssen Anpassungen mit TypoScript gemacht werden.&lt;br /&gt;
&lt;br /&gt;
Am besten ein Zusätzliches Basis Template anlegen. Für eine deutsch-englische Seite kann das Setup z.B. so aussehen:&lt;br /&gt;
&lt;br /&gt;
 ### Parameter L definieren 0 soll die default Sprache (deutsch) sein ###&lt;br /&gt;
 config.linkVars = L&lt;br /&gt;
 config.sys_language_uid = 0&lt;br /&gt;
 config.language = de&lt;br /&gt;
 config.locale_all = de_DE&lt;br /&gt;
 &lt;br /&gt;
 # Testen ob die Englische Seite gewünscht wird. In einem CASE Konstrukt wird dazu geprüft&lt;br /&gt;
 # ob die globale Variable L=1 ist&lt;br /&gt;
 [globalVar = GP:L = 1]&lt;br /&gt;
    config.sys_language_uid = 1&lt;br /&gt;
    config.language = en&lt;br /&gt;
    config.locale_all = english&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erläuterung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Im ersten Teil wird die globale Variable L definiert und dann Deutsch als default-Sprache festgelegt und mit L=0 gleichgesetzt. Danach wird getestet ob der Parameter L mit dem Wert 1 übergeben wird. Ist das der Fall wird die Systemsprache auf englisch gesetzt. Das führt später auch dazu, daß die Inhalte aus der Englischen Spalte ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch ein Auswahlmenü mit dem sich die Sprache auf der Webseite auswählen läßt.&lt;br /&gt;
&lt;br /&gt;
===Sprachauswahlmenü programmieren===&lt;br /&gt;
In der Subpart definition (workOnSubparts) des Haupttemplates binden wir ein PHP-Skript ein, dass dafür sorgt, daß an der Stelle des Markers (hier LANGUAGE) das Menü eingebunden wird und das bei Klicks auf einen Link immer die richtige Nummer für die Sprache an die URL angehängt wird.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   #multilanguage-flags&lt;br /&gt;
   marks.LANGUAGE=TEXT&lt;br /&gt;
   marks.LANGUAGE=&amp;amp;nbsp;&lt;br /&gt;
   marks.LANGUAGE=PHP_SCRIPT&lt;br /&gt;
   marks.LANGUAGE.file=fileadmin/scripts/languageMenu_d-e.php&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;php-Skript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
 * languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
 *&lt;br /&gt;
 * @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
 * @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
 */&lt;br /&gt;
 // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.&lt;br /&gt;
 $query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
 $res = mysql(TYPO3_db,$query);&lt;br /&gt;
 $langArr=array();&lt;br /&gt;
 while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
 $langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
 // TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
 // is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
 $pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
 // Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
 // If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
 $flags = array();&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==0?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==1?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
 // Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
 $content = &amp;#039;&amp;lt;span class=&amp;quot;language_selector&amp;quot;&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
===Rootline für mehrere Sprachen einrichten===&lt;br /&gt;
 temp.rootline = HMENU&lt;br /&gt;
 temp.rootline.special = rootline&lt;br /&gt;
 temp.rootline.special.range = 0|-1&lt;br /&gt;
 temp.rootline.wrap = Sie sind hier:&lt;br /&gt;
 temp.rootline.1 = TMENU&lt;br /&gt;
 temp.rootline.1 {&lt;br /&gt;
    target = _top&lt;br /&gt;
    NO.linkWrap = || /&lt;br /&gt;
 }&lt;br /&gt;
 # evt. bestimte Seiten ausblenden...&lt;br /&gt;
 temp.rootline.excludeUidList =&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 3&lt;br /&gt;
 [globalVar = GP:L = 3]&lt;br /&gt;
    temp.rootline.wrap = You are here:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 4&lt;br /&gt;
 [globalVar = GP:L = 4]&lt;br /&gt;
    temp.rootline.wrap = bla bla:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID X (X = beliebige zahl)&lt;br /&gt;
 [globalVar = GP:L = X]&lt;br /&gt;
    temp.rootline.wrap = hierher haben sie sich verirrt:&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
=== Ein Beispiel für ein vollständiges (zweisprachiges) TypoScript ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;nach oben&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = Keine Treffer.&lt;br /&gt;
   20.next.value=nächste&lt;br /&gt;
   20.prev.value=vorherige&lt;br /&gt;
   30.dataArray.10.label = Suche nach:&lt;br /&gt;
   30.dataArray.20.label = Suche in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Überschriften und Schlüsselworten&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Seiteninhalten&lt;br /&gt;
   30.dataArray.40.value = Suche starten&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
# English language, sys_language.uid = 1&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
#  Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;to top&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion - englisch&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = No hits.&lt;br /&gt;
   20.next.value=next&lt;br /&gt;
   20.prev.value=previous&lt;br /&gt;
   30.dataArray.10.label = Searchwords:&lt;br /&gt;
   30.dataArray.20.label = Search in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Headlines &amp;amp; Keywords&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Content&lt;br /&gt;
   30.dataArray.40.value = Start search&lt;br /&gt;
}&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Schritt für Schritt Anleitung ===&lt;br /&gt;
1. Mindestens eine weitere Sprache anlegen (Listenansicht - Weltkugel)&lt;br /&gt;
2. TypoScript Sprachvariable und Template anpassen:&lt;br /&gt;
&lt;br /&gt;
3. Benötigte Skripte und Bilder(Flaggen) Uploaden&lt;br /&gt;
&lt;br /&gt;
2. Marker im TypoScript Template anlegen:&lt;br /&gt;
3. Marker im Template einbauen. Am besten in divs damit man es per CSS gestalten kann&lt;br /&gt;
 &amp;lt;div id=&amp;quot;languageSelector&amp;quot;&amp;gt;###LANGUAGE###&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Probleme bei mehrsprachigen Seiten ===&lt;br /&gt;
Lösungen bei verschiedenen Problemen mit mehrsprachigen Seiten gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Probleme mit mehrsprachigen Seiten lösen]]&lt;br /&gt;
&lt;br /&gt;
=== Skriptsammlung ===&lt;br /&gt;
==== php-Sprachskript ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
* languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
*&lt;br /&gt;
* @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
* @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
*/&lt;br /&gt;
// First, select all pages_language_overlay records on the current page. &lt;br /&gt;
// Each represents a possibility for a language.&lt;br /&gt;
$query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
$res = mysql(TYPO3_db,$query);&lt;br /&gt;
$langArr=array();&lt;br /&gt;
while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
$langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
// TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
// is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
//$pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
$pointer = &amp;quot;&amp;quot;;&lt;br /&gt;
// Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
// If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
$flags = array();&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; title=&amp;quot;deutsch&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; title=&amp;quot;english&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
$content = &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.161.161.224</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=236</id>
		<title>Typo3 - Mehrsprachige Seiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Mehrsprachige_Seiten&amp;diff=236"/>
		<updated>2006-03-30T11:19:54Z</updated>

		<summary type="html">&lt;p&gt;84.161.161.224: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===2 Konzepte===&lt;br /&gt;
Um Mehrsprachigkeit zu realisieren gibt es zwei Ansätze:&lt;br /&gt;
# Multitree - Mehrere Navigationsbäume (für jede Sprache einen). In den Navigationsbäumen müssen die Templates entsprechend Variiert werden.&lt;br /&gt;
# One Tree Fits All - Mehrsprachigkeit mit den Typo3 Bordmitteln (der moderne Ansatz). Hierbei können im System mehrere Sprachen angelegt werden. Jede Sprache hat nachher in der Seitenansicht eine eigene Spalte. So hat man eine gute Übersicht welche Inhaltselemente bereits übersetzt sind.&lt;br /&gt;
&lt;br /&gt;
===Welcher Ansatz ist der Richtige ?===&lt;br /&gt;
Kommt drauf an. Wer soll damit klar kommen? Wieviele Seiten sind es? Werden alle Seiten übersetzt?&lt;br /&gt;
&lt;br /&gt;
===TypoScript Anpassungen===&lt;br /&gt;
Damit das System merkt in welcher Sprache es sich z.Zt. befindet wird der URL ein Parameter mitgegeben. Allgemein ist der Parameter L vereinbart. Das sollte auch eingehalten werden weil einige Extensions nur mit L als Variable arbeiten. &lt;br /&gt;
&lt;br /&gt;
Damit das ganze funktioniert müssen Anpassungen mit TypoScript gemacht werden.&lt;br /&gt;
&lt;br /&gt;
Am besten ein Zusätzliches Basis Template anlegen. Für eine deutsch-englische Seite kann das Setup z.B. so aussehen:&lt;br /&gt;
&lt;br /&gt;
 ### Parameter L definieren 0 soll die default Sprache (deutsch) sein ###&lt;br /&gt;
 config.linkVars = L&lt;br /&gt;
 config.sys_language_uid = 0&lt;br /&gt;
 config.language = de&lt;br /&gt;
 config.locale_all = de_DE&lt;br /&gt;
 &lt;br /&gt;
 # Testen ob die Englische Seite gewünscht wird. In einem CASE Konstrukt wird dazu geprüft&lt;br /&gt;
 # ob die globale Variable L=1 ist&lt;br /&gt;
 [globalVar = GP:L = 1]&lt;br /&gt;
    config.sys_language_uid = 1&lt;br /&gt;
    config.language = en&lt;br /&gt;
    config.locale_all = english&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erläuterung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Im ersten Teil wird die globale Variable L definiert und dann Deutsch als default-Sprache festgelegt und mit L=0 gleichgesetzt. Danach wird getestet ob der Parameter L mit dem Wert 1 übergeben wird. Ist das der Fall wird die Systemsprache auf englisch gesetzt. Das führt später auch dazu, daß die Inhalte aus der Englischen Spalte ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch ein Auswahlmenü mit dem sich die Sprache auf der Webseite auswählen läßt.&lt;br /&gt;
&lt;br /&gt;
===Sprachauswahlmenü programmieren===&lt;br /&gt;
In der Subpart definition (workOnSubparts) des Haupttemplates binden wir ein PHP-Skript ein, dass dafür sorgt, daß an der Stelle des Markers (hier LANGUAGE) das Menü eingebunden wird und das bei Klicks auf einen Link immer die richtige Nummer für die Sprache an die URL angehängt wird.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   #multilanguage-flags&lt;br /&gt;
   marks.LANGUAGE=TEXT&lt;br /&gt;
   marks.LANGUAGE=&amp;amp;nbsp;&lt;br /&gt;
   marks.LANGUAGE=PHP_SCRIPT&lt;br /&gt;
   marks.LANGUAGE.file=fileadmin/scripts/languageMenu_d-e.php&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;php-Skript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
 * languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
 *&lt;br /&gt;
 * @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
 * @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
 */&lt;br /&gt;
 // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.&lt;br /&gt;
 $query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
 $res = mysql(TYPO3_db,$query);&lt;br /&gt;
 $langArr=array();&lt;br /&gt;
 while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
 $langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
 // TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
 // is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
 $pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
 // Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
 // If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
 $flags = array();&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==0?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 $flags[] = ($GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_language_uid==1?$pointer:&amp;quot;&amp;quot;).&amp;#039;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;img src=&amp;quot;media/uploads/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; width=&amp;quot;21&amp;quot; height=&amp;quot;13&amp;quot; hspace=5 border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
 // Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
 $content = &amp;#039;&amp;lt;span class=&amp;quot;language_selector&amp;quot;&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
===Rootline für mehrere Sprachen einrichten===&lt;br /&gt;
 temp.rootline = HMENU&lt;br /&gt;
 temp.rootline.special = rootline&lt;br /&gt;
 temp.rootline.special.range = 0|-1&lt;br /&gt;
 temp.rootline.wrap = Sie sind hier:&lt;br /&gt;
 temp.rootline.1 = TMENU&lt;br /&gt;
 temp.rootline.1 {&lt;br /&gt;
    target = _top&lt;br /&gt;
    NO.linkWrap = || /&lt;br /&gt;
 }&lt;br /&gt;
 # evt. bestimte Seiten ausblenden...&lt;br /&gt;
 temp.rootline.excludeUidList =&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 3&lt;br /&gt;
 [globalVar = GP:L = 3]&lt;br /&gt;
    temp.rootline.wrap = You are here:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID 4&lt;br /&gt;
 [globalVar = GP:L = 4]&lt;br /&gt;
    temp.rootline.wrap = bla bla:&lt;br /&gt;
 [global]&lt;br /&gt;
 &lt;br /&gt;
 # Sprache mit der ID X (X = beliebige zahl)&lt;br /&gt;
 [globalVar = GP:L = X]&lt;br /&gt;
    temp.rootline.wrap = hierher haben sie sich verirrt:&lt;br /&gt;
 [global]&lt;br /&gt;
&lt;br /&gt;
=== Ein Beispiel für ein vollständiges (zweisprachiges) TypoScript ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;nach oben&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = Keine Treffer.&lt;br /&gt;
   20.next.value=nächste&lt;br /&gt;
   20.prev.value=vorherige&lt;br /&gt;
   30.dataArray.10.label = Suche nach:&lt;br /&gt;
   30.dataArray.20.label = Suche in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Überschriften und Schlüsselworten&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Seiteninhalten&lt;br /&gt;
   30.dataArray.40.value = Suche starten&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
# English language, sys_language.uid = 1&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
#  Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;A href=&amp;quot;#top&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#AB3C4B&amp;quot; face=&amp;quot;Arial, Helvetica, sans-serif&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;B&amp;gt;to top&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Suchfunktion - englisch&lt;br /&gt;
tt_content.search{&lt;br /&gt;
   20.layout.10.value = Suchergebnis: ###RANGELOW###-###RANGEHIGH### von ###TOTAL###&lt;br /&gt;
   20.noResultObj.10.value = No hits.&lt;br /&gt;
   20.next.value=next&lt;br /&gt;
   20.prev.value=previous&lt;br /&gt;
   30.dataArray.10.label = Searchwords:&lt;br /&gt;
   30.dataArray.20.label = Search in:&lt;br /&gt;
   30.dataArray.20.valueArray.10.label = Headlines &amp;amp; Keywords&lt;br /&gt;
   30.dataArray.20.valueArray.20.label = Content&lt;br /&gt;
   30.dataArray.40.value = Start search&lt;br /&gt;
}&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Schritt für Schritt Anleitung ===&lt;br /&gt;
1. Mindestens eine weitere Sprache anlegen (Listenansicht - Weltkugel)&lt;br /&gt;
2. TypoScript Sprachvariable und Template anpassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Spracheinstellungen ###&lt;br /&gt;
config.linkVars = L&lt;br /&gt;
config.sys_language_mode = content_fallback;0&lt;br /&gt;
&lt;br /&gt;
### ohne Sprachauswahl ###&lt;br /&gt;
&lt;br /&gt;
# Standardsprache deutsch wird festgelegt &lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
page.stylesheet = fileadmin/template/css/main.css&lt;br /&gt;
&lt;br /&gt;
### DEUTSCH ###&lt;br /&gt;
[globalVar = GP:L = 0]&lt;br /&gt;
config.sys_language_uid = 0&lt;br /&gt;
config.language = de&lt;br /&gt;
config.locale_all = de_DE&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = |&amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;nach oben&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
### ENGLISCH ###&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
config.sys_language_uid = 1&lt;br /&gt;
config.language = en&lt;br /&gt;
config.locale_all = english&lt;br /&gt;
&lt;br /&gt;
# CSS&lt;br /&gt;
#page.stylesheet = fileadmin/template/main_en.css&lt;br /&gt;
&lt;br /&gt;
# Link to top&lt;br /&gt;
#content.linkToTop &amp;gt;&lt;br /&gt;
tt_content.stdWrap.innerWrap2 = &amp;lt;br&amp;gt;&amp;lt;div class=&amp;quot;toTop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;to top&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#...&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. Benötigte Skripte und Bilder(Flaggen) Uploaden&lt;br /&gt;
&lt;br /&gt;
2. Marker im TypoScript Template anlegen:&lt;br /&gt;
3. Marker im Template einbauen. Am besten in divs damit man es per CSS gestalten kann&lt;br /&gt;
 &amp;lt;div id=&amp;quot;languageSelector&amp;quot;&amp;gt;###LANGUAGE###&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Probleme bei mehrsprachigen Seiten ===&lt;br /&gt;
Lösungen bei verschiedenen Problemen mit mehrsprachigen Seiten gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Probleme mit mehrsprachigen Seiten lösen]]&lt;br /&gt;
&lt;br /&gt;
=== Skriptsammlung ===&lt;br /&gt;
==== php-Sprachskript ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
* languageMenu_d-e.php basiert auf example_languageMenu.php &lt;br /&gt;
*&lt;br /&gt;
* @author	Kasper Skårhøj &amp;lt;kasper@typo3.com&amp;gt;&lt;br /&gt;
* @modified by Stephan Schlegel www.geo-bit.de&lt;br /&gt;
*/&lt;br /&gt;
// First, select all pages_language_overlay records on the current page. &lt;br /&gt;
// Each represents a possibility for a language.&lt;br /&gt;
$query = &amp;quot;SELECT * FROM pages_language_overlay WHERE pid=&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;sys_page-&amp;gt;enableFields(&amp;quot;pages_language_overlay&amp;quot;).&amp;quot; GROUP BY sys_language_uid&amp;quot;;&lt;br /&gt;
$res = mysql(TYPO3_db,$query);&lt;br /&gt;
$langArr=array();&lt;br /&gt;
while($row=mysql_fetch_assoc($res))	{&lt;br /&gt;
$langArr[$row[&amp;quot;sys_language_uid&amp;quot;]]=$row[&amp;quot;title&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Little red arrow, which is inserted to the left of the flag-icon if the &lt;br /&gt;
// TSFE-&amp;gt;sys_language_uid equals the language uid (notice that 0=deutsch, 1=englisch  &lt;br /&gt;
// is SPECIFIC to this database, because these numbers refer to uid&amp;#039;s of the table sys_language)&lt;br /&gt;
//$pointer = &amp;#039;&amp;lt;img src=&amp;quot;fileadmin/scripts/pointer.gif&amp;quot; width=&amp;quot;7&amp;quot; height=&amp;quot;10&amp;quot; align=middle&amp;gt;&amp;#039;;&lt;br /&gt;
$pointer = &amp;quot;&amp;quot;;&lt;br /&gt;
// Set each icon. If the language is the current, red arrow is printed to the left. &lt;br /&gt;
// If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.&lt;br /&gt;
$flags = array();&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=0&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_de.gif&amp;quot; alt=&amp;quot;deutsch&amp;quot; title=&amp;quot;deutsch&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
$flags[] = &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;index.php?id=&amp;#039;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id.&amp;#039;&amp;amp;L=1&amp;quot; target=_top&amp;gt;&amp;lt;span class=&amp;quot;flag&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;fileadmin/template/images/flag_uk&amp;#039;.($langArr[1]?&amp;quot;&amp;quot;:&amp;quot;_d&amp;quot;).&amp;#039;.gif&amp;quot; alt=&amp;quot;english&amp;quot; title=&amp;quot;english&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Make the little menu. Notice, the menu does ONLY transfer the page-id and the &amp;quot;L&amp;quot; variable (which is also SPECIFIC for this website because &amp;quot;L&amp;quot; has been used in the extension template used to control the language setup)&lt;br /&gt;
$content = &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;.implode(&amp;quot;&amp;quot;,$flags).&amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.161.161.224</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Tipps_und_Tricks&amp;diff=246</id>
		<title>Typo3 - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Tipps_und_Tricks&amp;diff=246"/>
		<updated>2006-03-30T10:12:36Z</updated>

		<summary type="html">&lt;p&gt;84.161.161.224: /* clear.gif und Absätze loswerden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mehr auf [[Typo3 - TS Templates]]&lt;br /&gt;
und: [[Typo3 - Wichtige TypoScript Einstellungen]]&lt;br /&gt;
&lt;br /&gt;
== Rendering von Content Elementen ==&lt;br /&gt;
weitere Infos unter:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Content Elemente anpassen]]&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen für Bilder ===&lt;br /&gt;
Größe (maximal, minimal, Popups, Skalierung, Bildunterschriften...)&lt;br /&gt;
====Border Attribut loswerden====&lt;br /&gt;
config.config.disableImgBorderAttr = 1&lt;br /&gt;
&lt;br /&gt;
Wichtig wenn man mit CSS arbeiten möchte.&lt;br /&gt;
&lt;br /&gt;
=== Link to Top ===&lt;br /&gt;
&lt;br /&gt;
=== Darstellung von Tabellen ===&lt;br /&gt;
Betrifft hauptsächlich das static Template content(default)&lt;br /&gt;
&lt;br /&gt;
=== clear.gif und Absätze loswerden ===&lt;br /&gt;
content(default)&lt;br /&gt;
 # Entfernen der &amp;lt;img src=&amp;quot;clear.gif&amp;#039; ...&amp;gt;&lt;br /&gt;
 content.headerSpace = 0|0&lt;br /&gt;
 content.space = 0|0&lt;br /&gt;
&lt;br /&gt;
=== externe Links ===&lt;br /&gt;
_self oder _blank, aussehen...&lt;br /&gt;
 styles.content.links.extTarget (bei css_styled_content)&lt;br /&gt;
&lt;br /&gt;
=== Listenpunkte und Aufzählungen ===&lt;br /&gt;
&lt;br /&gt;
=== Layoutauswahl ===&lt;br /&gt;
siehe [[Typo3 - Rahmen (Frames)]] für Rahmen&lt;br /&gt;
&lt;br /&gt;
und [[Typo3 - Backend anpassen]] für Header (Überschriften)&lt;br /&gt;
&lt;br /&gt;
=== Inline CSS loswerden ===&lt;br /&gt;
Bei vielen Extensions und bei CSS Styled ImgText liegt das CSS Inline. Besser wäre ist es das CSS komplett in eigene Dateien auszulagern.&lt;br /&gt;
&lt;br /&gt;
 # Inline Styles auslagern&lt;br /&gt;
 config.inlineStyle2TempFile = true&lt;br /&gt;
&lt;br /&gt;
=== JavaScript in externe Datei auslagern ===&lt;br /&gt;
Z.B. der kleine JavaScript Schnipsel für das Blur im IE auslagern.&lt;br /&gt;
Wie bindet man externes JavaScript ein...&lt;br /&gt;
&lt;br /&gt;
siehe unter&lt;br /&gt;
[[Typo3 - HTML Code optimieren]]&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe einer Spalte Wrappen ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #Inhalt rechts&lt;br /&gt;
 subparts.CONTENT_RIGHT &amp;lt; styles.content.getRight&lt;br /&gt;
 #Ganze Spalte Wrappen&lt;br /&gt;
 subparts.CONTENT_RIGHT.wrap = &amp;lt;div class=&amp;quot;content_right&amp;quot;&amp;gt; | &amp;lt;/div&amp;gt;&lt;br /&gt;
 #Einzelnes Element Wrappen &lt;br /&gt;
 subparts.CONTENT_RIGHT.renderObj.stdWrap.wrap=&amp;lt;div class=&amp;quot;bordered&amp;quot;&amp;gt;|&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Ausgabe einer Spalte Wrappen wenn nicht leer ===&lt;br /&gt;
Hier wird das content element nur mit einem div gewrapt wenn es nicht leer ist&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.rightContent &amp;lt; styles.content.getRight&lt;br /&gt;
temp.rightContent.stdWrap {&lt;br /&gt;
  wrap = &amp;lt;div id=&amp;quot;right-main&amp;quot;&amp;gt; | &amp;lt;/div&amp;gt;&lt;br /&gt;
  if.isTrue.numRows &amp;lt; styles.content.getRight&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(TypoWizard.com 9.1.2006)&lt;br /&gt;
&lt;br /&gt;
===p style=&amp;quot;margin:0 0 0 0;&amp;quot; aus dem p-Tag rausnehmen===&lt;br /&gt;
&lt;br /&gt;
 tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style=&lt;br /&gt;
&lt;br /&gt;
== Suche ==&lt;br /&gt;
===Index-Suche – kein eigenes Fenster öffnen===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 styles.content.searchresult.resultTarget = _self&lt;br /&gt;
 styles.content.searchresult.target = _self&lt;br /&gt;
&lt;br /&gt;
== Domains anlegen ==&lt;br /&gt;
Todo...&lt;br /&gt;
== Rootline Navigation ==&lt;br /&gt;
Ein Beispiel bei dem zusätzlich Englisch (L=1) berücksichtigt wird.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.rootline_html= HMENU&lt;br /&gt;
temp.rootline_html.special = rootline&lt;br /&gt;
temp.rootline_html.special.range = 0|-1&lt;br /&gt;
temp.rootline_html.1 = TMENU&lt;br /&gt;
temp.rootline_html.1 {&lt;br /&gt;
    wrap = Sie sind hier:&amp;amp;nbsp;|&lt;br /&gt;
   # evt. bestimte Seiten ausblenden...&lt;br /&gt;
   excludeUidList =&lt;br /&gt;
   # Sprache mit der ID 1 (Englisch)&lt;br /&gt;
  target = _top&lt;br /&gt;
  NO {&lt;br /&gt;
    linkWrap= &amp;lt;span class=&amp;quot;pathway&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt;&lt;br /&gt;
    # optionSplit: vor erstem item kein delimiter, sonst immer einer&lt;br /&gt;
    allWrap = | |*| &amp;gt;&amp;amp;nbsp;| |*| &lt;br /&gt;
    ATagBeforeWrap = 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Wrap für Englisch&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
temp.rootline_html.1.wrap = You are here:&amp;amp;nbsp;|&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mehrsprachigkeit ==&lt;br /&gt;
So baut man mehrsprachige Seiten in Typo3:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Mehrsprachige Seiten]]&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Mehrsprachige Navigation]]&lt;br /&gt;
&lt;br /&gt;
== Spracheinstellungen ==&lt;br /&gt;
&lt;br /&gt;
== HTML-Template einbinden ==&lt;br /&gt;
siehe auch: [[Typo3 - HTML-Templates]]&lt;br /&gt;
Beispiel (das page Objekt muß natürlich vorher definiert werden):&lt;br /&gt;
&lt;br /&gt;
Im TS Template Setup:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
 page.10 = TEMPLATE&lt;br /&gt;
 page.10{&lt;br /&gt;
   template = FILE&lt;br /&gt;
   template.file = fileadmin/templates/main.html&lt;br /&gt;
 &lt;br /&gt;
   ### Subparts ansprechen ###&lt;br /&gt;
   workOnSubpart = DOCUMENT_BODY&lt;br /&gt;
 &lt;br /&gt;
   # Rootline (Pathway) einfügen ###&lt;br /&gt;
   subparts.ROOTLINE &amp;lt; temp.rootline_html&lt;br /&gt;
   &lt;br /&gt;
   # Hauptinhalt&lt;br /&gt;
   subparts.CONTENT &amp;lt; layoutWrap&lt;br /&gt;
   subparts.CONTENT.wrap = &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt; | &amp;lt;/div&amp;gt;   &lt;br /&gt;
   &lt;br /&gt;
   #Inhalt rechts&lt;br /&gt;
   subparts.CONTENT_RIGHT &amp;lt; styles.content.getRight&lt;br /&gt;
   subparts.CONTENT_RIGHT.wrap = &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt; | &amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
   # Rand bzw. Header&lt;br /&gt;
   subparts.HEADER &amp;lt; styles.content.getBorder&lt;br /&gt;
   subparts.HEADER &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt; | &amp;lt;/div&amp;gt;&lt;br /&gt;
   # subparts.HEADER &amp;lt; temp.flashHeader&lt;br /&gt;
  &lt;br /&gt;
   ### Hauptnavigation ###&lt;br /&gt;
   subparts.NAVI_LINKS &amp;lt; temp.navi_gLayer&lt;br /&gt;
  &lt;br /&gt;
   ### rechte Navi ###&lt;br /&gt;
   subparts.NAVI_RECHTS &amp;lt;temp.naviGRight&lt;br /&gt;
    &lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einstellungen für das Page Objekt ==&lt;br /&gt;
&lt;br /&gt;
== Verschiedene Einstellungen ==&lt;br /&gt;
=== statische Seiten Simulieren ===&lt;br /&gt;
Statische Seiten simulieren&lt;br /&gt;
 config.simulateStaticDocuments = PATH_INFO&lt;br /&gt;
 config.simulateStaticDocuments_addTitle = 30&lt;br /&gt;
 config.simulateStaticDocuments = 1&lt;br /&gt;
 config.admPanel = 1&lt;br /&gt;
 config.simulateStaticDocuments_noTypeIfNoTitle = 1&lt;br /&gt;
&lt;br /&gt;
.htaccess Datei für Apache Server nicht vergessen (muß nur unbenannt werden)&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen für das Admin Panel ===&lt;br /&gt;
&lt;br /&gt;
===Email===&lt;br /&gt;
&lt;br /&gt;
==== Spamschutz für Email Adressen ====&lt;br /&gt;
 config.spamProtectEmailAddresses = 1&lt;br /&gt;
 config.spamProtectEmailAddresses_atSubst = (at)&lt;br /&gt;
&lt;br /&gt;
====E-Mail-Absender für automatische E-Mails z.B. über Kontaktformular====&lt;br /&gt;
E-Mail-Adresse&lt;br /&gt;
 plugin.feadmin.dmailsubscription.email = info(at)easy-office4you.de&lt;br /&gt;
E-Mail-Name&lt;br /&gt;
 plugin.feadmin.dmailsubscription.emailName = Barbara Hofbauer&lt;br /&gt;
&lt;br /&gt;
== Typo3 RTE - Einstellungen ==&lt;br /&gt;
===RTE Absatz Formatierung einstellen===&lt;br /&gt;
 lib.parseFunc_RTE {&lt;br /&gt;
 nonTypoTagStdWrap.encapsLines.nonWrappedTag &amp;gt;&lt;br /&gt;
 nonTypoTagStdWrap.encapsLines.wrapNonWrappedLines = | &amp;lt;/br&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===HTML-Area (htmlarea) statt RTE===&lt;br /&gt;
Mit der Extension htmlarea kann man den RTE ersetzen. Er bietet einiges mehr an Bearbeitungsfunktionen (wenn man die denn will) aber vor allem läuft er auch auf Mozilla, Firefox, etc. Browsern.&lt;br /&gt;
&lt;br /&gt;
==htmlarea anpassen==&lt;br /&gt;
Die Möglichkeiten des htmlarea Editors sind oft zuviel des Guten. Die meisten Anpassungen des RTE funktionieren auch im htmlarea. Beispiele:&lt;br /&gt;
&lt;br /&gt;
Minimale Funktionalität&lt;br /&gt;
&lt;br /&gt;
Im Page Setup:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RTE.default {&lt;br /&gt;
	## Toolbar options applicable to all RTE&amp;#039;s&lt;br /&gt;
	## The TCA configuration may add buttons to the toolbar&lt;br /&gt;
	showButtons =  bold,italic,undo,redo,about&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
## front end RTE configuration for the general public (htmlArea RTE only)&lt;br /&gt;
RTE.default.FE &amp;lt; RTE.default&lt;br /&gt;
&lt;br /&gt;
== Header Image austauschen ==&lt;br /&gt;
[[Typo3 - Header Image austauschen]]&lt;/div&gt;</summary>
		<author><name>84.161.161.224</name></author>
	</entry>
</feed>