tag:forum.selfhtml.org,2005:/self Frage zum Wiki-Artikel „language“ – SELFHTML-Forum 2019-06-14T19:21:21Z https://forum.selfhtml.org/self/2019/jun/14/frage-zum-wiki-artikel-language/1750441#m1750441 KateTe 2019-06-14T16:18:35Z 2019-06-14T16:21:40Z Frage zum Wiki-Artikel „language“ <p>Hallo,</p> <p>Die Erkennung der Sprache ist in dem Codebeispiel abhängig von der Reihenfolge der Einstellungen. Wenn ich Deutschland (de) also <strong>de-DE</strong> aktiviere aber nicht an den Anfang der Kette (nach oben) stelle, sondern dort en steht, erkennt er en.</p> <p>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.</p> <p>String Bsp. de-DE aktiviert & an erster Stelle: <em><strong>de-DE</strong>,de;q=0.9,en;q=0.8,af;q=0.7,en-US;q=0.6,pl;q=0.5</em></p> <p>String Bsp. de-DE aktiviert & nicht an erster Stellen: <em>en,<strong>de-DE</strong>;q=0.9,de;q=0.8,af;q=0.7,en-US;q=0.6,pl;q=0.5</em></p> <p>String Bsp. de-De aktiviert aber am Ende der Liste: <em>en,af;q=0.9,de;q=0.8,en-US;q=0.7,pl;q=0.6,<strong>de-DE</strong>;q=0.5</em></p> <p>Link Codebeispiel: https://wiki.selfhtml.org/wiki/JavaScript/Navigator/language</p> <p>Bin auf der Suche nach eine Lösung in Java [request.getHeader(Accept-Language);] oder JavaScript</p> https://forum.selfhtml.org/self/2019/jun/14/frage-zum-wiki-artikel-language/1750443#m1750443 Der Martin 2019-06-14T17:13:40Z 2019-06-14T17:13:40Z Frage zum Wiki-Artikel „language“ <p>Hi,</p> <blockquote> <p>Die Erkennung der Sprache ist in dem Codebeispiel abhängig von der Reihenfolge der Einstellungen.</p> </blockquote> <p>bei richtiger Auswertung wäre sie das; das Codebeispiel macht aber nur eine einfache Hauruck-Abfrage.</p> <blockquote> <p>Wenn ich Deutschland (de) also <strong>de-DE</strong> aktiviere aber nicht an den Anfang der Kette (nach oben) stelle, sondern dort en steht, erkennt er en.</p> </blockquote> <p>Ja. Wenn <strong>de-DE</strong> an erster Stelle steht, <strong>en</strong> 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.</p> <p>Das Codebeispiel bedeutet in Klartext:</p> <ul> <li>Wenn "en" in der Liste der gewünschten Sprachen steht, sprich englisch</li> <li>Wenn das nicht der Fall ist, dafür aber "de" gelistet ist, sprich deutsch</li> <li>Wenn weder "en" noch "de" vorkommt, sag "Unknown".<br> Englisch hat hier im Beispiel also Vorrang, weil es als erstes abgefragt wird.</li> </ul> <blockquote> <p>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.</p> </blockquote> <p>Mir ist auch keine Möglichkeit bekannt, die UI-Sprache herauszufinden - weder clientseitig (Javascript) noch serverseitig (über die HTTP-Header).<br> 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.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Ein Tag, an dem du nicht wenigstens einmal gelacht hast, ist ein verlorener Tag. </div> https://forum.selfhtml.org/self/2019/jun/14/frage-zum-wiki-artikel-language/1750444#m1750444 Rolf B 2019-06-14T17:17:14Z 2019-06-14T17:23:01Z Frage zum Wiki-Artikel „language“ <p>Hallo KateTe,</p> <p>vielleicht verstehe ich dein Problem ja nicht, aber…</p> <p>das Attribut navigator.language sollte genau eine Sprache enthalten. Ich habe gerade mein Chrome auf UI-Sprache englisch gestellt (Browser-UI), aber die Sprachpräferenz auf Deutsch gelegt. Daraufhin liefert mir google ein deutsches UI, mit lang="de" im <html> Element, und navigator.language ist "de-DE".</p> <p>Was im Accept-Language Header steht, ist - mutmaßlich - von navigator.languages abgeleitet. Woher die Gewichte kommen, ist Sache des Browsers. Mein Chrome hat 4 Sprachen in languages (de-DE, de, en-US, en) und gibt denen jeweils 0.1 weniger Gewicht.</p> <p>Die UI-Sprache des Browsers ist eine ganz andere Sache. Ich kann Chrome sagen, er soll mir sein UI in deutsch anzeigen (das Browser-UI), aber trotzdem Englisch an Stelle 1 haben.</p> <p>Der Accept-Language Header sollte vom Server ausgewertet werden, um eine Sprache für die gelieferte Seite auszuwählen. Welche das ist, soll der Server im lang-Attribut des html-Elements vermerken. Das hat dann Einfluss auf sprachspezifische Eigenheiten der Darstellung (Rechtschreibprüfung, Silbentrennung, etc). Ein JavaScript kann das auch abfragen, und sich daran orientieren.</p> <p>Heißt also: je nach dem, ob wir vom Server oder vom Browser reden, stellen sich unterschiedliche Fragen. Der Server muss an Hand von Accept-Language entscheiden, welche der möglichen Sprachen er ausgeben soll. Und ein JavaScript im Browser muss prüfen, was der Server denn nun wirklich geliefert hat. Dazu kann es das lang-Attribut im html Element verwenden, oder navigator.language. Was passiert, wenn der Server ein lang-Attribut liefert, für das im Browser keine Sprache angegeben ist, musst Du ausprobieren.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/jun/14/frage-zum-wiki-artikel-language/1750446#m1750446 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2019-06-14T19:21:21Z 2019-06-14T19:21:21Z Frage zum Wiki-Artikel „language“ <p>@@Der Martin</p> <blockquote> <p>Navigator.language enthält eben nicht die "Menüsprache" der Browser-Installation, sondern den Wert, der als Accept-Language im Request-Header gesendet wird.</p> </blockquote> <p>… der <strong>als erster Wert</strong> als Accept-Language im Request-Header gesendet wird.</p> <p>Navigator.language<strong>s</strong> enthält alle.</p> <p>Huch, seit wann gibt’s das denn? Als ich das letzte Mal hier fragte, ob man mit JavaScript an die Liste der bevorzugten Sprachen herankäme, war noch die einhellige Meinung: nö.</p> <p>LLAP </p> <div class="signature">-- <br> <em>„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“</em> —Kurt Weidemann </div>