Browser-Sprache ermitteln: navigator.language.indexOf
Actron
- javascript
Hallo!
Unter http://de.selfhtml.org/javascript/objekte/navigator.htm#language@title=navigator.language und in zahlreichen anderen Beispielen im Netz wird die Browser-Sprache mit Abfragen wie
if (navigator.language.indexOf("en") > -1)
ermittelt.
Dabei frage ich mich stets, warum nicht
if (navigator.language == "en")
verwendet wird.
Gibt es da einen Grund für, der mir grad nicht in den Sinn kommt?
tnx & cya
Bernd
Hi,
man kann auch mehrere Sprachen angeben.
Außerdem gibts z.B. "en" und "en-us", für Englisch und Amerikanisches-Englisch.
~dave
Hallo!
Und wie ist die eine Variante dann besser als die andere? Kannst du da ein Codebeispiel zu geben? Mehrere Sprachen kann ich doch auch mit der zweiten Variante verarbeiten.
Bernd
Hi,
man kann auch mehrere Sprachen angeben.
Außerdem gibts z.B. "en" und "en-us", für Englisch und Amerikanisches-Englisch.
Und wie ist die eine Variante dann besser als die andere?
Ganz einfach - die eine „findet“ "en" in "en-us", die andere nicht.
MfG ChrisB
Ganz einfach - die eine „findet“ "en" in "en-us", die andere nicht.
Na klar, unter dem Gesichtspunkt macht indexOf nat. Sinn.
Dann ist der Groschen wohl gefallen. Tnx.
Bernd
@@Actron:
nuqneH
Na klar, unter dem Gesichtspunkt macht indexOf nat. Sinn.
Nein, navigator.language
macht wohl keinen Sinn.
Dann ist der Groschen wohl gefallen. Tnx.
Der hätte an anderer Stelle fallen sollen.
Qapla'
man kann auch mehrere Sprachen angeben.
Das ist falsch, denn navigator.language bzw. navigator.browserLanguage gibt nicht die Sprachen wieder, welche der Browser akzeptiert und der Benutzer versteht, sondern allein die Sprache der Browser-UI (bzw. des Betriebssystems). Das ist natürlich nur eine.
Da es durchaus üblich ist, dass etwa Deutschsprachige einen Browser mit englischsprachiger UI verwenden, eignen sich die Eigenschaften nicht, um Rückschlüsse auf die vom Nutzer verstandenen Sprachen zu machen. Im IE gibt es navigator.userLanguage, was schon näher dran wäre, das ist eine in der Windows-Systemsteuerung angegebene Sprache.
Am zuverlässigsten ist aber der HTTP-Header Accept-Language, welcher sich via JavaScript aber nicht so einfach auslesen lässt - jedoch sehr einfach serverseitig.
Außerdem gibts z.B. "en" und "en-us", für Englisch und Amerikanisches-Englisch.
Das ist richtig.
Mathias