Vor allem international agierende Unternehmen können auf eine mehrsprachige Internetseite nicht verzichten. Mit ein wenig PHP lässt sich eine Sprachauswahl einfach realisieren.
Zunächst ermitteln wir die Sprache des Benutzers. Diese wird vom Browser bei jedem Seitenaufruf an den Server übermittelt:
$sprache_vorauswahl = substr($sprache_vorauswahl, 0, 2);
Es wird ein Sprachenkürzel in der Form »de«, »en« etc. an die Variable $sprache_vorauswahl übergeben. Auf diese Weise lässt sich bereits eine Vorauswahl der Sprache treffen. Da einige Browser eine längere Zeichenkette mit weiteren Informationen zur Sprache übermitteln, werden per substr() nur die ersten beiden Zeichen benutzt.
So etwas lässt sich automatisieren
Im nächsten Schritt wird überprüft, ob die Webseite in der ausgewählten Sprache zur Verfügung steht:
$sprachen = "(de|en)";
if(preg_match($sprachen, $sprache_vorauswahl) == false) $sprache_vorauswahl
= "en";
Die Variable $sprachen enthält einen regulären Ausdruck mit den Sprachkürzeln der zur Verfügung stehenden Sprachversionen der Webseite. Über eine Abfrage wird überprüft, ob eine entsprechende Sprachversion vorhanden ist. Falls nicht, wird Englisch als Standardsprache gewählt.
Live Beispiel im neuen Fenster
Im nächsten Schritt werden zwei Variablen gesetzt, die später über die Adresszeile übergeben werden:
$seite = $_GET["seite"];
$sprache = $_GET["sprache"];
Über die Variable $seite wechselt man zwischen den einzelnen Unterseiten. $sprache übergibt die aktuell gewählte Sprache.
Falls keine Sprache gewählt ist, wird der Variablen $sprache die Standardsprache zugewiesen:
if($sprache == "") $sprache = $sprache_vorauswahl;
Falls der Variablen $seite kein Wert zugewiesen wurde, erhält sie automatisch den Wert »index«.
if($seite == "") $seite = "index";
Damit das Skript funktioniert, müssen Verzeichnis- und Dateinamen speziell benannt werden. Jede Sprachversion steht in einem eigenen Verzeichnis. Der Verzeichnisname entspricht dem Sprachenkürzel. Die Dateien erhalten in diesem Beispiel die Endung ».htt«. Die Datei der Startseite heißt »index.htt«.
Die Verlinkung zu den Unterseiten und den Sprachversionen sollte wie folgt aufgebaut sein:
<a href="index.php?seite=kontakt&
sprache=<%sprache%>">Kontakt</a>
Neben der Angabe zur Unterseite muss auch die Sprache übermittelt werden. Über den Platzhalter »<%sprache%>« wird das aktuelle Sprachenkürzel später eingesetzt.
Der Wechsel zwischen den Sprachen sollte so aussehen:
<a href="index.php?seite=<%seite%>&sprache=en">In
englisch please!</a>
Hier wird für die Variable $seite ein Platzhalter eingesetzt und für die Sprache ein konkreter Wert.
Über die Variable $ausgabe wird die entsprechende Datei eingelesen:
$ausgabe = implode("", file($sprache."/".$seite.".htt"));
Das PHP-Skript ersetzt die Platzhalter mit den entsprechenden Variablen:
$ausgabe = str_replace("<%sprache%>", $sprache, $ausgabe);
$ausgabe = str_replace("<%seite%>", $seite, $ausgabe);
Zuletzt wird der Inhalt der Variablen $ausgabe ausgegeben:
echo $ausgabe;
(tm) Erstveröffentlichung 01.06.2005
Wie hilfreich war dieser Beitrag?
Klicke auf die Sterne um zu bewerten!
Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0
Eine Antwort zu „Automatische Sprachauswahl“
— was ist Deine Meinung?
Die allererste Zeile des Skriptes ist wohl der Schere zum Opfer gefallen!
Sie sollte lauten:
$sprache_vorauswahl = $_SERVER[„HTTP_ACCEPT_LANGUAGE“];
Und außerdem ist die Zwischenüberschrift „Live Beispiel im neuen Fenster“ nicht mehr mit dem Live-Beispiel verlinkt!
Grüße, G. Ludwig
amazingBytes webdesign
http://www.amazingBytes.de