fsinr82 9 Опубликовано 13 марта, 2021 Здравствуйте может кто подскажет как правильно сделать на сайте переключение языка сделал но не так при входе на сайт стоит английский язык при выборе русского переключается но на секунду и опять английский ставиться вот код 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, }); } Может кто сталкивался с такой проблемой Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 13 марта, 2021 я конечно через JS куки не выставлял, но почему для кук при выставлении в $.cookie не задается их время жизни? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 13 марта, 2021 Во-первых, для чего 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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
fsinr82 9 Опубликовано 14 марта, 2021 Спасибо большое попробую Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
fsinr82 9 Опубликовано 18 марта, 2021 Не помогло не знаю может я что то не так сделал ну ладно все равно спасибо за подсказку Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты