diff --git a/app/assets/javascripts/discourse/components/date-picker.js.es6 b/app/assets/javascripts/discourse/components/date-picker.js.es6 index ea86648784a..de36036616c 100644 --- a/app/assets/javascripts/discourse/components/date-picker.js.es6 +++ b/app/assets/javascripts/discourse/components/date-picker.js.es6 @@ -26,7 +26,7 @@ export default Em.Component.extend({ weekdays: moment.weekdays(), weekdaysShort: moment.weekdaysShort() }, - onSelect: date => this.set("value", moment(date).format("YYYY-MM-DD")) + onSelect: date => this.set("value", moment(date).locale("en").format("YYYY-MM-DD")) }; this._picker = new Pikaday(_.merge(default_opts, this._opts())); diff --git a/lib/javascripts/moment.js b/lib/javascripts/moment.js index 7299fa45c2a..d5e925c1d5d 100644 --- a/lib/javascripts/moment.js +++ b/lib/javascripts/moment.js @@ -1,5 +1,5 @@ //! moment.js -//! version : 2.11.2 +//! version : 2.13.0 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com @@ -23,7 +23,7 @@ } function isArray(input) { - return Object.prototype.toString.call(input) === '[object Array]'; + return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; } function isDate(input) { @@ -76,7 +76,9 @@ invalidMonth : null, invalidFormat : false, userInvalidated : false, - iso : false + iso : false, + parsedDateParts : [], + meridiem : null }; } @@ -87,9 +89,30 @@ return m._pf; } + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this); + var len = t.length >>> 0; + + for (var i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + function valid__isValid(m) { if (m._isValid == null) { var flags = getParsingFlags(m); + var parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); m._isValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && @@ -97,7 +120,8 @@ !flags.invalidWeekday && !flags.nullInput && !flags.invalidFormat && - !flags.userInvalidated; + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); if (m._strict) { m._isValid = m._isValid && @@ -229,7 +253,105 @@ return diffs + lengthDiff; } - function Locale() { + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (utils_hooks__hooks.deprecationHandler != null) { + utils_hooks__hooks.deprecationHandler(null, msg); + } + if (firstTime) { + warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (utils_hooks__hooks.deprecationHandler != null) { + utils_hooks__hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + utils_hooks__hooks.deprecationHandler = null; + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function isObject(input) { + return Object.prototype.toString.call(input) === '[object Object]'; + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; } // internal storage for locale config files @@ -305,11 +427,25 @@ return globalLocale._abbr; } - function defineLocale (name, values) { - if (values !== null) { - values.abbr = name; - locales[name] = locales[name] || new Locale(); - locales[name].set(values); + function defineLocale (name, config) { + if (config !== null) { + config.abbr = name; + if (locales[name] != null) { + deprecateSimple('defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale'); + config = mergeConfigs(locales[name]._config, config); + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + config = mergeConfigs(locales[config.parentLocale]._config, config); + } else { + // treat as if there is no base config + deprecateSimple('parentLocaleUndefined', + 'specified parentLocale is not defined yet'); + } + } + locales[name] = new Locale(config); // backwards compat for now: also set the locale locale_locales__getSetGlobalLocale(name); @@ -322,6 +458,31 @@ } } + function updateLocale(name, config) { + if (config != null) { + var locale; + if (locales[name] != null) { + config = mergeConfigs(locales[name]._config, config); + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + // returns locale data function locale_locales__getLocale (key) { var locale; @@ -346,6 +507,10 @@ return chooseLocale(key); } + function locale_locales__listLocales() { + return keys(locales); + } + var aliases = {}; function addUnitAlias (unit, shorthand) { @@ -374,10 +539,6 @@ return normalizedInput; } - function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; - } - function makeGetSet (unit, keepTime) { return function (value) { if (value != null) { @@ -426,7 +587,7 @@ Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } - var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; @@ -479,7 +640,7 @@ } return function (mom) { - var output = ''; + var output = '', i; for (i = 0; i < length; i++) { output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; } @@ -608,6 +769,23 @@ var WEEK = 7; var WEEKDAY = 8; + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + function daysInMonth(year, month) { return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); } @@ -670,15 +848,63 @@ this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; } + function units_month__handleStrictParse(monthName, format, strict) { + var i, ii, mom, llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = create_utc__createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + function localeMonthsParse (monthName, format, strict) { var i, mom, regex; + if (this._monthsParseExact) { + return units_month__handleStrictParse.call(this, monthName, format, strict); + } + if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; } + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse for (i = 0; i < 12; i++) { // make the regex if we don't have it already mom = create_utc__createUTC([2000, i]); @@ -711,12 +937,15 @@ return mom; } - // 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; + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } } } @@ -801,8 +1030,8 @@ this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')$', 'i'); - this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')$', 'i'); + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); } function checkOverflow (m) { @@ -835,36 +1064,6 @@ return m; } - function warn(msg) { - if (utils_hooks__hooks.suppressDeprecationWarnings === false && - (typeof console !== 'undefined') && console.warn) { - console.warn('Deprecation warning: ' + msg); - } - } - - function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (firstTime) { - warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); - } - - var deprecations = {}; - - function deprecateSimple(name, msg) { - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } - } - - utils_hooks__hooks.suppressDeprecationWarnings = false; - // 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) var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; @@ -1059,7 +1258,7 @@ // MOMENTS - var getSetYear = makeGetSet('FullYear', false); + var getSetYear = makeGetSet('FullYear', true); function getIsLeapYear () { return isLeapYear(this.year()); @@ -1328,6 +1527,9 @@ config._a[HOUR] > 0) { getParsingFlags(config).bigHour = undefined; } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; // handle meridiem config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); @@ -1468,7 +1670,7 @@ if (input === undefined) { config._d = new Date(utils_hooks__hooks.now()); } else if (isDate(input)) { - config._d = new Date(+input); + config._d = new Date(input.valueOf()); } else if (typeof input === 'string') { configFromString(config); } else if (isArray(input)) { @@ -1510,7 +1712,7 @@ } var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + 'moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', function () { var other = local__createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { @@ -1522,7 +1724,7 @@ ); var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + 'moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', function () { var other = local__createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { @@ -1588,7 +1790,7 @@ this._milliseconds = +milliseconds + seconds * 1e3 + // 1000 minutes * 6e4 + // 1000 * 60 - hours * 36e5; // 1000 * 60 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 // Because of dateAddRemove treats 24 hours as different from a // day when working around DST, we need to store them separately this._days = +days + @@ -1658,9 +1860,9 @@ var res, diff; if (model._isUTC) { res = model.clone(); - diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + diff = (isMoment(input) || isDate(input) ? input.valueOf() : local__createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api. - res._d.setTime(+res._d + diff); + res._d.setTime(res._d.valueOf() + diff); utils_hooks__hooks.updateOffset(res, false); return res; } else { @@ -1820,7 +2022,8 @@ // 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 - var isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + // and further modified to allow for strings containing both week and day + var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; function create__createDuration (input, key) { var duration = input, @@ -1858,11 +2061,11 @@ duration = { y : parseIso(match[2], sign), M : parseIso(match[3], sign), - d : parseIso(match[4], sign), - h : parseIso(match[5], sign), - m : parseIso(match[6], sign), - s : parseIso(match[7], sign), - w : parseIso(match[8], sign) + w : parseIso(match[4], sign), + d : parseIso(match[5], sign), + h : parseIso(match[6], sign), + m : parseIso(match[7], sign), + s : parseIso(match[8], sign) }; } else if (duration == null) {// checks for null or undefined duration = {}; @@ -1926,6 +2129,14 @@ return res; } + function absRound (number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + // TODO: remove 'name' arg after deprecation is removed function createAdder(direction, name) { return function (val, period) { @@ -1945,8 +2156,8 @@ function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { var milliseconds = duration._milliseconds, - days = duration._days, - months = duration._months; + days = absRound(duration._days), + months = absRound(duration._months); if (!mom.isValid()) { // No op @@ -1956,7 +2167,7 @@ updateOffset = updateOffset == null ? true : updateOffset; if (milliseconds) { - mom._d.setTime(+mom._d + milliseconds * isAdding); + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); } if (days) { get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); @@ -2001,9 +2212,9 @@ } units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); if (units === 'millisecond') { - return +this > +localInput; + return this.valueOf() > localInput.valueOf(); } else { - return +localInput < +this.clone().startOf(units); + return localInput.valueOf() < this.clone().startOf(units).valueOf(); } } @@ -2014,14 +2225,16 @@ } units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); if (units === 'millisecond') { - return +this < +localInput; + return this.valueOf() < localInput.valueOf(); } else { - return +this.clone().endOf(units) < +localInput; + return this.clone().endOf(units).valueOf() < localInput.valueOf(); } } - function isBetween (from, to, units) { - return this.isAfter(from, units) && this.isBefore(to, units); + function isBetween (from, to, units, inclusivity) { + inclusivity = inclusivity || '()'; + return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && + (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); } function isSame (input, units) { @@ -2032,10 +2245,10 @@ } units = normalizeUnits(units || 'millisecond'); if (units === 'millisecond') { - return +this === +localInput; + return this.valueOf() === localInput.valueOf(); } else { - inputMs = +localInput; - return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + inputMs = localInput.valueOf(); + return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); } } @@ -2102,10 +2315,12 @@ adjust = (b - anchor) / (anchor2 - anchor); } - return -(wholeMonthDiff + adjust); + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; } utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + utils_hooks__hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; function toString () { return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); @@ -2126,7 +2341,10 @@ } function format (inputString) { - var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + if (!inputString) { + inputString = this.isUtc() ? utils_hooks__hooks.defaultFormatUtc : utils_hooks__hooks.defaultFormat; + } + var output = formatMoment(this, inputString); return this.localeData().postformat(output); } @@ -2205,6 +2423,7 @@ case 'week': case 'isoWeek': case 'day': + case 'date': this.hours(0); /* falls through */ case 'hour': @@ -2238,19 +2457,25 @@ if (units === undefined || units === 'millisecond') { return this; } + + // 'date' is an alias for 'day', so it should be considered as such. + if (units === 'date') { + units = 'day'; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); } function to_type__valueOf () { - return +this._d - ((this._offset || 0) * 60000); + return this._d.valueOf() - ((this._offset || 0) * 60000); } function unix () { - return Math.floor(+this / 1000); + return Math.floor(this.valueOf() / 1000); } function toDate () { - return this._offset ? new Date(+this) : this._d; + return this._offset ? new Date(this.valueOf()) : this._d; } function toArray () { @@ -2272,8 +2497,8 @@ } function toJSON () { - // JSON.stringify(new Date(NaN)) === 'null' - return this.isValid() ? this.toISOString() : 'null'; + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; } function moment_valid__isValid () { @@ -2383,7 +2608,6 @@ var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - // console.log("got", weekYear, week, weekday, "set", date.toISOString()); this.year(date.getUTCFullYear()); this.month(date.getUTCMonth()); this.date(date.getUTCDate()); @@ -2520,9 +2744,15 @@ addRegexToken('d', match1to2); addRegexToken('e', match1to2); addRegexToken('E', match1to2); - addRegexToken('dd', matchWord); - addRegexToken('ddd', matchWord); - addRegexToken('dddd', matchWord); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { var weekday = config._locale.weekdaysParse(input, token, config._strict); @@ -2575,9 +2805,77 @@ return this._weekdaysMin[m.day()]; } + function day_of_week__handleStrictParse(weekdayName, format, strict) { + var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = create_utc__createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + function localeWeekdaysParse (weekdayName, format, strict) { var i, mom, regex; + if (this._weekdaysParseExact) { + return day_of_week__handleStrictParse.call(this, weekdayName, format, strict); + } + if (!this._weekdaysParse) { this._weekdaysParse = []; this._minWeekdaysParse = []; @@ -2588,7 +2886,7 @@ for (i = 0; i < 7; i++) { // make the regex if we don't have it already - mom = local__createLocal([2000, 1]).day(i); + mom = create_utc__createUTC([2000, 1]).day(i); if (strict && !this._fullWeekdaysParse[i]) { this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); @@ -2644,6 +2942,99 @@ return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); } + var defaultWeekdaysRegex = matchWord; + function weekdaysRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + return this._weekdaysStrictRegex && isStrict ? + this._weekdaysStrictRegex : this._weekdaysRegex; + } + } + + var defaultWeekdaysShortRegex = matchWord; + function weekdaysShortRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + return this._weekdaysShortStrictRegex && isStrict ? + this._weekdaysShortStrictRegex : this._weekdaysShortRegex; + } + } + + var defaultWeekdaysMinRegex = matchWord; + function weekdaysMinRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + return this._weekdaysMinStrictRegex && isStrict ? + this._weekdaysMinStrictRegex : this._weekdaysMinRegex; + } + } + + + function computeWeekdaysParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], + i, mom, minp, shortp, longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ''); + shortp = this.weekdaysShort(mom, ''); + longp = this.weekdays(mom, ''); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + } + // FORMATTING addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); @@ -2675,8 +3066,13 @@ return this.hours() % 12 || 12; } + function kFormat() { + return this.hours() || 24; + } + addFormatToken('H', ['HH', 2], 0, 'hour'); addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); addFormatToken('hmm', 0, 0, function () { return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); @@ -3093,21 +3489,6 @@ return isFunction(format) ? format(output) : format.replace(/%s/i, output); } - function locale_set__set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _ordinalParseLenient. - this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); - } - var prototype__proto = Locale.prototype; prototype__proto._calendar = defaultCalendar; @@ -3152,6 +3533,13 @@ prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; prototype__proto.weekdaysParse = localeWeekdaysParse; + prototype__proto._weekdaysRegex = defaultWeekdaysRegex; + prototype__proto.weekdaysRegex = weekdaysRegex; + prototype__proto._weekdaysShortRegex = defaultWeekdaysShortRegex; + prototype__proto.weekdaysShortRegex = weekdaysShortRegex; + prototype__proto._weekdaysMinRegex = defaultWeekdaysMinRegex; + prototype__proto.weekdaysMinRegex = weekdaysMinRegex; + // Hours prototype__proto.isPM = localeIsPM; prototype__proto._meridiemParse = defaultLocaleMeridiemParse; @@ -3163,7 +3551,7 @@ return locale[field](utc, format); } - function list (format, index, field, count, setter) { + function listMonthsImpl (format, index, field) { if (typeof format === 'number') { index = format; format = undefined; @@ -3172,35 +3560,79 @@ format = format || ''; if (index != null) { - return lists__get(format, index, field, setter); + return lists__get(format, index, field, 'month'); } var i; var out = []; - for (i = 0; i < count; i++) { - out[i] = lists__get(format, i, field, setter); + for (i = 0; i < 12; i++) { + out[i] = lists__get(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl (localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = locale_locales__getLocale(), + shift = localeSorted ? locale._week.dow : 0; + + if (index != null) { + return lists__get(format, (index + shift) % 7, field, 'day'); + } + + var i; + var out = []; + for (i = 0; i < 7; i++) { + out[i] = lists__get(format, (i + shift) % 7, field, 'day'); } return out; } function lists__listMonths (format, index) { - return list(format, index, 'months', 12, 'month'); + return listMonthsImpl(format, index, 'months'); } function lists__listMonthsShort (format, index) { - return list(format, index, 'monthsShort', 12, 'month'); + return listMonthsImpl(format, index, 'monthsShort'); } - function lists__listWeekdays (format, index) { - return list(format, index, 'weekdays', 7, 'day'); + function lists__listWeekdays (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); } - function lists__listWeekdaysShort (format, index) { - return list(format, index, 'weekdaysShort', 7, 'day'); + function lists__listWeekdaysShort (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); } - function lists__listWeekdaysMin (format, index) { - return list(format, index, 'weekdaysMin', 7, 'day'); + function lists__listWeekdaysMin (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); } locale_locales__getSetGlobalLocale('en', { @@ -3571,7 +4003,7 @@ // Side effect imports - utils_hooks__hooks.version = '2.11.2'; + utils_hooks__hooks.version = '2.13.0'; setHookCallback(local__createLocal); @@ -3594,6 +4026,8 @@ utils_hooks__hooks.monthsShort = lists__listMonthsShort; utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.updateLocale = updateLocale; + utils_hooks__hooks.locales = locale_locales__listLocales; utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; utils_hooks__hooks.normalizeUnits = normalizeUnits; utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; @@ -3603,4 +4037,4 @@ return _moment; -})); \ No newline at end of file +})); diff --git a/lib/javascripts/moment_locale/af.js b/lib/javascripts/moment_locale/af.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/ar-ma.js b/lib/javascripts/moment_locale/ar-ma.js old mode 100644 new mode 100755 index 9bddd5ac4f4..923a4930e29 --- a/lib/javascripts/moment_locale/ar-ma.js +++ b/lib/javascripts/moment_locale/ar-ma.js @@ -17,6 +17,7 @@ weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/ar-sa.js b/lib/javascripts/moment_locale/ar-sa.js old mode 100644 new mode 100755 index 7541c52dc14..aecb80a51b3 --- a/lib/javascripts/moment_locale/ar-sa.js +++ b/lib/javascripts/moment_locale/ar-sa.js @@ -40,6 +40,7 @@ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/ar-tn.js b/lib/javascripts/moment_locale/ar-tn.js old mode 100644 new mode 100755 index b4ee8fc6ded..b8e07a0bc54 --- a/lib/javascripts/moment_locale/ar-tn.js +++ b/lib/javascripts/moment_locale/ar-tn.js @@ -15,6 +15,7 @@ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact : true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/ar.js b/lib/javascripts/moment_locale/ar.js old mode 100644 new mode 100755 index 3613c594b40..b478c0f588d --- a/lib/javascripts/moment_locale/ar.js +++ b/lib/javascripts/moment_locale/ar.js @@ -73,6 +73,7 @@ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/az.js b/lib/javascripts/moment_locale/az.js old mode 100644 new mode 100755 index 5ff9b088c49..1beeca5c910 --- a/lib/javascripts/moment_locale/az.js +++ b/lib/javascripts/moment_locale/az.js @@ -37,6 +37,7 @@ 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/be.js b/lib/javascripts/moment_locale/be.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/bg.js b/lib/javascripts/moment_locale/bg.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/bn.js b/lib/javascripts/moment_locale/bn.js old mode 100644 new mode 100755 index 4eca5ee9ebc..f6ae2603eb9 --- a/lib/javascripts/moment_locale/bn.js +++ b/lib/javascripts/moment_locale/bn.js @@ -83,12 +83,18 @@ }); }, meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - isPM: function (input) { - return /^(দুপুর|বিকাল|রাত)$/.test(input); + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ((meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল') { + return hour + 12; + } else { + return hour; + } }, - //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 'রাত'; diff --git a/lib/javascripts/moment_locale/bo.js b/lib/javascripts/moment_locale/bo.js old mode 100644 new mode 100755 index 3ab33896f0c..77ea1bd41e0 --- a/lib/javascripts/moment_locale/bo.js +++ b/lib/javascripts/moment_locale/bo.js @@ -83,8 +83,17 @@ }); }, meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - isPM: function (input) { - return /^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(input); + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ((meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག') { + return hour + 12; + } else { + return hour; + } }, meridiem : function (hour, minute, isLower) { if (hour < 4) { diff --git a/lib/javascripts/moment_locale/br.js b/lib/javascripts/moment_locale/br.js old mode 100644 new mode 100755 index 2896cfb6a43..7b42d428c05 --- a/lib/javascripts/moment_locale/br.js +++ b/lib/javascripts/moment_locale/br.js @@ -60,6 +60,7 @@ 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'h[e]mm A', LTS : 'h[e]mm:ss A', diff --git a/lib/javascripts/moment_locale/bs.js b/lib/javascripts/moment_locale/bs.js old mode 100644 new mode 100755 index e0b3dae21eb..bbe54dcdfe6 --- a/lib/javascripts/moment_locale/bs.js +++ b/lib/javascripts/moment_locale/bs.js @@ -67,9 +67,11 @@ var bs = moment.defineLocale('bs', { months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/ca.js b/lib/javascripts/moment_locale/ca.js old mode 100644 new mode 100755 index 15f75fe99c9..d796dc340a2 --- a/lib/javascripts/moment_locale/ca.js +++ b/lib/javascripts/moment_locale/ca.js @@ -13,9 +13,11 @@ var ca = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/cs.js b/lib/javascripts/moment_locale/cs.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/cv.js b/lib/javascripts/moment_locale/cv.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/cy.js b/lib/javascripts/moment_locale/cy.js old mode 100644 new mode 100755 index 64dfe43f50b..958871e527a --- a/lib/javascripts/moment_locale/cy.js +++ b/lib/javascripts/moment_locale/cy.js @@ -16,6 +16,7 @@ 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('_'), + weekdaysParseExact : true, // time formats are the same as en-gb longDateFormat: { LT: 'HH:mm', diff --git a/lib/javascripts/moment_locale/da.js b/lib/javascripts/moment_locale/da.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/de-at.js b/lib/javascripts/moment_locale/de-at.js old mode 100644 new mode 100755 index 20da9cf613c..0ea81bcd381 --- a/lib/javascripts/moment_locale/de-at.js +++ b/lib/javascripts/moment_locale/de-at.js @@ -30,9 +30,11 @@ var de_at = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT: 'HH:mm', LTS: 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/de.js b/lib/javascripts/moment_locale/de.js old mode 100644 new mode 100755 index 41c81a1af63..f1dfa9e2ffb --- a/lib/javascripts/moment_locale/de.js +++ b/lib/javascripts/moment_locale/de.js @@ -29,9 +29,11 @@ var de = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT: 'HH:mm', LTS: 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/dv.js b/lib/javascripts/moment_locale/dv.js old mode 100644 new mode 100755 index 5fc59b668b7..d29d66209f2 --- a/lib/javascripts/moment_locale/dv.js +++ b/lib/javascripts/moment_locale/dv.js @@ -50,7 +50,7 @@ }, meridiemParse: /މކ|މފ/, isPM : function (input) { - return '' === input; + return 'މފ' === input; }, meridiem : function (hour, minute, isLower) { if (hour < 12) { diff --git a/lib/javascripts/moment_locale/el.js b/lib/javascripts/moment_locale/el.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/en-au.js b/lib/javascripts/moment_locale/en-au.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/en-ca.js b/lib/javascripts/moment_locale/en-ca.js old mode 100644 new mode 100755 index f0ee032e624..3e3bc4fe574 --- a/lib/javascripts/moment_locale/en-ca.js +++ b/lib/javascripts/moment_locale/en-ca.js @@ -20,9 +20,9 @@ LT : 'h:mm A', LTS : 'h:mm:ss A', L : 'YYYY-MM-DD', - LL : 'D MMMM, YYYY', - LLL : 'D MMMM, YYYY h:mm A', - LLLL : 'dddd, D MMMM, YYYY h:mm A' + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' }, calendar : { sameDay : '[Today at] LT', diff --git a/lib/javascripts/moment_locale/en-gb.js b/lib/javascripts/moment_locale/en-gb.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/en-ie.js b/lib/javascripts/moment_locale/en-ie.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/en-nz.js b/lib/javascripts/moment_locale/en-nz.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/eo.js b/lib/javascripts/moment_locale/eo.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/es.js b/lib/javascripts/moment_locale/es.js old mode 100644 new mode 100755 index efb51a31d0b..555e94bf2b8 --- a/lib/javascripts/moment_locale/es.js +++ b/lib/javascripts/moment_locale/es.js @@ -22,9 +22,11 @@ return monthsShortDot[m.month()]; } }, + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/et.js b/lib/javascripts/moment_locale/et.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/eu.js b/lib/javascripts/moment_locale/eu.js old mode 100644 new mode 100755 index 52db117692a..7383f89b160 --- a/lib/javascripts/moment_locale/eu.js +++ b/lib/javascripts/moment_locale/eu.js @@ -13,9 +13,11 @@ var eu = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/fa.js b/lib/javascripts/moment_locale/fa.js old mode 100644 new mode 100755 index de40e6f9374..e2bd7b0b5c0 --- a/lib/javascripts/moment_locale/fa.js +++ b/lib/javascripts/moment_locale/fa.js @@ -40,6 +40,7 @@ weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/fi.js b/lib/javascripts/moment_locale/fi.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/fo.js b/lib/javascripts/moment_locale/fo.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/fr-ca.js b/lib/javascripts/moment_locale/fr-ca.js old mode 100644 new mode 100755 index f15ec8dc079..52108b886da --- a/lib/javascripts/moment_locale/fr-ca.js +++ b/lib/javascripts/moment_locale/fr-ca.js @@ -13,9 +13,11 @@ var fr_ca = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/fr-ch.js b/lib/javascripts/moment_locale/fr-ch.js old mode 100644 new mode 100755 index 9503d80f7d7..876de40a759 --- a/lib/javascripts/moment_locale/fr-ch.js +++ b/lib/javascripts/moment_locale/fr-ch.js @@ -13,9 +13,11 @@ var fr_ch = moment.defineLocale('fr-ch', { 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/fr.js b/lib/javascripts/moment_locale/fr.js old mode 100644 new mode 100755 index 8ef95c9fb6e..d08ebf1ba5d --- a/lib/javascripts/moment_locale/fr.js +++ b/lib/javascripts/moment_locale/fr.js @@ -13,9 +13,11 @@ var fr = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/fy.js b/lib/javascripts/moment_locale/fy.js old mode 100644 new mode 100755 index d1b709c122b..9d008ca7ad3 --- a/lib/javascripts/moment_locale/fy.js +++ b/lib/javascripts/moment_locale/fy.js @@ -22,9 +22,11 @@ return monthsShortWithDots[m.month()]; } }, + monthsParseExact : true, weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'), weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/gd.js b/lib/javascripts/moment_locale/gd.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/gl.js b/lib/javascripts/moment_locale/gl.js old mode 100644 new mode 100755 index ef8e7043b89..0621d034cbc --- a/lib/javascripts/moment_locale/gl.js +++ b/lib/javascripts/moment_locale/gl.js @@ -13,9 +13,11 @@ var gl = 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('_'), + monthsParseExact: true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/he.js b/lib/javascripts/moment_locale/he.js old mode 100644 new mode 100755 index 6a259be8b60..ffc3e1fda43 --- a/lib/javascripts/moment_locale/he.js +++ b/lib/javascripts/moment_locale/he.js @@ -74,6 +74,23 @@ } return number + ' שנים'; } + }, + meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM : function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } } }); diff --git a/lib/javascripts/moment_locale/hi.js b/lib/javascripts/moment_locale/hi.js old mode 100644 new mode 100755 index 0542ef791e2..ebd272d11ec --- a/lib/javascripts/moment_locale/hi.js +++ b/lib/javascripts/moment_locale/hi.js @@ -38,6 +38,7 @@ var hi = moment.defineLocale('hi', { months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + monthsParseExact: true, weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), diff --git a/lib/javascripts/moment_locale/hr.js b/lib/javascripts/moment_locale/hr.js old mode 100644 new mode 100755 index 26923838c94..a96f3a5a151 --- a/lib/javascripts/moment_locale/hr.js +++ b/lib/javascripts/moment_locale/hr.js @@ -69,9 +69,11 @@ standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_') }, monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), + monthsParseExact: true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/hu.js b/lib/javascripts/moment_locale/hu.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/hy-am.js b/lib/javascripts/moment_locale/hy-am.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/id.js b/lib/javascripts/moment_locale/id.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/is.js b/lib/javascripts/moment_locale/is.js old mode 100644 new mode 100755 index f1ed257a474..b6f63ca7fb8 --- a/lib/javascripts/moment_locale/is.js +++ b/lib/javascripts/moment_locale/is.js @@ -86,7 +86,7 @@ longDateFormat : { LT : 'H:mm', LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', + L : 'DD.MM.YYYY', LL : 'D. MMMM YYYY', LLL : 'D. MMMM YYYY [kl.] H:mm', LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm' diff --git a/lib/javascripts/moment_locale/it.js b/lib/javascripts/moment_locale/it.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/ja.js b/lib/javascripts/moment_locale/ja.js old mode 100644 new mode 100755 index 6c6e85930cf..147543930ec --- a/lib/javascripts/moment_locale/ja.js +++ b/lib/javascripts/moment_locale/ja.js @@ -43,6 +43,17 @@ lastWeek : '[前週]dddd LT', sameElse : 'L' }, + ordinalParse : /\d{1,2}日/, + ordinal : function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, relativeTime : { future : '%s後', past : '%s前', diff --git a/lib/javascripts/moment_locale/jv.js b/lib/javascripts/moment_locale/jv.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/ka.js b/lib/javascripts/moment_locale/ka.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/kk.js b/lib/javascripts/moment_locale/kk.js old mode 100644 new mode 100755 index 81acd0bf620..9c005882395 --- a/lib/javascripts/moment_locale/kk.js +++ b/lib/javascripts/moment_locale/kk.js @@ -34,11 +34,11 @@ }; var kk = moment.defineLocale('kk', { - months : 'Қаңтар_Ақпан_Наурыз_Сәуір_Мамыр_Маусым_Шілде_Тамыз_Қыркүйек_Қазан_Қараша_Желтоқсан'.split('_'), - monthsShort : 'Қаң_Ақп_Нау_Сәу_Мам_Мау_Шіл_Там_Қыр_Қаз_Қар_Жел'.split('_'), - weekdays : 'Жексенбі_Дүйсенбі_Сейсенбі_Сәрсенбі_Бейсенбі_Жұма_Сенбі'.split('_'), - weekdaysShort : 'Жек_Дүй_Сей_Сәр_Бей_Жұм_Сен'.split('_'), - weekdaysMin : 'Жк_Дй_Сй_Ср_Бй_Жм_Сн'.split('_'), + months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), + monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), + weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'), longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/km.js b/lib/javascripts/moment_locale/km.js old mode 100644 new mode 100755 index 56466c91383..dcfd911c669 --- a/lib/javascripts/moment_locale/km.js +++ b/lib/javascripts/moment_locale/km.js @@ -11,8 +11,8 @@ var km = moment.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), diff --git a/lib/javascripts/moment_locale/ko.js b/lib/javascripts/moment_locale/ko.js old mode 100644 new mode 100755 index 151554ab39e..0481987a4e2 --- a/lib/javascripts/moment_locale/ko.js +++ b/lib/javascripts/moment_locale/ko.js @@ -39,17 +39,17 @@ relativeTime : { future : '%s 후', past : '%s 전', - s : '몇초', + s : '몇 초', ss : '%d초', m : '일분', mm : '%d분', - h : '한시간', + h : '한 시간', hh : '%d시간', d : '하루', dd : '%d일', - M : '한달', + M : '한 달', MM : '%d달', - y : '일년', + y : '일 년', yy : '%d년' }, ordinalParse : /\d{1,2}일/, diff --git a/lib/javascripts/moment_locale/lb.js b/lib/javascripts/moment_locale/lb.js old mode 100644 new mode 100755 index 6713c08a9ca..bd51b39b701 --- a/lib/javascripts/moment_locale/lb.js +++ b/lib/javascripts/moment_locale/lb.js @@ -78,9 +78,11 @@ var lb = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat: { LT: 'H:mm [Auer]', LTS: 'H:mm:ss [Auer]', diff --git a/lib/javascripts/moment_locale/lo.js b/lib/javascripts/moment_locale/lo.js old mode 100644 new mode 100755 index 7475f273840..9171fd7486d --- a/lib/javascripts/moment_locale/lo.js +++ b/lib/javascripts/moment_locale/lo.js @@ -16,6 +16,7 @@ weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/lt.js b/lib/javascripts/moment_locale/lt.js old mode 100644 new mode 100755 index 72566bfee99..a3f05d440c6 --- a/lib/javascripts/moment_locale/lt.js +++ b/lib/javascripts/moment_locale/lt.js @@ -65,6 +65,7 @@ }, weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/lv.js b/lib/javascripts/moment_locale/lv.js old mode 100644 new mode 100755 index d1864a187e5..21e00b0c027 --- a/lib/javascripts/moment_locale/lv.js +++ b/lib/javascripts/moment_locale/lv.js @@ -52,6 +52,7 @@ 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/me.js b/lib/javascripts/moment_locale/me.js old mode 100644 new mode 100755 index e2c1f750e13..a78cf5a94fb --- a/lib/javascripts/moment_locale/me.js +++ b/lib/javascripts/moment_locale/me.js @@ -34,11 +34,13 @@ }; var me = moment.defineLocale('me', { - 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: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], - weekdaysShort: ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'], - weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'], + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), + monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact : true, + 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('_'), + weekdaysParseExact : true, longDateFormat: { LT: 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/mk.js b/lib/javascripts/moment_locale/mk.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/ml.js b/lib/javascripts/moment_locale/ml.js old mode 100644 new mode 100755 index 9e241f26912..4ffe9317ce2 --- a/lib/javascripts/moment_locale/ml.js +++ b/lib/javascripts/moment_locale/ml.js @@ -13,6 +13,7 @@ var ml = moment.defineLocale('ml', { months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), + monthsParseExact : true, weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), @@ -48,8 +49,17 @@ yy : '%d വർഷം' }, meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - isPM : function (input) { - return /^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(input); + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ((meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം') { + return hour + 12; + } else { + return hour; + } }, meridiem : function (hour, minute, isLower) { if (hour < 4) { diff --git a/lib/javascripts/moment_locale/mr.js b/lib/javascripts/moment_locale/mr.js old mode 100644 new mode 100755 index 77a3fa2f06c..2bdf262dfb8 --- a/lib/javascripts/moment_locale/mr.js +++ b/lib/javascripts/moment_locale/mr.js @@ -75,6 +75,7 @@ var mr = moment.defineLocale('mr', { months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), + monthsParseExact : true, weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), diff --git a/lib/javascripts/moment_locale/ms-my.js b/lib/javascripts/moment_locale/ms-my.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/ms.js b/lib/javascripts/moment_locale/ms.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/my.js b/lib/javascripts/moment_locale/my.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/nb.js b/lib/javascripts/moment_locale/nb.js old mode 100644 new mode 100755 index b8d76c63150..45b57a1df37 --- a/lib/javascripts/moment_locale/nb.js +++ b/lib/javascripts/moment_locale/nb.js @@ -14,9 +14,11 @@ var nb = moment.defineLocale('nb', { months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact : true, weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'), weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', @@ -35,7 +37,7 @@ }, relativeTime : { future : 'om %s', - past : 'for %s siden', + past : '%s siden', s : 'noen sekunder', m : 'ett minutt', mm : '%d minutter', diff --git a/lib/javascripts/moment_locale/ne.js b/lib/javascripts/moment_locale/ne.js old mode 100644 new mode 100755 index 347640156b6..f40eb8d516b --- a/lib/javascripts/moment_locale/ne.js +++ b/lib/javascripts/moment_locale/ne.js @@ -38,9 +38,11 @@ var ne = moment.defineLocale('ne', { months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), + monthsParseExact : true, weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'Aको h:mm बजे', LTS : 'Aको h:mm:ss बजे', diff --git a/lib/javascripts/moment_locale/nl.js b/lib/javascripts/moment_locale/nl.js old mode 100644 new mode 100755 index 1ae4700d6a9..df36a45c627 --- a/lib/javascripts/moment_locale/nl.js +++ b/lib/javascripts/moment_locale/nl.js @@ -22,9 +22,11 @@ return monthsShortWithDots[m.month()]; } }, + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/nn.js b/lib/javascripts/moment_locale/nn.js old mode 100644 new mode 100755 index 3910bb9be6e..980b5305657 --- a/lib/javascripts/moment_locale/nn.js +++ b/lib/javascripts/moment_locale/nn.js @@ -34,7 +34,7 @@ }, relativeTime : { future : 'om %s', - past : 'for %s sidan', + past : '%s sidan', s : 'nokre sekund', m : 'eit minutt', mm : '%d minutt', diff --git a/lib/javascripts/moment_locale/pl.js b/lib/javascripts/moment_locale/pl.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/pt-br.js b/lib/javascripts/moment_locale/pt-br.js old mode 100644 new mode 100755 index 06747f6fda0..84e6cdd1c29 --- a/lib/javascripts/moment_locale/pt-br.js +++ b/lib/javascripts/moment_locale/pt-br.js @@ -13,9 +13,10 @@ var pt_br = 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('_'), + 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/pt.js b/lib/javascripts/moment_locale/pt.js old mode 100644 new mode 100755 index bdb913fc0f7..b7fcd5abe4f --- a/lib/javascripts/moment_locale/pt.js +++ b/lib/javascripts/moment_locale/pt.js @@ -16,6 +16,7 @@ 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/ro.js b/lib/javascripts/moment_locale/ro.js old mode 100644 new mode 100755 index fb9226758ca..09ffc193a95 --- a/lib/javascripts/moment_locale/ro.js +++ b/lib/javascripts/moment_locale/ro.js @@ -29,6 +29,7 @@ var ro = 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('_'), + monthsParseExact: true, 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('_'), diff --git a/lib/javascripts/moment_locale/ru.js b/lib/javascripts/moment_locale/ru.js old mode 100644 new mode 100755 index 442ddf80031..ec3df2e0a1b --- a/lib/javascripts/moment_locale/ru.js +++ b/lib/javascripts/moment_locale/ru.js @@ -2,6 +2,7 @@ //! locale : russian (ru) //! author : Viktorminator : https://github.com/Viktorminator //! Author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair ;(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' @@ -30,27 +31,35 @@ return number + ' ' + plural(format[key], +number); } } - var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; + var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; + // http://new.gramota.ru/spravka/rules/139-prop : § 103 + // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 var ru = moment.defineLocale('ru', { months : { - format: 'Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря'.split('_'), - standalone: 'Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь'.split('_') + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'), + standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_') }, monthsShort : { - format: 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_'), - standalone: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_') + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'), + standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_') }, weekdays : { - standalone: 'Воскресенье_Понедельник_Вторник_Среда_Четверг_Пятница_Суббота'.split('_'), - format: 'Воскресенье_Понедельник_Вторник_Среду_Четверг_Пятницу_Субботу'.split('_'), + standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'), isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/ }, - weekdaysShort : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'), - weekdaysMin : 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'), + weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), monthsParse : monthsParse, longMonthsParse : monthsParse, shortMonthsParse : monthsParse, + monthsRegex: /^(сентябр[яь]|октябр[яь]|декабр[яь]|феврал[яь]|январ[яь]|апрел[яь]|августа?|ноябр[яь]|сент\.|февр\.|нояб\.|июнь|янв.|июль|дек.|авг.|апр.|марта|мар[.т]|окт.|июн[яь]|июл[яь]|ма[яй])/i, + monthsShortRegex: /^(сентябр[яь]|октябр[яь]|декабр[яь]|феврал[яь]|январ[яь]|апрел[яь]|августа?|ноябр[яь]|сент\.|февр\.|нояб\.|июнь|янв.|июль|дек.|авг.|апр.|марта|мар[.т]|окт.|июн[яь]|июл[яь]|ма[яй])/i, + monthsStrictRegex: /^(сентябр[яь]|октябр[яь]|декабр[яь]|феврал[яь]|январ[яь]|апрел[яь]|августа?|ноябр[яь]|марта?|июн[яь]|июл[яь]|ма[яй])/i, + monthsShortStrictRegex: /^(нояб\.|февр\.|сент\.|июль|янв\.|июн[яь]|мар[.т]|авг\.|апр\.|окт\.|дек\.|ма[яй])/i, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/se.js b/lib/javascripts/moment_locale/se.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/si.js b/lib/javascripts/moment_locale/si.js old mode 100644 new mode 100755 index d86c9e3b8e2..8a7716443ea --- a/lib/javascripts/moment_locale/si.js +++ b/lib/javascripts/moment_locale/si.js @@ -17,6 +17,7 @@ weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'a h:mm', LTS : 'a h:mm:ss', @@ -52,6 +53,10 @@ ordinal : function (number) { return number + ' වැනි'; }, + meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM : function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, meridiem : function (hours, minutes, isLower) { if (hours > 11) { return isLower ? 'ප.ව.' : 'පස් වරු'; diff --git a/lib/javascripts/moment_locale/sk.js b/lib/javascripts/moment_locale/sk.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/sl.js b/lib/javascripts/moment_locale/sl.js old mode 100644 new mode 100755 index 68d261e271c..a6bb706cdcb --- a/lib/javascripts/moment_locale/sl.js +++ b/lib/javascripts/moment_locale/sl.js @@ -84,9 +84,11 @@ var sl = 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('_'), + monthsParseExact: true, 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('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/sq.js b/lib/javascripts/moment_locale/sq.js old mode 100644 new mode 100755 index 69dca2017cc..68dbc1461aa --- a/lib/javascripts/moment_locale/sq.js +++ b/lib/javascripts/moment_locale/sq.js @@ -18,6 +18,7 @@ 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('_'), + weekdaysParseExact : true, meridiemParse: /PD|MD/, isPM: function (input) { return input.charAt(0) === 'M'; diff --git a/lib/javascripts/moment_locale/sr-cyrl.js b/lib/javascripts/moment_locale/sr-cyrl.js old mode 100644 new mode 100755 index c72cca77076..42f9ed4bdb7 --- a/lib/javascripts/moment_locale/sr-cyrl.js +++ b/lib/javascripts/moment_locale/sr-cyrl.js @@ -34,11 +34,13 @@ }; var sr_cyrl = moment.defineLocale('sr-cyrl', { - months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'], - monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'], - weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'], - weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'], - weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'], + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'), + monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact : true, longDateFormat: { LT: 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/sr.js b/lib/javascripts/moment_locale/sr.js old mode 100644 new mode 100755 index 4dab6f48ce3..d334e78d5c9 --- a/lib/javascripts/moment_locale/sr.js +++ b/lib/javascripts/moment_locale/sr.js @@ -34,11 +34,13 @@ }; var sr = 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'], + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), + monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact : true, longDateFormat: { LT: 'H:mm', LTS : 'H:mm:ss', diff --git a/lib/javascripts/moment_locale/sv.js b/lib/javascripts/moment_locale/sv.js old mode 100644 new mode 100755 index 5af3bb72c46..a21237dc6f3 --- a/lib/javascripts/moment_locale/sv.js +++ b/lib/javascripts/moment_locale/sv.js @@ -21,8 +21,10 @@ LTS : 'HH:mm:ss', L : 'YYYY-MM-DD', LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' + LLL : 'D MMMM YYYY [kl.] HH:mm', + LLLL : 'dddd D MMMM YYYY [kl.] HH:mm', + lll : 'D MMM YYYY HH:mm', + llll : 'ddd D MMM YYYY HH:mm' }, calendar : { sameDay: '[Idag] LT', diff --git a/lib/javascripts/moment_locale/sw.js b/lib/javascripts/moment_locale/sw.js old mode 100644 new mode 100755 index 8017f7d4736..1460edd417b --- a/lib/javascripts/moment_locale/sw.js +++ b/lib/javascripts/moment_locale/sw.js @@ -16,6 +16,7 @@ weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/ta.js b/lib/javascripts/moment_locale/ta.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/te.js b/lib/javascripts/moment_locale/te.js old mode 100644 new mode 100755 index 775651df177..f5d162090e9 --- a/lib/javascripts/moment_locale/te.js +++ b/lib/javascripts/moment_locale/te.js @@ -13,6 +13,7 @@ var te = moment.defineLocale('te', { months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), + monthsParseExact : true, weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), diff --git a/lib/javascripts/moment_locale/th.js b/lib/javascripts/moment_locale/th.js old mode 100644 new mode 100755 index ac325429dfb..fc4e8f8b74f --- a/lib/javascripts/moment_locale/th.js +++ b/lib/javascripts/moment_locale/th.js @@ -13,9 +13,11 @@ var th = moment.defineLocale('th', { months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'), + monthsParseExact: true, weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact : true, longDateFormat : { LT : 'H นาฬิกา m นาที', LTS : 'H นาฬิกา m นาที s วินาที', diff --git a/lib/javascripts/moment_locale/tl-ph.js b/lib/javascripts/moment_locale/tl-ph.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/tlh.js b/lib/javascripts/moment_locale/tlh.js old mode 100644 new mode 100755 index 4ae53ef719d..660d70d1c77 --- a/lib/javascripts/moment_locale/tlh.js +++ b/lib/javascripts/moment_locale/tlh.js @@ -72,6 +72,7 @@ var tlh = moment.defineLocale('tlh', { months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), + monthsParseExact : true, weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), diff --git a/lib/javascripts/moment_locale/tr.js b/lib/javascripts/moment_locale/tr.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/tzl.js b/lib/javascripts/moment_locale/tzl.js old mode 100644 new mode 100755 index 498f7c040ef..ddbbf01793d --- a/lib/javascripts/moment_locale/tzl.js +++ b/lib/javascripts/moment_locale/tzl.js @@ -27,6 +27,10 @@ LLL : 'D. MMMM [dallas] YYYY HH.mm', LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' }, + meridiemParse: /d\'o|d\'a/i, + isPM : function (input) { + return 'd\'o' === input.toLowerCase(); + }, meridiem : function (hours, minutes, isLower) { if (hours > 11) { return isLower ? 'd\'o' : 'D\'O'; diff --git a/lib/javascripts/moment_locale/tzm-latn.js b/lib/javascripts/moment_locale/tzm-latn.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/tzm.js b/lib/javascripts/moment_locale/tzm.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/uk.js b/lib/javascripts/moment_locale/uk.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/uz.js b/lib/javascripts/moment_locale/uz.js old mode 100644 new mode 100755 diff --git a/lib/javascripts/moment_locale/vi.js b/lib/javascripts/moment_locale/vi.js old mode 100644 new mode 100755 index 0e7ba8c353f..d3ee6ea0727 --- a/lib/javascripts/moment_locale/vi.js +++ b/lib/javascripts/moment_locale/vi.js @@ -13,9 +13,22 @@ var vi = 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('_'), + monthsParseExact : true, 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('_'), + weekdaysParseExact : true, + meridiemParse: /sa|ch/i, + isPM : function (input) { + return /^ch$/i.test(input); + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', diff --git a/lib/javascripts/moment_locale/zh-cn.js b/lib/javascripts/moment_locale/zh-cn.js old mode 100644 new mode 100755 index aec5ede49e1..cbc3f87000d --- a/lib/javascripts/moment_locale/zh-cn.js +++ b/lib/javascripts/moment_locale/zh-cn.js @@ -73,7 +73,7 @@ nextWeek : function () { var startOfWeek, prefix; startOfWeek = moment().startOf('week'); - prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]'; + prefix = this.diff(startOfWeek, 'days') >= 7 ? '[下]' : '[本]'; return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; }, lastWeek : function () { diff --git a/lib/javascripts/moment_locale/zh-tw.js b/lib/javascripts/moment_locale/zh-tw.js old mode 100644 new mode 100755 index bf3a333c41e..664f5ec1f3d --- a/lib/javascripts/moment_locale/zh-tw.js +++ b/lib/javascripts/moment_locale/zh-tw.js @@ -83,15 +83,15 @@ future : '%s內', past : '%s前', s : '幾秒', - m : '一分鐘', + m : '1分鐘', mm : '%d分鐘', - h : '一小時', + h : '1小時', hh : '%d小時', - d : '一天', + d : '1天', dd : '%d天', - M : '一個月', + M : '1個月', MM : '%d個月', - y : '一年', + y : '1年', yy : '%d年' } });