index.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _index = _interopRequireDefault(require("../../../_lib/buildLocalizeFn/index.js"));
  7. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  8. var eraValues = {
  9. narrow: ['да н.э.', 'н.э.'],
  10. abbreviated: ['да н. э.', 'н. э.'],
  11. wide: ['да нашай эры', 'нашай эры']
  12. };
  13. var quarterValues = {
  14. narrow: ['1', '2', '3', '4'],
  15. abbreviated: ['1-ы кв.', '2-і кв.', '3-і кв.', '4-ы кв.'],
  16. wide: ['1-ы квартал', '2-і квартал', '3-і квартал', '4-ы квартал']
  17. };
  18. var monthValues = {
  19. narrow: ['С', 'Л', 'С', 'К', 'М', 'Ч', 'Л', 'Ж', 'В', 'К', 'Л', 'С'],
  20. abbreviated: ['студз.', 'лют.', 'сак.', 'крас.', 'май', 'чэрв.', 'ліп.', 'жн.', 'вер.', 'кастр.', 'ліст.', 'снеж.'],
  21. wide: ['студзень', 'люты', 'сакавік', 'красавік', 'май', 'чэрвень', 'ліпень', 'жнівень', 'верасень', 'кастрычнік', 'лістапад', 'снежань']
  22. };
  23. var formattingMonthValues = {
  24. narrow: ['С', 'Л', 'С', 'К', 'М', 'Ч', 'Л', 'Ж', 'В', 'К', 'Л', 'С'],
  25. abbreviated: ['студз.', 'лют.', 'сак.', 'крас.', 'мая', 'чэрв.', 'ліп.', 'жн.', 'вер.', 'кастр.', 'ліст.', 'снеж.'],
  26. wide: ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'мая', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня']
  27. };
  28. var dayValues = {
  29. narrow: ['Н', 'П', 'А', 'С', 'Ч', 'П', 'С'],
  30. short: ['нд', 'пн', 'аў', 'ср', 'чц', 'пт', 'сб'],
  31. abbreviated: ['нядз', 'пан', 'аўт', 'сер', 'чац', 'пят', 'суб'],
  32. wide: ['нядзеля', 'панядзелак', 'аўторак', 'серада', 'чацвер', 'пятніца', 'субота']
  33. };
  34. var dayPeriodValues = {
  35. narrow: {
  36. am: 'ДП',
  37. pm: 'ПП',
  38. midnight: 'поўн.',
  39. noon: 'поўд.',
  40. morning: 'ран.',
  41. afternoon: 'дзень',
  42. evening: 'веч.',
  43. night: 'ноч'
  44. },
  45. abbreviated: {
  46. am: 'ДП',
  47. pm: 'ПП',
  48. midnight: 'поўн.',
  49. noon: 'поўд.',
  50. morning: 'ран.',
  51. afternoon: 'дзень',
  52. evening: 'веч.',
  53. night: 'ноч'
  54. },
  55. wide: {
  56. am: 'ДП',
  57. pm: 'ПП',
  58. midnight: 'поўнач',
  59. noon: 'поўдзень',
  60. morning: 'раніца',
  61. afternoon: 'дзень',
  62. evening: 'вечар',
  63. night: 'ноч'
  64. }
  65. };
  66. var formattingDayPeriodValues = {
  67. narrow: {
  68. am: 'ДП',
  69. pm: 'ПП',
  70. midnight: 'поўн.',
  71. noon: 'поўд.',
  72. morning: 'ран.',
  73. afternoon: 'дня',
  74. evening: 'веч.',
  75. night: 'ночы'
  76. },
  77. abbreviated: {
  78. am: 'ДП',
  79. pm: 'ПП',
  80. midnight: 'поўн.',
  81. noon: 'поўд.',
  82. morning: 'ран.',
  83. afternoon: 'дня',
  84. evening: 'веч.',
  85. night: 'ночы'
  86. },
  87. wide: {
  88. am: 'ДП',
  89. pm: 'ПП',
  90. midnight: 'поўнач',
  91. noon: 'поўдзень',
  92. morning: 'раніцы',
  93. afternoon: 'дня',
  94. evening: 'вечара',
  95. night: 'ночы'
  96. }
  97. };
  98. function ordinalNumber(dirtyNumber, dirtyOptions) {
  99. var options = dirtyOptions || {};
  100. var unit = String(options.unit);
  101. var number = Number(dirtyNumber);
  102. var suffix;
  103. /** Though it's an incorrect ordinal form of a date we use it here for consistency with other similar locales (ru, uk)
  104. * For date-month combinations should be used `d` formatter.
  105. * Correct: `d MMMM` (4 верасня)
  106. * Incorrect: `do MMMM` (4-га верасня)
  107. *
  108. * But following the consistency leads to mistakes for literal uses of `do` formatter (ordinal day of month).
  109. * So for phrase "5th day of month" (`do дзень месяца`)
  110. * library will produce: `5-га дзень месяца`
  111. * but correct spelling should be: `5-ы дзень месяца`
  112. *
  113. * So I guess there should be a stand-alone and a formatting version of "day of month" formatters
  114. */
  115. if (unit === 'date') {
  116. suffix = '-га';
  117. } else if (unit === 'hour' || unit === 'minute' || unit === 'second') {
  118. suffix = '-я';
  119. } else {
  120. suffix = (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? '-і' : '-ы';
  121. }
  122. return number + suffix;
  123. }
  124. var localize = {
  125. ordinalNumber: ordinalNumber,
  126. era: (0, _index.default)({
  127. values: eraValues,
  128. defaultWidth: 'wide'
  129. }),
  130. quarter: (0, _index.default)({
  131. values: quarterValues,
  132. defaultWidth: 'wide',
  133. argumentCallback: function (quarter) {
  134. return Number(quarter) - 1;
  135. }
  136. }),
  137. month: (0, _index.default)({
  138. values: monthValues,
  139. defaultWidth: 'wide',
  140. formattingValues: formattingMonthValues,
  141. defaultFormattingWidth: 'wide'
  142. }),
  143. day: (0, _index.default)({
  144. values: dayValues,
  145. defaultWidth: 'wide'
  146. }),
  147. dayPeriod: (0, _index.default)({
  148. values: dayPeriodValues,
  149. defaultWidth: 'any',
  150. formattingValues: formattingDayPeriodValues,
  151. defaultFormattingWidth: 'wide'
  152. })
  153. };
  154. var _default = localize;
  155. exports.default = _default;
  156. module.exports = exports.default;