ru.js 3.2 KB

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