Anleitung für Mehrsprachige Seiten mit Realurl
| Autor | Nachricht |
|---|---|
|
Verfasst am: 23. 08. 2007 [12:41]
|
|
|
brokemeister
Themenersteller
Dabei seit: 06.05.2007
Beiträge: 762
|
Da bislang viele immer wieder bei den grundlegenden Dingen für mehrsprachige Seiten am Stolpern sind. Hier einfach mal eine kleine Zusammenfassung an Hand der Sprachen Deutsch (Default) und Englisch mit One-Tree-Installation... Damit das ganze auch Suchmaschinen freundlich wird, wird man automatisch von der Domain auf die default Language weitergeleitet und alle Links auf der Seite werden direkt mit der entsprechenden Sprache weitergeleitet. Beispiele: http://www.domain.de -> http://www.domain.de/ -> http://www.domain.de/de/ http://www.domain.de/home -> http://www.domain.de/home/ -> http://www.domain.de/de/home/ http://www.domain.de/home/ -> http://www.domain.de/de/home/ Anleitung 1. Sprache erzeugen >> Web > Liste >> Erdkugel auswählen Datensatz mit "Webseite Sprache" angelegen; Titel = English Dieser Datensatz sollte in der Regel die ID 1 erhalten Jetzt kann der Inhalt in der entsprechende Sprache angelegt werden. Anmerkung: Die Standardsprache wird per TS definiert. 2. TSConfig für das Roottemplate definieren TYPOSCRIPT ## REALURL ## config { baseURL = http://www.domain.de/ simulateStaticDocuments = 0 tx_realurl_enable = 1 } # GET-Parameter für Sprache config.linkVars = L # Deutsch / Hauptsprache config { sys_language_uid = 0 language = de locale_all = de_DE } # Englisch / 2. Sprache # Die "1" muss mit der obengenannten ID übereinstimmen # Die Weiche kann auch alternativ mit einer anderen Domain verknüpft werden (www.domain.com) [globalVar = GP:L = 1] config { sys_language_uid = 1 language = en locale_all = en_US } [global] 3. Realurl mit localconf.php konfigurieren Häufige wird schon ein Beispiel von RealURL genutzt... Daher hier die entscheidene Stelle bei den preVars: Wichtig: Die Sprache muss an erster Stelle der preVars stehen! PHP $TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] ['preVars'] => array( array( 'GETvar' => 'L', 'valueMap' => array( 'de' => '0', 'en' => '1', ), 'valueDefault' => 'de', # 'noMatch' => 'bypass', ), ); Anmerkung: 'noMatch' wird nicht benötigt, da wir Suchmaschinen freundliche URLS & Links haben wollen. Man kann damit aber gerne mal spielen. 4. Sprache wechseln - Linkerzeugen Dafür einfach an gewünschter Stelle folgende TS mit integrieren TYPOSCRIPT lib.link.language = TEXT lib.link.language { value = English typolink.parameter.data = page:uid typolink.additionalParams = &L=1 } # Änderungen für die englische Sprache [globalVar = GP:L=1] lib.link.language.value = Deutsch lib.link.language.typolink.additionalParams = &L=0 [global] YOUR_MARKER < lib.link.language 5. .htaccess erweitern Als Vorlage dient die von Typo3 4.1.x mitgelieftere ModRewrite-Teil aus den .htaccess. (Alle Kommentare wurden gelöschen) Wichtig: Reihenfolgen der Zeilen beachten! Durch '+' sind die neuen wichtige Zeilen gekennzeichnet. (Das Zeichen sollte dann weggelassen werden) HTML RewriteEngine On
# Erzwingt einem Slash am Ende der Zeile, wenn es keine Datei ist.
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_URI} !(.*)/$
+ RewriteRule ^(.*)$ // [L,R=301]
RewriteRule ^(typo3|t3lib|tslib|fileadmin|typo3conf|typo3temp|uploads|showpic\.php|favicon\.ico)/ - [L]
RewriteRule ^typo3$ typo3/index_re.php [L]
# Wenn keine Sprache gesetzt ist, wird eine Sprache gesetzt
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_URI} !^/de/(.*)$
+ RewriteCond %{REQUEST_URI} !^/en/(.*)$
+ RewriteRule ^(.*)$ /de/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]Ich hoffe mal ich habe jetzt keinen Teil vergessen. Falls doch einfach eine kurze Nachricht an mich... Viel Spaß beim Nutzen! [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 23.08.2007 um 12:43.] |
|
Verfasst am: 23. 08. 2007 [12:53]
|
|
|
brokemeister
Themenersteller
Dabei seit: 06.05.2007
Beiträge: 762
|
Noch als kleiner Bonbon... Einfach in Setup der Startseite folgende zeilen eintragen und im BE wird bei der Standardsprache die Flagge angezeigt sowie die Sprache... TYPOSCRIPT mod.SHARED { defaultLanguageFlag = de.gif defaultLanguageLabel = Deutsch } |
|
Verfasst am: 31. 08. 2007 [13:07]
|
|
|
brokemeister
Themenersteller
Dabei seit: 06.05.2007
Beiträge: 762
|
Für alle, die noch nicht viel mit PHP oder mit der .htaccess gearbeitet haben, sollten die Dateien sichern und als Kopie anlegen. localconf.php -> localconf.old .htaccess -> _htaccess.bak (Der Punkt am Anfang darf nicht mehr da sein!) [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 31.08.2007 um 13:07.] |
|
Verfasst am: 14. 09. 2007 [10:03]
|
|
|
Melle84
Dabei seit: 20.03.2007
Beiträge: 57
|
Hallo Brokemeister, eine Frage zu dem How-to für die Mehrsprachigkeit: bei dem Schritt 3 wohin und in welche Datei muss dieser PHP Code? Vielen Dank Gruss Melle |
|
Verfasst am: 14. 09. 2007 [12:51]
|
|
|
stoun
Dabei seit: 05.07.2004
Beiträge: 133
|
Hallo brokemeister, erst vielen Dank für deine Anleitung! Jetzt 2 Fragen. ich habe alles gemacht und bekommen zwei Fehler. 1. Nach Änderungen in localconf.php bekomme ich eine Fehlermeldung Parse error: parse error, unexpected T_DOUBLE_ARROW in /html/typo3conf/localconf.php on line 33 Habe $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['preVars'] => array( auf $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['preVars'] = array( geändert, dann geht es. War das tipp-Fehler oder habe ich was falsch gemacht? 2. Nach Änderungen in .htacces bekomme ich eine andere Fehlermeldung: Error! Reason: "de/" could not be found, closest page matching is Was mache ich hier falsch und wie kann ich es lösen? Danke für deine Hilfe! |
|
Verfasst am: 14. 09. 2007 [13:20]
|
|
|
brokemeister
Themenersteller
Dabei seit: 06.05.2007
Beiträge: 762
|
@Melle 84 und für alle anderen: Bei Fragen bitte extra Thread nutzen: Da dieser Thread sonst unübersichtlich wird. Die Datei steht aber im übrigen in der Überschrift... @stount: Vielen Dank für den Hinweis. Hier die Korrektur 3. Realurl mit localconf.php konfigurieren Häufige wird schon ein Beispiel von RealURL genutzt... Daher hier die entscheidene Stelle bei den preVars: Wichtig: Die Sprache muss an erster Stelle der preVars stehen! PHP $TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] ['preVars'] = array( array( 'GETvar' => 'L', 'valueMap' => array( 'de' => '0', 'en' => '1', ), 'valueDefault' => 'de', # 'noMatch' => 'bypass', ), ); oder für alle die schon einen Teil eine konfiguration haben, einfach den Mittelteil kopieren... PHP //$TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] = Array( ['preVars'] => array( array( 'GETvar' => 'L', 'valueMap' => array( 'de' => '0', 'en' => '1', ), 'valueDefault' => 'de', # 'noMatch' => 'bypass', ), ), //); Anmerkung: 'noMatch' wird nicht benötigt, da wir Suchmaschinen freundliche URLS & Links haben wollen. Man kann damit aber gerne mal spielen. [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 14.09.2007 um 13:26.] |
|
Verfasst am: 28. 09. 2007 [10:08]
|
|
|
brokemeister
Themenersteller
Dabei seit: 06.05.2007
Beiträge: 762
|
So hier noch einige Ergänzung die vielleicht auch ganz nützlich sind: TYPOSCRIPT config { sys_language_mode = default | content_fallback | strict sys_language_overlay = 0 | 1 | hideNonTranslated sys_language_softMergeIfNotBlank = table:column, table:column2 } Die Erläuterungen sind hier zu finden: http://www.typo3.net/tsref/setup/config/ [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 28.09.2007 um 10:08.] |
|
Verfasst am: 07. 04. 2008 [12:36]
|
|
|
brokemeister
Themenersteller
Dabei seit: 06.05.2007
Beiträge: 762
|
Ich pushe dieses HowTo mal nach, ob da es anscheinend häufig gebraucht wird, aber nicht gefunden wird... |
|
Verfasst am: 15. 07. 2008 [20:45]
|
|
|
Pablito
Dabei seit: 13.05.2008
Beiträge: 43
|
Irgendwie funktioniert das nicht mit 4.2.0 . Ist das anders ? Wenn ja, wo finde ich die Anleitung ? |
|
Verfasst am: 16. 07. 2008 [18:54]
|
|
|
brokemeister
Themenersteller
Dabei seit: 06.05.2007
Beiträge: 762
|
Pablito schrieb: Irgendwie funktioniert das nicht mit 4.2.0 . Ist das anders ? Wenn ja, wo finde ich die Anleitung ? Bitte nutze einen eigenen Thread. Aber es sollte sich nichts großartig in 4.2 geändert haben. Wennn du ein Prob hast, poste gleich deine Zeilen in deinem Thread. Raten ist schwierig... |



