localize.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. // Reference: https://www.unicode.org/cldr/charts/32/summary/kn.html
  3. const eraValues = {
  4. narrow: ["ಕ್ರಿ.ಪೂ", "ಕ್ರಿ.ಶ"],
  5. abbreviated: ["ಕ್ರಿ.ಪೂ", "ಕ್ರಿ.ಶ"], // CLDR #1618, #1620
  6. wide: ["ಕ್ರಿಸ್ತ ಪೂರ್ವ", "ಕ್ರಿಸ್ತ ಶಕ"], // CLDR #1614, #1616
  7. };
  8. const quarterValues = {
  9. narrow: ["1", "2", "3", "4"],
  10. abbreviated: ["ತ್ರೈ 1", "ತ್ರೈ 2", "ತ್ರೈ 3", "ತ್ರೈ 4"], // CLDR #1630 - #1638
  11. wide: ["1ನೇ ತ್ರೈಮಾಸಿಕ", "2ನೇ ತ್ರೈಮಾಸಿಕ", "3ನೇ ತ್ರೈಮಾಸಿಕ", "4ನೇ ತ್ರೈಮಾಸಿಕ"],
  12. // CLDR #1622 - #1629
  13. };
  14. // CLDR #1646 - #1717
  15. const monthValues = {
  16. narrow: ["ಜ", "ಫೆ", "ಮಾ", "ಏ", "ಮೇ", "ಜೂ", "ಜು", "ಆ", "ಸೆ", "ಅ", "ನ", "ಡಿ"],
  17. abbreviated: [
  18. "ಜನ",
  19. "ಫೆಬ್ರ",
  20. "ಮಾರ್ಚ್",
  21. "ಏಪ್ರಿ",
  22. "ಮೇ",
  23. "ಜೂನ್",
  24. "ಜುಲೈ",
  25. "ಆಗ",
  26. "ಸೆಪ್ಟೆಂ",
  27. "ಅಕ್ಟೋ",
  28. "ನವೆಂ",
  29. "ಡಿಸೆಂ",
  30. ],
  31. wide: [
  32. "ಜನವರಿ",
  33. "ಫೆಬ್ರವರಿ",
  34. "ಮಾರ್ಚ್",
  35. "ಏಪ್ರಿಲ್",
  36. "ಮೇ",
  37. "ಜೂನ್",
  38. "ಜುಲೈ",
  39. "ಆಗಸ್ಟ್",
  40. "ಸೆಪ್ಟೆಂಬರ್",
  41. "ಅಕ್ಟೋಬರ್",
  42. "ನವೆಂಬರ್",
  43. "ಡಿಸೆಂಬರ್",
  44. ],
  45. };
  46. // CLDR #1718 - #1773
  47. const dayValues = {
  48. narrow: ["ಭಾ", "ಸೋ", "ಮಂ", "ಬು", "ಗು", "ಶು", "ಶ"],
  49. short: ["ಭಾನು", "ಸೋಮ", "ಮಂಗಳ", "ಬುಧ", "ಗುರು", "ಶುಕ್ರ", "ಶನಿ"],
  50. abbreviated: ["ಭಾನು", "ಸೋಮ", "ಮಂಗಳ", "ಬುಧ", "ಗುರು", "ಶುಕ್ರ", "ಶನಿ"],
  51. wide: [
  52. "ಭಾನುವಾರ",
  53. "ಸೋಮವಾರ",
  54. "ಮಂಗಳವಾರ",
  55. "ಬುಧವಾರ",
  56. "ಗುರುವಾರ",
  57. "ಶುಕ್ರವಾರ",
  58. "ಶನಿವಾರ",
  59. ],
  60. };
  61. // CLDR #1774 - #1815
  62. const dayPeriodValues = {
  63. narrow: {
  64. am: "ಪೂರ್ವಾಹ್ನ",
  65. pm: "ಅಪರಾಹ್ನ",
  66. midnight: "ಮಧ್ಯರಾತ್ರಿ",
  67. noon: "ಮಧ್ಯಾಹ್ನ",
  68. morning: "ಬೆಳಗ್ಗೆ",
  69. afternoon: "ಮಧ್ಯಾಹ್ನ",
  70. evening: "ಸಂಜೆ",
  71. night: "ರಾತ್ರಿ",
  72. },
  73. abbreviated: {
  74. am: "ಪೂರ್ವಾಹ್ನ",
  75. pm: "ಅಪರಾಹ್ನ",
  76. midnight: "ಮಧ್ಯರಾತ್ರಿ",
  77. noon: "ಮಧ್ಯಾನ್ಹ",
  78. morning: "ಬೆಳಗ್ಗೆ",
  79. afternoon: "ಮಧ್ಯಾನ್ಹ",
  80. evening: "ಸಂಜೆ",
  81. night: "ರಾತ್ರಿ",
  82. },
  83. wide: {
  84. am: "ಪೂರ್ವಾಹ್ನ",
  85. pm: "ಅಪರಾಹ್ನ",
  86. midnight: "ಮಧ್ಯರಾತ್ರಿ",
  87. noon: "ಮಧ್ಯಾನ್ಹ",
  88. morning: "ಬೆಳಗ್ಗೆ",
  89. afternoon: "ಮಧ್ಯಾನ್ಹ",
  90. evening: "ಸಂಜೆ",
  91. night: "ರಾತ್ರಿ",
  92. },
  93. };
  94. const formattingDayPeriodValues = {
  95. narrow: {
  96. am: "ಪೂ",
  97. pm: "ಅ",
  98. midnight: "ಮಧ್ಯರಾತ್ರಿ",
  99. noon: "ಮಧ್ಯಾನ್ಹ",
  100. morning: "ಬೆಳಗ್ಗೆ",
  101. afternoon: "ಮಧ್ಯಾನ್ಹ",
  102. evening: "ಸಂಜೆ",
  103. night: "ರಾತ್ರಿ",
  104. },
  105. abbreviated: {
  106. am: "ಪೂರ್ವಾಹ್ನ",
  107. pm: "ಅಪರಾಹ್ನ",
  108. midnight: "ಮಧ್ಯ ರಾತ್ರಿ",
  109. noon: "ಮಧ್ಯಾನ್ಹ",
  110. morning: "ಬೆಳಗ್ಗೆ",
  111. afternoon: "ಮಧ್ಯಾನ್ಹ",
  112. evening: "ಸಂಜೆ",
  113. night: "ರಾತ್ರಿ",
  114. },
  115. wide: {
  116. am: "ಪೂರ್ವಾಹ್ನ",
  117. pm: "ಅಪರಾಹ್ನ",
  118. midnight: "ಮಧ್ಯ ರಾತ್ರಿ",
  119. noon: "ಮಧ್ಯಾನ್ಹ",
  120. morning: "ಬೆಳಗ್ಗೆ",
  121. afternoon: "ಮಧ್ಯಾನ್ಹ",
  122. evening: "ಸಂಜೆ",
  123. night: "ರಾತ್ರಿ",
  124. },
  125. };
  126. const ordinalNumber = (dirtyNumber, _options) => {
  127. const number = Number(dirtyNumber);
  128. return number + "ನೇ";
  129. };
  130. export const localize = {
  131. ordinalNumber,
  132. era: buildLocalizeFn({
  133. values: eraValues,
  134. defaultWidth: "wide",
  135. }),
  136. quarter: buildLocalizeFn({
  137. values: quarterValues,
  138. defaultWidth: "wide",
  139. argumentCallback: (quarter) => quarter - 1,
  140. }),
  141. month: buildLocalizeFn({
  142. values: monthValues,
  143. defaultWidth: "wide",
  144. }),
  145. day: buildLocalizeFn({
  146. values: dayValues,
  147. defaultWidth: "wide",
  148. }),
  149. dayPeriod: buildLocalizeFn({
  150. values: dayPeriodValues,
  151. defaultWidth: "wide",
  152. formattingValues: formattingDayPeriodValues,
  153. defaultFormattingWidth: "wide",
  154. }),
  155. };