1dcd333fde
* feat: add account deletion feature - Add DELETE /auth/me endpoint to delete user account and all data - Add deleteAccount() method to AuthContext - Add Delete Account button with confirmation modal in UserProfile - Add danger zone styling (.btn-danger, .profile-danger-zone) - Add i18n translations for EN and DE - Add backend tests for account deletion endpoint - Add timeout settings to frontend vitest.config.ts - Reduce CI timeout for frontend tests (10min -> 5min) * fix: improve delete account section layout - Make profile modal scrollable with max-height - Add proper horizontal margin to danger zone - Align delete section with form content * fix: use ConfirmModal component for delete account dialog - Replace inline modal with existing ConfirmModal component - Ensures consistent button styling across all modals - Add UI consistency rule to AGENTS.md and copilot-instructions.md * fix: consistent styling for delete account section - Remove warning text (users know what delete means) - Remove border-bottom from danger zone title (section has border-top) - Update copilot-instructions and AGENTS.md with stricter UI consistency rules - Remove unused deleteAccountHint i18n keys * chore: remove pre-push test hook (CI handles tests) Tests were running twice - in pre-push hook and GitHub CI. Removing local pre-push tests since CI provides authoritative test results. Use 'npm test' manually before pushing if you want local feedback.
471 lines
19 KiB
JSON
471 lines
19 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": "Nachbestell-Erinnerung",
|
|
"badge": "Bestandsüberwachung",
|
|
"noMeds": "Noch keine Medikamente konfiguriert.",
|
|
"allGood": "Alles in Ordnung, genug Vorrat.", "lowWarning": "Genug Vorrat, aber {{count}} Medikament wird knapp.",
|
|
"lowWarning_other": "Genug Vorrat, aber {{count}} Medikamente werden knapp.", "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 OK",
|
|
"allOk": "Alles OK",
|
|
"lastReminder": "Letzte Einnahme-Erinnerung",
|
|
"lastSent": "Letzte Einnahme-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",
|
|
"needReorder": "{{count}} Medikament nachbestellen",
|
|
"needReorder_other": "{{count}} Medikamente nachbestellen",
|
|
"emptyStock": "{{count}} Medikament leer",
|
|
"emptyStock_other": "{{count}} Medikamente leer",
|
|
"lowWarning": "{{count}} Medikament wird knapp",
|
|
"lowWarning_other": "{{count}} Medikamente werden knapp",
|
|
"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"
|
|
}
|
|
},
|
|
"table": {
|
|
"name": "Name",
|
|
"pills": "Tabletten",
|
|
"days": "Tage",
|
|
"currentPills": "Aktuelle Tabletten",
|
|
"fullBlisters": "Volle Blister",
|
|
"openBlister": "Offener Blister",
|
|
"daysLeft": "Tage übrig",
|
|
"status": "Bestand",
|
|
"runsOut": "Aufgebraucht",
|
|
"autoRemind": "Auto-Erinnerung",
|
|
"expiry": "Ablaufdatum"
|
|
},
|
|
"medications": {
|
|
"list": {
|
|
"title": "Medikamentenliste",
|
|
"entries": "{{count}} Einträge",
|
|
"entries_one": "{{count}} Eintrag",
|
|
"entries_other": "{{count}} Einträge"
|
|
},
|
|
"details": {
|
|
"packs": "Packungen",
|
|
"blisters": "Blister pro Packung",
|
|
"pillsPerBlister": "Tabletten pro Blister",
|
|
"loose": "Lose",
|
|
"total": "Gesamt"
|
|
}
|
|
},
|
|
"form": {
|
|
"editEntry": "Medikament bearbeiten",
|
|
"newEntry": "Neues Medikament",
|
|
"badge": "Packungen + lose Tabletten",
|
|
"commercialName": "Handelsname",
|
|
"genericName": "Wirkstoff",
|
|
"takenBy": "Eingenommen von",
|
|
"packs": "Packungen",
|
|
"blistersPerPack": "Blister pro Packung",
|
|
"pillsPerBlister": "Tabletten pro Blister",
|
|
"loosePills": "Lose Tabletten",
|
|
"pillWeight": "Tablettengewicht (mg)",
|
|
"total": "Gesamt (Tabletten)",
|
|
"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)"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"planner": {
|
|
"title": "Bedarfsrechner",
|
|
"badge": "Vorrat planen",
|
|
"from": "Von",
|
|
"until": "Bis",
|
|
"calculate": "Berechnen",
|
|
"calculating": "Wird berechnet...",
|
|
"sendEmail": "📧 Per E-Mail senden",
|
|
"table": {
|
|
"medication": "Medikament",
|
|
"usage": "Verbrauch",
|
|
"blistersNeeded": "Blister benötigt",
|
|
"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",
|
|
"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": "Bestandsprüfung",
|
|
"dailyAt6": "Täglich um 6:00 Uhr",
|
|
"intakeCheck": "Einnahmeprüfung",
|
|
"15minBefore": "15 Min. vor geplanter Zeit",
|
|
"nextCheck": "Nächste Bestandsprüfung",
|
|
"lastSent": "Zuletzt gesendet",
|
|
"envHint": "Diese Werte können über REMINDER_HOUR und REMINDER_MINUTES_BEFORE in .env konfiguriert werden"
|
|
},
|
|
"stock": {
|
|
"title": "Bestand",
|
|
"threshold": "Erinnerungsschwelle",
|
|
"remindWhen": "Erinnern wenn Vorrat unter",
|
|
"repeatDaily": "Täglich wiederholen",
|
|
"repeatTooltip": "Wenn aktiviert, wird täglich eine Erinnerung gesendet solange der Bestand niedrig ist. Andernfalls nur einmal pro Medikament bis zum Auffüllen.",
|
|
"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",
|
|
"display": "Anzeige",
|
|
"lowStockDays": "Niedriger Bestand (Tage)",
|
|
"lowStockTooltip": "Gelbe Warnung ab diesem Schwellenwert",
|
|
"highStockDays": "Hoher Bestand (Tage)",
|
|
"highStockTooltip": "Grün mit Stern ab diesem Schwellenwert"
|
|
},
|
|
"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",
|
|
"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",
|
|
"lightMode": "Zum hellen Modus wechseln",
|
|
"darkMode": "Zum dunklen Modus wechseln"
|
|
},
|
|
"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...",
|
|
"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",
|
|
"cancel": "Abbrechen",
|
|
"close": "Schließen",
|
|
"edit": "Bearbeiten",
|
|
"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",
|
|
"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": {
|
|
"title": "Nachfüllen",
|
|
"packs": "Packungen 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"
|
|
},
|
|
"editStock": {
|
|
"title": "Bestand korrigieren",
|
|
"hint": "Dies ist für die Korrektur von Bestandsabweichungen. Für normale Bestandsänderungen nutze 'Nachfüllen'.",
|
|
"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",
|
|
"frontend": "Frontend",
|
|
"backend": "Backend",
|
|
"checkForUpdates": "Nach Updates suchen",
|
|
"checking": "Prüfe...",
|
|
"upToDate": "Du bist auf dem neuesten Stand!",
|
|
"updateAvailable": "Update verfügbar",
|
|
"viewOnGitHub": "Auf GitHub ansehen",
|
|
"downloadUpdate": "Update herunterladen",
|
|
"checkFailed": "Update-Prüfung fehlgeschlagen",
|
|
"lastChecked": "Zuletzt geprüft",
|
|
"github": "GitHub",
|
|
"license": "MIT-Lizenz",
|
|
"copyright": "© {{year}} Daniel Volz",
|
|
"madeWith": "Mit ❤️ erstellt für besseres Gesundheitsmanagement",
|
|
"techStack": "Entwickelt mit React, Fastify & SQLite"
|
|
}
|
|
}
|