Benutzer:Steef389 Labs/bytechange.js
Zur Navigation springen
Zur Suche springen
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
// Nur auf Versionsgeschichten ausführen
if (mw.config.get ("wgAction") === "history")
{
var bytechange =
{
init: function ()
{
// Old setting replace => default behaviour, do nothing
if (typeof (replace_size) === "boolean" && replace_size)
{
return;
}
// Get Language strings
bytechange.i18n = bytechange.get_i18n (mw.config.get('wgUserLanguage'));
// do for every history-entry
$("ul#pagehistory > li").each (function (i, e)
{
// get byte-change item
var change = $(this).find (".mw-plusminus-pos, .mw-plusminus-neg, .mw-plusminus-null");
// create new item
var span = $("<span class=\"history-size\" />");
// get size from tooltip
span.append ("(" + bytechange.format_output (parseInt (change.attr ("title").replace (/\D/g, ""), 10)) + ") ");
// add new item
$(this).find (".mw-plusminus-pos, .mw-plusminus-neg, .mw-plusminus-null").replaceWith (span);
// delete title and add byte-change
change.attr ("title", "");
span.append (change);
});
},
// Geklaut von [[w:de:User:Schnark]]
i18n:
{
en:
{
format_number: function (zahl)
{
var rgx = /(\d+)(\d{3})/;
while (rgx.test(zahl))
{
zahl = zahl.replace (rgx, "$1,$2");
}
return zahl;
},
str_byte: "byte",
str_bytes: "bytes",
str_empty: "empty"
},
de:
{
format_number: function (zahl)
{
var rgx = /(\d+)(\d{3})/;
while (rgx.test(zahl))
{
zahl = zahl.replace (rgx, "$1.$2");
}
return zahl;
},
str_byte: "Byte",
str_bytes: "Bytes",
str_empty: "leer"
}
},
format_output: function (bytes)
{
var output;
switch (bytes)
{
case 0:
output = bytechange.i18n.str_empty;
break;
case 1:
output = "1 " + bytechange.i18n.str_byte;
break;
default:
output = bytechange.i18n.format_number (bytes + "") + " " + bytechange.i18n.str_bytes;
}
return output;
},
get_i18n: function (lang)
{
if (lang === '')
{
return bytechange.i18n.en; //en as fallback for all
}
var fallback = '';
if (lang.indexOf('-') > -1)
{
fallback = lang.replace (/-.*/, ''); //guess fallback
}
if (typeof bytechange.i18n[lang] == 'object' && typeof bytechange.i18n[lang].fallback == 'string')
{
fallback = bytechange.i18n[lang].fallback; //may be overridden
}
var i18n = bytechange.get_i18n(fallback); //get localisation for fallback language
if (typeof bytechange.i18n[lang] == 'object')
{
for (var prop in bytechange.i18n[lang])
{
if (prop != 'fallback') i18n[prop] = bytechange.i18n[lang][prop]; //override all translated strings
}
}
return i18n;
}
};
if (mw.config.get('debug')) window.byte_change = bytechange;
$(document).trigger('loadWikiScript', ['Benutzer:Steef389/js/bytechange.js', bytechange]);
$(mw.loader.using('mediawiki.util', bytechange.init));
}