Заметки о вёрстке сайтов  ·  Александр Шуркаев об HTML, CSS и JavaScript (скрипты, справочники и примеры по сайтостроению)

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

7 марта 2002 г.

Как правильно перенаправлять пользователя на новую страницу я уже писал. Недавно же передо мной стояла задача перенаправлять «юзера» на ту страницу, которая будет ему понятнее с языковой точки зрения. То есть, необходимо было на 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/");

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

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

Хитовые статьи про разработку сайтов

Рассылка новостей и новых статей

Сообщения будут приходить пару раз в неделю, не чаще

Объявления

LiveInternet