MediaWiki:Common.js

Материал из bolshe.wiki

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
/* Динамическое добавление виджета Google Translate в боковую панель MediaWiki */
(function () {
    // Ждем полной загрузки структуры документа MediaWiki
    mw.hook('wikipage.content').add(function () {
        
        // Находим элемент бокового меню (подходит для скинов Vector, Monobook)
        var sidebar = document.getElementById('mw-panel') || document.getElementById('sidebar') || document.getElementById('p-navigation');
        
        if (sidebar && !document.getElementById('google_translate_element')) {
            // 1. Создаем HTML-контейнер для самого виджета
            var translateDiv = document.createElement('div');
            translateDiv.id = 'google_translate_element';
            translateDiv.style.padding = '10px';
            translateDiv.style.marginBottom = '10px';
            
            // Вставляем контейнер в самое начало бокового меню
            sidebar.insertBefore(translateDiv, sidebar.firstChild);

            // 2. Объявляем глобальную функцию инициализации для Google API
            window.googleTranslateElementInit = function () {
                new google.translate.TranslateElement({
                    pageLanguage: 'ru', // Исходный язык вашей Вики (измените, если основной язык другой)
                    autoDisplay: false
                }, 'google_translate_element');
            };

            // 3. Динамически загружаем внешний JS-скрипт Google Translate API
            var googleScript = document.createElement('script');
            googleScript.type = 'text/javascript';
            googleScript.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
            document.head.appendChild(googleScript);
        }
    });
})();