localize.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. const eraValues = {
  3. narrow: ["av. J.-K", "ap. J.-K"],
  4. abbreviated: ["av. J.-K", "ap. J.-K"],
  5. wide: ["anvan Jezi Kris", "apre Jezi Kris"],
  6. };
  7. const quarterValues = {
  8. narrow: ["T1", "T2", "T3", "T4"],
  9. abbreviated: ["1ye trim.", "2yèm trim.", "3yèm trim.", "4yèm trim."],
  10. wide: ["1ye trimès", "2yèm trimès", "3yèm trimès", "4yèm trimès"],
  11. };
  12. const monthValues = {
  13. narrow: ["J", "F", "M", "A", "M", "J", "J", "O", "S", "O", "N", "D"],
  14. abbreviated: [
  15. "janv.",
  16. "fevr.",
  17. "mas",
  18. "avr.",
  19. "me",
  20. "jen",
  21. "jiyè",
  22. "out",
  23. "sept.",
  24. "okt.",
  25. "nov.",
  26. "des.",
  27. ],
  28. wide: [
  29. "janvye",
  30. "fevrye",
  31. "mas",
  32. "avril",
  33. "me",
  34. "jen",
  35. "jiyè",
  36. "out",
  37. "septanm",
  38. "oktòb",
  39. "novanm",
  40. "desanm",
  41. ],
  42. };
  43. const dayValues = {
  44. narrow: ["D", "L", "M", "M", "J", "V", "S"],
  45. short: ["di", "le", "ma", "mè", "je", "va", "sa"],
  46. abbreviated: ["dim.", "len.", "mad.", "mèk.", "jed.", "van.", "sam."],
  47. wide: ["dimanch", "lendi", "madi", "mèkredi", "jedi", "vandredi", "samdi"],
  48. };
  49. const dayPeriodValues = {
  50. narrow: {
  51. am: "AM",
  52. pm: "PM",
  53. midnight: "minwit",
  54. noon: "midi",
  55. morning: "mat.",
  56. afternoon: "ap.m.",
  57. evening: "swa",
  58. night: "mat.",
  59. },
  60. abbreviated: {
  61. am: "AM",
  62. pm: "PM",
  63. midnight: "minwit",
  64. noon: "midi",
  65. morning: "maten",
  66. afternoon: "aprèmidi",
  67. evening: "swa",
  68. night: "maten",
  69. },
  70. wide: {
  71. am: "AM",
  72. pm: "PM",
  73. midnight: "minwit",
  74. noon: "midi",
  75. morning: "nan maten",
  76. afternoon: "nan aprèmidi",
  77. evening: "nan aswè",
  78. night: "nan maten",
  79. },
  80. };
  81. const ordinalNumber = (dirtyNumber, _options) => {
  82. const number = Number(dirtyNumber);
  83. if (number === 0) return String(number);
  84. const suffix = number === 1 ? "ye" : "yèm";
  85. return number + suffix;
  86. };
  87. export const localize = {
  88. ordinalNumber,
  89. era: buildLocalizeFn({
  90. values: eraValues,
  91. defaultWidth: "wide",
  92. }),
  93. quarter: buildLocalizeFn({
  94. values: quarterValues,
  95. defaultWidth: "wide",
  96. argumentCallback: (quarter) => quarter - 1,
  97. }),
  98. month: buildLocalizeFn({
  99. values: monthValues,
  100. defaultWidth: "wide",
  101. }),
  102. day: buildLocalizeFn({
  103. values: dayValues,
  104. defaultWidth: "wide",
  105. }),
  106. dayPeriod: buildLocalizeFn({
  107. values: dayPeriodValues,
  108. defaultWidth: "wide",
  109. }),
  110. };