Der Martin: Frage zum Wiki-Artikel „language“

Beitrag lesen

problematische Seite

Hi,

Die Erkennung der Sprache ist in dem Codebeispiel abhängig von der Reihenfolge der Einstellungen.

bei richtiger Auswertung wäre sie das; das Codebeispiel macht aber nur eine einfache Hauruck-Abfrage.

Wenn ich Deutschland (de) also de-DE aktiviere aber nicht an den Anfang der Kette (nach oben) stelle, sondern dort en steht, erkennt er en.

Ja. Wenn de-DE an erster Stelle steht, en aber weiter hinten ebenfalls vorkommt, entscheidet dieses Beispiel ebenfalls zugunsten von Englisch. Wollte man die Reihenfolge tatsächlich bewerten, dürfte man die beiden indexOf() nicht bloß auf negativ abfragen, sondern müsste für den Fall, dass beide positiv sind, auch noch ermitteln, welcher der beiden kleiner ist. Der sollte dann gewinnen.

Das Codebeispiel bedeutet in Klartext:

  • Wenn "en" in der Liste der gewünschten Sprachen steht, sprich englisch
  • Wenn das nicht der Fall ist, dafür aber "de" gelistet ist, sprich deutsch
  • Wenn weder "en" noch "de" vorkommt, sag "Unknown".
    Englisch hat hier im Beispiel also Vorrang, weil es als erstes abgefragt wird.

Hat irgendjemand eine verlässliche Methode gefunden, wie man die tatsächliche UI Sprache ermitteln kann. Aus dem gelieferten Accept-Language String geht das nicht.

Mir ist auch keine Möglichkeit bekannt, die UI-Sprache herauszufinden - weder clientseitig (Javascript) noch serverseitig (über die HTTP-Header).
Meines Erachtens ist auch der einleitende Text im SELFHTML-Wiki nicht korrekt: Navigator.language enthält eben nicht die "Menüsprache" der Browser-Installation, sondern den Wert, der als Accept-Language im Request-Header gesendet wird.

Ciao,
 Martin

--
Ein Tag, an dem du nicht wenigstens einmal gelacht hast, ist ein verlorener Tag.