Opened 4 years ago
Last modified 3 years ago
#2162 reopened Bug/Fehler
Auf die Browsersprache automatisch umstellen mit aktiver Spracherweiterung für SEO URL
| Reported by: | scooterama | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.9.0 |
| Component: | Shop | Version: | 2.0.6.0 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description (last modified by )
Sobald das Systemmodul Spracherweiterung für SEO URL aktiviert ist klappt die Sprachumstellung der Funktion "Auf die Browsersprache automatisch umstellen" nicht mehr und die Webseite wird nicht mehr in der eingestellten Browsersprache geladen.
Lässt sich im Demoshop gut nachvollziehen, Sprache im Browser auf Englisch EN und die Seite bleibt deutsch, deaktiviert man die Systemerweiterung wird die Seite direkt in englisch geladen. Dies verhält sich auch mit anderen Sprache so.
Attachments (0)
Change History (9)
comment:2 by , 4 years ago
Mit deaktiviertem Systemmodul wird die Seite aber bereits beim ersten Aufruf in der Browsersprache geladen und nicht erst nach einem Login. Was macht denn der Besucher der kein Login hat? Jedesmal die Sprache in der Sprachbox umschalten? Dann macht das automatische Umschalten der Broswersprache ja keinen Sinn.
comment:3 by , 4 years ago
Ist das hier nicht indirekt gelöst ?
Soweit ich weiß hat Gerhard doch das Test-Cookie rausgeworfen, sodaß das Problem hier nicht mehr auftreten kann weil die Session (und somit $_SESSION['language....']) und das Session-Cookie sofort bei Erstaufruf des Shops gesetzt wird.
Die /includes/modules/set_language_sessions.php wurde aufgrund meines Anstosses ja ebenfalls überarbeitet.
Gruß,
noRiddle
comment:4 by , 4 years ago
| Component: | Admin → Shop |
|---|---|
| Description: | modified (diff) |
| Milestone: | → modified-shop-2.0.6.1 |
Danke für den Hinweis. Ich ordne die entsprechenden Changesets gleich dem Ticket zu.
comment:7 by , 3 years ago
Das Ticket müsste nochmals geöffnet werden.
Wie scooterama festgestellt hat klappt die Erkennung der Browsersprache (wenn aktiviert) immer noch nicht wenn das System-Modul multilang ("Spracherweiterung für SEO URL") aktiviert ist.
Den Grund habe ich nach meinem Verständnis hier dargelegt:
Vorschlag zur SEO-URL, link-alternate-hreflang und sitemap.xml Problematik | Antwort #51
Ich schlage vor die Funktion get_browser_language() aus der language-Klasse herauszuholen und eine /inc/-Datei daraus zu machen.
Dann kann man die Funktion $key zurückgeben lassen und sie somit überall verwenden.
Man müsste die Funktion dann lediglich in /includes/modules/set_language_sessions.php oben vor dem auto_include() unter der Condition USE_BROWSER_LANGUAGE == 'true' includieren
if(USE_BROWSER_LANGUAGE == 'true') [ require_once(DIR_FS_INC.'get_browser_lang.inc.php'); }
und könnte sie in der Datei selbst sowie in der auto_include-Datei verwenden.
In /includes/modules/set_language_sessions.php so
if (USE_BROWSER_LANGUAGE == 'true') {
$lng = new language(xtc_input_validation(get_browser_language(), 'lang'));
}
und in /includes/extra/modules/set_language_sessions/multilang.php so
if (!isset($_GET['language'])) {
$_GET['language'] = USE_BROWSER_LANGUAGE == 'true' ? xtc_input_validation(get_browser_language(), 'lang') : DEFAULT_LANGUAGE;
}
Gruß,
noRiddle
comment:8 by , 3 years ago
| Milestone: | modified-shop-2.0.7.0 → modified-shop-2.0.8.0 |
|---|---|
| Resolution: | fixed |
| Status: | closed → reopened |
comment:9 by , 3 years ago
| Milestone: | modified-shop-2.0.8.0 → modified-shop-2.0.9.0 |
|---|

Ich konnte das nicht nachvollziehen wenn ich Cookies im Browser gelöscht habe und/oder die Session durch Login/Logout neu generiert habe.
Diskussion dazu ab hier: https://www.modified-shop.org/forum/index.php?topic=39847.msg387261#msg387261
Gruß,
noRiddle