PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Browser Sprache erkennen und umschalten

Die Internationalisierung von Webseiten und Portalen gehört mittlerweile zum guten Ton. Aber wie finden sich die User in diesem Sprachdschungel zurecht, wenn englisch nicht gleich englisch ist? Was heisst das überhaupt?

Englisch ist dann nicht mehr nur englisch, wenn sich ein Portal an unterschiedliche Märkte richtet. Das fängt bei Produktbezeichnungen an und hört bei Produktvarianten auf. Wenn man in Australien ein Produkt kauft, kann es unter Umständen identisch mit dem US-Amerikanischen sein - muss aber nicht. Oft heisst es anders und hat einen anderen Preis. Auch die Produktbeschreibung und Ilustration variiert mit hoher Wahrscheinlichkeit - andere Länder, andere Sitten eben.

Ein Amerikaner wird nur selten eine Domain mit .us Endung aufrufen - ein Deutscher Surfer ebenfalls. Gängig ist .com - und da fängts schon an: Welche Seite wird dann dem Benutzer angezeigt? Das könnte man an eine Sprachschaltung koppeln, denn das HTTP Protokoll ist so nett und erlaubt das mitsenden der Lieblingssprache der Nutzer.

Technisch recht unaufwendig, stecken trotzdem jede Menge strategische Überlegungen im Sprachumschalter. Denn man sollte seine Websitebesucher nicht verärgern, in dem man ihnen ihre Mündigkeit anspricht.

Die Überlegungen

Das bedeutet man bestimmt zunächst automatisch an hand der übertragenen Sprache die vermeindlich beste Zielpräsenz oder -seite. Jetzt kommt der wichtige Teil: Man teilt dem Benutzer mit, das er automatisch weitergeleitet wurde. Das ist schnell bestimmt - ich schlage vor, das macht man mit einem nicht gesetzten Cookie (Dazu gleich mehr).

Nachdem man dem Benutzer mitgeteilt hat, das er weitergeleitet wurde, sollte er die alternativen URLs als Auswahl angezeigt bekommen - inklusive der Möglichkeit zu sagen, das er mit der Weiterleitung zufrieden ist. Die Antwort (also Alternativ URL oder die auf der man sich gerade befindet) wird in ein Cookie gepackt.

Wenn die automatische Sprachauswahl erneut ausgeführt wird, sollte nun überprüft werden, ob bereits das Cookie mit der von Benutzer gewünschten Ziel URL gesetzt ist - wenn ja dorthin weiterleiten. Wenn nicht, weitermachen wie bisher auch. Auf der Zielseite sollte man dem Benutzer auf jeden Fall wieder mitteilen, das er dort gelandet ist, weil er das Ziel beim letzen Besuch festgelegt hat. Und vor allem (ganz wichtig) die Möglichkeit geben, die Weiterleitung zu korrigieren und wieder Alternative Ziele aufzeigen.

Die Programmierung

Die Abfrage der vom Browser übermittelten Sprache gestaltet sich denkbar einfach über die PHP Variable $_SERVER['HTTP_ACCEPT_LANGUAGE'] - die folgende Sprachkürzel enthalten kann:

  • de
  • de_DE
  • de,en_US
  • de,en-US;q=0.7,en-GB;q=0.3

Das Sprachkürzel “de” ist ein Wildcard-Sprachkürzel und ist vergleichbar mit de_* - damit wären also alle deutschsprachigen Länder abgedeckt.

Die zweite Variante deckt die Sprachregion ab - de_DE kennzeichnet eindeutig Deutschland. Durch Kommatrennung kann man auch mehrere Länder bzw. Sprachen anfordern. Die Reihenfolge enspricht dabei der Priorität.

Die Priorität kann man im letzten Beispiel auch übermitteln - sie wird mit Semikolon vom Sprachkürzel getrennt. Der Internet Explorer generiert die Prozentuale Gewichtung automatisch (0.7 = 70%, 0.3 = 30%).

Spielereien weiterleitungstechnischer Art sind daher keine Grenzen gesetzt - viel Spaß!

Ähnliche Artikel:

  1. PHP Sessions mit Javascript erkennen
  2. Die ältesten Browser der Welt

Joe meint dazu:

6. November 2009 um 01:46

Hi, sehr interessanter Beitrag. War eben auf der Suche im WWW zu passenden Artikeln zu dem Thema - wobei deiner der aktuellste bisher ist.

Nur das wirft gleich auch eine Frage auf: Ist diese Herangehensweise noch aktuell und valide oder gibt es da schon modernere Methoden.
Noch nen heißen Tipp wo ich mehr (aktuelles) zu dem Thema finde?

Danke und liebe Grüße

Joe

Dani meint dazu:

1. August 2011 um 22:21

Alter Post, aber er hat mir viel geholfen. Die Javascript Lösungen sind alle nicht zu gebrauchen. Die PHP-Lösung ist die einzig verlässliche. Ich habe eine Trefferquote von ca 80%

RSS für Kommentare zu diesem Artikel · TrackBack URI

Schreib Deine Meinung