index.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js";
  2. var numberValues = {
  3. locale: {
  4. '1': '১',
  5. '2': '২',
  6. '3': '৩',
  7. '4': '৪',
  8. '5': '৫',
  9. '6': '৬',
  10. '7': '৭',
  11. '8': '৮',
  12. '9': '৯',
  13. '0': '০'
  14. },
  15. number: {
  16. '১': '1',
  17. '২': '2',
  18. '৩': '3',
  19. '৪': '4',
  20. '৫': '5',
  21. '৬': '6',
  22. '৭': '7',
  23. '৮': '8',
  24. '৯': '9',
  25. '০': '0'
  26. }
  27. };
  28. var eraValues = {
  29. narrow: ['খ্রিঃপূঃ', 'খ্রিঃ'],
  30. abbreviated: ['খ্রিঃপূর্ব', 'খ্রিঃ'],
  31. wide: ['খ্রিস্টপূর্ব', 'খ্রিস্টাব্দ']
  32. };
  33. var quarterValues = {
  34. narrow: ['১', '২', '৩', '৪'],
  35. abbreviated: ['১ত্রৈ', '২ত্রৈ', '৩ত্রৈ', '৪ত্রৈ'],
  36. wide: ['১ম ত্রৈমাসিক', '২য় ত্রৈমাসিক', '৩য় ত্রৈমাসিক', '৪র্থ ত্রৈমাসিক']
  37. };
  38. var monthValues = {
  39. narrow: ['জানু', 'ফেব্রু', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],
  40. abbreviated: ['জানু', 'ফেব্রু', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],
  41. wide: ['জানুয়ারি', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর']
  42. };
  43. var dayValues = {
  44. narrow: ['র', 'সো', 'ম', 'বু', 'বৃ', 'শু', 'শ'],
  45. short: ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহ', 'শুক্র', 'শনি'],
  46. abbreviated: ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহ', 'শুক্র', 'শনি'],
  47. wide: ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার ', 'শুক্রবার', 'শনিবার']
  48. };
  49. var dayPeriodValues = {
  50. narrow: {
  51. am: 'পূ',
  52. pm: 'অপ',
  53. midnight: 'মধ্যরাত',
  54. noon: 'মধ্যাহ্ন',
  55. morning: 'সকাল',
  56. afternoon: 'বিকাল',
  57. evening: 'সন্ধ্যা',
  58. night: 'রাত'
  59. },
  60. abbreviated: {
  61. am: 'পূর্বাহ্ন',
  62. pm: 'অপরাহ্ন',
  63. midnight: 'মধ্যরাত',
  64. noon: 'মধ্যাহ্ন',
  65. morning: 'সকাল',
  66. afternoon: 'বিকাল',
  67. evening: 'সন্ধ্যা',
  68. night: 'রাত'
  69. },
  70. wide: {
  71. am: 'পূর্বাহ্ন',
  72. pm: 'অপরাহ্ন',
  73. midnight: 'মধ্যরাত',
  74. noon: 'মধ্যাহ্ন',
  75. morning: 'সকাল',
  76. afternoon: 'বিকাল',
  77. evening: 'সন্ধ্যা',
  78. night: 'রাত'
  79. }
  80. };
  81. var formattingDayPeriodValues = {
  82. narrow: {
  83. am: 'পূ',
  84. pm: 'অপ',
  85. midnight: 'মধ্যরাত',
  86. noon: 'মধ্যাহ্ন',
  87. morning: 'সকাল',
  88. afternoon: 'বিকাল',
  89. evening: 'সন্ধ্যা',
  90. night: 'রাত'
  91. },
  92. abbreviated: {
  93. am: 'পূর্বাহ্ন',
  94. pm: 'অপরাহ্ন',
  95. midnight: 'মধ্যরাত',
  96. noon: 'মধ্যাহ্ন',
  97. morning: 'সকাল',
  98. afternoon: 'বিকাল',
  99. evening: 'সন্ধ্যা',
  100. night: 'রাত'
  101. },
  102. wide: {
  103. am: 'পূর্বাহ্ন',
  104. pm: 'অপরাহ্ন',
  105. midnight: 'মধ্যরাত',
  106. noon: 'মধ্যাহ্ন',
  107. morning: 'সকাল',
  108. afternoon: 'বিকাল',
  109. evening: 'সন্ধ্যা',
  110. night: 'রাত'
  111. }
  112. };
  113. function dateOrdinalNumber(number, localeNumber) {
  114. if (number > 18 && number <= 31) {
  115. return localeNumber + 'শে';
  116. } else {
  117. switch (number) {
  118. case 1:
  119. return localeNumber + 'লা';
  120. case 2:
  121. case 3:
  122. return localeNumber + 'রা';
  123. case 4:
  124. return localeNumber + 'ঠা';
  125. default:
  126. return localeNumber + 'ই';
  127. }
  128. }
  129. }
  130. var ordinalNumber = function ordinalNumber(dirtyNumber, options) {
  131. var number = Number(dirtyNumber);
  132. var localeNumber = numberToLocale(number);
  133. var unit = options === null || options === void 0 ? void 0 : options.unit;
  134. if (unit === 'date') {
  135. return dateOrdinalNumber(number, localeNumber);
  136. }
  137. if (number > 10 || number === 0) return localeNumber + 'তম';
  138. var rem10 = number % 10;
  139. switch (rem10) {
  140. case 2:
  141. case 3:
  142. return localeNumber + 'য়';
  143. case 4:
  144. return localeNumber + 'র্থ';
  145. case 6:
  146. return localeNumber + 'ষ্ঠ';
  147. default:
  148. return localeNumber + 'ম';
  149. }
  150. };
  151. // function localeToNumber(locale: string): number {
  152. // const enNumber = locale.toString().replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
  153. // return numberValues.number[match as keyof typeof numberValues.number]
  154. // })
  155. // return Number(enNumber)
  156. // }
  157. export function numberToLocale(enNumber) {
  158. return enNumber.toString().replace(/\d/g, function (match) {
  159. return numberValues.locale[match];
  160. });
  161. }
  162. var localize = {
  163. ordinalNumber: ordinalNumber,
  164. era: buildLocalizeFn({
  165. values: eraValues,
  166. defaultWidth: 'wide'
  167. }),
  168. quarter: buildLocalizeFn({
  169. values: quarterValues,
  170. defaultWidth: 'wide',
  171. argumentCallback: function argumentCallback(quarter) {
  172. return quarter - 1;
  173. }
  174. }),
  175. month: buildLocalizeFn({
  176. values: monthValues,
  177. defaultWidth: 'wide'
  178. }),
  179. day: buildLocalizeFn({
  180. values: dayValues,
  181. defaultWidth: 'wide'
  182. }),
  183. dayPeriod: buildLocalizeFn({
  184. values: dayPeriodValues,
  185. defaultWidth: 'wide',
  186. formattingValues: formattingDayPeriodValues,
  187. defaultFormattingWidth: 'wide'
  188. })
  189. };
  190. export default localize;