diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 46bb79e812..90784747c9 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -44,81 +44,72 @@ }; translator.prepareDOM = function() { - // Load the appropriate timeago locale file - if (config.userLang !== 'en_GB' && config.userLang !== 'en_US') { - // Correct NodeBB language codes to timeago codes, if necessary - var languageCode; - switch(config.userLang) { - case 'cs': - languageCode = 'cz'; - break; + // Load the appropriate timeago locale file, and correct NodeBB language codes to timeago codes, if necessary + var languageCode; + switch(config.userLang) { + case 'cs': + languageCode = 'cz'; + break; - case 'fa_IR': - languageCode = 'fa'; - break; + case 'fa_IR': + languageCode = 'fa'; + break; - case 'pt_BR': - languageCode = 'pt-br'; - break; + case 'pt_BR': + languageCode = 'pt-br'; + break; - case 'nb': - languageCode = 'no'; - break; + case 'nb': + languageCode = 'no'; + break; - case 'zh_TW': - languageCode = 'zh-TW'; - break; + case 'zh_TW': + languageCode = 'zh-TW'; + break; - case 'zh_CN': - languageCode = 'zh-CN'; - break; + case 'zh_CN': + languageCode = 'zh-CN'; + break; - default: - languageCode = config.userLang; - break; - } + default: + languageCode = config.userLang; + break; + } - $.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '.js').success(function() { - $('.timeago').timeago(); + $.getScript(RELATIVE_PATH + '/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '.js').success(function() { + $('.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() { + $.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'); }); + }); - // Add directional code if necessary - translator.translate('[[language:dir]]', function(value) { - if (value) { - $('html').css('direction', value).attr('data-dir', value); - } - }); - } + // Add directional code if necessary + translator.translate('[[language:dir]]', function(value) { + if (value) { + $('html').css('direction', value).attr('data-dir', value); + } + }); }; translator.toggleTimeagoShorthand = function() { - if (!translator.timeagoStrings) { - translator.timeagoStrings = $.extend({}, jQuery.timeago.settings.strings); - jQuery.timeago.settings.strings = { - 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; - } + var tmp = $.extend({}, jQuery.timeago.settings.strings); + jQuery.timeago.settings.strings = $.extend({}, translator.timeagoShort); + translator.timeagoShort = $.extend({}, tmp); }; translator.translate = function (text, language, callback) { diff --git a/public/vendor/jquery/timeago/jquery.timeago.js b/public/vendor/jquery/timeago/jquery.timeago.js new file mode 100644 index 0000000000..15805a6193 --- /dev/null +++ b/public/vendor/jquery/timeago/jquery.timeago.js @@ -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"); +})); diff --git a/public/vendor/jquery/timeago/jquery.timeago.min.js b/public/vendor/jquery/timeago/jquery.timeago.min.js deleted file mode 100644 index a3567b0148..0000000000 --- a/public/vendor/jquery/timeago/jquery.timeago.min.js +++ /dev/null @@ -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")}); \ No newline at end of file diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.et.js b/public/vendor/jquery/timeago/locales/jquery.timeago.et.js index 7d17eb5c61..ca19648b40 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.et.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.et.js @@ -4,15 +4,15 @@ jQuery.timeago.settings.strings = { prefixFromNow: null, suffixAgo: "tagasi", suffixFromNow: "pärast", - 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" }, - minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit" }, - hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega" }, - hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi" }, - 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" }, - month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega" }, - months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud" }, - year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega" }, - years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat" } + 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"; }, + minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit"; }, + hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega"; }, + hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi"; }, + 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"; }, + month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega"; }, + months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud"; }, + year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega"; }, + years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat"; } }; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.fa.js b/public/vendor/jquery/timeago/locales/jquery.timeago.fa.js index 2bfbf53ccd..36bdb449f3 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.fa.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.fa.js @@ -1,4 +1,4 @@ - + // Persian // Use DIR attribute for RTL text in Persian Language for ABBR tag . // By MB.seifollahi@gmail.com diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.he.js b/public/vendor/jquery/timeago/locales/jquery.timeago.he.js index 9d5b6c6b00..b9d89e1f24 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.he.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.he.js @@ -1,18 +1,16 @@ // Hebrew jQuery.timeago.settings.strings = { prefixAgo: "לפני", - prefixFromNow: "מעכשיו", - suffixAgo: "", - suffixFromNow: "", + prefixFromNow: "עוד", seconds: "פחות מדקה", minute: "דקה", minutes: "%d דקות", hour: "שעה", - hours: "%d שעות", + hours: function(number){return (number==2) ? "שעתיים" : "%d שעות";}, day: "יום", - days: "%d ימים", + days: function(number){return (number==2) ? "יומיים" : "%d ימים";}, month: "חודש", - months: "%d חודשים", + months: function(number){return (number==2) ? "חודשיים" : "%d חודשים";}, year: "שנה", - years: "%d שנים" -}; \ No newline at end of file + years: function(number){return (number==2) ? "שנתיים" : "%d שנים";} +}; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.ko.js b/public/vendor/jquery/timeago/locales/jquery.timeago.ko.js index a192b97bf6..95f4f94b31 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.ko.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.ko.js @@ -1,17 +1,20 @@ // Korean jQuery.timeago.settings.strings = { + prefixAgo: null, + prefixFromNow: null, suffixAgo: "전", suffixFromNow: "후", - seconds: "1분 이내", - minute: "1분", + seconds: "1분", + minute: "약 1분", minutes: "%d분", - hour: "1시간", - hours: "%d시간", + hour: "약 1시간", + hours: "약 %d시간", day: "하루", days: "%d일", - month: "한 달", - months: "%d달", - year: "1년", + month: "약 1개월", + months: "%d개월", + year: "약 1년", years: "%d년", - wordSeparator: " " -}; \ No newline at end of file + wordSeparator: " ", + numbers: [] +}; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.mk.js b/public/vendor/jquery/timeago/locales/jquery.timeago.mk.js index 9afdd46268..8d60a30c88 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.mk.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.mk.js @@ -16,5 +16,5 @@ months: "%d месеци", year: "%d година", years: "%d години" - } + }; })(); diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.nl.js b/public/vendor/jquery/timeago/locales/jquery.timeago.nl.js index cd68438cca..74d3dc867f 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.nl.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.nl.js @@ -1,9 +1,9 @@ // Dutch jQuery.timeago.settings.strings = { prefixAgo: null, - prefixFromNow: "", + prefixFromNow: "over", suffixAgo: "geleden", - suffixFromNow: "van nu", + suffixFromNow: null, seconds: "minder dan een minuut", minute: "ongeveer een minuut", minutes: "%d minuten", diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.ro.js b/public/vendor/jquery/timeago/locales/jquery.timeago.ro.js index 883b548950..2cee429902 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.ro.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.ro.js @@ -1,5 +1,5 @@ // Romanian -$.timeago.settings.strings = { +jQuery.timeago.settings.strings = { prefixAgo: "acum", prefixFromNow: "in timp de", suffixAgo: "", @@ -15,4 +15,4 @@ $.timeago.settings.strings = { months: "%d luni", year: "un an", years: "%d ani" -}; \ No newline at end of file +}; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.rs.js b/public/vendor/jquery/timeago/locales/jquery.timeago.rs.js index 1fc16135e6..0809c9101d 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.rs.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.rs.js @@ -39,7 +39,7 @@ months: function (value) { return numpf(value, "%d mesec", "%d meseca", "%d meseci"); }, - year: "pre godinu dana", + year: "godinu dana", years: function (value) { return numpf(value, "%d godinu", "%d godine", "%d godina"); }, diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.sl.js b/public/vendor/jquery/timeago/locales/jquery.timeago.sl.js index e546c0d502..57d4f6020c 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.sl.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.sl.js @@ -1,42 +1,38 @@ // Slovenian with support for dual (function () { var numpf; - numpf = function (n, d, m) { - if (n == 2) { - return d; - } else { - return m; - } + numpf = function (n, a) { + return a[n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0]; }; jQuery.timeago.settings.strings = { - prefixAgo: "pred", + prefixAgo: null, prefixFromNow: "čez", - suffixAgo: null, + suffixAgo: "nazaj", suffixFromNow: null, second: "sekundo", seconds: function (value) { - return numpf(value, "%d sekundama", "%d sekundami"); + return numpf(value, ["%d sekund", "%d sekundo", "%d sekundi", "%d sekunde"]); }, minute: "minuto", 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) { - 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) { - 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) { - 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) { - return numpf(value, "%d letoma", "%d leti"); + return numpf(value, ["%d let", "%d leto", "%d leti", "%d leta"]); }, wordSeparator: " " }; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.tr.js b/public/vendor/jquery/timeago/locales/jquery.timeago.tr.js index f3e3a67c84..160190d026 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.tr.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.tr.js @@ -1,5 +1,5 @@ // Turkish -jQuery.extend($.timeago.settings.strings, { +jQuery.timeago.settings.strings = { suffixAgo: 'önce', suffixFromNow: null, seconds: '1 dakikadan', @@ -13,4 +13,4 @@ jQuery.extend($.timeago.settings.strings, { months: '%d ay', year: '1 yıl', years: '%d yıl' -}); \ No newline at end of file +}; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.uz.js b/public/vendor/jquery/timeago/locales/jquery.timeago.uz.js index 380f18dc04..d6a0a7fd20 100755 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.uz.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.uz.js @@ -6,14 +6,14 @@ jQuery.timeago.settings.strings = { suffixFromNow: null, seconds: "bir necha soniya", minute: "1 daqiqa", - minutes: function(value) { return "%d daqiqa" }, + minutes: function(value) { return "%d daqiqa"; }, hour: "1 soat", - hours: function(value) { return "%d soat" }, + hours: function(value) { return "%d soat"; }, day: "1 kun", - days: function(value) { return "%d kun" }, + days: function(value) { return "%d kun"; }, month: "1 oy", - months: function(value) { return "%d oy" }, + months: function(value) { return "%d oy"; }, year: "1 yil", - years: function(value) { return "%d yil" }, + years: function(value) { return "%d yil"; }, wordSeparator: " " }; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.zh-CN.js b/public/vendor/jquery/timeago/locales/jquery.timeago.zh-CN.js index f39417ef29..f7b979798a 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.zh-CN.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.zh-CN.js @@ -4,17 +4,17 @@ jQuery.timeago.settings.strings = { prefixFromNow: "从现在开始", suffixAgo: "之前", suffixFromNow: null, - seconds: "不到 1 分钟", - minute: "大约 1 分钟", - minutes: "%d 分钟", - hour: "大约 1 小时", - hours: "大约 %d 小时", - day: "1 天", - days: "%d 天", - month: "大约 1 个月", - months: "%d 月", - year: "大约 1 年", - years: "%d 年", + seconds: "不到1分钟", + minute: "大约1分钟", + minutes: "%d分钟", + hour: "大约1小时", + hours: "大约%d小时", + day: "1天", + days: "%d天", + month: "大约1个月", + months: "%d月", + year: "大约1年", + years: "%d年", numbers: [], wordSeparator: "" -}; \ No newline at end of file +}; diff --git a/public/vendor/jquery/timeago/locales/jquery.timeago.zh-TW.js b/public/vendor/jquery/timeago/locales/jquery.timeago.zh-TW.js index c6f8a1b1e6..52633900f3 100644 --- a/public/vendor/jquery/timeago/locales/jquery.timeago.zh-TW.js +++ b/public/vendor/jquery/timeago/locales/jquery.timeago.zh-TW.js @@ -4,17 +4,17 @@ jQuery.timeago.settings.strings = { prefixFromNow: "從現在開始", suffixAgo: "之前", suffixFromNow: null, - seconds: "不到 1 分鐘", - minute: "大約 1 分鐘", - minutes: "%d 分鐘", - hour: "大約 1 小時", - hours: "%d 小時", - day: "大約 1 天", - days: "%d 天", - month: "大約 1 個月", - months: "%d 個月", - year: "大約 1 年", - years: "%d 年", + seconds: "不到1分鐘", + minute: "大約1分鐘", + minutes: "%d分鐘", + hour: "大約1小時", + hours: "%d小時", + day: "大約1天", + days: "%d天", + month: "大約1個月", + months: "%d個月", + year: "大約1年", + years: "%d年", numbers: [], wordSeparator: "" }; diff --git a/src/meta/js.js b/src/meta/js.js index 020611e7ce..a022497136 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -23,7 +23,7 @@ module.exports = function(Meta) { base: [ 'public/vendor/jquery/js/jquery.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/visibility/visibility.min.js', 'public/vendor/bootstrap/js/bootstrap.min.js',