Статья Как определяется язык пользователя на 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, что очень пригодится мультиязычным сайтам.
Об авторе
Я есть Грут
Не чего не скажу

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

Автор
Я есть Грут
Время прочтения статьи
1 мин. чтение
Просмотры
86
Последнее обновление

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

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

Назад
Верх