diff options
author | Lukas Reschke <lukas@owncloud.com> | 2014-08-31 15:21:09 +0200 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2014-08-31 15:21:09 +0200 |
commit | ae3425d2dadbac69e7dcb0ba577db20e63e7d91f (patch) | |
tree | f483759739cd951c33ef1c61ade8694f9e1c95e3 /core | |
parent | 3329e0f2b22207a24ddb4953bbf11964b23682d9 (diff) | |
parent | 73685892ed6f255a916512863cd5549914d071e1 (diff) | |
download | nextcloud-server-ae3425d2dadbac69e7dcb0ba577db20e63e7d91f.tar.gz nextcloud-server-ae3425d2dadbac69e7dcb0ba577db20e63e7d91f.zip |
Merge branch 'master' into securityutils
Conflicts:
lib/private/util.php
Diffstat (limited to 'core')
128 files changed, 9294 insertions, 908 deletions
diff --git a/core/ajax/share.php b/core/ajax/share.php index 451c761c2cd..c6da79a8a42 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -90,7 +90,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo } break; case 'informRecipients': - $l = OC_L10N::get('core'); + $l = \OC::$server->getL10N('core'); $shareType = (int) $_POST['shareType']; $itemType = $_POST['itemType']; $itemSource = $_POST['itemSource']; @@ -153,7 +153,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo if(empty($result)) { \OCP\JSON::success(); } else { - $l = OC_L10N::get('core'); + $l = \OC::$server->getL10N('core'); OCP\JSON::error(array( 'data' => array( 'message' => $l->t("Couldn't send mail to following users: %s ", @@ -287,7 +287,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo $count = 0; // enable l10n support - $l = OC_L10N::get('core'); + $l = \OC::$server->getL10N('core'); foreach ($groups as $group) { if ($count < 15) { diff --git a/core/ajax/translations.php b/core/ajax/translations.php index e829453dbcc..c296cea572a 100644 --- a/core/ajax/translations.php +++ b/core/ajax/translations.php @@ -25,6 +25,6 @@ $app = isset($_POST["app"]) ? $_POST["app"] : ""; $app = OC_App::cleanAppId($app); -$l = OC_L10N::get( $app ); +$l = \OC::$server->getL10N($app); OC_JSON::success(array('data' => $l->getTranslations(), 'plural_form' => $l->getPluralFormString())); diff --git a/core/lostpassword/application.php b/core/application.php index ba2f3fc633b..33801847758 100644 --- a/core/lostpassword/application.php +++ b/core/application.php @@ -8,10 +8,11 @@ * See the COPYING-README file. */ -namespace OC\Core\LostPassword; +namespace OC\Core; use \OCP\AppFramework\App; use OC\Core\LostPassword\Controller\LostController; +use OC\Core\User\UserController; class Application extends App { @@ -38,6 +39,14 @@ class Application extends App { \OC_App::isEnabled('files_encryption') ); }); + $container->registerService('UserController', function($c) { + return new UserController( + $c->query('AppName'), + $c->query('Request'), + $c->query('ServerContainer')->getUserManager(), + new \OC_Defaults() + ); + }); } diff --git a/core/css/icons.css b/core/css/icons.css index b3a9454b565..095c29b3121 100644 --- a/core/css/icons.css +++ b/core/css/icons.css @@ -1,6 +1,8 @@ [class^="icon-"], [class*=" icon-"] { background-repeat: no-repeat; background-position: center; + min-width: 16px; + min-height: 16px; } diff --git a/core/css/styles.css b/core/css/styles.css index 292fb83a056..2f8f9612f78 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -75,6 +75,7 @@ input[type="number"], input[type="email"], input[type="url"], input[type="time"], +input[type="date"], textarea, select, button, .button, @@ -301,6 +302,10 @@ input[type="submit"].enabled { -moz-box-sizing:border-box; box-sizing:border-box; } +/* allow horizontal scrollbar for personal and admin settings */ +#body-settings:not(.snapjs-left) .app-settings { + overflow-x: auto; +} #emptycontent { font-size: 16px; @@ -615,6 +620,10 @@ label.infield { color: black !important; } +.warning-input { + border-color: #cc3333 !important; +} + /* Fixes for log in page, TODO should be removed some time */ #body-login .update, #body-login .error { @@ -731,9 +740,16 @@ code { font-family:"Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono font-weight: normal; white-space: nowrap; border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } + border-top-left-radius: 3px; + min-width: 1%; + max-width: 100%; +} #quotatext {padding:.6em 1em;} +#quota div.quota-warning { + background-color: #fc4; +} + .pager { list-style:none; float:right; display:inline; margin:.7em 13em 0 0; } .pager li { display:inline-block; } diff --git a/core/js/config.php b/core/js/config.php index b61694522db..6994f2ed8a2 100644 --- a/core/js/config.php +++ b/core/js/config.php @@ -14,7 +14,7 @@ header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Enable l10n support -$l = OC_L10N::get('core'); +$l = \OC::$server->getL10N('core'); // Enable OC_Defaults support $defaults = new OC_Defaults(); diff --git a/core/js/core.json b/core/js/core.json index 4815116c338..caff2b05252 100644 --- a/core/js/core.json +++ b/core/js/core.json @@ -18,6 +18,7 @@ "eventsource.js", "config.js", "multiselect.js", - "oc-requesttoken.js" + "oc-requesttoken.js", + "moment.js" ] } diff --git a/core/js/js.js b/core/js/js.js index 60f9cc11a58..9a60b0aad69 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -234,6 +234,7 @@ var OC={ */ generateUrl: function(url, params) { var _build = function (text, vars) { + var vars = vars || []; return text.replace(/{([^{}]*)}/g, function (a, b) { var r = vars[b]; @@ -390,11 +391,6 @@ var OC={ } }, 500), dialogs:OCdialogs, - mtime2date:function(mtime) { - mtime = parseInt(mtime,10); - var date = new Date(1000*mtime); - return date.getDate()+'.'+(date.getMonth()+1)+'.'+date.getFullYear()+', '+date.getHours()+':'+date.getMinutes(); - }, /** * Parses a URL query string into a JS map @@ -1242,14 +1238,11 @@ function humanFileSize(size, skipSmallSizes) { /** * Format an UNIX timestamp to a human understandable format - * @param {number} date UNIX timestamp + * @param {number} timestamp UNIX timestamp * @return {string} Human readable format */ -function formatDate(date){ - if(typeof date=='number'){ - date=new Date(date); - } - return $.datepicker.formatDate(datepickerFormatDate, date)+' '+date.getHours()+':'+((date.getMinutes()<10)?'0':'')+date.getMinutes(); +function formatDate(timestamp){ + return OC.Util.formatDate(timestamp); } // @@ -1270,21 +1263,11 @@ function getURLParameter(name) { * @param {number} timestamp A Unix timestamp */ function relative_modified_date(timestamp) { - var timeDiff = Math.round((new Date()).getTime() / 1000) - timestamp; - var diffMinutes = Math.round(timeDiff/60); - var diffHours = Math.round(diffMinutes/60); - var diffDays = Math.round(diffHours/24); - var diffMonths = Math.round(diffDays/31); - if(timeDiff < 60) { return t('core','seconds ago'); } - else if(timeDiff < 3600) { return n('core','%n minute ago', '%n minutes ago', diffMinutes); } - else if(timeDiff < 86400) { return n('core', '%n hour ago', '%n hours ago', diffHours); } - else if(timeDiff < 86400) { return t('core','today'); } - else if(timeDiff < 172800) { return t('core','yesterday'); } - else if(timeDiff < 2678400) { return n('core', '%n day ago', '%n days ago', diffDays); } - else if(timeDiff < 5184000) { return t('core','last month'); } - else if(timeDiff < 31556926) { return n('core', '%n month ago', '%n months ago', diffMonths); } - else if(timeDiff < 63113852) { return t('core','last year'); } - else { return t('core','years ago'); } + /* + Were multiplying by 1000 to bring the timestamp back to its original value + per https://github.com/owncloud/core/pull/10647#discussion_r16790315 + */ + return OC.Util.relativeModifiedDate(timestamp * 1000); } /** @@ -1293,7 +1276,24 @@ function relative_modified_date(timestamp) { OC.Util = { // TODO: remove original functions from global namespace humanFileSize: humanFileSize, - formatDate: formatDate, + + /** + * @param timestamp + * @param format + * @returns {string} timestamp formatted as requested + */ + formatDate: function (timestamp, format) { + format = format || "MMMM D, YYYY h:mm"; + return moment(timestamp).format(format); + }, + + /** + * @param timestamp + * @returns {string} human readable difference from now + */ + relativeModifiedDate: function (timestamp) { + return moment(timestamp).fromNow(); + }, /** * Returns whether the browser supports SVG * @return {boolean} true if the browser supports SVG, false otherwise diff --git a/core/js/moment.js b/core/js/moment.js new file mode 100644 index 00000000000..6f1dcc5dfab --- /dev/null +++ b/core/js/moment.js @@ -0,0 +1,9083 @@ +//! moment.js +//! version : 2.8.2 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +(function (undefined) { + /************************************ + Constants + ************************************/ + + var moment, + VERSION = '2.8.2', + // the global-scope this is NOT the global object in Node.js + globalScope = typeof global !== 'undefined' ? global : this, + oldGlobalMoment, + round = Math.round, + hasOwnProperty = Object.prototype.hasOwnProperty, + i, + + YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + + // internal storage for locale config files + locales = {}, + + // extra moment internal properties (plugins register props here) + momentProperties = [], + + // check for nodeJS + hasModule = (typeof module !== 'undefined' && module.exports), + + // ASP.NET json date format regex + aspNetJsonRegex = /^\/?Date\((\-?\d+)/i, + aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/, + + // format tokens + formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g, + + // parsing token regexes + parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99 + parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999 + parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999 + parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999 + parseTokenDigits = /\d+/, // nonzero number of digits + parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic. + parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + parseTokenT = /T/i, // T (ISO separator) + parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + parseTokenOrdinal = /\d{1,2}/, + + //strict parsing regexes + parseTokenOneDigit = /\d/, // 0 - 9 + parseTokenTwoDigits = /\d\d/, // 00 - 99 + parseTokenThreeDigits = /\d{3}/, // 000 - 999 + parseTokenFourDigits = /\d{4}/, // 0000 - 9999 + parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999 + parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + + isoFormat = 'YYYY-MM-DDTHH:mm:ssZ', + + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], + ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], + ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], + ['GGGG-[W]WW', /\d{4}-W\d{2}/], + ['YYYY-DDD', /\d{4}-\d{3}/] + ], + + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], + ['HH:mm', /(T| )\d\d:\d\d/], + ['HH', /(T| )\d\d/] + ], + + // timezone chunker '+10:00' > ['10', '00'] or '-1530' > ['-15', '30'] + parseTimezoneChunker = /([\+\-]|\d\d)/gi, + + // getter and setter names + proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'), + unitMillisecondFactors = { + 'Milliseconds' : 1, + 'Seconds' : 1e3, + 'Minutes' : 6e4, + 'Hours' : 36e5, + 'Days' : 864e5, + 'Months' : 2592e6, + 'Years' : 31536e6 + }, + + unitAliases = { + ms : 'millisecond', + s : 'second', + m : 'minute', + h : 'hour', + d : 'day', + D : 'date', + w : 'week', + W : 'isoWeek', + M : 'month', + Q : 'quarter', + y : 'year', + DDD : 'dayOfYear', + e : 'weekday', + E : 'isoWeekday', + gg: 'weekYear', + GG: 'isoWeekYear' + }, + + camelFunctions = { + dayofyear : 'dayOfYear', + isoweekday : 'isoWeekday', + isoweek : 'isoWeek', + weekyear : 'weekYear', + isoweekyear : 'isoWeekYear' + }, + + // format function strings + formatFunctions = {}, + + // default relative time thresholds + relativeTimeThresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }, + + // tokens to ordinalize and pad + ordinalizeTokens = 'DDD w W M D d'.split(' '), + paddedTokens = 'M D H h m s w W'.split(' '), + + formatTokenFunctions = { + M : function () { + return this.month() + 1; + }, + MMM : function (format) { + return this.localeData().monthsShort(this, format); + }, + MMMM : function (format) { + return this.localeData().months(this, format); + }, + D : function () { + return this.date(); + }, + DDD : function () { + return this.dayOfYear(); + }, + d : function () { + return this.day(); + }, + dd : function (format) { + return this.localeData().weekdaysMin(this, format); + }, + ddd : function (format) { + return this.localeData().weekdaysShort(this, format); + }, + dddd : function (format) { + return this.localeData().weekdays(this, format); + }, + w : function () { + return this.week(); + }, + W : function () { + return this.isoWeek(); + }, + YY : function () { + return leftZeroFill(this.year() % 100, 2); + }, + YYYY : function () { + return leftZeroFill(this.year(), 4); + }, + YYYYY : function () { + return leftZeroFill(this.year(), 5); + }, + YYYYYY : function () { + var y = this.year(), sign = y >= 0 ? '+' : '-'; + return sign + leftZeroFill(Math.abs(y), 6); + }, + gg : function () { + return leftZeroFill(this.weekYear() % 100, 2); + }, + gggg : function () { + return leftZeroFill(this.weekYear(), 4); + }, + ggggg : function () { + return leftZeroFill(this.weekYear(), 5); + }, + GG : function () { + return leftZeroFill(this.isoWeekYear() % 100, 2); + }, + GGGG : function () { + return leftZeroFill(this.isoWeekYear(), 4); + }, + GGGGG : function () { + return leftZeroFill(this.isoWeekYear(), 5); + }, + e : function () { + return this.weekday(); + }, + E : function () { + return this.isoWeekday(); + }, + a : function () { + return this.localeData().meridiem(this.hours(), this.minutes(), true); + }, + A : function () { + return this.localeData().meridiem(this.hours(), this.minutes(), false); + }, + H : function () { + return this.hours(); + }, + h : function () { + return this.hours() % 12 || 12; + }, + m : function () { + return this.minutes(); + }, + s : function () { + return this.seconds(); + }, + S : function () { + return toInt(this.milliseconds() / 100); + }, + SS : function () { + return leftZeroFill(toInt(this.milliseconds() / 10), 2); + }, + SSS : function () { + return leftZeroFill(this.milliseconds(), 3); + }, + SSSS : function () { + return leftZeroFill(this.milliseconds(), 3); + }, + Z : function () { + var a = -this.zone(), + b = '+'; + if (a < 0) { + a = -a; + b = '-'; + } + return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2); + }, + ZZ : function () { + var a = -this.zone(), + b = '+'; + if (a < 0) { + a = -a; + b = '-'; + } + return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2); + }, + z : function () { + return this.zoneAbbr(); + }, + zz : function () { + return this.zoneName(); + }, + X : function () { + return this.unix(); + }, + Q : function () { + return this.quarter(); + } + }, + + deprecations = {}, + + lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin']; + + // Pick the first defined of two or three arguments. dfl comes from + // default. + function dfl(a, b, c) { + switch (arguments.length) { + case 2: return a != null ? a : b; + case 3: return a != null ? a : b != null ? b : c; + default: throw new Error('Implement me'); + } + } + + function hasOwnProp(a, b) { + return hasOwnProperty.call(a, b); + } + + function defaultParsingFlags() { + // We need to deep clone this object, and es5 standard is not very + // helpful. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso: false + }; + } + + function printMsg(msg) { + if (moment.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + return extend(function () { + if (firstTime) { + printMsg(msg); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + printMsg(msg); + deprecations[name] = true; + } + } + + function padToken(func, count) { + return function (a) { + return leftZeroFill(func.call(this, a), count); + }; + } + function ordinalizeToken(func, period) { + return function (a) { + return this.localeData().ordinal(func.call(this, a), period); + }; + } + + while (ordinalizeTokens.length) { + i = ordinalizeTokens.pop(); + formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i); + } + while (paddedTokens.length) { + i = paddedTokens.pop(); + formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2); + } + formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3); + + + /************************************ + Constructors + ************************************/ + + function Locale() { + } + + // Moment prototype object + function Moment(config, skipOverflow) { + if (skipOverflow !== false) { + checkOverflow(config); + } + copyConfig(this, config); + this._d = new Date(+config._d); + } + + // Duration Constructor + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = moment.localeData(); + + this._bubble(); + } + + /************************************ + Helpers + ************************************/ + + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function copyConfig(to, from) { + var i, prop, val; + + if (typeof from._isAMomentObject !== 'undefined') { + to._isAMomentObject = from._isAMomentObject; + } + if (typeof from._i !== 'undefined') { + to._i = from._i; + } + if (typeof from._f !== 'undefined') { + to._f = from._f; + } + if (typeof from._l !== 'undefined') { + to._l = from._l; + } + if (typeof from._strict !== 'undefined') { + to._strict = from._strict; + } + if (typeof from._tzm !== 'undefined') { + to._tzm = from._tzm; + } + if (typeof from._isUTC !== 'undefined') { + to._isUTC = from._isUTC; + } + if (typeof from._offset !== 'undefined') { + to._offset = from._offset; + } + if (typeof from._pf !== 'undefined') { + to._pf = from._pf; + } + if (typeof from._locale !== 'undefined') { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (typeof val !== 'undefined') { + to[prop] = val; + } + } + } + + return to; + } + + function absRound(number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + // left zero fill a number + // see http://jsperf.com/left-zero-filling for performance comparison + function leftZeroFill(number, targetLength, forceSign) { + var output = '' + Math.abs(number), + sign = number >= 0; + + while (output.length < targetLength) { + output = '0' + output; + } + return (sign ? (forceSign ? '+' : '') : '-') + output; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + other = makeAs(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = moment.duration(val, period); + addOrSubtractDurationFromMoment(this, dur, direction); + return this; + }; + } + + function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding); + } + if (months) { + rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + moment.updateOffset(mom, days || months); + } + } + + // check if is an array + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return Object.prototype.toString.call(input) === '[object Date]' || + input instanceof Date; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function normalizeUnits(units) { + if (units) { + var lowered = units.toLowerCase().replace(/(.)s$/, '$1'); + units = unitAliases[units] || camelFunctions[lowered] || lowered; + } + return units; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function makeList(field) { + var count, setter; + + if (field.indexOf('week') === 0) { + count = 7; + setter = 'day'; + } + else if (field.indexOf('month') === 0) { + count = 12; + setter = 'month'; + } + else { + return; + } + + moment[field] = function (format, index) { + var i, getter, + method = moment._locale[field], + results = []; + + if (typeof format === 'number') { + index = format; + format = undefined; + } + + getter = function (i) { + var m = moment().utc().set(setter, i); + return method.call(moment._locale, m, format || ''); + }; + + if (index != null) { + return getter(index); + } + else { + for (i = 0; i < count; i++) { + results.push(getter(i)); + } + return results; + } + }; + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + if (coercedNumber >= 0) { + value = Math.floor(coercedNumber); + } else { + value = Math.ceil(coercedNumber); + } + } + + return value; + } + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + function weeksInYear(year, dow, doy) { + return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week; + } + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + function checkOverflow(m) { + var overflow; + if (m._a && m._pf.overflow === -2) { + overflow = + m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH : + m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE : + m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR : + m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE : + m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND : + m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + + m._pf.overflow = overflow; + } + } + + function isValid(m) { + if (m._isValid == null) { + m._isValid = !isNaN(m._d.getTime()) && + m._pf.overflow < 0 && + !m._pf.empty && + !m._pf.invalidMonth && + !m._pf.nullInput && + !m._pf.invalidFormat && + !m._pf.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + m._pf.charsLeftOver === 0 && + m._pf.unusedTokens.length === 0; + } + } + return m._isValid; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + if (!locales[name] && hasModule) { + try { + oldLocale = moment.locale(); + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales + moment.locale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function makeAs(input, model) { + return model._isUTC ? moment(input).zone(model._offset || 0) : + moment(input).local(); + } + + /************************************ + Locale + ************************************/ + + + extend(Locale.prototype, { + + set : function (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (typeof prop === 'function') { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + }, + + _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + months : function (m) { + return this._months[m.month()]; + }, + + _monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + monthsShort : function (m) { + return this._monthsShort[m.month()]; + }, + + monthsParse : function (monthName) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + if (!this._monthsParse[i]) { + mom = moment.utc([2000, i]); + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (this._monthsParse[i].test(monthName)) { + return i; + } + } + }, + + _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdays : function (m) { + return this._weekdays[m.day()]; + }, + + _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysShort : function (m) { + return this._weekdaysShort[m.day()]; + }, + + _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + weekdaysMin : function (m) { + return this._weekdaysMin[m.day()]; + }, + + weekdaysParse : function (weekdayName) { + var i, mom, regex; + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + if (!this._weekdaysParse[i]) { + mom = moment([2000, 1]).day(i); + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + }, + + _longDateFormat : { + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY LT', + LLLL : 'dddd, MMMM D, YYYY LT' + }, + longDateFormat : function (key) { + var output = this._longDateFormat[key]; + if (!output && this._longDateFormat[key.toUpperCase()]) { + output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + this._longDateFormat[key] = output; + } + return output; + }, + + isPM : function (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + }, + + _meridiemParse : /[ap]\.?m?\.?/i, + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + }, + + _calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + calendar : function (key, mom) { + var output = this._calendar[key]; + return typeof output === 'function' ? output.apply(mom) : output; + }, + + _relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + + relativeTime : function (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (typeof output === 'function') ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + }, + + pastFuture : function (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); + }, + + ordinal : function (number) { + return this._ordinal.replace('%d', number); + }, + _ordinal : '%d', + + preparse : function (string) { + return string; + }, + + postformat : function (string) { + return string; + }, + + week : function (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + }, + + _week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }, + + _invalidDate: 'Invalid date', + invalidDate: function () { + return this._invalidDate; + } + }); + + /************************************ + Formatting + ************************************/ + + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + + if (!formatFunctions[format]) { + formatFunctions[format] = makeFormatFunction(format); + } + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + + /************************************ + Parsing + ************************************/ + + + // get the regex to find the next token + function getParseRegexForToken(token, config) { + var a, strict = config._strict; + switch (token) { + case 'Q': + return parseTokenOneDigit; + case 'DDDD': + return parseTokenThreeDigits; + case 'YYYY': + case 'GGGG': + case 'gggg': + return strict ? parseTokenFourDigits : parseTokenOneToFourDigits; + case 'Y': + case 'G': + case 'g': + return parseTokenSignedNumber; + case 'YYYYYY': + case 'YYYYY': + case 'GGGGG': + case 'ggggg': + return strict ? parseTokenSixDigits : parseTokenOneToSixDigits; + case 'S': + if (strict) { + return parseTokenOneDigit; + } + /* falls through */ + case 'SS': + if (strict) { + return parseTokenTwoDigits; + } + /* falls through */ + case 'SSS': + if (strict) { + return parseTokenThreeDigits; + } + /* falls through */ + case 'DDD': + return parseTokenOneToThreeDigits; + case 'MMM': + case 'MMMM': + case 'dd': + case 'ddd': + case 'dddd': + return parseTokenWord; + case 'a': + case 'A': + return config._locale._meridiemParse; + case 'X': + return parseTokenTimestampMs; + case 'Z': + case 'ZZ': + return parseTokenTimezone; + case 'T': + return parseTokenT; + case 'SSSS': + return parseTokenDigits; + case 'MM': + case 'DD': + case 'YY': + case 'GG': + case 'gg': + case 'HH': + case 'hh': + case 'mm': + case 'ss': + case 'ww': + case 'WW': + return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits; + case 'M': + case 'D': + case 'd': + case 'H': + case 'h': + case 'm': + case 's': + case 'w': + case 'W': + case 'e': + case 'E': + return parseTokenOneOrTwoDigits; + case 'Do': + return parseTokenOrdinal; + default : + a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i')); + return a; + } + } + + function timezoneMinutesFromString(string) { + string = string || ''; + var possibleTzMatches = (string.match(parseTokenTimezone) || []), + tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [], + parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0], + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? -minutes : minutes; + } + + // function to convert string input to date + function addTimeToArrayFromToken(token, input, config) { + var a, datePartArray = config._a; + + switch (token) { + // QUARTER + case 'Q': + if (input != null) { + datePartArray[MONTH] = (toInt(input) - 1) * 3; + } + break; + // MONTH + case 'M' : // fall through to MM + case 'MM' : + if (input != null) { + datePartArray[MONTH] = toInt(input) - 1; + } + break; + case 'MMM' : // fall through to MMMM + case 'MMMM' : + a = config._locale.monthsParse(input); + // if we didn't find a month name, mark the date as invalid. + if (a != null) { + datePartArray[MONTH] = a; + } else { + config._pf.invalidMonth = input; + } + break; + // DAY OF MONTH + case 'D' : // fall through to DD + case 'DD' : + if (input != null) { + datePartArray[DATE] = toInt(input); + } + break; + case 'Do' : + if (input != null) { + datePartArray[DATE] = toInt(parseInt(input, 10)); + } + break; + // DAY OF YEAR + case 'DDD' : // fall through to DDDD + case 'DDDD' : + if (input != null) { + config._dayOfYear = toInt(input); + } + + break; + // YEAR + case 'YY' : + datePartArray[YEAR] = moment.parseTwoDigitYear(input); + break; + case 'YYYY' : + case 'YYYYY' : + case 'YYYYYY' : + datePartArray[YEAR] = toInt(input); + break; + // AM / PM + case 'a' : // fall through to A + case 'A' : + config._isPm = config._locale.isPM(input); + break; + // 24 HOUR + case 'H' : // fall through to hh + case 'HH' : // fall through to hh + case 'h' : // fall through to hh + case 'hh' : + datePartArray[HOUR] = toInt(input); + break; + // MINUTE + case 'm' : // fall through to mm + case 'mm' : + datePartArray[MINUTE] = toInt(input); + break; + // SECOND + case 's' : // fall through to ss + case 'ss' : + datePartArray[SECOND] = toInt(input); + break; + // MILLISECOND + case 'S' : + case 'SS' : + case 'SSS' : + case 'SSSS' : + datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000); + break; + // UNIX TIMESTAMP WITH MS + case 'X': + config._d = new Date(parseFloat(input) * 1000); + break; + // TIMEZONE + case 'Z' : // fall through to ZZ + case 'ZZ' : + config._useUTC = true; + config._tzm = timezoneMinutesFromString(input); + break; + // WEEKDAY - human + case 'dd': + case 'ddd': + case 'dddd': + a = config._locale.weekdaysParse(input); + // if we didn't get a weekday name, mark the date as invalid + if (a != null) { + config._w = config._w || {}; + config._w['d'] = a; + } else { + config._pf.invalidWeekday = input; + } + break; + // WEEK, WEEK DAY - numeric + case 'w': + case 'ww': + case 'W': + case 'WW': + case 'd': + case 'e': + case 'E': + token = token.substr(0, 1); + /* falls through */ + case 'gggg': + case 'GGGG': + case 'GGGGG': + token = token.substr(0, 2); + if (input) { + config._w = config._w || {}; + config._w[token] = toInt(input); + } + break; + case 'gg': + case 'GG': + config._w = config._w || {}; + config._w[token] = moment.parseTwoDigitYear(input); + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year); + week = dfl(w.W, 1); + weekday = dfl(w.E, 1); + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year); + week = dfl(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < dow) { + ++week; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + } else { + // default to begining of week + weekday = dow; + } + } + temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); + + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function dateFromConfig(config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = dfl(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + config._pf._overflowDayOfYear = true; + } + + date = makeUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input); + // Apply timezone offset from input. The actual zone can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm); + } + } + + function dateFromObject(config) { + var normalizedInput; + + if (config._d) { + return; + } + + normalizedInput = normalizeObjectUnits(config._i); + config._a = [ + normalizedInput.year, + normalizedInput.month, + normalizedInput.day, + normalizedInput.hour, + normalizedInput.minute, + normalizedInput.second, + normalizedInput.millisecond + ]; + + dateFromConfig(config); + } + + function currentDateArray(config) { + var now = new Date(); + if (config._useUTC) { + return [ + now.getUTCFullYear(), + now.getUTCMonth(), + now.getUTCDate() + ]; + } else { + return [now.getFullYear(), now.getMonth(), now.getDate()]; + } + } + + // date from string and format string + function makeDateFromStringAndFormat(config) { + if (config._f === moment.ISO_8601) { + parseISO(config); + return; + } + + config._a = []; + config._pf.empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + config._pf.unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + config._pf.empty = false; + } + else { + config._pf.unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + config._pf.unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + config._pf.charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + config._pf.unusedInput.push(string); + } + + // handle am pm + if (config._isPm && config._a[HOUR] < 12) { + config._a[HOUR] += 12; + } + // if is 12 am, change hours to 0 + if (config._isPm === false && config._a[HOUR] === 12) { + config._a[HOUR] = 0; + } + + dateFromConfig(config); + checkOverflow(config); + } + + function unescapeFormat(s) { + return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + }); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function regexpEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + // date from string and array of format strings + function makeDateFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + config._pf.invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + tempConfig._pf = defaultParsingFlags(); + tempConfig._f = config._f[i]; + makeDateFromStringAndFormat(tempConfig); + + if (!isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += tempConfig._pf.charsLeftOver; + + //or tokens + currentScore += tempConfig._pf.unusedTokens.length * 10; + + tempConfig._pf.score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + // date from iso format + function parseISO(config) { + var i, l, + string = config._i, + match = isoRegex.exec(string); + + if (match) { + config._pf.iso = true; + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(string)) { + // match[5] should be 'T' or undefined + config._f = isoDates[i][0] + (match[6] || ' '); + break; + } + } + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(string)) { + config._f += isoTimes[i][0]; + break; + } + } + if (string.match(parseTokenTimezone)) { + config._f += 'Z'; + } + makeDateFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function makeDateFromString(config) { + parseISO(config); + if (config._isValid === false) { + delete config._isValid; + moment.createFromInputFallback(config); + } + } + + function makeDateFromInput(config) { + var input = config._i, matched; + if (input === undefined) { + config._d = new Date(); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if ((matched = aspNetJsonRegex.exec(input)) !== null) { + config._d = new Date(+matched[1]); + } else if (typeof input === 'string') { + makeDateFromString(config); + } else if (isArray(input)) { + config._a = input.slice(0); + dateFromConfig(config); + } else if (typeof(input) === 'object') { + dateFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + moment.createFromInputFallback(config); + } + } + + function makeDate(y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor doesn't accept years < 1970 + if (y < 1970) { + date.setFullYear(y); + } + return date; + } + + function makeUTCDate(y) { + var date = new Date(Date.UTC.apply(null, arguments)); + if (y < 1970) { + date.setUTCFullYear(y); + } + return date; + } + + function parseWeekday(input, locale) { + if (typeof input === 'string') { + if (!isNaN(input)) { + input = parseInt(input, 10); + } + else { + input = locale.weekdaysParse(input); + if (typeof input !== 'number') { + return null; + } + } + } + return input; + } + + /************************************ + Relative Time + ************************************/ + + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime(posNegDuration, withoutSuffix, locale) { + var duration = moment.duration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + years = round(duration.as('y')), + + args = seconds < relativeTimeThresholds.s && ['s', seconds] || + minutes === 1 && ['m'] || + minutes < relativeTimeThresholds.m && ['mm', minutes] || + hours === 1 && ['h'] || + hours < relativeTimeThresholds.h && ['hh', hours] || + days === 1 && ['d'] || + days < relativeTimeThresholds.d && ['dd', days] || + months === 1 && ['M'] || + months < relativeTimeThresholds.M && ['MM', months] || + years === 1 && ['y'] || ['yy', years]; + + args[2] = withoutSuffix; + args[3] = +posNegDuration > 0; + args[4] = locale; + return substituteTimeAgo.apply({}, args); + } + + + /************************************ + Week of Year + ************************************/ + + + // firstDayOfWeek 0 = sun, 6 = sat + // the day of the week that starts the week + // (usually sunday or monday) + // firstDayOfWeekOfYear 0 = sun, 6 = sat + // the first week is the week that contains the first + // of this day of the week + // (eg. ISO weeks use thursday (4)) + function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { + var end = firstDayOfWeekOfYear - firstDayOfWeek, + daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), + adjustedMoment; + + + if (daysToDayOfWeek > end) { + daysToDayOfWeek -= 7; + } + + if (daysToDayOfWeek < end - 7) { + daysToDayOfWeek += 7; + } + + adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd'); + return { + week: Math.ceil(adjustedMoment.dayOfYear() / 7), + year: adjustedMoment.year() + }; + } + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { + var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear; + + d = d === 0 ? 7 : d; + weekday = weekday != null ? weekday : firstDayOfWeek; + daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0); + dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1; + + return { + year: dayOfYear > 0 ? year : year - 1, + dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear + }; + } + + /************************************ + Top Level Functions + ************************************/ + + function makeMoment(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || moment.localeData(config._l); + + if (input === null || (format === undefined && input === '')) { + return moment.invalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (moment.isMoment(input)) { + return new Moment(input, true); + } else if (format) { + if (isArray(format)) { + makeDateFromStringAndArray(config); + } else { + makeDateFromStringAndFormat(config); + } + } else { + makeDateFromInput(config); + } + + return new Moment(config); + } + + moment = function (input, format, locale, strict) { + var c; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c = {}; + c._isAMomentObject = true; + c._i = input; + c._f = format; + c._l = locale; + c._strict = strict; + c._isUTC = false; + c._pf = defaultParsingFlags(); + + return makeMoment(c); + }; + + moment.suppressDeprecationWarnings = false; + + moment.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i); + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return moment(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + moment.min = function () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + }; + + moment.max = function () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + }; + + // creating with utc + moment.utc = function (input, format, locale, strict) { + var c; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c = {}; + c._isAMomentObject = true; + c._useUTC = true; + c._isUTC = true; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + c._pf = defaultParsingFlags(); + + return makeMoment(c).utc(); + }; + + // creating with unix timestamp (in seconds) + moment.unix = function (input) { + return moment(input * 1000); + }; + + // duration + moment.duration = function (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + parseIso, + diffRes; + + if (moment.isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = isoDurationRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + parseIso = function (inp) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + }; + duration = { + y: parseIso(match[2]), + M: parseIso(match[3]), + d: parseIso(match[4]), + h: parseIso(match[5]), + m: parseIso(match[6]), + s: parseIso(match[7]), + w: parseIso(match[8]) + }; + } else if (typeof duration === 'object' && + ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(moment(duration.from), moment(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (moment.isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + }; + + // version number + moment.version = VERSION; + + // default format + moment.defaultFormat = isoFormat; + + // constant that refers to the ISO standard + moment.ISO_8601 = function () {}; + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + moment.momentProperties = momentProperties; + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + moment.updateOffset = function () {}; + + // This function allows you to set a threshold for relative time strings + moment.relativeTimeThreshold = function (threshold, limit) { + if (relativeTimeThresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return relativeTimeThresholds[threshold]; + } + relativeTimeThresholds[threshold] = limit; + return true; + }; + + moment.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + function (key, value) { + return moment.locale(key, value); + } + ); + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + moment.locale = function (key, values) { + var data; + if (key) { + if (typeof(values) !== 'undefined') { + data = moment.defineLocale(key, values); + } + else { + data = moment.localeData(key); + } + + if (data) { + moment.duration._locale = moment._locale = data; + } + } + + return moment._locale._abbr; + }; + + moment.defineLocale = function (name, values) { + if (values !== null) { + values.abbr = name; + if (!locales[name]) { + locales[name] = new Locale(); + } + locales[name].set(values); + + // backwards compat for now: also set the locale + moment.locale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + }; + + moment.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + function (key) { + return moment.localeData(key); + } + ); + + // returns locale data + moment.localeData = function (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return moment._locale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + }; + + // compare moment object + moment.isMoment = function (obj) { + return obj instanceof Moment || + (obj != null && hasOwnProp(obj, '_isAMomentObject')); + }; + + // for typechecking Duration objects + moment.isDuration = function (obj) { + return obj instanceof Duration; + }; + + for (i = lists.length - 1; i >= 0; --i) { + makeList(lists[i]); + } + + moment.normalizeUnits = function (units) { + return normalizeUnits(units); + }; + + moment.invalid = function (flags) { + var m = moment.utc(NaN); + if (flags != null) { + extend(m._pf, flags); + } + else { + m._pf.userInvalidated = true; + } + + return m; + }; + + moment.parseZone = function () { + return moment.apply(null, arguments).parseZone(); + }; + + moment.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + /************************************ + Moment Prototype + ************************************/ + + + extend(moment.fn = Moment.prototype, { + + clone : function () { + return moment(this); + }, + + valueOf : function () { + return +this._d + ((this._offset || 0) * 60000); + }, + + unix : function () { + return Math.floor(+this / 1000); + }, + + toString : function () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + }, + + toDate : function () { + return this._offset ? new Date(+this) : this._d; + }, + + toISOString : function () { + var m = moment(this).utc(); + if (0 < m.year() && m.year() <= 9999) { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + }, + + toArray : function () { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hours(), + m.minutes(), + m.seconds(), + m.milliseconds() + ]; + }, + + isValid : function () { + return isValid(this); + }, + + isDSTShifted : function () { + if (this._a) { + return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0; + } + + return false; + }, + + parsingFlags : function () { + return extend({}, this._pf); + }, + + invalidAt: function () { + return this._pf.overflow; + }, + + utc : function (keepLocalTime) { + return this.zone(0, keepLocalTime); + }, + + local : function (keepLocalTime) { + if (this._isUTC) { + this.zone(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.add(this._d.getTimezoneOffset(), 'm'); + } + } + return this; + }, + + format : function (inputString) { + var output = formatMoment(this, inputString || moment.defaultFormat); + return this.localeData().postformat(output); + }, + + add : createAdder(1, 'add'), + + subtract : createAdder(-1, 'subtract'), + + diff : function (input, units, asFloat) { + var that = makeAs(input, this), + zoneDiff = (this.zone() - that.zone()) * 6e4, + diff, output; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month') { + // average number of days in the months in the given dates + diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2 + // difference in months + output = ((this.year() - that.year()) * 12) + (this.month() - that.month()); + // adjust by taking difference in days, average number of days + // and dst in the given months. + output += ((this - moment(this).startOf('month')) - + (that - moment(that).startOf('month'))) / diff; + // same as above but with zones, to negate all dst + output -= ((this.zone() - moment(this).startOf('month').zone()) - + (that.zone() - moment(that).startOf('month').zone())) * 6e4 / diff; + if (units === 'year') { + output = output / 12; + } + } else { + diff = (this - that); + output = units === 'second' ? diff / 1e3 : // 1000 + units === 'minute' ? diff / 6e4 : // 1000 * 60 + units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + diff; + } + return asFloat ? output : absRound(output); + }, + + from : function (time, withoutSuffix) { + return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + }, + + fromNow : function (withoutSuffix) { + return this.from(moment(), withoutSuffix); + }, + + calendar : function (time) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're zone'd or not. + var now = time || moment(), + sod = makeAs(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + return this.format(this.localeData().calendar(format, this)); + }, + + isLeapYear : function () { + return isLeapYear(this.year()); + }, + + isDST : function () { + return (this.zone() < this.clone().month(0).zone() || + this.zone() < this.clone().month(5).zone()); + }, + + day : function (input) { + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + }, + + month : makeAccessor('Month', true), + + startOf : function (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + /* falls through */ + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } else if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + }, + + endOf: function (units) { + units = normalizeUnits(units); + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + }, + + isAfter: function (input, units) { + units = typeof units !== 'undefined' ? units : 'millisecond'; + return +this.clone().startOf(units) > +moment(input).startOf(units); + }, + + isBefore: function (input, units) { + units = typeof units !== 'undefined' ? units : 'millisecond'; + return +this.clone().startOf(units) < +moment(input).startOf(units); + }, + + isSame: function (input, units) { + units = units || 'ms'; + return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); + }, + + min: deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function (other) { + other = moment.apply(null, arguments); + return other < this ? this : other; + } + ), + + max: deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function (other) { + other = moment.apply(null, arguments); + return other > this ? this : other; + } + ), + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[zone(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist int zone + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + zone : function (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (input != null) { + if (typeof input === 'string') { + input = timezoneMinutesFromString(input); + } + if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = this._d.getTimezoneOffset(); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.subtract(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addOrSubtractDurationFromMoment(this, + moment.duration(offset - input, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + moment.updateOffset(this, true); + this._changeInProgress = null; + } + } + } else { + return this._isUTC ? offset : this._d.getTimezoneOffset(); + } + return this; + }, + + zoneAbbr : function () { + return this._isUTC ? 'UTC' : ''; + }, + + zoneName : function () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + }, + + parseZone : function () { + if (this._tzm) { + this.zone(this._tzm); + } else if (typeof this._i === 'string') { + this.zone(this._i); + } + return this; + }, + + hasAlignedHourOffset : function (input) { + if (!input) { + input = 0; + } + else { + input = moment(input).zone(); + } + + return (this.zone() - input) % 60 === 0; + }, + + daysInMonth : function () { + return daysInMonth(this.year(), this.month()); + }, + + dayOfYear : function (input) { + var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + }, + + quarter : function (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + }, + + weekYear : function (input) { + var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; + return input == null ? year : this.add((input - year), 'y'); + }, + + isoWeekYear : function (input) { + var year = weekOfYear(this, 1, 4).year; + return input == null ? year : this.add((input - year), 'y'); + }, + + week : function (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + }, + + isoWeek : function (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + }, + + weekday : function (input) { + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + }, + + isoWeekday : function (input) { + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + }, + + isoWeeksInYear : function () { + return weeksInYear(this.year(), 1, 4); + }, + + weeksInYear : function () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + }, + + get : function (units) { + units = normalizeUnits(units); + return this[units](); + }, + + set : function (units, value) { + units = normalizeUnits(units); + if (typeof this[units] === 'function') { + this[units](value); + } + return this; + }, + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + locale : function (key) { + if (key === undefined) { + return this._locale._abbr; + } else { + this._locale = moment.localeData(key); + return this; + } + }, + + lang : deprecate( + 'moment().lang() is deprecated. Use moment().localeData() instead.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + this._locale = moment.localeData(key); + return this; + } + } + ), + + localeData : function () { + return this._locale; + } + }); + + function rawMonthSetter(mom, value) { + var dayOfMonth; + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), + daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function rawGetter(mom, unit) { + return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + } + + function rawSetter(mom, unit, value) { + if (unit === 'Month') { + return rawMonthSetter(mom, value); + } else { + return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + + function makeAccessor(unit, keepTime) { + return function (value) { + if (value != null) { + rawSetter(this, unit, value); + moment.updateOffset(this, keepTime); + return this; + } else { + return rawGetter(this, unit); + } + }; + } + + moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false); + moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false); + moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false); + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true); + // moment.fn.month is defined separately + moment.fn.date = makeAccessor('Date', true); + moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true)); + moment.fn.year = makeAccessor('FullYear', true); + moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true)); + + // add plural methods + moment.fn.days = moment.fn.day; + moment.fn.months = moment.fn.month; + moment.fn.weeks = moment.fn.week; + moment.fn.isoWeeks = moment.fn.isoWeek; + moment.fn.quarters = moment.fn.quarter; + + // add aliased format methods + moment.fn.toJSON = moment.fn.toISOString; + + /************************************ + Duration Prototype + ************************************/ + + + function daysToYears (days) { + // 400 years have 146097 days (taking into account leap year rules) + return days * 400 / 146097; + } + + function yearsToDays (years) { + // years * 365 + absRound(years / 4) - + // absRound(years / 100) + absRound(years / 400); + return years * 146097 / 400; + } + + extend(moment.duration.fn = Duration.prototype, { + + _bubble : function () { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, minutes, hours, years = 0; + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absRound(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absRound(seconds / 60); + data.minutes = minutes % 60; + + hours = absRound(minutes / 60); + data.hours = hours % 24; + + days += absRound(hours / 24); + + // Accurately convert days to years, assume start from year 0. + years = absRound(daysToYears(days)); + days -= absRound(yearsToDays(years)); + + // 30 days to a month + // TODO (iskren): Use anchor date (like 1st Jan) to compute this. + months += absRound(days / 30); + days %= 30; + + // 12 months -> 1 year + years += absRound(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + }, + + abs : function () { + this._milliseconds = Math.abs(this._milliseconds); + this._days = Math.abs(this._days); + this._months = Math.abs(this._months); + + this._data.milliseconds = Math.abs(this._data.milliseconds); + this._data.seconds = Math.abs(this._data.seconds); + this._data.minutes = Math.abs(this._data.minutes); + this._data.hours = Math.abs(this._data.hours); + this._data.months = Math.abs(this._data.months); + this._data.years = Math.abs(this._data.years); + + return this; + }, + + weeks : function () { + return absRound(this.days() / 7); + }, + + valueOf : function () { + return this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6; + }, + + humanize : function (withSuffix) { + var output = relativeTime(this, !withSuffix, this.localeData()); + + if (withSuffix) { + output = this.localeData().pastFuture(+this, output); + } + + return this.localeData().postformat(output); + }, + + add : function (input, val) { + // supports only 2.0-style add(1, 's') or add(moment) + var dur = moment.duration(input, val); + + this._milliseconds += dur._milliseconds; + this._days += dur._days; + this._months += dur._months; + + this._bubble(); + + return this; + }, + + subtract : function (input, val) { + var dur = moment.duration(input, val); + + this._milliseconds -= dur._milliseconds; + this._days -= dur._days; + this._months -= dur._months; + + this._bubble(); + + return this; + }, + + get : function (units) { + units = normalizeUnits(units); + return this[units.toLowerCase() + 's'](); + }, + + as : function (units) { + var days, months; + units = normalizeUnits(units); + + days = this._days + this._milliseconds / 864e5; + if (units === 'month' || units === 'year') { + months = this._months + daysToYears(days) * 12; + return units === 'month' ? months : months / 12; + } else { + days += yearsToDays(this._months / 12); + switch (units) { + case 'week': return days / 7; + case 'day': return days; + case 'hour': return days * 24; + case 'minute': return days * 24 * 60; + case 'second': return days * 24 * 60 * 60; + case 'millisecond': return days * 24 * 60 * 60 * 1000; + default: throw new Error('Unknown unit ' + units); + } + } + }, + + lang : moment.fn.lang, + locale : moment.fn.locale, + + toIsoString : deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead ' + + '(notice the capitals)', + function () { + return this.toISOString(); + } + ), + + toISOString : function () { + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var years = Math.abs(this.years()), + months = Math.abs(this.months()), + days = Math.abs(this.days()), + hours = Math.abs(this.hours()), + minutes = Math.abs(this.minutes()), + seconds = Math.abs(this.seconds() + this.milliseconds() / 1000); + + if (!this.asSeconds()) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (this.asSeconds() < 0 ? '-' : '') + + 'P' + + (years ? years + 'Y' : '') + + (months ? months + 'M' : '') + + (days ? days + 'D' : '') + + ((hours || minutes || seconds) ? 'T' : '') + + (hours ? hours + 'H' : '') + + (minutes ? minutes + 'M' : '') + + (seconds ? seconds + 'S' : ''); + }, + + localeData : function () { + return this._locale; + } + }); + + moment.duration.fn.toString = moment.duration.fn.toISOString; + + function makeDurationGetter(name) { + moment.duration.fn[name] = function () { + return this._data[name]; + }; + } + + for (i in unitMillisecondFactors) { + if (hasOwnProp(unitMillisecondFactors, i)) { + makeDurationGetter(i.toLowerCase()); + } + } + + moment.duration.fn.asMilliseconds = function () { + return this.as('ms'); + }; + moment.duration.fn.asSeconds = function () { + return this.as('s'); + }; + moment.duration.fn.asMinutes = function () { + return this.as('m'); + }; + moment.duration.fn.asHours = function () { + return this.as('h'); + }; + moment.duration.fn.asDays = function () { + return this.as('d'); + }; + moment.duration.fn.asWeeks = function () { + return this.as('weeks'); + }; + moment.duration.fn.asMonths = function () { + return this.as('M'); + }; + moment.duration.fn.asYears = function () { + return this.as('y'); + }; + + /************************************ + Default Locale + ************************************/ + + + // Set default locale, other locale will inherit from English. + moment.locale('en', { + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // moment.js locale configuration +// locale : afrikaans (af) +// author : Werner Mollentze : https://github.com/wernerm + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('af', { + months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), + weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiem : function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[Vandag om] LT', + nextDay : '[Môre om] LT', + nextWeek : 'dddd [om] LT', + lastDay : '[Gister om] LT', + lastWeek : '[Laas] dddd [om] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'oor %s', + past : '%s gelede', + s : '\'n paar sekondes', + m : '\'n minuut', + mm : '%d minute', + h : '\'n uur', + hh : '%d ure', + d : '\'n dag', + dd : '%d dae', + M : '\'n maand', + MM : '%d maande', + y : '\'n jaar', + yy : '%d jaar' + }, + ordinal : function (number) { + return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week : { + dow : 1, // Maandag is die eerste dag van die week. + doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + } + }); +})); +// moment.js locale configuration +// locale : Moroccan Arabic (ar-ma) +// author : ElFadili Yassine : https://github.com/ElFadiliY +// author : Abdel Said : https://github.com/abdelsaid + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('ar-ma', { + months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'في %s', + past : 'منذ %s', + s : 'ثوان', + m : 'دقيقة', + mm : '%d دقائق', + h : 'ساعة', + hh : '%d ساعات', + d : 'يوم', + dd : '%d أيام', + M : 'شهر', + MM : '%d أشهر', + y : 'سنة', + yy : '%d سنوات' + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Arabic Saudi Arabia (ar-sa) +// author : Suhail Alkowaileet : https://github.com/xsoh + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '١', + '2': '٢', + '3': '٣', + '4': '٤', + '5': '٥', + '6': '٦', + '7': '٧', + '8': '٨', + '9': '٩', + '0': '٠' + }, numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0' + }; + + return moment.defineLocale('ar-sa', { + months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar : { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'في %s', + past : 'منذ %s', + s : 'ثوان', + m : 'دقيقة', + mm : '%d دقائق', + h : 'ساعة', + hh : '%d ساعات', + d : 'يوم', + dd : '%d أيام', + M : 'شهر', + MM : '%d أشهر', + y : 'سنة', + yy : '%d سنوات' + }, + preparse: function (string) { + return string.replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }).replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }).replace(/,/g, '،'); + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Arabic (ar) +// author : Abdel Said : https://github.com/abdelsaid +// changes in months, weekdays : Ahmed Elkhatib + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '١', + '2': '٢', + '3': '٣', + '4': '٤', + '5': '٥', + '6': '٦', + '7': '٧', + '8': '٨', + '9': '٩', + '0': '٠' + }, numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0' + }; + + return moment.defineLocale('ar', { + months : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), + monthsShort : 'يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول'.split('_'), + weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar : { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'في %s', + past : 'منذ %s', + s : 'ثوان', + m : 'دقيقة', + mm : '%d دقائق', + h : 'ساعة', + hh : '%d ساعات', + d : 'يوم', + dd : '%d أيام', + M : 'شهر', + MM : '%d أشهر', + y : 'سنة', + yy : '%d سنوات' + }, + preparse: function (string) { + return string.replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }).replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }).replace(/,/g, '،'); + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : azerbaijani (az) +// author : topchiyev : https://github.com/topchiyev + +(function (factory) { + factory(moment); +}(function (moment) { + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + + 6: '-ncı', + + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + + 60: '-ıncı', + 90: '-ıncı' + }; + return moment.defineLocale('az', { + months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), + monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), + weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[bugün saat] LT', + nextDay : '[sabah saat] LT', + nextWeek : '[gələn həftə] dddd [saat] LT', + lastDay : '[dünən] LT', + lastWeek : '[keçən həftə] dddd [saat] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s sonra', + past : '%s əvvəl', + s : 'birneçə saniyyə', + m : 'bir dəqiqə', + mm : '%d dəqiqə', + h : 'bir saat', + hh : '%d saat', + d : 'bir gün', + dd : '%d gün', + M : 'bir ay', + MM : '%d ay', + y : 'bir il', + yy : '%d il' + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + ordinal : function (number) { + if (number === 0) { // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = number % 100 - a, + c = number >= 100 ? 100 : null; + + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : belarusian (be) +// author : Dmitry Demidov : https://github.com/demidov91 +// author: Praleska: http://praleska.pro/ +// Author : Menelion Elensúle : https://github.com/Oire + +(function (factory) { + factory(moment); +}(function (moment) { + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); + } + + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + 'dd': 'дзень_дні_дзён', + 'MM': 'месяц_месяцы_месяцаў', + 'yy': 'год_гады_гадоў' + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } + else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } + else { + return number + ' ' + plural(format[key], +number); + } + } + + function monthsCaseReplace(m, format) { + var months = { + 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'), + 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_') + }, + + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + + return months[nounCase][m.month()]; + } + + function weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'), + 'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_') + }, + + nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ? + 'accusative' : + 'nominative'; + + return weekdays[nounCase][m.day()]; + } + + return moment.defineLocale('be', { + months : monthsCaseReplace, + monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays : weekdaysCaseReplace, + weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY г.', + LLL : 'D MMMM YYYY г., LT', + LLLL : 'dddd, D MMMM YYYY г., LT' + }, + calendar : { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'праз %s', + past : '%s таму', + s : 'некалькі секунд', + m : relativeTimeWithPlural, + mm : relativeTimeWithPlural, + h : relativeTimeWithPlural, + hh : relativeTimeWithPlural, + d : 'дзень', + dd : relativeTimeWithPlural, + M : 'месяц', + MM : relativeTimeWithPlural, + y : 'год', + yy : relativeTimeWithPlural + }, + + + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : bulgarian (bg) +// author : Krasen Borisov : https://github.com/kraz + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('bg', { + months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), + monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), + weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'D.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[Днес в] LT', + nextDay : '[Утре в] LT', + nextWeek : 'dddd [в] LT', + lastDay : '[Вчера в] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[В изминалата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[В изминалия] dddd [в] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'след %s', + past : 'преди %s', + s : 'няколко секунди', + m : 'минута', + mm : '%d минути', + h : 'час', + hh : '%d часа', + d : 'ден', + dd : '%d дни', + M : 'месец', + MM : '%d месеца', + y : 'година', + yy : '%d години' + }, + ordinal : function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Bengali (bn) +// author : Kaushik Gandhi : https://github.com/kaushikgandhi + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '১', + '2': '২', + '3': '৩', + '4': '৪', + '5': '৫', + '6': '৬', + '7': '৭', + '8': '৮', + '9': '৯', + '0': '০' + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0' + }; + + return moment.defineLocale('bn', { + months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), + monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'), + weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার'.split('_'), + weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি'.split('_'), + weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'), + longDateFormat : { + LT : 'A h:mm সময়', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, LT', + LLLL : 'dddd, D MMMM YYYY, LT' + }, + calendar : { + sameDay : '[আজ] LT', + nextDay : '[আগামীকাল] LT', + nextWeek : 'dddd, LT', + lastDay : '[গতকাল] LT', + lastWeek : '[গত] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s পরে', + past : '%s আগে', + s : 'কএক সেকেন্ড', + m : 'এক মিনিট', + mm : '%d মিনিট', + h : 'এক ঘন্টা', + hh : '%d ঘন্টা', + d : 'এক দিন', + dd : '%d দিন', + M : 'এক মাস', + MM : '%d মাস', + y : 'এক বছর', + yy : '%d বছর' + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + //Bengali is a vast language its spoken + //in different forms in various parts of the world. + //I have just generalized with most common one used + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'শকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকেল'; + } else { + return 'রাত'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : tibetan (bo) +// author : Thupten N. Chakrishar : https://github.com/vajradog + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '༡', + '2': '༢', + '3': '༣', + '4': '༤', + '5': '༥', + '6': '༦', + '7': '༧', + '8': '༨', + '9': '༩', + '0': '༠' + }, + numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0' + }; + + return moment.defineLocale('bo', { + months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), + monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), + weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), + weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), + weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), + longDateFormat : { + LT : 'A h:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, LT', + LLLL : 'dddd, D MMMM YYYY, LT' + }, + calendar : { + sameDay : '[དི་རིང] LT', + nextDay : '[སང་ཉིན] LT', + nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay : '[ཁ་སང] LT', + lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s ལ་', + past : '%s སྔན་ལ', + s : 'ལམ་སང', + m : 'སྐར་མ་གཅིག', + mm : '%d སྐར་མ', + h : 'ཆུ་ཚོད་གཅིག', + hh : '%d ཆུ་ཚོད', + d : 'ཉིན་གཅིག', + dd : '%d ཉིན་', + M : 'ཟླ་བ་གཅིག', + MM : '%d ཟླ་བ', + y : 'ལོ་གཅིག', + yy : '%d ལོ' + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : breton (br) +// author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +(function (factory) { + factory(moment); +}(function (moment) { + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + 'mm': 'munutenn', + 'MM': 'miz', + 'dd': 'devezh' + }; + return number + ' ' + mutation(format[key], number); + } + + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + + function softMutation(text) { + var mutationTable = { + 'm': 'v', + 'b': 'v', + 'd': 'z' + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + return moment.defineLocale('br', { + months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'), + monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + longDateFormat : { + LT : 'h[e]mm A', + L : 'DD/MM/YYYY', + LL : 'D [a viz] MMMM YYYY', + LLL : 'D [a viz] MMMM YYYY LT', + LLLL : 'dddd, D [a viz] MMMM YYYY LT' + }, + calendar : { + sameDay : '[Hiziv da] LT', + nextDay : '[Warc\'hoazh da] LT', + nextWeek : 'dddd [da] LT', + lastDay : '[Dec\'h da] LT', + lastWeek : 'dddd [paset da] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'a-benn %s', + past : '%s \'zo', + s : 'un nebeud segondennoù', + m : 'ur vunutenn', + mm : relativeTimeWithMutation, + h : 'un eur', + hh : '%d eur', + d : 'un devezh', + dd : relativeTimeWithMutation, + M : 'ur miz', + MM : relativeTimeWithMutation, + y : 'ur bloaz', + yy : specialMutationForYears + }, + ordinal : function (number) { + var output = (number === 1) ? 'añ' : 'vet'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : bosnian (bs) +// author : Nedim Cholich : https://github.com/frontyard +// based on (hr) translation by Bojan Marković + +(function (factory) { + factory(moment); +}(function (moment) { + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + return moment.defineLocale('bs', { + months : 'januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar'.split('_'), + monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'), + weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), + weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD. MM. YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd, D. MMMM YYYY LT' + }, + calendar : { + sameDay : '[danas u] LT', + nextDay : '[sutra u] LT', + + nextWeek : function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay : '[jučer u] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'za %s', + past : 'prije %s', + s : 'par sekundi', + m : translate, + mm : translate, + h : translate, + hh : translate, + d : 'dan', + dd : translate, + M : 'mjesec', + MM : translate, + y : 'godinu', + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : catalan (ca) +// author : Juan G. Hurtado : https://github.com/juanghurtado + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('ca', { + months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), + monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'), + weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'), + weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay : function () { + return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + nextDay : function () { + return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + nextWeek : function () { + return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + lastDay : function () { + return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + lastWeek : function () { + return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'en %s', + past : 'fa %s', + s : 'uns segons', + m : 'un minut', + mm : '%d minuts', + h : 'una hora', + hh : '%d hores', + d : 'un dia', + dd : '%d dies', + M : 'un mes', + MM : '%d mesos', + y : 'un any', + yy : '%d anys' + }, + ordinal : '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : czech (cs) +// author : petrbela : https://github.com/petrbela + +(function (factory) { + factory(moment); +}(function (moment) { + var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'), + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'); + + function plural(n) { + return (n > 1) && (n < 5) && (~~(n / 10) !== 1); + } + + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami'; + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou'); + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + break; + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + break; + case 'd': // a day / in a day / a day ago + return (withoutSuffix || isFuture) ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + break; + case 'M': // a month / in a month / a month ago + return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + break; + case 'y': // a year / in a year / a year ago + return (withoutSuffix || isFuture) ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + break; + } + } + + return moment.defineLocale('cs', { + months : months, + monthsShort : monthsShort, + monthsParse : (function (months, monthsShort) { + var i, _monthsParse = []; + for (i = 0; i < 12; i++) { + // use custom parser to solve problem with July (červenec) + _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); + } + return _monthsParse; + }(months, monthsShort)), + weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat : { + LT: 'H.mm', + L : 'DD. MM. YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd D. MMMM YYYY LT' + }, + calendar : { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'za %s', + past : 'před %s', + s : translate, + m : translate, + mm : translate, + h : translate, + hh : translate, + d : translate, + dd : translate, + M : translate, + MM : translate, + y : translate, + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : chuvash (cv) +// author : Anatoly Mironov : https://github.com/mirontoli + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('cv', { + months : 'кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав'.split('_'), + monthsShort : 'кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш'.split('_'), + weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун'.split('_'), + weekdaysShort : 'выр_тун_ытл_юн_кĕç_эрн_шăм'.split('_'), + weekdaysMin : 'вр_тн_ыт_юн_кç_эр_шм'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD-MM-YYYY', + LL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]', + LLL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT', + LLLL : 'dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT' + }, + calendar : { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ĕнер] LT [сехетре]', + nextWeek: '[Çитес] dddd LT [сехетре]', + lastWeek: '[Иртнĕ] dddd LT [сехетре]', + sameElse: 'L' + }, + relativeTime : { + future : function (output) { + var affix = /сехет$/i.exec(output) ? 'рен' : /çул$/i.exec(output) ? 'тан' : 'ран'; + return output + affix; + }, + past : '%s каялла', + s : 'пĕр-ик çеккунт', + m : 'пĕр минут', + mm : '%d минут', + h : 'пĕр сехет', + hh : '%d сехет', + d : 'пĕр кун', + dd : '%d кун', + M : 'пĕр уйăх', + MM : '%d уйăх', + y : 'пĕр çул', + yy : '%d çул' + }, + ordinal : '%d-мĕш', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Welsh (cy) +// author : Robert Allen + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), + weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY LT', + LLLL: 'dddd, D MMMM YYYY LT' + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L' + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd' + }, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed + 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed + ]; + + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : danish (da) +// author : Ulrik Nielsen : https://github.com/mrbase + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('da', { + months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'), + monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd [d.] D. MMMM YYYY LT' + }, + calendar : { + sameDay : '[I dag kl.] LT', + nextDay : '[I morgen kl.] LT', + nextWeek : 'dddd [kl.] LT', + lastDay : '[I går kl.] LT', + lastWeek : '[sidste] dddd [kl] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'om %s', + past : '%s siden', + s : 'få sekunder', + m : 'et minut', + mm : '%d minutter', + h : 'en time', + hh : '%d timer', + d : 'en dag', + dd : '%d dage', + M : 'en måned', + MM : '%d måneder', + y : 'et år', + yy : '%d år' + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : austrian german (de-at) +// author : lluchs : https://github.com/lluchs +// author: Menelion Elensúle: https://github.com/Oire +// author : Martin Groller : https://github.com/MadMG + +(function (factory) { + factory(moment); +}(function (moment) { + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 'm': ['eine Minute', 'einer Minute'], + 'h': ['eine Stunde', 'einer Stunde'], + 'd': ['ein Tag', 'einem Tag'], + 'dd': [number + ' Tage', number + ' Tagen'], + 'M': ['ein Monat', 'einem Monat'], + 'MM': [number + ' Monate', number + ' Monaten'], + 'y': ['ein Jahr', 'einem Jahr'], + 'yy': [number + ' Jahre', number + ' Jahren'] + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + return moment.defineLocale('de-at', { + months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), + weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), + weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + longDateFormat : { + LT: 'HH:mm [Uhr]', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd, D. MMMM YYYY LT' + }, + calendar : { + sameDay: '[Heute um] LT', + sameElse: 'L', + nextDay: '[Morgen um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gestern um] LT', + lastWeek: '[letzten] dddd [um] LT' + }, + relativeTime : { + future : 'in %s', + past : 'vor %s', + s : 'ein paar Sekunden', + m : processRelativeTime, + mm : '%d Minuten', + h : processRelativeTime, + hh : '%d Stunden', + d : processRelativeTime, + dd : processRelativeTime, + M : processRelativeTime, + MM : processRelativeTime, + y : processRelativeTime, + yy : processRelativeTime + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : german (de) +// author : lluchs : https://github.com/lluchs +// author: Menelion Elensúle: https://github.com/Oire + +(function (factory) { + factory(moment); +}(function (moment) { + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 'm': ['eine Minute', 'einer Minute'], + 'h': ['eine Stunde', 'einer Stunde'], + 'd': ['ein Tag', 'einem Tag'], + 'dd': [number + ' Tage', number + ' Tagen'], + 'M': ['ein Monat', 'einem Monat'], + 'MM': [number + ' Monate', number + ' Monaten'], + 'y': ['ein Jahr', 'einem Jahr'], + 'yy': [number + ' Jahre', number + ' Jahren'] + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + return moment.defineLocale('de', { + months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), + weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), + weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + longDateFormat : { + LT: 'HH:mm [Uhr]', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd, D. MMMM YYYY LT' + }, + calendar : { + sameDay: '[Heute um] LT', + sameElse: 'L', + nextDay: '[Morgen um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gestern um] LT', + lastWeek: '[letzten] dddd [um] LT' + }, + relativeTime : { + future : 'in %s', + past : 'vor %s', + s : 'ein paar Sekunden', + m : processRelativeTime, + mm : '%d Minuten', + h : processRelativeTime, + hh : '%d Stunden', + d : processRelativeTime, + dd : processRelativeTime, + M : processRelativeTime, + MM : processRelativeTime, + y : processRelativeTime, + yy : processRelativeTime + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : modern greek (el) +// author : Aggelos Karalias : https://github.com/mehiel + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('el', { + monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), + monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), + months : function (momentToFormat, format) { + if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), + weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM : function (input) { + return ((input + '').toLowerCase()[0] === 'μ'); + }, + meridiemParse : /[ΠΜ]\.?Μ?\.?/i, + longDateFormat : { + LT : 'h:mm A', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendarEl : { + sameDay : '[Σήμερα {}] LT', + nextDay : '[Αύριο {}] LT', + nextWeek : 'dddd [{}] LT', + lastDay : '[Χθες {}] LT', + lastWeek : function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse : 'L' + }, + calendar : function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + + if (typeof output === 'function') { + output = output.apply(mom); + } + + return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις')); + }, + relativeTime : { + future : 'σε %s', + past : '%s πριν', + s : 'δευτερόλεπτα', + m : 'ένα λεπτό', + mm : '%d λεπτά', + h : 'μία ώρα', + hh : '%d ώρες', + d : 'μία μέρα', + dd : '%d μέρες', + M : 'ένας μήνας', + MM : '%d μήνες', + y : 'ένας χρόνος', + yy : '%d χρόνια' + }, + ordinal : function (number) { + return number + 'η'; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : australian english (en-au) + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('en-au', { + months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat : { + LT : 'h:mm A', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : canadian english (en-ca) +// author : Jonathan Abourbih : https://github.com/jonbca + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('en-ca', { + months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat : { + LT : 'h:mm A', + L : 'YYYY-MM-DD', + LL : 'D MMMM, YYYY', + LLL : 'D MMMM, YYYY LT', + LLLL : 'dddd, D MMMM, YYYY LT' + }, + calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); +})); +// moment.js locale configuration +// locale : great britain english (en-gb) +// author : Chris Gedrim : https://github.com/chrisgedrim + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('en-gb', { + months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : esperanto (eo) +// author : Colin Dean : https://github.com/colindean +// komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko. +// Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni! + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('eo', { + months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'), + monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'), + weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'), + weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'), + weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'YYYY-MM-DD', + LL : 'D[-an de] MMMM, YYYY', + LLL : 'D[-an de] MMMM, YYYY LT', + LLLL : 'dddd, [la] D[-an de] MMMM, YYYY LT' + }, + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar : { + sameDay : '[Hodiaŭ je] LT', + nextDay : '[Morgaŭ je] LT', + nextWeek : 'dddd [je] LT', + lastDay : '[Hieraŭ je] LT', + lastWeek : '[pasinta] dddd [je] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'je %s', + past : 'antaŭ %s', + s : 'sekundoj', + m : 'minuto', + mm : '%d minutoj', + h : 'horo', + hh : '%d horoj', + d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo + dd : '%d tagoj', + M : 'monato', + MM : '%d monatoj', + y : 'jaro', + yy : '%d jaroj' + }, + ordinal : '%da', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : spanish (es) +// author : Julio Napurí : https://github.com/julionc + +(function (factory) { + factory(moment); +}(function (moment) { + var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); + + return moment.defineLocale('es', { + months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), + monthsShort : function (m, format) { + if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin : 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD/MM/YYYY', + LL : 'D [de] MMMM [de] YYYY', + LLL : 'D [de] MMMM [de] YYYY LT', + LLLL : 'dddd, D [de] MMMM [de] YYYY LT' + }, + calendar : { + sameDay : function () { + return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + nextDay : function () { + return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + nextWeek : function () { + return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + lastDay : function () { + return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + lastWeek : function () { + return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'en %s', + past : 'hace %s', + s : 'unos segundos', + m : 'un minuto', + mm : '%d minutos', + h : 'una hora', + hh : '%d horas', + d : 'un día', + dd : '%d días', + M : 'un mes', + MM : '%d meses', + y : 'un año', + yy : '%d años' + }, + ordinal : '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : estonian (et) +// author : Henry Kehlmann : https://github.com/madhenry +// improvements : Illimar Tambek : https://github.com/ragulka + +(function (factory) { + factory(moment); +}(function (moment) { + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + 'm' : ['ühe minuti', 'üks minut'], + 'mm': [number + ' minuti', number + ' minutit'], + 'h' : ['ühe tunni', 'tund aega', 'üks tund'], + 'hh': [number + ' tunni', number + ' tundi'], + 'd' : ['ühe päeva', 'üks päev'], + 'M' : ['kuu aja', 'kuu aega', 'üks kuu'], + 'MM': [number + ' kuu', number + ' kuud'], + 'y' : ['ühe aasta', 'aasta', 'üks aasta'], + 'yy': [number + ' aasta', number + ' aastat'] + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + return moment.defineLocale('et', { + months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'), + monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'), + weekdaysShort : 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin : 'P_E_T_K_N_R_L'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd, D. MMMM YYYY LT' + }, + calendar : { + sameDay : '[Täna,] LT', + nextDay : '[Homme,] LT', + nextWeek : '[Järgmine] dddd LT', + lastDay : '[Eile,] LT', + lastWeek : '[Eelmine] dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s pärast', + past : '%s tagasi', + s : processRelativeTime, + m : processRelativeTime, + mm : processRelativeTime, + h : processRelativeTime, + hh : processRelativeTime, + d : processRelativeTime, + dd : '%d päeva', + M : processRelativeTime, + MM : processRelativeTime, + y : processRelativeTime, + yy : processRelativeTime + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : euskara (eu) +// author : Eneko Illarramendi : https://github.com/eillarra + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('eu', { + months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'), + monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'), + weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'), + weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'YYYY-MM-DD', + LL : 'YYYY[ko] MMMM[ren] D[a]', + LLL : 'YYYY[ko] MMMM[ren] D[a] LT', + LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] LT', + l : 'YYYY-M-D', + ll : 'YYYY[ko] MMM D[a]', + lll : 'YYYY[ko] MMM D[a] LT', + llll : 'ddd, YYYY[ko] MMM D[a] LT' + }, + calendar : { + sameDay : '[gaur] LT[etan]', + nextDay : '[bihar] LT[etan]', + nextWeek : 'dddd LT[etan]', + lastDay : '[atzo] LT[etan]', + lastWeek : '[aurreko] dddd LT[etan]', + sameElse : 'L' + }, + relativeTime : { + future : '%s barru', + past : 'duela %s', + s : 'segundo batzuk', + m : 'minutu bat', + mm : '%d minutu', + h : 'ordu bat', + hh : '%d ordu', + d : 'egun bat', + dd : '%d egun', + M : 'hilabete bat', + MM : '%d hilabete', + y : 'urte bat', + yy : '%d urte' + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Persian (fa) +// author : Ebrahim Byagowi : https://github.com/ebraminio + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '۱', + '2': '۲', + '3': '۳', + '4': '۴', + '5': '۵', + '6': '۶', + '7': '۷', + '8': '۸', + '9': '۹', + '0': '۰' + }, numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0' + }; + + return moment.defineLocale('fa', { + months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), + monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), + weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), + weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), + weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar : { + sameDay : '[امروز ساعت] LT', + nextDay : '[فردا ساعت] LT', + nextWeek : 'dddd [ساعت] LT', + lastDay : '[دیروز ساعت] LT', + lastWeek : 'dddd [پیش] [ساعت] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'در %s', + past : '%s پیش', + s : 'چندین ثانیه', + m : 'یک دقیقه', + mm : '%d دقیقه', + h : 'یک ساعت', + hh : '%d ساعت', + d : 'یک روز', + dd : '%d روز', + M : 'یک ماه', + MM : '%d ماه', + y : 'یک سال', + yy : '%d سال' + }, + preparse: function (string) { + return string.replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }).replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }).replace(/,/g, '،'); + }, + ordinal : '%dم', + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : finnish (fi) +// author : Tarmo Aidantausta : https://github.com/bleadof + +(function (factory) { + factory(moment); +}(function (moment) { + var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '), + numbersFuture = [ + 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', + numbersPast[7], numbersPast[8], numbersPast[9] + ]; + + function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + + function verbalNumber(number, isFuture) { + return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number; + } + + return moment.defineLocale('fi', { + months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'), + monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'), + weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'), + weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat : { + LT : 'HH.mm', + L : 'DD.MM.YYYY', + LL : 'Do MMMM[ta] YYYY', + LLL : 'Do MMMM[ta] YYYY, [klo] LT', + LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] LT', + l : 'D.M.YYYY', + ll : 'Do MMM YYYY', + lll : 'Do MMM YYYY, [klo] LT', + llll : 'ddd, Do MMM YYYY, [klo] LT' + }, + calendar : { + sameDay : '[tänään] [klo] LT', + nextDay : '[huomenna] [klo] LT', + nextWeek : 'dddd [klo] LT', + lastDay : '[eilen] [klo] LT', + lastWeek : '[viime] dddd[na] [klo] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s päästä', + past : '%s sitten', + s : translate, + m : translate, + mm : translate, + h : translate, + hh : translate, + d : translate, + dd : translate, + M : translate, + MM : translate, + y : translate, + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : faroese (fo) +// author : Ragnar Johannesen : https://github.com/ragnar123 + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('fo', { + months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), + weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D. MMMM, YYYY LT' + }, + calendar : { + sameDay : '[Í dag kl.] LT', + nextDay : '[Í morgin kl.] LT', + nextWeek : 'dddd [kl.] LT', + lastDay : '[Í gjár kl.] LT', + lastWeek : '[síðstu] dddd [kl] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'um %s', + past : '%s síðani', + s : 'fá sekund', + m : 'ein minutt', + mm : '%d minuttir', + h : 'ein tími', + hh : '%d tímar', + d : 'ein dagur', + dd : '%d dagar', + M : 'ein mánaði', + MM : '%d mánaðir', + y : 'eitt ár', + yy : '%d ár' + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : canadian french (fr-ca) +// author : Jonathan Abourbih : https://github.com/jonbca + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('fr-ca', { + months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), + monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), + weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'YYYY-MM-DD', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[Aujourd\'hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'dans %s', + past : 'il y a %s', + s : 'quelques secondes', + m : 'une minute', + mm : '%d minutes', + h : 'une heure', + hh : '%d heures', + d : 'un jour', + dd : '%d jours', + M : 'un mois', + MM : '%d mois', + y : 'un an', + yy : '%d ans' + }, + ordinal : function (number) { + return number + (number === 1 ? 'er' : ''); + } + }); +})); +// moment.js locale configuration +// locale : french (fr) +// author : John Fischer : https://github.com/jfroffice + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('fr', { + months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), + monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), + weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[Aujourd\'hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'dans %s', + past : 'il y a %s', + s : 'quelques secondes', + m : 'une minute', + mm : '%d minutes', + h : 'une heure', + hh : '%d heures', + d : 'un jour', + dd : '%d jours', + M : 'un mois', + MM : '%d mois', + y : 'un an', + yy : '%d ans' + }, + ordinal : function (number) { + return number + (number === 1 ? 'er' : ''); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : galician (gl) +// author : Juan G. Hurtado : https://github.com/juanghurtado + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('gl', { + months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'), + monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'), + weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'), + weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'), + weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay : function () { + return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; + }, + nextDay : function () { + return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; + }, + nextWeek : function () { + return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; + }, + lastDay : function () { + return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT'; + }, + lastWeek : function () { + return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; + }, + sameElse : 'L' + }, + relativeTime : { + future : function (str) { + if (str === 'uns segundos') { + return 'nuns segundos'; + } + return 'en ' + str; + }, + past : 'hai %s', + s : 'uns segundos', + m : 'un minuto', + mm : '%d minutos', + h : 'unha hora', + hh : '%d horas', + d : 'un día', + dd : '%d días', + M : 'un mes', + MM : '%d meses', + y : 'un ano', + yy : '%d anos' + }, + ordinal : '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Hebrew (he) +// author : Tomer Cohen : https://github.com/tomer +// author : Moshe Simantov : https://github.com/DevelopmentIL +// author : Tal Ater : https://github.com/TalAter + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('he', { + months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), + monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D [ב]MMMM YYYY', + LLL : 'D [ב]MMMM YYYY LT', + LLLL : 'dddd, D [ב]MMMM YYYY LT', + l : 'D/M/YYYY', + ll : 'D MMM YYYY', + lll : 'D MMM YYYY LT', + llll : 'ddd, D MMM YYYY LT' + }, + calendar : { + sameDay : '[היום ב־]LT', + nextDay : '[מחר ב־]LT', + nextWeek : 'dddd [בשעה] LT', + lastDay : '[אתמול ב־]LT', + lastWeek : '[ביום] dddd [האחרון בשעה] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'בעוד %s', + past : 'לפני %s', + s : 'מספר שניות', + m : 'דקה', + mm : '%d דקות', + h : 'שעה', + hh : function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d : 'יום', + dd : function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M : 'חודש', + MM : function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y : 'שנה', + yy : function (number) { + if (number === 2) { + return 'שנתיים'; + } + return number + ' שנים'; + } + } + }); +})); +// moment.js locale configuration +// locale : hindi (hi) +// author : Mayank Singhal : https://github.com/mayanksinghal + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '१', + '2': '२', + '3': '३', + '4': '४', + '5': '५', + '6': '६', + '7': '७', + '8': '८', + '9': '९', + '0': '०' + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0' + }; + + return moment.defineLocale('hi', { + months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), + monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat : { + LT : 'A h:mm बजे', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, LT', + LLLL : 'dddd, D MMMM YYYY, LT' + }, + calendar : { + sameDay : '[आज] LT', + nextDay : '[कल] LT', + nextWeek : 'dddd, LT', + lastDay : '[कल] LT', + lastWeek : '[पिछले] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s में', + past : '%s पहले', + s : 'कुछ ही क्षण', + m : 'एक मिनट', + mm : '%d मिनट', + h : 'एक घंटा', + hh : '%d घंटे', + d : 'एक दिन', + dd : '%d दिन', + M : 'एक महीने', + MM : '%d महीने', + y : 'एक वर्ष', + yy : '%d वर्ष' + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : hrvatski (hr) +// author : Bojan Marković : https://github.com/bmarkovic + +// based on (sl) translation by Robert Sedovšek + +(function (factory) { + factory(moment); +}(function (moment) { + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + return moment.defineLocale('hr', { + months : 'sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_'), + monthsShort : 'sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), + weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), + weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD. MM. YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd, D. MMMM YYYY LT' + }, + calendar : { + sameDay : '[danas u] LT', + nextDay : '[sutra u] LT', + + nextWeek : function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay : '[jučer u] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'za %s', + past : 'prije %s', + s : 'par sekundi', + m : translate, + mm : translate, + h : translate, + hh : translate, + d : 'dan', + dd : translate, + M : 'mjesec', + MM : translate, + y : 'godinu', + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : hungarian (hu) +// author : Adam Brunner : https://github.com/adambrunner + +(function (factory) { + factory(moment); +}(function (moment) { + var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + + function translate(number, withoutSuffix, key, isFuture) { + var num = number, + suffix; + + switch (key) { + case 's': + return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + + return ''; + } + + function week(isFuture) { + return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; + } + + return moment.defineLocale('hu', { + months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'), + monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'), + weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'YYYY.MM.DD.', + LL : 'YYYY. MMMM D.', + LLL : 'YYYY. MMMM D., LT', + LLLL : 'YYYY. MMMM D., dddd LT' + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar : { + sameDay : '[ma] LT[-kor]', + nextDay : '[holnap] LT[-kor]', + nextWeek : function () { + return week.call(this, true); + }, + lastDay : '[tegnap] LT[-kor]', + lastWeek : function () { + return week.call(this, false); + }, + sameElse : 'L' + }, + relativeTime : { + future : '%s múlva', + past : '%s', + s : translate, + m : translate, + mm : translate, + h : translate, + hh : translate, + d : translate, + dd : translate, + M : translate, + MM : translate, + y : translate, + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Armenian (hy-am) +// author : Armendarabyan : https://github.com/armendarabyan + +(function (factory) { + factory(moment); +}(function (moment) { + function monthsCaseReplace(m, format) { + var months = { + 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'), + 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_') + }, + + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + + return months[nounCase][m.month()]; + } + + function monthsShortCaseReplace(m, format) { + var monthsShort = 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'); + + return monthsShort[m.month()]; + } + + function weekdaysCaseReplace(m, format) { + var weekdays = 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'); + + return weekdays[m.day()]; + } + + return moment.defineLocale('hy-am', { + months : monthsCaseReplace, + monthsShort : monthsShortCaseReplace, + weekdays : weekdaysCaseReplace, + weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY թ.', + LLL : 'D MMMM YYYY թ., LT', + LLLL : 'dddd, D MMMM YYYY թ., LT' + }, + calendar : { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L' + }, + relativeTime : { + future : '%s հետո', + past : '%s առաջ', + s : 'մի քանի վայրկյան', + m : 'րոպե', + mm : '%d րոպե', + h : 'ժամ', + hh : '%d ժամ', + d : 'օր', + dd : '%d օր', + M : 'ամիս', + MM : '%d ամիս', + y : 'տարի', + yy : '%d տարի' + }, + + meridiem : function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Bahasa Indonesia (id) +// author : Mohammad Satrio Utomo : https://github.com/tyok +// reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('id', { + months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'), + weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat : { + LT : 'HH.mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY [pukul] LT', + LLLL : 'dddd, D MMMM YYYY [pukul] LT' + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar : { + sameDay : '[Hari ini pukul] LT', + nextDay : '[Besok pukul] LT', + nextWeek : 'dddd [pukul] LT', + lastDay : '[Kemarin pukul] LT', + lastWeek : 'dddd [lalu pukul] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'dalam %s', + past : '%s yang lalu', + s : 'beberapa detik', + m : 'semenit', + mm : '%d menit', + h : 'sejam', + hh : '%d jam', + d : 'sehari', + dd : '%d hari', + M : 'sebulan', + MM : '%d bulan', + y : 'setahun', + yy : '%d tahun' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : icelandic (is) +// author : Hinrik Örn Sigurðsson : https://github.com/hinrik + +(function (factory) { + factory(moment); +}(function (moment) { + function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum'); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } + } + + return moment.defineLocale('is', { + months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'), + weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD/MM/YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY [kl.] LT', + LLLL : 'dddd, D. MMMM YYYY [kl.] LT' + }, + calendar : { + sameDay : '[í dag kl.] LT', + nextDay : '[á morgun kl.] LT', + nextWeek : 'dddd [kl.] LT', + lastDay : '[í gær kl.] LT', + lastWeek : '[síðasta] dddd [kl.] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'eftir %s', + past : 'fyrir %s síðan', + s : translate, + m : translate, + mm : translate, + h : 'klukkustund', + hh : translate, + d : translate, + dd : translate, + M : translate, + MM : translate, + y : translate, + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : italian (it) +// author : Lorenzo : https://github.com/aliem +// author: Mattia Larentis: https://github.com/nostalgiaz + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('it', { + months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), + monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'), + weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'), + weekdaysMin : 'D_L_Ma_Me_G_V_S'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: '[lo scorso] dddd [alle] LT', + sameElse: 'L' + }, + relativeTime : { + future : function (s) { + return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; + }, + past : '%s fa', + s : 'alcuni secondi', + m : 'un minuto', + mm : '%d minuti', + h : 'un\'ora', + hh : '%d ore', + d : 'un giorno', + dd : '%d giorni', + M : 'un mese', + MM : '%d mesi', + y : 'un anno', + yy : '%d anni' + }, + ordinal: '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : japanese (ja) +// author : LI Long : https://github.com/baryon + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('ja', { + months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort : '日_月_火_水_木_金_土'.split('_'), + weekdaysMin : '日_月_火_水_木_金_土'.split('_'), + longDateFormat : { + LT : 'Ah時m分', + L : 'YYYY/MM/DD', + LL : 'YYYY年M月D日', + LLL : 'YYYY年M月D日LT', + LLLL : 'YYYY年M月D日LT dddd' + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar : { + sameDay : '[今日] LT', + nextDay : '[明日] LT', + nextWeek : '[来週]dddd LT', + lastDay : '[昨日] LT', + lastWeek : '[前週]dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s後', + past : '%s前', + s : '数秒', + m : '1分', + mm : '%d分', + h : '1時間', + hh : '%d時間', + d : '1日', + dd : '%d日', + M : '1ヶ月', + MM : '%dヶ月', + y : '1年', + yy : '%d年' + } + }); +})); +// moment.js locale configuration +// locale : Georgian (ka) +// author : Irakli Janiashvili : https://github.com/irakli-janiashvili + +(function (factory) { + factory(moment); +}(function (moment) { + function monthsCaseReplace(m, format) { + var months = { + 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), + 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_') + }, + + nounCase = (/D[oD] *MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + + return months[nounCase][m.month()]; + } + + function weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), + 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_') + }, + + nounCase = (/(წინა|შემდეგ)/).test(format) ? + 'accusative' : + 'nominative'; + + return weekdays[nounCase][m.day()]; + } + + return moment.defineLocale('ka', { + months : monthsCaseReplace, + monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays : weekdaysCaseReplace, + weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat : { + LT : 'h:mm A', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[დღეს] LT[-ზე]', + nextDay : '[ხვალ] LT[-ზე]', + lastDay : '[გუშინ] LT[-ზე]', + nextWeek : '[შემდეგ] dddd LT[-ზე]', + lastWeek : '[წინა] dddd LT-ზე', + sameElse : 'L' + }, + relativeTime : { + future : function (s) { + return (/(წამი|წუთი|საათი|წელი)/).test(s) ? + s.replace(/ი$/, 'ში') : + s + 'ში'; + }, + past : function (s) { + if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if ((/წელი/).test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + }, + s : 'რამდენიმე წამი', + m : 'წუთი', + mm : '%d წუთი', + h : 'საათი', + hh : '%d საათი', + d : 'დღე', + dd : '%d დღე', + M : 'თვე', + MM : '%d თვე', + y : 'წელი', + yy : '%d წელი' + }, + ordinal : function (number) { + if (number === 0) { + return number; + } + + if (number === 1) { + return number + '-ლი'; + } + + if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) { + return 'მე-' + number; + } + + return number + '-ე'; + }, + week : { + dow : 1, + doy : 7 + } + }); +})); +// moment.js locale configuration +// locale : khmer (km) +// author : Kruy Vanna : https://github.com/kruyvanna + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY LT', + LLLL: 'dddd, D MMMM YYYY LT' + }, + calendar: { + sameDay: '[ថ្ងៃនៈ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L' + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ' + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : korean (ko) +// +// authors +// +// - Kyungwook, Park : https://github.com/kyungw00k +// - Jeeeyul Lee <jeeeyul@gmail.com> +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('ko', { + months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort : '일_월_화_수_목_금_토'.split('_'), + weekdaysMin : '일_월_화_수_목_금_토'.split('_'), + longDateFormat : { + LT : 'A h시 m분', + L : 'YYYY.MM.DD', + LL : 'YYYY년 MMMM D일', + LLL : 'YYYY년 MMMM D일 LT', + LLLL : 'YYYY년 MMMM D일 dddd LT' + }, + meridiem : function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, + calendar : { + sameDay : '오늘 LT', + nextDay : '내일 LT', + nextWeek : 'dddd LT', + lastDay : '어제 LT', + lastWeek : '지난주 dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s 후', + past : '%s 전', + s : '몇초', + ss : '%d초', + m : '일분', + mm : '%d분', + h : '한시간', + hh : '%d시간', + d : '하루', + dd : '%d일', + M : '한달', + MM : '%d달', + y : '일년', + yy : '%d년' + }, + ordinal : '%d일', + meridiemParse : /(오전|오후)/, + isPM : function (token) { + return token === '오후'; + } + }); +})); +// moment.js locale configuration +// locale : Luxembourgish (lb) +// author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz + +// Note: Luxembourgish has a very particular phonological rule ('Eifeler Regel') that causes the +// deletion of the final 'n' in certain contexts. That's what the 'eifelerRegelAppliesToWeekday' +// and 'eifelerRegelAppliesToNumber' methods are meant for + +(function (factory) { + factory(moment); +}(function (moment) { + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 'm': ['eng Minutt', 'enger Minutt'], + 'h': ['eng Stonn', 'enger Stonn'], + 'd': ['een Dag', 'engem Dag'], + 'M': ['ee Mount', 'engem Mount'], + 'y': ['ee Joer', 'engem Joer'] + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + return moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), + weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'H:mm [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY LT', + LLLL: 'dddd, D. MMMM YYYY LT' + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + } + }, + relativeTime : { + future : processFutureTime, + past : processPastTime, + s : 'e puer Sekonnen', + m : processRelativeTime, + mm : '%d Minutten', + h : processRelativeTime, + hh : '%d Stonnen', + d : processRelativeTime, + dd : '%d Deeg', + M : processRelativeTime, + MM : '%d Méint', + y : processRelativeTime, + yy : '%d Joer' + }, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Lithuanian (lt) +// author : Mindaugas Mozūras : https://github.com/mmozuras + +(function (factory) { + factory(moment); +}(function (moment) { + var units = { + 'm' : 'minutė_minutės_minutę', + 'mm': 'minutės_minučių_minutes', + 'h' : 'valanda_valandos_valandą', + 'hh': 'valandos_valandų_valandas', + 'd' : 'diena_dienos_dieną', + 'dd': 'dienos_dienų_dienas', + 'M' : 'mėnuo_mėnesio_mėnesį', + 'MM': 'mėnesiai_mėnesių_mėnesius', + 'y' : 'metai_metų_metus', + 'yy': 'metai_metų_metus' + }, + weekDays = 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'); + + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]); + } + + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + + function forms(key) { + return units[key].split('_'); + } + + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return result + translateSingular(number, withoutSuffix, key[0], isFuture); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + + function relativeWeekDay(moment, format) { + var nominative = format.indexOf('dddd HH:mm') === -1, + weekDay = weekDays[moment.day()]; + + return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + 'į'; + } + + return moment.defineLocale('lt', { + months : 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'), + monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays : relativeWeekDay, + weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'YYYY-MM-DD', + LL : 'YYYY [m.] MMMM D [d.]', + LLL : 'YYYY [m.] MMMM D [d.], LT [val.]', + LLLL : 'YYYY [m.] MMMM D [d.], dddd, LT [val.]', + l : 'YYYY-MM-DD', + ll : 'YYYY [m.] MMMM D [d.]', + lll : 'YYYY [m.] MMMM D [d.], LT [val.]', + llll : 'YYYY [m.] MMMM D [d.], ddd, LT [val.]' + }, + calendar : { + sameDay : '[Šiandien] LT', + nextDay : '[Rytoj] LT', + nextWeek : 'dddd LT', + lastDay : '[Vakar] LT', + lastWeek : '[Praėjusį] dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : 'po %s', + past : 'prieš %s', + s : translateSeconds, + m : translateSingular, + mm : translate, + h : translateSingular, + hh : translate, + d : translateSingular, + dd : translate, + M : translateSingular, + MM : translate, + y : translateSingular, + yy : translate + }, + ordinal : function (number) { + return number + '-oji'; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : latvian (lv) +// author : Kristaps Karlsons : https://github.com/skakri + +(function (factory) { + factory(moment); +}(function (moment) { + var units = { + 'mm': 'minūti_minūtes_minūte_minūtes', + 'hh': 'stundu_stundas_stunda_stundas', + 'dd': 'dienu_dienas_diena_dienas', + 'MM': 'mēnesi_mēnešus_mēnesis_mēneši', + 'yy': 'gadu_gadus_gads_gadi' + }; + + function format(word, number, withoutSuffix) { + var forms = word.split('_'); + if (withoutSuffix) { + return number % 10 === 1 && number !== 11 ? forms[2] : forms[3]; + } else { + return number % 10 === 1 && number !== 11 ? forms[0] : forms[1]; + } + } + + function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); + } + + return moment.defineLocale('lv', { + months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'), + weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'YYYY. [gada] D. MMMM', + LLL : 'YYYY. [gada] D. MMMM, LT', + LLLL : 'YYYY. [gada] D. MMMM, dddd, LT' + }, + calendar : { + sameDay : '[Šodien pulksten] LT', + nextDay : '[Rīt pulksten] LT', + nextWeek : 'dddd [pulksten] LT', + lastDay : '[Vakar pulksten] LT', + lastWeek : '[Pagājušā] dddd [pulksten] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s vēlāk', + past : '%s agrāk', + s : 'dažas sekundes', + m : 'minūti', + mm : relativeTimeWithPlural, + h : 'stundu', + hh : relativeTimeWithPlural, + d : 'dienu', + dd : relativeTimeWithPlural, + M : 'mēnesi', + MM : relativeTimeWithPlural, + y : 'gadu', + yy : relativeTimeWithPlural + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : macedonian (mk) +// author : Borislav Mickov : https://github.com/B0k0 + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('mk', { + months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), + monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), + weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'D.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[Денес во] LT', + nextDay : '[Утре во] LT', + nextWeek : 'dddd [во] LT', + lastDay : '[Вчера во] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Во изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Во изминатиот] dddd [во] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'после %s', + past : 'пред %s', + s : 'неколку секунди', + m : 'минута', + mm : '%d минути', + h : 'час', + hh : '%d часа', + d : 'ден', + dd : '%d дена', + M : 'месец', + MM : '%d месеци', + y : 'година', + yy : '%d години' + }, + ordinal : function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : malayalam (ml) +// author : Floyd Pink : https://github.com/floydpink + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('ml', { + months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), + monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), + weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), + weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat : { + LT : 'A h:mm -നു', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, LT', + LLLL : 'dddd, D MMMM YYYY, LT' + }, + calendar : { + sameDay : '[ഇന്ന്] LT', + nextDay : '[നാളെ] LT', + nextWeek : 'dddd, LT', + lastDay : '[ഇന്നലെ] LT', + lastWeek : '[കഴിഞ്ഞ] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s കഴിഞ്ഞ്', + past : '%s മുൻപ്', + s : 'അൽപ നിമിഷങ്ങൾ', + m : 'ഒരു മിനിറ്റ്', + mm : '%d മിനിറ്റ്', + h : 'ഒരു മണിക്കൂർ', + hh : '%d മണിക്കൂർ', + d : 'ഒരു ദിവസം', + dd : '%d ദിവസം', + M : 'ഒരു മാസം', + MM : '%d മാസം', + y : 'ഒരു വർഷം', + yy : '%d വർഷം' + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + } + }); +})); +// moment.js locale configuration +// locale : Marathi (mr) +// author : Harshad Kale : https://github.com/kalehv + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '१', + '2': '२', + '3': '३', + '4': '४', + '5': '५', + '6': '६', + '7': '७', + '8': '८', + '9': '९', + '0': '०' + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0' + }; + + return moment.defineLocale('mr', { + months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), + monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), + weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat : { + LT : 'A h:mm वाजता', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, LT', + LLLL : 'dddd, D MMMM YYYY, LT' + }, + calendar : { + sameDay : '[आज] LT', + nextDay : '[उद्या] LT', + nextWeek : 'dddd, LT', + lastDay : '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s नंतर', + past : '%s पूर्वी', + s : 'सेकंद', + m: 'एक मिनिट', + mm: '%d मिनिटे', + h : 'एक तास', + hh : '%d तास', + d : 'एक दिवस', + dd : '%d दिवस', + M : 'एक महिना', + MM : '%d महिने', + y : 'एक वर्ष', + yy : '%d वर्षे' + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiem: function (hour, minute, isLower) + { + if (hour < 4) { + return 'रात्री'; + } else if (hour < 10) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Bahasa Malaysia (ms-MY) +// author : Weldan Jamili : https://github.com/weldan + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('ms-my', { + months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), + monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat : { + LT : 'HH.mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY [pukul] LT', + LLLL : 'dddd, D MMMM YYYY [pukul] LT' + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar : { + sameDay : '[Hari ini pukul] LT', + nextDay : '[Esok pukul] LT', + nextWeek : 'dddd [pukul] LT', + lastDay : '[Kelmarin pukul] LT', + lastWeek : 'dddd [lepas pukul] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'dalam %s', + past : '%s yang lepas', + s : 'beberapa saat', + m : 'seminit', + mm : '%d minit', + h : 'sejam', + hh : '%d jam', + d : 'sehari', + dd : '%d hari', + M : 'sebulan', + MM : '%d bulan', + y : 'setahun', + yy : '%d tahun' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Burmese (my) +// author : Squar team, mysquar.com + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '၁', + '2': '၂', + '3': '၃', + '4': '၄', + '5': '၅', + '6': '၆', + '7': '၇', + '8': '၈', + '9': '၉', + '0': '၀' + }, numberMap = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0' + }; + return moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), + weekdaysShort: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY LT', + LLLL: 'dddd D MMMM YYYY LT' + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L' + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်' + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : norwegian bokmål (nb) +// authors : Espen Hovlandsdal : https://github.com/rexxars +// Sigurd Gartmann : https://github.com/sigurdga + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('nb', { + months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort : 'søn_man_tirs_ons_tors_fre_lør'.split('_'), + weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat : { + LT : 'H.mm', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY [kl.] LT', + LLLL : 'dddd D. MMMM YYYY [kl.] LT' + }, + calendar : { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'om %s', + past : 'for %s siden', + s : 'noen sekunder', + m : 'ett minutt', + mm : '%d minutter', + h : 'en time', + hh : '%d timer', + d : 'en dag', + dd : '%d dager', + M : 'en måned', + MM : '%d måneder', + y : 'ett år', + yy : '%d år' + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : nepali/nepalese +// author : suvash : https://github.com/suvash + +(function (factory) { + factory(moment); +}(function (moment) { + var symbolMap = { + '1': '१', + '2': '२', + '3': '३', + '4': '४', + '5': '५', + '6': '६', + '7': '७', + '8': '८', + '9': '९', + '0': '०' + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0' + }; + + return moment.defineLocale('ne', { + months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), + monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), + weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), + weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split('_'), + longDateFormat : { + LT : 'Aको h:mm बजे', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, LT', + LLLL : 'dddd, D MMMM YYYY, LT' + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 3) { + return 'राती'; + } else if (hour < 10) { + return 'बिहान'; + } else if (hour < 15) { + return 'दिउँसो'; + } else if (hour < 18) { + return 'बेलुका'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राती'; + } + }, + calendar : { + sameDay : '[आज] LT', + nextDay : '[भोली] LT', + nextWeek : '[आउँदो] dddd[,] LT', + lastDay : '[हिजो] LT', + lastWeek : '[गएको] dddd[,] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%sमा', + past : '%s अगाडी', + s : 'केही समय', + m : 'एक मिनेट', + mm : '%d मिनेट', + h : 'एक घण्टा', + hh : '%d घण्टा', + d : 'एक दिन', + dd : '%d दिन', + M : 'एक महिना', + MM : '%d महिना', + y : 'एक बर्ष', + yy : '%d बर्ष' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : dutch (nl) +// author : Joris Röling : https://github.com/jjupiter + +(function (factory) { + factory(moment); +}(function (moment) { + var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); + + return moment.defineLocale('nl', { + months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), + monthsShort : function (m, format) { + if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD-MM-YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'over %s', + past : '%s geleden', + s : 'een paar seconden', + m : 'één minuut', + mm : '%d minuten', + h : 'één uur', + hh : '%d uur', + d : 'één dag', + dd : '%d dagen', + M : 'één maand', + MM : '%d maanden', + y : 'één jaar', + yy : '%d jaar' + }, + ordinal : function (number) { + return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : norwegian nynorsk (nn) +// author : https://github.com/mechuwind + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('nn', { + months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'), + weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'om %s', + past : 'for %s sidan', + s : 'nokre sekund', + m : 'eit minutt', + mm : '%d minutt', + h : 'ein time', + hh : '%d timar', + d : 'ein dag', + dd : '%d dagar', + M : 'ein månad', + MM : '%d månader', + y : 'eit år', + yy : '%d år' + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : polish (pl) +// author : Rafal Hirsz : https://github.com/evoL + +(function (factory) { + factory(moment); +}(function (moment) { + var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'), + monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'); + + function plural(n) { + return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1); + } + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } + } + + return moment.defineLocale('pl', { + months : function (momentToFormat, format) { + if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'), + weekdaysMin : 'N_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: '[W] dddd [o] LT', + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'za %s', + past : '%s temu', + s : 'kilka sekund', + m : translate, + mm : translate, + h : translate, + hh : translate, + d : '1 dzień', + dd : '%d dni', + M : 'miesiąc', + MM : translate, + y : 'rok', + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : brazilian portuguese (pt-br) +// author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('pt-br', { + months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'), + monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'), + weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D [de] MMMM [de] YYYY', + LLL : 'D [de] MMMM [de] YYYY [às] LT', + LLLL : 'dddd, D [de] MMMM [de] YYYY [às] LT' + }, + calendar : { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return (this.day() === 0 || this.day() === 6) ? + '[Último] dddd [às] LT' : // Saturday + Sunday + '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L' + }, + relativeTime : { + future : 'em %s', + past : '%s atrás', + s : 'segundos', + m : 'um minuto', + mm : '%d minutos', + h : 'uma hora', + hh : '%d horas', + d : 'um dia', + dd : '%d dias', + M : 'um mês', + MM : '%d meses', + y : 'um ano', + yy : '%d anos' + }, + ordinal : '%dº' + }); +})); +// moment.js locale configuration +// locale : portuguese (pt) +// author : Jefferson : https://github.com/jalex79 + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('pt', { + months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'), + monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'), + weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D [de] MMMM [de] YYYY', + LLL : 'D [de] MMMM [de] YYYY LT', + LLLL : 'dddd, D [de] MMMM [de] YYYY LT' + }, + calendar : { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return (this.day() === 0 || this.day() === 6) ? + '[Último] dddd [às] LT' : // Saturday + Sunday + '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L' + }, + relativeTime : { + future : 'em %s', + past : 'há %s', + s : 'segundos', + m : 'um minuto', + mm : '%d minutos', + h : 'uma hora', + hh : '%d horas', + d : 'um dia', + dd : '%d dias', + M : 'um mês', + MM : '%d meses', + y : 'um ano', + yy : '%d anos' + }, + ordinal : '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : romanian (ro) +// author : Vlad Gurdiga : https://github.com/gurdiga +// author : Valentin Agachi : https://github.com/avaly + +(function (factory) { + factory(moment); +}(function (moment) { + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': 'minute', + 'hh': 'ore', + 'dd': 'zile', + 'MM': 'luni', + 'yy': 'ani' + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + + return number + separator + format[key]; + } + + return moment.defineLocale('ro', { + months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), + monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), + weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY H:mm', + LLLL : 'dddd, D MMMM YYYY H:mm' + }, + calendar : { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'peste %s', + past : '%s în urmă', + s : 'câteva secunde', + m : 'un minut', + mm : relativeTimeWithPlural, + h : 'o oră', + hh : relativeTimeWithPlural, + d : 'o zi', + dd : relativeTimeWithPlural, + M : 'o lună', + MM : relativeTimeWithPlural, + y : 'un an', + yy : relativeTimeWithPlural + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : russian (ru) +// author : Viktorminator : https://github.com/Viktorminator +// Author : Menelion Elensúle : https://github.com/Oire + +(function (factory) { + factory(moment); +}(function (moment) { + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); + } + + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + 'hh': 'час_часа_часов', + 'dd': 'день_дня_дней', + 'MM': 'месяц_месяца_месяцев', + 'yy': 'год_года_лет' + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } + else { + return number + ' ' + plural(format[key], +number); + } + } + + function monthsCaseReplace(m, format) { + var months = { + 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), + 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_') + }, + + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + + return months[nounCase][m.month()]; + } + + function monthsShortCaseReplace(m, format) { + var monthsShort = { + 'nominative': 'янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), + 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_') + }, + + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + + return monthsShort[nounCase][m.month()]; + } + + function weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), + 'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_') + }, + + nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/).test(format) ? + 'accusative' : + 'nominative'; + + return weekdays[nounCase][m.day()]; + } + + return moment.defineLocale('ru', { + months : monthsCaseReplace, + monthsShort : monthsShortCaseReplace, + weekdays : weekdaysCaseReplace, + weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i], + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY г.', + LLL : 'D MMMM YYYY г., LT', + LLLL : 'dddd, D MMMM YYYY г., LT' + }, + calendar : { + sameDay: '[Сегодня в] LT', + nextDay: '[Завтра в] LT', + lastDay: '[Вчера в] LT', + nextWeek: function () { + return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return '[В прошлое] dddd [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd [в] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'через %s', + past : '%s назад', + s : 'несколько секунд', + m : relativeTimeWithPlural, + mm : relativeTimeWithPlural, + h : 'час', + hh : relativeTimeWithPlural, + d : 'день', + dd : relativeTimeWithPlural, + M : 'месяц', + MM : relativeTimeWithPlural, + y : 'год', + yy : relativeTimeWithPlural + }, + + meridiemParse: /ночи|утра|дня|вечера/i, + isPM : function (input) { + return /^(дня|вечера)$/.test(input); + }, + + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : slovak (sk) +// author : Martin Minka : https://github.com/k2s +// based on work of petrbela : https://github.com/petrbela + +(function (factory) { + factory(moment); +}(function (moment) { + var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'), + monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + + function plural(n) { + return (n > 1) && (n < 5); + } + + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami'; + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou'); + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + break; + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + break; + case 'd': // a day / in a day / a day ago + return (withoutSuffix || isFuture) ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + break; + case 'M': // a month / in a month / a month ago + return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + break; + case 'y': // a year / in a year / a year ago + return (withoutSuffix || isFuture) ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + break; + } + } + + return moment.defineLocale('sk', { + months : months, + monthsShort : monthsShort, + monthsParse : (function (months, monthsShort) { + var i, _monthsParse = []; + for (i = 0; i < 12; i++) { + // use custom parser to solve problem with July (červenec) + _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); + } + return _monthsParse; + }(months, monthsShort)), + weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat : { + LT: 'H:mm', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd D. MMMM YYYY LT' + }, + calendar : { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'za %s', + past : 'pred %s', + s : translate, + m : translate, + mm : translate, + h : translate, + hh : translate, + d : translate, + dd : translate, + M : translate, + MM : translate, + y : translate, + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : slovenian (sl) +// author : Robert Sedovšek : https://github.com/sedovsek + +(function (factory) { + factory(moment); +}(function (moment) { + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2) { + result += 'minuti'; + } else if (number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minut'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += 'ura'; + } else if (number === 2) { + result += 'uri'; + } else if (number === 3 || number === 4) { + result += 'ure'; + } else { + result += 'ur'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dni'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mesec'; + } else if (number === 2) { + result += 'meseca'; + } else if (number === 3 || number === 4) { + result += 'mesece'; + } else { + result += 'mesecev'; + } + return result; + case 'yy': + if (number === 1) { + result += 'leto'; + } else if (number === 2) { + result += 'leti'; + } else if (number === 3 || number === 4) { + result += 'leta'; + } else { + result += 'let'; + } + return result; + } + } + + return moment.defineLocale('sl', { + months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'), + monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'), + weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'), + longDateFormat : { + LT : 'H:mm', + L : 'DD. MM. YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY LT', + LLLL : 'dddd, D. MMMM YYYY LT' + }, + calendar : { + sameDay : '[danes ob] LT', + nextDay : '[jutri ob] LT', + + nextWeek : function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay : '[včeraj ob] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[prejšnja] dddd [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'čez %s', + past : '%s nazaj', + s : 'nekaj sekund', + m : translate, + mm : translate, + h : translate, + hh : translate, + d : 'en dan', + dd : translate, + M : 'en mesec', + MM : translate, + y : 'eno leto', + yy : translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Albanian (sq) +// author : Flakërim Ismani : https://github.com/flakerimi +// author: Menelion Elensúle: https://github.com/Oire (tests) +// author : Oerd Cukalla : https://github.com/oerd (fixes) + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('sq', { + months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'), + monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'), + weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'), + meridiem : function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[Sot në] LT', + nextDay : '[Nesër në] LT', + nextWeek : 'dddd [në] LT', + lastDay : '[Dje në] LT', + lastWeek : 'dddd [e kaluar në] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'në %s', + past : '%s më parë', + s : 'disa sekonda', + m : 'një minutë', + mm : '%d minuta', + h : 'një orë', + hh : '%d orë', + d : 'një ditë', + dd : '%d ditë', + M : 'një muaj', + MM : '%d muaj', + y : 'një vit', + yy : '%d vite' + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Serbian-cyrillic (sr-cyrl) +// author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j + +(function (factory) { + factory(moment); +}(function (moment) { + var translator = { + words: { //Different grammatical cases + m: ['један минут', 'једне минуте'], + mm: ['минут', 'минуте', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + dd: ['дан', 'дана', 'дана'], + MM: ['месец', 'месеца', 'месеци'], + yy: ['година', 'године', 'година'] + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return number + ' ' + translator.correctGrammaticalCase(number, wordKey); + } + } + }; + + return moment.defineLocale('sr-cyrl', { + months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'], + monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'], + weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'], + weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'], + weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'], + longDateFormat: { + LT: 'H:mm', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY LT', + LLLL: 'dddd, D. MMMM YYYY LT' + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay : '[јуче у] LT', + lastWeek : function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT' + ]; + return lastWeekDays[this.day()]; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'за %s', + past : 'пре %s', + s : 'неколико секунди', + m : translator.translate, + mm : translator.translate, + h : translator.translate, + hh : translator.translate, + d : 'дан', + dd : translator.translate, + M : 'месец', + MM : translator.translate, + y : 'годину', + yy : translator.translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Serbian-latin (sr) +// author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j + +(function (factory) { + factory(moment); +}(function (moment) { + var translator = { + words: { //Different grammatical cases + m: ['jedan minut', 'jedne minute'], + mm: ['minut', 'minute', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mesec', 'meseca', 'meseci'], + yy: ['godina', 'godine', 'godina'] + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return number + ' ' + translator.correctGrammaticalCase(number, wordKey); + } + } + }; + + return moment.defineLocale('sr', { + months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'], + weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'], + weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'], + weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'], + longDateFormat: { + LT: 'H:mm', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY LT', + LLLL: 'dddd, D. MMMM YYYY LT' + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay : '[juče u] LT', + lastWeek : function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT' + ]; + return lastWeekDays[this.day()]; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'za %s', + past : 'pre %s', + s : 'nekoliko sekundi', + m : translator.translate, + mm : translator.translate, + h : translator.translate, + hh : translator.translate, + d : 'dan', + dd : translator.translate, + M : 'mesec', + MM : translator.translate, + y : 'godinu', + yy : translator.translate + }, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : swedish (sv) +// author : Jens Alm : https://github.com/ulmus + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('sv', { + months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'), + monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'YYYY-MM-DD', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: 'dddd LT', + lastWeek: '[Förra] dddd[en] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'om %s', + past : 'för %s sedan', + s : 'några sekunder', + m : 'en minut', + mm : '%d minuter', + h : 'en timme', + hh : '%d timmar', + d : 'en dag', + dd : '%d dagar', + M : 'en månad', + MM : '%d månader', + y : 'ett år', + yy : '%d år' + }, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'e' : + (b === 1) ? 'a' : + (b === 2) ? 'a' : + (b === 3) ? 'e' : 'e'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : tamil (ta) +// author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +(function (factory) { + factory(moment); +}(function (moment) { + /*var symbolMap = { + '1': '௧', + '2': '௨', + '3': '௩', + '4': '௪', + '5': '௫', + '6': '௬', + '7': '௭', + '8': '௮', + '9': '௯', + '0': '௦' + }, + numberMap = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0' + }; */ + + return moment.defineLocale('ta', { + months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), + monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), + weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), + weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), + weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, LT', + LLLL : 'dddd, D MMMM YYYY, LT' + }, + calendar : { + sameDay : '[இன்று] LT', + nextDay : '[நாளை] LT', + nextWeek : 'dddd, LT', + lastDay : '[நேற்று] LT', + lastWeek : '[கடந்த வாரம்] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s இல்', + past : '%s முன்', + s : 'ஒரு சில விநாடிகள்', + m : 'ஒரு நிமிடம்', + mm : '%d நிமிடங்கள்', + h : 'ஒரு மணி நேரம்', + hh : '%d மணி நேரம்', + d : 'ஒரு நாள்', + dd : '%d நாட்கள்', + M : 'ஒரு மாதம்', + MM : '%d மாதங்கள்', + y : 'ஒரு வருடம்', + yy : '%d ஆண்டுகள்' + }, +/* preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + },*/ + ordinal : function (number) { + return number + 'வது'; + }, + + + // refer http://ta.wikipedia.org/s/1er1 + + meridiem : function (hour, minute, isLower) { + if (hour >= 6 && hour <= 10) { + return ' காலை'; + } else if (hour >= 10 && hour <= 14) { + return ' நண்பகல்'; + } else if (hour >= 14 && hour <= 18) { + return ' எற்பாடு'; + } else if (hour >= 18 && hour <= 20) { + return ' மாலை'; + } else if (hour >= 20 && hour <= 24) { + return ' இரவு'; + } else if (hour >= 0 && hour <= 6) { + return ' வைகறை'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : thai (th) +// author : Kridsada Thanabulpong : https://github.com/sirn + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('th', { + months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), + monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'), + weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + longDateFormat : { + LT : 'H นาฬิกา m นาที', + L : 'YYYY/MM/DD', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY เวลา LT', + LLLL : 'วันddddที่ D MMMM YYYY เวลา LT' + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar : { + sameDay : '[วันนี้ เวลา] LT', + nextDay : '[พรุ่งนี้ เวลา] LT', + nextWeek : 'dddd[หน้า เวลา] LT', + lastDay : '[เมื่อวานนี้ เวลา] LT', + lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'อีก %s', + past : '%sที่แล้ว', + s : 'ไม่กี่วินาที', + m : '1 นาที', + mm : '%d นาที', + h : '1 ชั่วโมง', + hh : '%d ชั่วโมง', + d : '1 วัน', + dd : '%d วัน', + M : '1 เดือน', + MM : '%d เดือน', + y : '1 ปี', + yy : '%d ปี' + } + }); +})); +// moment.js locale configuration +// locale : Tagalog/Filipino (tl-ph) +// author : Dan Hagman + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('tl-ph', { + months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), + monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), + weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'MM/D/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY LT', + LLLL : 'dddd, MMMM DD, YYYY LT' + }, + calendar : { + sameDay: '[Ngayon sa] LT', + nextDay: '[Bukas sa] LT', + nextWeek: 'dddd [sa] LT', + lastDay: '[Kahapon sa] LT', + lastWeek: 'dddd [huling linggo] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'sa loob ng %s', + past : '%s ang nakalipas', + s : 'ilang segundo', + m : 'isang minuto', + mm : '%d minuto', + h : 'isang oras', + hh : '%d oras', + d : 'isang araw', + dd : '%d araw', + M : 'isang buwan', + MM : '%d buwan', + y : 'isang taon', + yy : '%d taon' + }, + ordinal : function (number) { + return number; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : turkish (tr) +// authors : Erhan Gundogan : https://github.com/erhangundogan, +// Burak Yiğit Kaya: https://github.com/BYK + +(function (factory) { + factory(moment); +}(function (moment) { + var suffixes = { + 1: '\'inci', + 5: '\'inci', + 8: '\'inci', + 70: '\'inci', + 80: '\'inci', + + 2: '\'nci', + 7: '\'nci', + 20: '\'nci', + 50: '\'nci', + + 3: '\'üncü', + 4: '\'üncü', + 100: '\'üncü', + + 6: '\'ncı', + + 9: '\'uncu', + 10: '\'uncu', + 30: '\'uncu', + + 60: '\'ıncı', + 90: '\'ıncı' + }; + + return moment.defineLocale('tr', { + months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'), + monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'), + weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'), + weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd, D MMMM YYYY LT' + }, + calendar : { + sameDay : '[bugün saat] LT', + nextDay : '[yarın saat] LT', + nextWeek : '[haftaya] dddd [saat] LT', + lastDay : '[dün] LT', + lastWeek : '[geçen hafta] dddd [saat] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s sonra', + past : '%s önce', + s : 'birkaç saniye', + m : 'bir dakika', + mm : '%d dakika', + h : 'bir saat', + hh : '%d saat', + d : 'bir gün', + dd : '%d gün', + M : 'bir ay', + MM : '%d ay', + y : 'bir yıl', + yy : '%d yıl' + }, + ordinal : function (number) { + if (number === 0) { // special case for zero + return number + '\'ıncı'; + } + var a = number % 10, + b = number % 100 - a, + c = number >= 100 ? 100 : null; + + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn) +// author : Abdel Said : https://github.com/abdelsaid + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('tzm-latn', { + months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), + monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), + weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'dadkh s yan %s', + past : 'yan %s', + s : 'imik', + m : 'minuḍ', + mm : '%d minuḍ', + h : 'saɛa', + hh : '%d tassaɛin', + d : 'ass', + dd : '%d ossan', + M : 'ayowr', + MM : '%d iyyirn', + y : 'asgas', + yy : '%d isgasn' + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : Morocco Central Atlas Tamaziɣt (tzm) +// author : Abdel Said : https://github.com/abdelsaid + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('tzm', { + months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), + monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), + weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'dddd D MMMM YYYY LT' + }, + calendar : { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past : 'ⵢⴰⵏ %s', + s : 'ⵉⵎⵉⴽ', + m : 'ⵎⵉⵏⵓⴺ', + mm : '%d ⵎⵉⵏⵓⴺ', + h : 'ⵙⴰⵄⴰ', + hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d : 'ⴰⵙⵙ', + dd : '%d oⵙⵙⴰⵏ', + M : 'ⴰⵢoⵓⵔ', + MM : '%d ⵉⵢⵢⵉⵔⵏ', + y : 'ⴰⵙⴳⴰⵙ', + yy : '%d ⵉⵙⴳⴰⵙⵏ' + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : ukrainian (uk) +// author : zemlanin : https://github.com/zemlanin +// Author : Menelion Elensúle : https://github.com/Oire + +(function (factory) { + factory(moment); +}(function (moment) { + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); + } + + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': 'хвилина_хвилини_хвилин', + 'hh': 'година_години_годин', + 'dd': 'день_дні_днів', + 'MM': 'місяць_місяці_місяців', + 'yy': 'рік_роки_років' + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } + else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } + else { + return number + ' ' + plural(format[key], +number); + } + } + + function monthsCaseReplace(m, format) { + var months = { + 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'), + 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') + }, + + nounCase = (/D[oD]? *MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + + return months[nounCase][m.month()]; + } + + function weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), + 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), + 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') + }, + + nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? + 'accusative' : + ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? + 'genitive' : + 'nominative'); + + return weekdays[nounCase][m.day()]; + } + + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } + + return moment.defineLocale('uk', { + months : monthsCaseReplace, + monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), + weekdays : weekdaysCaseReplace, + weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY р.', + LLL : 'D MMMM YYYY р., LT', + LLLL : 'dddd, D MMMM YYYY р., LT' + }, + calendar : { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'за %s', + past : '%s тому', + s : 'декілька секунд', + m : relativeTimeWithPlural, + mm : relativeTimeWithPlural, + h : 'годину', + hh : relativeTimeWithPlural, + d : 'день', + dd : relativeTimeWithPlural, + M : 'місяць', + MM : relativeTimeWithPlural, + y : 'рік', + yy : relativeTimeWithPlural + }, + + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : uzbek (uz) +// author : Sardor Muminov : https://github.com/muminoff + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('uz', { + months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), + monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY LT', + LLLL : 'D MMMM YYYY, dddd LT' + }, + calendar : { + sameDay : '[Бугун соат] LT [да]', + nextDay : '[Эртага] LT [да]', + nextWeek : 'dddd [куни соат] LT [да]', + lastDay : '[Кеча соат] LT [да]', + lastWeek : '[Утган] dddd [куни соат] LT [да]', + sameElse : 'L' + }, + relativeTime : { + future : 'Якин %s ичида', + past : 'Бир неча %s олдин', + s : 'фурсат', + m : 'бир дакика', + mm : '%d дакика', + h : 'бир соат', + hh : '%d соат', + d : 'бир кун', + dd : '%d кун', + M : 'бир ой', + MM : '%d ой', + y : 'бир йил', + yy : '%d йил' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : vietnamese (vi) +// author : Bang Nguyen : https://github.com/bangnk + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('vi', { + months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), + monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), + weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), + weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + longDateFormat : { + LT : 'HH:mm', + L : 'DD/MM/YYYY', + LL : 'D MMMM [năm] YYYY', + LLL : 'D MMMM [năm] YYYY LT', + LLLL : 'dddd, D MMMM [năm] YYYY LT', + l : 'DD/M/YYYY', + ll : 'D MMM YYYY', + lll : 'D MMM YYYY LT', + llll : 'ddd, D MMM YYYY LT' + }, + calendar : { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần rồi lúc] LT', + sameElse: 'L' + }, + relativeTime : { + future : '%s tới', + past : '%s trước', + s : 'vài giây', + m : 'một phút', + mm : '%d phút', + h : 'một giờ', + hh : '%d giờ', + d : 'một ngày', + dd : '%d ngày', + M : 'một tháng', + MM : '%d tháng', + y : 'một năm', + yy : '%d năm' + }, + ordinal : function (number) { + return number; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : chinese (zh-cn) +// author : suupic : https://github.com/suupic +// author : Zeno Zeng : https://github.com/zenozeng + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('zh-cn', { + months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin : '日_一_二_三_四_五_六'.split('_'), + longDateFormat : { + LT : 'Ah点mm', + L : 'YYYY-MM-DD', + LL : 'YYYY年MMMD日', + LLL : 'YYYY年MMMD日LT', + LLLL : 'YYYY年MMMD日ddddLT', + l : 'YYYY-MM-DD', + ll : 'YYYY年MMMD日', + lll : 'YYYY年MMMD日LT', + llll : 'YYYY年MMMD日ddddLT' + }, + meridiem : function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar : { + sameDay : function () { + return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT'; + }, + nextDay : function () { + return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT'; + }, + lastDay : function () { + return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT'; + }, + nextWeek : function () { + var startOfWeek, prefix; + startOfWeek = moment().startOf('week'); + prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]'; + return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; + }, + lastWeek : function () { + var startOfWeek, prefix; + startOfWeek = moment().startOf('week'); + prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]'; + return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; + }, + sameElse : 'LL' + }, + ordinal : function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime : { + future : '%s内', + past : '%s前', + s : '几秒', + m : '1分钟', + mm : '%d分钟', + h : '1小时', + hh : '%d小时', + d : '1天', + dd : '%d天', + M : '1个月', + MM : '%d个月', + y : '1年', + yy : '%d年' + }, + week : { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); +})); +// moment.js locale configuration +// locale : traditional chinese (zh-tw) +// author : Ben : https://github.com/ben-lin + +(function (factory) { + factory(moment); +}(function (moment) { + return moment.defineLocale('zh-tw', { + months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin : '日_一_二_三_四_五_六'.split('_'), + longDateFormat : { + LT : 'Ah點mm', + L : 'YYYY年MMMD日', + LL : 'YYYY年MMMD日', + LLL : 'YYYY年MMMD日LT', + LLLL : 'YYYY年MMMD日ddddLT', + l : 'YYYY年MMMD日', + ll : 'YYYY年MMMD日', + lll : 'YYYY年MMMD日LT', + llll : 'YYYY年MMMD日ddddLT' + }, + meridiem : function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar : { + sameDay : '[今天]LT', + nextDay : '[明天]LT', + nextWeek : '[下]ddddLT', + lastDay : '[昨天]LT', + lastWeek : '[上]ddddLT', + sameElse : 'L' + }, + ordinal : function (number, period) { + switch (period) { + case 'd' : + case 'D' : + case 'DDD' : + return number + '日'; + case 'M' : + return number + '月'; + case 'w' : + case 'W' : + return number + '週'; + default : + return number; + } + }, + relativeTime : { + future : '%s內', + past : '%s前', + s : '幾秒', + m : '一分鐘', + mm : '%d分鐘', + h : '一小時', + hh : '%d小時', + d : '一天', + dd : '%d天', + M : '一個月', + MM : '%d個月', + y : '一年', + yy : '%d年' + } + }); +})); + + moment.locale('en'); + + + /************************************ + Exposing Moment + ************************************/ + + function makeGlobal(shouldDeprecate) { + /*global ender:false */ + if (typeof ender !== 'undefined') { + return; + } + oldGlobalMoment = globalScope.moment; + if (shouldDeprecate) { + globalScope.moment = deprecate( + 'Accessing Moment through the global scope is ' + + 'deprecated, and will be removed in an upcoming ' + + 'release.', + moment); + } else { + globalScope.moment = moment; + } + } + + // CommonJS module is defined + if (hasModule) { + module.exports = moment; + } else if (typeof define === 'function' && define.amd) { + define('moment', function (require, exports, module) { + if (module.config && module.config() && module.config().noGlobal === true) { + // release the global variable + globalScope.moment = oldGlobalMoment; + } + + return moment; + }); + makeGlobal(true); + } else { + makeGlobal(); + } +}).call(this); diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 7f87e1a6f3e..bd6fd2e5007 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -635,7 +635,7 @@ var OCdialogs = { type: entry.type, dir: dir, filename: entry.name, - date: relative_modified_date(entry.mtime/1000) + date: OC.Util.relativeModifiedDate(entry.mtime) }); if (entry.isPreviewAvailable) { var urlSpec = { diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js index 166210d0312..3af56c490e6 100644 --- a/core/js/tests/specs/coreSpec.js +++ b/core/js/tests/specs/coreSpec.js @@ -376,6 +376,9 @@ describe('Core base tests', function() { it('substitutes parameters', function() { expect(OC.generateUrl('apps/files/download{file}', {file: '/Welcome.txt'})).toEqual(OC.webroot + '/index.php/apps/files/download/Welcome.txt'); }); + it('doesnt error out with no params provided', function () { + expect(OC.generateUrl('apps/files/download{file}')).toEqual(OC.webroot + '/index.php/apps/files/download{file}'); + }); }); describe('Main menu mobile toggle', function() { var clock; diff --git a/core/l10n/ach.php b/core/l10n/ach.php index 2cbbaa45ca7..e012fb1656e 100644 --- a/core/l10n/ach.php +++ b/core/l10n/ach.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/core/l10n/ady.php b/core/l10n/ady.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/ady.php +++ b/core/l10n/ady.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/af_ZA.php b/core/l10n/af_ZA.php index d19954dcbd1..9bf6340f45b 100644 --- a/core/l10n/af_ZA.php +++ b/core/l10n/af_ZA.php @@ -26,16 +26,6 @@ $TRANSLATIONS = array( "December" => "Desember", "Settings" => "Instellings", "Saving..." => "Stoor...", -"seconds ago" => "sekondes gelede", -"_%n minute ago_::_%n minutes ago_" => array("%n minute gelede","%n minute gelede"), -"_%n hour ago_::_%n hours ago_" => array("%n ure gelde","%n ure gelede"), -"today" => "vandag", -"yesterday" => "gister", -"_%n day ago_::_%n days ago_" => array("%n dae gelede","%n dae gelede"), -"last month" => "verlede maand", -"_%n month ago_::_%n months ago_" => array("%n maande gelede","%n maande gelede"), -"last year" => "verlede jaar", -"years ago" => "jare gelede", "Reset password" => "Herstel wagwoord", "No" => "Nee", "Yes" => "Ja", diff --git a/core/l10n/ak.php b/core/l10n/ak.php index 09e36ba1786..df47d5b95c2 100644 --- a/core/l10n/ak.php +++ b/core/l10n/ak.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=n > 1;"; diff --git a/core/l10n/am_ET.php b/core/l10n/am_ET.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/am_ET.php +++ b/core/l10n/am_ET.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ar.php b/core/l10n/ar.php index 69b4e13e1de..4c154be74d4 100644 --- a/core/l10n/ar.php +++ b/core/l10n/ar.php @@ -26,16 +26,6 @@ $TRANSLATIONS = array( "File" => "ملف", "Folder" => "مجلد", "Saving..." => "جاري الحفظ...", -"seconds ago" => "منذ ثواني", -"_%n minute ago_::_%n minutes ago_" => array("","","","","",""), -"_%n hour ago_::_%n hours ago_" => array("","","","","",""), -"today" => "اليوم", -"yesterday" => "يوم أمس", -"_%n day ago_::_%n days ago_" => array("","","","","",""), -"last month" => "الشهر الماضي", -"_%n month ago_::_%n months ago_" => array("","","","","",""), -"last year" => "السنةالماضية", -"years ago" => "سنة مضت", "Reset password" => "تعديل كلمة السر", "No" => "لا", "Yes" => "نعم", diff --git a/core/l10n/ast.php b/core/l10n/ast.php index 50574e9b88a..8cd1a571c4b 100644 --- a/core/l10n/ast.php +++ b/core/l10n/ast.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "Imaxe", "Audio" => "Audiu", "Saving..." => "Guardando...", -"seconds ago" => "hai segundos", -"_%n minute ago_::_%n minutes ago_" => array("hai %n minutu","hai %n minutos"), -"_%n hour ago_::_%n hours ago_" => array("hai %n hora","hai %n hores"), -"today" => "güei", -"yesterday" => "ayeri", -"_%n day ago_::_%n days ago_" => array("hai %n día","hai %n díes"), -"last month" => "mes caberu", -"_%n month ago_::_%n months ago_" => array("fai %n mes","hai %n meses"), -"last year" => "añu caberu", -"years ago" => "hai años", "Couldn't send reset email. Please contact your administrator." => "Nun pudo unviase'l corréu de reaniciu. Por favor, contauta col alministrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Unviósete al corréu l'enllaz pa reaniciar la to contraseña. Si nun lu recibes nuna cantidá razonable de tiempu, comprueba les tos carpetes de corréu puxarra. <br>Si nun ta ehí, entruga al to alministrador llocal", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Los tos ficheros tán crifraos. Si nun habilitesti la clave de recuperación, nun habrá forma de recuperar los tos datos dempués de que se reanicie la to contraseña.<br />Si nun tas seguru de qué facer, por favor contauta col to alministrador enantes que sigas. <br />¿De xuru quies siguir?", diff --git a/core/l10n/az.php b/core/l10n/az.php index 06c5bdad293..a214bb0334b 100644 --- a/core/l10n/az.php +++ b/core/l10n/az.php @@ -13,13 +13,14 @@ $TRANSLATIONS = array( "Settings" => "Quraşdırmalar", "Folder" => "Qovluq", "Saving..." => "Saxlama...", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "Ok" => "Oldu", "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Cancel" => "Dayandır", +"Very weak password" => "Çox asan şifrə", +"Weak password" => "Asan şifrə", +"So-so password" => "Elə-belə şifrə", +"Good password" => "Yaxşı şifrə", +"Strong password" => "Çətin şifrə", "Share" => "Yayımla", "Error" => "Səhv", "Send" => "Göndər", @@ -27,12 +28,16 @@ $TRANSLATIONS = array( "can share" => "yayımlaya bilərsiniz", "delete" => "sil", "Email sent" => "Məktub göndərildi", +"Warning" => "Xəbərdarlıq", "Delete" => "Sil", "Add" => "Əlavə etmək", "Username" => "İstifadəçi adı", "Reset" => "Sıfırla", +"Personal" => "Şəxsi", "Users" => "İstifadəçilər", "Admin" => "İnzibatçı", +"Help" => "Kömək", +"Security Warning" => "Təhlükəsizlik xəbərdarlığı", "Password" => "Şifrə", "You are accessing the server from an untrusted domain." => "Siz serverə inamsız domain-dən girməyə çalışırsız.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Xahiş olunur inzibatçı ilə əlaqə saxlayasınız. Eger siz bu xidmətin inzibatçısısınizsa, \"trusted_domain\" configini config/config.php faylinda düzgün qeyd edin. Config nüsxəsi config/config.sample.php faylında qeyd edilmişdir." diff --git a/core/l10n/be.php b/core/l10n/be.php index b07d3a30604..cf0e5e0c59b 100644 --- a/core/l10n/be.php +++ b/core/l10n/be.php @@ -20,16 +20,6 @@ $TRANSLATIONS = array( "November" => "Лістапад", "December" => "Снежань", "Settings" => "Налады", -"seconds ago" => "Секунд таму", -"_%n minute ago_::_%n minutes ago_" => array("","","",""), -"_%n hour ago_::_%n hours ago_" => array("","","",""), -"today" => "Сёння", -"yesterday" => "Ўчора", -"_%n day ago_::_%n days ago_" => array("","","",""), -"last month" => "У мінулым месяцы", -"_%n month ago_::_%n months ago_" => array("","","",""), -"last year" => "У мінулым годзе", -"years ago" => "Гадоў таму", "No" => "Не", "Yes" => "Так", "Choose" => "Выбар", diff --git a/core/l10n/bg_BG.php b/core/l10n/bg_BG.php index ce4bc07dc7b..0047bba7250 100644 --- a/core/l10n/bg_BG.php +++ b/core/l10n/bg_BG.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Изображение", "Audio" => "Аудио", "Saving..." => "Записване...", -"seconds ago" => "преди секунди", -"_%n minute ago_::_%n minutes ago_" => array("преди %n минута","преди %n минути"), -"_%n hour ago_::_%n hours ago_" => array("преди %n час","преди %n часа"), -"today" => "днес", -"yesterday" => "вчера", -"_%n day ago_::_%n days ago_" => array("преди %n ден","преди %n дена"), -"last month" => "последният месец", -"_%n month ago_::_%n months ago_" => array("преди %n месец","преди %n месеца"), -"last year" => "последната година", -"years ago" => "последните години", "Couldn't send reset email. Please contact your administrator." => "Неуспешено изпращане на имейл. Моля, свържи се с администратора.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Връзката за възстановяване на паролата е изпратена на твоя имейл. Ако не я получиш в разумен период от време, провери папката си за спам.<br>Ако не е там се свържи с администратора.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Файловете ти са криптирани. Ако не си насторил ключ за възстановяване, няма да има възможност да възстановиш информацията си след като промениш паролата.<br /> Ако не си сигурен какво да направиш, моля свържи се с администратора преди да продължиш.<br/>Наистина ли си сигурен, че искаш да продължиш?", diff --git a/core/l10n/bn_BD.php b/core/l10n/bn_BD.php index dafaa784238..90560354127 100644 --- a/core/l10n/bn_BD.php +++ b/core/l10n/bn_BD.php @@ -1,5 +1,7 @@ <?php $TRANSLATIONS = array( +"Unknown filetype" => "অজানা প্রকৃতির ফাইল", +"Invalid image" => "অবৈধ চিত্র", "Sunday" => "রবিবার", "Monday" => "সোমবার", "Tuesday" => "মঙ্গলবার", @@ -25,23 +27,16 @@ $TRANSLATIONS = array( "Image" => "চিত্র", "Audio" => "অডিও", "Saving..." => "সংরক্ষণ করা হচ্ছে..", -"seconds ago" => "সেকেন্ড পূর্বে", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "আজ", -"yesterday" => "গতকাল", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "গত মাস", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "গত বছর", -"years ago" => "বছর পূর্বে", "Reset password" => "কূটশব্দ পূনঃনির্ধারণ কর", "No" => "না", "Yes" => "হ্যাঁ", "Choose" => "বেছে নিন", "Ok" => "তথাস্তু", "_{count} file conflict_::_{count} file conflicts_" => array("",""), -"Cancel" => "বাতির", +"New Files" => "নতুন ফাইল", +"Already existing files" => "বিদ্যমান ফাইল", +"Cancel" => "বাতিল", +"Continue" => "চালিয়ে যাও", "Shared" => "ভাগাভাগিকৃত", "Share" => "ভাগাভাগি কর", "Error" => "সমস্যা", @@ -78,6 +73,7 @@ $TRANSLATIONS = array( "Use the following link to reset your password: {link}" => "আপনার কূটশব্দটি পূনঃনির্ধারণ করার জন্য নিম্নোক্ত লিংকটি ব্যবহার করুনঃ {link}", "You will receive a link to reset your password via Email." => "কূটশব্দ পূনঃনির্ধারণের জন্য একটি টূনঃনির্ধারণ লিংকটি আপনাকে ই-মেইলে পাঠানো হয়েছে ।", "Username" => "ব্যবহারকারী", +"Reset" => "পূণঃনির্ধানণ", "New password" => "নতুন কূটশব্দ", "Personal" => "ব্যক্তিগত", "Users" => "ব্যবহারকারী", diff --git a/core/l10n/bn_IN.php b/core/l10n/bn_IN.php index 8ac8c2f20f2..987c0c6585d 100644 --- a/core/l10n/bn_IN.php +++ b/core/l10n/bn_IN.php @@ -3,10 +3,6 @@ $TRANSLATIONS = array( "Settings" => "সেটিংস", "Folder" => "ফোল্ডার", "Saving..." => "সংরক্ষণ করা হচ্ছে ...", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Cancel" => "বাতিল করা", "Share" => "শেয়ার", diff --git a/core/l10n/bs.php b/core/l10n/bs.php index 6181142234e..69e8e29f438 100644 --- a/core/l10n/bs.php +++ b/core/l10n/bs.php @@ -2,10 +2,6 @@ $TRANSLATIONS = array( "Folder" => "Fasikla", "Saving..." => "Spašavam...", -"_%n minute ago_::_%n minutes ago_" => array("","",""), -"_%n hour ago_::_%n hours ago_" => array("","",""), -"_%n day ago_::_%n days ago_" => array("","",""), -"_%n month ago_::_%n months ago_" => array("","",""), "_{count} file conflict_::_{count} file conflicts_" => array("","",""), "Share" => "Podijeli", "Add" => "Dodaj" diff --git a/core/l10n/ca.php b/core/l10n/ca.php index 0b4ce45e045..21a9841fadf 100644 --- a/core/l10n/ca.php +++ b/core/l10n/ca.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "Imatge", "Audio" => "Audio", "Saving..." => "Desant...", -"seconds ago" => "segons enrere", -"_%n minute ago_::_%n minutes ago_" => array("fa %n minut","fa %n minuts"), -"_%n hour ago_::_%n hours ago_" => array("fa %n hora","fa %n hores"), -"today" => "avui", -"yesterday" => "ahir", -"_%n day ago_::_%n days ago_" => array("fa %n dies","fa %n dies"), -"last month" => "el mes passat", -"_%n month ago_::_%n months ago_" => array("fa %n mes","fa %n mesos"), -"last year" => "l'any passat", -"years ago" => "anys enrere", "Couldn't send reset email. Please contact your administrator." => "No s'ha pogut restablir el correu. Contacteu amb l'administrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "L'enllaç per reiniciar la vostra contrasenya s'ha enviat al vostre correu. Si no el rebeu en un temps raonable comproveu les carpetes de spam. <br>Si no és allà, pregunteu a l'administrador local.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Els vostres fitxers estan encriptats. Si no heu habilitat la clau de recuperació no hi haurà manera de recuperar les dades després que reestabliu la contrasenya. <br />Si sabeu què fer, contacteu amb l'administrador abans de continuar.<br />Voleu continuar?", diff --git a/core/l10n/ca@valencia.php b/core/l10n/ca@valencia.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/ca@valencia.php +++ b/core/l10n/ca@valencia.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php index 3e2f322bb02..04861c9dbc4 100644 --- a/core/l10n/cs_CZ.php +++ b/core/l10n/cs_CZ.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Obrázek", "Audio" => "Audio", "Saving..." => "Ukládám...", -"seconds ago" => "před pár vteřinami", -"_%n minute ago_::_%n minutes ago_" => array("před %n minutou","před %n minutami","před %n minutami"), -"_%n hour ago_::_%n hours ago_" => array("před %n hodinou","před %n hodinami","před %n hodinami"), -"today" => "dnes", -"yesterday" => "včera", -"_%n day ago_::_%n days ago_" => array("před %n dnem","před %n dny","před %n dny"), -"last month" => "minulý měsíc", -"_%n month ago_::_%n months ago_" => array("před %n měsícem","před %n měsíci","před %n měsíci"), -"last year" => "minulý rok", -"years ago" => "před lety", "Couldn't send reset email. Please contact your administrator." => "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte vašeho administrátora.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte složku nevyžádané pošty a koš.<br>Pokud jej nenaleznete, kontaktujte svého administrátora.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Vaše soubory jsou šifrovány. Pokud jste nepovolili klíč pro obnovení, neexistuje způsob jak získat po změně hesla vaše data.<br />Pokud si nejste jisti co dělat, kontaktujte nejprve svého administrátora než budete pokračovat. <br />Opravdu si přejete pokračovat?", @@ -191,6 +181,8 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Děkuji za trpělivost.", "You are accessing the server from an untrusted domain." => "Přistupujete na server z nedůvěryhodné domény.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Kontaktujte prosím správce. Pokud jste správce této instalace, nastavte \"trusted_domain\" v souboru config/config.php. Příklad konfigurace najdete v souboru config/config.sample.php.", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "V závislosti na vaší konfiguraci vám může být, jako administrátorovi, umožněno použití tlačítka níže k označení této domény jako důvěryhodné.", +"Add \"%s\" as trusted domain" => "Přidat \"%s\" jako důvěryhodnou doménu", "%s will be updated to version %s." => "%s bude aktualizován na verzi %s.", "The following apps will be disabled:" => "Následující aplikace budou zakázány:", "The theme %s has been disabled." => "Vzhled %s byl zakázán.", diff --git a/core/l10n/cy_GB.php b/core/l10n/cy_GB.php index c625ac16fac..5c61ddfb5e7 100644 --- a/core/l10n/cy_GB.php +++ b/core/l10n/cy_GB.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "Gosodiadau", "Folder" => "Plygell", "Saving..." => "Yn cadw...", -"seconds ago" => "eiliad yn ôl", -"_%n minute ago_::_%n minutes ago_" => array("","","",""), -"_%n hour ago_::_%n hours ago_" => array("","","",""), -"today" => "heddiw", -"yesterday" => "ddoe", -"_%n day ago_::_%n days ago_" => array("","","",""), -"last month" => "mis diwethaf", -"_%n month ago_::_%n months ago_" => array("","","",""), -"last year" => "y llynedd", -"years ago" => "blwyddyn yn ôl", "Reset password" => "Ailosod cyfrinair", "No" => "Na", "Yes" => "Ie", diff --git a/core/l10n/da.php b/core/l10n/da.php index 7bb882cdabf..4faa85d8b86 100644 --- a/core/l10n/da.php +++ b/core/l10n/da.php @@ -5,6 +5,8 @@ $TRANSLATIONS = array( "Turned off maintenance mode" => "standsede vedligeholdelsestilstand", "Updated database" => "Opdaterede database", "Checked database schema update" => "Tjekket database schema opdatering", +"Checked database schema update for apps" => "Tjekkede databaseskemaets opdatering for apps", +"Updated \"%s\" to %s" => "Opdaterede \"%s\" til %s", "Disabled incompatible apps: %s" => "Deaktiverer inkombatible apps: %s", "No image or file provided" => "Ingen fil eller billede givet", "Unknown filetype" => "Ukendt filtype", @@ -36,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Billede", "Audio" => "Lyd", "Saving..." => "Gemmer...", -"seconds ago" => "sekunder siden", -"_%n minute ago_::_%n minutes ago_" => array("%n minut siden","%n minutter siden"), -"_%n hour ago_::_%n hours ago_" => array("%n time siden","%n timer siden"), -"today" => "i dag", -"yesterday" => "i går", -"_%n day ago_::_%n days ago_" => array("%n dag siden","%n dage siden"), -"last month" => "sidste måned", -"_%n month ago_::_%n months ago_" => array("%n måned siden","%n måneder siden"), -"last year" => "sidste år", -"years ago" => "år siden", "Couldn't send reset email. Please contact your administrator." => "Der opstod et problem under afsending af reset-emailen. Kontakt venligst systemadministratoren.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Linket til at nulstille dit kodeord er blevet sendt til din e-post: hvis du ikke modtager den inden for en rimelig tid, så tjek dine spam/junk-mapper.<br> Hvis det ikke er der, så spørg din lokale administrator.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Dine filer er krypterede. Hvis du ikke har aktiveret gendannelsesnøglen kan du ikke få dine data tilbage efter at du har ændret adgangskode.<br />Hvis du ikke er sikker på, hvad du skal gøre så kontakt din administrator før du fortsætter.<br />Vil du fortsætte?", @@ -189,11 +181,14 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Tak for din tålmodighed.", "You are accessing the server from an untrusted domain." => "Du tilgår serveren fra et utroværdigt domæne", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Kontakt venligst din administrator. Hvis du er administrator, konfigurer \"trusted_domain\" indstillingen i config/config.php. Et eksempel kan ses i config/config.sample.php.", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "Afhænger af din konfiguration, da du som administrator eventuelt også er i stand til at gøre brug af knappen nedenfor til at tildele tillid til dette domæne.", +"Add \"%s\" as trusted domain" => "Tilføj \"%s\" som et troværdigt domæne", "%s will be updated to version %s." => "%s vil blive opdateret til version %s.", "The following apps will be disabled:" => "Følgende apps bliver deaktiveret:", "The theme %s has been disabled." => "Temaet, %s, er blevet deaktiveret.", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Venligst sikrer dig en backup af databasen, config-mappen og data-mappen inden vi fortsætter.", "Start update" => "Begynd opdatering", +"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "For at undgå tidsudløb med større installationer, så kan du i stedet køre følgende kommando fra din installationsmappe:", "This ownCloud instance is currently being updated, which may take a while." => "Opdatere Owncloud, dette kan tage et stykke tid.", "Please reload this page after a short time to continue using ownCloud." => "Genindlæs denne side efter kort tid til at fortsætte med at bruge ownCloud." ); diff --git a/core/l10n/de.php b/core/l10n/de.php index 74f0d4370ac..ecb90aa29ab 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Bild", "Audio" => "Audio", "Saving..." => "Speichern...", -"seconds ago" => "Gerade eben", -"_%n minute ago_::_%n minutes ago_" => array("Vor %n Minute","Vor %n Minuten"), -"_%n hour ago_::_%n hours ago_" => array("Vor %n Stunde","Vor %n Stunden"), -"today" => "Heute", -"yesterday" => "Gestern", -"_%n day ago_::_%n days ago_" => array("Vor %n Tag","Vor %n Tagen"), -"last month" => "Letzten Monat", -"_%n month ago_::_%n months ago_" => array("Vor %n Monat","Vor %n Monaten"), -"last year" => "Letztes Jahr", -"years ago" => "Vor Jahren", "Couldn't send reset email. Please contact your administrator." => "Die E-Mail zum Zurücksetzen konnte nicht versendet werden. Bitte kontaktiere Deinen Administrator.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Der Link zum Rücksetzen Deines Passwort ist an Deine E-Mail-Adresse geschickt worden. Wenn Du ihn nicht innerhalb einer vernünftigen Zeit empfängst, prüfe Deine Spam-Verzeichnisse.<br>Wenn er nicht dort ist, frage Deinen lokalen Administrator.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Ihre Dateien sind verschlüsselt. Sollten Sie keinen Wiederherstellungschlüssel aktiviert haben, gibt es keine Möglichkeit an Ihre Daten zu kommen, wenn das Passwort zurückgesetzt wird.<br />Falls Sie sich nicht sicher sind, was Sie tun sollen, kontaktieren Sie bitte Ihren Administrator, bevor Sie fortfahren.<br />Wollen Sie wirklich fortfahren?", diff --git a/core/l10n/de_AT.php b/core/l10n/de_AT.php index 87d9611f427..cd17ea0bc16 100644 --- a/core/l10n/de_AT.php +++ b/core/l10n/de_AT.php @@ -20,10 +20,6 @@ $TRANSLATIONS = array( "November" => "November", "December" => "Dezember", "Settings" => "Einstellungen", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Cancel" => "Abbrechen", "Continue" => "Weiter", diff --git a/core/l10n/de_CH.php b/core/l10n/de_CH.php index bebd3ed1264..7acfbb8780e 100644 --- a/core/l10n/de_CH.php +++ b/core/l10n/de_CH.php @@ -26,16 +26,6 @@ $TRANSLATIONS = array( "File" => "Datei", "Folder" => "Ordner", "Saving..." => "Speichern...", -"seconds ago" => "Gerade eben", -"_%n minute ago_::_%n minutes ago_" => array("Vor %n Minute","Vor %n Minuten"), -"_%n hour ago_::_%n hours ago_" => array("Vor %n Stunde","Vor %n Stunden"), -"today" => "Heute", -"yesterday" => "Gestern", -"_%n day ago_::_%n days ago_" => array("Vor %n Tag","Vor %n Tagen"), -"last month" => "Letzten Monat", -"_%n month ago_::_%n months ago_" => array("Vor %n Monat","Vor %n Monaten"), -"last year" => "Letztes Jahr", -"years ago" => "Vor Jahren", "Reset password" => "Passwort zurücksetzen", "No" => "Nein", "Yes" => "Ja", diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index 07ed703c203..2b65d977ee1 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Bild", "Audio" => "Audio", "Saving..." => "Speichern...", -"seconds ago" => "Gerade eben", -"_%n minute ago_::_%n minutes ago_" => array("Vor %n Minute","Vor %n Minuten"), -"_%n hour ago_::_%n hours ago_" => array("Vor %n Stunde","Vor %n Stunden"), -"today" => "Heute", -"yesterday" => "Gestern", -"_%n day ago_::_%n days ago_" => array("Vor %n Tag","Vor %n Tagen"), -"last month" => "Letzten Monat", -"_%n month ago_::_%n months ago_" => array("Vor %n Monat","Vor %n Monaten"), -"last year" => "Letztes Jahr", -"years ago" => "Vor Jahren", "Couldn't send reset email. Please contact your administrator." => "Die E-Mail zum Zurücksetzen konnte nicht versendet werden. Bitte kontaktieren Sie Ihren Administrator.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Der Link zum Rücksetzen Ihres Passworts ist an Ihre E-Mail-Adresse geschickt worden. Wenn Sie ihn nicht innerhalb einer vernünftigen Zeit empfängen, prüfen Sie Ihre Spam-Verzeichnisse.<br>Wenn er nicht dort ist, fragen Sie Ihren lokalen Administrator.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Ihre Dateien sind verschlüsselt. Wenn Sie den Wiederherstellungsschlüssel nicht aktiviert haben, wird es keine Möglichkeit geben, um Ihre Daten wiederzubekommen, nachdem Ihr Passwort zurückgesetzt wurde.<br />Wenn Sie sich nicht sicher sind, was Sie tun sollen, wenden Sie sich bitte an Ihren Administrator, bevor Sie fortfahren.<br />Wollen Sie wirklich fortfahren?", diff --git a/core/l10n/el.php b/core/l10n/el.php index 650c0bb4f1a..df55094ae6b 100644 --- a/core/l10n/el.php +++ b/core/l10n/el.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Εικόνα", "Audio" => "Ήχος", "Saving..." => "Γίνεται αποθήκευση...", -"seconds ago" => "δευτερόλεπτα πριν", -"_%n minute ago_::_%n minutes ago_" => array("%n λεπτό πριν","%n λεπτά πριν"), -"_%n hour ago_::_%n hours ago_" => array("%n ώρα πριν","%n ώρες πριν"), -"today" => "σήμερα", -"yesterday" => "χτες", -"_%n day ago_::_%n days ago_" => array("%n ημέρα πριν","%n ημέρες πριν"), -"last month" => "τελευταίο μήνα", -"_%n month ago_::_%n months ago_" => array("%n μήνας πριν","%n μήνες πριν"), -"last year" => "τελευταίο χρόνο", -"years ago" => "χρόνια πριν", "Couldn't send reset email. Please contact your administrator." => "Αδυναμία αποστολής ηλ. μηνύματος επαναφοράς. Παρακαλώ επικοινωνήστε με το διαχειριστή σας.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Ο σύνδεσμος για την επαναφορά του κωδικού πρόσβασής σας απεστάλη στο ηλ. ταχυδρομείο σας. Εάν δεν το παραλάβετε μέσα σε ένα εύλογο χρονικό διάστημα, ελέγξτε το φάκελο ανεπιθύμητων μηνυμάτων σας. <br>Εάν δεν βρίσκεται εκεί ρωτήστε τον τοπικό διαχειριστή σας.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Τα αρχεία σας είναι κρυπτογραφημένα. Εάν δεν έχετε ενεργοποιήσει το κλειδί επαναφοράς, δεν θα υπάρχει τρόπος να ανακτήσετε τα δεδομένα σας μετά την επαναφορά του κωδικού πρόσβασής σας.<br />Εάν δεν είστε σίγουροι για το τι θα θέλατε να κάνετε, παρακαλώ επικοινωνήστε με το διαχειριστή σας πριν συνεχίσετε. <br />Θέλετε στ' αλήθεια να συνεχίσετε;", diff --git a/core/l10n/en@pirate.php b/core/l10n/en@pirate.php index 461a44dd235..44114abbc8d 100644 --- a/core/l10n/en@pirate.php +++ b/core/l10n/en@pirate.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Password" => "Passcode" ); diff --git a/core/l10n/en_GB.php b/core/l10n/en_GB.php index e9164deca50..ccfd56d02af 100644 --- a/core/l10n/en_GB.php +++ b/core/l10n/en_GB.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Image", "Audio" => "Audio", "Saving..." => "Saving...", -"seconds ago" => "seconds ago", -"_%n minute ago_::_%n minutes ago_" => array("%n minute ago","%n minutes ago"), -"_%n hour ago_::_%n hours ago_" => array("%n hour ago","%n hours ago"), -"today" => "today", -"yesterday" => "yesterday", -"_%n day ago_::_%n days ago_" => array("%n day ago","%n days ago"), -"last month" => "last month", -"_%n month ago_::_%n months ago_" => array("%n month ago","%n months ago"), -"last year" => "last year", -"years ago" => "years ago", "Couldn't send reset email. Please contact your administrator." => "Couldn't send reset email. Please contact your administrator.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?", @@ -191,6 +181,8 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Thank you for your patience.", "You are accessing the server from an untrusted domain." => "You are accessing the server from an untrusted domain.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php.", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain.", +"Add \"%s\" as trusted domain" => "Add \"%s\" as a trusted domain", "%s will be updated to version %s." => "%s will be updated to version %s.", "The following apps will be disabled:" => "The following apps will be disabled:", "The theme %s has been disabled." => "The theme %s has been disabled.", diff --git a/core/l10n/en_NZ.php b/core/l10n/en_NZ.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/en_NZ.php +++ b/core/l10n/en_NZ.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/eo.php b/core/l10n/eo.php index 64b30edaa9f..a17b532c603 100644 --- a/core/l10n/eo.php +++ b/core/l10n/eo.php @@ -27,16 +27,6 @@ $TRANSLATIONS = array( "Folder" => "Dosierujo", "Image" => "Bildo", "Saving..." => "Konservante...", -"seconds ago" => "sekundoj antaŭe", -"_%n minute ago_::_%n minutes ago_" => array("antaŭ %n minuto","antaŭ %n minutoj"), -"_%n hour ago_::_%n hours ago_" => array("antaŭ %n horo","antaŭ %n horoj"), -"today" => "hodiaŭ", -"yesterday" => "hieraŭ", -"_%n day ago_::_%n days ago_" => array("antaŭ %n tago","antaŭ %n tagoj"), -"last month" => "lastamonate", -"_%n month ago_::_%n months ago_" => array("antaŭ %n monato","antaŭ %n monatoj"), -"last year" => "lastajare", -"years ago" => "jaroj antaŭe", "Reset password" => "Rekomenci la pasvorton", "No" => "Ne", "Yes" => "Jes", diff --git a/core/l10n/es.php b/core/l10n/es.php index 8ab9595417f..f4ad2011253 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Imagen", "Audio" => "Audio", "Saving..." => "Guardando...", -"seconds ago" => "hace segundos", -"_%n minute ago_::_%n minutes ago_" => array("Hace %n minuto","hace %n minutos"), -"_%n hour ago_::_%n hours ago_" => array("Hace %n hora","hace %n horas"), -"today" => "hoy", -"yesterday" => "ayer", -"_%n day ago_::_%n days ago_" => array("Hace %n día","hace %n días"), -"last month" => "el mes pasado", -"_%n month ago_::_%n months ago_" => array("Hace %n mes","hace %n meses"), -"last year" => "el año pasado", -"years ago" => "hace años", "Couldn't send reset email. Please contact your administrator." => "La reiniciación de este correo electrónico no pudo ser enviada. Por favor, contacte a su administrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Un enlace para reiniciar su contraseña ha sido enviado a su correo electrónico. Si usted no lo recibe en un tiempo razonable, revise su carpeta para spam/chatarra.<br>Si no lo encuentra, pregunte a su administrador local.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Sus archivos están cifrados. Si no has activado la clave de recuperación, no habrá manera de recuperar los datos despues de que tu contraseña seá restablecida.<br /> Si no está seguro de lo que debe hacer, por favor contacte a su administrador antes de continuar.<br />¿Realmente desea continuar?", diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php index f90a3005596..d6112e4ef7a 100644 --- a/core/l10n/es_AR.php +++ b/core/l10n/es_AR.php @@ -33,16 +33,6 @@ $TRANSLATIONS = array( "Folder" => "Carpeta", "Image" => "Imagen", "Saving..." => "Guardando...", -"seconds ago" => "segundos atrás", -"_%n minute ago_::_%n minutes ago_" => array("Hace %n minuto","Hace %n minutos"), -"_%n hour ago_::_%n hours ago_" => array("Hace %n hora","Hace %n horas"), -"today" => "hoy", -"yesterday" => "ayer", -"_%n day ago_::_%n days ago_" => array("Hace %n día","Hace %n días"), -"last month" => "el mes pasado", -"_%n month ago_::_%n months ago_" => array("Hace %n mes","Hace %n meses"), -"last year" => "el año pasado", -"years ago" => "años atrás", "Reset password" => "Restablecer contraseña", "No" => "No", "Yes" => "Sí", diff --git a/core/l10n/es_BO.php b/core/l10n/es_BO.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_BO.php +++ b/core/l10n/es_BO.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_CL.php b/core/l10n/es_CL.php index 0f8f8772395..68d82086933 100644 --- a/core/l10n/es_CL.php +++ b/core/l10n/es_CL.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "November" => "Noviembre", "December" => "Diciembre", "Settings" => "Configuración", -"seconds ago" => "segundos antes", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "hoy", -"yesterday" => "ayer", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "mes anterior", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "último año", -"years ago" => "años anteriores", "No" => "No", "Yes" => "Si", "Choose" => "Choose", diff --git a/core/l10n/es_CO.php b/core/l10n/es_CO.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_CO.php +++ b/core/l10n/es_CO.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_CR.php b/core/l10n/es_CR.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_CR.php +++ b/core/l10n/es_CR.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_EC.php b/core/l10n/es_EC.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_EC.php +++ b/core/l10n/es_EC.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_MX.php b/core/l10n/es_MX.php index 993852e9826..a143d8abedb 100644 --- a/core/l10n/es_MX.php +++ b/core/l10n/es_MX.php @@ -32,16 +32,6 @@ $TRANSLATIONS = array( "File" => "Archivo", "Folder" => "Carpeta", "Saving..." => "Guardando...", -"seconds ago" => "segundos antes", -"_%n minute ago_::_%n minutes ago_" => array("Hace %n minuto","Hace %n minutos"), -"_%n hour ago_::_%n hours ago_" => array("Hace %n hora","Hace %n horas"), -"today" => "hoy", -"yesterday" => "ayer", -"_%n day ago_::_%n days ago_" => array("Hace %n día","Hace %n días"), -"last month" => "el mes pasado", -"_%n month ago_::_%n months ago_" => array("Hace %n mes","Hace %n meses"), -"last year" => "el año pasado", -"years ago" => "años antes", "Reset password" => "Restablecer contraseña", "No" => "No", "Yes" => "Sí", diff --git a/core/l10n/es_PE.php b/core/l10n/es_PE.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_PE.php +++ b/core/l10n/es_PE.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_PY.php b/core/l10n/es_PY.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_PY.php +++ b/core/l10n/es_PY.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_US.php b/core/l10n/es_US.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_US.php +++ b/core/l10n/es_US.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_UY.php b/core/l10n/es_UY.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/es_UY.php +++ b/core/l10n/es_UY.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php index bca3ca8a945..d941c7d2bea 100644 --- a/core/l10n/et_EE.php +++ b/core/l10n/et_EE.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "Pilt", "Audio" => "Helid", "Saving..." => "Salvestamine...", -"seconds ago" => "sekundit tagasi", -"_%n minute ago_::_%n minutes ago_" => array("%n minut tagasi","%n minutit tagasi"), -"_%n hour ago_::_%n hours ago_" => array("%n tund tagasi","%n tundi tagasi"), -"today" => "täna", -"yesterday" => "eile", -"_%n day ago_::_%n days ago_" => array("%n päev tagasi","%n päeva tagasi"), -"last month" => "viimasel kuul", -"_%n month ago_::_%n months ago_" => array("%n kuu tagasi","%n kuud tagasi"), -"last year" => "viimasel aastal", -"years ago" => "aastat tagasi", "Couldn't send reset email. Please contact your administrator." => "Ei suutnud lähtestada e-maili. Palun kontakteeru süsteemihalduriga.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Link parooli vahetuseks on saadetud Sinu e-posti aadressil.<br>Kui kiri pole saabunud mõistliku aja jooksul, siis kontrolli oma spam-/rämpskirjade katalooge<br>.Kui kirja pole ka seal, siis küsi abi süsteemihaldurilt.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Sinu failid on krüpteeritud. Kui sa pole taastamise võtit veel määranud, siis pole präast parooli taastamist mingit võimalust sinu andmeid tagasi saada. <br />Kui sa pole kindel, mida teha, siis palun väta enne jätkamist ühendust oma administaatoriga. <br />Oled sa kindel, et sa soovid jätkata?", @@ -189,6 +179,7 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Täname kannatlikkuse eest.", "You are accessing the server from an untrusted domain." => "Sa kasutad serverit usalduseta asukohast", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Palun võta ühendust oma saidi administraatoriga. Kui sa oled ise administraator, siis seadista failis config/config.php sätet \"trusted_domain\". Näidis seadistused leiad failist config/config.sample.php.", +"Add \"%s\" as trusted domain" => "Lisa \"%s\" usaldusväärse domeenina", "%s will be updated to version %s." => "%s uuendatakse versioonile %s.", "The following apps will be disabled:" => "Järgnevad rakendid keelatakse:", "The theme %s has been disabled." => "Teema %s on keelatud.", diff --git a/core/l10n/eu.php b/core/l10n/eu.php index a07ec812292..b216b066052 100644 --- a/core/l10n/eu.php +++ b/core/l10n/eu.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Irudia", "Audio" => "Audio", "Saving..." => "Gordetzen...", -"seconds ago" => "segundu", -"_%n minute ago_::_%n minutes ago_" => array("orain dela minutu %n","orain dela %n minutu"), -"_%n hour ago_::_%n hours ago_" => array("orain dela ordu %n","orain dela %n ordu"), -"today" => "gaur", -"yesterday" => "atzo", -"_%n day ago_::_%n days ago_" => array("orain dela egun %n","orain dela %n egun"), -"last month" => "joan den hilabetean", -"_%n month ago_::_%n months ago_" => array("orain dela hilabete %n","orain dela %n hilabete"), -"last year" => "joan den urtean", -"years ago" => "urte", "Couldn't send reset email. Please contact your administrator." => "Ezin da berrezartzeko eposta bidali. Mesedez jarri harremetan zure administradorearekin.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Zure pasahitza berrezartzeko lotura zure postara bidalia izan da.<br>Ez baduzu arrazoizko denbora epe batean jasotzen begiratu zure zabor-posta karpetan.<br>Hor ere ez badago kudeatzailearekin harremanetan jarri.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Zure fitxategiak enkriptaturik daude. Ez baduzu berreskuratze gakoa gaitzen pasahitza berrabiaraztean ez da zure fitxategiak berreskuratzeko modurik egongo. <br />Zer egin ziur ez bazaude kudeatzailearekin harremanetan ipini jarraitu aurretik.<br /> Ziur zaude aurrera jarraitu nahi duzula?", diff --git a/core/l10n/eu_ES.php b/core/l10n/eu_ES.php index 3606866bf73..92e64924b61 100644 --- a/core/l10n/eu_ES.php +++ b/core/l10n/eu_ES.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Cancel" => "Ezeztatu", "Delete" => "Ezabatu", diff --git a/core/l10n/fa.php b/core/l10n/fa.php index c4122a86428..95d933c6039 100644 --- a/core/l10n/fa.php +++ b/core/l10n/fa.php @@ -34,16 +34,6 @@ $TRANSLATIONS = array( "Image" => "تصویر", "Audio" => "صدا", "Saving..." => "در حال ذخیره سازی...", -"seconds ago" => "ثانیهها پیش", -"_%n minute ago_::_%n minutes ago_" => array("%n دقیقه قبل"), -"_%n hour ago_::_%n hours ago_" => array("%n ساعت قبل"), -"today" => "امروز", -"yesterday" => "دیروز", -"_%n day ago_::_%n days ago_" => array("%n روز قبل"), -"last month" => "ماه قبل", -"_%n month ago_::_%n months ago_" => array("%n ماه قبل"), -"last year" => "سال قبل", -"years ago" => "سالهای قبل", "Couldn't send reset email. Please contact your administrator." => "ارسال ایمیل مجدد با مشکل مواجه شد . لطفا با مدیر سیستم تماس بگیرید .", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "لینک تنظیم مجدد رمز عبور به ایمیل شما ارسال شده است.<br>اگر آن رادر یک زمان مشخصی دریافت نکرده اید، لطفا هرزنامه/ پوشه های ناخواسته را بررسی کنید.<br>در صورت نبودن از مدیر خود بپرسید.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "فایل های شما رمزگذاری شده اند. اگر شما کلید بازیابی را فعال نکرده اید، پس از راه اندازی مجدد رمزعبور هیچ راهی برای بازگشت اطلاعاتتان وجود نخواهد داشت.در صورت عدم اطمینان به انجام کار، لطفا ابتدا با مدیر خود تماس بگیرید. آیا واقعا میخواهید ادامه دهید ؟", diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php index 2969e56af44..cfccf041907 100644 --- a/core/l10n/fi_FI.php +++ b/core/l10n/fi_FI.php @@ -37,16 +37,6 @@ $TRANSLATIONS = array( "Image" => "Kuva", "Audio" => "Ääni", "Saving..." => "Tallennetaan...", -"seconds ago" => "sekuntia sitten", -"_%n minute ago_::_%n minutes ago_" => array("%n minuutti sitten","%n minuuttia sitten"), -"_%n hour ago_::_%n hours ago_" => array("%n tunti sitten","%n tuntia sitten"), -"today" => "tänään", -"yesterday" => "eilen", -"_%n day ago_::_%n days ago_" => array("%n päivä sitten","%n päivää sitten"), -"last month" => "viime kuussa", -"_%n month ago_::_%n months ago_" => array("%n kuukausi sitten","%n kuukautta sitten"), -"last year" => "viime vuonna", -"years ago" => "vuotta sitten", "Couldn't send reset email. Please contact your administrator." => "Palautussähköpostin lähettäminen ei onnistunut. Ota yhteys ylläpitäjään.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Linkki salasanan palauttamista varten on lähetetty sähköpostitse. Jos et saa sähköpostiviestiä kohtuullisessa ajassa, tarkista roskapostikansiot.<br>Jos et saa sähköpostiviestiä, ota yhteys paikalliseen ylläpitäjään.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Tiedostosi on salattu. Jos et ole ottanut käyttöön palautusavainta, tietojasi ei ole mahdollista palauttaa salasanan nollaamisen jälkeen.<br />Jos et ole varma mitä tehdä, ota yhteys ylläpitäjään.<br />Haluatko varmasti jatkaa?", @@ -190,6 +180,7 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Kiitos kärsivällisyydestäsi.", "You are accessing the server from an untrusted domain." => "Olet yhteydessä palvelimeen epäluotettavasta verkko-osoitteesta.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Ota yhteys ylläpitäjään. Jos olet tämän ownCloudin ylläpitäjä, määritä \"trusted_domain\"-asetus tiedostossa config/config.php. Esimerkkimääritys on nähtävillä tiedostossa config/config.sample.php.", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "Riippuen määrityksistä, ylläpitäjänä saatat kyetä käyttämään alla olevaa painiketta luodaksesi luottamussuhteen tähän toimialueeseen.", "Add \"%s\" as trusted domain" => "Lisää \"%s\" luotetuksi toimialueeksi", "%s will be updated to version %s." => "%s päivitetään versioon %s.", "The following apps will be disabled:" => "Seuraavat sovellukset poistetaan käytöstä:", diff --git a/core/l10n/fr.php b/core/l10n/fr.php index 60f79328b30..c9a7d023dda 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "Image", "Audio" => "Audio", "Saving..." => "Enregistrement...", -"seconds ago" => "il y a quelques secondes", -"_%n minute ago_::_%n minutes ago_" => array("il y a %n minute","il y a %n minutes"), -"_%n hour ago_::_%n hours ago_" => array("Il y a %n heure","Il y a %n heures"), -"today" => "aujourd'hui", -"yesterday" => "hier", -"_%n day ago_::_%n days ago_" => array("il y a %n jour","il y a %n jours"), -"last month" => "le mois dernier", -"_%n month ago_::_%n months ago_" => array("Il y a %n mois","Il y a %n mois"), -"last year" => "l'année dernière", -"years ago" => "il y a plusieurs années", "Couldn't send reset email. Please contact your administrator." => "Impossible d'envoyer l’émail de réinitialisation. Veuillez contacter votre administrateur.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Le lien permettant de réinitialiser votre mot de passe vous a été transmis à votre adresse email.<br>Si vous ne le recevez pas dans un délai raisonnable, vérifier votre boîte de pourriels.<br>Au besoin, contactez votre administrateur local.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Vos fichiers sont chiffrés. Si vous n'avez pas activé la clef de récupération, il n'y aura plus aucun moyen de récupérer vos données une fois le mot de passe réinitialisé. Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. Voulez-vous vraiment continuer ?", diff --git a/core/l10n/fr_CA.php b/core/l10n/fr_CA.php index 2cbbaa45ca7..e012fb1656e 100644 --- a/core/l10n/fr_CA.php +++ b/core/l10n/fr_CA.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/core/l10n/gl.php b/core/l10n/gl.php index eee969ea89b..b5f2c416ece 100644 --- a/core/l10n/gl.php +++ b/core/l10n/gl.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "Imaxe", "Audio" => "Son", "Saving..." => "Gardando...", -"seconds ago" => "segundos atrás", -"_%n minute ago_::_%n minutes ago_" => array("hai %n minuto","vai %n minutos"), -"_%n hour ago_::_%n hours ago_" => array("hai %n hora","vai %n horas"), -"today" => "hoxe", -"yesterday" => "onte", -"_%n day ago_::_%n days ago_" => array("hai %n día","vai %n días"), -"last month" => "último mes", -"_%n month ago_::_%n months ago_" => array("hai %n mes","vai %n meses"), -"last year" => "último ano", -"years ago" => "anos atrás", "Couldn't send reset email. Please contact your administrator." => "Non foi posíbel enviar o coreo do restablecemento. Póñase en contacto co administrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "A ligazón para restabelecer o seu contrasinal foi enviada ao seu correo. Se non a recibe nun prazo razoábel de tempo, vexa o seu cartafol de correo lixo. <br> Se non está ali pregúntelle ao administrador local.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere?", diff --git a/core/l10n/he.php b/core/l10n/he.php index ef3161fb29a..e0277c68936 100644 --- a/core/l10n/he.php +++ b/core/l10n/he.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "הגדרות", "Folder" => "תיקייה", "Saving..." => "שמירה…", -"seconds ago" => "שניות", -"_%n minute ago_::_%n minutes ago_" => array("לפני %n דקה","לפני %n דקות"), -"_%n hour ago_::_%n hours ago_" => array("לפני %n שעה","לפני %n שעות"), -"today" => "היום", -"yesterday" => "אתמול", -"_%n day ago_::_%n days ago_" => array("לפני %n יום","לפני %n ימים"), -"last month" => "חודש שעבר", -"_%n month ago_::_%n months ago_" => array("לפני %n חודש","לפני %n חודשים"), -"last year" => "שנה שעברה", -"years ago" => "שנים", "Reset password" => "איפוס ססמה", "No" => "לא", "Yes" => "כן", @@ -48,6 +38,7 @@ $TRANSLATIONS = array( "Error while changing permissions" => "שגיאה במהלך שינוי ההגדרות", "Shared with you and the group {group} by {owner}" => "שותף אתך ועם הקבוצה {group} שבבעלות {owner}", "Shared with you by {owner}" => "שותף אתך על ידי {owner}", +"Share link" => "קישור לשיתוף", "Password protect" => "הגנה בססמה", "Email link to person" => "שליחת קישור בדוא״ל למשתמש", "Send" => "שליחה", diff --git a/core/l10n/hi.php b/core/l10n/hi.php index 65b60029d68..0311dd34ab5 100644 --- a/core/l10n/hi.php +++ b/core/l10n/hi.php @@ -20,10 +20,6 @@ $TRANSLATIONS = array( "November" => "नवंबर", "December" => "दिसम्बर", "Settings" => "सेटिंग्स", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Cancel" => "रद्द करें ", "Share" => "साझा करें", diff --git a/core/l10n/hi_IN.php b/core/l10n/hi_IN.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/hi_IN.php +++ b/core/l10n/hi_IN.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/hr.php b/core/l10n/hr.php index a6acf8eb35f..ad2d38f2cae 100644 --- a/core/l10n/hr.php +++ b/core/l10n/hr.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "Postavke", "Folder" => "mapa", "Saving..." => "Spremanje...", -"seconds ago" => "sekundi prije", -"_%n minute ago_::_%n minutes ago_" => array("","",""), -"_%n hour ago_::_%n hours ago_" => array("","",""), -"today" => "danas", -"yesterday" => "jučer", -"_%n day ago_::_%n days ago_" => array("","",""), -"last month" => "prošli mjesec", -"_%n month ago_::_%n months ago_" => array("","",""), -"last year" => "prošlu godinu", -"years ago" => "godina", "Reset password" => "Poništavanje lozinke", "No" => "Ne", "Yes" => "Da", diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php index c5fcdc8556d..3493016282b 100644 --- a/core/l10n/hu_HU.php +++ b/core/l10n/hu_HU.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Kép", "Audio" => "Hang", "Saving..." => "Mentés...", -"seconds ago" => "pár másodperce", -"_%n minute ago_::_%n minutes ago_" => array("%n perccel ezelőtt","%n perccel ezelőtt"), -"_%n hour ago_::_%n hours ago_" => array("%n órával ezelőtt","%n órával ezelőtt"), -"today" => "ma", -"yesterday" => "tegnap", -"_%n day ago_::_%n days ago_" => array("%n nappal ezelőtt","%n nappal ezelőtt"), -"last month" => "múlt hónapban", -"_%n month ago_::_%n months ago_" => array("%n hónappal ezelőtt","%n hónappal ezelőtt"), -"last year" => "tavaly", -"years ago" => "több éve", "Couldn't send reset email. Please contact your administrator." => "Visszaállítási e-mail nem küldhető. Kérjük, lépjen kapcsolatba a rendszergazdával.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "A jelszó felülírásához a linket e-mailben elküldtük. Ha a levél elfogadható időn belül nem érkezik meg, ellenőrizze a spam/levélszemét mappát.<br>Ha nincs ott, kérdezze meg a helyi rendszergazdát.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Az Ön állományai titkosítva vannak. Ha nem engedélyezte korábban az adatok visszanyeréséhez szükséges kulcs használatát, akkor a jelszó megváltoztatását követően nem fog hozzáférni az adataihoz. Ha nem biztos abban, hogy mit kellene tennie, akkor kérdezze meg a rendszergazdát, mielőtt továbbmenne. Biztos, hogy folytatni kívánja?", diff --git a/core/l10n/hy.php b/core/l10n/hy.php index 29df048fd94..956fe561b5a 100644 --- a/core/l10n/hy.php +++ b/core/l10n/hy.php @@ -19,10 +19,6 @@ $TRANSLATIONS = array( "October" => "Հոկտեմբեր", "November" => "Նոյեմբեր", "December" => "Դեկտեմբեր", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Delete" => "Ջնջել" ); diff --git a/core/l10n/ia.php b/core/l10n/ia.php index ea87fefdb8b..2e84854f586 100644 --- a/core/l10n/ia.php +++ b/core/l10n/ia.php @@ -31,16 +31,6 @@ $TRANSLATIONS = array( "Image" => "Imagine", "Audio" => "Audio", "Saving..." => "Salveguardante...", -"seconds ago" => "secundas passate", -"_%n minute ago_::_%n minutes ago_" => array("%n minuta passate","%n minutas passate"), -"_%n hour ago_::_%n hours ago_" => array("%n hora passate","%n horas passate"), -"today" => "hodie", -"yesterday" => "heri", -"_%n day ago_::_%n days ago_" => array("%n die ante","%n dies ante"), -"last month" => "ultime mense", -"_%n month ago_::_%n months ago_" => array("%n mense ante","%n menses ante"), -"last year" => "ultime anno", -"years ago" => "annos passate", "I know what I'm doing" => "Io sape lo que io es facente", "Reset password" => "Reinitialisar contrasigno", "Password can not be changed. Please contact your administrator." => "Contrasigno non pote esser modificate. Pro favor continge tu administrator.", diff --git a/core/l10n/id.php b/core/l10n/id.php index baf2cfcfc1c..3bdbb1dc576 100644 --- a/core/l10n/id.php +++ b/core/l10n/id.php @@ -33,16 +33,6 @@ $TRANSLATIONS = array( "Folder" => "Folder", "Image" => "gambar", "Saving..." => "Menyimpan...", -"seconds ago" => "beberapa detik yang lalu", -"_%n minute ago_::_%n minutes ago_" => array("%n menit yang lalu"), -"_%n hour ago_::_%n hours ago_" => array("%n jam yang lalu"), -"today" => "hari ini", -"yesterday" => "kemarin", -"_%n day ago_::_%n days ago_" => array("%n hari yang lalu"), -"last month" => "bulan kemarin", -"_%n month ago_::_%n months ago_" => array("%n bulan yang lalu"), -"last year" => "tahun kemarin", -"years ago" => "beberapa tahun lalu", "Reset password" => "Atur ulang sandi", "No" => "Tidak", "Yes" => "Ya", diff --git a/core/l10n/io.php b/core/l10n/io.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/io.php +++ b/core/l10n/io.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/is.php b/core/l10n/is.php index a3ebb9ea0d8..6c3b1507cf3 100644 --- a/core/l10n/is.php +++ b/core/l10n/is.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "Stillingar", "Folder" => "Mappa", "Saving..." => "Er að vista ...", -"seconds ago" => "sek.", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "í dag", -"yesterday" => "í gær", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "síðasta mánuði", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "síðasta ári", -"years ago" => "einhverjum árum", "Reset password" => "Endursetja lykilorð", "No" => "Nei", "Yes" => "Já", diff --git a/core/l10n/it.php b/core/l10n/it.php index 0da74fa9615..1b85e41c0c5 100644 --- a/core/l10n/it.php +++ b/core/l10n/it.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Immagine", "Audio" => "Audio", "Saving..." => "Salvataggio in corso...", -"seconds ago" => "secondi fa", -"_%n minute ago_::_%n minutes ago_" => array("%n minuto fa","%n minuti fa"), -"_%n hour ago_::_%n hours ago_" => array("%n ora fa","%n ore fa"), -"today" => "oggi", -"yesterday" => "ieri", -"_%n day ago_::_%n days ago_" => array("%n giorno fa","%n giorni fa"), -"last month" => "mese scorso", -"_%n month ago_::_%n months ago_" => array("%n mese fa","%n mesi fa"), -"last year" => "anno scorso", -"years ago" => "anni fa", "Couldn't send reset email. Please contact your administrator." => "Impossibile inviare l'email di reimpostazione. Contatta il tuo amministratore.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Il collegamento per reimpostare la password è stato inviato al tuo indirizzo di posta. Se non lo ricevi in tempi ragionevoli, controlla le cartelle della posta indesiderata.<br>Se non dovesse essere nemmeno lì, contatta il tuo amministratore locale.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "I tuoi file sono cifrati. Se non hai precedentemente abilitato la chiave di recupero, non sarà più possibile ritrovare i tuoi dati una volta che la password sarà reimpostata.<br />Se non sei sicuro, per favore contatta l'amministratore prima di proseguire.<br />Vuoi davvero continuare?", diff --git a/core/l10n/ja.php b/core/l10n/ja.php index d10bf0ade8b..1ede67fb976 100644 --- a/core/l10n/ja.php +++ b/core/l10n/ja.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "画像", "Audio" => "オーディオ", "Saving..." => "保存中...", -"seconds ago" => "数秒前", -"_%n minute ago_::_%n minutes ago_" => array("%n 分前"), -"_%n hour ago_::_%n hours ago_" => array("%n 時間前"), -"today" => "今日", -"yesterday" => "昨日", -"_%n day ago_::_%n days ago_" => array("%n日前"), -"last month" => "1ヶ月前", -"_%n month ago_::_%n months ago_" => array("%nヶ月前"), -"last year" => "1年前", -"years ago" => "数年前", "Couldn't send reset email. Please contact your administrator." => "リセットメールを送信できませんでした。管理者に問い合わせてください。", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "パスワードをリセットする、このリンクをクリックするとメールを送信します。しばらく経ってもメールが届かなかった場合は、スパム/ジャンクフォルダを確認してください。<br>それでも見つからなかった場合は、管理者に問合せてください。", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "ファイルが暗号化されています。リカバリーキーが有効でない場合は、パスワードをリセットした後にあなたのデータを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に連絡してください。<br />続けてよろしいでしょうか?", diff --git a/core/l10n/jv.php b/core/l10n/jv.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/jv.php +++ b/core/l10n/jv.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ka_GE.php b/core/l10n/ka_GE.php index ea9da6ff9c2..872b81ea9dc 100644 --- a/core/l10n/ka_GE.php +++ b/core/l10n/ka_GE.php @@ -23,16 +23,6 @@ $TRANSLATIONS = array( "Folder" => "საქაღალდე", "Image" => "სურათი", "Saving..." => "შენახვა...", -"seconds ago" => "წამის წინ", -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"today" => "დღეს", -"yesterday" => "გუშინ", -"_%n day ago_::_%n days ago_" => array(""), -"last month" => "გასულ თვეში", -"_%n month ago_::_%n months ago_" => array(""), -"last year" => "ბოლო წელს", -"years ago" => "წლის წინ", "Reset password" => "პაროლის შეცვლა", "No" => "არა", "Yes" => "კი", diff --git a/core/l10n/km.php b/core/l10n/km.php index 8e7c91ca5a1..c2da871a113 100644 --- a/core/l10n/km.php +++ b/core/l10n/km.php @@ -24,16 +24,6 @@ $TRANSLATIONS = array( "Settings" => "ការកំណត់", "Folder" => "ថត", "Saving..." => "កំពុងរក្សាទុក", -"seconds ago" => "វិនាទីមុន", -"_%n minute ago_::_%n minutes ago_" => array("%n នាទីមុន"), -"_%n hour ago_::_%n hours ago_" => array("%n ម៉ោងមុន"), -"today" => "ថ្ងៃនេះ", -"yesterday" => "ម្សិលមិញ", -"_%n day ago_::_%n days ago_" => array("%n ថ្ងៃមុន"), -"last month" => "ខែមុន", -"_%n month ago_::_%n months ago_" => array("%n ខែមុន"), -"last year" => "ឆ្នាំមុន", -"years ago" => "ឆ្នាំមុន", "Reset password" => "កំណត់ពាក្យសម្ងាត់ម្ដងទៀត", "No" => "ទេ", "Yes" => "ព្រម", diff --git a/core/l10n/kn.php b/core/l10n/kn.php index dbedde7e637..1191769faa7 100644 --- a/core/l10n/kn.php +++ b/core/l10n/kn.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"_%n day ago_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array(""), "_{count} file conflict_::_{count} file conflicts_" => array("") ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/ko.php b/core/l10n/ko.php index ae9ad7eb78d..e6ec7919399 100644 --- a/core/l10n/ko.php +++ b/core/l10n/ko.php @@ -33,16 +33,6 @@ $TRANSLATIONS = array( "Folder" => "폴더", "Image" => "그림", "Saving..." => "저장 중...", -"seconds ago" => "초 전", -"_%n minute ago_::_%n minutes ago_" => array("%n분 전 "), -"_%n hour ago_::_%n hours ago_" => array("%n시간 전 "), -"today" => "오늘", -"yesterday" => "어제", -"_%n day ago_::_%n days ago_" => array("%n일 전 "), -"last month" => "지난 달", -"_%n month ago_::_%n months ago_" => array("%n달 전 "), -"last year" => "작년", -"years ago" => "년 전", "Couldn't send reset email. Please contact your administrator." => "재설정 메일을 보낼수 없습니다. 관리자에게 문의하십시오.", "Reset password" => "암호 재설정", "Password can not be changed. Please contact your administrator." => "비밀번호를 변경할수 없습니다. 관리자에게 문의하십시오.", diff --git a/core/l10n/ku_IQ.php b/core/l10n/ku_IQ.php index 49a24012e79..775fdab1f95 100644 --- a/core/l10n/ku_IQ.php +++ b/core/l10n/ku_IQ.php @@ -3,10 +3,6 @@ $TRANSLATIONS = array( "Settings" => "دهستكاری", "Folder" => "بوخچه", "Saving..." => "پاشکهوتدهکات...", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "Reset password" => "دووباره كردنهوهی وشهی نهێنی", "No" => "نەخێر", "Yes" => "بەڵێ", diff --git a/core/l10n/lb.php b/core/l10n/lb.php index db697beb493..d5e38405cea 100644 --- a/core/l10n/lb.php +++ b/core/l10n/lb.php @@ -29,16 +29,6 @@ $TRANSLATIONS = array( "File" => "Fichier", "Folder" => "Dossier", "Saving..." => "Speicheren...", -"seconds ago" => "Sekonnen hir", -"_%n minute ago_::_%n minutes ago_" => array("%n Minutt hir","%n Minutten hir"), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "haut", -"yesterday" => "gëschter", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "leschte Mount", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "Lescht Joer", -"years ago" => "Joren hir", "Reset password" => "Passwuert zréck setzen", "No" => "Nee", "Yes" => "Jo", diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php index a9880f0246b..0f86486a63d 100644 --- a/core/l10n/lt_LT.php +++ b/core/l10n/lt_LT.php @@ -32,16 +32,6 @@ $TRANSLATIONS = array( "File" => "Failas", "Folder" => "Katalogas", "Saving..." => "Saugoma...", -"seconds ago" => "prieš sekundę", -"_%n minute ago_::_%n minutes ago_" => array(" prieš %n minutę"," prieš %n minučių"," prieš %n minučių"), -"_%n hour ago_::_%n hours ago_" => array("prieš %n valandą","prieš %n valandų","prieš %n valandų"), -"today" => "šiandien", -"yesterday" => "vakar", -"_%n day ago_::_%n days ago_" => array("prieš %n dieną","prieš %n dienas","prieš %n dienų"), -"last month" => "praeitą mėnesį", -"_%n month ago_::_%n months ago_" => array("prieš %n mėnesį","prieš %n mėnesius","prieš %n mėnesių"), -"last year" => "praeitais metais", -"years ago" => "prieš metus", "Reset password" => "Atkurti slaptažodį", "No" => "Ne", "Yes" => "Taip", diff --git a/core/l10n/lv.php b/core/l10n/lv.php index cd1ec0e0896..1be63923f4f 100644 --- a/core/l10n/lv.php +++ b/core/l10n/lv.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "Iestatījumi", "Folder" => "Mape", "Saving..." => "Saglabā...", -"seconds ago" => "sekundes atpakaļ", -"_%n minute ago_::_%n minutes ago_" => array("Tagad, %n minūtes","Pirms %n minūtes","Pirms %n minūtēm"), -"_%n hour ago_::_%n hours ago_" => array("Šodien, %n stundas","Pirms %n stundas","Pirms %n stundām"), -"today" => "šodien", -"yesterday" => "vakar", -"_%n day ago_::_%n days ago_" => array("Šodien, %n dienas","Pirms %n dienas","Pirms %n dienām"), -"last month" => "pagājušajā mēnesī", -"_%n month ago_::_%n months ago_" => array("Šomēnes, %n mēneši","Pirms %n mēneša","Pirms %n mēnešiem"), -"last year" => "gājušajā gadā", -"years ago" => "gadus atpakaļ", "Reset password" => "Mainīt paroli", "No" => "Nē", "Yes" => "Jā", diff --git a/core/l10n/mk.php b/core/l10n/mk.php index fa51a5e50cc..cefcf1e989d 100644 --- a/core/l10n/mk.php +++ b/core/l10n/mk.php @@ -28,16 +28,6 @@ $TRANSLATIONS = array( "Settings" => "Подесувања", "Folder" => "Папка", "Saving..." => "Снимам...", -"seconds ago" => "пред секунди", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "денеска", -"yesterday" => "вчера", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "минатиот месец", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "минатата година", -"years ago" => "пред години", "Reset password" => "Ресетирај лозинка", "No" => "Не", "Yes" => "Да", diff --git a/core/l10n/ml.php b/core/l10n/ml.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/ml.php +++ b/core/l10n/ml.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ml_IN.php b/core/l10n/ml_IN.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/ml_IN.php +++ b/core/l10n/ml_IN.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/mn.php b/core/l10n/mn.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/mn.php +++ b/core/l10n/mn.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ms_MY.php b/core/l10n/ms_MY.php index 3fe6a776e85..8eb766614a8 100644 --- a/core/l10n/ms_MY.php +++ b/core/l10n/ms_MY.php @@ -22,10 +22,6 @@ $TRANSLATIONS = array( "Settings" => "Tetapan", "Folder" => "Folder", "Saving..." => "Simpan...", -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"_%n day ago_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array(""), "Reset password" => "Penetapan semula kata laluan", "No" => "Tidak", "Yes" => "Ya", diff --git a/core/l10n/my_MM.php b/core/l10n/my_MM.php index d731d2fdae6..d6a6632ecfc 100644 --- a/core/l10n/my_MM.php +++ b/core/l10n/my_MM.php @@ -12,16 +12,6 @@ $TRANSLATIONS = array( "October" => "အောက်တိုဘာ", "November" => "နိုဝင်ဘာ", "December" => "ဒီဇင်ဘာ", -"seconds ago" => "စက္ကန့်အနည်းငယ်က", -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"today" => "ယနေ့", -"yesterday" => "မနေ့က", -"_%n day ago_::_%n days ago_" => array(""), -"last month" => "ပြီးခဲ့သောလ", -"_%n month ago_::_%n months ago_" => array(""), -"last year" => "မနှစ်က", -"years ago" => "နှစ် အရင်က", "No" => "မဟုတ်ဘူး", "Yes" => "ဟုတ်", "Choose" => "ရွေးချယ်", diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php index 008c5ee3767..21cbf739b67 100644 --- a/core/l10n/nb_NO.php +++ b/core/l10n/nb_NO.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Bilde", "Audio" => "Audio", "Saving..." => "Lagrer...", -"seconds ago" => "for få sekunder siden", -"_%n minute ago_::_%n minutes ago_" => array("for %n minutt siden","for %n minutter siden"), -"_%n hour ago_::_%n hours ago_" => array("for %n time siden","for %n timer siden"), -"today" => "i dag", -"yesterday" => "i går", -"_%n day ago_::_%n days ago_" => array("for %n dag siden","for %n dager siden"), -"last month" => "forrige måned", -"_%n month ago_::_%n months ago_" => array("for %n måned siden","for %n måneder siden"), -"last year" => "i fjor", -"years ago" => "årevis siden", "Couldn't send reset email. Please contact your administrator." => "Klarte ikke å sende e-post for tilbakestilling. Kontakt administratoren.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Lenken for tilbakestilling av passordet ditt er sendt til din e-postadresse. Hvis du ikke mottar den innen rimelig tid, sjekk mappen for søppelpost.<br>Hvis du ikke finner den der, kontakt din lokale administrator.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Filene dine er kryptert. Hvis du ikke har aktivert gjenopprettingsnøkkelen, vil det være helt umulig å få tilbake dataene dine etter at pasordet ditt er tilbakestilt.<br />Hvis du er usikker på hva du skal gjøre, kontakt administratoren din før du fortsetter. <br />Vil du virkelig fortsette?", diff --git a/core/l10n/nds.php b/core/l10n/nds.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/nds.php +++ b/core/l10n/nds.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ne.php b/core/l10n/ne.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/ne.php +++ b/core/l10n/ne.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/nl.php b/core/l10n/nl.php index 4eb2b8b988e..f4ba6ae12f5 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Afbeelding", "Audio" => "Audio", "Saving..." => "Opslaan", -"seconds ago" => "seconden geleden", -"_%n minute ago_::_%n minutes ago_" => array("","%n minuten geleden"), -"_%n hour ago_::_%n hours ago_" => array("","%n uur geleden"), -"today" => "vandaag", -"yesterday" => "gisteren", -"_%n day ago_::_%n days ago_" => array("","%n dagen geleden"), -"last month" => "vorige maand", -"_%n month ago_::_%n months ago_" => array("","%n maanden geleden"), -"last year" => "vorig jaar", -"years ago" => "jaar geleden", "Couldn't send reset email. Please contact your administrator." => "Kon herstel e-mail niet versturen. Neem contact op met uw beheerder.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "De link om uw wachtwoord te herstellen is per e-mail naar u verstuurd. Als u dit bericht niet binnen redelijke tijd hebt ontvangen, controleer dan uw spammap. <br>Als het daar niet in zit, neem dan contact op met uw beheerder.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Uw bestanden zijn versleuteld. Als u de herstelsleutel niet hebt geactiveerd, is er geen mogelijk om uw gegevens terug te krijgen nadat uw wachtwoord is hersteld. <br>Als u niet weet wat u moet doen, neem dan eerst contact op met uw beheerder. <br>Wilt u echt verder gaan?", diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php index 2820bd356c0..3c58ea6555e 100644 --- a/core/l10n/nn_NO.php +++ b/core/l10n/nn_NO.php @@ -31,16 +31,7 @@ $TRANSLATIONS = array( "Settings" => "Innstillingar", "Folder" => "Mappe", "Saving..." => "Lagrar …", -"seconds ago" => "sekund sidan", -"_%n minute ago_::_%n minutes ago_" => array("%n minutt sidan","%n minutt sidan"), -"_%n hour ago_::_%n hours ago_" => array("%n time sidan","%n timar sidan"), -"today" => "i dag", -"yesterday" => "i går", -"_%n day ago_::_%n days ago_" => array("%n dag sidan","%n dagar sidan"), -"last month" => "førre månad", -"_%n month ago_::_%n months ago_" => array("%n månad sidan","%n månadar sidan"), -"last year" => "i fjor", -"years ago" => "år sidan", +"I know what I'm doing" => "Eg veit kva eg gjer", "Reset password" => "Nullstill passord", "No" => "Nei", "Yes" => "Ja", @@ -57,6 +48,8 @@ $TRANSLATIONS = array( "(all selected)" => "(alle valte)", "({count} selected)" => "({count} valte)", "Error loading file exists template" => "Klarte ikkje å lasta fil-finst-mal", +"Very weak password" => "Veldig svakt passord", +"Weak password" => "Svakt passord", "Shared" => "Delt", "Share" => "Del", "Error" => "Feil", @@ -65,7 +58,9 @@ $TRANSLATIONS = array( "Error while changing permissions" => "Feil ved endring av tillatingar", "Shared with you and the group {group} by {owner}" => "Delt med deg og gruppa {group} av {owner}", "Shared with you by {owner}" => "Delt med deg av {owner}", +"Share link" => "Del lenkje", "Password protect" => "Passordvern", +"Choose a password for the public link" => "Vel eit passord for den offentlege lenkja", "Allow Public Upload" => "Tillat offentleg opplasting", "Email link to person" => "Send lenkja over e-post", "Send" => "Send", @@ -75,6 +70,7 @@ $TRANSLATIONS = array( "Resharing is not allowed" => "Vidaredeling er ikkje tillate", "Shared in {item} with {user}" => "Delt i {item} med {brukar}", "Unshare" => "Udel", +"can share" => "kan dela", "can edit" => "kan endra", "access control" => "tilgangskontroll", "create" => "lag", diff --git a/core/l10n/nqo.php b/core/l10n/nqo.php index dbedde7e637..1191769faa7 100644 --- a/core/l10n/nqo.php +++ b/core/l10n/nqo.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"_%n day ago_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array(""), "_{count} file conflict_::_{count} file conflicts_" => array("") ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/oc.php b/core/l10n/oc.php index cba066819e0..42ea079ec96 100644 --- a/core/l10n/oc.php +++ b/core/l10n/oc.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "Configuracion", "Folder" => "Dorsièr", "Saving..." => "Enregistra...", -"seconds ago" => "segonda a", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "uèi", -"yesterday" => "ièr", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "mes passat", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "an passat", -"years ago" => "ans a", "Reset password" => "Senhal tornat botar", "No" => "Non", "Yes" => "Òc", diff --git a/core/l10n/or_IN.php b/core/l10n/or_IN.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/or_IN.php +++ b/core/l10n/or_IN.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/pa.php b/core/l10n/pa.php index 254684ad204..820ea0280eb 100644 --- a/core/l10n/pa.php +++ b/core/l10n/pa.php @@ -21,16 +21,6 @@ $TRANSLATIONS = array( "December" => "ਦਸੰਬਰ", "Settings" => "ਸੈਟਿੰਗ", "Saving..." => "...ਸੰਭਾਲਿਆ ਜਾ ਰਿਹਾ ਹੈ", -"seconds ago" => "ਸਕਿੰਟ ਪਹਿਲਾਂ", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "ਅੱਜ", -"yesterday" => "ਕੱਲ੍ਹ", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "ਪਿਛਲੇ ਮਹੀਨੇ", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "ਪਿਛਲੇ ਸਾਲ", -"years ago" => "ਸਾਲਾਂ ਪਹਿਲਾਂ", "No" => "ਨਹੀਂ", "Yes" => "ਹਾਂ", "Choose" => "ਚੁਣੋ", diff --git a/core/l10n/pl.php b/core/l10n/pl.php index b112167c2d0..bfd2b6da6ef 100644 --- a/core/l10n/pl.php +++ b/core/l10n/pl.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Obraz", "Audio" => "Dźwięk", "Saving..." => "Zapisywanie...", -"seconds ago" => "sekund temu", -"_%n minute ago_::_%n minutes ago_" => array("%n minute temu","%n minut temu","%n minut temu"), -"_%n hour ago_::_%n hours ago_" => array("%n godzine temu","%n godzin temu","%n godzin temu"), -"today" => "dziś", -"yesterday" => "wczoraj", -"_%n day ago_::_%n days ago_" => array("%n dzień temu","%n dni temu","%n dni temu"), -"last month" => "w zeszłym miesiącu", -"_%n month ago_::_%n months ago_" => array("%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"), -"last year" => "w zeszłym roku", -"years ago" => "lat temu", "Couldn't send reset email. Please contact your administrator." => "Nie mogę wysłać maila resetującego. Skontaktuj się z administratorem.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Link do zresetowanego hasła, został wysłany na twój adres e-mail. Jeśli nie dostałeś wiadomości w rozsądnym czasie, sprawdź folder ze spamem.<br> Jeśli nie ma wiadomości w tym folderze, skontaktuj się ze swoim administratorem.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Twoje pliki są zaszyfrowane. Jeśli nie włączyłeś klucza odzyskiwania, nie będzie możliwości odszyfrowania tych plików po zresetowaniu hasła.<br>Jeśli nie jesteś pewien co zrobić, skontaktuj się ze swoim administratorem, zanim bedziesz kontynuował. <br/> Czy chcesz kontynuować?\n ", diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php index 3e629689303..79abd1964d6 100644 --- a/core/l10n/pt_BR.php +++ b/core/l10n/pt_BR.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Imagem", "Audio" => "Audio", "Saving..." => "Salvando...", -"seconds ago" => "segundos atrás", -"_%n minute ago_::_%n minutes ago_" => array(" há %n minuto","há %n minutos"), -"_%n hour ago_::_%n hours ago_" => array("há %n hora","há %n horas"), -"today" => "hoje", -"yesterday" => "ontem", -"_%n day ago_::_%n days ago_" => array("há %n dia","há %n dias"), -"last month" => "último mês", -"_%n month ago_::_%n months ago_" => array("há %n mês","há %n meses"), -"last year" => "último ano", -"years ago" => "anos atrás", "Couldn't send reset email. Please contact your administrator." => "Não foi possível enviar e-mail de redefinição. Por favor, contate o administrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "O link para redefinir sua senha foi enviada para o seu e-mail. Se você não recebê-lo dentro de um período razoável de tempo, verifique suas pastas de spam/lixo. <br> Se ele não estiver lá, pergunte ao administrador do local.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Seus arquivos são criptografados. Se você não ativou a chave de recuperação, não haverá maneira de obter seus dados de volta após a sua senha ser redefinida. <br/> Se você não tem certeza do que fazer, por favor, contate o administrador antes de continuar. <br/> Você realmente deseja continuar?", diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php index 687dfce41ce..24f4d0c2f4d 100644 --- a/core/l10n/pt_PT.php +++ b/core/l10n/pt_PT.php @@ -5,6 +5,8 @@ $TRANSLATIONS = array( "Turned off maintenance mode" => "Desactivado o modo de manutenção", "Updated database" => "Base de dados actualizada", "Checked database schema update" => "Atualização do esquema da base de dados verificada.", +"Checked database schema update for apps" => "Atualização do esquema da base de dados verificada.", +"Updated \"%s\" to %s" => "Actualizado \"%s\" para %s", "Disabled incompatible apps: %s" => "Apps incompatíveis desativadas: %s", "No image or file provided" => "Não foi selecionado nenhum ficheiro para importar", "Unknown filetype" => "Ficheiro desconhecido", @@ -36,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Imagem", "Audio" => "Audio", "Saving..." => "A guardar...", -"seconds ago" => "Minutos atrás", -"_%n minute ago_::_%n minutes ago_" => array("%n minuto atrás","%n minutos atrás"), -"_%n hour ago_::_%n hours ago_" => array("%n hora atrás","%n horas atrás"), -"today" => "hoje", -"yesterday" => "ontem", -"_%n day ago_::_%n days ago_" => array("%n dia atrás","%n dias atrás"), -"last month" => "ultímo mês", -"_%n month ago_::_%n months ago_" => array("%n mês atrás","%n meses atrás"), -"last year" => "ano passado", -"years ago" => "anos atrás", "Couldn't send reset email. Please contact your administrator." => "Ocorreu um problema com o envio do e-mail, por favor contactar o administrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "O link para fazer reset à sua password foi enviado para o seu e-mail. <br> Se não o recebeu dentro um espaço de tempo aceitável, por favor verifique a sua pasta de SPAM.<br> Se não o encontrar, por favor contacte o seu administrador.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Os seus ficheiros estão encriptados. Se não activou a chave de recuperação, não vai ser possível recuperar os seus dados no caso da sua password ser reinicializada. Se não tem a certeza do que precisa de fazer, por favor contacte o seu administrador antes de continuar. Tem a certeza que quer continuar?", @@ -189,11 +181,14 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Obrigado pela sua paciência.", "You are accessing the server from an untrusted domain." => "Está a aceder ao servidor a partir de um domínio que não é de confiança.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Por favor contacte o seu administrador. Se é um administrador desta instância, configure as definições \"trusted_domain\" em config/config.php. Um exemplo de configuração é fornecido em config/config.sample.php.", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "Dependendo da configuração, como administrador, você também pode ser capaz de usar o botão abaixo para confiar neste domínio.", +"Add \"%s\" as trusted domain" => "Adicionar \"%s\" como um domínio de confiança", "%s will be updated to version %s." => "O %s irá ser atualizado para a versão %s.", "The following apps will be disabled:" => "As seguintes apps irão ser desativadas:", "The theme %s has been disabled." => "O tema %s foi desativado.", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Por favor garanta a cópia de segurança da base de dados e das pastas 'config' e 'data' antes de prosseguir.", "Start update" => "Iniciar atualização", +"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Para evitar tempos de espera com instalações maiores, você pode em vez disso, executar o seguinte comando a partir do diretório de instalação:", "This ownCloud instance is currently being updated, which may take a while." => "Esta instância do ownCloud está a ser actualizada, poderá demorar algum tempo.", "Please reload this page after a short time to continue using ownCloud." => "Por favo recarregue esta página após algum tempo para continuar a usar ownCloud." ); diff --git a/core/l10n/ro.php b/core/l10n/ro.php index 030c0fd0044..55f67a032d7 100644 --- a/core/l10n/ro.php +++ b/core/l10n/ro.php @@ -33,16 +33,6 @@ $TRANSLATIONS = array( "Image" => "Imagine", "Audio" => "Audio", "Saving..." => "Se salvează...", -"seconds ago" => "secunde în urmă", -"_%n minute ago_::_%n minutes ago_" => array("acum %n minut","acum %n minute","acum %n minute"), -"_%n hour ago_::_%n hours ago_" => array("acum %n oră","acum %n ore","acum %n ore"), -"today" => "astăzi", -"yesterday" => "ieri", -"_%n day ago_::_%n days ago_" => array("acum %n zi","acum %n zile","acum %n zile"), -"last month" => "ultima lună", -"_%n month ago_::_%n months ago_" => array("","","%n luni în urmă"), -"last year" => "ultimul an", -"years ago" => "ani în urmă", "I know what I'm doing" => "Eu știu ce fac", "Reset password" => "Resetează parola", "Password can not be changed. Please contact your administrator." => "Parola nu poate fi modificata. Vă rugăm să contactați administratorul dvs.", diff --git a/core/l10n/ru.php b/core/l10n/ru.php index 3201dc517f7..9cdaced35d5 100644 --- a/core/l10n/ru.php +++ b/core/l10n/ru.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Изображение", "Audio" => "Аудио", "Saving..." => "Сохранение...", -"seconds ago" => "только что", -"_%n minute ago_::_%n minutes ago_" => array("%n минуту назад","%n минуты назад","%n минут назад"), -"_%n hour ago_::_%n hours ago_" => array("%n час назад","%n часа назад","%n часов назад"), -"today" => "сегодня", -"yesterday" => "вчера", -"_%n day ago_::_%n days ago_" => array("%n день назад","%n дня назад","%n дней назад"), -"last month" => "месяц назад", -"_%n month ago_::_%n months ago_" => array("%n месяц назад","%n месяца назад","%n месяцев назад"), -"last year" => "год назад", -"years ago" => "несколько лет назад", "Couldn't send reset email. Please contact your administrator." => "Не удалось отправить письмо для сброса пароля. Пожалуйста, свяжитесь с вашим администратором.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Ссылка для восстановления пароля была отправлена на вашу почту. Если вы не получили её, проверьте папку спама.<br>Если там письма со ссылкой нет, то обратитесь к локальному администратору.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Ваши файлы зашифрованы. Если вы не включили ключ восстановления, то ваши данные будут недоступны после сброса пароля.<br />Если вы не уверены что делать дальше - обратитесь к локальному администратору.<br />Вытдействительно хотите продолжить?", diff --git a/core/l10n/si_LK.php b/core/l10n/si_LK.php index 37a70088b67..cad09c5ed10 100644 --- a/core/l10n/si_LK.php +++ b/core/l10n/si_LK.php @@ -23,16 +23,6 @@ $TRANSLATIONS = array( "Folder" => "ෆෝල්ඩරය", "Image" => "පින්තූරය", "Saving..." => "සුරැකෙමින් පවතී...", -"seconds ago" => "තත්පරයන්ට පෙර", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "අද", -"yesterday" => "ඊයේ", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "පෙර මාසයේ", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "පෙර අවුරුද්දේ", -"years ago" => "අවුරුදු කීපයකට පෙර", "Reset password" => "මුරපදය ප්රත්යාරම්භ කරන්න", "No" => "එපා", "Yes" => "ඔව්", diff --git a/core/l10n/sk.php b/core/l10n/sk.php index c0a4ae1257b..74d6a570c09 100644 --- a/core/l10n/sk.php +++ b/core/l10n/sk.php @@ -20,10 +20,6 @@ $TRANSLATIONS = array( "November" => "November", "December" => "December", "Settings" => "Nastavenia", -"_%n minute ago_::_%n minutes ago_" => array("","",""), -"_%n hour ago_::_%n hours ago_" => array("","",""), -"_%n day ago_::_%n days ago_" => array("","",""), -"_%n month ago_::_%n months ago_" => array("","",""), "_{count} file conflict_::_{count} file conflicts_" => array("","",""), "Cancel" => "Zrušiť", "Share" => "Zdieľať", diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index b640bd53bdf..847184b3bdb 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "Obrázok", "Audio" => "Zvuk", "Saving..." => "Ukladám...", -"seconds ago" => "pred sekundami", -"_%n minute ago_::_%n minutes ago_" => array("pred %n minútou","pred %n minútami","pred %n minútami"), -"_%n hour ago_::_%n hours ago_" => array("pred %n hodinou","pred %n hodinami","pred %n hodinami"), -"today" => "dnes", -"yesterday" => "včera", -"_%n day ago_::_%n days ago_" => array("pred %n dňom","pred %n dňami","pred %n dňami"), -"last month" => "minulý mesiac", -"_%n month ago_::_%n months ago_" => array("pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"), -"last year" => "minulý rok", -"years ago" => "pred rokmi", "Couldn't send reset email. Please contact your administrator." => "Nemožno poslať email pre obnovu. Kontaktujte prosím vášho administrátora.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Odkaz na obnovu hesla bol odoslaný na váš email. Pokiaľ ho neobdržíte v primeranom čase, skontrolujte spam / priečinok nevyžiadanej pošty. <br> Ak tam nie je, kontaktujte svojho administrátora.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Súbory sú zašifrované. Ak ste nepovolili kľúč pre obnovenie, neexistuje žiadny spôsob, ako obnoviť vaše dáta po obnovení vášho hesla. <br /> Ak si nie ste istí čo urobiť, prosím skôr než budete pokračovať, obráťte sa na administrátora. <br /> Naozaj chcete pokračovať?", diff --git a/core/l10n/sl.php b/core/l10n/sl.php index 77df9870cfc..7212e5a27b3 100644 --- a/core/l10n/sl.php +++ b/core/l10n/sl.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Slika", "Audio" => "Zvok", "Saving..." => "Poteka shranjevanje ...", -"seconds ago" => "pred nekaj sekundami", -"_%n minute ago_::_%n minutes ago_" => array("pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"), -"_%n hour ago_::_%n hours ago_" => array("pred %n uro","pred %n urama","pred %n urami","pred %n urami"), -"today" => "danes", -"yesterday" => "včeraj", -"_%n day ago_::_%n days ago_" => array("pred %n dnevom","pred %n dnevoma","pred %n dnevi","pred %n dnevi"), -"last month" => "zadnji mesec", -"_%n month ago_::_%n months ago_" => array("pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"), -"last year" => "lansko leto", -"years ago" => "let nazaj", "Couldn't send reset email. Please contact your administrator." => "Ni mogoče nastaviti elektronskega naslova za ponastavitev. Stopite v stik s skrbnikom sistema.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Povezava za ponastavitev gesla je bila poslana na naveden elektronski naslov. V kolikor sporočila ne dobite v kratkem, preverite tudi mapo neželene pošte.<br> Če sporočila ni niti v tej mapi, stopite v stik s skrbnikom.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Datoteke so šifrirane. Če niste omogočili obnovitvenega ključa, po ponastavitvi gesla ne bo mogoč dostop do datotek.<br />V primeru, da niste prepričani, kaj storiti, stopite v stik s skrbnikom sistema.<br />Ali ste prepričani, da želite nadaljevati?", diff --git a/core/l10n/sq.php b/core/l10n/sq.php index 1ce7cc0e007..498bc7362b8 100644 --- a/core/l10n/sq.php +++ b/core/l10n/sq.php @@ -25,16 +25,6 @@ $TRANSLATIONS = array( "Settings" => "Parametra", "Folder" => "Dosje", "Saving..." => "Duke ruajtur...", -"seconds ago" => "sekonda më parë", -"_%n minute ago_::_%n minutes ago_" => array("%n minut më parë","%n minuta më parë"), -"_%n hour ago_::_%n hours ago_" => array("%n orë më parë","%n orë më parë"), -"today" => "sot", -"yesterday" => "dje", -"_%n day ago_::_%n days ago_" => array("%n ditë më parë","%n ditë më parë"), -"last month" => "muajin e shkuar", -"_%n month ago_::_%n months ago_" => array("%n muaj më parë","%n muaj më parë"), -"last year" => "vitin e shkuar", -"years ago" => "vite më parë", "Reset password" => "Rivendos kodin", "No" => "Jo", "Yes" => "Po", diff --git a/core/l10n/sr.php b/core/l10n/sr.php index aa4e1198618..27df2546c78 100644 --- a/core/l10n/sr.php +++ b/core/l10n/sr.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "Поставке", "Folder" => "фасцикла", "Saving..." => "Чување у току...", -"seconds ago" => "пре неколико секунди", -"_%n minute ago_::_%n minutes ago_" => array("","",""), -"_%n hour ago_::_%n hours ago_" => array("","",""), -"today" => "данас", -"yesterday" => "јуче", -"_%n day ago_::_%n days ago_" => array("","",""), -"last month" => "прошлог месеца", -"_%n month ago_::_%n months ago_" => array("","",""), -"last year" => "прошле године", -"years ago" => "година раније", "Reset password" => "Ресетуј лозинку", "No" => "Не", "Yes" => "Да", diff --git a/core/l10n/sr@latin.php b/core/l10n/sr@latin.php index 578341697e4..459d4d812de 100644 --- a/core/l10n/sr@latin.php +++ b/core/l10n/sr@latin.php @@ -23,16 +23,6 @@ $TRANSLATIONS = array( "File" => "Fajl", "Folder" => "Direktorijum", "Image" => "Slika", -"seconds ago" => "Pre par sekundi", -"_%n minute ago_::_%n minutes ago_" => array("pre %n minuta","pre %n minuta","pre %n minuta"), -"_%n hour ago_::_%n hours ago_" => array("pre %n sat","pre %n sati","pre %n sati"), -"today" => "Danas", -"yesterday" => "juče", -"_%n day ago_::_%n days ago_" => array("Pre %n dan.","Pre %n dana.","Pre %n dana."), -"last month" => "prošlog meseca", -"_%n month ago_::_%n months ago_" => array("","",""), -"last year" => "prošle godine", -"years ago" => "pre nekoliko godina", "I know what I'm doing" => "Znam šta radim", "Reset password" => "Resetuj lozinku", "No" => "Ne", diff --git a/core/l10n/su.php b/core/l10n/su.php index dbedde7e637..1191769faa7 100644 --- a/core/l10n/su.php +++ b/core/l10n/su.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"_%n day ago_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array(""), "_{count} file conflict_::_{count} file conflicts_" => array("") ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/sv.php b/core/l10n/sv.php index 126a214197a..caa6ff5eb2d 100644 --- a/core/l10n/sv.php +++ b/core/l10n/sv.php @@ -35,16 +35,6 @@ $TRANSLATIONS = array( "Image" => "Bild", "Audio" => "Ljud", "Saving..." => "Sparar...", -"seconds ago" => "sekunder sedan", -"_%n minute ago_::_%n minutes ago_" => array("%n minut sedan","%n minuter sedan"), -"_%n hour ago_::_%n hours ago_" => array("%n timme sedan","%n timmar sedan"), -"today" => "i dag", -"yesterday" => "i går", -"_%n day ago_::_%n days ago_" => array("%n dag sedan","%n dagar sedan"), -"last month" => "förra månaden", -"_%n month ago_::_%n months ago_" => array("%n månad sedan","%n månader sedan"), -"last year" => "förra året", -"years ago" => "år sedan", "Couldn't send reset email. Please contact your administrator." => "Kunde inte skicka återställningsmail. Vänligen kontakta din administratör.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Länken för att återställa ditt lösenord har skickats till din e-mail. Om du inte mottar något inom kort, kontrollera spam/skräpkorgen.<br>Om det inte finns något där, vänligen kontakta din lokala administratör.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Dina filer är krypterade. Om du inte angett någon återställningsnyckel, kommer det att vara omöjligt att få tillbaka dina data efter att lösenordet är återställt..<br />Om du är osäker på vad du ska göra, vänligen kontakta din administratör innan du fortsätter.<br />Är du verkligen helt säker på att du vill fortsätta?", diff --git a/core/l10n/sw_KE.php b/core/l10n/sw_KE.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/sw_KE.php +++ b/core/l10n/sw_KE.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ta_IN.php b/core/l10n/ta_IN.php index da1021cd33e..f363cf0c9bf 100644 --- a/core/l10n/ta_IN.php +++ b/core/l10n/ta_IN.php @@ -1,10 +1,6 @@ <?php $TRANSLATIONS = array( "Settings" => "அமைப்புகள்", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("",""), "Send" => "அனுப்பவும்" ); diff --git a/core/l10n/ta_LK.php b/core/l10n/ta_LK.php index 000a1022f4c..0cd67b00e7d 100644 --- a/core/l10n/ta_LK.php +++ b/core/l10n/ta_LK.php @@ -22,16 +22,6 @@ $TRANSLATIONS = array( "Settings" => "அமைப்புகள்", "Folder" => "கோப்புறை", "Saving..." => "சேமிக்கப்படுகிறது...", -"seconds ago" => "செக்கன்களுக்கு முன்", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "இன்று", -"yesterday" => "நேற்று", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "கடந்த மாதம்", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "கடந்த வருடம்", -"years ago" => "வருடங்களுக்கு முன்", "Reset password" => "மீளமைத்த கடவுச்சொல்", "No" => "இல்லை", "Yes" => "ஆம்", diff --git a/core/l10n/te.php b/core/l10n/te.php index 9ca5068bbc1..c8b742c8c90 100644 --- a/core/l10n/te.php +++ b/core/l10n/te.php @@ -21,16 +21,6 @@ $TRANSLATIONS = array( "December" => "డిసెంబర్", "Settings" => "అమరికలు", "Folder" => "సంచయం", -"seconds ago" => "క్షణాల క్రితం", -"_%n minute ago_::_%n minutes ago_" => array("%n నిమిషం క్రితం","%n నిమిషాల క్రితం"), -"_%n hour ago_::_%n hours ago_" => array("%n గంట క్రితం","%n గంటల క్రితం"), -"today" => "ఈరోజు", -"yesterday" => "నిన్న", -"_%n day ago_::_%n days ago_" => array("%n రోజు క్రితం","%n రోజుల క్రితం"), -"last month" => "పోయిన నెల", -"_%n month ago_::_%n months ago_" => array("%n నెల క్రితం","%n నెలల క్రితం"), -"last year" => "పోయిన సంవత్సరం", -"years ago" => "సంవత్సరాల క్రితం", "No" => "కాదు", "Yes" => "అవును", "Ok" => "సరే", diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php index 3f03b3ff8c2..67a5c34e569 100644 --- a/core/l10n/th_TH.php +++ b/core/l10n/th_TH.php @@ -23,16 +23,6 @@ $TRANSLATIONS = array( "Folder" => "แฟ้มเอกสาร", "Image" => "รูปภาพ", "Saving..." => "กำลังบันทึกข้อมูล...", -"seconds ago" => "วินาที ก่อนหน้านี้", -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"today" => "วันนี้", -"yesterday" => "เมื่อวานนี้", -"_%n day ago_::_%n days ago_" => array(""), -"last month" => "เดือนที่แล้ว", -"_%n month ago_::_%n months ago_" => array(""), -"last year" => "ปีที่แล้ว", -"years ago" => "ปี ที่ผ่านมา", "Reset password" => "เปลี่ยนรหัสผ่าน", "No" => "ไม่ตกลง", "Yes" => "ตกลง", diff --git a/core/l10n/tr.php b/core/l10n/tr.php index 30246849a22..762f3d286a0 100644 --- a/core/l10n/tr.php +++ b/core/l10n/tr.php @@ -38,16 +38,6 @@ $TRANSLATIONS = array( "Image" => "Resim", "Audio" => "Ses", "Saving..." => "Kaydediliyor...", -"seconds ago" => "saniyeler önce", -"_%n minute ago_::_%n minutes ago_" => array("%n dakika önce","%n dakika önce"), -"_%n hour ago_::_%n hours ago_" => array("%n saat önce","%n saat önce"), -"today" => "bugün", -"yesterday" => "dün", -"_%n day ago_::_%n days ago_" => array("%n gün önce","%n gün önce"), -"last month" => "geçen ay", -"_%n month ago_::_%n months ago_" => array("%n ay önce","%n ay önce"), -"last year" => "geçen yıl", -"years ago" => "yıllar önce", "Couldn't send reset email. Please contact your administrator." => "Sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile iletişime geçin.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi. Makul bir süre içerisinde almadıysanız spam/gereksiz klasörlerini kontrol ediniz.<br>Bu konumlarda da yoksa yerel sistem yöneticinize sorunuz.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmemişseniz, parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak.<br />Ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile iletişime geçin.<br />Gerçekten devam etmek istiyor musunuz?", diff --git a/core/l10n/tzm.php b/core/l10n/tzm.php index 7f8ce6cb954..63fd3b90a53 100644 --- a/core/l10n/tzm.php +++ b/core/l10n/tzm.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"; diff --git a/core/l10n/ug.php b/core/l10n/ug.php index 10179c3af48..fb52f5483a2 100644 --- a/core/l10n/ug.php +++ b/core/l10n/ug.php @@ -22,12 +22,6 @@ $TRANSLATIONS = array( "Settings" => "تەڭشەكلەر", "Folder" => "قىسقۇچ", "Saving..." => "ساقلاۋاتىدۇ…", -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"today" => "بۈگۈن", -"yesterday" => "تۈنۈگۈن", -"_%n day ago_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array(""), "No" => "ياق", "Yes" => "ھەئە", "Ok" => "جەزملە", diff --git a/core/l10n/uk.php b/core/l10n/uk.php index be378b6cd6a..cce88a15938 100644 --- a/core/l10n/uk.php +++ b/core/l10n/uk.php @@ -32,16 +32,6 @@ $TRANSLATIONS = array( "File" => "Файл", "Folder" => "Тека", "Saving..." => "Зберігаю...", -"seconds ago" => "секунди тому", -"_%n minute ago_::_%n minutes ago_" => array("%n хвилину тому","%n хвилини тому","%n хвилин тому"), -"_%n hour ago_::_%n hours ago_" => array("%n годину тому","%n години тому","%n годин тому"), -"today" => "сьогодні", -"yesterday" => "вчора", -"_%n day ago_::_%n days ago_" => array("%n день тому","%n дні тому","%n днів тому"), -"last month" => "минулого місяця", -"_%n month ago_::_%n months ago_" => array("%n місяць тому","%n місяці тому","%n місяців тому"), -"last year" => "минулого року", -"years ago" => "роки тому", "Reset password" => "Скинути пароль", "No" => "Ні", "Yes" => "Так", diff --git a/core/l10n/ur.php b/core/l10n/ur.php index ffcdde48d47..aff098dff1f 100644 --- a/core/l10n/ur.php +++ b/core/l10n/ur.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), -"_%n day ago_::_%n days ago_" => array("",""), -"_%n month ago_::_%n months ago_" => array("",""), "_{count} file conflict_::_{count} file conflicts_" => array("","") ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ur_PK.php b/core/l10n/ur_PK.php index f603847ddd4..d82210e5629 100644 --- a/core/l10n/ur_PK.php +++ b/core/l10n/ur_PK.php @@ -28,16 +28,6 @@ $TRANSLATIONS = array( "December" => "دسمبر", "Settings" => "ترتیبات", "Saving..." => "محفوظ ھو رہا ہے ...", -"seconds ago" => "سیکنڈز پہلے", -"_%n minute ago_::_%n minutes ago_" => array("%n منٹس پہلے","%n منٹس پہلے"), -"_%n hour ago_::_%n hours ago_" => array("",""), -"today" => "آج", -"yesterday" => "کل", -"_%n day ago_::_%n days ago_" => array("",""), -"last month" => "پچھلے مہنیے", -"_%n month ago_::_%n months ago_" => array("",""), -"last year" => "پچھلے سال", -"years ago" => "سالوں پہلے", "Reset password" => "ری سیٹ پاسورڈ", "No" => "نہیں", "Yes" => "ہاں", diff --git a/core/l10n/uz.php b/core/l10n/uz.php index dbedde7e637..1191769faa7 100644 --- a/core/l10n/uz.php +++ b/core/l10n/uz.php @@ -1,9 +1,5 @@ <?php $TRANSLATIONS = array( -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"_%n day ago_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array(""), "_{count} file conflict_::_{count} file conflicts_" => array("") ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/vi.php b/core/l10n/vi.php index 1da0fbf194b..6ca34d2c8ce 100644 --- a/core/l10n/vi.php +++ b/core/l10n/vi.php @@ -31,16 +31,6 @@ $TRANSLATIONS = array( "Settings" => "Cài đặt", "Folder" => "Thư mục", "Saving..." => "Đang lưu...", -"seconds ago" => "vài giây trước", -"_%n minute ago_::_%n minutes ago_" => array("%n phút trước"), -"_%n hour ago_::_%n hours ago_" => array("%n giờ trước"), -"today" => "hôm nay", -"yesterday" => "hôm qua", -"_%n day ago_::_%n days ago_" => array("%n ngày trước"), -"last month" => "tháng trước", -"_%n month ago_::_%n months ago_" => array("%n tháng trước"), -"last year" => "năm trước", -"years ago" => "năm trước", "Reset password" => "Khôi phục mật khẩu", "No" => "Không", "Yes" => "Có", diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php index 920144db740..7cb94219ad7 100644 --- a/core/l10n/zh_CN.php +++ b/core/l10n/zh_CN.php @@ -36,16 +36,6 @@ $TRANSLATIONS = array( "Image" => "图像", "Audio" => "声音", "Saving..." => "保存中", -"seconds ago" => "秒前", -"_%n minute ago_::_%n minutes ago_" => array("%n 分钟前"), -"_%n hour ago_::_%n hours ago_" => array("%n 小时前"), -"today" => "今天", -"yesterday" => "昨天", -"_%n day ago_::_%n days ago_" => array("%n 天前"), -"last month" => "上月", -"_%n month ago_::_%n months ago_" => array("%n 月前"), -"last year" => "去年", -"years ago" => "年前", "Couldn't send reset email. Please contact your administrator." => "未能成功发送重置邮件,请联系管理员。", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "密码重置邮件已经发送到您的电子邮箱中。如果您长时间没能收到邮件,请检查您的垃圾/广告邮件箱。<br>如果未能收到邮件请联系管理员。", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "您的文件已被加密。如果您没有启用恢复密钥,密码重置后您将无法取回您的文件。<br />在继续之前,如果有疑问请联系您的管理员。<br />确认继续?", diff --git a/core/l10n/zh_HK.php b/core/l10n/zh_HK.php index c94a18433d6..59b7632ee46 100644 --- a/core/l10n/zh_HK.php +++ b/core/l10n/zh_HK.php @@ -25,16 +25,6 @@ $TRANSLATIONS = array( "Image" => "圖片", "Audio" => "聲音", "Saving..." => "儲存中...", -"seconds ago" => "秒前", -"_%n minute ago_::_%n minutes ago_" => array("%n 分鐘前"), -"_%n hour ago_::_%n hours ago_" => array("%n 小時前"), -"today" => "今日", -"yesterday" => "昨日", -"_%n day ago_::_%n days ago_" => array("%n 日前"), -"last month" => "上個月", -"_%n month ago_::_%n months ago_" => array("%n 月前"), -"last year" => "上年", -"years ago" => "年前", "Reset password" => "重設密碼", "No" => "否", "Yes" => "是", diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php index c3e34a0ad4d..8c68c240135 100644 --- a/core/l10n/zh_TW.php +++ b/core/l10n/zh_TW.php @@ -5,6 +5,8 @@ $TRANSLATIONS = array( "Turned off maintenance mode" => "已停用維護模式", "Updated database" => "已更新資料庫", "Checked database schema update" => "已檢查資料庫格式更新", +"Checked database schema update for apps" => "已檢查應用程式的資料庫格式更新", +"Updated \"%s\" to %s" => "已更新 %s 到 %s", "Disabled incompatible apps: %s" => "停用不相容的應用程式:%s", "No image or file provided" => "未提供圖片或檔案", "Unknown filetype" => "未知的檔案類型", @@ -36,21 +38,12 @@ $TRANSLATIONS = array( "Image" => "圖片", "Audio" => "音訊", "Saving..." => "儲存中...", -"seconds ago" => "幾秒前", -"_%n minute ago_::_%n minutes ago_" => array("%n 分鐘前"), -"_%n hour ago_::_%n hours ago_" => array("%n 小時前"), -"today" => "今天", -"yesterday" => "昨天", -"_%n day ago_::_%n days ago_" => array("%n 天前"), -"last month" => "上個月", -"_%n month ago_::_%n months ago_" => array("%n 個月前"), -"last year" => "去年", -"years ago" => "幾年前", "Couldn't send reset email. Please contact your administrator." => "無法寄送重設 email ,請聯絡系統管理員", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "重設密碼的連結已經 email 至你的信箱,如果你在一段時間內沒收到,請檢查垃圾郵件資料夾,如果還是找不到,請聯絡系統管理員。", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "您的檔案是加密的,如果您沒有啟用救援金鑰,當您重設密碼之後將無法存取您的資料。<br/>如果不確定該怎麼做,請聯絡您的系統管理員。<br/>您確定要繼續嗎?", "I know what I'm doing" => "我知道我在幹嘛", "Reset password" => "重設密碼", +"Password can not be changed. Please contact your administrator." => "無法變更密碼,請聯絡您的系統管理員", "No" => "否", "Yes" => "是", "Choose" => "選擇", @@ -60,6 +53,7 @@ $TRANSLATIONS = array( "_{count} file conflict_::_{count} file conflicts_" => array("{count} 個檔案衝突"), "One file conflict" => "一個檔案衝突", "New Files" => "新檔案", +"Already existing files" => "已經存在的檔案", "Which files do you want to keep?" => "您要保留哪一個檔案?", "If you select both versions, the copied file will have a number added to its name." => "如果您同時選擇兩個版本,被複製的那個檔案名稱後面會加上編號", "Cancel" => "取消", @@ -73,6 +67,7 @@ $TRANSLATIONS = array( "Good password" => "好的密碼", "Strong password" => "很強的密碼", "Shared" => "已分享", +"Shared with {recipients}" => "與 {recipients} 分享", "Share" => "分享", "Error" => "錯誤", "Error while sharing" => "分享時發生錯誤", @@ -83,6 +78,7 @@ $TRANSLATIONS = array( "Share with user or group …" => "與用戶或群組分享", "Share link" => "分享連結", "Password protect" => "密碼保護", +"Choose a password for the public link" => "為公開連結選一個密碼", "Allow Public Upload" => "允許任何人上傳", "Email link to person" => "將連結 email 給別人", "Send" => "寄出", @@ -112,7 +108,13 @@ $TRANSLATIONS = array( "Edit tags" => "編輯標籤", "Error loading dialog template: {error}" => "載入對話樣板出錯:{error}", "No tags selected for deletion." => "沒有選擇要刪除的標籤", +"Updating {productName} to version {version}, this may take a while." => "正在更新 {productName} 到版本 {version} ,請稍候", +"Please reload the page." => "請重新整理頁面", +"The update was unsuccessful." => "更新失敗", "The update was successful. Redirecting you to ownCloud now." => "升級成功,正將您重新導向至 ownCloud 。", +"Couldn't reset password because the token is invalid" => "無法重設密碼因為 token 無效", +"Couldn't send reset email. Please make sure your username is correct." => "無法寄送重設 email ,請確認您的帳號輸入正確", +"Couldn't send reset email because there is no email address for this username. Please contact your administrator." => "無法寄送重設 email ,因為這個帳號沒有設定 email 地址,請聯絡您的系統管理員", "%s password reset" => "%s 密碼重設", "Use the following link to reset your password: {link}" => "請至以下連結重設您的密碼: {link}", "You will receive a link to reset your password via Email." => "重設密碼的連結將會寄到您的電子郵件信箱。", @@ -121,6 +123,9 @@ $TRANSLATIONS = array( "Yes, I really want to reset my password now" => "對,我現在想要重設我的密碼。", "Reset" => "重設", "New password" => "新密碼", +"New Password" => "新密碼", +"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "不支援 Mac OS X 而且 %s 在這個平台上面無法正常運作,請自行衡量風險!", +"For the best results, please consider using a GNU/Linux server instead." => "請考慮使用 GNU/Linux 伺服器以取得最好的效果", "Personal" => "個人", "Users" => "使用者", "Apps" => "應用程式", @@ -129,12 +134,14 @@ $TRANSLATIONS = array( "Error loading tags" => "載入標籤出錯", "Tag already exists" => "標籤已經存在", "Error deleting tag(s)" => "刪除標籤出錯", +"Error tagging" => "貼標籤發生錯誤", "Error untagging" => "移除標籤失敗", "Error favoriting" => "加入最愛時出錯", "Error unfavoriting" => "從最愛移除出錯", "Access forbidden" => "存取被拒", "Cloud not found" => "找不到網頁", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "嗨,\n\n%s 和你分享了 %s ,到這裡看它:%s\n", +"The share will expire on %s." => "這個分享將會於 %s 過期", "Cheers!" => "太棒了!", "Security Warning" => "安全性警告", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "您的 PHP 版本無法抵抗 NULL Byte 攻擊 (CVE-2006-7243)", @@ -145,24 +152,42 @@ $TRANSLATIONS = array( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "請參考<a href=\"%s\" target=\"_blank\">說明文件</a>以瞭解如何正確設定您的伺服器。", "Create an <strong>admin account</strong>" => "建立一個<strong>管理者帳號</strong>", "Password" => "密碼", +"Storage & database" => "儲存空間和資料庫", "Data folder" => "資料儲存位置", "Configure the database" => "設定資料庫", +"Only %s is available." => "剩下 %s 可使用", "Database user" => "資料庫使用者", "Database password" => "資料庫密碼", "Database name" => "資料庫名稱", "Database tablespace" => "資料庫 tablespace", "Database host" => "資料庫主機", +"SQLite will be used as database. For larger installations we recommend to change this." => "將會使用 SQLite 作為資料庫,在大型安裝中建議使用其他種資料庫", "Finish setup" => "完成設定", "Finishing …" => "即將完成…", +"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "這個應用程式需要啟用 Javascript 才能正常運作,請<a href=\"http://enable-javascript.com/\" target=\"_blank\">啟用 Javascript</a> 然後重新載入頁面", "%s is available. Get more information on how to update." => "%s 已經釋出,瞭解更多資訊以進行更新。", "Log out" => "登出", "Server side authentication failed!" => "伺服器端認證失敗!", "Please contact your administrator." => "請聯絡系統管理員。", +"Forgot your password? Reset it!" => "忘了密碼?重設它!", "remember" => "記住", "Log in" => "登入", "Alternative Logins" => "其他登入方法", +"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "嗨,<br><br>%s 與你分享了<strong>%s</strong>。<br><a href=\"%s\">檢視</a><br><br>", +"This ownCloud instance is currently in single user mode." => "這個 ownCloud 伺服器目前運作於單一使用者模式", +"This means only administrators can use the instance." => "這表示只有系統管理員能夠使用", "Contact your system administrator if this message persists or appeared unexpectedly." => "若這個訊息持續出現,請聯絡系統管理員", "Thank you for your patience." => "感謝您的耐心", +"You are accessing the server from an untrusted domain." => "你正在從一個未信任的網域存取伺服器", +"Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "請聯絡您的系統管理員,如果您就是系統管理員,請設定 config/config.php 中的 \"trusted_domain\" 選項。範例設定提供於 config/config.sample.php", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "依照設定而定,您身為系統管理員可能也可以使用底下的按鈕來信任這個網域", +"Add \"%s\" as trusted domain" => "將 %s 加入到信任的網域", +"%s will be updated to version %s." => "%s 將會被升級到版本 %s", +"The following apps will be disabled:" => "這些應用程式會被停用:", +"The theme %s has been disabled." => "主題 %s 已經被停用", +"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "在繼續之前,請備份資料庫、config 目錄及資料目錄", +"Start update" => "開始升級", +"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "在大型安裝上,為了避免升級請求逾時,你也可以在安裝目錄執行下列指令:", "This ownCloud instance is currently being updated, which may take a while." => "ownCloud 正在升級,請稍待一會。", "Please reload this page after a short time to continue using ownCloud." => "請稍後重新載入這個頁面就可以繼續使用 ownCloud" ); diff --git a/core/routes.php b/core/routes.php index ff79c450508..28a3680dd91 100644 --- a/core/routes.php +++ b/core/routes.php @@ -6,13 +6,14 @@ * See the COPYING-README file. */ -use OC\Core\LostPassword\Application; +use OC\Core\Application; $application = new Application(); $application->registerRoutes($this, array('routes' => array( array('name' => 'lost#email', 'url' => '/lostpassword/email', 'verb' => 'POST'), array('name' => 'lost#resetform', 'url' => '/lostpassword/reset/form/{token}/{userId}', 'verb' => 'GET'), array('name' => 'lost#setPassword', 'url' => '/lostpassword/set/{token}/{userId}', 'verb' => 'POST'), + array('name' => 'user#getDisplayNames', 'url' => '/displaynames', 'verb' => 'POST'), ) )); diff --git a/core/setup/controller.php b/core/setup/controller.php index c72f06fc2df..5da94e83ccc 100644 --- a/core/setup/controller.php +++ b/core/setup/controller.php @@ -132,7 +132,7 @@ class Controller { } if (\OC_Util::runningOnMac()) { - $l10n = \OC_L10N::get('core'); + $l10n = \OC::$server->getL10N('core'); $themeName = \OC_Util::getTheme(); $theme = new \OC_Defaults(); $errors[] = array( diff --git a/core/strings.php b/core/strings.php index 01ab3866089..ebae63bf928 100644 --- a/core/strings.php +++ b/core/strings.php @@ -1,7 +1,7 @@ <?php //some strings that are used in /lib but wont be translatable unless they are in /core too -$l=OC_L10N::get('core'); +$l = \OC::$server->getL10N('core'); $l->t("Personal"); $l->t("Users"); $l->t("Apps"); diff --git a/core/user/usercontroller.php b/core/user/usercontroller.php new file mode 100644 index 00000000000..2570e3b5b05 --- /dev/null +++ b/core/user/usercontroller.php @@ -0,0 +1,66 @@ +<?php +/** + * Copyright (c) 2014 Jörn Dreyer <jfd@owncloud.com> + * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\User; + +use \OCP\AppFramework\Controller; +use \OCP\AppFramework\Http\JSONResponse; +use \OCP\IRequest; + +class UserController extends Controller { + /** + * @var \OCP\IUserManager + */ + protected $userManager; + + /** + * @var \OC_Defaults + */ + protected $defaults; + + public function __construct($appName, + IRequest $request, + $userManager, + $defaults + ) { + parent::__construct($appName, $request); + $this->userManager = $userManager; + $this->defaults = $defaults; + } + + /** + * Lookup user display names + * + * @NoAdminRequired + * + * @param array $users + * + * @return JSONResponse + */ + public function getDisplayNames($users) { + $result = array(); + + foreach ($users as $user) { + $userObject = $this->userManager->get($user); + if (is_object($userObject)) { + $result[$user] = $userObject->getDisplayName(); + } else { + $result[$user] = $user; + } + } + + $json = array( + 'users' => $result, + 'status' => 'success' + ); + + return new JSONResponse($json); + + } +} |