MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
$(document).ready(function() { | $(document).ready(function() { | ||
/* Force main menu | /* Force main menu pinned */ | ||
if (window.innerWidth >= 1024) { | if (window.innerWidth >= 1024) { | ||
var pinButton = document.querySelector('.vector-pinnable-header-pin-button'); | var pinButton = document.querySelector('.vector-pinnable-header-pin-button'); | ||
if (pinButton) | if (pinButton) pinButton.click(); | ||
} | } | ||
/* Google Translate | /* Google Translate - try all possible insertion points */ | ||
var translateHtml = | var translateHtml = | ||
'<div class="mw-portlet vector-menu" id="p-translate">' + | '<div class="mw-portlet vector-menu" id="p-translate">' + | ||
'<div class="vector-menu-heading">Translate</div>' + | '<div class="vector-menu-heading">Translate</div>' + | ||
'<div class="vector-menu-content">' + | '<div class="vector-menu-content" style="padding:8px 5px;">' + | ||
'<div id="google_translate_element"></div>' + | '<div id="google_translate_element"></div>' + | ||
'</div>' + | '</div>' + | ||
'</div>'; | '</div>'; | ||
// | // Log all portlets for debugging | ||
var | 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 ( | if (allPortlets.length > 0) { | ||
var lastPortlet = allPortlets[allPortlets.length - 1]; | |||
lastPortlet.insertAdjacentHTML('afterend', translateHtml); | |||
console.log('Inserted after:', lastPortlet.id); | |||
} | } | ||
/* Load Google Translate | /* Load Google Translate */ | ||
var script = document.createElement('script'); | var script = document.createElement('script'); | ||
script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; | script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; | ||
document.body.appendChild(script); | document.body.appendChild(script); | ||
}); | }); | ||
function googleTranslateElementInit() { | function googleTranslateElementInit() { | ||
Revision as of 01:02, 12 April 2026
$(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');
}