MediaWiki:Common.js: Difference between revisions
Appearance
Texicapedia (talk | contribs) Created page with "→Any JavaScript here will be loaded for all users on every page load.: →===== Language link bar (machine translation) =====: mw.loader.using( 'mediawiki.util' ).then( function () { var languages = [ [ 'es', 'Español' ], [ 'fr', 'Français' ], [ 'de', 'Deutsch' ], [ 'vi', 'Tiếng Việt' ], [ 'zh', '中文' ], [ 'pt', 'Português' ], [ 'ko', '한국어' ], [ 'ja', '日本語' ] ]; // Only on articles (main namespace), only when reading the pa..." |
Texicapedia (talk | contribs) 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. */ | ||
/* ===== Language link bar (machine translation) ===== */ | /* ===== Language link bar (machine translation) ===== */ | ||
mw.loader.using( 'mediawiki.util' ).then( function () { | $.when( mw.loader.using( 'mediawiki.util' ), $.ready ).then( function () { | ||
var languages = [ | var languages = [ | ||
[ 'es', 'Español' ], | [ 'es', 'Español' ], | ||
Revision as of 20:38, 31 October 2026
/* Any JavaScript here will be loaded for all users on every page load. */
/* ===== Language link bar (machine translation) ===== */
$.when( mw.loader.using( 'mediawiki.util' ), $.ready ).then( function () {
var languages = [
[ 'es', 'Español' ],
[ 'fr', 'Français' ],
[ 'de', 'Deutsch' ],
[ 'vi', 'Tiếng Việt' ],
[ 'zh', '中文' ],
[ 'pt', 'Português' ],
[ 'ko', '한국어' ],
[ 'ja', '日本語' ]
];
// Only on articles (main namespace), only when reading the page
if ( mw.config.get( 'wgNamespaceNumber' ) !== 0 || mw.config.get( 'wgAction' ) !== 'view' ) {
return;
}
var page = mw.config.get( 'wgPageName' );
var parts = page.split( '/' );
var last = parts[ parts.length - 1 ].toLowerCase();
var current = 'en';
var base = page;
for ( var i = 0; i < languages.length; i++ ) {
if ( parts.length > 1 && languages[ i ][ 0 ] === last ) {
current = last;
base = parts.slice( 0, -1 ).join( '/' );
}
}
// Skip pages that don't exist (unless it's a translation)
if ( current === 'en' && mw.config.get( 'wgArticleId' ) === 0 ) {
return;
}
var content = document.getElementById( 'mw-content-text' );
if ( !content ) {
return;
}
var bar = document.createElement( 'div' );
bar.className = 'texi-langbar';
bar.style.cssText = 'margin:0 0 1em;padding:6px 10px;border:1px solid #c8ccd1;' +
'border-radius:4px;background:#f8f9fa;color:#202122;font-size:90%;line-height:1.8;';
bar.appendChild( document.createTextNode( '🌐 ' ) );
var all = [ [ 'en', 'English' ] ].concat( languages );
for ( var j = 0; j < all.length; j++ ) {
var code = all[ j ][ 0 ];
if ( j > 0 ) {
bar.appendChild( document.createTextNode( ' · ' ) );
}
if ( code === current ) {
var b = document.createElement( 'b' );
b.textContent = all[ j ][ 1 ];
bar.appendChild( b );
} else {
var a = document.createElement( 'a' );
a.href = mw.util.getUrl( code === 'en' ? base : base + '/' + code );
a.textContent = all[ j ][ 1 ];
a.lang = code;
a.rel = 'nofollow';
bar.appendChild( a );
}
}
if ( current !== 'en' ) {
var note = document.createElement( 'div' );
note.style.cssText = 'font-size:90%;color:#54595d;';
note.textContent = 'Machine translation