mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-13 17:35:46 +01:00
Fixes #3442
This commit is contained in:
@@ -44,81 +44,72 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
translator.prepareDOM = function() {
|
translator.prepareDOM = function() {
|
||||||
// Load the appropriate timeago locale file
|
// Load the appropriate timeago locale file, and correct NodeBB language codes to timeago codes, if necessary
|
||||||
if (config.userLang !== 'en_GB' && config.userLang !== 'en_US') {
|
var languageCode;
|
||||||
// Correct NodeBB language codes to timeago codes, if necessary
|
switch(config.userLang) {
|
||||||
var languageCode;
|
case 'cs':
|
||||||
switch(config.userLang) {
|
languageCode = 'cz';
|
||||||
case 'cs':
|
break;
|
||||||
languageCode = 'cz';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'fa_IR':
|
case 'fa_IR':
|
||||||
languageCode = 'fa';
|
languageCode = 'fa';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'pt_BR':
|
case 'pt_BR':
|
||||||
languageCode = 'pt-br';
|
languageCode = 'pt-br';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'nb':
|
case 'nb':
|
||||||
languageCode = 'no';
|
languageCode = 'no';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'zh_TW':
|
case 'zh_TW':
|
||||||
languageCode = 'zh-TW';
|
languageCode = 'zh-TW';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'zh_CN':
|
case 'zh_CN':
|
||||||
languageCode = 'zh-CN';
|
languageCode = 'zh-CN';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
languageCode = config.userLang;
|
languageCode = config.userLang;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '.js').success(function() {
|
$.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '.js').success(function() {
|
||||||
$('.timeago').timeago();
|
$('.timeago').timeago();
|
||||||
|
translator.timeagoShort = $.extend({}, jQuery.timeago.settings.strings);
|
||||||
|
|
||||||
|
// Retrieve the shorthand timeago values as well
|
||||||
|
$.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '-short.js').success(function() {
|
||||||
|
// Switch back to long-form
|
||||||
|
translator.toggleTimeagoShorthand();
|
||||||
}).fail(function() {
|
}).fail(function() {
|
||||||
|
$.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.en-short.js').success(function() {
|
||||||
|
// Switch back to long-form
|
||||||
|
translator.toggleTimeagoShorthand();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).fail(function() {
|
||||||
|
$.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.en-short.js').success(function() {
|
||||||
|
// Switch back to long-form
|
||||||
|
translator.toggleTimeagoShorthand();
|
||||||
$.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.en.js');
|
$.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.en.js');
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// Add directional code if necessary
|
// Add directional code if necessary
|
||||||
translator.translate('[[language:dir]]', function(value) {
|
translator.translate('[[language:dir]]', function(value) {
|
||||||
if (value) {
|
if (value) {
|
||||||
$('html').css('direction', value).attr('data-dir', value);
|
$('html').css('direction', value).attr('data-dir', value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
translator.toggleTimeagoShorthand = function() {
|
translator.toggleTimeagoShorthand = function() {
|
||||||
if (!translator.timeagoStrings) {
|
var tmp = $.extend({}, jQuery.timeago.settings.strings);
|
||||||
translator.timeagoStrings = $.extend({}, jQuery.timeago.settings.strings);
|
jQuery.timeago.settings.strings = $.extend({}, translator.timeagoShort);
|
||||||
jQuery.timeago.settings.strings = {
|
translator.timeagoShort = $.extend({}, tmp);
|
||||||
prefixAgo: null,
|
|
||||||
prefixFromNow: null,
|
|
||||||
suffixAgo: "",
|
|
||||||
suffixFromNow: "",
|
|
||||||
seconds: "1m",
|
|
||||||
minute: "1m",
|
|
||||||
minutes: "%dm",
|
|
||||||
hour: "1h",
|
|
||||||
hours: "%dh",
|
|
||||||
day: "1d",
|
|
||||||
days: "%dd",
|
|
||||||
month: "1mo",
|
|
||||||
months: "%dmo",
|
|
||||||
year: "1yr",
|
|
||||||
years: "%dyr",
|
|
||||||
wordSeparator: " ",
|
|
||||||
numbers: []
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
jQuery.timeago.settings.strings = $.extend({}, translator.timeagoStrings);
|
|
||||||
delete translator.timeagoStrings;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
translator.translate = function (text, language, callback) {
|
translator.translate = function (text, language, callback) {
|
||||||
|
|||||||
221
public/vendor/jquery/timeago/jquery.timeago.js
vendored
Normal file
221
public/vendor/jquery/timeago/jquery.timeago.js
vendored
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
/**
|
||||||
|
* Timeago is a jQuery plugin that makes it easy to support automatically
|
||||||
|
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
|
||||||
|
*
|
||||||
|
* @name timeago
|
||||||
|
* @version 1.4.1
|
||||||
|
* @requires jQuery v1.2.3+
|
||||||
|
* @author Ryan McGeary
|
||||||
|
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
|
||||||
|
*
|
||||||
|
* For usage and examples, visit:
|
||||||
|
* http://timeago.yarp.com/
|
||||||
|
*
|
||||||
|
* Copyright (c) 2008-2015, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function (factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define(['jquery'], factory);
|
||||||
|
} else {
|
||||||
|
// Browser globals
|
||||||
|
factory(jQuery);
|
||||||
|
}
|
||||||
|
}(function ($) {
|
||||||
|
$.timeago = function(timestamp) {
|
||||||
|
if (timestamp instanceof Date) {
|
||||||
|
return inWords(timestamp);
|
||||||
|
} else if (typeof timestamp === "string") {
|
||||||
|
return inWords($.timeago.parse(timestamp));
|
||||||
|
} else if (typeof timestamp === "number") {
|
||||||
|
return inWords(new Date(timestamp));
|
||||||
|
} else {
|
||||||
|
return inWords($.timeago.datetime(timestamp));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var $t = $.timeago;
|
||||||
|
|
||||||
|
$.extend($.timeago, {
|
||||||
|
settings: {
|
||||||
|
refreshMillis: 60000,
|
||||||
|
allowPast: true,
|
||||||
|
allowFuture: false,
|
||||||
|
localeTitle: false,
|
||||||
|
cutoff: 0,
|
||||||
|
strings: {
|
||||||
|
prefixAgo: null,
|
||||||
|
prefixFromNow: null,
|
||||||
|
suffixAgo: "ago",
|
||||||
|
suffixFromNow: "from now",
|
||||||
|
inPast: 'any moment now',
|
||||||
|
seconds: "less than a minute",
|
||||||
|
minute: "about a minute",
|
||||||
|
minutes: "%d minutes",
|
||||||
|
hour: "about an hour",
|
||||||
|
hours: "about %d hours",
|
||||||
|
day: "a day",
|
||||||
|
days: "%d days",
|
||||||
|
month: "about a month",
|
||||||
|
months: "%d months",
|
||||||
|
year: "about a year",
|
||||||
|
years: "%d years",
|
||||||
|
wordSeparator: " ",
|
||||||
|
numbers: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
inWords: function(distanceMillis) {
|
||||||
|
if(!this.settings.allowPast && ! this.settings.allowFuture) {
|
||||||
|
throw 'timeago allowPast and allowFuture settings can not both be set to false.';
|
||||||
|
}
|
||||||
|
|
||||||
|
var $l = this.settings.strings;
|
||||||
|
var prefix = $l.prefixAgo;
|
||||||
|
var suffix = $l.suffixAgo;
|
||||||
|
if (this.settings.allowFuture) {
|
||||||
|
if (distanceMillis < 0) {
|
||||||
|
prefix = $l.prefixFromNow;
|
||||||
|
suffix = $l.suffixFromNow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!this.settings.allowPast && distanceMillis >= 0) {
|
||||||
|
return this.settings.strings.inPast;
|
||||||
|
}
|
||||||
|
|
||||||
|
var seconds = Math.abs(distanceMillis) / 1000;
|
||||||
|
var minutes = seconds / 60;
|
||||||
|
var hours = minutes / 60;
|
||||||
|
var days = hours / 24;
|
||||||
|
var years = days / 365;
|
||||||
|
|
||||||
|
function substitute(stringOrFunction, number) {
|
||||||
|
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
|
||||||
|
var value = ($l.numbers && $l.numbers[number]) || number;
|
||||||
|
return string.replace(/%d/i, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
|
||||||
|
seconds < 90 && substitute($l.minute, 1) ||
|
||||||
|
minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
|
||||||
|
minutes < 90 && substitute($l.hour, 1) ||
|
||||||
|
hours < 24 && substitute($l.hours, Math.round(hours)) ||
|
||||||
|
hours < 42 && substitute($l.day, 1) ||
|
||||||
|
days < 30 && substitute($l.days, Math.round(days)) ||
|
||||||
|
days < 45 && substitute($l.month, 1) ||
|
||||||
|
days < 365 && substitute($l.months, Math.round(days / 30)) ||
|
||||||
|
years < 1.5 && substitute($l.year, 1) ||
|
||||||
|
substitute($l.years, Math.round(years));
|
||||||
|
|
||||||
|
var separator = $l.wordSeparator || "";
|
||||||
|
if ($l.wordSeparator === undefined) { separator = " "; }
|
||||||
|
return $.trim([prefix, words, suffix].join(separator));
|
||||||
|
},
|
||||||
|
|
||||||
|
parse: function(iso8601) {
|
||||||
|
var s = $.trim(iso8601);
|
||||||
|
s = s.replace(/\.\d+/,""); // remove milliseconds
|
||||||
|
s = s.replace(/-/,"/").replace(/-/,"/");
|
||||||
|
s = s.replace(/T/," ").replace(/Z/," UTC");
|
||||||
|
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
|
||||||
|
s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
|
||||||
|
return new Date(s);
|
||||||
|
},
|
||||||
|
datetime: function(elem) {
|
||||||
|
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
|
||||||
|
return $t.parse(iso8601);
|
||||||
|
},
|
||||||
|
isTime: function(elem) {
|
||||||
|
// jQuery's `is()` doesn't play well with HTML5 in IE
|
||||||
|
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// functions that can be called via $(el).timeago('action')
|
||||||
|
// init is default when no action is given
|
||||||
|
// functions are called with context of a single element
|
||||||
|
var functions = {
|
||||||
|
init: function(){
|
||||||
|
var refresh_el = $.proxy(refresh, this);
|
||||||
|
refresh_el();
|
||||||
|
var $s = $t.settings;
|
||||||
|
if ($s.refreshMillis > 0) {
|
||||||
|
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
update: function(time){
|
||||||
|
var parsedTime = $t.parse(time);
|
||||||
|
$(this).data('timeago', { datetime: parsedTime });
|
||||||
|
if($t.settings.localeTitle) $(this).attr("title", parsedTime.toLocaleString());
|
||||||
|
refresh.apply(this);
|
||||||
|
},
|
||||||
|
updateFromDOM: function(){
|
||||||
|
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) });
|
||||||
|
refresh.apply(this);
|
||||||
|
},
|
||||||
|
dispose: function () {
|
||||||
|
if (this._timeagoInterval) {
|
||||||
|
window.clearInterval(this._timeagoInterval);
|
||||||
|
this._timeagoInterval = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.timeago = function(action, options) {
|
||||||
|
var fn = action ? functions[action] : functions.init;
|
||||||
|
if(!fn){
|
||||||
|
throw new Error("Unknown function name '"+ action +"' for timeago");
|
||||||
|
}
|
||||||
|
// each over objects here and call the requested function
|
||||||
|
this.each(function(){
|
||||||
|
fn.call(this, options);
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
function refresh() {
|
||||||
|
//check if it's still visible
|
||||||
|
if(!$.contains(document.documentElement,this)){
|
||||||
|
//stop if it has been removed
|
||||||
|
$(this).timeago("dispose");
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = prepareData(this);
|
||||||
|
var $s = $t.settings;
|
||||||
|
|
||||||
|
if (!isNaN(data.datetime)) {
|
||||||
|
if ( $s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
|
||||||
|
$(this).text(inWords(data.datetime));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepareData(element) {
|
||||||
|
element = $(element);
|
||||||
|
if (!element.data("timeago")) {
|
||||||
|
element.data("timeago", { datetime: $t.datetime(element) });
|
||||||
|
var text = $.trim(element.text());
|
||||||
|
if ($t.settings.localeTitle) {
|
||||||
|
element.attr("title", element.data('timeago').datetime.toLocaleString());
|
||||||
|
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
|
||||||
|
element.attr("title", text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return element.data("timeago");
|
||||||
|
}
|
||||||
|
|
||||||
|
function inWords(date) {
|
||||||
|
return $t.inWords(distance(date));
|
||||||
|
}
|
||||||
|
|
||||||
|
function distance(date) {
|
||||||
|
return (new Date().getTime() - date.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
// fix for IE6 suckage
|
||||||
|
document.createElement("abbr");
|
||||||
|
document.createElement("time");
|
||||||
|
}));
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
/**
|
|
||||||
* Timeago is a jQuery plugin that makes it easy to support automatically
|
|
||||||
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
|
|
||||||
*
|
|
||||||
* @name timeago
|
|
||||||
* @version 1.3.1
|
|
||||||
* @requires jQuery v1.2.3+
|
|
||||||
* @author Ryan McGeary
|
|
||||||
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
|
|
||||||
*
|
|
||||||
* For usage and examples, visit:
|
|
||||||
* http://timeago.yarp.com/
|
|
||||||
*
|
|
||||||
* Copyright (c) 2008-2013, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
|
|
||||||
*/
|
|
||||||
!function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{factory(jQuery)}}(function($){$.timeago=function(timestamp){if(timestamp instanceof Date){return inWords(timestamp)}else if(typeof timestamp==="string"){return inWords($.timeago.parse(timestamp))}else if(typeof timestamp==="number"){return inWords(new Date(timestamp))}else{return inWords($.timeago.datetime(timestamp))}};var $t=$.timeago;$.extend($.timeago,{settings:{refreshMillis:6e4,allowFuture:false,localeTitle:false,cutoff:0,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",wordSeparator:" ",numbers:[]}},inWords:function(distanceMillis){var $l=this.settings.strings;var prefix=$l.prefixAgo;var suffix=$l.suffixAgo;if(this.settings.allowFuture){if(distanceMillis<0){prefix=$l.prefixFromNow;suffix=$l.suffixFromNow}}var seconds=Math.abs(distanceMillis)/1e3;var minutes=seconds/60;var hours=minutes/60;var days=hours/24;var years=days/365;function substitute(stringOrFunction,number){var string=$.isFunction(stringOrFunction)?stringOrFunction(number,distanceMillis):stringOrFunction;var value=$l.numbers&&$l.numbers[number]||number;return string.replace(/%d/i,value)}var words=seconds<45&&substitute($l.seconds,Math.round(seconds))||seconds<90&&substitute($l.minute,1)||minutes<45&&substitute($l.minutes,Math.round(minutes))||minutes<90&&substitute($l.hour,1)||hours<24&&substitute($l.hours,Math.round(hours))||hours<42&&substitute($l.day,1)||days<30&&substitute($l.days,Math.round(days))||days<45&&substitute($l.month,1)||days<365&&substitute($l.months,Math.round(days/30))||years<1.5&&substitute($l.year,1)||substitute($l.years,Math.round(years));var separator=$l.wordSeparator||"";if($l.wordSeparator===undefined){separator=" "}return $.trim([prefix,words,suffix].join(separator))},parse:function(iso8601){var s=$.trim(iso8601);s=s.replace(/\.\d+/,"");s=s.replace(/-/,"/").replace(/-/,"/");s=s.replace(/T/," ").replace(/Z/," UTC");s=s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2");s=s.replace(/([\+\-]\d\d)$/," $100");return new Date(s)},datetime:function(elem){var iso8601=$t.isTime(elem)?$(elem).attr("datetime"):$(elem).attr("title");return $t.parse(iso8601)},isTime:function(elem){return $(elem).get(0).tagName.toLowerCase()==="time"}});var functions={init:function(){var refresh_el=$.proxy(refresh,this);refresh_el();var $s=$t.settings;if($s.refreshMillis>0){this._timeagoInterval=setInterval(refresh_el,$s.refreshMillis)}},update:function(time){var parsedTime=$t.parse(time);$(this).data("timeago",{datetime:parsedTime});if($t.settings.localeTitle)$(this).attr("title",parsedTime.toLocaleString());refresh.apply(this)},updateFromDOM:function(){$(this).data("timeago",{datetime:$t.parse($t.isTime(this)?$(this).attr("datetime"):$(this).attr("title"))});refresh.apply(this)},dispose:function(){if(this._timeagoInterval){window.clearInterval(this._timeagoInterval);this._timeagoInterval=null}}};$.fn.timeago=function(action,options){var fn=action?functions[action]:functions.init;if(!fn){throw new Error("Unknown function name '"+action+"' for timeago")}this.each(function(){fn.call(this,options)});return this};function refresh(){var data=prepareData(this);var $s=$t.settings;if(!isNaN(data.datetime)){if($s.cutoff==0||distance(data.datetime)<$s.cutoff){$(this).text(inWords(data.datetime))}}return this}function prepareData(element){element=$(element);if(!element.data("timeago")){element.data("timeago",{datetime:$t.datetime(element)});var text=$.trim(element.text());if($t.settings.localeTitle){element.attr("title",element.data("timeago").datetime.toLocaleString())}else if(text.length>0&&!($t.isTime(element)&&element.attr("title"))){element.attr("title",text)}}return element.data("timeago")}function inWords(date){return $t.inWords(distance(date))}function distance(date){return(new Date).getTime()-date.getTime()}document.createElement("abbr");document.createElement("time")});
|
|
||||||
@@ -4,15 +4,15 @@ jQuery.timeago.settings.strings = {
|
|||||||
prefixFromNow: null,
|
prefixFromNow: null,
|
||||||
suffixAgo: "tagasi",
|
suffixAgo: "tagasi",
|
||||||
suffixFromNow: "pärast",
|
suffixFromNow: "pärast",
|
||||||
seconds: function(n, d) { return d < 0 ? "vähem kui minuti aja" : "vähem kui minut aega" },
|
seconds: function(n, d) { return d < 0 ? "vähem kui minuti aja" : "vähem kui minut aega"; },
|
||||||
minute: function(n, d) { return d < 0 ? "umbes minuti aja" : "umbes minut aega" },
|
minute: function(n, d) { return d < 0 ? "umbes minuti aja" : "umbes minut aega"; },
|
||||||
minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit" },
|
minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit"; },
|
||||||
hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega" },
|
hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega"; },
|
||||||
hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi" },
|
hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi"; },
|
||||||
day: function(n, d) { return d < 0 ? "umbes päeva" : "umbes päev" },
|
day: function(n, d) { return d < 0 ? "umbes päeva" : "umbes päev"; },
|
||||||
days: function(n, d) { return d < 0 ? "%d päeva" : "%d päeva" },
|
days: function(n, d) { return d < 0 ? "%d päeva" : "%d päeva"; },
|
||||||
month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega" },
|
month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega"; },
|
||||||
months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud" },
|
months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud"; },
|
||||||
year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega" },
|
year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega"; },
|
||||||
years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat" }
|
years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat"; }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
// Persian
|
// Persian
|
||||||
// Use DIR attribute for RTL text in Persian Language for ABBR tag .
|
// Use DIR attribute for RTL text in Persian Language for ABBR tag .
|
||||||
// By MB.seifollahi@gmail.com
|
// By MB.seifollahi@gmail.com
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
// Hebrew
|
// Hebrew
|
||||||
jQuery.timeago.settings.strings = {
|
jQuery.timeago.settings.strings = {
|
||||||
prefixAgo: "לפני",
|
prefixAgo: "לפני",
|
||||||
prefixFromNow: "מעכשיו",
|
prefixFromNow: "עוד",
|
||||||
suffixAgo: "",
|
|
||||||
suffixFromNow: "",
|
|
||||||
seconds: "פחות מדקה",
|
seconds: "פחות מדקה",
|
||||||
minute: "דקה",
|
minute: "דקה",
|
||||||
minutes: "%d דקות",
|
minutes: "%d דקות",
|
||||||
hour: "שעה",
|
hour: "שעה",
|
||||||
hours: "%d שעות",
|
hours: function(number){return (number==2) ? "שעתיים" : "%d שעות";},
|
||||||
day: "יום",
|
day: "יום",
|
||||||
days: "%d ימים",
|
days: function(number){return (number==2) ? "יומיים" : "%d ימים";},
|
||||||
month: "חודש",
|
month: "חודש",
|
||||||
months: "%d חודשים",
|
months: function(number){return (number==2) ? "חודשיים" : "%d חודשים";},
|
||||||
year: "שנה",
|
year: "שנה",
|
||||||
years: "%d שנים"
|
years: function(number){return (number==2) ? "שנתיים" : "%d שנים";}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,17 +1,20 @@
|
|||||||
// Korean
|
// Korean
|
||||||
jQuery.timeago.settings.strings = {
|
jQuery.timeago.settings.strings = {
|
||||||
|
prefixAgo: null,
|
||||||
|
prefixFromNow: null,
|
||||||
suffixAgo: "전",
|
suffixAgo: "전",
|
||||||
suffixFromNow: "후",
|
suffixFromNow: "후",
|
||||||
seconds: "1분 이내",
|
seconds: "1분",
|
||||||
minute: "1분",
|
minute: "약 1분",
|
||||||
minutes: "%d분",
|
minutes: "%d분",
|
||||||
hour: "1시간",
|
hour: "약 1시간",
|
||||||
hours: "%d시간",
|
hours: "약 %d시간",
|
||||||
day: "하루",
|
day: "하루",
|
||||||
days: "%d일",
|
days: "%d일",
|
||||||
month: "한 달",
|
month: "약 1개월",
|
||||||
months: "%d달",
|
months: "%d개월",
|
||||||
year: "1년",
|
year: "약 1년",
|
||||||
years: "%d년",
|
years: "%d년",
|
||||||
wordSeparator: " "
|
wordSeparator: " ",
|
||||||
};
|
numbers: []
|
||||||
|
};
|
||||||
|
|||||||
@@ -16,5 +16,5 @@
|
|||||||
months: "%d месеци",
|
months: "%d месеци",
|
||||||
year: "%d година",
|
year: "%d година",
|
||||||
years: "%d години"
|
years: "%d години"
|
||||||
}
|
};
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
// Dutch
|
// Dutch
|
||||||
jQuery.timeago.settings.strings = {
|
jQuery.timeago.settings.strings = {
|
||||||
prefixAgo: null,
|
prefixAgo: null,
|
||||||
prefixFromNow: "",
|
prefixFromNow: "over",
|
||||||
suffixAgo: "geleden",
|
suffixAgo: "geleden",
|
||||||
suffixFromNow: "van nu",
|
suffixFromNow: null,
|
||||||
seconds: "minder dan een minuut",
|
seconds: "minder dan een minuut",
|
||||||
minute: "ongeveer een minuut",
|
minute: "ongeveer een minuut",
|
||||||
minutes: "%d minuten",
|
minutes: "%d minuten",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// Romanian
|
// Romanian
|
||||||
$.timeago.settings.strings = {
|
jQuery.timeago.settings.strings = {
|
||||||
prefixAgo: "acum",
|
prefixAgo: "acum",
|
||||||
prefixFromNow: "in timp de",
|
prefixFromNow: "in timp de",
|
||||||
suffixAgo: "",
|
suffixAgo: "",
|
||||||
@@ -15,4 +15,4 @@ $.timeago.settings.strings = {
|
|||||||
months: "%d luni",
|
months: "%d luni",
|
||||||
year: "un an",
|
year: "un an",
|
||||||
years: "%d ani"
|
years: "%d ani"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
months: function (value) {
|
months: function (value) {
|
||||||
return numpf(value, "%d mesec", "%d meseca", "%d meseci");
|
return numpf(value, "%d mesec", "%d meseca", "%d meseci");
|
||||||
},
|
},
|
||||||
year: "pre godinu dana",
|
year: "godinu dana",
|
||||||
years: function (value) {
|
years: function (value) {
|
||||||
return numpf(value, "%d godinu", "%d godine", "%d godina");
|
return numpf(value, "%d godinu", "%d godine", "%d godina");
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,42 +1,38 @@
|
|||||||
// Slovenian with support for dual
|
// Slovenian with support for dual
|
||||||
(function () {
|
(function () {
|
||||||
var numpf;
|
var numpf;
|
||||||
numpf = function (n, d, m) {
|
numpf = function (n, a) {
|
||||||
if (n == 2) {
|
return a[n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0];
|
||||||
return d;
|
|
||||||
} else {
|
|
||||||
return m;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
jQuery.timeago.settings.strings = {
|
jQuery.timeago.settings.strings = {
|
||||||
prefixAgo: "pred",
|
prefixAgo: null,
|
||||||
prefixFromNow: "čez",
|
prefixFromNow: "čez",
|
||||||
suffixAgo: null,
|
suffixAgo: "nazaj",
|
||||||
suffixFromNow: null,
|
suffixFromNow: null,
|
||||||
second: "sekundo",
|
second: "sekundo",
|
||||||
seconds: function (value) {
|
seconds: function (value) {
|
||||||
return numpf(value, "%d sekundama", "%d sekundami");
|
return numpf(value, ["%d sekund", "%d sekundo", "%d sekundi", "%d sekunde"]);
|
||||||
},
|
},
|
||||||
minute: "minuto",
|
minute: "minuto",
|
||||||
minutes: function (value) {
|
minutes: function (value) {
|
||||||
return numpf(value, "%d minutama", "%d minutami");
|
return numpf(value, ["%d minut", "%d minuto", "%d minuti", "%d minute"]);
|
||||||
},
|
},
|
||||||
hour: "uro",
|
hour: "eno uro",
|
||||||
hours: function (value) {
|
hours: function (value) {
|
||||||
return numpf(value, "%d urama", "%d urami");
|
return numpf(value, ["%d ur", "%d uro", "%d uri", "%d ure"]);
|
||||||
},
|
},
|
||||||
day: "dnevom",
|
day: "en dan",
|
||||||
days: function (value) {
|
days: function (value) {
|
||||||
return numpf(value, "%d dnevi", "%d dnevi");
|
return numpf(value, ["%d dni", "%d dan", "%d dneva", "%d dni"]);
|
||||||
},
|
},
|
||||||
month: "enim mescem",
|
month: "en mesec",
|
||||||
months: function (value) {
|
months: function (value) {
|
||||||
return numpf(value, "%d mesecema", "%d meseci");
|
return numpf(value, ["%d mescov", "%d mesec", "%d mesca", "%d mesce"]);
|
||||||
},
|
},
|
||||||
year: "enim letom",
|
year: "eno leto",
|
||||||
years: function (value) {
|
years: function (value) {
|
||||||
return numpf(value, "%d letoma", "%d leti");
|
return numpf(value, ["%d let", "%d leto", "%d leti", "%d leta"]);
|
||||||
},
|
},
|
||||||
wordSeparator: " "
|
wordSeparator: " "
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// Turkish
|
// Turkish
|
||||||
jQuery.extend($.timeago.settings.strings, {
|
jQuery.timeago.settings.strings = {
|
||||||
suffixAgo: 'önce',
|
suffixAgo: 'önce',
|
||||||
suffixFromNow: null,
|
suffixFromNow: null,
|
||||||
seconds: '1 dakikadan',
|
seconds: '1 dakikadan',
|
||||||
@@ -13,4 +13,4 @@ jQuery.extend($.timeago.settings.strings, {
|
|||||||
months: '%d ay',
|
months: '%d ay',
|
||||||
year: '1 yıl',
|
year: '1 yıl',
|
||||||
years: '%d yıl'
|
years: '%d yıl'
|
||||||
});
|
};
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ jQuery.timeago.settings.strings = {
|
|||||||
suffixFromNow: null,
|
suffixFromNow: null,
|
||||||
seconds: "bir necha soniya",
|
seconds: "bir necha soniya",
|
||||||
minute: "1 daqiqa",
|
minute: "1 daqiqa",
|
||||||
minutes: function(value) { return "%d daqiqa" },
|
minutes: function(value) { return "%d daqiqa"; },
|
||||||
hour: "1 soat",
|
hour: "1 soat",
|
||||||
hours: function(value) { return "%d soat" },
|
hours: function(value) { return "%d soat"; },
|
||||||
day: "1 kun",
|
day: "1 kun",
|
||||||
days: function(value) { return "%d kun" },
|
days: function(value) { return "%d kun"; },
|
||||||
month: "1 oy",
|
month: "1 oy",
|
||||||
months: function(value) { return "%d oy" },
|
months: function(value) { return "%d oy"; },
|
||||||
year: "1 yil",
|
year: "1 yil",
|
||||||
years: function(value) { return "%d yil" },
|
years: function(value) { return "%d yil"; },
|
||||||
wordSeparator: " "
|
wordSeparator: " "
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,17 +4,17 @@ jQuery.timeago.settings.strings = {
|
|||||||
prefixFromNow: "从现在开始",
|
prefixFromNow: "从现在开始",
|
||||||
suffixAgo: "之前",
|
suffixAgo: "之前",
|
||||||
suffixFromNow: null,
|
suffixFromNow: null,
|
||||||
seconds: "不到 1 分钟",
|
seconds: "不到1分钟",
|
||||||
minute: "大约 1 分钟",
|
minute: "大约1分钟",
|
||||||
minutes: "%d 分钟",
|
minutes: "%d分钟",
|
||||||
hour: "大约 1 小时",
|
hour: "大约1小时",
|
||||||
hours: "大约 %d 小时",
|
hours: "大约%d小时",
|
||||||
day: "1 天",
|
day: "1天",
|
||||||
days: "%d 天",
|
days: "%d天",
|
||||||
month: "大约 1 个月",
|
month: "大约1个月",
|
||||||
months: "%d 月",
|
months: "%d月",
|
||||||
year: "大约 1 年",
|
year: "大约1年",
|
||||||
years: "%d 年",
|
years: "%d年",
|
||||||
numbers: [],
|
numbers: [],
|
||||||
wordSeparator: ""
|
wordSeparator: ""
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,17 +4,17 @@ jQuery.timeago.settings.strings = {
|
|||||||
prefixFromNow: "從現在開始",
|
prefixFromNow: "從現在開始",
|
||||||
suffixAgo: "之前",
|
suffixAgo: "之前",
|
||||||
suffixFromNow: null,
|
suffixFromNow: null,
|
||||||
seconds: "不到 1 分鐘",
|
seconds: "不到1分鐘",
|
||||||
minute: "大約 1 分鐘",
|
minute: "大約1分鐘",
|
||||||
minutes: "%d 分鐘",
|
minutes: "%d分鐘",
|
||||||
hour: "大約 1 小時",
|
hour: "大約1小時",
|
||||||
hours: "%d 小時",
|
hours: "%d小時",
|
||||||
day: "大約 1 天",
|
day: "大約1天",
|
||||||
days: "%d 天",
|
days: "%d天",
|
||||||
month: "大約 1 個月",
|
month: "大約1個月",
|
||||||
months: "%d 個月",
|
months: "%d個月",
|
||||||
year: "大約 1 年",
|
year: "大約1年",
|
||||||
years: "%d 年",
|
years: "%d年",
|
||||||
numbers: [],
|
numbers: [],
|
||||||
wordSeparator: ""
|
wordSeparator: ""
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ module.exports = function(Meta) {
|
|||||||
base: [
|
base: [
|
||||||
'public/vendor/jquery/js/jquery.js',
|
'public/vendor/jquery/js/jquery.js',
|
||||||
'./node_modules/socket.io-client/socket.io.js',
|
'./node_modules/socket.io-client/socket.io.js',
|
||||||
'public/vendor/jquery/timeago/jquery.timeago.min.js',
|
'public/vendor/jquery/timeago/jquery.timeago.js',
|
||||||
'public/vendor/jquery/js/jquery.form.min.js',
|
'public/vendor/jquery/js/jquery.form.min.js',
|
||||||
'public/vendor/visibility/visibility.min.js',
|
'public/vendor/visibility/visibility.min.js',
|
||||||
'public/vendor/bootstrap/js/bootstrap.min.js',
|
'public/vendor/bootstrap/js/bootstrap.min.js',
|
||||||
|
|||||||
Reference in New Issue
Block a user