Antworten auf deine Fragen:
Neues Thema erstellen

PHP: Richtige Sprache und Inhalte includieren

patrick_l

Hat es drauf

Moin allerseits,

ich sehe gerade vor lauter Bäumen den Wald kaum und benötige mal wieder eure Hilfe. Es geht um folgendes. Ich bin gerade dabei eine mehrsprachige Website zu erstellen. Vorweg habe ich halt überlegt wie ich das ganze mit der Sprache am besten löse. Eine Enterpage zur Sprachwahl fand ich irgendwie nicht zeitgemäß und ganz ehrlich auch zu viel klicken mit Maus für den Besucher.

Naja, ich habe jetzt die komplette Website dreisprachig als Template umgesetzt. Die Top-Navigation, das Hauptmenü und den eigentliche Content möchte ich jetzt einfach passend zur Sprache includieren. Je nachdem von wo aus die Website aufgerufen wird, soll entweder die deutsche, englische oder eine andere festgelegte Sprache geladen werden.

Wie bewerkstellige ich jetzt das korrekte Includieren der einzelnen Inhalte? Was mir auch wichtig ist, das der User trotz automatischer Erkennung die Möglichkeit hat, eine andere Sprache auszuwählen.

Was PHP angeht stehe ich noch ziemlich am Anfang. Auch wälze ich schon die ganze zeit wie blöde in meinen Büchern. Im Internet gab es zwar auch etwas zum lesen, wirklich schlauer bin ich aber daraus nicht geworden. Deshalb richte ich die Frage nun an euch und hoffe das mir der ein oder andere weiterhilft.

Grüße Otto
 

AW: PHP: Richtige Sprache und Inhalte includieren

Hier eine Sprachabfrage aus einer meiner Webseiten:

PHP:
function getLang(){
        if ( isset($_COOKIE['lang']) ) {
            if($_COOKIE['lang']=='de'){
                return('de');
            }else{
                return('en');
            }
        }elseif( isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ){
            $langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
            $lang=strtolower(substr($langs[0],0,2));
            
            if($lang=='de'){
                return('de');
            }elseif($lang=='en'){
                return('en');
            }else{
                return('en');
            }
        }else{
            return('en');
        }
    }

Für Englisch und Deutsch, entweder wird ein Cookie ausgelesen oder die Browsereinstellungen.
 

Robbyn-

PHP / Flex Programmierer

AW: PHP: Richtige Sprache und Inhalte includieren

PHP:
if($USER['lang'] == ""){
			if($_SESSION['lang'] != ""){
				include(PFAD.'/'.LANG."".$_SESSION['lang']."/".$datei."".PHP);
			}else{
				include(PFAD.'/'.LANG."".$this->browser_lang()."/".$datei."".PHP);
			}
		}else{
			include(PFAD.'/'.LANG."".$USER['lang']."/".$datei."".PHP);
		}

Dies ist ein kleines Beispiel wie man es realisieren könnte. $USER ist die Variable die der User hat wenn man sich eingeloogt hat. Wenn dies nicht der Fall ist dann wird als erstes überprüft ob eine Session vorhanden ist (dies kannst du machen wenn er die Sprache manuell auswählen sollte.) Falls auch dies nicht der Fall sein sollte dann wird die Sprache anhand des Browsers ermittelt. In dem Code zu sehen anhand von $this->browser_lang(). Diese Variable enthält diesen Code:

PHP:
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
		
		if($this->speak($lang,true) != "")
			$wert = empty($lang) ? $CONF['sprache'] : $lang;
		else
			$wert = $CONF['sprache'];
		
		return $wert;

Also so habe ich dies mal gelöst gehabt.

MfG.Robbyn
 

MegaAdi

Freak

AW: PHP: Richtige Sprache und Inhalte includieren

Hallo Otto,

Also die Sprache allgemein würde ich in einem Cookie speichern.
Beim Seitenaufruf schaust du ob das Cookie in dem die Sprache gespeichert ist, existiert, wenn nicht schaust du nach der vom Clienten akzeptierten sprache:

$_SERVER['HTTP_ACCEPT_LANGUAGE']

und schon hast du einen Anhaltspunkt welche Sprache du als "default" für den jeweiligen User ausgeben lässt. Beim Sprachea auswählen gehst überschreibst du eben das Sprach-Cookie mit der ausgewählten Sprache.


Ich hoffe das war der richtige Denkanstoß!


Gruß Adrian

EDIT: Da waren welche schneller :D
 

patrick_l

Hat es drauf

AW: PHP: Richtige Sprache und Inhalte includieren

Ui, schon einmal vielen Dank für eure Beiträge. Ich merke gerade bzw. mir wird gerade bewusst wie viel ich noch vor mir habe, was PHP angeht. Wie müssen denn meine zu includierende Teile aussehen bzw. wie muss die Benennung aussehen. Ich habe mir jetzt gedacht das ich einfach die includierenden Teile am Ende mit _de , _en oder einem anderen Länderkürzel benenne.

Was ich jetzt halt nicht verstehe bzw. nachvollziehen kann ist der Weg. Also wie wird denn nun der jeweils richtige Bereiche angesprochen / ausgewählt und letztendlich auch passend includiert.? Es muss ja halt dem inc. Teil mitgegeben werden, welche Sprache drin steckt. Ich sag ja, bin etwas verwirrt. Lese seit knapp 3 Stunden nichts anderes. :-/
 
Zuletzt bearbeitet:

Robbyn-

PHP / Flex Programmierer

AW: PHP: Richtige Sprache und Inhalte includieren

Darauf achten musst du aber (da du ja die Funktion einbauen willst das der Benutzer selber die Sprache auswählen kann) das z.b. Session oder Cookies bei neu ausgewählter Sprache umgeschrieben werden. Da wäre mein Beispiel wieder gut ( :p nichts für ungut pascal ) der überprüft ob der Benutzer selber was ausgewählt hat oder ob das Script auf den Benutzer Browser die Sprache herraufiltern soll.

Um auf deine Sprachen zu kommen, würde ich das so machen das du für jede Sprache ein extra Ordner anlegst wo du die Language Files drin hast. Die Sprachordern nennst du dann de oder en jenachdem welche Sprache du includieren möchtest.

Je nachdem welches Scriptbeispiel dir hier als Gedankenstütze helfen sollte.

MfG.Robbyn
 

patrick_l

Hat es drauf

AW: PHP: Richtige Sprache und Inhalte includieren

Da nimmst du zum Beispiel einfach die Funktion von mir die gibt entweder de oder en zurück bzw. du erweiterst sie um weitere Kürzel.

Ok, ich schaue dann gleich mal auf meiner Website nach und werde versuchen das ganze richtig umzusetzen.

Was die Einstellung der Sprache angeht, ich habe halt in der Top-Navigation die Länderfahne als Schaltfläche/Icons. Der Besucher soll halt zu einem gewissen Grad selber entscheiden können. Ist denke ich auch der richtige Ansatz. Also nichts aufgezwungenes.

Falls ich einfach nicht weiter, meine Bücher nichts hergeben, werde ich mich hier nochmal melden. Jetzt probiere ich erst einmal alles aus.

Grüße Otto
 
Zuletzt bearbeitet:
AW: PHP: Richtige Sprache und Inhalte includieren

Darauf achten musst du aber (da du ja die Funktion einbauen willst das der Benutzer selber die Sprache auswählen kann) das z.b. Session oder Cookies bei neu ausgewählter Sprache umgeschrieben werden. Da wäre mein Beispiel wieder gut ( :p nichts für ungut pascal ) der überprüft ob der Benutzer selber was ausgewählt hat oder ob das Script auf den Benutzer Browser die Sprache herraufiltern soll.

Um auf deine Sprachen zu kommen, würde ich das so machen das du für jede Sprache ein extra Ordner anlegst wo du die Language Files drin hast. Die Sprachordern nennst du dann de oder en jenachdem welche Sprache du includieren möchtest.

Je nachdem welches Scriptbeispiel dir hier als Gedankenstütze helfen sollte.

MfG.Robbyn

Tja, und an der Stelle hier:
PHP:
if ( isset($_COOKIE['lang']) ) {
wird bei meinem Script geprüft, ob es einen Cookie mit Sprachauswahl vom Nutzer gibt, nichts für ungut ;-)
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben