codigo0/node_modules/date-fns/locale/de/_lib/formatDistance.mjs
planetazuzu 5d7a6500fe refactor: Fase 1 - Clean Architecture, refactorización modular y eliminación de duplicidades
-  Ticket 1.1: Estructura Clean Architecture en backend
-  Ticket 1.2: Schemas Zod compartidos
-  Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares)
-  Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares)
-  Ticket 1.5: Eliminación de duplicidades (~50 líneas)

Cambios principales:
- Creada estructura Clean Architecture en backend/src/
- Schemas Zod compartidos en backend/src/shared/schemas/
- Refactorización modular de drugs y procedures
- Utilidades genéricas en src/utils/ (filter, validation)
- Eliminados scripts obsoletos y documentación antigua
- Corregidos errores: QueryClient, import test-error-handling
- Build verificado y funcionando correctamente
2026-01-25 21:09:47 +01:00

197 lines
3.7 KiB
JavaScript

const formatDistanceLocale = {
lessThanXSeconds: {
standalone: {
one: "weniger als 1 Sekunde",
other: "weniger als {{count}} Sekunden",
},
withPreposition: {
one: "weniger als 1 Sekunde",
other: "weniger als {{count}} Sekunden",
},
},
xSeconds: {
standalone: {
one: "1 Sekunde",
other: "{{count}} Sekunden",
},
withPreposition: {
one: "1 Sekunde",
other: "{{count}} Sekunden",
},
},
halfAMinute: {
standalone: "eine halbe Minute",
withPreposition: "einer halben Minute",
},
lessThanXMinutes: {
standalone: {
one: "weniger als 1 Minute",
other: "weniger als {{count}} Minuten",
},
withPreposition: {
one: "weniger als 1 Minute",
other: "weniger als {{count}} Minuten",
},
},
xMinutes: {
standalone: {
one: "1 Minute",
other: "{{count}} Minuten",
},
withPreposition: {
one: "1 Minute",
other: "{{count}} Minuten",
},
},
aboutXHours: {
standalone: {
one: "etwa 1 Stunde",
other: "etwa {{count}} Stunden",
},
withPreposition: {
one: "etwa 1 Stunde",
other: "etwa {{count}} Stunden",
},
},
xHours: {
standalone: {
one: "1 Stunde",
other: "{{count}} Stunden",
},
withPreposition: {
one: "1 Stunde",
other: "{{count}} Stunden",
},
},
xDays: {
standalone: {
one: "1 Tag",
other: "{{count}} Tage",
},
withPreposition: {
one: "1 Tag",
other: "{{count}} Tagen",
},
},
aboutXWeeks: {
standalone: {
one: "etwa 1 Woche",
other: "etwa {{count}} Wochen",
},
withPreposition: {
one: "etwa 1 Woche",
other: "etwa {{count}} Wochen",
},
},
xWeeks: {
standalone: {
one: "1 Woche",
other: "{{count}} Wochen",
},
withPreposition: {
one: "1 Woche",
other: "{{count}} Wochen",
},
},
aboutXMonths: {
standalone: {
one: "etwa 1 Monat",
other: "etwa {{count}} Monate",
},
withPreposition: {
one: "etwa 1 Monat",
other: "etwa {{count}} Monaten",
},
},
xMonths: {
standalone: {
one: "1 Monat",
other: "{{count}} Monate",
},
withPreposition: {
one: "1 Monat",
other: "{{count}} Monaten",
},
},
aboutXYears: {
standalone: {
one: "etwa 1 Jahr",
other: "etwa {{count}} Jahre",
},
withPreposition: {
one: "etwa 1 Jahr",
other: "etwa {{count}} Jahren",
},
},
xYears: {
standalone: {
one: "1 Jahr",
other: "{{count}} Jahre",
},
withPreposition: {
one: "1 Jahr",
other: "{{count}} Jahren",
},
},
overXYears: {
standalone: {
one: "mehr als 1 Jahr",
other: "mehr als {{count}} Jahre",
},
withPreposition: {
one: "mehr als 1 Jahr",
other: "mehr als {{count}} Jahren",
},
},
almostXYears: {
standalone: {
one: "fast 1 Jahr",
other: "fast {{count}} Jahre",
},
withPreposition: {
one: "fast 1 Jahr",
other: "fast {{count}} Jahren",
},
},
};
export const formatDistance = (token, count, options) => {
let result;
const tokenValue = options?.addSuffix
? formatDistanceLocale[token].withPreposition
: formatDistanceLocale[token].standalone;
if (typeof tokenValue === "string") {
result = tokenValue;
} else if (count === 1) {
result = tokenValue.one;
} else {
result = tokenValue.other.replace("{{count}}", String(count));
}
if (options?.addSuffix) {
if (options.comparison && options.comparison > 0) {
return "in " + result;
} else {
return "vor " + result;
}
}
return result;
};