localize.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. const eraValues = {
  3. narrow: ["pr.n.e.", "AD"],
  4. abbreviated: ["pr. Hr.", "po. Hr."],
  5. wide: ["Prije Hrista", "Poslije Hrista"],
  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. "jan",
  29. "feb",
  30. "mar",
  31. "apr",
  32. "maj",
  33. "jun",
  34. "jul",
  35. "avg",
  36. "sep",
  37. "okt",
  38. "nov",
  39. "dec",
  40. ],
  41. wide: [
  42. "januar",
  43. "februar",
  44. "mart",
  45. "april",
  46. "maj",
  47. "juni",
  48. "juli",
  49. "avgust",
  50. "septembar",
  51. "oktobar",
  52. "novembar",
  53. "decembar",
  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. "jan",
  73. "feb",
  74. "mar",
  75. "apr",
  76. "maj",
  77. "jun",
  78. "jul",
  79. "avg",
  80. "sep",
  81. "okt",
  82. "nov",
  83. "dec",
  84. ],
  85. wide: [
  86. "januar",
  87. "februar",
  88. "mart",
  89. "april",
  90. "maj",
  91. "juni",
  92. "juli",
  93. "avgust",
  94. "septembar",
  95. "oktobar",
  96. "novembar",
  97. "decembar",
  98. ],
  99. };
  100. const dayValues = {
  101. narrow: ["N", "P", "U", "S", "Č", "P", "S"],
  102. short: ["ned", "pon", "uto", "sre", "čet", "pet", "sub"],
  103. abbreviated: ["ned", "pon", "uto", "sre", "čet", "pet", "sub"],
  104. wide: [
  105. "nedjelja",
  106. "ponedjeljak",
  107. "utorak",
  108. "srijeda",
  109. "četvrtak",
  110. "petak",
  111. "subota",
  112. ],
  113. };
  114. const dayPeriodValues = {
  115. narrow: {
  116. am: "AM",
  117. pm: "PM",
  118. midnight: "ponoć",
  119. noon: "podne",
  120. morning: "ujutru",
  121. afternoon: "popodne",
  122. evening: "uveče",
  123. night: "noću",
  124. },
  125. abbreviated: {
  126. am: "AM",
  127. pm: "PM",
  128. midnight: "ponoć",
  129. noon: "podne",
  130. morning: "ujutru",
  131. afternoon: "popodne",
  132. evening: "uveče",
  133. night: "noću",
  134. },
  135. wide: {
  136. am: "AM",
  137. pm: "PM",
  138. midnight: "ponoć",
  139. noon: "podne",
  140. morning: "ujutru",
  141. afternoon: "poslije podne",
  142. evening: "uveče",
  143. night: "noću",
  144. },
  145. };
  146. const formattingDayPeriodValues = {
  147. narrow: {
  148. am: "AM",
  149. pm: "PM",
  150. midnight: "ponoć",
  151. noon: "podne",
  152. morning: "ujutru",
  153. afternoon: "popodne",
  154. evening: "uveče",
  155. night: "noću",
  156. },
  157. abbreviated: {
  158. am: "AM",
  159. pm: "PM",
  160. midnight: "ponoć",
  161. noon: "podne",
  162. morning: "ujutru",
  163. afternoon: "popodne",
  164. evening: "uveče",
  165. night: "noću",
  166. },
  167. wide: {
  168. am: "AM",
  169. pm: "PM",
  170. midnight: "ponoć",
  171. noon: "podne",
  172. morning: "ujutru",
  173. afternoon: "poslije podne",
  174. evening: "uveče",
  175. night: "noću",
  176. },
  177. };
  178. const ordinalNumber = (dirtyNumber, _options) => {
  179. const number = Number(dirtyNumber);
  180. return String(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. };