You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
215 lines
6.4 KiB
215 lines
6.4 KiB
var zeropad = function (num) {
|
|
return ((num < 10) ? '0' : '') + num;
|
|
};
|
|
var iso8601 = function (date) {
|
|
return date.getUTCFullYear()
|
|
+ "-" + zeropad(date.getUTCMonth()+1)
|
|
+ "-" + zeropad(date.getUTCDate())
|
|
+ "T" + zeropad(date.getUTCHours())
|
|
+ ":" + zeropad(date.getUTCMinutes())
|
|
+ ":" + zeropad(date.getUTCSeconds()) + "Z";
|
|
};
|
|
|
|
function prepareDynamicDates() {
|
|
$('time.loaded').attr("datetime", iso8601(new Date()));
|
|
$('time.modified').attr("datetime", iso8601(new Date(document.lastModified)));
|
|
}
|
|
|
|
function loadNumbers() {
|
|
jQuery.timeago.settings.strings.numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
|
|
}
|
|
function unloadNumbers() {
|
|
jQuery.timeago.settings.strings.numbers = [];
|
|
}
|
|
|
|
function loadCutoffSetting() {
|
|
jQuery.timeago.settings.cutoff = 7*24*60*60*1000;
|
|
}
|
|
|
|
function unloadCutoffSetting() {
|
|
jQuery.timeago.settings.cutoff = 0;
|
|
}
|
|
|
|
function setupDisposal() {
|
|
jQuery.timeago.settings.refreshMillis = 25;
|
|
$('abbr.disposal').attr("title", iso8601(new Date())).timeago();
|
|
}
|
|
|
|
function loadPigLatin() {
|
|
jQuery.timeago.settings.strings = {
|
|
suffixAgo: "ago-hay",
|
|
suffixFromNow: "omNow-fray",
|
|
seconds: "ess-lay an-thay a-hay inute-may",
|
|
minute: "about-hay a-hay inute-may",
|
|
minutes: "%d inutes-may",
|
|
hour: "about-hay an-hay hour-hay",
|
|
hours: "about-hay %d hours-hay",
|
|
day: "a-hay ay-day",
|
|
days: "%d ays-day",
|
|
month: "about-hay a-hay onth-may",
|
|
months: "%d onths-may",
|
|
year: "about-hay a-hay ear-yay",
|
|
years: "%d years-yay"
|
|
};
|
|
}
|
|
|
|
function loadRussian() {
|
|
(function() {
|
|
function numpf(n, f, s, t) {
|
|
// f - 1, 21, 31, ...
|
|
// s - 2-4, 22-24, 32-34 ...
|
|
// t - 5-20, 25-30, ...
|
|
var n10 = n % 10;
|
|
if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) {
|
|
return f;
|
|
} else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
|
|
return s;
|
|
} else {
|
|
return t;
|
|
}
|
|
}
|
|
|
|
jQuery.timeago.settings.strings = {
|
|
prefixAgo: null,
|
|
prefixFromNow: "через",
|
|
suffixAgo: "назад",
|
|
suffixFromNow: null,
|
|
seconds: "меньше минуты",
|
|
minute: "минуту",
|
|
minutes: function(value) { return numpf(value, "%d минута", "%d минуты", "%d минут"); },
|
|
hour: "час",
|
|
hours: function(value) { return numpf(value, "%d час", "%d часа", "%d часов"); },
|
|
day: "день",
|
|
days: function(value) { return numpf(value, "%d день", "%d дня", "%d дней"); },
|
|
month: "месяц",
|
|
months: function(value) { return numpf(value, "%d месяц", "%d месяца", "%d месяцев"); },
|
|
year: "год",
|
|
years: function(value) { return numpf(value, "%d год", "%d года", "%d лет"); }
|
|
};
|
|
})();
|
|
}
|
|
|
|
function loadBelarusian() {
|
|
(function() {
|
|
function numpf(n, f, s, t) {
|
|
// f - 1, 21, 31, ...
|
|
// s - 2-4, 22-24, 32-34 ...
|
|
// t - 5-20, 25-30, ...
|
|
var n10 = n % 10;
|
|
if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) {
|
|
return f;
|
|
} else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
|
|
return s;
|
|
} else {
|
|
return t;
|
|
}
|
|
}
|
|
|
|
jQuery.timeago.settings.strings = {
|
|
prefixAgo: null,
|
|
prefixFromNow: "праз",
|
|
suffixAgo: "таму",
|
|
suffixFromNow: null,
|
|
seconds: "менш хвіліны",
|
|
minute: "хвіліну",
|
|
minutes: function(value) { return numpf(value, "%d хвіліна", "%d хвіліны", "%d хвілін"); },
|
|
hour: "гадзіну",
|
|
hours: function(value) { return numpf(value, "%d гадзіна", "%d гадзіны", "%d гадзін"); },
|
|
day: "дзень",
|
|
days: function(value) { return numpf(value, "%d дзень", "%d дні", "%d дзён"); },
|
|
month: "месяц",
|
|
months: function(value) { return numpf(value, "%d месяц", "%d месяцы", "%d месяцаў"); },
|
|
year: "год",
|
|
years: function(value) { return numpf(value, "%d год", "%d гады", "%d гадоў"); }
|
|
};
|
|
})();
|
|
}
|
|
|
|
function resetRefreshMillis() {
|
|
jQuery.timeago.settings.refreshMillis = 60000;
|
|
}
|
|
|
|
function loadMillis() {
|
|
var millisSubstitution = function(number, millis) { return millis + " milliseconds"; };
|
|
jQuery.timeago.settings.strings = {
|
|
suffixAgo: "ago",
|
|
suffixFromNow: "from now",
|
|
seconds: millisSubstitution,
|
|
minute: millisSubstitution,
|
|
minutes: millisSubstitution,
|
|
hour: millisSubstitution,
|
|
hours: millisSubstitution,
|
|
day: millisSubstitution,
|
|
days: millisSubstitution,
|
|
month: millisSubstitution,
|
|
months: millisSubstitution,
|
|
year: millisSubstitution,
|
|
years: millisSubstitution
|
|
};
|
|
}
|
|
|
|
function loadNoSpaces() {
|
|
jQuery.extend(jQuery.timeago.settings.strings, {
|
|
minutes: "%dminutes",
|
|
wordSeparator: ""
|
|
});
|
|
}
|
|
|
|
function loadNullSpaces() {
|
|
jQuery.extend(jQuery.timeago.settings.strings, {
|
|
minutes: "%dminutes",
|
|
wordSeparator: null
|
|
});
|
|
}
|
|
|
|
function loadYoungOldYears() {
|
|
jQuery.extend(jQuery.timeago.settings.strings, {
|
|
years: function(value) { return (value < 21) ? "%d young years" : "%d old years"; }
|
|
});
|
|
}
|
|
|
|
function loadDoNotAllowFuture() {
|
|
var mockDateToUse = "2010-01-01";
|
|
$.timeago.settings.allowFuture = false;
|
|
enableMockedDate(mockDateToUse);
|
|
}
|
|
|
|
function unloadDoNotAllowFuture() {
|
|
$.timeago.settings.allowFuture = true;
|
|
disableMockedDate();
|
|
}
|
|
|
|
function loadDoNotAllowPast() {
|
|
var mockDateToUse = "2010-01-01";
|
|
$.timeago.settings.allowFuture = true;
|
|
$.timeago.settings.allowPast = false;
|
|
$.timeago.settings.strings.inPast = "in the past";
|
|
enableMockedDate(mockDateToUse);
|
|
}
|
|
|
|
function unloadDoNotAllowPast() {
|
|
$.timeago.settings.allowFuture = true;
|
|
$.timeago.settings.allowPast = true;
|
|
disableMockedDate();
|
|
}
|
|
|
|
function enableMockedDate(dateToReturn) {
|
|
var mockDate = dateToReturn;
|
|
window.NativeDate = Date;
|
|
window.Date = function () {
|
|
if(arguments.length === 0) {
|
|
return new window.NativeDate(mockDate);
|
|
} else if(arguments.length === 1) {
|
|
return new window.NativeDate(arguments[0]);
|
|
} else if(arguments.length === 7) {
|
|
return new window.NativeDate(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]);
|
|
} else {
|
|
throw "Mocking Date with this number of parameters is not implemented.";
|
|
}
|
|
};
|
|
}
|
|
|
|
function disableMockedDate() {
|
|
window.Date = window.NativeDate;
|
|
delete window.NativeDate;
|
|
}
|
|
|