Статья Как определяется язык пользователя на PHP?

Если создаваемый вами сайт рассчитан на посетителей с разных стран мира вам обязательно требуется автоматическое определение языка пользователя, в одном из проектов потребовалось решить эту задачу. О том, как определяется язык пользователя на PHP, я и расскажу в данной статье.

Чтобы определить язык пользователя на PHP, надо воспользоваться следующим кодом:
PHP:
Expand Collapse Copy
<?php
  preg_match_all('/([a-z]{1,8}(?:-[a-z]{1,8})?)(?:;q=([0-9.]+))?/', strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"]), $matches); // Получаем массив $matches с соответствиями
  $langs = array_combine($matches[1], $matches[2]); // Создаём массив с ключами $matches[1] и значениями $matches[2]
  foreach ($langs as $n => $v)
    $langs[$n] = $v ? $v : 1; // Если нет q, то ставим значение 1
  arsort($langs); // Сортируем по убыванию q
  $default_lang = $langs[0]; // Берём 1-й элемент (он же максимальный по q)
  echo $default_lang; // Выводим язык по умолчанию
?>
В основе лежит константа $_SERVER["HTTP_ACCEPT_LANGUAGE"], которая как раз и содержит сведения о предпочитаемых языках пользователя. Выглядит она примерно так: "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3". Здесь перечисляются языки и регионы, а также приоритет q. Чем больше q, тем больше пользователь предпочитает данный язык. Если q нет, значит, оно равно 1. Например, у ru-RU нет q, значит, оно равно 1, и данный язык наиболее подходящий.

Получив язык по умолчанию, мы можем сразу же установить его и на сайте, тем самым, выводя контент для пользователя на том языке, который он предпочитает. Таким образом определяется язык пользователя на PHP, что очень пригодится мультиязычным сайтам.
Об авторе
XStyle
Не чего не скажу

Ещё от XStyle

Информация о статье

Автор
XStyle
Время прочтения статьи
1 мин. чтение
Просмотры
68
Последнее обновление

Подробнее в Общее

Поделиться этой статьей

Назад
Верх Низ