Сайт веб-разработчика Николая Семенцова

Партнер компании 1с-битрикс

Многоязычный сайт перенаправление пользователя на нужный язык

Часто требуется делать многоязычные сайты на bitrix и очень хотелось что бы пользователю не приходилось самому переключать язык, а происходило это автоматически , для этого я использую такой простой скрипт в bitrix который помещаю в файл init.php.
 // направление на нужный язык  
if(empty($_COOKIE['languser'])) {
    // получаю список сайтов которые есть
    $sites = array();
    $rsSites = CSite::GetList($by="sort", $order="desc", Array());
    while ($arSite = $rsSites->Fetch())
    {
 
      $sites[$arSite['LANGUAGE_ID']] = 'http://'.$arSite['DOMAINS'].$arSite['DIR'] ;      
    }
    // получаем язык
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
 
    // проверяем язык
    if (!in_array($lang, array_keys($sites))){
        $lang = 'ru';
    }
    // перенаправление на нужный язык
     $urlnow = 'http://'.$_SERVER['HTTP_HOST'].$APPLICATION->GetCurPageParam();
 
    if(in_array($urlnow, $sites)) {
        // задаем cookies
        SetCookie("languser", $lang);
        header('Location: ' . $sites[$lang]);         
    }
 
}
При первом заходе пользователя он определяет какие сайты заведены в системе и приоритеты пользователя на язык, далее исходя из этих данных направляет пользователя на нужный язык.



Опубликовано: 11 Мая 2012




Помогла заметка? Жмите кнопки ниже


ВКонтакт Facebook Google Plus Одноклассники Twitter Яндекс Livejournal Liveinternet Mail.Ru





comments powered by Disqus

Партнер 1c-bitrix