formatDistance.mjs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. const formatDistanceLocale = {
  2. lessThanXSeconds: {
  3. one: "minder dan een seconde",
  4. other: "minder dan {{count}} seconden",
  5. },
  6. xSeconds: {
  7. one: "1 seconde",
  8. other: "{{count}} seconden",
  9. },
  10. halfAMinute: "een halve minuut",
  11. lessThanXMinutes: {
  12. one: "minder dan een minuut",
  13. other: "minder dan {{count}} minuten",
  14. },
  15. xMinutes: {
  16. one: "een minuut",
  17. other: "{{count}} minuten",
  18. },
  19. aboutXHours: {
  20. one: "ongeveer 1 uur",
  21. other: "ongeveer {{count}} uur",
  22. },
  23. xHours: {
  24. one: "1 uur",
  25. other: "{{count}} uur",
  26. },
  27. xDays: {
  28. one: "1 dag",
  29. other: "{{count}} dagen",
  30. },
  31. aboutXWeeks: {
  32. one: "ongeveer 1 week",
  33. other: "ongeveer {{count}} weken",
  34. },
  35. xWeeks: {
  36. one: "1 week",
  37. other: "{{count}} weken",
  38. },
  39. aboutXMonths: {
  40. one: "ongeveer 1 maand",
  41. other: "ongeveer {{count}} maanden",
  42. },
  43. xMonths: {
  44. one: "1 maand",
  45. other: "{{count}} maanden",
  46. },
  47. aboutXYears: {
  48. one: "ongeveer 1 jaar",
  49. other: "ongeveer {{count}} jaar",
  50. },
  51. xYears: {
  52. one: "1 jaar",
  53. other: "{{count}} jaar",
  54. },
  55. overXYears: {
  56. one: "meer dan 1 jaar",
  57. other: "meer dan {{count}} jaar",
  58. },
  59. almostXYears: {
  60. one: "bijna 1 jaar",
  61. other: "bijna {{count}} jaar",
  62. },
  63. };
  64. export const formatDistance = (token, count, options) => {
  65. let result;
  66. const tokenValue = formatDistanceLocale[token];
  67. if (typeof tokenValue === "string") {
  68. result = tokenValue;
  69. } else if (count === 1) {
  70. result = tokenValue.one;
  71. } else {
  72. result = tokenValue.other.replace("{{count}}", String(count));
  73. }
  74. if (options?.addSuffix) {
  75. if (options.comparison && options.comparison > 0) {
  76. return "over " + result;
  77. } else {
  78. return result + " geleden";
  79. }
  80. }
  81. return result;
  82. };