JavaScript: Языкозависимый редирект
Недавно же передо мной стояла задача перенаправлять «юзера» на ту страницу, которая будет ему понятнее с языковой точки зрения. То есть, необходимо было на JavaScript'е определить наиболее предпочтительный язык и отослать пользователя либо на русскую версию сайта, либо на английскую.
В результате у меня получился небольшой JavaScript'овый объект, использующий стандартный объект navigator
для определения пользовательского/системного языка (или же, на худой конец, языка браузера). Необходимая инфа берётся из свойств navigator.userLanguage
, navigator.systemLanguage
(Internet Explorer 4+), navigator.browserLanguage
(Internet Explorer 4+, Opera 5+) и navigator.language
(Netscape Navigator 4.x, Netscape Navigator 6+).
Вот сам объект:
function LanguageInfo(){ var n = navigator; this.UALanguage = n.language ? n.language : n.browserLanguage ? n.browserLanguage : null; this.userLanguage = n.userLanguage ? n.userLanguage : n.systemLanguage ? systemLanguage : null; }
Свойство UALanguage
определяет язык браузера (UserAgent), свойство же userLanguage
отвечает за (текущий) язык операционной системы пользователя. Использовать эти свойства можно так:
var oLanguage = new LanguageInfo(); location.replace((oLanguage.userLanguage == "ru" || oLanguage.UALanguage == "ru") ? "/rus/" : "/eng/");
Конечно, предлагаемый способ определения языка, который будет более всего понятен «сёрферу», нельзя назвать надёжным, ибо не известно истинное знание пользователем того или иного языка. К тому же, нередко встречаются уникумы, которые используют операционку и браузер, скажем, на английском языке, в то время как почти в нём «не шарят» и охотно ознакомились бы с сайтом на каком-то другом языке.
В любом случае, надеюсь приведённый метод окажется вам когда-нибудь полезен.
Взято отсюда: Языкозависимый редирект