Anleitung für Mehrsprachige Seiten mit Realurl [Gelöst]

  • brokemeister brokemeis...
    Jedi-Ratsmitglied
    0 x
    762 Beiträge
    0 Hilfreiche Beiträge
    23. 08. 2007, 12:41

    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/

    [b][i]Anleitung[/i][/b]

    [b]1. Sprache erzeugen[/b]

    >> 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.

    [i]Anmerkung: Die Standardsprache wird per TS definiert.[/i]

    [b]2. TSConfig für das Roottemplate definieren[/b]

    [TS]## 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][/TS]

    [b]3. Realurl mit localconf.php konfigurieren[/b]

    Häufige wird schon ein Beispiel von RealURL genutzt... Daher hier die entscheidene Stelle bei den preVars:

    [i]Wichtig: Die Sprache muss an erster Stelle der preVars stehen![/i]

    1. $TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] ['preVars'] => array(
    2. 'GETvar' => 'L',
    3. 'valueMap' => array(
    4. 'de' => '0',
    5. 'en' => '1',
    6. ),
    7. 'valueDefault' => 'de',
    8. # 'noMatch' => 'bypass',
    9. ),
    10. );

    [i]Anmerkung: 'noMatch' wird nicht benötigt, da wir Suchmaschinen freundliche URLS & Links haben wollen. Man kann damit aber gerne mal spielen. [/i]

    [b]4. Sprache wechseln - Linkerzeugen[/b]

    Dafür einfach an gewünschter Stelle folgende TS mit integrieren

    [TS]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[/TS]

    [b]5. .htaccess erweitern[/b]

    Als Vorlage dient die von Typo3 4.1.x mitgelieftere ModRewrite-Teil aus den .htaccess. (Alle Kommentare wurden gelöschen)

    [i]Wichtig:
    Reihenfolgen der Zeilen beachten!
    Durch '+' sind die neuen wichtige Zeilen gekennzeichnet. (Das Zeichen sollte dann weggelassen werden)[/i]

    [HTML]RewriteEngine On

    # Erzwingt einem Slash am Ende der Zeile, wenn es keine Datei ist.
    + RewriteCond %{REQUEST_FILENAME} !-f
    + RewriteCond %{REQUEST_URI} !(.*)/$
    + RewriteRule ^(.*)$ /$1/ [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/$1 [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule .* index.php [L][/HTML]

    Ich hoffe mal ich habe jetzt keinen Teil vergessen. Falls doch einfach eine kurze Nachricht an mich...

    Viel Spaß beim Nutzen! :)


  • brokemeister brokemeis...
    Jedi-Ratsmitglied
    0 x
    762 Beiträge
    0 Hilfreiche Beiträge
    23. 08. 2007, 12:53

    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...

    [TS]mod.SHARED {
    defaultLanguageFlag = de.gif
    defaultLanguageLabel = Deutsch
    }[/TS]

  • brokemeister brokemeis...
    Jedi-Ratsmitglied
    0 x
    762 Beiträge
    0 Hilfreiche Beiträge
    31. 08. 2007, 13:07

    [b]Für alle, die noch nicht viel mit PHP oder mit der .htaccess gearbeitet haben, sollten die Dateien sichern und als Kopie anlegen.
    [/b]

    localconf.php -> localconf.old
    .htaccess -> _htaccess.bak (Der Punkt am Anfang darf nicht mehr da sein!)

  • Melle84 Melle84
    Padawan
    0 x
    57 Beiträge
    0 Hilfreiche Beiträge
    14. 09. 2007, 10:03

    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

  • stoun stoun
    Jedi-Ritter
    0 x
    149 Beiträge
    0 Hilfreiche Beiträge
    14. 09. 2007, 12:51

    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

    [b]Parse error: parse error, unexpected T_DOUBLE_ARROW in /html/typo3conf/localconf.php on line 33[/b]

    Habe
    $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['preVars'] [b]=>[/b] array(
    auf
    $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['preVars'] [b]=[/b] 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!

  • brokemeister brokemeis...
    Jedi-Ratsmitglied
    0 x
    762 Beiträge
    0 Hilfreiche Beiträge
    14. 09. 2007, 13:20

    @Melle 84 und für alle anderen: [b]Bei Fragen bitte extra Thread nutzen: Da dieser Thread sonst unübersichtlich wird.[/b]
    Die Datei steht aber im übrigen in der Überschrift...

    @stount: Vielen Dank für den Hinweis. Hier die Korrektur

    [b]3. Realurl mit localconf.php konfigurieren[/b]

    Häufige wird schon ein Beispiel von RealURL genutzt... Daher hier die entscheidene Stelle bei den preVars:

    [i]Wichtig: Die Sprache muss an erster Stelle der preVars stehen![/i]

    1. $TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] ['preVars'] = array(
    2. 'GETvar' => 'L',
    3. 'valueMap' => array(
    4. 'de' => '0',
    5. 'en' => '1',
    6. ),
    7. 'valueDefault' => 'de',
    8. # 'noMatch' => 'bypass',
    9. ),
    10. );

    oder
    für alle die schon einen Teil eine konfiguration haben, einfach den Mittelteil kopieren...

    1. //$TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] = Array(
    2. ['preVars'] => array(
    3. 'GETvar' => 'L',
    4. 'valueMap' => array(
    5. 'de' => '0',
    6. 'en' => '1',
    7. ),
    8. 'valueDefault' => 'de',
    9. # 'noMatch' => 'bypass',
    10. ),
    11. ),
    12. //);

    [i]Anmerkung: 'noMatch' wird nicht benötigt, da wir Suchmaschinen freundliche URLS & Links haben wollen. Man kann damit aber gerne mal spielen. [/i]

  • brokemeister brokemeis...
    Jedi-Ratsmitglied
    0 x
    762 Beiträge
    0 Hilfreiche Beiträge
    28. 09. 2007, 10:08

    So hier noch einige Ergänzung die vielleicht auch ganz nützlich sind:

    [TS]config {
    sys_language_mode = default | content_fallback | strict
    sys_language_overlay = 0 | 1 | hideNonTranslated
    sys_language_softMergeIfNotBlank = table:column, table:column2
    }[/TS]

    Die Erläuterungen sind hier zu finden: http://www.typo3.net/tsref/setup/config/

  • brokemeister brokemeis...
    Jedi-Ratsmitglied
    0 x
    762 Beiträge
    0 Hilfreiche Beiträge
    07. 04. 2008, 12:36

    Ich pushe dieses HowTo mal nach, ob da es anscheinend häufig gebraucht wird, aber nicht gefunden wird... ;)

  • Pablito Pablito
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    15. 07. 2008, 20:45

    Irgendwie funktioniert das nicht mit 4.2.0 . Ist das anders ? Wenn ja, wo finde ich die Anleitung ?

  • brokemeister brokemeis...
    Jedi-Ratsmitglied
    0 x
    762 Beiträge
    0 Hilfreiche Beiträge
    16. 07. 2008, 18:54

    [quote="Pablito"]
    Irgendwie funktioniert das nicht mit 4.2.0 . Ist das anders ? Wenn ja, wo finde ich die Anleitung ?
    [/quote]

    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...