Ergebnis 1 bis 6 von 6

Thema: Falsche Seitensprache bei mehreren Sprachvorgaben im Browser

  1. #1
    Contao-Nutzer
    Registriert seit
    19.04.2010.
    Ort
    Frankfurt
    Beiträge
    19

    Standard Falsche Seitensprache bei mehreren Sprachvorgaben im Browser

    Hallo,

    nachdem ich schon sehr viel ohne selbst zu Fragen gefunden habe, bin jetzt ich über etwas gestolpert, wozu ich nicht finden konnte.

    Ich habe ein Seite erstellt, welche zweisprachig ist (DE und EN). Die englische Seite ist als Sprachen-Fallback definiert, die deutsche natürlich nicht. Funktioniert auch soweit eigentlich genau so, wie ich das wollte.
    Ein Freund von mir (deutsch-grieche) hat jedoch meine Seite aufgerufen und landet auf der englischen Seite.

    Herausgefunden habe ich schon, dass er bei seinem Browser in der Sprachwahl Griechisch und Deutsch (in dieser Reihenfolge) eingestellt hat. Somit erwarte ich eigentlich, dass die deutsche Seite angezeigt wird.

    Soweit ich bisher finden konnte, scheint TL jedoch nur die primäre Sprache des Browsers aus der ACCEPT_LANGUAGE zur Suche nach der passenden Seite zu verwenden.

    Hier meine Fragen:
    1. Ist das so, oder mache ich da einen Fehler?
    2. Falls das so ist, ist das beabsichtigt, oder könnte das ein Punkt für ein neues Feature sein?
    3. Gibt es vielleicht eine Erweiterung, die das schon löst?

    Hab mir schon mal die ChangeLanguage Erweiterung angesehen, die hilft aber erst nachdem das Kind schon in den Brunnen gefallen ist.

    Vielen Dank schon mal für jede Antwort!
    Geändert von styx7 (22.04.2010 um 18:14 Uhr)

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von styx7 Beitrag anzeigen
    Hier meine Fragen:
    1. Ist das so, oder mache ich da einen Fehler?
    2. Falls das so ist, ist das beabsichtigt, oder könnte das ein Punkt für ein neues Feature sein?
    3. Gibt es vielleicht eine Erweiterung, die das schon löst?
    ad 1: Ja, das ist so!
    ad 2: Ich denke schon.
    ad 3: Meiner Meinung nicht nötig, da dieses Verhalten ja so beabsichtigt ist.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Contao-Nutzer
    Registriert seit
    19.04.2010.
    Ort
    Frankfurt
    Beiträge
    19

    Standard

    Hallo ochs,

    erstmal danke für die schnelle Antwort!

    Zitat Zitat von xchs Beitrag anzeigen
    da dieses Verhalten ja so beabsichtigt ist.
    Das das so beabsichtigt ist, verstehe ich nicht.
    Der Aufrufer hat in seinem Browser doch angegeben, dass er gerne die Seite in GR hätte und falls das nicht geht, dann lieber in DE.
    TYPOlight scheint die alternative zu ignorieren und serviert dafür die Seite in EN, obwohl auch DE vorhanden ist.

    Eigentlich hätte doch die DE Seite angezeigt werden sollen. So verstehe ich zumindest auch die RFC 2616. Im Abschnit 14.4 steht da zu Accept-Language doch auch das Beispiel:
    Ein
    Accept-Language: da, en-gb;q=0.8, en;q=0.7
    wird interpretiert als:
    "I prefer Danish, but will accept British English and other types of English."

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo styx7,

    ja, ganz unrecht hast Du dabei nicht. Wenn man das näher betrachtet, wäre es eigentlich durchaus hilfreich, wenn TYPOlight diese zusätzlichen gewichteten Sprachen auch irgendwie auswerten bzw. berücksichtigen könnte.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Contao-Fan Avatar von deerwood
    Registriert seit
    24.11.2009.
    Ort
    Hamburg
    Beiträge
    344

    Standard

    Hi,

    TYPOlight versucht das auch zu beachten. In initialize.php ca. Zeilen 126 ff werden die Browser-Wunsch-Sprachen mit den verfügbaren Backend-Sprachen abgeglichen. Das passiert "rückwärts" nach der Wunsch-Sprache, so dass die am meisten erwünschte UND vorhandene Sprache in $GLOBALS['TL_LANGUAGE'] gespeichert wird. Zu diesem Zeitpunkt sollte also im Beispiel ('gr', 'de') "de" gewählt sein, vorausgesetzt, dass es im Backend 'gr' nicht gibt.

    Aber $GLOBALS['TL_LANGUAGE'] wird später auch noch an anderen Stellen im System gesetzt, das überblicke ich im Moment nicht alles.

    LG, Georg

  6. #6
    Contao-Nutzer
    Registriert seit
    19.04.2010.
    Ort
    Frankfurt
    Beiträge
    19

    Standard

    Hallo Georg,

    die $GLOBALS['TL_LANGUAGE'] scheint mir nur für das Backend genutzt zu werden.
    Soweit iich bisher finden konnte wird die Frontendsprache in der Frontend-Klasse Funktion getRootIdFromUrl() bestimmt. Dort wird dann aber nur die Browser-Primärsprache via $accept_language[0] verwendet.

    Jetzt dachte ich schon ich könnte klugscheißern und wollte statt dessen das ganze Array übergeben und nicht nur den Index 0, aber so einfach ist das nicht. Das Problem werde ich noch mal im Bereich Entwickler-Fragen plazieren. Vielleicht schaffe ich ja damit mal eine erste Extension zu erstellen ;-)

    Aber Danke schon mal für die Tipps!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Seitensprache in Seiten-Template für PHP
    Von sans im Forum Layout / Templates / Holy Grail
    Antworten: 2
    Letzter Beitrag: 03.03.2011, 16:11
  2. Falsche Parent Id
    Von Markus C. im Forum Entwickler-Fragen
    Antworten: 5
    Letzter Beitrag: 23.09.2010, 08:58
  3. Seitensprache, unterscheiden nach en-us und en-gb ??
    Von bruc13 im Forum Mehrsprachigkeit
    Antworten: 4
    Letzter Beitrag: 24.06.2010, 14:05
  4. NewsTwitter - Falsche Url an is.gd
    Von nelson im Forum Sonstige Erweiterungen
    Antworten: 5
    Letzter Beitrag: 05.01.2010, 12:54
  5. Antworten: 4
    Letzter Beitrag: 28.08.2009, 11:55

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •