Sprache per JavaScript feststellen
Hallo,
dafür ist navigator.language zuständig. Selfhtml (http://de.selfhtml.org/javascript/objekte/navigator…) erläutert dies genauer.
Eine Bestimmung über die IP ist über JavaScript nicht möglich. Allerdings ist das auch Unsinn. Der Britte der in Deutschland Urlaub macht, will ja auf seinem Notebook die Seite in Englisch sehen, auch wenn er eine dt. IP hat.
navigator.language ist ein Array, mit den bevorzugten Sprachen.
Dieses Array würde ich durchlaufen und bei einem Treffer die entsprechende Sprache anzeigen. Wichtig: Überprüfe alle Sprachen (also Engl. und Deutsch).
Überprüfst du nur auf Engl. und nimmst beim nichtfinden Deutsch, kann jemand eine englische Seite angezeigt bekommen, wenn er sowohl Deutsch, als auch Englisch in seinen Sprachen gewählt hat, aber Deutsch favorisiert hat.
Die Selfhtmllösung sieht auch schön aus, aber da gibt es das selbe Problem. das kann mit einer leichten Abwandlung aber umgangen werden:
var lang = "de"; /\* Standardsprache \*/
if (navigator.language.indexOf("en") \> -1 &&
(navigator.language.indexOf("de") == -1 || navigator.language.indexOf("de") \> navigator.language.indexOf("en"))
) {
/\* Wenn Englisch gewählt ist und Deutsch nicht gewählt ist,
ODER: Wenn Englisch gewählt ist und Deutsch eine geringere Priorität als Englisch hat, DANN: \*/
lang = "en";
}
Bei mehr als 2 Sprachen wird das unübersichtlich. Dann wäre das durchsuchen des Arrays sinnvoller.