Liebe Leute
Ich habe jetzt den ganzen (heissen) Tag mit dem Versucht verbracht, meine Site mehrsprachig aufzubauen. Dabei konnte ich einige "Etappen"-Erfolge verbuchen aber ins Ziel hats mir noch nicht gereicht.
Nebst jweilands und Kaspars Tutorial hab ich mich durch sämtliche Foren-Threads durchgeackert und habe das Gefühl, alles richtig gemacht zu haben, aber trotzdem scheint die Site die alternative Sprache nicht zu erkennen.
Nun aber Schritt für Schritt:
Default-Sprache ist Deutsch.
Als Alternativ-Sprache habe ich im Page-Root Englisch eingerichtet. In der Datenbank ist diese Sprache in der "sys_language" mit der UID "2" vertreten.
Einen alternativen Page Record konnte ich erfolgreich erstellen und sehe jetzt im Pagecontent den deutschen (Default) und den englischen (English) Eintrag.
Die Fähnchen-Sprachauswahl habe ich mit einem externen PHP-Script (welches ich von Kaspar übernommen und auf meine Bedürfnisse angepasst habe) included. Der Code sieht so aus:
<?php
// First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.
$query = "SELECT * FROM pages_language_overlay WHERE pid=".$GLOBALS["TSFE"]->id.$GLOBALS["TSFE"]->sys_page->enableFields("pages_language_overlay")." GROUP BY sys_language_uid";
$res = mysql(TYPO3_db,$query);
$langArr=array();
while($row=mysql_fetch_assoc($res)) {
$langArr[$row["sys_language_uid"]]=$row["title"];
}
// Little red arrow, which is inserted to the left of the flag-icon if the TSFE->sys_language_uid equals the language uid (notice that 0=german and 2=german is SPECIFIC to this database, because these numbers refer to uid's of the table sys_language)
$pointer = '<img src="t3lib/gfx/content_client.gif" width="7" height="10" align=middle>';
// Set each icon. If the language is the current, red arrow is printed to the left. If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.
$flags = array();
$flags[] = ($GLOBALS["TSFE"]->sys_language_uid==0?$pointer:"").'<a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=0" target=_top><img src="media/uploads/flag_de.gif" width="21" height="13" hspace=5 border="0"></a>';
$flags[] = ($GLOBALS["TSFE"]->sys_language_uid==2?$pointer:"").'<a href="index.php?id='.$GLOBALS["TSFE"]->id.'&L=2" target=_top><img src="media/uploads/flag_uk'.($langArr[2]?"":"_d").'.gif" width="21" height="13" hspace=5 border="0"></a>';
// Make the little menu. Notice, the menu does ONLY transfer the page-id and the "L" variable (which is also SPECIFIC for this website because "L" has been used in the extension template used to control the language setup)
$content = '<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=clear.gif width=30 height=1></td><td>'.implode("",$flags).'</td></tr></table>';
?>
Im Template-Setup habe ich die erforderlichen Zeilen wie folgt eingefügt:
page = PAGE
page.typeNum = 0
page.stylesheet = fileadmin/tpl/styles.css
page.bodyTag = <body bgcolor="#010066" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
page.ATagParams = class="textLink"
page.ACTTagParams = class="textLinkAct"
page.10 = TEMPLATE
page.10.subparts.CONTENT < styles.content.get
page.10 {
template = FILE
template.file = fileadmin/tpl/tpl_start.htm
workOnSubpart = DOCUMENT_BODY
# include php language script
marks.LANGNAVI = PHP_SCRIPT
marks.LANGNAVI.file = fileadmin/tpl/scripts/language.php
subparts.MAINNAVI = HMENU
subparts.MAINNAVI.minItems = 5
subparts.MAINNAVI.maxItems = 5
subparts.MAINNAVI.1 = TMENU
subparts.MAINNAVI.1.noBlur = 1
subparts.MAINNAVI.1.expAll = 0
subparts.MAINNAVI.1.NO {
allWrap = <td width="80" background="fileadmin/tpl/images/nav_bg_passiv.gif" valign="bottom"> | </td><td> </td>
linkWrap = <center> | </center>
ATagParams = class="mainNavi"
ACTTagParams = class="mainNaviAct"
}
subparts.MAINNAVI.1.ACT < subparts.MAINNAVI.1.NO
subparts.MAINNAVI.1.ACT = 1
subparts.MAINNAVI.1.ACT {
allWrap = <td width="80" background="fileadmin/tpl/images/nav_bg_aktiv.gif" valign="bottom"> | </td><td> </td>
linkWrap = <center> | </center>
ATagParams = class="mainNavi"
ACTTagParams = class="mainNaviAct"
}
subparts.SUBNAVI = HMENU
subparts.SUBNAVI.entryLevel = 1
subparts.SUBNAVI.1 = TMENU
subparts.SUBNAVI.1.noBlur = 1
subparts.SUBNAVI.1.expAll = 0
subparts.SUBNAVI.1.NO {
allWrap = <tr> <td width="25" height="20"> </td> <td height="20"> | </td></tr>
ATagParams = class="subNavi"
ACTTagParams = class="subNaviAct"
}
# Setting up the language variable "L" to be passed along with links
config.linkVars = L
# English language, sys_language.uid = 2
[globalVar = GP:L = 2]
config.sys_language_uid = 2
config.language = en
[global]
}
Nun habe ich gehofft, ich könne einfach auf die Fähnchen klicken und munter zwischen den Sprachen hin und her switchen, aber dem ist nicht so...
Das englische Fähnchen wird auch bloss grau dargestellt, was gemäss Kasper bedeutet, dass die Sprache nicht erkannt wird.
Was mache ich Falsch...? Ich sehs nicht mehr. Kann mir jemand helfen? Ich würde mich auch gerne erkenntlich zeigen und mich mit einem kühlen Bier revanchieren...[/list]