Определение языка на PHP

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


PHP код определения языка
 

Этот код просто обнаруживает, на каком языке был заголовок набора (если он есть) и перенаправляет пользователя на соответствующий субдомен. Английскую версию сайта пользователь получает при перенаправлении на en.mysite.com т.д. В переменной $sites мы создаем массив всех языков и поддоменов. Это означает, что по всей линии, если вы хотите добавить больше поддержки для различных языков, например, немецкая «de» вы можете просто добавить значение и ключ к массиву $sites.

Переменная $lang принимает “HTTP_ACCEPT_LANGUAGE” наш суперглобальный PHPмассив, заметьте, что данная строка завернута в дужки функции substr(); которая имеет три параметра. Первый параметр это строка результата суперглобальной переменной (“en-US,en;q=0.8”), остальные два параметра указывают, с какого по какой символ выбрать текст из этой строки, то есть 0,2 – выберет en.

Следующая строка PHP кода проверяет существование в массиве $sites значения $lang, и если в нашем наборе языка нет, то устанавливает умолчание “en”.

Следующей строкой делаем перенаправление на нужный нам домен.

<?php
// php определение языка
// Создаем массив с языков => поддоменов
$sites = array(
    "en" => "http://en.mysite.com/",
    "es" => "http://es.mysite.com/",
        "fr" => "http://fr.mysite.com/",
);

// Получаем 2 символа, определяющие язык запроса
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

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

?>

Это мой вариант определения языка на PHP. Если у вас есть другие варианты и предложения по поводу определения языка пользователя методом PHP, просьба отписаться в комментариях. 



Дальше: Определение ipod, iphone пользователей на php


Дискуссия по теме     0 Комментариев
Добавить комментарий
Просмотров: 5011
Страхование КАСКО
карта банка
ндфл
усн
Оформление доверенности
страхование ипотеки
esim
осаго
ВЗР страхование
кредитная карта
Cialis barato Viagra Contrareembolso Cialis 5 mg precio mejores farmacias para comprar Viagra reacciones adversas de Cialis Reduslim cómo tomar soluciones para la impotencia Sildenafil Comprare Cialis 5 mg Giornaliero online in Italia Effetti indesiderati del Cialis 5 mg Acquista Cialis 20mg Cialis originale in vendita In Svizzera si compra il Viagra senza ricetta Cialis 10mg online Acquista Viagra in farmacia Offerta Cialis 5mg Spedra Avanafil in vendita online Acquista Viagra in Svizzera senza prescrizione авиатор спрайб Consegna a domicilio di Cialis 5 mg Effetti collaterali di Cialis 5 mg Consegna a domicilio di Cialis 20mg Acquista Cialis originale generico in Svizzera Consegna a domicilio di Viagra senza ricetta in Svizzera Compra Cialis 10mg Consegna a domicilio di Viagra in farmacia online Sconto Cialis 5mg Comprar Reduslim por internet Comprare Spedra Avanafil senza ricetta online Dove comprare il Viagra in Svizzera Compra Cialis Comprar online Viagra Contrareembolso Dónde encontrar Cialis 5 mg al mejor precio Viagra sin receta Cialis 5 mg efectos secundarios graves Reduslim comprar en línea Disfuncion Erectil tadalafilo avanafil prezzo cialis 20 mg prezzo cialis effetti benefici cialis 10 mg Reduslim Kaufen pulse x coin price