Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не срабатывает langFirstVisit. Что не так? (https://javascript.ru/forum/misc/84268-ne-srabatyvaet-langfirstvisit-chto-ne-tak.html)

andkl 25.07.2022 11:36

Не срабатывает langFirstVisit. Что не так?
 
Поставил виджет для автоматического перевода сайта
Сам сайт на русском, нужно что бы при первом заходе сайт по умолчанию открывался на украинском
ставлю дефолтный lang: "uk",
не работает
нашел в инете якобы решение сделать langFirstVisit: 'uk',
не работает
кто подскажет что не так?
вот сайт

Спасибо

Дмитрий Луценко 25.07.2022 14:13

Вы бы указывали в js тегах нужный скрипт, где участвует этот флаг.
Так Вы увеличите шансы получить помощь.

Чисто для интереса глянул, что у Вас там:

<script>
    const googleTranslateConfig = {
    lang: "ru",
	langFirstVisit: 'uk',
	
};

function TranslateInit() {

    let code = TranslateGetCode();
    // Находим флаг с выбранным языком для перевода и добавляем к нему активный класс
    $('[data-google-lang="' + code + '"]').addClass('language__img_active');

    if (code == googleTranslateConfig.lang) {
        // Если язык по умолчанию, совпадает с языком на который переводим
        // То очищаем куки
        TranslateClearCookie();
    }

    // Инициализируем виджет с языком по умолчанию
    new google.translate.TranslateElement({
        pageLanguage: googleTranslateConfig.lang,
    });

    // Вешаем событие  клик на флаги
    $('[data-google-lang]').click(function () {
        TranslateSetCookie($(this).attr("data-google-lang"))
        // Перезагружаем страницу
        window.location.reload();
    });
}

function TranslateGetCode() {
    // Если куки нет, то передаем дефолтный язык
    let lang = ($.cookie('googtrans') != undefined && $.cookie('googtrans') != "null") ? $.cookie('googtrans') : googleTranslateConfig.lang;
    return lang.substr(-2);
}

function TranslateClearCookie() {
    $.cookie('googtrans', null);
    $.cookie("googtrans", null, {
        domain: "." + document.domain,
    });
}

function TranslateSetCookie(code) {
    // Записываем куки /язык_который_переводим/язык_на_который_переводим
    $.cookie('googtrans', "/auto/" + code);
    $.cookie("googtrans", "/auto/" + code, {
        domain: "." + document.domain,
    });
}
    </script>

Дмитрий Луценко 25.07.2022 14:30

У Вас флаг langFirstVisit не используется.

Попробуйте этот способ.

function TranslateGetCode() {
    // Если куки нет, то передаем дефолтный язык
    let lang = ($.cookie('googtrans') != undefined && $.cookie('googtrans') != "null") ? $.cookie('googtrans') : googleTranslateConfig.langFirstVisit;
    return lang.substr(-2);
}


Еще дополнительно совет: приведите в порядок загрузку скриптов и стилей. У Вас ошибки Mixed Content.
Для этого убирайте явное указание протокола http


Часовой пояс GMT +3, время: 08:50.