localize.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. const eraValues = {
  3. narrow: ["pr.n.e.", "AD"],
  4. abbreviated: ["pr. Kr.", "po. Kr."],
  5. wide: ["Prije Krista", "Poslije Krista"],
  6. };
  7. const quarterValues = {
  8. narrow: ["1.", "2.", "3.", "4."],
  9. abbreviated: ["1. kv.", "2. kv.", "3. kv.", "4. kv."],
  10. wide: ["1. kvartal", "2. kvartal", "3. kvartal", "4. kvartal"],
  11. };
  12. const monthValues = {
  13. narrow: [
  14. "1.",
  15. "2.",
  16. "3.",
  17. "4.",
  18. "5.",
  19. "6.",
  20. "7.",
  21. "8.",
  22. "9.",
  23. "10.",
  24. "11.",
  25. "12.",
  26. ],
  27. abbreviated: [
  28. "sij",
  29. "velj",
  30. "ožu",
  31. "tra",
  32. "svi",
  33. "lip",
  34. "srp",
  35. "kol",
  36. "ruj",
  37. "lis",
  38. "stu",
  39. "pro",
  40. ],
  41. wide: [
  42. "siječanj",
  43. "veljača",
  44. "ožujak",
  45. "travanj",
  46. "svibanj",
  47. "lipanj",
  48. "srpanj",
  49. "kolovoz",
  50. "rujan",
  51. "listopad",
  52. "studeni",
  53. "prosinac",
  54. ],
  55. };
  56. const formattingMonthValues = {
  57. narrow: [
  58. "1.",
  59. "2.",
  60. "3.",
  61. "4.",
  62. "5.",
  63. "6.",
  64. "7.",
  65. "8.",
  66. "9.",
  67. "10.",
  68. "11.",
  69. "12.",
  70. ],
  71. abbreviated: [
  72. "sij",
  73. "velj",
  74. "ožu",
  75. "tra",
  76. "svi",
  77. "lip",
  78. "srp",
  79. "kol",
  80. "ruj",
  81. "lis",
  82. "stu",
  83. "pro",
  84. ],
  85. wide: [
  86. "siječnja",
  87. "veljače",
  88. "ožujka",
  89. "travnja",
  90. "svibnja",
  91. "lipnja",
  92. "srpnja",
  93. "kolovoza",
  94. "rujna",
  95. "listopada",
  96. "studenog",
  97. "prosinca",
  98. ],
  99. };
  100. const dayValues = {
  101. narrow: ["N", "P", "U", "S", "Č", "P", "S"],
  102. short: ["ned", "pon", "uto", "sri", "čet", "pet", "sub"],
  103. abbreviated: ["ned", "pon", "uto", "sri", "čet", "pet", "sub"],
  104. wide: [
  105. "nedjelja",
  106. "ponedjeljak",
  107. "utorak",
  108. "srijeda",
  109. "četvrtak",
  110. "petak",
  111. "subota",
  112. ],
  113. };
  114. const formattingDayPeriodValues = {
  115. narrow: {
  116. am: "AM",
  117. pm: "PM",
  118. midnight: "ponoć",
  119. noon: "podne",
  120. morning: "ujutro",
  121. afternoon: "popodne",
  122. evening: "navečer",
  123. night: "noću",
  124. },
  125. abbreviated: {
  126. am: "AM",
  127. pm: "PM",
  128. midnight: "ponoć",
  129. noon: "podne",
  130. morning: "ujutro",
  131. afternoon: "popodne",
  132. evening: "navečer",
  133. night: "noću",
  134. },
  135. wide: {
  136. am: "AM",
  137. pm: "PM",
  138. midnight: "ponoć",
  139. noon: "podne",
  140. morning: "ujutro",
  141. afternoon: "poslije podne",
  142. evening: "navečer",
  143. night: "noću",
  144. },
  145. };
  146. const dayPeriodValues = {
  147. narrow: {
  148. am: "AM",
  149. pm: "PM",
  150. midnight: "ponoć",
  151. noon: "podne",
  152. morning: "ujutro",
  153. afternoon: "popodne",
  154. evening: "navečer",
  155. night: "noću",
  156. },
  157. abbreviated: {
  158. am: "AM",
  159. pm: "PM",
  160. midnight: "ponoć",
  161. noon: "podne",
  162. morning: "ujutro",
  163. afternoon: "popodne",
  164. evening: "navečer",
  165. night: "noću",
  166. },
  167. wide: {
  168. am: "AM",
  169. pm: "PM",
  170. midnight: "ponoć",
  171. noon: "podne",
  172. morning: "ujutro",
  173. afternoon: "poslije podne",
  174. evening: "navečer",
  175. night: "noću",
  176. },
  177. };
  178. const ordinalNumber = (dirtyNumber, _options) => {
  179. const number = Number(dirtyNumber);
  180. return number + ".";
  181. };
  182. export const localize = {
  183. ordinalNumber,
  184. era: buildLocalizeFn({
  185. values: eraValues,
  186. defaultWidth: "wide",
  187. }),
  188. quarter: buildLocalizeFn({
  189. values: quarterValues,
  190. defaultWidth: "wide",
  191. argumentCallback: (quarter) => quarter - 1,
  192. }),
  193. month: buildLocalizeFn({
  194. values: monthValues,
  195. defaultWidth: "wide",
  196. formattingValues: formattingMonthValues,
  197. defaultFormattingWidth: "wide",
  198. }),
  199. day: buildLocalizeFn({
  200. values: dayValues,
  201. defaultWidth: "wide",
  202. }),
  203. dayPeriod: buildLocalizeFn({
  204. values: dayPeriodValues,
  205. defaultWidth: "wide",
  206. formattingValues: formattingDayPeriodValues,
  207. defaultFormattingWidth: "wide",
  208. }),
  209. };