localize.cjs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. "use strict";
  2. exports.localize = void 0;
  3. var _index = require("../../_lib/buildLocalizeFn.cjs");
  4. const eraValues = {
  5. narrow: ["av. J.-C", "ap. J.-C"],
  6. abbreviated: ["av. J.-C", "ap. J.-C"],
  7. wide: ["avant Jésus-Christ", "après Jésus-Christ"],
  8. };
  9. const quarterValues = {
  10. narrow: ["T1", "T2", "T3", "T4"],
  11. abbreviated: ["1er trim.", "2ème trim.", "3ème trim.", "4ème trim."],
  12. wide: ["1er trimestre", "2ème trimestre", "3ème trimestre", "4ème trimestre"],
  13. };
  14. const monthValues = {
  15. narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
  16. abbreviated: [
  17. "janv.",
  18. "févr.",
  19. "mars",
  20. "avr.",
  21. "mai",
  22. "juin",
  23. "juil.",
  24. "août",
  25. "sept.",
  26. "oct.",
  27. "nov.",
  28. "déc.",
  29. ],
  30. wide: [
  31. "janvier",
  32. "février",
  33. "mars",
  34. "avril",
  35. "mai",
  36. "juin",
  37. "juillet",
  38. "août",
  39. "septembre",
  40. "octobre",
  41. "novembre",
  42. "décembre",
  43. ],
  44. };
  45. const dayValues = {
  46. narrow: ["D", "L", "M", "M", "J", "V", "S"],
  47. short: ["di", "lu", "ma", "me", "je", "ve", "sa"],
  48. abbreviated: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
  49. wide: [
  50. "dimanche",
  51. "lundi",
  52. "mardi",
  53. "mercredi",
  54. "jeudi",
  55. "vendredi",
  56. "samedi",
  57. ],
  58. };
  59. const dayPeriodValues = {
  60. narrow: {
  61. am: "AM",
  62. pm: "PM",
  63. midnight: "minuit",
  64. noon: "midi",
  65. morning: "mat.",
  66. afternoon: "ap.m.",
  67. evening: "soir",
  68. night: "mat.",
  69. },
  70. abbreviated: {
  71. am: "AM",
  72. pm: "PM",
  73. midnight: "minuit",
  74. noon: "midi",
  75. morning: "matin",
  76. afternoon: "après-midi",
  77. evening: "soir",
  78. night: "matin",
  79. },
  80. wide: {
  81. am: "AM",
  82. pm: "PM",
  83. midnight: "minuit",
  84. noon: "midi",
  85. morning: "du matin",
  86. afternoon: "de l’après-midi",
  87. evening: "du soir",
  88. night: "du matin",
  89. },
  90. };
  91. const ordinalNumber = (dirtyNumber, options) => {
  92. const number = Number(dirtyNumber);
  93. const unit = options?.unit;
  94. if (number === 0) return "0";
  95. const feminineUnits = ["year", "week", "hour", "minute", "second"];
  96. let suffix;
  97. if (number === 1) {
  98. suffix = unit && feminineUnits.includes(unit) ? "ère" : "er";
  99. } else {
  100. suffix = "ème";
  101. }
  102. return number + suffix;
  103. };
  104. const LONG_MONTHS_TOKENS = ["MMM", "MMMM"];
  105. const localize = (exports.localize = {
  106. preprocessor: (date, parts) => {
  107. // Replaces the `do` tokens with `d` when used with long month tokens and the day of the month is greater than one.
  108. // Use case "do MMMM" => 1er août, 29 août
  109. // see https://github.com/date-fns/date-fns/issues/1391
  110. if (date.getDate() === 1) return parts;
  111. const hasLongMonthToken = parts.some(
  112. (part) => part.isToken && LONG_MONTHS_TOKENS.includes(part.value),
  113. );
  114. if (!hasLongMonthToken) return parts;
  115. return parts.map((part) =>
  116. part.isToken && part.value === "do"
  117. ? { isToken: true, value: "d" }
  118. : part,
  119. );
  120. },
  121. ordinalNumber,
  122. era: (0, _index.buildLocalizeFn)({
  123. values: eraValues,
  124. defaultWidth: "wide",
  125. }),
  126. quarter: (0, _index.buildLocalizeFn)({
  127. values: quarterValues,
  128. defaultWidth: "wide",
  129. argumentCallback: (quarter) => quarter - 1,
  130. }),
  131. month: (0, _index.buildLocalizeFn)({
  132. values: monthValues,
  133. defaultWidth: "wide",
  134. }),
  135. day: (0, _index.buildLocalizeFn)({
  136. values: dayValues,
  137. defaultWidth: "wide",
  138. }),
  139. dayPeriod: (0, _index.buildLocalizeFn)({
  140. values: dayPeriodValues,
  141. defaultWidth: "wide",
  142. }),
  143. });