Цитата:
Попробовать взять новую версию и вручную ее запихнуть. |
файл mootools-core.js был в одну строку, начал переносить строки и сайт начал автоматически переводить сайт на Казахский. Начали появятся ошибки в консоли. Сейчас перенесу все строки посмотрим что покажет.
Цитата:
|
Цитата:
Цитата:
|
Чистил и в браузере и кэш на сайте
|
Тут вот на что я обратил внимание. Если посмотреть на сайт, который работает (_https://studio-it.kz/), то там устанавливается два кука
googtrans /ru/kk для studio-it.kz googtrans /ru/kk для .studio-it.kz А для _https://update.lik-astana.kz/ три googtrans /ru/kk для .update.lik-astana.kz googtrans /ru/en для update.lik-astana.kz googtrans /ru/en для .lik-astana.kz Причем с разными значениями Тут уже надо разбираться и экспериментировать. Файл google-translate.js строки 23-25 /* Если скрипт не работает или работает неправильно, раскомментируйте и укажите основной домен в свойстве domain */ /* If the script does not work or does not work correctly, uncomment and specify the main domain in the domain property */ // domain: "Get-Web.Site" Я, честно говоря, не очень понимаю, что там должно стоять. Можно попробовать раскомментировать и поставить туда domain: "lik-astana.kz" Еще в этом файле меня очень смущает строка 103 if (domain == "undefined") return; Я не могу ее объяснить. Либо попробовать ее исправить на if (typeof domain == "undefined") return; (при этом закомментировать строку 25) Или попытаться в строку 25 написать domain: "undefined" |
Может можно как-то после отработки скрипта чистить куки googtrans
|
Цитата:
В файле google-translate.js строки 15-17, раскомментариваем и ставим какое-нибудь слово, например /* Если хотите подписаться на событие "FinishTranslate" (Момент когда скрипт закончил перевод), расскоментируйте и добавьте любое проверочное слово на оригинальном языке */ /* If you want to subscribe to the "FinishTranslate" event (The moment when the script finished translating), uncomment and add any test word in the original language */ testWord: "Кошка", Затем ставим обработчик события "FinishTranslate" <script> document.addEventListener("FinishTranslate", () => { // Тут удаляем куки Cookies.remove("googtrans"); }) </script> Только наверно надо удалять все куки с путями, как их устанавливали в google-translate.js (строки 94-114). Пробовать надо. Я мог попробовать только на простейшем примере. |
так не срабатывает
|
Цитата:
document.addEventListener("FinishTranslate", () => { // Тут удаляем куки Cookies.remove("googtrans"); }) Это срабатывает? Слово в testWord: "Кошка", лучше ставить русское, что бы она его переводила. Хотя событие вроде и так посылает. Правда где оно у вас ловится, я не нашел. |
Вот так не срабатывает
const googleTranslateConfig = { /* Original language */ lang: "ru", /* Если хотите подписаться на событие "FinishTranslate" (Момент когда скрипт закончил перевод), расскоментируйте и добавьте любое проверочное слово на оригинальном языке */ testWord: "куки", /* Язык, на который переводим при первом посещении */ // langFirstVisit: 'en', /* Если скрипт не работает или работает неправильно, раскомментируйте и укажите основной домен в свойстве domain */ // domain: "lik-astana.kz" domain: "undefined" }; document.addEventListener("DOMContentLoaded", (event) => { /* Подключаем виджет google translate */ let script = document.createElement("script"); script.src = `//translate.google.com/translate_a/element.js?cb=TranslateWidgetIsLoaded`; document.getElementsByTagName("head")[0].appendChild(script); }); function TranslateWidgetIsLoaded() { TranslateInit(googleTranslateConfig); } function TranslateInit(config) { if (config.langFirstVisit && !Cookies.get("googtrans")) { /* Если установлен язык перевода для первого посещения и куки не назначены */ TranslateCookieHandler("/auto/" + config.langFirstVisit); } let code = TranslateGetCode(config); TranslateHtmlHandler(code); if (code == config.lang) { /* Если язык по умолчанию, совпадает с языком на который переводим, то очищаем куки */ TranslateCookieHandler(null, config.domain); } if (config.testWord) TranslateMutationObserver(config.testWord, code == config.lang); /* Инициализируем виджет с языком по умолчанию */ new google.translate.TranslateElement({ pageLanguage: config.lang, multilanguagePage: true, // Your page contains content in more than one languages }); /* Вешаем событие клик на флаги */ TranslateEventHandler("click", "[data-google-lang]", function (e) { TranslateCookieHandler( "/" + config.lang + "/" + e.getAttribute("data-google-lang"), config.domain ); /* Перезагружаем страницу */ window.location.reload(); }); } function TranslateGetCode(config) { /* Если куки нет, то передаем дефолтный язык */ let lang = Cookies.get("googtrans") != undefined && Cookies.get("googtrans") != "null" ? Cookies.get("googtrans") : config.lang; return lang.match(/(?!^\/)[^\/]*$/gm)[0]; } function TranslateCookieHandler(val, domain) { /* Записываем куки /язык_который_переводим/язык_на_который_переводим */ Cookies.set("googtrans", val, { domain: document.domain, path: '/' }); Cookies.set("googtrans", val, { domain: "." + document.domain, path: '/' }); if (domain == "undefined") return; /* записываем куки для домена, если он назначен в конфиге */ Cookies.set("googtrans", val, { domain: domain, path: '/' }); Cookies.set("googtrans", val, { domain: "." + domain, path: '/' }); } function TranslateEventHandler(event, selector, handler) { document.addEventListener(event, function (e) { let el = e.target.closest(selector); if (el) handler(el); }); } function TranslateHtmlHandler(code) { /* Получаем язык на который переводим и производим необходимые манипуляции с DOM */ if (document.querySelector('[data-google-lang="' + code + '"]') !== null) { document .querySelector('[data-google-lang="' + code + '"]') .classList.add("language__img_active"); } } function TranslateMutationObserver(word, isOrigin) { if (isOrigin) { document.dispatchEvent(new CustomEvent("FinishTranslate")); } else { /* Создаем скрытый блок в который добавляем тестовое слово на оригинальном языке. Это позволит нам отследить момент когда сайт будет переведен и вызвать событие "FinishTranslate" */ let div = document.createElement('div'); div.id = 'googleTranslateTestWord'; div.innerHTML = word; div.style.display = 'none'; document.body.prepend(div); let observer = new MutationObserver(() => { document.dispatchEvent(new CustomEvent("FinishTranslate")); observer.disconnect(); }); observer.observe(div, { childList: false, subtree: true, characterDataOldValue: true }); } } document.addEventListener("FinishTranslate", () => { // Тут удаляем куки Cookies.remove("googtrans"); }) |
Часовой пояс GMT +3, время: 18:19. |