MediaWiki:Common.js: Difference between revisions

From eMushpedia
Jump to navigation Jump to search
m override selectable languages for translation - try with wgULSAcceptLanguageList
No edit summary
(One intermediate revision 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"]
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);
}());