Автоматическое определения языка сайта

5 Апр
2012

Если вы создаете сайт рассчитанный на многоязычность, при этом хотелось бы, чтобы сайт автоматически определял языки для пользователя, тогда данный пост будет вам интересен. В нем мы рассмотрим как сделать автоматическое определение языка пользователя средствами php, а точнее небольшого кода. Этот код просто определяет, присутствует ли запись о языке в заголовке запроса и если да, то скрипт перенаправляет пользователя на соответствующий субдомен. Англоязычные пользователи будут перекинуты на en.site.com и так далее.

В переменной $site мы будем хранить все поддерживающиеся на нашем сайте языки. Поэтому, если вы захотите расширить круг данных языков и добавить, например, немецкий, то вам нужно добавить ещё один элемент массива. Переменная $lang извлекает значение константы HTTP_ACCEPT_LANGUAGE. Тут мы используем функцию substr с тремя параметрами для того, чтобы извлечь нужный нам язык.

<?php
// список языков
$sites = array(
"en" => "http://en.site.com/",
"es" => "http://ua.site.com/",
"fr" => "http://ru.site.com/",
);

// получаем язык
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

// проверяем язык
if (!in_array($lang, array_keys($sites))){
$lang = 'en';
}
// перенаправление на субдомен
header('Location: ' . $sites[$lang]);

?>


Выше приведенный код, в котором мы проверяем, поддерживается ли язык пользователя на нашем сайте. Если да, то перенаправляем его на соответствующий субдомен, если нет, выставляем язык по умолчанию. Материал взят из зарубежного источника.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх