MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
/* Google Translate Widget */ | /* Google Translate Widget - after Main Menu, before Contact Us */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
var translateHtml = | |||
var translateHtml = '<div id=" | '<div class="mw-portlet mw-portlet-translate vector-menu" id="p-translate">' + | ||
'<div class="vector-menu-heading">Translate</div>' + | |||
'<div class="vector-menu-content">' + | |||
'<div id="google_translate_element" style="padding: 8px 5px;"></div>' + | |||
'</div>' + | |||
'</div>'; | '</div>'; | ||
// Insert after the Main Menu portlet, before Contact Us | |||
var mainMenuPortlet = document.querySelector('#p-Main_Menu, .mw-portlet-Main_Menu'); | |||
if (mainMenuPortlet) { | |||
mainMenuPortlet.insertAdjacentHTML('afterend', translateHtml); | |||
} else { | |||
// Fallback - insert before last portlet | |||
var portlets = document.querySelectorAll('.mw-portlet'); | |||
var lastPortlet = portlets[portlets.length - 1]; | |||
if (lastPortlet) { | |||
lastPortlet.insertAdjacentHTML('beforebegin', translateHtml); | |||
} | |||
} | |||
// Load Google Translate script | // Load Google Translate script | ||
| Line 19: | Line 33: | ||
pageLanguage: 'en', | pageLanguage: 'en', | ||
layout: google.translate.TranslateElement.InlineLayout.SIMPLE, | layout: google.translate.TranslateElement.InlineLayout.SIMPLE, | ||
autoDisplay: false | autoDisplay: false, | ||
multilanguagePage: true | |||
}, 'google_translate_element'); | }, 'google_translate_element'); | ||
} | } | ||
Revision as of 09:46, 11 April 2026
/* Any JavaScript here will be loaded for all users on every page load. */
/* Google Translate Widget - after Main Menu, before Contact Us */
$(document).ready(function() {
var translateHtml =
'<div class="mw-portlet mw-portlet-translate vector-menu" id="p-translate">' +
'<div class="vector-menu-heading">Translate</div>' +
'<div class="vector-menu-content">' +
'<div id="google_translate_element" style="padding: 8px 5px;"></div>' +
'</div>' +
'</div>';
// Insert after the Main Menu portlet, before Contact Us
var mainMenuPortlet = document.querySelector('#p-Main_Menu, .mw-portlet-Main_Menu');
if (mainMenuPortlet) {
mainMenuPortlet.insertAdjacentHTML('afterend', translateHtml);
} else {
// Fallback - insert before last portlet
var portlets = document.querySelectorAll('.mw-portlet');
var lastPortlet = portlets[portlets.length - 1];
if (lastPortlet) {
lastPortlet.insertAdjacentHTML('beforebegin', translateHtml);
}
}
// Load Google Translate script
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,
multilanguagePage: true
}, 'google_translate_element');
}
/* Force main menu to be pinned on desktop */
$(document).ready(function() {
// Force pin the main menu
var pinnedContainer = document.getElementById('vector-main-menu-pinned-container');
var unpinnedContainer = document.getElementById('vector-main-menu-unpinned-container');
var mainMenu = document.getElementById('vector-main-menu');
if (window.innerWidth >= 1024) {
if (unpinnedContainer && mainMenu) {
// Move menu to pinned container if not already there
if (pinnedContainer && !pinnedContainer.contains(mainMenu)) {
pinnedContainer.appendChild(mainMenu);
}
}
// Click the pin button if it exists
var pinButton = document.querySelector('.vector-pinnable-header-pin-button');
if (pinButton) {
pinButton.click();
}
}
/* Google Translate Widget */
var translateHtml = '<div class="mw-portlet" id="p-translate">' +
'<div class="mw-portlet-header">Translate</div>' +
'<div class="mw-portlet-body">' +
'<div id="google_translate_element"></div>' +
'</div></div>';
var sidebar = document.querySelector('.mw-portlet-navigation, #p-navigation');
if (sidebar) {
sidebar.insertAdjacentHTML('afterend', translateHtml);
}
// 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');
}