MediaWiki:Common.js

Revision as of 01:02, 12 April 2026 by Mamta (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
$(document).ready(function() {

    /* Force main menu pinned */
    if (window.innerWidth >= 1024) {
        var pinButton = document.querySelector('.vector-pinnable-header-pin-button');
        if (pinButton) pinButton.click();
    }

    /* Google Translate - try all possible insertion points */
    var translateHtml =
        '<div class="mw-portlet vector-menu" id="p-translate">' +
            '<div class="vector-menu-heading">Translate</div>' +
            '<div class="vector-menu-content" style="padding:8px 5px;">' +
                '<div id="google_translate_element"></div>' +
            '</div>' +
        '</div>';

    // Log all portlets for debugging
    var allPortlets = document.querySelectorAll('.mw-portlet');
    console.log('Found portlets:', allPortlets.length);
    allPortlets.forEach(function(p) {
        console.log('Portlet:', p.id, p.className);
    });

    // Insert after last portlet in sidebar
    var sidebar = document.querySelector('#mw-panel .vector-menu-portal:last-child, #vector-main-menu, .mw-portlet:last-child');
    console.log('Sidebar target:', sidebar);

    if (allPortlets.length > 0) {
        var lastPortlet = allPortlets[allPortlets.length - 1];
        lastPortlet.insertAdjacentHTML('afterend', translateHtml);
        console.log('Inserted after:', lastPortlet.id);
    }

    /* Load Google Translate */
    var script = document.createElement('script');
    script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
    document.body.appendChild(script);

});

function googleTranslateElementInit() {
    new google.translate.TranslateElement({
        pageLanguage: 'en',
        layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
        autoDisplay: false
    }, 'google_translate_element');
}