Перейти к содержанию
Авторизация  
fsinr82

Языковое меню

Рекомендуемые сообщения

Здравствуйте может кто подскажет как правильно сделать на сайте переключение языка сделал но не так при входе на сайт стоит английский язык при выборе русского переключается но на секунду и опять английский ставиться вот код html 

             <div class="languages">
                           <a href="{url}/index.php?f=en"><img src="{template}/images/lang/lang__en.png" alt="en" data-google-lang="en" class="languages__img_active">
                           <a href="{url}/index.php?f=ru"><img src="{template}/images/lang/lang__ru.png" alt="ru" data-google-lang="ru" class="languages__img_active">
            </div><!-- Конец lang -->    

Так же сделан google-translate.js но может не так 

const googleTranslateConfig = {
    lang: "ru","en"
};

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,
    });
}

Может кто сталкивался с такой проблемой 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я конечно через JS куки не выставлял, но почему для кук при выставлении в  $.cookie не задается их время жизни?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во-первых, для чего  google-translate.js если язык переключается в шаблоне?  google-translate это виджет с автоматическим переводом...

Во-вторых,

Цитата

Так же сделан google-translate.js но может не так 

const googleTranslateConfig = {
    lang: "ru","en"
};

Нет, не так, даже синтаксически не так. Тут задается  текущий язык сайта. Тут подробнее https://github.com/get-web/google-translate-custom-widget/blob/master/jquery/js/google-translate.js

Тут актуальная версия скрипта https://github.com/get-web/google-translate-custom-widget

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не помогло не знаю может я что то не так сделал ну ладно все равно спасибо за подсказку 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...