Files
medassist-ng/frontend/src/i18n/de.json
T
Daniel Volz 4b697374f6 feat: obsolete medication archiving, start date, and UI improvements (#215)
* feat: obsolete medication archiving, start date, and UI improvements

- Add soft-archive (obsolete) for medications with dedicated section and toggle
- Add medication start date field with date picker and validation
- Add obsolete/reactivate API endpoints with proper auth
- Filter obsolete meds from schedule, coverage, planner, and notifications
- Improve UserFilterModal with intake schedules, stock badges, and click-to-open
- Improve dashboard taken-by badges with per-intake bell icons
- Add Escape key support to ConfirmModal and MobileEditModal
- Fix Lightbox close button positioning near image
- Add read-only mode support for MobileEditModal
- DB migrations: 0008 (is_obsolete, obsolete_at), 0009 (medication_start_date)
- All user-facing text uses i18n keys (en + de)

* test: fix tests for obsolete medications and UI changes

- Backend: add is_obsolete, obsolete_at, medication_start_date columns to test schemas
- Backend: add test medication inserts in planner tests for active-med filtering
- Frontend: update useMedications URL to include includeObsolete param
- Frontend: fix MobileEditModal selectors and validation assertions
- Frontend: add onClearUser prop to UserFilterModal test renders
- Frontend: fix MedicationsPage and DashboardPage test assertions
2026-02-15 23:23:38 +01:00

569 lines
23 KiB
JSON

{
"nav": {
"dashboard": "Übersicht",
"medications": "Medikamente",
"planner": "Planer",
"settings": "Einstellungen",
"schedule": "Zeitplan"
},
"header": {
"eyebrow": {
"overview": "MedAssist-ng · Übersicht",
"inventory": "MedAssist-ng · Inventar",
"planner": "MedAssist-ng · Planer",
"settings": "MedAssist-ng · Einstellungen",
"schedule": "MedAssist-ng · Zeitplan"
}
},
"dashboard": {
"reorder": {
"title": "Nachfüll-Erinnerung",
"badge": "Bestandsüberwachung",
"noMeds": "Noch keine Medikamente konfiguriert.",
"allGood": "Alles in Ordnung, genug Vorrat.",
"lowWarning": "Genug Vorrat, aber {{meds}} ist kritisch niedrig.",
"lowWarning_other": "Genug Vorrat, aber {{meds}} sind kritisch niedrig.",
"lowWarningPrefix": "Genug Vorrat, aber",
"lowWarningSuffix": "ist kritisch niedrig.",
"lowWarningSuffix_other": "sind kritisch niedrig.",
"sendReminder": "🔔 Erinnerung jetzt senden"
},
"overview": {
"title": "Medikamentenübersicht",
"badge": "Bestand"
},
"schedules": {
"title": "Kommende Einnahmen",
"1month": "1 Monat",
"3months": "3 Monate",
"6months": "6 Monate",
"allTaken": "Alle eingenommen",
"showPastDays": "Vergangene Tage anzeigen",
"hidePastDays": "Vergangene Tage ausblenden",
"pastDaysCount": "{{count}} Tag",
"pastDaysCount_other": "{{count}} Tage",
"showFutureDays": "Zukünftige Tage anzeigen",
"hideFutureDays": "Zukünftige Tage ausblenden",
"futureDaysCount": "{{count}} Tag",
"futureDaysCount_other": "{{count}} Tage",
"missedDoses": "{{count}} verpasste Dosis",
"missedDoses_other": "{{count}} verpasste Dosen",
"clearMissed": "Verpasste löschen",
"clearMissedConfirmTitle": "Verpasste Dosen löschen?",
"clearMissedConfirmMessage": "{{count}} verpasste Dosis wird als bestätigt markiert, ohne vom Bestand abgezogen zu werden.",
"clearMissedConfirmMessage_other": "{{count}} verpasste Dosen werden als bestätigt markiert, ohne vom Bestand abgezogen zu werden.",
"clearMissedConfirm": "Ja, löschen",
"clearMissedCancel": "Abbrechen",
"clearMissedSuccess": "{{count}} verpasste Dosen gelöscht"
},
"reminders": {
"active": "Automatische Erinnerungen aktiv",
"status": "Status",
"allStockOk": "Bestand gut",
"allOk": "Alles gut",
"lastReminder": "Letzte Einnahme-Erinnerung",
"lastSent": "Letzte Einnahme-Erinnerung",
"lastStockSent": "Letzte Bestands-Erinnerung",
"next": "Nachbestell-Erinnerung",
"nextIn": "Nachbestell-Erinnerung",
"inDays": "in {{days}} Tagen",
"inDays_one": "in {{days}} Tag",
"inDays_other": "in {{days}} Tagen",
"noRemindersNeeded": "Keine Erinnerungen nötig",
"needRefill": "{{count}} Medikament nachfüllen",
"needRefill_other": "{{count}} Medikamente nachfüllen",
"emptyStock": "{{count}} Medikament leer",
"emptyStock_other": "{{count}} Medikamente leer",
"lowWarning": "{{count}} Medikament kritisch niedrig",
"lowWarning_other": "{{count}} Medikamente kritisch niedrig",
"waitingFirstCheck": "Warte auf erste Prüfung",
"type": "Typ",
"typeStock": "Bestand",
"typeIntake": "Einnahme",
"via": "via",
"channelEmail": "E-Mail",
"channelPush": "Push",
"channelBoth": "E-Mail + Push",
"criticalMeds": "{{count}} Medikament kritisch",
"criticalMeds_other": "{{count}} Medikamente kritisch",
"lowMeds": "{{count}} Medikament knapp",
"lowMeds_other": "{{count}} Medikamente knapp",
"prescriptionNeeds": "Rezept knapp",
"prescriptionLowMeds": "{{count}} Rezept knapp",
"prescriptionLowMeds_other": "{{count}} Rezepte knapp",
"prescriptionCriticalMeds": "{{count}} Rezept aufgebraucht",
"prescriptionCriticalMeds_other": "{{count}} Rezepte aufgebraucht",
"needsPrescriptionRefill": "Rezept nachfüllen nötig",
"usedBy": "Verwendet von",
"refillsLeft": "{{count}} Nachfüllung übrig",
"refillsLeft_other": "{{count}} Nachfüllungen übrig",
"daysLeft": "{{days}} Tag übrig",
"daysLeft_other": "{{days}} Tage übrig",
"needsRefill": "Nachfüllen nötig"
}
},
"table": {
"name": "Name",
"pills": "Tabletten",
"days": "Tage",
"currentPills": "Aktuelle Tabletten",
"fullBlisters": "Volle Blister",
"openBlister": "Offener Blister",
"stock": "Bestand",
"stockDetails": "Details",
"daysLeft": "Tage übrig",
"status": "Status",
"runsOut": "Aufgebraucht",
"autoRemind": "Auto-Erinnerung",
"expiry": "Ablaufdatum",
"pillsCount": "{{count}} Tabletten",
"pillsCount_one": "{{count}} Tablette",
"pillsCount_other": "{{count}} Tabletten"
},
"medications": {
"list": {
"title": "Medikamentenliste",
"entries": "{{count}} Einträge",
"entries_one": "{{count}} Eintrag",
"entries_other": "{{count}} Einträge",
"markObsolete": "Als obsolet markieren",
"reactivate": "Reaktivieren",
"obsoleteTitle": "Obsolet ({{count}})",
"obsoleteSince": "Beendet",
"started": "Gestartet"
},
"details": {
"packs": "Packungen",
"blisters": "Blister pro Packung",
"pillsPerBlister": "Tabletten pro Blister",
"loose": "Lose",
"total": "Gesamt",
"stock": "Bestand",
"totalCapacity": "Kapazität",
"type": "Typ"
},
"deleteModal": {
"title": "Medikament löschen",
"message": "Möchtest du \"{{name}}\" wirklich löschen?"
},
"obsoleteModal": {
"title": "Medikament als obsolet markieren",
"message": "Möchtest du \"{{name}}\" wirklich als obsolet markieren?"
}
},
"form": {
"editEntry": "Medikament bearbeiten",
"viewEntry": "Medikament ansehen",
"newEntry": "Neues Medikament",
"badge": "Packungen + lose Tabletten",
"sections": {
"general": "Allgemein",
"stock": "Bestand & Dosis",
"prescription": "Rezept"
},
"commercialName": "Handelsname",
"genericName": "Wirkstoff",
"takenBy": "Eingenommen von",
"packageType": "Verpackungsart",
"packageTypeBlister": "Blisterpackung",
"packageTypeBottle": "Pillendose",
"packs": "Packungen",
"blistersPerPack": "Blister pro Packung",
"pillsPerBlister": "Tabletten pro Blister",
"totalCapacity": "Gesamtkapazität",
"currentPills": "Aktuelle Tabletten",
"loosePills": "Lose Tabletten",
"pillWeight": "Dosis pro Tablette",
"total": "Gesamt (Tabletten)",
"medicationStartDate": "Medikations-Startdatum",
"expiryDate": "Ablaufdatum",
"notes": "Notizen",
"medicationImage": "Medikamentenbild",
"removeImage": "Bild entfernen",
"placeholders": {
"commercial": "z.B. Ozempic",
"generic": "z.B. Semaglutid (optional)",
"takenBy": "Name eingeben und Enter drücken",
"addPerson": "Weitere Person hinzufügen...",
"weight": "z.B. 240",
"notes": "z.B. Mit Essen einnehmen, Alkohol vermeiden... (optional)"
},
"validation": {
"startDateAfterIntake": "Das Medikations-Startdatum ({{medicationStartDate}}) darf nicht nach dem Einnahmedatum ({{intakeDate}}) liegen."
},
"blisters": {
"title": "Einnahmeplan",
"remind": "Erinnern",
"remindTooltip": "Erhalte eine Benachrichtigung 15 Minuten vor jeder geplanten Einnahme",
"addIntake": "Einnahme",
"usage": "Dosis (Tabletten)",
"everyDays": "Alle (Tage)",
"every": "alle",
"from": "ab",
"startDate": "Datum",
"startTime": "Uhrzeit",
"takenByIntake": "Eingenommen von",
"takenByEveryone": "Alle"
}
},
"planner": {
"title": "Bedarfsrechner",
"badge": "Vorrat planen",
"from": "Von",
"until": "Bis",
"includeUntilStart": "Aktuellen Verbrauch einrechnen",
"includeUntilStartTooltip": "Wenn aktiviert, werden die Pillen, die zwischen heute und dem gewählten Startdatum verbraucht werden, vom aktuellen Bestand abgezogen. So erhältst du ein genaueres Bild davon, wie viel du zu Beginn des Planungszeitraums tatsächlich noch übrig hast.",
"calculate": "Berechnen",
"calculating": "Wird berechnet...",
"sendEmail": "📧 Per E-Mail senden",
"sendNotification": "🔔 Bedarf senden",
"table": {
"medication": "Medikament",
"usage": "Verbrauch",
"blistersNeeded": "Blister benötigt",
"prescriptionRefills": "Rezept-Nachfüllungen",
"blisters": "Blister",
"available": "Verfügbar"
}
},
"settings": {
"loading": "Einstellungen werden geladen...",
"language": {
"title": "Sprache",
"select": "Sprache auswählen"
},
"notifications": {
"title": "Benachrichtigungen",
"channels": "Kanäle",
"email": "E-Mail",
"push": "Push",
"stockReminders": "Bestands-Erinnerungen",
"intakeReminders": "Einnahme-Erinnerungen",
"prescriptionReminders": "Rezept-Erinnerungen",
"enableHint": "Aktivieren Sie mindestens einen Kanal, um Benachrichtigungen zu erhalten.",
"skipTakenDoses": "Keine Erinnerungen für genommene Dosen",
"skipTakenDosesTooltip": "Sende keine Einnahme-Erinnerungen für Dosen, die heute bereits als genommen markiert wurden",
"repeatReminders": "Wiederholte Erinnerungen für verpasste Dosen",
"repeatRemindersTooltip": "Sende automatisch wiederholte Erinnerungen für Dosen, die noch nicht als genommen markiert wurden",
"reminderInterval": "Erinnerungsintervall (Minuten)",
"reminderIntervalTooltip": "Wie oft wiederholte Erinnerungen für verpasste Dosen gesendet werden sollen",
"maxNaggingReminders": "Max. Erinnerungen pro Dosis",
"maxNaggingRemindersTooltip": "Wiederholungserinnerungen nach dieser Anzahl Versuchen stoppen (1-20)"
},
"email": {
"recipient": "Empfänger",
"notConfigured": "Nicht konfiguriert"
},
"push": {
"url": "URL",
"urlPlaceholder": "ntfy://topic oder pushover://:token@userkey/",
"supports": "Unterstützt ntfy, Pushover, Gotify, Discord, Telegram, Slack & mehr",
"docsLink": "Siehe shoutrrr.dev für alle Services"
},
"schedule": {
"title": "Erinnerungsplan",
"stockCheck": "Bestands- & Rezeptprüfung",
"dailyAt6": "Täglich um 6:00 Uhr",
"intakeCheck": "Einnahmeprüfung",
"15minBefore": "15 Min. vor geplanter Zeit",
"nextCheck": "Nächste Bestandsprüfung",
"lastSent": "Letzte Benachrichtigung",
"lastStockSent": "Letzte Bestands-Erinnerung",
"lastIntakeSent": "Letzte Einnahme-Erinnerung",
"lastPrescriptionSent": "Letzte Rezept-Erinnerung",
"envHint": "Diese Werte können über REMINDER_HOUR und REMINDER_MINUTES_BEFORE in .env konfiguriert werden"
},
"stock": {
"title": "Bestand",
"calculationMode": "Bestandsberechnung",
"automatic": "Automatisch",
"automaticDesc": "Bestand wird automatisch anhand des Einnahmeplans reduziert",
"manual": "Manuell",
"manualDesc": "Bestand wird nur reduziert wenn Dosen als genommen markiert werden",
"thresholds": "Schwellenwerte",
"criticalStockDays": "Kritisch (Tage)",
"criticalStockTooltip": "Bestand unter diesem Wert ist kritisch und erfordert sofortige Aufmerksamkeit",
"lowStockDays": "Niedrig (Tage)",
"lowStockTooltip": "Bestand unter diesem Wert bedeutet, dass bald nachbestellt werden sollte",
"highStockDays": "Hoch (Tage)",
"highStockTooltip": "Bestand über diesem Wert bedeutet, dass du gut versorgt bist",
"thresholdValidation": "Werte müssen sein: Kritisch < Niedrig < Hoch",
"shareStockStatus": "Bestand auf geteilten Links anzeigen",
"shareStockStatusDesc": "Bestandsstatus (Normal/Niedrig/Kritisch) und farbige Rahmen auf geteilten Zeitplan-Links für Einnahme-Nutzer anzeigen"
},
"stockReminder": {
"title": "Bestands-Erinnerung",
"description": "Bestands-Erinnerungen aktivieren",
"infoTooltip": "Benachrichtigungen umfassen alle Medikamente mit Niedrig- oder Kritisch-Status. Niedrig: Bestand wird knapp. Kritisch: Bestand ist kritisch niedrig — bald nachbestellen.",
"repeatDaily": "Täglich wiederholen",
"repeatTooltip": "Wenn aktiviert, wird täglich eine Erinnerung gesendet solange der Bestand kritisch ist. Andernfalls nur einmal pro Medikament bis zum Auffüllen."
},
"saveSettings": "Einstellungen speichern"
},
"modal": {
"for": "für",
"at": "um",
"stockInfo": "Aktueller Bestand",
"packageDetails": "Packungsdetails",
"currentStock": "Tabletten",
"packs": "Packungen",
"blistersPerPack": "Blister/Packung",
"pillsPerBlister": "Tabletten/Blister",
"loosePills": "Lose Tabletten",
"pillWeight": "Tablettengewicht",
"expiryDate": "Ablaufdatum",
"intakeSchedule": "Einnahmeplan",
"coverageStatus": "Bestand",
"daysLeft": "Tage übrig",
"runsOut": "Aufgebraucht",
"notes": "Notizen",
"exportCalendar": "In Kalender exportieren",
"exportTooltip": "Zeitplan in Kalender exportieren",
"editMedication": "Medikament bearbeiten",
"userMedications": "Medikamente von {{name}}",
"noMedsForUser": "Keine Medikamente für {{name}} gefunden"
},
"status": {
"outOfStock": "Leer",
"criticalStock": "Kritisch",
"lowStock": "Niedrig",
"normal": "Normal",
"highStock": "Hoch",
"noSchedule": "Kein Zeitplan",
"enough": "Ausreichend",
"noPillsLeft": "Keine Tabletten mehr",
"stockOk": "Bestand OK"
},
"tooltips": {
"intakeReminders": "Einnahme-Erinnerungen aktiviert",
"hasNotes": "Hat Notizen",
"stockExceedsCapacity": "Bestand überschreitet Packungskapazität — Packungsanzahl anpassen",
"lightMode": "Zum hellen Modus wechseln",
"darkMode": "Zum dunklen Modus wechseln"
},
"theme": {
"title": "Design",
"light": "Hell",
"dark": "Dunkel",
"system": "System"
},
"dose": {
"takenBy": "eingenommen von",
"markAsTaken": "Als eingenommen markieren"
},
"auth": {
"login": "Anmelden",
"logout": "Abmelden",
"register": "Konto erstellen",
"createAdmin": "Admin-Konto erstellen",
"profile": "Profil",
"username": "Benutzername",
"password": "Passwort",
"email": "E-Mail",
"confirmPassword": "Passwort bestätigen",
"currentPassword": "Aktuelles Passwort",
"newPassword": "Neues Passwort",
"changePassword": "Passwort ändern",
"forgotPassword": "Passwort vergessen?",
"sendResetLink": "Link senden",
"resetPassword": "Passwort zurücksetzen",
"backToLogin": "Zurück zur Anmeldung",
"createAccount": "Konto erstellen",
"alreadyHaveAccount": "Bereits ein Konto? Anmelden",
"firstUserInfo": "Dies wird das Administrator-Konto.",
"usernameHint": "Nur Buchstaben, Zahlen, Unterstriche und Bindestriche",
"emailHint": "Für Passwort-Wiederherstellung",
"passwordMismatch": "Passwörter stimmen nicht überein",
"checkEmail": "E-Mail überprüfen",
"resetEmailSent": "Falls ein Konto mit dieser E-Mail existiert, haben wir einen Link zum Zurücksetzen gesendet.",
"passwordReset": "Passwort zurückgesetzt",
"passwordResetSuccess": "Ihr Passwort wurde zurückgesetzt. Weiterleitung zur Anmeldung...",
"profileUpdated": "Profil erfolgreich aktualisiert",
"rememberMe": "Angemeldet bleiben",
"localAccount": "Lokales Konto",
"updatePassword": "Passwort ändern",
"fillAllFields": "Bitte alle Passwortfelder ausfüllen",
"signOut": "Abmelden",
"uploadAvatar": "Avatar hochladen",
"removeAvatar": "Avatar entfernen",
"avatarUpdated": "Avatar aktualisiert",
"avatarRemoved": "Avatar entfernt",
"loginWithSSO": "Mit {{provider}} anmelden",
"or": "oder",
"deleteAccount": "Konto löschen",
"deleteAccountConfirmTitle": "Konto löschen?",
"deleteAccountConfirmText": "Dadurch werden dein Konto und alle deine Daten (Medikamente, Einstellungen, Verlauf) dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
"deleteAccountButton": "Ja, mein Konto löschen"
},
"common": {
"loading": "Wird geladen...",
"sending": "Wird gesendet...",
"sent": "Gesendet!",
"sendFailed": "Senden fehlgeschlagen",
"saveFailed": "Speichern fehlgeschlagen",
"networkError": "Netzwerkfehler",
"saving": "Wird gespeichert...",
"unsavedChanges": {
"title": "Ungespeicherte Änderungen",
"message": "Du hast ungespeicherte Änderungen. Möchtest du die Seite wirklich verlassen?",
"leave": "Verlassen",
"stay": "Bleiben"
},
"validation": {
"required": "Dieses Feld ist erforderlich",
"maxLength": "Maximal {{max}} Zeichen ({{current}}/{{max}})",
"tooLong": "{{current}}/{{max}} Zeichen"
},
"saved": "Gespeichert ✓",
"save": "Speichern",
"back": "Zurück",
"cancel": "Abbrechen",
"close": "Schließen",
"edit": "Bearbeiten",
"view": "Ansehen",
"delete": "Löschen",
"remove": "Entfernen",
"reset": "Zurücksetzen",
"test": "Test",
"undo": "Rückgängig",
"expand": "Klicken zum Aufklappen",
"collapse": "Klicken zum Einklappen",
"optional": "optional",
"pill": "Tablette",
"pills": "Tabletten",
"of": "von",
"loose": "lose",
"none": "Kein",
"day": "Tag",
"days": "Tage",
"blister": "Blister",
"blisters": "Blister",
"fullBlister": "voller Blister",
"fullBlisters": "volle Blister",
"inBlister": "in 1 Blister",
"total": "gesamt",
"pillsTotal": "{{count}} Tabletten gesamt",
"pillsTotal_one": "{{count}} Tablette gesamt",
"pillsTotal_other": "{{count}} Tabletten gesamt",
"max": "max"
},
"share": {
"button": "Teilen",
"title": "Zeitplan teilen",
"description": "Generiere einen geheimen Link, um den Medikamentenplan für eine bestimmte Person zu teilen. Jeder mit diesem Link kann den Zeitplan sehen. Wenn die Person eine Dosis als eingenommen markiert, wird sie auch in deiner App als eingenommen angezeigt.",
"selectPerson": "Person auswählen",
"selectPeriod": "Zeitraum auswählen",
"generateLink": "Link generieren",
"generating": "Wird generiert...",
"generateAnother": "Weiteren Link generieren",
"linkGenerated": "Teilen-Link erstellt!",
"copyLink": "Link kopieren",
"copied": "In Zwischenablage kopiert!",
"noPeople": "Keine Medikamente mit 'Eingenommen von' zugewiesen. Füge zuerst eine Person zu einem Medikament hinzu.",
"scheduleFor": "Zeitplan für",
"period": "Zeitraum",
"noSchedule": "Keine geplanten Einnahmen gefunden.",
"generatedBy": "Erstellt von",
"notFound": "Teilen-Link nicht gefunden",
"error": "Zeitplan konnte nicht geladen werden",
"expired": {
"title": "Link abgelaufen",
"message": "Dieser Teilen-Link für den Medikamentenplan von {{takenBy}} ist abgelaufen.",
"contact": "Bitte kontaktiere {{username}} um einen neuen Link anzufordern.",
"expiredOn": "Abgelaufen am: {{date}}"
}
},
"exportImport": {
"title": "Daten Export / Import",
"description": "Sichere deine Daten oder übertrage sie auf ein anderes Gerät.",
"exportTitle": "Export",
"exportDesc": "Lade alle deine Daten als JSON-Datei herunter.",
"importTitle": "Import",
"importDesc": "Stelle Daten aus einer Sicherung wieder her. Dies ersetzt alle bestehenden Daten.",
"export": "Daten exportieren",
"exporting": "Exportiere...",
"import": "Datei auswählen",
"importing": "Importiere...",
"selectFile": "Datei auswählen",
"includeSensitive": "Sensible Daten einschließen (Benachrichtigungs-URLs)",
"sensitiveWarning": "Benachrichtigungs-URLs können Passwörter enthalten und werden im Klartext gespeichert.",
"includeImages": "Medikamentenbilder einschließen",
"includeImagesHint": "Bilder vergrößern die Datei erheblich. Deaktivieren für kleinere Exports (~50 KB statt mehrere MB).",
"exportOptions": "Export-Optionen",
"exportWithImages": "Mit Bildern",
"exportWithImagesDesc": "Vollständiges Backup mit allen Medikamentenbildern. Größere Datei.",
"exportDataOnly": "Nur Daten",
"exportDataOnlyDesc": "Kompaktes Backup ohne Bilder. Viel kleinere Datei (~50 KB).",
"confirmImport": "Alle Daten ersetzen?",
"confirmImportMessage": "Dies löscht dauerhaft alle deine aktuellen Medikamente, Einnahmehistorie, Einstellungen und Teilen-Links und ersetzt sie durch die importierten Daten.",
"confirmImportWarning": "Diese Aktion kann nicht rückgängig gemacht werden!",
"confirmButton": "Ja, alles ersetzen",
"cancelButton": "Abbrechen",
"exportSuccess": "Daten erfolgreich exportiert",
"importSuccess": "Daten erfolgreich importiert",
"importSuccessDetails": "Importiert: {{medications}} Medikamente, {{doses}} Dosen, {{shares}} Teilen-Links",
"importError": "Daten konnten nicht importiert werden",
"invalidFile": "Ungültiges Dateiformat. Bitte wähle eine gültige MedAssist-ng-Exportdatei.",
"downloadFilename": "medassist-export"
},
"refill": {
"saveFirst": "Speichere das Medikament zuerst, um Nachfüllen zu aktivieren",
"title": "Nachfüllen",
"packs": "Packungen hinzufügen",
"pillsToAdd": "Tabletten hinzufügen",
"loosePills": "Lose Tabletten hinzufügen",
"pillsPerPack": "1 Packung = {{count}} Tabletten",
"addToStock": "Zum Bestand hinzufügen",
"adding": "Wird hinzugefügt...",
"success": "{{pills}} Tabletten zum Bestand hinzugefügt",
"history": "Nachfüll-Verlauf",
"noHistory": "Noch keine Nachfüllungen erfasst",
"packsAdded": "{{count}} Packung",
"packsAdded_other": "{{count}} Packungen",
"pillsAdded": "{{count}} Tablette",
"pillsAdded_other": "{{count}} Tabletten",
"button": "Nachfüllen",
"viaPrescription": "Rezept"
},
"prescription": {
"enabled": "Rezept verfolgen",
"authorizedRefills": "Genehmigte Nachfüllungen",
"remainingRefills": "Verbleibende Rezept-Nachfüllungen",
"lowThreshold": "Schwelle für Rezept-Erinnerung",
"expiryDate": "Rezeptablauf",
"useForRefill": "Rezept-Nachfüllung verwenden"
},
"editStock": {
"title": "Bestand korrigieren",
"hint": "Dies ist für die Korrektur von Bestandsabweichungen. Für normale Bestandsänderungen nutze 'Nachfüllen'.",
"totalPills": "Gesamte Tabletten",
"fullBlisters": "Volle Blister",
"partialBlisterPills": "Angebrochener Blister",
"pillsPerBlister": "(je {{count}} Tabletten)",
"currentTotal": "Aktueller Bestand",
"newTotal": "Neuer Bestand",
"difference": "Differenz",
"save": "Korrektur speichern",
"saving": "Speichern...",
"success": "Bestand erfolgreich korrigiert"
},
"about": {
"title": "Über",
"appName": "MedAssist-ng",
"description": "Open-Source Medikamentenverwaltung und Planungsanwendung für selbst gehostete Umgebungen.",
"version": "Version",
"checkForUpdates": "Nach Updates suchen",
"checking": "Prüfe...",
"upToDate": "Du bist auf dem neuesten Stand!",
"updateAvailable": "Update verfügbar",
"downloadUpdate": "Update herunterladen",
"checkFailed": "Update-Prüfung fehlgeschlagen",
"viewOnGitHub": "Auf GitHub ansehen",
"github": "GitHub",
"license": "MIT-Lizenz",
"copyright": "© {{year}} Daniel Volz",
"madeWith": "Mit ❤️ erstellt für besseres Gesundheitsmanagement",
"techStack": "Entwickelt mit React, Fastify & SQLite"
}
}