MediaWiki:Common.js: Difference between revisions
From koreapedia
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 for Chameleon skin (selected languages only) */ | ||
function | |||
new google.translate.TranslateElement( | (function () { | ||
var LANGS = 'ko,ja,es,de,zh-CN,zh-TW,fr,ar,hi,pt-PT,ru'; // note: no 'en' (it's pageLanguage) | |||
var CONTAINER_ID = 'google_translate_element'; | |||
// Ensure container exists before init | |||
function ensureContainer() { | |||
if (!document.getElementById(CONTAINER_ID)) { | |||
var host = document.querySelector('.navbar-collapse') || document.body; | |||
var el = document.createElement('div'); | |||
el.id = CONTAINER_ID; | |||
el.style.marginLeft = '15px'; | |||
host.appendChild(el); | |||
} | |||
} | |||
// NEW callback name to bust any stale init | |||
window.koreapediaGTEInit = function () { | |||
ensureContainer(); | |||
new google.translate.TranslateElement({ | |||
pageLanguage: 'en', | pageLanguage: 'en', | ||
includedLanguages: | includedLanguages: LANGS, | ||
layout: google.translate.TranslateElement.InlineLayout.SIMPLE | layout: google.translate.TranslateElement.InlineLayout.SIMPLE | ||
}, | }, CONTAINER_ID); | ||
}; | |||
} | |||
// Load script only if needed; otherwise call init directly | |||
function loadOrInit() { | |||
// | // If library is already there, just init with our options | ||
if ( | if (window.google && google.translate && google.translate.TranslateElement) { | ||
window.koreapediaGTEInit(); | |||
return; | |||
} | |||
// Avoid adding duplicate script tags | |||
if (!document.querySelector('script[src*="translate_a/element.js"]')) { | |||
var s = document.createElement('script'); | |||
s.src = '//translate.google.com/translate_a/element.js?cb=koreapediaGTEInit'; | |||
document.head.appendChild(s); | |||
} | } | ||
} | |||
mw.loader.using('mediawiki.util', function () { | |||
$(function () { | |||
ensureContainer(); | |||
loadOrInit(); | |||
}); | |||
}); | }); | ||
}); | })(); | ||
Revision as of 15:45, 15 October 2025
/* Any JavaScript here will be loaded for all users on every page load. */
/* Google Translate widget for Chameleon skin (selected languages only) */
(function () {
var LANGS = 'ko,ja,es,de,zh-CN,zh-TW,fr,ar,hi,pt-PT,ru'; // note: no 'en' (it's pageLanguage)
var CONTAINER_ID = 'google_translate_element';
// Ensure container exists before init
function ensureContainer() {
if (!document.getElementById(CONTAINER_ID)) {
var host = document.querySelector('.navbar-collapse') || document.body;
var el = document.createElement('div');
el.id = CONTAINER_ID;
el.style.marginLeft = '15px';
host.appendChild(el);
}
}
// NEW callback name to bust any stale init
window.koreapediaGTEInit = function () {
ensureContainer();
new google.translate.TranslateElement({
pageLanguage: 'en',
includedLanguages: LANGS,
layout: google.translate.TranslateElement.InlineLayout.SIMPLE
}, CONTAINER_ID);
};
// Load script only if needed; otherwise call init directly
function loadOrInit() {
// If library is already there, just init with our options
if (window.google && google.translate && google.translate.TranslateElement) {
window.koreapediaGTEInit();
return;
}
// Avoid adding duplicate script tags
if (!document.querySelector('script[src*="translate_a/element.js"]')) {
var s = document.createElement('script');
s.src = '//translate.google.com/translate_a/element.js?cb=koreapediaGTEInit';
document.head.appendChild(s);
}
}
mw.loader.using('mediawiki.util', function () {
$(function () {
ensureContainer();
loadOrInit();
});
});
})();
