/** Sort iw-links according to a preference table ****************************************************** * * First revision was imported from http://no.wikipedia.org/wiki/MediaWiki:Interwiki-links.js * Original description [[:no:Wikipedia:Sortering av interwiki-lenker]] * */ appendCSS('.iw-focus {font-weight: bold} .iw-babel {font-style: italic}') var wgDebugIWlang; var wgUseUserlanguage; var wgAddLangHints; var wgInterwikiDone = false; var wgDefaultLangPrefs = []; // make sure we in fact has a array var wgLangPrefs; if (typeof wgLangPrefs == 'undefined') wgLangPrefs = Array(); wgLangPrefs.push(wgUserLanguage); // choose and adjust lists for prefered languages if (wgUserName) { wgLangPrefs = wgLangPrefs; } else { wgLangPrefs = wgDefaultLangPrefs; } var wgLangIWlinks = Object(); for (i=0;is.indexOf('interwiki-')) continue; s = s.replace(/^.*?interwiki-/, ''); s = s.replace(/\s.*$/, ''); var a = c[ i ].getElementsByTagName("a"); // localize language names try { if ( typeof wgUseUserLanguage != 'undefined' && wgUseUserLanguage && typeof wgLangNames[ wgUserLanguage ] != 'undefined' ) { if ( typeof wgLangNames[ wgUserLanguage ][ s ] != 'undefined' && typeof wgLangNames[ wgUserLanguage ][ s ][ 0 ] == 'string' ) { if (a.length){ a[0].innerHTML = wgLangNames[ wgUserLanguage ][ s ][ 0 ]; a[0].lang = 'ru'; } } } } catch (e) { /* just skip this */ } // add hints for language names try { if ( typeof wgAddLangHints != 'undefined' && wgAddLangHints && typeof wgLangNames[ wgUserLanguage ] != 'undefined' ) { if ( typeof wgLangNames[ wgUserLanguage ][ s ] != 'undefined' && typeof wgLangNames[ wgUserLanguage ][ s ][ 0 ] == 'string' ) { //c[ i ].setAttribute( 'title', wgLangNames[ wgUserLanguage ][ s ][ 0 ] ); a[0].setAttribute( 'title', wgLangNames[ wgUserLanguage ][ s ][ 0 ] + ' — ' + decodeURIComponent(a[0].getAttribute('href').replace(/^.*?\/wiki\/(.*)$/, '$1')).replace(/_/g, ' ')); } } } catch (e) { /* just skip this */ } // check if we have any odd link} try { if ( typeof wgUseUserLanguage != 'undefined' && wgUseUserLanguage && typeof wgLangNames[ wgUserLanguage ][ s ] != 'undefined' && typeof wgLangNames[ wgUserLanguage ][ s ][ 1 ] == 'number' ) { childs.push(c[ i ]); //wgLangNames[ c[ i ].className ] = wgLangNames[ wgUserLanguage ][ s ]; } else { adds.push(c[ i ]); } } catch (e) { /* just skip this */ } } else { childs.push(c[ i ]); } } // sort the childs according to definitions used by sortIWlinks if ( typeof wgUseUserLanguage != 'undefined' && wgUseUserLanguage && typeof wgLangNames[ wgUserLanguage ] != 'undefined' ) { childs = childs.sort(sortIWlinks); } // reinsert those we didn't know how to sort into the list of children for (i=0;i=0;i--) { if ( typeof wgLangIWlinks[ childs[i].className.split(' ')[0] ] != 'undefined' && wgLangIWlinks[ childs[i].className.split(' ')[0] ] ) { childs[i].className += ' iw-focus'; } else { keeps[--n] = childs[i]; } } } catch (e) { /* just skip this */ } // remove all existing children and reinsert from our own list if (keeps.length) { var child; while (child = ul.firstChild) { ul.removeChild(child); } for (i=0;i