Sprachumschaltung funktioniert nicht zuverlässig
Verfasst: Di 3. Apr 2012, 10:08
Hallo zusammen,
in der aktuellen Version von WEBS klappt die Sprachumschaltung nicht dauerhaft.
In meinem Fall funktionierte es soweit, bis z.B. bei der Anmeldung versucht wurde, ein neues Konto anzulegen.
Da wurde wieder auf deutsch (statt englisch) umgeschaltet.
Im Debugging hat sich bei mir gezeigt, dass die Sprache zwar in der Session gespeichert wurde, aber bei allen Links, die keinen Sprachparameter (oder /en/ bei DirectURL) enthielten, wurde die Sprache sofort wieder auf de zurückgesetzt.
Das Problem ist anscheinend irgendwie noch browserabhängig, beim IE gabs kein Problem, beim FF12 schon.
Der folgende Bugfix legt die Sprachwahl zusätzlich im Cookie ab und setzt die Variablen jedesmal neu. Dazu ist der folgende Ausschnitt in die application_top.php einzufügen, ca. ab Zeile 239, nach dem Abschnitt "Bluegate-URLs".
Damit funktionierts bei mir anstandslos.
Hier der Code:
Ob das die optimale Lösung ist, weiss ich nicht.
Vielleicht kann ein Entwickler mal kurz drüberschauen?
in der aktuellen Version von WEBS klappt die Sprachumschaltung nicht dauerhaft.
In meinem Fall funktionierte es soweit, bis z.B. bei der Anmeldung versucht wurde, ein neues Konto anzulegen.
Da wurde wieder auf deutsch (statt englisch) umgeschaltet.
Im Debugging hat sich bei mir gezeigt, dass die Sprache zwar in der Session gespeichert wurde, aber bei allen Links, die keinen Sprachparameter (oder /en/ bei DirectURL) enthielten, wurde die Sprache sofort wieder auf de zurückgesetzt.
Das Problem ist anscheinend irgendwie noch browserabhängig, beim IE gabs kein Problem, beim FF12 schon.
Der folgende Bugfix legt die Sprachwahl zusätzlich im Cookie ab und setzt die Variablen jedesmal neu. Dazu ist der folgende Ausschnitt in die application_top.php einzufügen, ca. ab Zeile 239, nach dem Abschnitt "Bluegate-URLs".
Damit funktionierts bei mir anstandslos.
Hier der Code:
Code: Alles auswählen
// Bugfix FF12 $_SESSION['language'] falsch gesetzt
if (isset ($_COOKIE['cookie_language'])) {
if ($_COOKIE['cookie_language']!=$_SESSION['language_code']) {
$_GET['language']=$_COOKIE['cookie_language'];
}
}
if (isset ($_GET['language'])) {
xtc_setcookie('cookie_language', $_GET['language'], time() + 60 * 60 * 24 * 30, '/', $current_domain);
unset($_SESSION['language']);
unset($_SESSION['language_charset']);
}
// Bugfix Ende
Vielleicht kann ein Entwickler mal kurz drüberschauen?