TYPO3 Plugin:

language_router

Sprach-Router

Eine einfache Erweiterung, die Umleitungen zu Sprachen oder Seiten bereitstellt, sowohl für Single- als auch für Multi-Tree-Setups, basierend auf sprache des Benutzeragenten und/oder geoip.

TypoScript-Beispiel:

plugin.tx_languagerouter.settings {
    routen {
        / / / Erste Priorität: Route nach Land, erkannt aus GeoIP.
        1 {
            // Dies gibt einen 2-stelligen Ländercode zurück.
            erkennung = Land
            ziele {
                // Umleiten zur aktuellen Seite mit L = 1.
                DE.L = 1

                // Umleiten auf unsere spezielle Seite (id = 13) in der Standardsprache (L = 0), um die Landessprache auszuwählen.
                CH {
                    L = 0
                    id = 3
                }
            }
        }

        // Zweite Priorität: Route nach Browsersprache
        2 {
            // Dies gibt ein Gebietsschema zurück.
            erkennung = akzeptiertSprachen
            ziele {
                // Umleitung auf unsere spezielle Seite (id = 4) in deutscher Sprache (L = 1).
                de_CH {
                    L = 1
                    id = 4
                }

                // Umleitung auf unsere spezielle Seite (id = 4) in Französisch (L = 2).
                fr_CH { {
                    L = 2
                    id = 4
                }

                // Umleitung auf unsere spezielle Seite (id = 4) in Italienisch (L = 3).
                it_CH {
                    L = 3
                    id = 4
                }

                // Fallback und allgemeine deutsche Sprache: Umleitung auf die aktuelle Seite mit L = 1.
                de_DE.L = 1
            }
        }

        // Dritte Priorität: Wenn 1. und 2. nicht übereinstimmen.
        3 {
            erkennung = Rückfall

            / / Achtung: "Keine Erkennung" kann nicht mehrere Ziele haben, deshalb ist es "Ziel".
            ziel {
                L = 23
            }
        }
    }
}

Verwendung

Language Router kann auf zwei Arten verwendet werden:

  1. Fügen Sie das bereitgestellte Plugin-Element auf einer Landing Page ein, die Ihre Besucher an den richtigen Ausgangspunkt umleiten soll.
  2. Hinzufügen des Plugins über TypoScript

Beachten Sie, dass das Plugin vom Typ USER_INT ist, was zu den Seiten führt, die es beim Entcachen verwendet wird

Erkennungsarten.

Der Language Router bietet die folgenden Erkennungsarten:

Erkennung: acceptedLanguages

Der Erkennungsmodus acceptedLanguage liest den Parameter HTTP_ACCEPT_LANGUAGE und analysiert alle akzeptierten Sprachen. Dieser Parameter enthält in der Regel ein Gebietsschema (wie de_CH) und ein paar Sprachcodes, die ebenfalls unterstützt werden (wie de, en, fr). Sprachcodes werden auch in Gebietsschemata umgewandelt (wie in de_DE für de, en_EN für en und fr_FR für fr), um eine konsistente Konfiguration zu haben.

Erklärendes Beispiel
Wenn Ihr Betriebssystem Englisch als bevorzugte Sprache und Deutsch als zweite Sprache eingestellt hat, kann Ihr Browser einen HTTP_ACCEPT_LANGUAGE-Header senden, der so aussieht

en-US,en;q=0.8,de;q=0.6,fr;q=0.4

Dieser verarbeitet dann en_US, en_EN, de_DE, fr_FR, in dieser Reihenfolge.

Vor jedem Redirect wird der aktuelle Page Uid- und Language-Parameter mit dem konfigurierten verglichen, um nicht in einer Redirect-Schleife zu enden.

Erkennung: Land

Die Ländererkennung basiert auf der Verfügbarkeit von php-geoip. Wenn sie nicht verfügbar ist, wird die Konfiguration der Ländererkennung ignoriert. Um Informationen darüber zu erhalten, ob Sie diesen Erkennungstyp verwenden können oder nicht, wird ein Statusbericht bereitgestellt, den Sie im Backend-Modul System > Reports finden.

Um das Land der aktuellen Seite mit dem konfigurierten Land zu vergleichen, müssen Sie config.country für jeden Sprachkonditionsblock einstellen, andernfalls weiß der Sprachrouter nicht, zu welchem Land die aktuell gerenderte Seite gehört und landet in einer Redirect-Schleife.

Beispiel:

[globalVar = GP:L=1]
    config {
        sys_language_uid = 1
        sprache = de
        locale_all = de_CH
        land = CH
        htmlTag_setParams = lang="de" class="lang-de"
    }
(Ende)

Erkennung: Rückfall

Wie der Name schon sagt, ist es keine echte Erkennung, sondern ein Fallback. Verwenden Sie diese Art der Konfiguration, wenn Sie zu einer Fallback-Seite weitergeleitet werden müssen, falls eine vorherige Route nicht übereinstimmt.

Beispiele

Länder mit einer oder mehreren Sprachen

Unter der Annahme der folgenden Sprachkonfiguration:

Land Sprache Gebietsschema sys_language_uid
Die Schweiz Deutsch de_CH 0
Die Schweiz Französisch fr_CH 1
Deutschland Deutsch de_DE 2
Belgien Niederländisch nl_BE 3
Belgien Französisch fr_BE 4
(Any) Englisch de_DE 5

Die Routen, die dem Setup von oben entsprechen, können so aussehen:

plugin.tx_languagerouter.settings {
    routen {
      /*
       * Route zuerst nach Browsersprache, um die
       * länder mit mehreren Sprachen zuerst behandeln.
       *
       * Dies funktioniert nur, wenn das Betriebssystem eines Besuchers
       * hat das richtige Gebietsschema für das Land eingestellt, in dem sich die
       * besucher lebt in!
       */
      1 {
        erkennung = akzeptiertSprachen
        ziele {
          fr_CH.L = 1
          fr_BE.L = 4
        }
      }

      /*
       * Alle unübertroffenen Routen der vorherigen Routen
       * by-Browser-Sprachenkonfiguration wird durchgeführt
       * die von dem Land, in dem sie leben, geleitet werden.
       */
      2 {
        erkennung = Land
        ziele {
          CH.L = 0
          DE.L = 2
          BE.L = 3
        }
      }

      /*
       * Wenn weder die erste noch die zweite Regel übereinstimmen,
       * ein Rückgriff auf unsere logische "Standard"-Sprache erfolgt.
       */
      3 {
        erkennung = Rückfall
        ziel {
          L = 5
        }
      }
    }
  }

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.