Приведенный ниже код не будет загружать скрипт с серверов Google, пока не будет нажата кнопка «Загрузить Google Translate».
<html>
<head>
<script>
function loadGoogleTranslate() {
var scriptTag = document.createElement('script');
scriptTag.type = "text/javascript";
scriptTag.src = "//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";
var head = document.getElementsByTagName('head')[0];
head.appendChild(scriptTag);
}
function googleTranslateElementInit() {
// Hide the section containing the "Load Google Translate" button
var beforeLoadSection = document.getElementById('before-load');
beforeLoadSection.style.display = 'none';
// Set up Google Translate now that their script has loaded
new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');
// Show the section containing the Google Translate element
var afterLoadSection = document.getElementById('after-load');
afterLoadSection.style.display = '';
}
</script>
</head>
<body>
<div id="before-load">
<button onclick="window.loadGoogleTranslate()">Load Google Translate</button>
</div>
<div id="after-load" style="display:none">
<div id="google_translate_element"></div>
</div>
</body>
</html>
Вы можете убедиться, что скрипт Google не загружен до нажатия кнопки, просмотрев сетевой трафик (например, на вкладке «Сеть» в DevTools в Chrome).
Обратите внимание, что вы также можете просто создать ссылку, подобную этой, по которой пользователи могут щелкнуть, чтобы получить доступ к переведенной версии вашей страницы, никакой изящный Javascript не требуется:
https://translate.google.com/translate?hl=&sl=en&tl=ar&u=https%3A%2F%2Fstackoverflow.com%2Fq%2F55643969%2F3063273
Я выделил детали, о которых вам нужно беспокоиться:
- ru - это язык "from" (в данном случае английский)
- ar - это язык "to" (в данном случае арабский)
- длинная строка текста - это URL-кодированная форма страницы для перевода. Google "URL кодировать", если вы хотите узнать, как это сделать. Javascript имеет встроенную функцию, которая может помочь
P.S. Вы, вероятно, получили отрицательное мнение от кого-то, потому что ему не нравятся вопросы типа «напишите мой код». Если бы вместо этого вы включили минимальный, полный и проверяемый пример (MCVE) , то, вероятно, вас бы не понизили, но создать MCVE может быть очень сложно, если вы не знаете, с чего начать. Вот дополнительное чтение по этому вопросу, если вы хотите узнать больше о культуре здесь: https://meta.stackoverflow.com/a/345249/3063273
P.P.S. Если вы хотите использовать приведенный выше необычный код Javascript, имейте в виду, что вы не можете использовать его в iframe
. Если вы не знаете, что такое iframe
, не беспокойтесь об этом.