TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

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! icon_smile.gif

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 23.08.2007 um 12:43.]
ProfilWWW
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
}
ProfilWWW
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.]
ProfilWWW
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
Profil
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!
Profil
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.]
ProfilWWW
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.]
ProfilWWW
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... icon_wink.gif
ProfilWWW
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 ?
ProfilWWW
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...
ProfilWWW