מדיה ויקי:Gadget-uls.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
$(function() { function getrec() { return (rec = rec || mw.uls.getFrequentLanguageList() || ['en', 'fr', 'es', 'de']); } var rec, api = new mw.Api(), lang = mw.config.get('wgContentLanguage'), type = mw.config.get('wgDBname').substr(lang.length), userlang = mw.config.get('wgUserLanguage'); $('.ulshere').each(function() { var id, cur = $(this); $.getJSON('//www.wikidata.org/w/api.php?callback=?', { action: 'wbgetentities', format: 'json', ids: (id = cur.data('id')), props: 'sitelinks' }).done(function(data) { var bindings; if (data.success && (bindings = Object.entries(data.entities[id].sitelinks)).length) api.loadMessagesIfMissing(['vector-language-button-label', 'massmessage-invalid-lang', 'vector-language-button-aria-label'], { amlang: userlang }).then(function() { var size, a, keys, itemtable = {}, langmap = {}; bindings.map(function(item) { var langcode, onelang, autonym; if (item[0].endsWith(type) && (onelang = $.uls.data.isRedirect(langcode = item[0].replace(type, '').replaceAll('_', '-')) || langcode) !== (autonym = $.uls.data.getAutonym(onelang))) { itemtable[onelang] = langcode + ':' + item[1].title; langmap[onelang] = autonym; } }); if (langmap[lang]) { delete langmap[lang]; if ((size = (keys = Object.keys(langmap)).length)) { cur.createtooltip(mw.msg('vector-language-button-aria-label', size), 1000, 'nw') .prepend(a = $('<a>').addClass('uls-trigger') .text(mw.msg('vector-language-button-label', size))) .find('span').remove(); a.uls({ languages: langmap, onSelect: function(language) { var params = { action: 'expandtemplates', text: '{{fullurl:' + itemtable[language] + '}}', prop: 'wikitext', format: 'json' }; api.get(params) .done(function(data) { window.open(data.expandtemplates.wikitext, '_ulswindow' + id); }); }, onVisible: function() { $('.tipsy').remove(); }, noResultsTemplate: function(query) { return $('<div>', { text: mw.msg('massmessage-invalid-lang', query), dir: 'auto' }); }, quickList: getrec().filter(function (x) { return keys.includes(x); }), groupByRegion: true, menuWidth: 'narrow' }); } } else cur.find('span').remove(); }); }); }); });