localize.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. const eraValues = {
  3. narrow: ["eaa.", "jaa."],
  4. abbreviated: ["eaa.", "jaa."],
  5. wide: ["ennen ajanlaskun alkua", "jälkeen ajanlaskun alun"],
  6. };
  7. const quarterValues = {
  8. narrow: ["1", "2", "3", "4"],
  9. abbreviated: ["Q1", "Q2", "Q3", "Q4"],
  10. wide: ["1. kvartaali", "2. kvartaali", "3. kvartaali", "4. kvartaali"],
  11. };
  12. const monthValues = {
  13. narrow: ["T", "H", "M", "H", "T", "K", "H", "E", "S", "L", "M", "J"],
  14. abbreviated: [
  15. "tammi",
  16. "helmi",
  17. "maalis",
  18. "huhti",
  19. "touko",
  20. "kesä",
  21. "heinä",
  22. "elo",
  23. "syys",
  24. "loka",
  25. "marras",
  26. "joulu",
  27. ],
  28. wide: [
  29. "tammikuu",
  30. "helmikuu",
  31. "maaliskuu",
  32. "huhtikuu",
  33. "toukokuu",
  34. "kesäkuu",
  35. "heinäkuu",
  36. "elokuu",
  37. "syyskuu",
  38. "lokakuu",
  39. "marraskuu",
  40. "joulukuu",
  41. ],
  42. };
  43. const formattingMonthValues = {
  44. narrow: monthValues.narrow,
  45. abbreviated: monthValues.abbreviated,
  46. wide: [
  47. "tammikuuta",
  48. "helmikuuta",
  49. "maaliskuuta",
  50. "huhtikuuta",
  51. "toukokuuta",
  52. "kesäkuuta",
  53. "heinäkuuta",
  54. "elokuuta",
  55. "syyskuuta",
  56. "lokakuuta",
  57. "marraskuuta",
  58. "joulukuuta",
  59. ],
  60. };
  61. const dayValues = {
  62. narrow: ["S", "M", "T", "K", "T", "P", "L"],
  63. short: ["su", "ma", "ti", "ke", "to", "pe", "la"],
  64. abbreviated: ["sunn.", "maan.", "tiis.", "kesk.", "torst.", "perj.", "la"],
  65. wide: [
  66. "sunnuntai",
  67. "maanantai",
  68. "tiistai",
  69. "keskiviikko",
  70. "torstai",
  71. "perjantai",
  72. "lauantai",
  73. ],
  74. };
  75. const formattingDayValues = {
  76. narrow: dayValues.narrow,
  77. short: dayValues.short,
  78. abbreviated: dayValues.abbreviated,
  79. wide: [
  80. "sunnuntaina",
  81. "maanantaina",
  82. "tiistaina",
  83. "keskiviikkona",
  84. "torstaina",
  85. "perjantaina",
  86. "lauantaina",
  87. ],
  88. };
  89. const dayPeriodValues = {
  90. narrow: {
  91. am: "ap",
  92. pm: "ip",
  93. midnight: "keskiyö",
  94. noon: "keskipäivä",
  95. morning: "ap",
  96. afternoon: "ip",
  97. evening: "illalla",
  98. night: "yöllä",
  99. },
  100. abbreviated: {
  101. am: "ap",
  102. pm: "ip",
  103. midnight: "keskiyö",
  104. noon: "keskipäivä",
  105. morning: "ap",
  106. afternoon: "ip",
  107. evening: "illalla",
  108. night: "yöllä",
  109. },
  110. wide: {
  111. am: "ap",
  112. pm: "ip",
  113. midnight: "keskiyöllä",
  114. noon: "keskipäivällä",
  115. morning: "aamupäivällä",
  116. afternoon: "iltapäivällä",
  117. evening: "illalla",
  118. night: "yöllä",
  119. },
  120. };
  121. const ordinalNumber = (dirtyNumber, _options) => {
  122. const number = Number(dirtyNumber);
  123. return number + ".";
  124. };
  125. export const localize = {
  126. ordinalNumber,
  127. era: buildLocalizeFn({
  128. values: eraValues,
  129. defaultWidth: "wide",
  130. }),
  131. quarter: buildLocalizeFn({
  132. values: quarterValues,
  133. defaultWidth: "wide",
  134. argumentCallback: (quarter) => quarter - 1,
  135. }),
  136. month: buildLocalizeFn({
  137. values: monthValues,
  138. defaultWidth: "wide",
  139. formattingValues: formattingMonthValues,
  140. defaultFormattingWidth: "wide",
  141. }),
  142. day: buildLocalizeFn({
  143. values: dayValues,
  144. defaultWidth: "wide",
  145. formattingValues: formattingDayValues,
  146. defaultFormattingWidth: "wide",
  147. }),
  148. dayPeriod: buildLocalizeFn({
  149. values: dayPeriodValues,
  150. defaultWidth: "wide",
  151. }),
  152. };