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:
- Fügen Sie das bereitgestellte Plugin-Element auf einer Landing Page ein, die Ihre Besucher an den richtigen Ausgangspunkt umleiten soll.
- 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.
[DependciesAndConflicts]