uk.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Ukrainian [uk]
  2. import dayjs from '../index';
  3. var monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_');
  4. var monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_');
  5. var MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;
  6. function plural(word, num) {
  7. var forms = word.split('_');
  8. 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]; // eslint-disable-line
  9. }
  10. function relativeTimeWithPlural(number, withoutSuffix, key) {
  11. var format = {
  12. ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
  13. mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
  14. hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
  15. dd: 'день_дні_днів',
  16. MM: 'місяць_місяці_місяців',
  17. yy: 'рік_роки_років'
  18. };
  19. if (key === 'm') {
  20. return withoutSuffix ? 'хвилина' : 'хвилину';
  21. } else if (key === 'h') {
  22. return withoutSuffix ? 'година' : 'годину';
  23. }
  24. return number + " " + plural(format[key], +number);
  25. }
  26. var months = function months(dayjsInstance, format) {
  27. if (MONTHS_IN_FORMAT.test(format)) {
  28. return monthFormat[dayjsInstance.month()];
  29. }
  30. return monthStandalone[dayjsInstance.month()];
  31. };
  32. months.s = monthStandalone;
  33. months.f = monthFormat;
  34. var locale = {
  35. name: 'uk',
  36. weekdays: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
  37. weekdaysShort: 'ндл_пнд_втр_срд_чтв_птн_сбт'.split('_'),
  38. weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  39. months: months,
  40. monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
  41. weekStart: 1,
  42. relativeTime: {
  43. future: 'за %s',
  44. past: '%s тому',
  45. s: 'декілька секунд',
  46. m: relativeTimeWithPlural,
  47. mm: relativeTimeWithPlural,
  48. h: relativeTimeWithPlural,
  49. hh: relativeTimeWithPlural,
  50. d: 'день',
  51. dd: relativeTimeWithPlural,
  52. M: 'місяць',
  53. MM: relativeTimeWithPlural,
  54. y: 'рік',
  55. yy: relativeTimeWithPlural
  56. },
  57. ordinal: function ordinal(n) {
  58. return n;
  59. },
  60. formats: {
  61. LT: 'HH:mm',
  62. LTS: 'HH:mm:ss',
  63. L: 'DD.MM.YYYY',
  64. LL: 'D MMMM YYYY р.',
  65. LLL: 'D MMMM YYYY р., HH:mm',
  66. LLLL: 'dddd, D MMMM YYYY р., HH:mm'
  67. }
  68. };
  69. dayjs.locale(locale, null, true);
  70. export default locale;