Бесконечный цикл перенаправления при попытке перенаправить пользователя в / en с navigator.language - PullRequest
0 голосов
/ 01 мая 2019

У меня есть веб-сайт на немецком языке Wordpress (http://website.de) и я сделал англоязычную версию каждой страницы с помощью TranslatePress (http://website.de/en).) Теперь я попытался получить язык каждого пользователя в JQuery с помощью навигатора.язык и перенаправить не говорящих по-немецки пользователей на / en:

<script type="text/javascript">
    $(document).ready(function(){
        var userLang = navigator.language || navigator.userLanguage;
        if (userLang == "de") {
            window.location = "http://www.website.de";;
        }
        else {
            window.location = "http://www.website.de/en";
        }
    });
</script>

Но это приводит к бесконечному циклу, и страница перезагружается каждую секунду. Что я могу сделать, чтобы избежать этого?

1 Ответ

1 голос
/ 01 мая 2019

Робин Зигмонд прав: если вы перенаправите оба блока if и else, это всегда приведет к бесконечному циклу (за исключением исключения).Может быть, попробуйте

 <script type="text/javascript">
        $(document).ready(function(){
            var userLang = navigator.language || navigator.userLanguage;
            var isUserOnEnglishVer = window.location.href.indexOf("website.de/en") >=0;
            if (userLang == "de" && isUserOnEnglishVer) {
                window.location = "http://www.website.de";
            }
            if (userLang != "de" && !isUserOnEnglishVer){
                window.location = "http://www.website.de/en";
            }
        });
    </script>

Другими словами, только перенаправление, если у вас неправильная версия.

Однако я бы удивился, если бы не было встроенного способадля языковых перенаправлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...