Как определить язык посетителя сайта

04.03.2013
Для корректной локализации сайта, необходимо узнать какой язык используется операционной системой посетителя.

Уточню, напрямую узнать язык нельзя, можно лишь получить локаль, которую нам отдает браузер

Способ первый:

Определение средствами PHP
Нам поможет $_SERVER['HTTP_ACCEPT_LANGUAGE'], но т.к. результатом будет строка вида ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3, лучше ее обрезать.
Пример кода:

1
2
3
4
5
6
7
8
9
10
11
$sLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($sLang)
{
  case 'ru':
    // do something
  break;

  case 'en':
    // do something
  break;
}

Способ второй:

Определение средствами JavaSctipt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript">
    var lang;
    if (navigator.userLanguage)
        lang = navigator.userLanguage;
    else if (navigator.language)
        lang = navigator.language;
    else
        lang = "en"
    ;

    lang = lang.substr(0, 2);
    alert(lang);

    if (lang == 'ru')
    {
        // do something
    }
</script>


Категории: Web
Яндекс.Метрика