formatDistance.mjs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. const formatDistanceLocale = {
  2. lessThanXSeconds: {
  3. one: "segundo bat baino gutxiago",
  4. other: "{{count}} segundo baino gutxiago",
  5. },
  6. xSeconds: {
  7. one: "1 segundo",
  8. other: "{{count}} segundo",
  9. },
  10. halfAMinute: "minutu erdi",
  11. lessThanXMinutes: {
  12. one: "minutu bat baino gutxiago",
  13. other: "{{count}} minutu baino gutxiago",
  14. },
  15. xMinutes: {
  16. one: "1 minutu",
  17. other: "{{count}} minutu",
  18. },
  19. aboutXHours: {
  20. one: "1 ordu gutxi gorabehera",
  21. other: "{{count}} ordu gutxi gorabehera",
  22. },
  23. xHours: {
  24. one: "1 ordu",
  25. other: "{{count}} ordu",
  26. },
  27. xDays: {
  28. one: "1 egun",
  29. other: "{{count}} egun",
  30. },
  31. aboutXWeeks: {
  32. one: "aste 1 inguru",
  33. other: "{{count}} aste inguru",
  34. },
  35. xWeeks: {
  36. one: "1 aste",
  37. other: "{{count}} astean",
  38. },
  39. aboutXMonths: {
  40. one: "1 hilabete gutxi gorabehera",
  41. other: "{{count}} hilabete gutxi gorabehera",
  42. },
  43. xMonths: {
  44. one: "1 hilabete",
  45. other: "{{count}} hilabete",
  46. },
  47. aboutXYears: {
  48. one: "1 urte gutxi gorabehera",
  49. other: "{{count}} urte gutxi gorabehera",
  50. },
  51. xYears: {
  52. one: "1 urte",
  53. other: "{{count}} urte",
  54. },
  55. overXYears: {
  56. one: "1 urte baino gehiago",
  57. other: "{{count}} urte baino gehiago",
  58. },
  59. almostXYears: {
  60. one: "ia 1 urte",
  61. other: "ia {{count}} urte",
  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 "en " + result;
  77. } else {
  78. return "duela " + result;
  79. }
  80. }
  81. return result;
  82. };