MediaWiki:Common.js — различия между версиями

Материал из Викип
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
// Ждем полной загрузки базовых модулей MediaWiki и jQuery
+
// 1. Функция инициализации виджета (должна быть глобальной для Google)
mw.loader.using(['mediawiki.util']).done(function () {
+
window.googleTranslateElementInit = function() {
  // 1. Создаем глобальную функцию инициализации (Google ищет именно её)
+
    new google.translate.TranslateElement({
    window.googleTranslateElementInit = function() {
+
        pageLanguage: 'ru',
        new google.translate.TranslateElement({
+
    }, 'google_translate_element');
            pageLanguage: 'ru', // Язык оригинала вашего сайта
+
};
        }, 'google_translate_element');
 
    };
 
  
 
+
// 2. Безопасная загрузка скрипта через чистый, старый JavaScript
    // 2. Безопасно загружаем скрипт Google через встроенный загрущик MediaWiki
+
(function() {
     mw.loader.getScript('https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&hl=en')
+
    var gtScript = document.createElement('script');
        .catch(function(e) {
+
     gtScript.type = 'text/javascript';
            console.error("Ошибка загрузки Google Translate:", e);
+
    gtScript.async = true;
         });
+
    gtScript.src = 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&hl=en';
});
+
   
 
+
    var firstScript = document.getElementsByTagName('script')[0];
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
+
    if (firstScript && firstScript.parentNode) {
 +
        firstScript.parentNode.insertBefore(gtScript, firstScript);
 +
    } else {
 +
         document.getElementsByTagName('head')[0].appendChild(gtScript);
 +
    }
 +
})();

Текущая версия на 19:24, 22 августа 2026

// 1. Функция инициализации виджета (должна быть глобальной для Google)
window.googleTranslateElementInit = function() {
    new google.translate.TranslateElement({
        pageLanguage: 'ru',
    }, 'google_translate_element');
};
 
// 2. Безопасная загрузка скрипта через чистый, старый JavaScript
(function() {
    var gtScript = document.createElement('script');
    gtScript.type = 'text/javascript';
    gtScript.async = true;
    gtScript.src = 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&hl=en';
 
    var firstScript = document.getElementsByTagName('script')[0];
    if (firstScript && firstScript.parentNode) {
        firstScript.parentNode.insertBefore(gtScript, firstScript);
    } else {
        document.getElementsByTagName('head')[0].appendChild(gtScript);
    }
})();