Поиск
Подписаться
Разное

Валидный XHTML 1.0 Transitional

Валидный RSS

Определение языка с помощью PHP Категория: PHP
Название: Определение языка с помощью PHP
Дата добавления: 17-04-2012
Раз просмотрено: 699
Комментарии: 0
Рейтинг: · · · · · · · · · · (0 голосов)

Определение языка с помощью PHP

Если вы ищите простой способ определить язык пользователя с помощью PHP, то эта статья как раз для вас. Этот PHP скрипт будет использовать элемент супер глобального массива $_SERVER HTTP_ACCEPT_LANGUAGE. В этой переменной будет содержаться что-то вроде en-US,en;q=0.8.

PHP код

Этот код просто определяет язык по HTTP-заголовку (если он существует) и перенаправляет пользователя на соответствующий поддомен. Язык определяется по языку браузера и операционной системы. Например, пользователи, использующие русский язык, будут перенаправлены на адрес ru.mysite.com, а посетители с английским языком — на en.mysite.com. В массиве $sites мы создаем массив всех поддерживаемых языков и доменов. Это значит, если вы захотите добавить, например, немецкий язык (его префикс — de), вы просто добавляете ключ и адрес в массив $sites. Вы можете использовать не поддомены для языков, а директории на сервере.

В переменную $lang мы записываем значение HTTP_ACCEPT_LANGUAGE, предварительно, обработав функцией substr(), которой мы передаем три параметра: строку, 0, и 2. Таким образом, мы получаем первые два символа-кода языка.

Если HTTP_ACCEPT_LANGUAGE не существует, по умолчанию мы устанавливаем русский язык (ru). А затем перенаправляем пользователя на соответствующий его языку адрес:

// Список доступных адресов для разных языков в формате: код языка => адрес:
$sites = array(
	'ru' => 'http://ru.mysite.com',
	'en' => 'http://en.mysite.com',
	'fr' => 'http://fr.mysite.com',
);
 
// Получаем двухсимвольный код языка:
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
 
// Устанавливаем стандартный язык:
if(!in_array($lang, array_keys($sites))) {
	$lang = 'ru';
}

// Перенаправляем пользователя на необходимый адрес:
header('Location: ' . $sites[$lang]);

Это интересно: «Как поставить значок валидации CSS3».

Понравился материал? Расскажи о нем всем:
Оцените эту статью:
Прокомментируйте:
Ваше имя:

Ваш комментарий будет первым.