Как определить язык пользователя на PHP
Определение языка пользователя, зашедшего на ваш сайт, может быть полезно с точки зрения usability, ведь это позволяет сразу же использовать нужную языковую версию сайта. Пользователю при этом не придется ругаться в поисках кнопки переключения языка (а некоторые могут просто закрыть страницу). В связи с этим возникает вопрос: как определить язык пользователя на php? Разумеется, мы определяем не язык, на котором в реальности он разговаривает, а языковые настройки системы (браузера, в частности).
Почему именно php? php позволяет изменить перевод текстовых данных в процессе подготовки страницы на сервере прежде, чем она будет «отдана» браузеру пользователя.
Для определения языка можно воспользоваться суперглобальным массивом $_SERVER, в котором содержится немало интересной информации о посетителе. Например:
1 |
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); |
Данная строчка позволяет «вырезать» первые два символа из строки, содержащейся в $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]. Это как раз и будет сокращенная аббревиатура языка. К примеру, сейчас у меня на Ubuntu вся система настроена на английский язык. Соответственно, в $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] у меня находится такое значение:
1 |
en-US,en;q=0.8,ru;q=0.6 |
В переменной $language в итоге мы получим значение «en». Для создания разной логики под несколько языков можно использовать такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($language){ case "fr": //здесь код для французской версии ... break; case "it": //здесь код для итальянской версии ... break; case "en": //здесь код для английской версии ... break; default: //для всех остальных языков код тут ... break; } |
Категория: PHP-скрипты