MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
override selectable languages for translation |
No edit summary |
||
| (2 intermediate revisions by one other user not shown) | |||
| Line 6: | Line 6: | ||
wgULSLanguages.en = 'english'; | wgULSLanguages.en = 'english'; | ||
wgULSLanguages.es = 'spanish'; | wgULSLanguages.es = 'spanish'; | ||
wgULSAcceptLanguageList = ["fr", "en", "es"]; | |||
// Override the page the user is redirected to when clicking on the Logo | |||
// according to the lang retrieve in difference locations. | |||
(function () { | |||
function getLang() { | |||
const params = new URLSearchParams(window.location.search); | |||
const urlLang = params.get('uselang') || params.get('lang'); | |||
if (urlLang && ['fr', 'en', 'es'].includes(urlLang)) { | |||
document.cookie = 'emushpedia_lang=' + urlLang + '; path=/; max-age=' + (365 * 24 * 60 * 60); | |||
return urlLang; | |||
} | |||
const cookieMatch = document.cookie.match(/(?:^|;\s*)emushpedia_lang=([^;]+)/); | |||
if (cookieMatch && ['fr', 'en', 'es'].includes(cookieMatch[1])) { | |||
return cookieMatch[1]; | |||
} | |||
const mwLang = mw.config.get('wgUserLanguage'); | |||
if (['fr', 'en', 'es'].includes(mwLang)) { | |||
return mwLang; | |||
} | |||
const browserLang = (navigator.language || 'en').slice(0, 2).toLowerCase(); | |||
if (['fr', 'en', 'es'].includes(browserLang)) { | |||
return browserLang; | |||
} | |||
return 'en'; | |||
} | |||
function getHomeTitle(lang) { | |||
if (lang === 'fr') return 'Accueil'; | |||
if (lang === 'es') return 'Inicio'; | |||
return 'Home'; | |||
} | |||
function rewriteMainLinks() { | |||
const lang = getLang(); | |||
const target = getHomeTitle(lang); | |||
const url = mw.util.getUrl(target, { uselang: lang }); | |||
// Logo | |||
document.querySelectorAll('a.mw-wiki-logo, a.mw-logo').forEach(function (a) { | |||
a.href = url; | |||
a.title = target; | |||
}); | |||
// Sidebar "Main page" style links | |||
document.querySelectorAll('#n-mainpage-description a, a[accesskey="z"]').forEach(function (a) { | |||
a.href = url; | |||
}); | |||
} | |||
mw.loader.using(['mediawiki.util']).then(rewriteMainLinks); | |||
}()); | |||
Revision as of 02:31, 9 April 2026
/* Tout JavaScript présent ici sera exécuté par tous les utilisateurs à chaque chargement de page. */
//override selectable languages for translation
wgULSLanguages = [];
wgULSLanguages.fr = 'french';
wgULSLanguages.en = 'english';
wgULSLanguages.es = 'spanish';
wgULSAcceptLanguageList = ["fr", "en", "es"];
// Override the page the user is redirected to when clicking on the Logo
// according to the lang retrieve in difference locations.
(function () {
function getLang() {
const params = new URLSearchParams(window.location.search);
const urlLang = params.get('uselang') || params.get('lang');
if (urlLang && ['fr', 'en', 'es'].includes(urlLang)) {
document.cookie = 'emushpedia_lang=' + urlLang + '; path=/; max-age=' + (365 * 24 * 60 * 60);
return urlLang;
}
const cookieMatch = document.cookie.match(/(?:^|;\s*)emushpedia_lang=([^;]+)/);
if (cookieMatch && ['fr', 'en', 'es'].includes(cookieMatch[1])) {
return cookieMatch[1];
}
const mwLang = mw.config.get('wgUserLanguage');
if (['fr', 'en', 'es'].includes(mwLang)) {
return mwLang;
}
const browserLang = (navigator.language || 'en').slice(0, 2).toLowerCase();
if (['fr', 'en', 'es'].includes(browserLang)) {
return browserLang;
}
return 'en';
}
function getHomeTitle(lang) {
if (lang === 'fr') return 'Accueil';
if (lang === 'es') return 'Inicio';
return 'Home';
}
function rewriteMainLinks() {
const lang = getLang();
const target = getHomeTitle(lang);
const url = mw.util.getUrl(target, { uselang: lang });
// Logo
document.querySelectorAll('a.mw-wiki-logo, a.mw-logo').forEach(function (a) {
a.href = url;
a.title = target;
});
// Sidebar "Main page" style links
document.querySelectorAll('#n-mainpage-description a, a[accesskey="z"]').forEach(function (a) {
a.href = url;
});
}
mw.loader.using(['mediawiki.util']).then(rewriteMainLinks);
}());