Sven Rautenberg: automatische Weiterleitung je nach Landessprache

Beitrag lesen

Hi!

Will bei einer Seite die Besucher automatisch je nach Landessprache auf die Seite in entsprechender Sprache weiterleiten.

In PHP bekomme ich ja die Sprache die der Browser mitschickt mit

HTTP_ACCEPT_LANGUAGE.

Jetzt überlege ich nur, wie ich die Weiterleitung am besten gestalte, entweder mit Refresh als Metavariable, die ich in eine If-Bedingung schreibe, oder mit dem Header. Wie würdet Ihr das machen? Ich tendiere zur Zeit zu der Meta-Variante, da ich das einfacher finde, und evtl noch kurz 3 Sekunden schreiben will, dass die Sprache ausgelesen wird, irgendwas in der Art.

Mit dem Header gehts aber problemloser, weil du nicht auf Browserfunktionalität angewiesen bist. Im übrigen interessiert es die User eigentlich garnicht, ob du ein wenig Content-Negotiation machst oder nicht, solange du immer noch die Wahl läßt. Man muß also immer die Sprachwahl haben, die Angabe der bevorzugten Sprache ist nur ein kleiner Hinweis, was vielleicht gewünscht ist.

Das geht doch mit dem Header nicht, da dieser immer als erstes gesendet werden muß, oder?

Der Header muß in der Tat als erstes gesendet werden. Es ist allerdings bei deinem Problem auch das einzige, was gesendet werden muß. Wichtig ist, daß du gleich mit dem ersten Zeichen in der ersten Zeile mit "<?php" den PHP-Code aktivierst und vor dem Befehl "header" nichts anderes ausgibst, weder mit echo/print/... noch im HTML-Modus.

Gibt es mit dem Auslesen der Sprache irgendwelche Probleme, oder bekomme ich die bei jedem Browser mit obigem Befehl?

Das ist kein Befehl, sondern eine Umgebungsvariable, und die gibts natürlich nur dann, wenn der Browser die Angabe sendet. Du mußt von folgenden Dingen ausgehen:

1. Die Angabe kann fehlen. Du brauchst also einen Standardwert, auf den du notfalls zurückgreifst.

2. Die Angabe kann Sprachen fordern, die auf deiner Seite garnicht vorkommen. Was passiert dann? Standardsprache vielleicht?

Und noch eine andere Frage, woher weiß ich genau die anderen Abkürzungen, ich kann sie mir zwar in etwa denken, aber ich wäre da schon gerne sicher:-)

Die Liste der Sprachauswahl in einem beliebigen Browser sollte als Anfang reichen, oder?

- Sven Rautenberg