localize.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. const eraValues = {
  3. narrow: ["пр.н.е.", "АД"],
  4. abbreviated: ["пр. Хр.", "по. Хр."],
  5. wide: ["Пре Христа", "После Христа"],
  6. };
  7. const quarterValues = {
  8. narrow: ["1.", "2.", "3.", "4."],
  9. abbreviated: ["1. кв.", "2. кв.", "3. кв.", "4. кв."],
  10. wide: ["1. квартал", "2. квартал", "3. квартал", "4. квартал"],
  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. "јан",
  29. "феб",
  30. "мар",
  31. "апр",
  32. "мај",
  33. "јун",
  34. "јул",
  35. "авг",
  36. "сеп",
  37. "окт",
  38. "нов",
  39. "дец",
  40. ],
  41. wide: [
  42. "јануар",
  43. "фебруар",
  44. "март",
  45. "април",
  46. "мај",
  47. "јун",
  48. "јул",
  49. "август",
  50. "септембар",
  51. "октобар",
  52. "новембар",
  53. "децембар",
  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. "јан",
  73. "феб",
  74. "мар",
  75. "апр",
  76. "мај",
  77. "јун",
  78. "јул",
  79. "авг",
  80. "сеп",
  81. "окт",
  82. "нов",
  83. "дец",
  84. ],
  85. wide: [
  86. "јануар",
  87. "фебруар",
  88. "март",
  89. "април",
  90. "мај",
  91. "јун",
  92. "јул",
  93. "август",
  94. "септембар",
  95. "октобар",
  96. "новембар",
  97. "децембар",
  98. ],
  99. };
  100. const dayValues = {
  101. narrow: ["Н", "П", "У", "С", "Ч", "П", "С"],
  102. short: ["нед", "пон", "уто", "сре", "чет", "пет", "суб"],
  103. abbreviated: ["нед", "пон", "уто", "сре", "чет", "пет", "суб"],
  104. wide: [
  105. "недеља",
  106. "понедељак",
  107. "уторак",
  108. "среда",
  109. "четвртак",
  110. "петак",
  111. "субота",
  112. ],
  113. };
  114. const formattingDayPeriodValues = {
  115. narrow: {
  116. am: "АМ",
  117. pm: "ПМ",
  118. midnight: "поноћ",
  119. noon: "подне",
  120. morning: "ујутру",
  121. afternoon: "поподне",
  122. evening: "увече",
  123. night: "ноћу",
  124. },
  125. abbreviated: {
  126. am: "АМ",
  127. pm: "ПМ",
  128. midnight: "поноћ",
  129. noon: "подне",
  130. morning: "ујутру",
  131. afternoon: "поподне",
  132. evening: "увече",
  133. night: "ноћу",
  134. },
  135. wide: {
  136. am: "AM",
  137. pm: "PM",
  138. midnight: "поноћ",
  139. noon: "подне",
  140. morning: "ујутру",
  141. afternoon: "после подне",
  142. evening: "увече",
  143. night: "ноћу",
  144. },
  145. };
  146. const dayPeriodValues = {
  147. narrow: {
  148. am: "AM",
  149. pm: "PM",
  150. midnight: "поноћ",
  151. noon: "подне",
  152. morning: "ујутру",
  153. afternoon: "поподне",
  154. evening: "увече",
  155. night: "ноћу",
  156. },
  157. abbreviated: {
  158. am: "AM",
  159. pm: "PM",
  160. midnight: "поноћ",
  161. noon: "подне",
  162. morning: "ујутру",
  163. afternoon: "поподне",
  164. evening: "увече",
  165. night: "ноћу",
  166. },
  167. wide: {
  168. am: "AM",
  169. pm: "PM",
  170. midnight: "поноћ",
  171. noon: "подне",
  172. morning: "ујутру",
  173. afternoon: "после подне",
  174. evening: "увече",
  175. night: "ноћу",
  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. };