משתמש:IKhitron/uls.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/* jshint multistr: true */
if (mw.config.get('wgPageName') == 'משתמש:IKhitron/טיוטה1') {
$(function() {
mw.loader.using('ext.uls.mediawiki')
.done(function() {
$('.ulstest')
.each(function () {
var id = $(this).attr('id');
$.getJSON('//www.wikidata.org/w/api.php?callback=?', {
action: 'wbgetentities',
format: 'json',
ids: id,
props: 'sitelinks'
}).done(function (data) {
if (data.success === undefined || !data.success)
return;
var bindings = Object.entries(data.entities[id].sitelinks), langcode, autonym;
if (bindings.length) {
var api = new mw.Api(), itemtable = {}, langmap = {}, onelang;
api.loadMessagesIfMissing(['vector-language-button-label'],
{amlang: mw.config.get('wgUserLanguage')})
.then(function () {
bindings.map(function(item) {
if (item[0].endsWith('wiki')) {
langcode = item[0].substr(0, item[0].length - 4).replaceAll('_', '-');
onelang = $.uls.data.isRedirect(langcode) || langcode;
autonym = $.uls.data.getAutonym(onelang);
if (onelang !== autonym) {
itemtable[onelang] = item[1].title;
langmap[onelang] = autonym;
}
}
});
delete langmap.he;
var size = Object.keys(langmap).length;
if (size) {
var a = $('<a>', {
text: mw.msg('vector-language-button-label', size),
dir: 'auto'
}).
addClass('uls-trigger');
$('.ulstest#' + id).prepend(a);
var ulsanswer, mwuls = mw.uls, recommendations = ['en', 'fr', 'es', 'de'];
if (mwuls) {
ulsanswer = mwuls.getFrequentLanguageList();
if (ulsanswer && ulsanswer.length)
recommendations = ulsanswer;
}
a.uls({
languages: langmap,
onSelect: function(language) {
var params = {
action: 'expandtemplates',
text: '{{fullurl:' + language + ':' + itemtable[language] + '}}',
prop: 'wikitext',
format: 'json'
};
api.get(params)
.done(function(data) {
window.open(data.expandtemplates.wikitext, '_ulswindow');
});
},
noResultsTemplate: function(query) {
return $('<div dir=ltr>No article exists in the language ' + query + '.</div>' +
'<div dir=rtl>לא קיים ערך בשפת ' + query + '.</div>');
},
quickList: recommendations,
groupByRegion: true,
menuWidth: 'narrow'
});
}
});
}
});
});
});
});
}