S3.Blog

16 Апреля 2024
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

JavaScript: Языкозависимый редирект

Дата последнего изменения: 4 Ноября 2009
Метки статьи: Готовые решения, 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/");

Конечно, предлагаемый способ определения языка, который будет более всего понятен «сёрферу», нельзя назвать надёжным, ибо не известно истинное знание пользователем того или иного языка. К тому же, нередко встречаются уникумы, которые используют операционку и браузер, скажем, на английском языке, в то время как почти в нём «не шарят» и охотно ознакомились бы с сайтом на каком-то другом языке.

В любом случае, надеюсь приведённый метод окажется вам когда-нибудь полезен.

Взято отсюда: Языкозависимый редирект



Похожие материалы:




 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.