localize.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. const eraValues = {
  3. narrow: ["e.m.a", "m.a.j"],
  4. abbreviated: ["e.m.a", "m.a.j"],
  5. wide: ["enne meie ajaarvamist", "meie ajaarvamise järgi"],
  6. };
  7. const quarterValues = {
  8. narrow: ["1", "2", "3", "4"],
  9. abbreviated: ["K1", "K2", "K3", "K4"],
  10. wide: ["1. kvartal", "2. kvartal", "3. kvartal", "4. kvartal"],
  11. };
  12. const monthValues = {
  13. narrow: ["J", "V", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
  14. abbreviated: [
  15. "jaan",
  16. "veebr",
  17. "märts",
  18. "apr",
  19. "mai",
  20. "juuni",
  21. "juuli",
  22. "aug",
  23. "sept",
  24. "okt",
  25. "nov",
  26. "dets",
  27. ],
  28. wide: [
  29. "jaanuar",
  30. "veebruar",
  31. "märts",
  32. "aprill",
  33. "mai",
  34. "juuni",
  35. "juuli",
  36. "august",
  37. "september",
  38. "oktoober",
  39. "november",
  40. "detsember",
  41. ],
  42. };
  43. const dayValues = {
  44. narrow: ["P", "E", "T", "K", "N", "R", "L"],
  45. short: ["P", "E", "T", "K", "N", "R", "L"],
  46. abbreviated: [
  47. "pühap.",
  48. "esmasp.",
  49. "teisip.",
  50. "kolmap.",
  51. "neljap.",
  52. "reede.",
  53. "laup.",
  54. ],
  55. wide: [
  56. "pühapäev",
  57. "esmaspäev",
  58. "teisipäev",
  59. "kolmapäev",
  60. "neljapäev",
  61. "reede",
  62. "laupäev",
  63. ],
  64. };
  65. const dayPeriodValues = {
  66. narrow: {
  67. am: "AM",
  68. pm: "PM",
  69. midnight: "kesköö",
  70. noon: "keskpäev",
  71. morning: "hommik",
  72. afternoon: "pärastlõuna",
  73. evening: "õhtu",
  74. night: "öö",
  75. },
  76. abbreviated: {
  77. am: "AM",
  78. pm: "PM",
  79. midnight: "kesköö",
  80. noon: "keskpäev",
  81. morning: "hommik",
  82. afternoon: "pärastlõuna",
  83. evening: "õhtu",
  84. night: "öö",
  85. },
  86. wide: {
  87. am: "AM",
  88. pm: "PM",
  89. midnight: "kesköö",
  90. noon: "keskpäev",
  91. morning: "hommik",
  92. afternoon: "pärastlõuna",
  93. evening: "õhtu",
  94. night: "öö",
  95. },
  96. };
  97. const formattingDayPeriodValues = {
  98. narrow: {
  99. am: "AM",
  100. pm: "PM",
  101. midnight: "keskööl",
  102. noon: "keskpäeval",
  103. morning: "hommikul",
  104. afternoon: "pärastlõunal",
  105. evening: "õhtul",
  106. night: "öösel",
  107. },
  108. abbreviated: {
  109. am: "AM",
  110. pm: "PM",
  111. midnight: "keskööl",
  112. noon: "keskpäeval",
  113. morning: "hommikul",
  114. afternoon: "pärastlõunal",
  115. evening: "õhtul",
  116. night: "öösel",
  117. },
  118. wide: {
  119. am: "AM",
  120. pm: "PM",
  121. midnight: "keskööl",
  122. noon: "keskpäeval",
  123. morning: "hommikul",
  124. afternoon: "pärastlõunal",
  125. evening: "õhtul",
  126. night: "öösel",
  127. },
  128. };
  129. const ordinalNumber = (dirtyNumber, _options) => {
  130. const number = Number(dirtyNumber);
  131. return number + ".";
  132. };
  133. export const localize = {
  134. ordinalNumber,
  135. era: buildLocalizeFn({
  136. values: eraValues,
  137. defaultWidth: "wide",
  138. }),
  139. quarter: buildLocalizeFn({
  140. values: quarterValues,
  141. defaultWidth: "wide",
  142. argumentCallback: (quarter) => quarter - 1,
  143. }),
  144. month: buildLocalizeFn({
  145. values: monthValues,
  146. defaultWidth: "wide",
  147. formattingValues: monthValues,
  148. defaultFormattingWidth: "wide",
  149. }),
  150. day: buildLocalizeFn({
  151. values: dayValues,
  152. defaultWidth: "wide",
  153. formattingValues: dayValues,
  154. defaultFormattingWidth: "wide",
  155. }),
  156. dayPeriod: buildLocalizeFn({
  157. values: dayPeriodValues,
  158. defaultWidth: "wide",
  159. formattingValues: formattingDayPeriodValues,
  160. defaultFormattingWidth: "wide",
  161. }),
  162. };