Автоматическое определения языка сайта
Если вы создаете сайт рассчитанный на многоязычность, при этом хотелось бы, чтобы сайт автоматически определял языки для пользователя, тогда данный пост будет вам интересен. В нем мы рассмотрим как сделать автоматическое определение языка пользователя средствами php, а точнее небольшого кода. Этот код просто определяет, присутствует ли запись о языке в заголовке запроса и если да, то скрипт перенаправляет пользователя на соответствующий субдомен. Англоязычные пользователи будут перекинуты на en.site.com и так далее.
В переменной $site мы будем хранить все поддерживающиеся на нашем сайте языки. Поэтому, если вы захотите расширить круг данных языков и добавить, например, немецкий, то вам нужно добавить ещё один элемент массива. Переменная $lang извлекает значение константы HTTP_ACCEPT_LANGUAGE. Тут мы используем функцию substr с тремя параметрами для того, чтобы извлечь нужный нам язык.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?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]); ?> |
Выше приведенный код, в котором мы проверяем, поддерживается ли язык пользователя на нашем сайте. Если да, то перенаправляем его на соответствующий субдомен, если нет, выставляем язык по умолчанию. Материал взят из зарубежного источника. И представлен исключительно в ознакомительных целях.
Читайте также:
Опубликовал Cooper 01.04.2012 в 18:07, в категории PHP. Вы можете следить за комментариями через RSS 2.0. Вы можете перейти в конец записи и оставить комментарий. Пинги запрещены. |