You are currently viewing TYPO3-Tutorial Teil 72: Mehrsprachige Websites

Mit TYPO3 lassen sich auch sehr gut mehrsprachige Websites realisieren. Dabei gibt es allerdings ein paar Punkte zu beachten.
Update vom 15.05.
Dank eines Kommentars bei YouTube von csac3604 gibt es eine kleine Korrektur. Der Code für das TSConfig der Root-Seite muss folgendermaßen lauten, damit es mit der Darstellung der Flagge der Standardsprache klappt.

mod.SHARED {
  defaultLanguageFlag = de
  defaultLanguagelabel = deutsch
}

Vielen Dank für den Tipp! Im Wiki habe ich das auch entsprechend korrigiert.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden


Tutorials downloaden

Dieser Beitrag hat 46 Kommentare

  1. TheFox

    Hallo, ich habe mir dein Video angeschaut, vielen Dank!
    Einen 2ten Sprachbaum habe ich auch noch nie gemacht. Zu erwähnen wäre jedoch noch, das man das Fallback-Verhalten Grundsätzlich über die Typo3 Einstellung
    [FE][hidePagesIfNotTranslatedByDefault] = 1 verändern kann und dann bei den Seiteneigenschaften bei den 2 Checkboxen pro Seite angeben kann, was mit der Übersetzung passieren soll.
    Damit kann man auch Seiten in den anderen Sprachen haben, welche in der Standard Sprache nicht angezeigt werden.
    Einige Sachen sind in deiner Config aus meiner Sicht jedoch falsch.
    1. config.linkVars = L
    Wenn das Global angegeben wurde, muss das innerhalb der Condition nicht nochmal stehen. Ausserdem kann man bei linkVars angeben welche Werte erlaubt sind. Also zum Beispiel: linkVars = L(0-9)
    Den Default Wert 0 muss man dazunehmen, wenn man mit der Extension RealUrl arbeitet, und möchte das bei Deutsch ( Default Sprache ) der Sprachprefix /de/ auch im Pfad steht ( Wie das bei CoolURI ist, weiss ich nicht )
    Damit es danach klappt braucht es noch.
    config.defaultGetVars.L = 0
    ( das ist neu und erst ab 4.3 oder so möglich )
    2. config.locale_all
    Die Config so wie bei dir angegeben ist für nix. Kurzversion: Diese Config steuert unter anderem PHP, damit dies die richtige Sprache hat, als das beim Datum zum Beispiel: Montag steht statt Monday.
    Zudem muss die Angabe übereinstimmen mit den auf dem Server installierten Sprachpackete. ( auf meiner Webseite, Schritt 6 ist das etwas genauer erklärt )
    Also wären gültige Werte zum Beispiel: de_CH, de_CH.utf8, de_DE, de_DE.utf8, de_DE@euro
    Gruss
    TheFox

    1. Wolfgang Wagner

      Danke für deine Ergänzungen.
      Zu 1.) Als ich das letzte mal diesen Parameter nur in der allgemeinen Config drin hatte, wurde L in den anderen Sprachen nicht mit übergeben. Seitdem baue ich es in der Sprachbezogenen Config auch ein.

  2. Manuel

    Hallo,
    ich soll in eine Seite die Russische Übersetzung einbauen. Wenn ich auf Russisch umschalte, dann bekomme ich auch nicht wie bei den anderen Sprachen en/home.html oder fr/home.html angezeigt sondern nur die ID der Sprache.
    Im Konfig Template habe ich die Sprache so eingestellt:
    // Language Russisch
    [globalVar = GP:L = 2]
    config.linkVars = L
    config.sys_language_uid = 2
    config.language = ru
    config.locale_all = ru_RU
    config.htmlTag_langKey = ru_RU
    [global]
    Des weiteren werden mir uch die Russischen schriftzeichen nicht angezeigt, sondern nur ??????. Ich habe gelesen das man die Seite auf utf-8 umstellen soll, aber das habe ich von anfangan gehabt.
    Hast du da eine Idee?

    1. Wolfgang Wagner

      Ist die ID der russischen SPrache auch sicher die 2?
      Zum Zeichensatzproblem: bist du sicher, dass auf dem Webserver der russische Zeichensatz installiert ist?
      Falls du SSH-Zugriff hast, gib in der KOnsole mal „locale -a|grep ru“ ein und schau, wie die Ausgabe aussieht.
      Falls du keinen SSH-Zugang hast -> frage deinen Hoster.

      1. Manuel

        Ja, die ID ist die 2.
        Wenn ich auf Russisch umschalte, dann bekomme ich den Link so: /home.html?L=2
        Schalte ich jetzt aber auf Englisch, sieht der Link so aus: /en/home.html
        Also denke ich das Cooluri richtig funktioniert.
        Das mit dem Zeichensatz frage ich mal nach!

        1. Wolfgang Wagner

          Vielleicht eröffnest du wegen der URL doch mal ein Thema im Forum, vielleicht fällt einem der anderen User noch was dazu ein.

      2. Manuel

        Also der Zeichensatz ist auf dem Server drauf. Der Hoster schreibt mir das ich einen Eintrag in der .htaccess machen soll:
        AddDefaultCharset windows-1251
        Aber ich denke dann wird wohl alles auf russisch sein.

          1. Manuel

            nur auf der Subdomain wo die Typo3 installation liegt.

    1. Manuel

      Nein, leider nicht!
      Oder muss das direkt ins ROOT Verzeichniss?

      1. Wolfgang Wagner

        Wenn, dann muss es in die .htaccess in dem Verzeichnis, in dem die index.php liegt. Aber ob das dann funktioniert, weiss ich nicht. Tipp: frag mal im Forum danach, das stehen die Chancen besser, dass einer ne Lösung findet 😉

  3. Sascha Andreas

    Moin,
    eine sehr gute Anleitung nur habe ich das Problem, das beim Aufruf einer anderen Sprache ausser der default-sprache der Inhalt immer zweimal hintereinander angezeigt wird. Hast du dazu eine Idee? (Ver. Typo3 4.6.1)

  4. Heiko Leuband

    Hallo wie kann ich die Seite automatisch Übersetzen lassen muss alles manuale Übersetzen muss ich da noch was haben ?

      1. Heiko Leuband

        ja bei dir im Video hast du Drauf geclickt und da war es Übersetzt auf Englisch ……

        1. Wolfgang Wagner

          Wo habe ich geklickt und was war dann übersetzt?

  5. Teresa

    Hallo Wolfgang,
    Vielen Dank erstmal für diese super Tutorials!
    Jetzt habe ich eine Frage zur Mehrsprachigkeit und hoffe, du kannst mir weiterhelfen. Ich habe eine Typo3 Seite mit fixen Inhaltselementen und die Mehrsprachigkeit eingerichtet.
    Die flexiblen Inhalte werden ohne Probleme übersetzt aber die fixen Inhalte werden nicht übersetzt bzw. doppelt angezeigt.
    Die fixen Inhalte habe ich durch Marker im Typoscript per z.B.
    footer = CONTENT
    footer {
    table = tt_content
    select {
    pidInList = 10
    where = colPos = 3
    orderBy = sorting
    }
    }
    definiert und auf einer Seite in einem SysOrdner erstellt. Diese Inhalte werden aber leider nicht angezeigt bzw. eben doppelt.
    Ich hoffe, du kannst mir weiterhelfen und mir sagen, woran das liegen könnte?
    Vielen Dank schonmal im Voraus!
    Liebe Grüße,
    Teresa

    1. Wolfgang Wagner

      Füge mal nach orderBy = sorting folgende Zeile hinzu:
      select.languageField = sys_language_uid

      1. Teresa

        Vielen Dank für die rasche Antwort!
        Ich hab’s jetzt ausprobiert aber leider ändert das Hinzufügen dieser Zeile nichts. Die Inhalte werden trotzdem doppelt angezeigt :-/ Komisch.
        Ich hab jetzt schon einiges ausprobiert, aber nichts scheint zu funktionieren.
        Hättest du vielleicht noch eine Idee?
        Ich bin dir wirklich sehr dankbar für die Hilfe.
        Liebe Grüße,
        Teresa

        1. Wolfgang Wagner

          Hast du die Inhaltselemente auf einer normalen Seite oder einem Sysordner abgelegt? Weil ein Sysordner ja keinen Spalten in dem Sinn wie eine normale Seite hat.

          1. Teresa

            Ich hab die Inhalte auf einer normalen Seite in einem SysOrdner.
            Wäre es besser ich verschieb die Seite aus dem SysOrdner?

          2. Wolfgang Wagner

            Nein, das ist kein Problem. Hm, irgendwie gehen mir jetzt die Ideen aus. Vielleicht beschreibst du doch hier im Forum mal das Problem.

          3. Teresa

            Danke, ja das werde ich machen!
            Vielen Dank für deine Mühe und Hilfe!

          4. Teresa

            Ich hab’s gefunden und es war ein Schlampigkeitsfehler meinerseits.
            Das Hinzufügen von select.languageField = sys_language_uid hat einwandfrei funktioniert, aber ich hatte vergessen, dass ich das select weggebe 🙂
            Danke nochmal!

  6. rendjy

    Hallo Wolfgang,
    vielen Dank für die super Tutorials!
    Ich habe deine Anweisungen gefolgt und eine mehrsprachige Seite aufgebaut.
    Als ich aber eine Übersetzung der Home-Seite erstellen wollte, habe ich festgestellt, dass bei mir die Lokalisierungsansicht im Seitenmodul fehlt.
    Dann habe ich alles wieder kontrolliert und festgestellt, dass auch bei der Festlegung der einzelnen Sprachen im Listenmodul auf der Wurzelseite die Spalte für die ISO Kennung fehlt.
    Hast du vielleicht eine Idee, voran das liegen könnte?

    1. rendjy

      Lösung gefunden!!!
      Einfach die Ext. „static_info_tabels“ installiert!

  7. Hanz Maaz

    Hi Wofgang,
    wie kann ich den die Sprachumschaltung per „Flagge“ am geschicktesten verschwinden lassen, so daß ich sie später bei Bedarf ganz einfach wieder aktivieren kann?
    LG
    Hanz

    1. Wolfgang Wagner

      z.B. die Extension deaktivieren, oder als Quick&Dirty-Lösung den kompletten Bereich per CSS ausblenden, oder wenn die Extension per Typoscript eingebunden wird, diesen Bereich einfach auskommentieren.

  8. Alex

    Hallo Wolfgang,
    vielen Dank für die Tutorials!
    I habe ein Problem.
    Standart Introduction Package habe ich installiert und möchte Multisprachen aus Menü zu haben. Das funktioniert mit dem Link (z.B. cmsdemo/index.php?id=25&L=2), aber cmsdemo/examples/sprache-link/ funkzioniert nicht.
    Was soll ich korrigieren?
    Liebe Grüße,
    Alex

    1. Wolfgang Wagner

      Da kann ich dir nicht helfen, das Introduction Package habe ich mir noch nie genauer angeschaut.

      1. Alex

        Danke nochmal!

  9. Frank

    wegen der Flagge.
    defaultLanguageFlag = de
    anstelle von
    defaultLanguageFlag = de.gif
    dann wird die Flagge richtig angezeigt.
    Gruß
    Frank

  10. MKD

    Hallo Herr Wagner,
    tolle Tutorials. Aber trotzdem ist mir wohl ein Fehler unterlaufen.
    Fehlermeldung:
    Core: Error handler (BE): PHP Warning: DOMDocument::load() [domdocument.load]: I/O warning : failed to load external entity "/home/www/xxxxxxxx/typo3/sysext/t3editor/res/tsref/tsref.xml" in /home/www/xxxxxxxxx/typo3/sysext/t3editor/classes/ts_codecompletion/class.tx_t3editor_tsrefloader.php line 89
    können Sie mir bitte weiterhelfen.
    Danke für die Bemühungen.
    Tschüß

    1. Wolfgang Wagner

      Diese Fehlermeldung sagt mir nichts, vielleicht mal einfach danach googlen.

  11. Manuel aus Berlin

    Hallo Wolfgang, erstmal ruhige Feiertage usw 🙂
    Leider bringt mich ein (kleines ?) Problem grad dazu fast zu verzweifeln. Die eite soll als zweite Sprache Türkisch haben.
    Es geht um folgendes. Ich habe wie in deinem Video die TS so verändert das folgendes im Code steht
    sys_language_uid = 0
    config.linkVars = L
    language = de
    locale_all = de_DE
    htmlTag_langKey = de
    sys_language_mode = content_fallback
    sys_language_overlay = hideNonTranslated
    config.sys_language_overlay = 1
    config.sys_language_overlay = hideNonTranslated
    [globalVar = GP:L = 1]
    config.sys_language_uid = 1
    config.language = tr
    config.locale_all = en_EN
    config.htmlTag_langKey = tr
    [global]
    [globalVar = GP:L = 2 ]
    config.sys_language_uid = 2
    config.language = en
    config.locale_all = en_EN
    config.htmlTag_langKey = en
    [global]
    }

    Den Eintrag im Türkischen „config.locale_all = en_EN“habe Ich extra reingemacht da es allem Anschein nach ein Problem mit diesem türkischen Eintrag gibt. (lt. Google usw)
    Nicht desto trotz hat mein Problem damit nichts zu tun. Es geht darum das mein deutscher Inhalt ganz regulär auf der Domain http://xxxxxxxxxxx.de/index.php?id=36&L=0 liegt. Ich habe dann wie in deinem Video bei Minute 16:40 die Domain auf http:/xxxxxxxxxx/index.php?id=36&L=1 geändert mit dem Ergebniss das der Inhalt von L = 0 (deutsch) zu sehen ist.
    Selbst das umstellen via sr_language_menu bringt nicht den gewünschten Erfolg obwohl dort auch in der Url zu sehen ist das eigentlich id=36&L=0
    Kannst du mir einen kleinen Tipp (gerne auch einen Großen) geben woran das liegen könnte ?
    gruß Manuel
    p.s.: Weihnachten Nachtschicht, klasse -.-

    1. Wolfgang Wagner

      Hast du denn die zusätzlichen Sprachen über das Listenmodul angelegt?

  12. Manuel aus Berlin

    Ja habe Ich.
    [img]http://666kb.com/i/ca1gqjscysagdzwzm.gif[/img]
    [img]http://666kb.com/i/ca1grc63890w6v1du.gif[/img]
    [img]http://666kb.com/i/ca1grqdw0x22oxj2a.png[/img]
    Ich kann dort auch Daten eintragen. (Im Moment Loremtexte) aber egal was Ich mache wird das nix mit dem Dummytext 🙁

  13. Wolfgang Wagner

    Du musst auf deiner Root-Seite weitere Website-Sprachen anlegen.

  14. Gößler

    Hallo,
    Ich hab anscheinend das gleiche Problem wie Manuel.
    Sprachen angelegt, Inhalte angelegt, TS-Script eingefügt jedoch wird nur der Deutsche(Standart) Inhalt angezeigt.
    Verwendete Version ist Typo 4.7.7 liegt es vllt daran?
    lg

  15. ringo

    hallo, danke fuer die anleitung, eigentlich ganz einfach –
    (fuer mich als typo3 beginner genau richtig)
    leider werden bei mir die uebersetzten inhalte nicht angezeigt???
    navi schaltet sich nach en um, inhaltsbloecke sind uebersetzt und auch
    aktiviert. trotzdem kommt der inhalt nur in deutsch???
    hast du einen idee?
    danke holger

  16. Gößler

    Ich konnte das Problem beheben indem ich die Typo3 Version auf 4.5 runterschraubte.
    lg

    1. ringo

      ja ich habe die version 4.5.4 sollte also gehen oder?

  17. Lenz

    Hey, bei mir Funktioniert die Sprachumschaltung nicht 🙁
    Die menüs werden zwar umgeschaltet (bis auf englisch?!) aber der Inhalt nicht.
    Woran kann das liegen?

    1. ringo

      bei mir lag es daran ->
      anstelle von
      config.sys_language_overlay = hidenontranslated
      einfach
      config.sys_language_overlay = 1
      (warum das erste nicht greift ????????????????)
      ciao ringo

Kommentare sind geschlossen.