😃 Tja, mein Problem ist gelöst.
PS an Moderator: Falls dies zuviel Overhead ist, bitte ich um Rückmeldung, so dass ich diesen Thread lösche.
Zusammenfassung für Dummies wie mich:
1. Umgebung auf Mehrsprachigkeit umstellen (hilfreicher link von steffenk: http://www.sk-typo3.de/Sprachumschaltung-mit-Links.210.0.html)
2. .htaccess - Datei installieren (hilfreicher link: http://typo3.org/documentation/document-library/extension-manuals/realurl/1.1.0/view/1/2/)
3. Über den Extension-Manager vom Backend die realUrl-Extension laden und installieren
4. Hier meine vorinstallierte Extension-Konfigurationsdatei (ext_localconf.php), an der ich nichts geändert habe im realUrl-Extension-Verzeichnis:
<?php
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['linkData-PostProc']['tx_realurl'] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->encodeSpURL';
$TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['checkAlternativeIdMethods-PostProc']['tx_realurl'] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->decodeSpURL';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearPageCacheEval']['tx_realurl'] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->clearPageCacheMgm';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urldecodecache'] = 'tx_realurl_urldecodecache';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urlencodecache'] = 'tx_realurl_urlencodecache';
$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
?>
5. Mein auf der Root-Seite abgelegtes Template:
# RealURL konfigurieren
config.simulateStaticDocuments = 0
config.baseURL = http://www.MeineSeite.com/
config.tx_realurl_enable = 1
config.prefixLocalAnchors = all
# Multilanguage als HTML-Charset verwenden
config.renderCharset = utf-8
config.additionalHeaders = content-type:text/html;charset=utf-8
# PAGE-Objekt konfigurieren
r = PAGE
r.bodyTagMargins = 10
r.headerData.10 = TEXT
r.meta {
keywords.field = keywords
keywords.ifEmpty (
xyz
)
}
#Sprachkonfiguration
config.linkVars = L
config.uniqueLinkVars = 1
#Default-Sprache konfigurieren
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE.UTF8
#Wenn gewählte Sprache bzw. Default deutsch
temp.langlink1 = TEXT
temp.langlink1.value=türkçe
temp.langlink1.typolink.parameter.data = page:uid
temp.langlink1.typolink.additionalParams = &L=1
temp.langlink1.typolink.ATagParams = lang="tr" xml:lang="tr"
temp.langlink2 = TEXT
temp.langlink2.value=english
temp.langlink2.typolink.parameter.data = page:uid
temp.langlink2.typolink.additionalParams = &L=2
temp.langlink2.typolink.ATagParams = class="first" lang="en" xml:lang="en"
r.headerData.10.value = <meta name="content-language" content="deutsch, de" />
#Wenn gewählte Sprache türkce
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = tr
config.locale_all = tr_TR.UTF8
temp.langlink1 = TEXT
temp.langlink1.value=deutsch
temp.langlink1.typolink.parameter.data = page:uid
temp.langlink1.typolink.additionalParams = &L=0
temp.langlink1.typolink.ATagParams = class="first" lang="de" xml:lang="de"
temp.langlink2 = TEXT
temp.langlink2.value=english
temp.langlink2.typolink.parameter.data = page:uid
temp.langlink2.typolink.additionalParams = &L=2
temp.langlink2.typolink.ATagParams = lang="en" xml:lang="en"
r.headerData.10.value = <meta name="content-language" content="türkce, tr" />
[global]
#Wenn gewählte Sprache english
[globalVar = GP:L = 2]
config.sys_language_uid = 2
config.language = en
config.locale_all = en_EN.UTF8
temp.langlink1 = TEXT
temp.langlink1.value=türkçe
temp.langlink1.typolink.parameter.data = page:uid
temp.langlink1.typolink.additionalParams = &L=1
temp.langlink1.typolink.ATagParams = lang="tr" xml:lang="tr"
temp.langlink2 = TEXT
temp.langlink2.value=deutsch
temp.langlink2.typolink.parameter.data = page:uid
temp.langlink2.typolink.additionalParams = &L=0
temp.langlink2.typolink.ATagParams = class="first" lang="de" xml:lang="de"
r.headerData.10.value = <meta name="content-language" content="english, en" />
[global]
r.10 = TEMPLATE
r.10 {
template = FILE
template.file = fileadmin/templates/designvorlage.html
workOnSubpart = BODY
marks.SPRACHE = COA
marks.SPRACHE {
10 < temp.langlink1
10.wrap = |<br />
20 < temp.langlink2
20.wrap = |<br />
}
}
6. In der localconf.php, von mir manuell eingetragene Konfigurationsparameter für realUrl:
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
'preVars' => array(
array(
'GETvar' => 'L',
'valueMap' => array(
'de' => '0',
'tr' => '1',
'en' => '2',
),
'valueDefault' => 'de',
),
),
'pagePath' => array(
'type' => 'user',
'userFunc' =>
'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => 3,
'rootpage_id' => '70'
),
'fileName' => array (
'defaultToHTMLsuffixOnPrev' => 1,
'index' => array(
'page.html' => array(
'keyValues' => array (
'type' => 1,
),
),
),
),
);
Nach diesem gesamten sieht meine sprechende URL folgendermassen aus:
http: // www. MeineSeite. com / de / rezepte / rezeptesuchen.html
Typo3_site_url: http: // www. MeineSeite. com /
realUrl-Arraybereich preVars: entweder de/ oder tr/ oder en/
realUrl-Arraybereich pagePath: rezepte/rezeptesuchen
realUrl-Arraybereich fileName: .html
Ohne den gesamten Bereich von FileName, würde die URL so aussehen:
http: // www. MeineSeite. com / de / rezepte / rezeptesuchen /
Bei dieser Variante würde eine Fehlermeldung ausgegeben, falls jemand manuell die URL eingibt und das Slash am Ende vergisst. Um dies zu verhindern, ist diese Einstellung, die das fehlende End-slash ergänzt, hilfreich:
'init' => array(
'appendMissingSlash' => 'TRUE',
),
Was ich nicht wusste und auch nirgendwo nachlesen konnte, war, was der Aufruf von class.tx_realurl_advanced.php automatisch im PagePath-Bereich bewirkt:
1. Falls kein Alias vorhanden ist, nimmt er den Seiten-Titel und wandelt die Zeichen in URL-konforme Zeichen um. Kleinschreibung, aus ä wird ae und über den spaceCharacter werden Seitennamen, die aus mehreren Wörtern bestehen, in folgender Form zusammengefügt: wort1-wort2.
2. Gibt man noch den Parameter bei languageGetVar mit, so werden sogar die Seitentitel der für die jeweilige Sprache definierten Seiten genommen. Also de = rezepte, tr = tarifler, en = recipes
Bei diesem gesamten Konstrukt bin ich jedoch auf Fehler gelaufen, weil auf einer Seite noch ein Alias lag. Nachdem ich diesen gelöscht habe, klappte alles so wie ich es wollte.
Gruss Mensch