Tobias S.: Frage zu mehrsprachigkeit

Beitrag lesen

Hi Ron!

Eine bequeme Möglichkeit wäre wohl die Lösung mit den Cookies. Einmal zu Beginn ein Cookie mit der Information angelegt, brauchst du dich danach um nichts mehr zu kümmern.
Die zweite Möglichkeit wäre, die Information immer per HTTP-GET mitzuführen. Das bringt allerdings einen großen Aufwand mit sich und ist mit der Zeit nur sehr schwer wartbar.
Die Topframe-Idee ist auf den ersten Blick nicht durchführbar, da du mit PHP (Server-Sprache) nicht auf lokale Laufzeitvariablen einzelner User zugreifen kannst.

Mein Vorschlag wäre daher der Einsatz von Sessions. Sessions birgen sog. Session-Variablen, die zwischen Server und Client automatisch hin- und hergereicht werden. Sie beinhalten also genauso wie Cookies Informationen, die ein lokaler User spezifizieren und die ein skriptausführender Server lesen kann. Allerdings mit dem Unterschied, dass eine Session nach einer Sitzung "gelöscht" wird.

Und so würde ich es realisieren:

//1) Aktivieren der Session-Funktionalität
session_start();

//2) Initialisieren der Session-Variable mit einem Wert ("deutsch")
if (isset($_SESSION['sprache']) == false) $_SESSION['sprache'] = "deutsch";

  1. und 2) müssen am Anfang jedes neuen Seitenaufrufs stehen. Die Weitergabe der sog. Session-ID, die den User identifiziert mit dem in der aktuellen Session-Sitzung kommuniziert wird, wird i.d.R. in einem automatisch angelegten Cookie weitergegeben. Will man sich selbst um die Weitergabe der Session-ID kümmern, dann kann man auch die globale Variable SID an jede aufzurufende URL anhängen, was den Gesamtaufwand allerdings wieder in die Nähe der HTTP-GET-Lösung bringt (und was i.d.R. auch nicht nötig ist).

Der Gesamtaufwand würde sich also auf 1) und 2) beschränken. Wann und wie der User allerdings "seine" Sprache festlegt, ist darin nicht enthalten. Ich schlage vor, einen festen Default-Wert vorzugeben, den der User durch Klick auf (z.B.) ein Fähnchen-Icon jederzeit ändern kann. So wird es auch von vielen anderen Websites geregelt. Eine weitere Möglichkeit wäre der Einsatz mehrerer Domains mit unterschiedlichen Landes-Endungen, wobei jede Domain der Session-Variable einen anderen Startwert zuweisen würde.

Für weitere Informationen empfehle ich dir www.php.net. Dort wird alle genauestens beschrieben.

Gruß,
Tobias