const googleTranslateConfig = { lang: "ru", }; function TranslateInit() { let code = TranslateGetCode(); // Находим флаг с выбранным языком для перевода и добавляем к нему активный класс $('[data-google-lang="' + code + '"]').addClass('language__img_active'); $("#lang_active").attr("src", "/themes/assets/global/img/lang_" + code + ".png"); if (code == googleTranslateConfig.lang) { // Если язык по умолчанию, совпадает с языком на который переводим // То очищаем куки TranslateClearCookie(); } // Инициализируем виджет с языком по умолчанию new google.translate.TranslateElement({ pageLanguage: googleTranslateConfig.lang, }); // Вешаем событие клик на флаги $('[data-google-lang]').click(function () { TranslateClearCookie() TranslateSetCookie($(this).attr("data-google-lang")) //$.removeCookie('googtrans', { domain: ".socpublic.loc", path: '/' }); // Перезагружаем страницу window.location.reload(); }); } function TranslateGetCode() { // доступные языки var langs = []; $.each($('[data-google-lang]'), function (index, val) { langs.push($(this).attr("data-google-lang")); }); //console.log(langs); /* var config = { 'language': 'ru', 'country': 'RU' } var client = window.navigator ? (window.navigator.language || window.navigator.systemLanguage || window.navigator.userLanguage) : (config.language + "-" + config.country); var language = (client.search('-') > 0) ? client.substring(0, client.search('-')).toLowerCase() : client.toLowerCase(); var country = (client.search('-') > 0) ? client.substring(client.search('-') + 1, client.length).toLowerCase() : config.country; //console.log('Client language: ' + language); //console.log('Client country: ' + country);*/ const params = new Proxy(new URLSearchParams(window.location.search), {get: (searchParams, prop) => searchParams.get(prop),}); if (params.lang != null) { //alert(params.lang); language = params.lang; if (!langs.includes(language)) { language = googleTranslateConfig.lang; } TranslateClearCookie() TranslateSetCookie(language) // Перезагружаем страницу const url = new URL(document.location); const searchParams = url.searchParams; searchParams.delete("lang"); window.history.pushState({}, '', url.toString()); } // Если куки нет, то передаем дефолтный язык 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, path: '/', });*/ $.removeCookie('googtrans', {domain: ".socpublic.com", path: '/'}); $.removeCookie('googtrans', {domain: ".socpublic.com", path: '/account'}); $.removeCookie('googtrans', {domain: "." + document.domain, path: '/'}); $.removeCookie('googtrans', {domain: "." + document.domain, path: '/account'}); $.removeCookie('googtrans', {domain: document.domain, path: '/'}); $.removeCookie('googtrans', {domain: document.domain, path: '/account'}); } function TranslateSetCookie(code) { // Записываем куки /язык_который_переводим/язык_на_который_переводим $.cookie('googtrans', "/auto/" + code); $.cookie('googtrans', "/auto/" + code, { path: '/account', }); }