date-fns
Version:
Modern JavaScript date utility library
144 lines (140 loc) • 4.3 kB
JavaScript
import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js";
var eraValues = {
narrow: ['до н.е.', 'н.е.'],
abbreviated: ['до н. е.', 'н. е.'],
wide: ['до нашої ери', 'нашої ери']
};
var quarterValues = {
narrow: ['1', '2', '3', '4'],
abbreviated: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'],
wide: ['1-й квартал', '2-й квартал', '3-й квартал', '4-й квартал']
};
var monthValues = {
// ДСТУ 3582:2013
narrow: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', 'Ж', 'Л', 'Г'],
abbreviated: ['січ.', 'лют.', 'берез.', 'квіт.', 'трав.', 'черв.', 'лип.', 'серп.', 'верес.', 'жовт.', 'листоп.', 'груд.'],
wide: ['січень', 'лютий', 'березень', 'квітень', 'травень', 'червень', 'липень', 'серпень', 'вересень', 'жовтень', 'листопад', 'грудень']
};
var formattingMonthValues = {
narrow: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', 'Ж', 'Л', 'Г'],
abbreviated: ['січ.', 'лют.', 'берез.', 'квіт.', 'трав.', 'черв.', 'лип.', 'серп.', 'верес.', 'жовт.', 'листоп.', 'груд.'],
wide: ['січня', 'лютого', 'березня', 'квітня', 'травня', 'червня', 'липня', 'серпня', 'вересня', 'жовтня', 'листопада', 'грудня']
};
var dayValues = {
narrow: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'],
short: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
abbreviated: ['нед', 'пон', 'вів', 'сер', 'чтв', 'птн', 'суб'],
wide: ['неділя', 'понеділок', 'вівторок', 'середа', 'четвер', 'п’ятниця', 'субота']
};
var dayPeriodValues = {
narrow: {
am: 'ДП',
pm: 'ПП',
midnight: 'півн.',
noon: 'пол.',
morning: 'ранок',
afternoon: 'день',
evening: 'веч.',
night: 'ніч'
},
abbreviated: {
am: 'ДП',
pm: 'ПП',
midnight: 'півн.',
noon: 'пол.',
morning: 'ранок',
afternoon: 'день',
evening: 'веч.',
night: 'ніч'
},
wide: {
am: 'ДП',
pm: 'ПП',
midnight: 'північ',
noon: 'полудень',
morning: 'ранок',
afternoon: 'день',
evening: 'вечір',
night: 'ніч'
}
};
var formattingDayPeriodValues = {
narrow: {
am: 'ДП',
pm: 'ПП',
midnight: 'півн.',
noon: 'пол.',
morning: 'ранку',
afternoon: 'дня',
evening: 'веч.',
night: 'ночі'
},
abbreviated: {
am: 'ДП',
pm: 'ПП',
midnight: 'півн.',
noon: 'пол.',
morning: 'ранку',
afternoon: 'дня',
evening: 'веч.',
night: 'ночі'
},
wide: {
am: 'ДП',
pm: 'ПП',
midnight: 'північ',
noon: 'полудень',
morning: 'ранку',
afternoon: 'дня',
evening: 'веч.',
night: 'ночі'
}
};
function ordinalNumber(dirtyNumber, dirtyOptions) {
var options = dirtyOptions || {};
var unit = String(options.unit);
var suffix;
if (unit === 'date') {
if (dirtyNumber === 3 || dirtyNumber === 23) {
suffix = '-є';
} else {
suffix = '-е';
}
} else if (unit === 'minute' || unit === 'second' || unit === 'hour') {
suffix = '-а';
} else {
suffix = '-й';
}
return dirtyNumber + suffix;
}
var localize = {
ordinalNumber: ordinalNumber,
era: buildLocalizeFn({
values: eraValues,
defaultWidth: 'wide'
}),
quarter: buildLocalizeFn({
values: quarterValues,
defaultWidth: 'wide',
argumentCallback: function (quarter) {
return Number(quarter) - 1;
}
}),
month: buildLocalizeFn({
values: monthValues,
defaultWidth: 'wide',
formattingValues: formattingMonthValues,
defaultFormattingWidth: 'wide'
}),
day: buildLocalizeFn({
values: dayValues,
defaultWidth: 'wide'
}),
dayPeriod: buildLocalizeFn({
values: dayPeriodValues,
defaultWidth: 'any',
formattingValues: formattingDayPeriodValues,
defaultFormattingWidth: 'wide'
})
};
export default localize;