Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Перевод страниц на лету (https://javascript.ru/forum/dom-window/85692-perevod-stranic-na-letu.html)

Stas1985 05.01.2024 08:25

Перевод страниц на лету
 
Доброго времени суток форумчане! Пытаюсь сделать автоматический перевод страниц сайта на другие языки. Более подробнее _https://update.lik-astana.kz/ скрипт взял на github - https://github.com/get-web/google-tr...-custom-widget Скрипт установил на сайт но получаю ошибку
Код:

Uncaught TypeError: config is undefined
    TranslateInit /modules/mod_translate/assets/js/google-translate.js:43
    e https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.ru.fo2h-yJO3a4.O/d=1/exm=el_conf/ed=1/rs=AN8SPfpZvqCjXuC2yV2mpnE09FNx6XB4Hw/m=el_main:442
    <anonymous> https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.ru.fo2h-yJO3a4.O/d=1/exm=el_conf/ed=1/rs=AN8SPfpZvqCjXuC2yV2mpnE09FNx6XB4Hw/m=el_main:442
    <anonymous> https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.ru.fo2h-yJO3a4.O/d=1/exm=el_conf/ed=1/rs=AN8SPfpZvqCjXuC2yV2mpnE09FNx6XB4Hw/m=el_main:442
    <anonymous> https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.ru.fo2h-yJO3a4.O/d=1/exm=el_conf/ed=1/rs=AN8SPfpZvqCjXuC2yV2mpnE09FNx6XB4Hw/m=el_main:445

Вот часть скрипта где ошибка google-translate.js:43
if (config.langFirstVisit && !$.cookie("googtrans")) {
		/* Если установлен язык перевода для первого посещения и куки не назначены */
		/* If the translation language is installed for the first visit and cookies are not assigned */
		TranslateCookieHandler("/auto/" + config.langFirstVisit);
	}

Понимая что ошибка с куками но самостоятельно решить не получается :help: :help: :help: .

voraa 05.01.2024 08:40

А где определяется и устанавливается config?
В ошибке именно про него написано: config is undefined

Stas1985 05.01.2024 08:49

Цитата:

Сообщение от voraa (Сообщение 554375)
А где определяется и устанавливается config?
В ошибке именно про него написано: config is undefined

Определение config-га в этом файле нет, на гитхабе тоже не описано. В файлах что подтягиваются тоже нет. Вот сам блок с флагами
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> -->
<script src="//translate.google.com/translate_a/element.js?cb=TranslateInit"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

<div class="language">		
<img src="/modules/mod_translate/images/kz.png" alt="kk" data-google-lang="kk" class="language__img" />
<img src="/modules/mod_translate/images/ru.png" alt="ru" data-google-lang="ru" class="language__img" />
<img src="/modules/mod_translate/images/us.png" alt="en" data-google-lang="en" class="language__img" />
</div>

Stas1985 05.01.2024 09:10

Либо может посоветуете рабочий скрипт перевода, необходимо переводить страницы на лету.

voraa 05.01.2024 09:18

Вы что то сильно переделали, по сравнению с тем, что написано на гитхабе.
Там нет вызова скрипта
<script src="//translate.google.com/translate_a/element.js?cb=TranslateInit"></script>

Там этот скрипт вызывается автоматически и только после того, как загрузится DOM.
document.addEventListener("DOMContentLoaded", (event) => {
	/* Подключаем виджет google translate */
	/* Connecting the google translate widget */
	let script = document.createElement("script");
	script.src = `//translate.google.com/translate_a/element.js?cb=TranslateWidgetIsLoaded`;
	document.getElementsByTagName("head")[0].appendChild(script);
});

И он должен вызвать функцию TranslateInit, после того, как загрузится с параметром config.

Stas1985 05.01.2024 09:35

Да действительно ошибка пропала, спасибо! Но перевод так и не происходит

Stas1985 05.01.2024 09:44

если подключаю как на гит
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
страница перестает грузится вовсе

Stas1985 05.01.2024 11:52

попробовал вариант с nativejs - https://github.com/get-web/google-tr...aster/nativejs Просто перезагружает страницу но перевода нет. Подскажите пожалуйста, что не так

voraa 05.01.2024 12:35

У вас большой сайт, где уже подключено 100500 всяких скриптов. И разбираться как они там между собой взаимодействуют никто не будет.
Обычно для чего то нового делается небольшой тестовый пример, буквально одна страничка с текстом и добиваются, что бы она работала (или не работала). Только так можно понять, что и как надо подключать

Stas1985 05.01.2024 12:42

Цитата:

Сообщение от voraa (Сообщение 554383)
У вас большой сайт, где уже подключено 100500 всяких скриптов. И разбираться как они там между собой взаимодействуют никто не будет.
Обычно для чего то нового делается небольшой тестовый пример, буквально одна страничка с текстом и добиваются, что бы она работала (или не работала). Только так можно понять, что и как надо подключать

Может посоветуете что-то что будет работать.
После подключения nativejs появились такие ошибки
Код:

Ресурс с «https://translate-pa.googleapis.com/v1/supportedLanguages?%5Bobject%20Map%20Iterator%5D=%5Bobject%20Map%20Iterator%5D» был заблокирован из-за несоответствия MIME-типа («application/json») (X-Content-Type-Options: nosniff)
Код:

Uncaught TypeError: a.callbackName is undefined
    <anonymous> about:srcdoc:11



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