Mehrsprachige Website

sinalara109

Grünschnabel
Hallo ihr Lieben,

ich habe heute mal ein "spezielleres" Anliegen. Folgende Situation: Ich habe für die Uni eine Website bauen müssen, diese enthält verschiedene Programmiersprachen und verschiedene Dateien. Meine letzte Aufgabe ist ein Button, mit dem ich die Website von deutsch in englisch lade. Meine Idee war folgendermaßen:

Ich habe einmal eine Datei (data.xml), die die Inhalte der Seite auf deutsch enthält und eine Datei (data.englisch.xml), welche die Seite auf Englisch enthält.
Nun war meine Idee, dass ich beim Click auf den Button 'english' die Datei data.englisch.xml aufrufe und er im Prinzip die Daten daraus ließt. Bei dem Click auf den Button 'deutsch' soll die Datei data.xml aufgerufen werden.

Alternative Idee von mir war, dass ich über die URL die Seite übersetzte, jedoch finde ich den Teil schwerer, da meine URL folgendermaßen erzeugt wird:
PHP:
function readNavigation($id) {
  global $xml;
  for ($i=0; $i < $xml->count(); $i++) //count = alle (page) elemente werden gezählt //count ähnlich wie sizeOf
  {                //linkklasse    //Link wird erstellt bis page= //path wird über $i gesucht             //&id wird hinzugefügt //id wird über $i gesucht         //title wird über $i gesucht //punkt verbindet die strings
        echo '<li class="btn1"><a href="index.php?page=' . $xml->page[$i]->attributes()->{"path"} . '&id=' . $xml->page[$i]->attributes()->{"id"} . '">' . $xml->page[$i]->title . '</a></li>';
  }
}

Ich hoffe ihr könnt mir weiterhelfen, ich bin momentan ziemlich aufgeschmissen, weil ich nicht weiter weiß

Liebe Grüße und vielen Dank,
Sina
 
Ich habe mal vor ein paar Jahren soetwas gemacht, aber alles selbst übersetzt.
Wenn dir das was bringt, kann ich dass Script hier reinstellen.
Ein Link geht dann so: <a href="index.php?page=seite&amp;lang='.$_SESSION['lang'].'">
 
Hi,

was spricht dagegen die gewünschte Sprache in der aktuellen Session abzuspeichern?
Anfangs kannst Du mit HTTP_ACCEPT_LANGUAGE die Sprache im verwendeten Browser auslesen und dem Nutzer die Möglichkeit einräumen, die Sprache zu wechseln.

Entsprechend kannst Du dann auf eine der beiden XML-Files verweisen.

VG
 
Alternative Idee von mir war, dass ich über die URL die Seite übersetzte, jedoch finde ich den Teil schwerer, da meine URL folgendermaßen erzeugt wird [...]

Bau dir eine Helper-Funktion/Klasse, welche dir Links generiert und intern die Logik kapselt, jeweils ?lang=en o. Ä. anzuhängen.

Das andere Problem, die sprachspezifischen Texte überhaupt an richtiger Stelle zu laden, kannst du lösen, indem du eine weitere Funktion/Klasse schaffst, welche die Daten z. B. wie von dir genannt aus XML-Dateien lädt. Das kannst du beliebig kompliziert auslegen, mit einem Cache oder Pluralunterstützung beispielsweise.
 
Zurück