index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js";
  2. var eraValues = {
  3. narrow: ['e.ə', 'b.e'],
  4. abbreviated: ['e.ə', 'b.e'],
  5. wide: ['eramızdan əvvəl', 'bizim era']
  6. };
  7. var quarterValues = {
  8. narrow: ['1', '2', '3', '4'],
  9. abbreviated: ['K1', 'K2', 'K3', 'K4'],
  10. wide: ['1ci kvartal', '2ci kvartal', '3cü kvartal', '4cü kvartal']
  11. };
  12. var monthValues = {
  13. narrow: ['Y', 'F', 'M', 'A', 'M', 'İ', 'İ', 'A', 'S', 'O', 'N', 'D'],
  14. abbreviated: ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyun', 'İyul', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],
  15. wide: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr']
  16. };
  17. var dayValues = {
  18. narrow: ['B.', 'B.e', 'Ç.a', 'Ç.', 'C.a', 'C.', 'Ş.'],
  19. short: ['B.', 'B.e', 'Ç.a', 'Ç.', 'C.a', 'C.', 'Ş.'],
  20. abbreviated: ['Baz', 'Baz.e', 'Çər.a', 'Çər', 'Cüm.a', 'Cüm', 'Şə'],
  21. wide: ['Bazar', 'Bazar ertəsi', 'Çərşənbə axşamı', 'Çərşənbə', 'Cümə axşamı', 'Cümə', 'Şənbə']
  22. };
  23. var dayPeriodValues = {
  24. narrow: {
  25. am: 'am',
  26. pm: 'pm',
  27. midnight: 'gecəyarı',
  28. noon: 'gün',
  29. morning: 'səhər',
  30. afternoon: 'gündüz',
  31. evening: 'axşam',
  32. night: 'gecə'
  33. },
  34. abbreviated: {
  35. am: 'AM',
  36. pm: 'PM',
  37. midnight: 'gecəyarı',
  38. noon: 'gün',
  39. morning: 'səhər',
  40. afternoon: 'gündüz',
  41. evening: 'axşam',
  42. night: 'gecə'
  43. },
  44. wide: {
  45. am: 'a.m.',
  46. pm: 'p.m.',
  47. midnight: 'gecəyarı',
  48. noon: 'gün',
  49. morning: 'səhər',
  50. afternoon: 'gündüz',
  51. evening: 'axşam',
  52. night: 'gecə'
  53. }
  54. };
  55. var formattingDayPeriodValues = {
  56. narrow: {
  57. am: 'a',
  58. pm: 'p',
  59. midnight: 'gecəyarı',
  60. noon: 'gün',
  61. morning: 'səhər',
  62. afternoon: 'gündüz',
  63. evening: 'axşam',
  64. night: 'gecə'
  65. },
  66. abbreviated: {
  67. am: 'AM',
  68. pm: 'PM',
  69. midnight: 'gecəyarı',
  70. noon: 'gün',
  71. morning: 'səhər',
  72. afternoon: 'gündüz',
  73. evening: 'axşam',
  74. night: 'gecə'
  75. },
  76. wide: {
  77. am: 'a.m.',
  78. pm: 'p.m.',
  79. midnight: 'gecəyarı',
  80. noon: 'gün',
  81. morning: 'səhər',
  82. afternoon: 'gündüz',
  83. evening: 'axşam',
  84. night: 'gecə'
  85. }
  86. };
  87. var suffixes = {
  88. 1: '-inci',
  89. 5: '-inci',
  90. 8: '-inci',
  91. 70: '-inci',
  92. 80: '-inci',
  93. 2: '-nci',
  94. 7: '-nci',
  95. 20: '-nci',
  96. 50: '-nci',
  97. 3: '-üncü',
  98. 4: '-üncü',
  99. 100: '-üncü',
  100. 6: '-ncı',
  101. 9: '-uncu',
  102. 10: '-uncu',
  103. 30: '-uncu',
  104. 60: '-ıncı',
  105. 90: '-ıncı'
  106. };
  107. var getSuffix = function getSuffix(number) {
  108. if (number === 0) {
  109. // special case for zero
  110. return number + '-ıncı';
  111. }
  112. var a = number % 10;
  113. var b = number % 100 - a;
  114. var c = number >= 100 ? 100 : null;
  115. if (suffixes[a]) {
  116. return suffixes[a];
  117. } else if (suffixes[b]) {
  118. return suffixes[b];
  119. } else if (c !== null) {
  120. return suffixes[c];
  121. }
  122. return '';
  123. };
  124. var ordinalNumber = function ordinalNumber(dirtyNumber, _options) {
  125. var number = Number(dirtyNumber);
  126. var suffix = getSuffix(number);
  127. return number + suffix;
  128. };
  129. var localize = {
  130. ordinalNumber: ordinalNumber,
  131. era: buildLocalizeFn({
  132. values: eraValues,
  133. defaultWidth: 'wide'
  134. }),
  135. quarter: buildLocalizeFn({
  136. values: quarterValues,
  137. defaultWidth: 'wide',
  138. argumentCallback: function argumentCallback(quarter) {
  139. return quarter - 1;
  140. }
  141. }),
  142. month: buildLocalizeFn({
  143. values: monthValues,
  144. defaultWidth: 'wide'
  145. }),
  146. day: buildLocalizeFn({
  147. values: dayValues,
  148. defaultWidth: 'wide'
  149. }),
  150. dayPeriod: buildLocalizeFn({
  151. values: dayPeriodValues,
  152. defaultWidth: 'wide',
  153. formattingValues: formattingDayPeriodValues,
  154. defaultFormattingWidth: 'wide'
  155. })
  156. };
  157. export default localize;