166 lines
5.4 KiB
JavaScript
166 lines
5.4 KiB
JavaScript
//! moment.js locale configuration
|
||
|
||
(function (global, factory) {
|
||
typeof exports === "object" &&
|
||
typeof module !== "undefined" &&
|
||
typeof require === "function"
|
||
? factory(require("../moment"))
|
||
: typeof define === "function" && define.amd
|
||
? define(["../moment"], factory)
|
||
: factory(global.moment);
|
||
})(this, function (moment) {
|
||
"use strict";
|
||
|
||
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 = {
|
||
ss: withoutSuffix ? "секунда_секунди_секунд" : "секунду_секунди_секунд",
|
||
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 weekdaysCaseReplace(m, format) {
|
||
var weekdays = {
|
||
nominative:
|
||
"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),
|
||
accusative:
|
||
"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),
|
||
genitive:
|
||
"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_"),
|
||
};
|
||
|
||
if (!m) {
|
||
return weekdays["nominative"];
|
||
}
|
||
|
||
var 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";
|
||
};
|
||
}
|
||
|
||
var uk = moment.defineLocale("uk", {
|
||
months: {
|
||
format:
|
||
"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split(
|
||
"_"
|
||
),
|
||
standalone:
|
||
"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split(
|
||
"_"
|
||
),
|
||
},
|
||
monthsShort: "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split(
|
||
"_"
|
||
),
|
||
weekdays: weekdaysCaseReplace,
|
||
weekdaysShort: "нд_пн_вт_ср_чт_пт_сб".split("_"),
|
||
weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"),
|
||
longDateFormat: {
|
||
LT: "HH:mm",
|
||
LTS: "HH:mm:ss",
|
||
L: "DD.MM.YYYY",
|
||
LL: "D MMMM YYYY р.",
|
||
LLL: "D MMMM YYYY р., HH:mm",
|
||
LLLL: "dddd, D MMMM YYYY р., HH:mm",
|
||
},
|
||
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: "декілька секунд",
|
||
ss: relativeTimeWithPlural,
|
||
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
|
||
meridiemParse: /ночі|ранку|дня|вечора/,
|
||
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 "вечора";
|
||
}
|
||
},
|
||
dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
|
||
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.
|
||
},
|
||
});
|
||
|
||
return uk;
|
||
});
|