Spracherkennung für TYPO3

September 9, 2020 Tim Lochmüller

Achja… der Benutzer sollte immer auf der richtigen Sprache landen.

Kunde im Workshop

Dieser kleine Nebensatz in einem Workshop oder einer Anforderung für ein mehrsprachiges TYPO3  lässt uns sofort an eine Spracherkennung denken. Diese gibt es in TYPO3 als verschiedene Extensions, jedoch nicht als eine Version, welche zahlreiche Features unterstützt und modern als PSR-15 Middelware bereitgestellt wird. Grund genug unserer Spracherkennung aus unserem TYPO3 Master auszugliedern, zu erweitern und separat als Extension zu publizieren.

Spracherkennung – Wie geht das?

Doch was genau ist eine Spracherkennung eigentlich und wie funktioniert das? Und was ist „die richtige Sprache“? Jeder Browser hat eine Liste von konfigurierten Sprachen, welche der Benutzer des Browser beliebig einstellen kann. Diese Liste wird an jede Webseite übermittelt die wir aufrufen. Die Liste besteht dabei nicht nur aus Sprachen (Beispiel „de“ für Deutschland), sondern enthält auch regionale Ausprägungen in Form eines Locales – zu Deutsch „Gebietsschema“ (z.B. „de_CH“ für Deutsch in der Schweiz). Dadurch können wir auf der Webseite auch Währungen, Datums- und Zeit-Angaben oder auch Zahlen richtig formatieren.

Diese Liste (Beispiel von meinem Browser: „de, de_DE, en, en_GB“) kann dann von dem Server ausgewertet werden und entsprechend darauf reagiert werden. An dieser Stelle findet ein Mapping von den Sprachen/Locales des Benutzers mit den Sprachen im TYPO3 statt, um die „am besten passenden Sprache“ zu wählen. Hierbei gibt es verschiedene Vorgehen, gerade wenn die erste Sprache nicht direkt einen Treffer hat. „Am besten“ ist dies bzgl. nämlich ein schwammiger Begriff, da das Regelwerk oft nicht mit den Business-Interaktionen der Kunden zusammen hängt. Geografische Grenzen oder gar Geofencing spielen bei einer Sprach-Erkennung eigentlich eine untergeordnete Rolle.

Wird eine passende Sprache ermittelt, wird dorthin weitergeleitet. Wird keine Gefunden, greift weiterhin ein Default. That’s it!

TYPO3 Extension „Language Detection“

Unsere Integration – die Extension EXT:language_detection – kann über das TER oder auch via composer installiert werden. Nach der Installation kann die komplette Konfiguration mittels des TYPO3 Site-Module durchgeführt werden. Dabei hat die Extension folgende besondere Merkmale:

  • Ob die Language Detection durchgeführt werden soll oder nicht, wird mittels eines PSR-14 Events gesteuert und ist somit gut erweiterbar.
  • Die Integration ist für PHP >= 7.4 und TYPO3 >= 10.4 und basiert somit auf einer modernen Code-Basis.
  • Die Konfiguration ist denkbar einfach und kann vollständig über das TYPO3 Backend erfolgen.
  • Die Sprache der IP Adresse (Mittels der IP Adresse wird versucht das Land zu ermitteln und bei erfolg wird die „übliche“ Sprache des Landes ermittelt) kann hinzugezogen werden, wenn man dies möchte (Achtung: Datenschutz!).
  • Der Weiterleitung Code kann frei konfiguriert werden.
  • Parameter können an die Ziel-URL mit übergeben werden, was z.B. für Tracking von Benutzern wichtig ist.

Alles in allem eine schöne Extension geworden, welche genau das tut, was sie soll. Wir freuen uns immer über Feedback. Vielleicht habt ihr ja Anforderungen an eine Spracherkennung, die richtig cool wären. Sagt einfach Bescheid und probiert die Extension gerne aus!

Funfact: Sprachen haben keine Flaggen. Think about it 😉

Share This: