Сайт постоянно редиректит на АНГЛ язык сайта

Jokerrcs

Постоялец
Регистрация
6 Мар 2016
Сообщения
72
Реакции
6
Сайт Для просмотра ссылки Войди или Зарегистрируйся
Сайт постоянно редиректит на АНГЛ язык сайта, РУС включить не получается. Это является проблемой при продвижении – любые редиректы нужно отключать! Кнопка и работает и отображается. Проблема в редиректах, а суть редиректа заключается в том, что если сайт НЕ определил язык пользователя в браузере – он автоматически редиректит на АНГЛ язык, т.е. установлен скрипт который работает по принципу = для РУ браузеров = РУ язык, для все остальных или тех кто НЕ определен = АНГЛ язык и это критическая ошибка, так как БОТЫ поисковиков не всегда будут заходить с РУ языком в коде и они попросту будут записывать редирект на другие страницы и сайт можно будет закрывать так как ТОПа ему не достичь. Нужно это исправить. Кто разбирается в js, буду благодарен за помощь
За скрипт отвечает файл Для просмотра ссылки Войди или Зарегистрируйся
Код:
var _b_phone = 490,
    _b_tablet = 780.
    _b_desktop = 1024,
    _isAdvantagesSlicked = false;

$(document).ready(function () {
    $('.menu__burger').click(function() {
        $('.menu__overlay').show();
        $('.menu__popup').addClass('menu__popup--shown');
    });

    $('.menu__overlay').click(function() {
        $('.menu__popup').removeClass('menu__popup--shown');
        $(this).hide();
    });

    slickify();
    parallax();
    setupTabs();

    $(window).resize(function(){
        slickify();  
    });

    setupInputs();
    setupForms();

});

function setupTabs() {
    $('.synopsis__tabs__tab').click(function() {
        if (!$(this).hasClass('synopsis__tabs__tab--active')) {
                $(this).addClass('synopsis__tabs__tab--active');
            if ($(this).index() == 0) {
                $('.synopsis__tabs__tab').eq(1).removeClass('synopsis__tabs__tab--active');
                $('.faq').hide();
                $('.reviews').show();
                $('.reviews__content').slick('unslick');
                slickReviews();
            }
            if ($(this).index() == 1) {
                $('.synopsis__tabs__tab').eq(0).removeClass('synopsis__tabs__tab--active');
                $('.reviews').hide();
                $('.faq').show();
            }
        }
    });

    $('.faq__item__header').click(function() {
        if ($(this).hasClass('faq__item__header--active')) {
            $(this).removeClass('faq__item__header--active');
            $(this).parent().find('.faq__item__content').hide();
        } else {
            $(this).addClass('faq__item__header--active');
            $(this).parent().find('.faq__item__content').show();
        }
    });
}

function parallax() {
    var $windowWidth = $(window).width();
    if ($windowWidth > _b_desktop) { 
        var movementStrength = 25;
        var height = movementStrength / $(window).height();
        var width = movementStrength / $(window).width();
        $('body').mousemove(function(e){
            var pageX = e.pageX - ($(window).width() / 2);
            var pageY = e.pageY - $(this).scrollTop() - ($(window).height() / 2);
            var newvalueX = width * pageX * -1 - movementStrength * 2;
            var newvalueY = height * pageY * -1 - movementStrength * 0.5;
            $('.offer').css("background-position", newvalueX + "px "+ newvalueY + "px");
        });
    }  
}

function slickify(){
    var $windowWidth = $(window).width();
    if ($windowWidth <= _b_phone) {
        if (!_isAdvantagesSlicked) {
           $('.advantages__cols').slick({
                autoplay: true,
                autoplaySpeed: 4000,
                delay: 5000,
                speed: 700,
                arrows: false,
                dots: true,
                centerMode: true,
                centerPadding: '80px',
                slidesToShow: 1,
                responsive: [
                    {
                        breakpoint: _b_phone,
                        settings: {
                            centerPadding: '0'
                        }
                    }
                ]
            }); 
            _isAdvantagesSlicked = true;
        }
    } else {
        if (_isAdvantagesSlicked) {
            $('.advantages__cols').slick('unslick');
            _isAdvantagesSlicked = false;
        }
    }

    $('.lang-switch__var__label, .lang-switch__var__flag, #lang-toggle').on('click', function(){
     if(location.pathname.indexOf('/en/') == -1){
       location.pathname = '/en'+location.pathname;
     } else {
       location.pathname = location.pathname.replace('/en/','/');
     }
    return false;
  });
  if(navigator.language.indexOf('ru') > -1){
     $('.lang-switch').css('visibility', 'visible');
     $('#lang-flag, #lang-ru, #lang-toggle').show();
  } else if(location.pathname.indexOf('/en/') == -1) {
     location.pathname = '/en'+location.pathname;
  }

    $('.cases__carousel__content').slick({
        autoplay: true,
        autoplaySpeed: 2000,
        speed: 700,
        centerMode: true,
        centerPadding: '290px',
        slidesToShow: 1,
        prevArrow: '.cases__arrow--left',
        nextArrow: '.cases__arrow--right',
        responsive: [
            {
                breakpoint: _b_tablet,
                settings: {
                    centerPadding: '0'
                }
            }
        ]
    }); 

    slickReviews();
}

function slickReviews() {
    $('.reviews__content').slick({
        autoplay: true,
        autoplaySpeed: 4000,
        speed: 700,
        rows: 2,
        slidesToShow: 2,
        prevArrow: '.reviews__arrow--left',
        nextArrow: '.reviews__arrow--right',
        responsive: [
            {
                breakpoint: _b_desktop,
                settings: {
                    centerMode: true,
                    slidesToShow: 1
                }
            },
            {
                breakpoint: _b_tablet,
                settings: {
                    centerMode: true,
                    slidesToShow: 1,
                    centerPadding: '-50px'
                }
            },
            {
                breakpoint: _b_phone,
                settings: {
                    centerMode: true,
                    slidesToShow: 1,
                    centerPadding: '-80px'
                }
            }
        ]
    });
}

function setupInputs() {
    $('.coop__form__file__input').on('change', function() {
        $(this).prev('.coop__form__file__msg').html($(this).val().split('\\').pop());
    });
}

function setupForms() {
    $('form').formify(function() {
        alert('Спасибо. С вами свяжутся в ближайшее время.')
    });
}

function setupLanguage() {
    var locLang = (navigator.language) ? navigator.language : navigator.userLanguage;
    var url = window.location.href;
    var newUrl = 'https://dota2boost.ru/';
   
    if (locLang !== 'ru' && url.indexOf("/en") == -1) {
        var subUrl = url.replace(newUrl, '');
        newUrl += '/en/' + subUrl;
        window.location.href = newUrl;
    }

    if (locLang == 'ru') {
        $('.lang-switch').css('visibility', 'visible');
        $('#lang-flag, #lang-ru, #lang-toggle').show();
    }
}

function clamp(num, min, max) {
    if (!num) return 0;
    return num <= min ? min : num >= max ? max : num;
}
 
Последнее редактирование:
Может более правильно будет, позволить пользователям самим выбирать язык? Записывать это в куки или локальное хранилище, а боты буду работать с вашим дефолтным языком
 
Ну он берет из браузера язык, можешь заюзать какой-то сервис или скрипт для geo-ip и определять локаль по местоположению с кешем в куках.
 
Назад
Сверху