localize.cjs 6.2 KB

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