MediaWiki:Gadget-mylanguages.js
Wygląd
Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
- Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
- Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
- Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
- Opera: Naciśnij klawisze Ctrl+F5.
// Script to move certain languages to the top of interwiki list and bold them.
// CC-BY-SA 3.0, [[w:pl:User:Matma Rex]]
mw.loader.using('ext.gadget.gConfig', function() {
// Languages to display separate config items for
var topLanguages = [
'en', 'simple', 'de', 'ru', 'fr', 'es', // top 5 + simple
'cs', 'sk', 'uk', 'be', 'lt', // sąsiedzi
'szl', 'csb' // prawie jak polski ;)
];
// Messages
if(mw.config.get('wgUserLanguage') === 'pl') {
mw.messages.set( {
'mylanguages-name': 'Moje języki',
'mylanguages-language-be': 'białoruski (be)',
'mylanguages-language-cs': 'czeski (cs)',
'mylanguages-language-csb': 'kaszubski (csb)',
'mylanguages-language-de': 'niemiecki (de)',
'mylanguages-language-en': 'angielski (en)',
'mylanguages-language-es': 'hiszpański (es)',
'mylanguages-language-fr': 'francuski (fr)',
'mylanguages-language-lt': 'litewski (lt)',
'mylanguages-language-pl': 'polski (pl)',
'mylanguages-language-ru': 'rosyjski (ru)',
'mylanguages-language-simple': 'angielski uproszczony (simple)',
'mylanguages-language-sk': 'słowacki (sk)',
'mylanguages-language-szl': 'śląski (szl)',
'mylanguages-language-uk': 'ukraiński (uk)',
'mylanguages-language-additional': 'Dodatkowe języki (wpisz kody, oddzielając przecinkami)'
} );
} else {
mw.messages.set( {
'mylanguages-name': 'My languages',
'mylanguages-language-be': 'Belarusian (be)',
'mylanguages-language-cs': 'Czech (cs)',
'mylanguages-language-csb': 'Kashubian (csb)',
'mylanguages-language-de': 'German (de)',
'mylanguages-language-en': 'English (en)',
'mylanguages-language-es': 'Spanish (es)',
'mylanguages-language-fr': 'French (fr)',
'mylanguages-language-lt': 'Lithuanian (lt)',
'mylanguages-language-pl': 'Polish (pl)',
'mylanguages-language-ru': 'Russian (ru)',
'mylanguages-language-simple': 'Simple English (simple)',
'mylanguages-language-sk': 'Slovak (sk)',
'mylanguages-language-szl': 'Silesian (szl)',
'mylanguages-language-uk': 'Ukrainian (uk)',
'mylanguages-language-additional': 'Dodatkowe języki (wpisz kody, oddzielając przecinkami)'
} );
}
// Migrate settings from https://pl.wikipedia.org/wiki/Wikipedysta:Lampak/MyLanguages.js
var legacyBuddy = {};
legacyBuddy.additional = [];
if(window.mylangsArray) {
for(var i=0; i<mylangsArray.length; i++) {
var lang = mylangsArray[i];
legacyBuddy[lang] = true;
if(topLanguages.indexOf(lang) == -1)
legacyBuddy.additional.push(lang);
}
}
legacyBuddy.additional = legacyBuddy.additional.join(', ');
if(legacyBuddy.additional === '') delete legacyBuddy.additional;
// Define settings
function buildOptionItemFor(lang) {
return {
name: 'language-'+lang,
desc: mw.msg('mylanguages-language-'+lang),
type: 'boolean',
legacy: [legacyBuddy, lang],
deflt: false
};
}
gConfig.register(
'mylanguages',
mw.msg('mylanguages-name'),
topLanguages.map(buildOptionItemFor).concat({
name: 'language-additional',
desc: mw.msg('mylanguages-language-additional'),
type: 'string',
legacy: [legacyBuddy, 'additional'],
deflt: ''
})
);
// The real stuff at last
// Build the list of items to move to top
var moveToTop;
moveToTop = topLanguages.filter(function(lang) {
return gConfig.get('mylanguages', 'language-'+lang);
});
moveToTop = moveToTop.concat(
gConfig.get('mylanguages', 'language-additional').split(/\s*,\s*/).map(function(lang) {
// Sanitize potentially arbitrary data
return lang.replace(/[^a-z-]/g, '');
})
);
var selector = moveToTop.map(function(lang){ return 'li.interwiki-'+lang; }).join(', ');
$(selector).prependTo('#p-lang ul').css('font-weight', 'bold');
});