verschieden Sprachen in php

jer1cho

Mitglied
wenn ich will das eine website sowohl auf deutsch also auch auf englisch angezeigt werden
kann.

Wie wird das normalerweise in php geregelt?
muss ich dann jeden String in jeder Sprache in einen Assoziativen Array schreiben?

,und dann immer mit switch abfragen welche sprache der
User bevorzugt ?

Oder wird das normalerweise anders geregelt?
 
Du könntest mit einer Sprachdatei arbeiten oder mit einer Datenbank.
Du müsstest halt jeden Content dynamisch zuweisen, je nach der gesetzten Sprache, die du am besten in der Session oder einem Cookie abspeicherst.

Das phpBB löst es z. B. mit einer Textdatei.

Am einfachsten wäre das ganze natürlich, wenn du es mit einer Template Engine verbindest, wie Smarty z. B.
 
Also habe das bei einer Homepage mal mit ner normalen Index.php und 2 Sprachfiles gelöst.
Zuerst einmal setzt du dafür dann den SESSION-Cookie "Sprache" oder so auf Deutsch (nur wenn keiner gesetzt wurde!). Dann kannst du mit If prüfen, welcher SESSION-Cookie gesetzt wurde. Und zuletzt dann eben dein Sprachfile downloaden.

Mit $_GET kannst du dann das ganze regln, welcher SESSION-Cookie nun gesetzt wird und letztendlich wieder auf die Index.php verlinken. So lässt sich einiges schön verarbeiten.

Nachteil:
Wenn du es so wie ich regelst, und dann auch noch jede Seite 2-Teilst, hast du immer 2 Files pro Seite.

Lösung:
Die Lösung dafür wäre einfach ein Template oder so zu nehmen und je nach Sprache dann füllen zu lassen.
 
Ich regel das ueber GetText, welches ja fuer Internationalisierung von Programmen gemacht ist.
Die Programmierung mit GetText ist einfach und auch die Uebersetzung gestaltet sich nicht wirklich schwer.
 
und wenn ich einfach alle strings in ein file schreibe und dieses dann includiere?

PHP:
strings[] = array('de'=> array('hallo' , 'auf wiedersehen', ...),'en' => array('hello','bye',...));

oder ist davon abzuraten?
 
Damit wirst du irgendwann bestimmt die Übersicht verlieren. Außerdem ist ja auch immer nur eine Sprache notwendig, sodass jedes Mal alle Sprachen zu laden nicht effektiv wäre.
Am besten arbeitest du mit Sprachdateien oder bettest die Sprachversionen direkt im Template ein, für die es dann allerdings auch wieder Auswahlmechanismen geben muss.
 
Zurück