@oxog/kairos
Version:
Revolutionary zero-dependency JavaScript date/time library with modular architecture and dynamic holiday system
142 lines • 4.63 kB
JavaScript
import { holidays, observances, regionalHolidays, allHolidays } from './holidays.js';
import { localeManager } from '../../../core/locale-manager.js';
const locale = {
name: 'Русский (Россия)',
code: 'ru-RU',
months: [
'январь',
'февраль',
'март',
'апрель',
'май',
'июнь',
'июль',
'август',
'сентябрь',
'октябрь',
'ноябрь',
'декабрь',
],
monthsShort: [
'янв.',
'фев.',
'мар.',
'апр.',
'май',
'июн.',
'июл.',
'авг.',
'сен.',
'окт.',
'ноя.',
'дек.',
],
weekdays: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
weekdaysShort: ['вс.', 'пн.', 'вт.', 'ср.', 'чт.', 'пт.', 'сб.'],
weekdaysMin: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
formats: {
LT: 'H:mm',
LTS: 'H:mm:ss',
L: 'DD.MM.YYYY',
LL: 'D MMMM YYYY [г.]',
LLL: 'D MMMM YYYY [г.], H:mm',
LLLL: 'dddd, D MMMM YYYY [г.], H:mm',
},
ordinal: (n) => {
return `${n}-й`;
},
meridiem: (hour, _minute, _isLower) => {
return hour < 4 ? 'ночи' : hour < 12 ? 'утра' : hour < 17 ? 'дня' : 'вечера';
},
relativeTime: {
future: 'через %s',
past: '%s назад',
s: 'несколько секунд',
ss: (n) => {
return n % 10 === 1 && n % 100 !== 11
? `${n} секунду`
: [2, 3, 4].includes(n % 10) && ![12, 13, 14].includes(n % 100)
? `${n} секунды`
: `${n} секунд`;
},
m: 'минуту',
mm: (n) => {
return n % 10 === 1 && n % 100 !== 11
? `${n} минуту`
: [2, 3, 4].includes(n % 10) && ![12, 13, 14].includes(n % 100)
? `${n} минуты`
: `${n} минут`;
},
h: 'час',
hh: (n) => {
return n % 10 === 1 && n % 100 !== 11
? `${n} час`
: [2, 3, 4].includes(n % 10) && ![12, 13, 14].includes(n % 100)
? `${n} часа`
: `${n} часов`;
},
d: 'день',
dd: (n) => {
return n % 10 === 1 && n % 100 !== 11
? `${n} день`
: [2, 3, 4].includes(n % 10) && ![12, 13, 14].includes(n % 100)
? `${n} дня`
: `${n} дней`;
},
M: 'месяц',
MM: (n) => {
return n % 10 === 1 && n % 100 !== 11
? `${n} месяц`
: [2, 3, 4].includes(n % 10) && ![12, 13, 14].includes(n % 100)
? `${n} месяца`
: `${n} месяцев`;
},
y: 'год',
yy: (n) => {
return n % 10 === 1 && n % 100 !== 11
? `${n} год`
: [2, 3, 4].includes(n % 10) && ![12, 13, 14].includes(n % 100)
? `${n} года`
: `${n} лет`;
},
},
};
export default {
name: 'locale-ru-RU',
version: '1.0.0',
size: 1024,
dependencies: ['holiday-engine'],
locale,
install(kairos, _utils) {
localeManager.register('ru-RU', {
...locale,
holidays,
observances,
regionalHolidays,
});
kairos.locales = kairos.locales || {};
kairos.locales['ru-RU'] = locale;
kairos.extend({
getRussianHolidays(region) {
if (region) {
const regionLower = region.toLowerCase();
const regionHols = regionalHolidays[regionLower];
if (regionHols) {
return [...holidays, ...regionHols];
}
}
return holidays;
},
getRussianObservances() {
return observances;
},
getRegionalRussianHolidays(region) {
return regionalHolidays[region.toLowerCase()] || [];
},
getAllRussianHolidays() {
return allHolidays;
},
});
},
};
//# sourceMappingURL=index.js.map