Часто приходится поднимать такой вопрос, как автоматическое определение языка страницы для пользователя. Существует быстрое и конкретное решение. Стоит только изъять значение константы HTTP_ACCEPT_LANGUAGE суперглобального массива PHP. И он даст именно то, что нужно, а точнее строку типа «en-US,en;q=0.8». Это код, содержащийся в строке заголовка из текущего запроса.PHP
Этот код просто определяет, на каком языке заголовок запроса, правда, если он присутствует. И одновременно направляет пользователя на соответствующий субдомен. Англоязычные пользователи получают перенаправление на en.mysite.com. А в переменной $site, хранятся все поддерживающиеся на сайте языки. Поэтому если нужно добавить другие языки, то необходимо еще дополнительный элемент массива.
Переменная $lang, предназначена для того, чтобы извлечь значение константы HTTP_ACCEPT_LANGUAGE. Для этого используется функция substr, имеющая 3 параметра, что позволяет достать нужный язык.
Следующая строка определяет, читается ли язык пользователя на сайте. Если все хорошо, то язык поддерживается, в противном случае, выставляется язык по умолчанию.
<?php
// List of available localised versions as 'lang code' => 'url' map
$sites = array(
"en" => "http://en.mysite.com/",
"es" => "http://es.mysite.com/",
"fr" => "http://fr.mysite.com/",
);
// Get 2 char lang code
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
// Set default language if a '$lang' version of site is not available
if (!in_array($lang, array_keys($sites))){
$lang = 'en';
}
// Finally redirect to desired location
header('Location: ' . $sites[$lang]);
?>
Полезные ссылки: межкомнатные двери Липецк



