JS-код ниже относится к скрытому гаджету iwcore. Связанный CSS-файл: MediaWiki:Gadget-iwcore.css.

После сохранения или недавних изменений очистите кэш браузера.

/** * Sort interwiki links according to a preference table *  * First revision was imported from https://www.search.com.vn/wiki/no/MediaWiki:Interwiki-links.js * Original description [[:no:Wikipedia:Sortering av interwiki-lenker]] *  */// <nowiki>(function () {function main() {'use strict';// Guard against multiple inclusionsif ( typeof window.InterwikiLinks === 'object' ) return;var IWL,conf = mw.config.get( ['wgContentLanguage','wgUserLanguage','wgUseUserLanguage','wgLangPrefs','wgAddLangHints'] );IWL = window.InterwikiLinks = {langLinks: {}/** * Runs before $( document ).ready() and before translation is available * (important event-binders should be attached as fast as possible) */, preinstall: function () {// make sure we in fact have a arrayif ( !conf.wgLangPrefs ) {conf.wgLangPrefs = [];}conf.wgLangPrefs.push( conf.wgUserLanguage );// choose and adjust lists for prefered languagesfor ( var i = 0; i < conf.wgLangPrefs.length; i++ ) {conf.wgLangPrefs[ conf.wgLangPrefs[ i ] ] = 1;IWL.langLinks[ conf.wgLangPrefs[ i ] ] = 1;}}    , install: function () {// get data structures for nameing and sorting of languages// this will block any languages that isn't definedif ( typeof wgLangNames[ conf.wgUserLanguage ] == 'object' ) {// reorganize wgLangNames so we can use it for sortingIWL.langNames = {};var sortedNames = Object.keys( wgLangNames[ conf.wgUserLanguage ] );if ( sortedNames.length > 0 ) {sortedNames = sortedNames.map( function ( value, index ) {// Language name, codereturn [ wgLangNames[ conf.wgUserLanguage ][ value ], value ];} ).sort( function ( a, b ) {// Sort by language namea = a[ 0 ].toUpperCase();b = b[ 0 ].toUpperCase();return ( a < b ? -1 : ( a > b ? 1 : 0 ) );} );}for ( var i = 0; i < sortedNames.length; i++ ) {var lang = sortedNames[ i ][ 1 ];IWL.langNames[ lang ] = [ sortedNames[ i ][ 0 ], i ];}} else {return;}// wait for document.readyState$( IWL.start );}, sort: function ( a, b ) {try {return IWL.langNames[ a.className.replace( /^.*?interwiki-/, '' ).replace( /\s.*$/, '' ) ][ 1 ] -       IWL.langNames[ b.className.replace( /^.*?interwiki-/, '' ).replace( /\s.*$/, '' ) ][ 1 ];} catch ( e ) {/* just skip this if its happens to fail, but then the link might be placed a bit random */}}, start: function () {// locate iw-links, and the containervar container = document.getElementById( 'p-lang' );if ( !container ) return;var ul = container.getElementsByTagName( 'ul' );if ( !ul || ul.length != 1 ) return;ul = ul[ 0 ];var c = container.getElementsByTagName( 'li' );if ( !c ) return;// loop over the iw-links, translate names and// separate those we know how to sort from the rest// and add babel linksvar childs = [];var keeps = [];var adds = [];for ( var i = 0; i < c.length; i++ ) {if ( typeof IWL.langNames != 'undefined' ) {if ( c[ i ].className == 'wbc-editpage' ) {adds.push( c[ i ] );continue;}var s = c[ i ].className;if ( s.indexOf( 'interwiki-' ) === 0 ) continue;s = s.replace( /^.*?interwiki-/, '' ).replace( /\s.*$/, '' );var a = c[ i ].getElementsByTagName( 'a' );// localize language namestry {if ( conf.wgUseUserLanguage ) {if ( typeof IWL.langNames[ s ] != 'undefined'&& typeof IWL.langNames[ s ][ 0 ] == 'string') {if ( a.length ) {a[ 0 ].innerHTML = IWL.langNames[ s ][ 0 ];a[ 0 ].lang = 'ru';}}}} catch ( e ) { /* just skip this */ }// add hints for language namestry {if ( conf.wgAddLangHints ) {if ( typeof IWL.langNames[ s ] != 'undefined'&& typeof IWL.langNames[ s ][ 0 ] == 'string') {a[ 0 ].setAttribute( 'title', decodeURIComponent( a[ 0 ].getAttribute( 'href' ).replace( /^.*?\/wiki\/(.*)$/, '$1' ) ).replace( /_/g, ' ' ) +' — ' + IWL.langNames[ s ][ 0 ]);}}} catch ( e ) { /* just skip this */ }// check if we have any odd linktry {if ( conf.wgUseUserLanguage&& typeof IWL.langNames[ s ] != 'undefined'&& typeof IWL.langNames[ s ][ 1 ] == 'number' ) {childs.push( c[ i ] );} else {adds.push( c[ i ] );}} catch ( e ) { /* just skip this */ }} else {childs.push( c[ i ] );}}// sort the childs according to definitions used by sortIWlinksif ( conf.wgUseUserLanguage ) {childs = childs.sort( IWL.sort );}// reinsert those we didn't know how to sort into the list of childrenfor ( i = 0; i < adds.length; i++ ) {childs.push( adds[ i ] );}// move one block to the toptry {// separate out those that shall be moved to the topvar link;for ( i = 0; i < childs.length; i++ ) {// the following test fails if there are several classes for the actual childlink = IWL.langLinks[childs[ i ].className.replace( /^.*?interwiki-/, '' ).replace( /\s.*$/, '' )];if ( link ) {keeps.push( childs[ i ] );}}// reorganize the list of childrenvar n = childs.length;for ( i = childs.length - 1; i >= 0; i-- ) {link = IWL.langLinks[childs[ i ].className.replace( /^.*?interwiki-/, '' ).replace( /\s.*$/, '' )];if ( link ) {childs[ i ].className += ' iw-focus';} else {keeps[ --n ] = childs[ i ];}}} catch ( e ) { /* just skip this */ }// remove all existing children and reinsert from our own listif ( keeps.length ) {var child;while ( ( child = ul.firstChild ) !== null ) {ul.removeChild( child );}for ( i = 0; i < keeps.length; i++ ) {ul.appendChild( keeps[ i ] );}}}};// bail out for debuggingif ( typeof wgDebugIWlang != 'undefined' && wgDebugIWlang ) return;IWL.preinstall();wgLangNames = {};wgLangNames.ru = {'aa': 'афар','ab': 'абхазский','ace': 'ачехский','ady': 'адыгейский','af': 'африкаанс','ak': 'акан','als': 'алеманнские (немецкий)','alt': 'южноалтайский','am': 'амхарский','ami': 'амисский','an': 'арагонский','ang': 'древнеанглийский','anp': 'ангика','ar': 'арабский','arc': 'арамейский','ary': 'марокканский (арабский)','arz': 'египетский (арабский)','as': 'ассамский','ast': 'астурийский','atj': 'атикамек','av': 'аварский','avk': 'котава','awa': 'авадхи','ay': 'аймара','az': 'азербайджанский','azb': 'иранский азербайджанский','ba': 'башкирский','ban': 'балийский','bar': 'баварский (немецкий)','bat-smg': 'жемайтский (литовский)','bbc': 'тоба-батакский','bcl': 'центральный бикольский','be': 'белорусский','be-tarask': 'белорусский (тарашкевица)','bg': 'болгарский','bh': 'бходжпури','bi': 'бислама','bjn': 'банджарский','blk': 'пао','bm': 'бамана','bn': 'бенгальский','bo': 'тибетский','bpy': 'бишнуприя-манипури','br': 'бретонский','bs': 'боснийский','btm': 'мандайлингский','bug': 'бугийский','bxr': 'бурятский','ca': 'каталанский','cbk-zam': 'чабакано','cdo': 'восточноминьский китайский','ce': 'чеченский','ceb': 'себуанский','ch': 'чаморро','cho': 'чокто','chr': 'чероки','chy': 'шайенский','ckb': 'сорани','co': 'корсиканский','cr': 'языки кри','crh': 'крымскотатарский','cs': 'чешский','csb': 'кашубский','cu': 'старославянский','cv': 'чувашский','cy': 'валлийский','da': 'датский','dag': 'дагбани','de': 'немецкий','dga': 'южный дагари','din': 'динка','diq': 'южный зазаки','dsb': 'нижнелужицкий','dty': 'дотияли','dv': 'мальдивский','dz': 'дзонг-кэ','ee': 'эве','el': 'греческий','eml': 'эмилиано-романьольский','en': 'английский','eo': 'эсперанто','es': 'испанский','et': 'эстонский','eu': 'баскский','ext': 'эстремадурский','fa': 'персидский','fat': 'фанти','ff': 'фула','fi': 'финский','fiu-vro': 'выруский','fj': 'фиджийский','fo': 'фарерский','fon': 'фон','fr': 'французский','frp': 'франкопровансальский','frr': 'севернофризский','fur': 'фриульский','fy': 'западнофризский','ga': 'ирландский','gag': 'гагаузский','gan': 'гань','gcr': 'гвианский креольский','gd': 'шотландский (кельтский)','gl': 'галисийский','glk': 'гилянский','gn': 'гуарани','gom': 'конкани','gor': 'горонтало','got': 'готский','gpe': 'ганский креольский','gu': 'гуджарати','guc': 'гуахиро','gur': 'фарефаре','guw': 'гун','gv': 'мэнский','ha': 'хауса','hak': 'хакка','haw': 'гавайский','he': 'иврит','hi': 'хинди','hif': 'фиджийский хинди','ho': 'хири-моту','hr': 'хорватский','hsb': 'верхнелужицкий','ht': 'гаитянский креольский','hu': 'венгерский','hy': 'армянский','hyw': 'западноармянский','hz': 'гереро','ia': 'интерлингва','id': 'индонезийский','ie': 'интерлингве','ig': 'игбо','ii': 'носу','ik': 'инупиак','ilo': 'илоканский','inh': 'ингушский','io': 'идо','is': 'исландский','it': 'итальянский','iu': 'инуктитут','ja': 'японский','jam': 'ямайский креольский','jbo': 'ложбан','jv': 'яванский','ka': 'грузинский','kaa': 'каракалпакский','kab': 'кабильский','kbd': 'кабардино-черкесский','kbp': 'кабье','kcg': 'тьяп','kg': 'конго','khw': 'кховар','ki': 'кикуйю','kj': 'кваньяма','kk': 'казахский','kl': 'гренландский','km': 'кхмерский','kn': 'каннада','ko': 'корейский','koi': 'коми-пермяцкий','kr': 'канури','krc': 'карачаево-балкарский','ks': 'кашмирский','ksh': 'рипуарские (немецкий)','ku': 'курдский','kv': 'коми-зырянский','kw': 'корнский','ky': 'киргизский','la': 'латинский','lad': 'сефардский','lb': 'люксембургский','lbe': 'лакский','lez': 'лезгинский','lfn': 'лингва франка нова','lg': 'луганда','li': 'лимбургский','lij': 'лигурийский','lld': 'ладинский','lmo': 'ломбардский','ln': 'лингала','lo': 'лаосский','lrc': 'севернолурский','lt': 'литовский','ltg': 'латгальский','lv': 'латышский','lzh': 'китайский (вэньянь)','mad': 'мадурский','mai': 'майтхили','map-bms': 'баньюмасанский','mdf': 'мокшанский','mg': 'малагасийский','mh': 'маршалльский','mhr': 'лугово-восточный марийский','mi': 'маори','min': 'минангкабау','mk': 'македонский','ml': 'малаялам','mn': 'монгольский','mni': 'манипури','mnw': 'монский','mr': 'маратхи','mrj': 'горномарийский','ms': 'малайский','mt': 'мальтийский','mus': 'крикский','mwl': 'мирандский','my': 'бирманский','myv': 'эрзянский','mzn': 'мазандеранский','na': 'науруанский','nah': 'астекский','nan': 'южноминьский китайский','nap': 'неаполитанский','nds': 'нижненемецкий','nds-nl': 'нижнесаксонские (нижненемецкий)','ne': 'непальский','new': 'неварский','ng': 'ндонга','nia': 'ниасский','nl': 'нидерландский','nn': 'норвежский (нюнорск)','no': 'норвежский (букмол)','nov': 'новиаль','nqo': 'нко','nrm': 'нормандский','nso': 'северный сото','nv': 'навахо','ny': 'ньянджа','oc': 'окситанский','olo': 'ливвиковский карельский','om': 'оромо','or': 'ория','os': 'осетинский','pa': 'восточный пенджаби','pag': 'пангасинанский','pam': 'капампанганский','pap': 'папьяменто','pcd': 'пикардский','pcm': 'нигерийский креольский','pdc': 'пенсильванский (немецкий)','pfl': 'пфальцский (немецкий)','pi': 'пали','pih': 'норфолкский/питкэрнский','pl': 'польский','pms': 'пьемонтский','pnb': 'западный пенджаби','pnt': 'понтийский','ps': 'пушту','pt': 'португальский','pwn': 'пайваньский','qu': 'кечуа','rm': 'романшский','rmy': 'влашские (цыганский)','rn': 'рунди','ro': 'румынский','roa-rup': 'арумынский','roa-tara': 'тарантинский (неаполитанский)','ru': 'русский','rue': 'русинский','rw': 'руанда','sa': 'санскрит','sah': 'якутский','sat': 'сантали','sc': 'сардинский','scn': 'сицилийский','sco': 'шотландский (германский)','sd': 'синдхи','se': 'северносаамский','sg': 'санго','sh': 'сербохорватский','shi': 'шильхский','shn': 'шанский','si': 'сингальский','simple': 'английский (упрощённый)','sk': 'словацкий','skr': 'сирайки','sl': 'словенский','sm': 'самоанский','smn': 'инари-саамский','sn': 'шона','so': 'сомалийский','sq': 'албанский','sr': 'сербский','srn': 'сранан-тонго','ss': 'свати','st': 'южный сото','stq': 'восточнофризский','su': 'сунданский','sv': 'шведский','sw': 'суахили','szl': 'силезский','szy': 'сакизайя','ta': 'тамильский','tay': 'атаяльский','tcy': 'тулу','te': 'телугу','tet': 'тетум','tg': 'таджикский','th': 'тайский','ti': 'тигринья','tk': 'туркменский','tl': 'тагальский','tly': 'талышский','tn': 'тсвана','to': 'тонганский','tpi': 'ток-писин','tr': 'турецкий','trv': 'седекский','ts': 'тсонга','tt': 'татарский','tum': 'тумбука','tw': 'чви','ty': 'таитянский','tyv': 'тувинский','udm': 'удмуртский','ug': 'уйгурский','uk': 'украинский','ur': 'урду','uz': 'узбекский','ve': 'венда','vec': 'венетский','vep': 'вепсский','vi': 'вьетнамский','vls': 'западнофламандский (нидерландский)','vo': 'волапюк','wa': 'валлонский','war': 'варайский','wo': 'волоф','wuu': 'у','xal': 'калмыцкий','xh': 'коса','xmf': 'мегрельский','yi': 'идиш','yo': 'йоруба','yue': 'юэ','za': 'чжуанский','zea': 'зеландский (нидерландский)','zgh': 'марокканский берберский','zh': 'китайский','zu': 'зулу'};IWL.install();}var wgLangNames, wgDebugIWlang;// Нестрогое сравнение, потому что формат значений нестабилен, см. [[phab:T54542]]if ( mw.user.options.get( 'compact-language-links' ) != 1 ) {// Перед запуском ждём загрузки и выполнения дочерних гаджетов$( main );}}());// </nowiki>