Falsche Sprachausgabe in Deutsch

<!-- DEBUG array(8) {
[0]=>
string(2) "de"
[1]=>
string(5) "de-de"
[2]=>
string(2) "de"
[3]=>
string(5) "q=0.8"
[4]=>
string(5) "en-us"
[5]=>
string(5) "q=0.5"
[6]=>
string(2) "en"
[7]=>
string(5) "q=0.3"
}
-->
 
Habe mir die Infos schnell selber geholt ;) Du kannst die Änderungen wieder rückgängig machen (einfach die beiden echo zeilen + die Zeile mit dem var_dump() entfernen).

Edit: Deine Ausgabe ist vom Firefox, richtig? ;)

Also: Unter IE8 sieht die Ausgabe, wenn alles normal ist, so aus
Code:
array(3) {
  [0]=>
  string(2) "de"
  [1]=>
  string(5) "de-DE"
  [2]=>
  string(2) "en"
}
und wenn er Probleme mit der Sprache hat, so:
Code:
array(3) {
  [0]=>
  NULL
  [1]=>
  string(5) "de-DE"
  [2]=>
  string(2) "en"
}

Das heißt also, dass die Funktion "Content::GetPreferredLanguages()" nicht ganz sauber arbeitet. Im zweiten Fall wird "de-DE" gefunden, was aber im weiteren Verlauf des Skriptes nicht funktionieren kann, da du nur auf "de" prüfst.
Folgende Code sollte Abhilfe schaffen:
PHP:
<?php
// Get the language
$user_preferred_languages = Content::GetPreferredLanguages();
foreach ($user_preferred_languages as $language) {
    if ($language == 'en') {
        break;
    } elseif (substr($language, 0, 2) == 'de') {
        $language = 'de';
        break;
    }
}
?>
 
Zuletzt bearbeitet:
PHP:
<!-- DEBUG array(8) {
  [0]=>
  NULL
  [1]=>
  string(5) "de-de"
  [2]=>
  string(2) "de"
  [3]=>
  string(5) "q=0.8"
  [4]=>
  string(5) "en-us"
  [5]=>
  string(5) "q=0.5"
  [6]=>
  string(2) "en"
  [7]=>
  string(5) "q=0.3"
}
 -->


noch mal im englischen!!
 
Schau dir einmal meinen vorherigen Post an, dort sollte ein funktionierende Lösung reineditiert sein. Hoffe ich zumindest.
 
kommen der sache schon naeher habe jetzt deinen code neu eingetragen...!

aber der hat im IE alles zerschossen aber im Firefox gehts wieder komisch...
 
Du warst wahrscheinlich schneller, als ich noch einmal editieren konnte. Ich hatte ausversehen immer noch die 3 Zeilen
PHP:
echo "<!-- DEBUG ";
var_dump($user_preferred_languages);
echo " -->";
Lösche sie bitte von Hand raus oder kopiere den gesamten Code noch einmal. Dann sollte das wieder weg sein.
 
schau mal fasst schon am ziel .... jetzt sind aber noch ein paar sachen auf englisch und wenn du auf das Objekt klickst ist es auch noch auf eng...Mensch was waere ich nur ohne dich :-)
 
Da kann ich nun leider nicht helfen. Denn der Fehler, der dafür eigentlich verantwortlich sein sollte, wurde behoben. Vielleicht wird diese Funktion (GetPreferredLanguages()) noch irgendwo verwendet, wo dann der gleiche Fehler vorliegt, das kannst aber nur du herausfinden, da ich hier nicht den Code des Projektes habe. Einfach mal alles überprüfen, wo Sprachdateien eingebunden werden bzw. mit unterschiedlichen Sprachen innerhalb des PHP Skripts gearbeitet wird.

Edit:
Kaum den Post abgeschickt, scheint es schon zu funktionieren. Zumindest ist bei mir nun alles auf Deutsch.

Edit2:
Gut.. wenn das Englische nun Deutsch ist, dann müssen wir uns wohl doch einmal diese GetPreferredLanguages() - Funktion anschauen, falls diese wirklich daran schuld ist. Poste diese bitte einmal hier.

Des Weitern würde ich dir raten, dass du dir einmal anschaust, wie das mit der Spracheinstellung genau läuft. Wo wird das festgehalten, wenn du über die Flagge die Sprache änderst?
 
Zuletzt bearbeitet:
Zurück