const de = {
  // Allgemein
  'common.save': 'Speichern',
  'common.cancel': 'Abbrechen',
  'common.delete': 'Löschen',
  'common.edit': 'Bearbeiten',
  'common.add': 'Hinzufügen',
  'common.loading': 'Laden...',
  'common.error': 'Fehler',
  'common.back': 'Zurück',
  'common.all': 'Alle',
  'common.close': 'Schließen',
  'common.open': 'Öffnen',
  'common.upload': 'Hochladen',
  'common.search': 'Suchen',
  'common.confirm': 'Bestätigen',
  'common.ok': 'OK',
  'common.yes': 'Ja',
  'common.no': 'Nein',
  'common.or': 'oder',
  'common.none': 'Keine',
  'common.date': 'Datum',
  'common.rename': 'Umbenennen',
  'common.name': 'Name',
  'common.email': 'E-Mail',
  'common.password': 'Passwort',
  'common.saving': 'Speichern...',
  'common.update': 'Aktualisieren',
  'common.change': 'Ändern',
  'common.uploading': 'Hochladen…',

  // Navbar
  'nav.trip': 'Reise',
  'nav.share': 'Teilen',
  'nav.settings': 'Einstellungen',
  'nav.admin': 'Admin',
  'nav.logout': 'Abmelden',
  'nav.lightMode': 'Heller Modus',
  'nav.darkMode': 'Dunkler Modus',
  'nav.administrator': 'Administrator',

  // Dashboard
  'dashboard.title': 'Meine Reisen',
  'dashboard.subtitle.loading': 'Reisen werden geladen...',
  'dashboard.subtitle.trips': '{count} Reisen ({archived} archiviert)',
  'dashboard.subtitle.empty': 'Starte deine erste Reise',
  'dashboard.subtitle.activeOne': '{count} aktive Reise',
  'dashboard.subtitle.activeMany': '{count} aktive Reisen',
  'dashboard.subtitle.archivedSuffix': ' · {count} archiviert',
  'dashboard.newTrip': 'Neue Reise',
  'dashboard.currency': 'Währung',
  'dashboard.timezone': 'Zeitzonen',
  'dashboard.localTime': 'Lokal',
  'dashboard.emptyTitle': 'Noch keine Reisen',
  'dashboard.emptyText': 'Erstelle deine erste Reise und beginne mit der Planung von Orten, Tagesabläufen und Packlisten.',
  'dashboard.emptyButton': 'Erste Reise erstellen',
  'dashboard.nextTrip': 'Nächste Reise',
  'dashboard.shared': 'Geteilt',
  'dashboard.sharedBy': 'Geteilt von {name}',
  'dashboard.days': 'Tage',
  'dashboard.places': 'Orte',
  'dashboard.archive': 'Archivieren',
  'dashboard.restore': 'Wiederherstellen',
  'dashboard.archived': 'Archiviert',
  'dashboard.status.ongoing': 'Laufend',
  'dashboard.status.today': 'Heute',
  'dashboard.status.tomorrow': 'Morgen',
  'dashboard.status.past': 'Vergangen',
  'dashboard.status.daysLeft': 'Noch {count} Tage',
  'dashboard.toast.loadError': 'Fehler beim Laden der Reisen',
  'dashboard.toast.created': 'Reise erfolgreich erstellt!',
  'dashboard.toast.createError': 'Fehler beim Erstellen',
  'dashboard.toast.updated': 'Reise aktualisiert!',
  'dashboard.toast.updateError': 'Fehler beim Aktualisieren',
  'dashboard.toast.deleted': 'Reise gelöscht',
  'dashboard.toast.deleteError': 'Fehler beim Löschen',
  'dashboard.toast.archived': 'Reise archiviert',
  'dashboard.toast.archiveError': 'Fehler beim Archivieren',
  'dashboard.toast.restored': 'Reise wiederhergestellt',
  'dashboard.toast.restoreError': 'Fehler beim Wiederherstellen',
  'dashboard.confirm.delete': 'Reise "{title}" löschen? Alle Orte und Pläne werden unwiderruflich gelöscht.',
  'dashboard.editTrip': 'Reise bearbeiten',
  'dashboard.createTrip': 'Neue Reise erstellen',
  'dashboard.tripTitle': 'Titel',
  'dashboard.tripTitlePlaceholder': 'z.B. Sommer in Japan',
  'dashboard.tripDescription': 'Beschreibung',
  'dashboard.tripDescriptionPlaceholder': 'Worum geht es bei dieser Reise?',
  'dashboard.startDate': 'Startdatum',
  'dashboard.endDate': 'Enddatum',
  'dashboard.noDateHint': 'Kein Datum gesetzt — es werden 7 Standardtage erstellt. Du kannst das jederzeit ändern.',
  'dashboard.coverImage': 'Titelbild',
  'dashboard.addCoverImage': 'Titelbild hinzufügen',
  'dashboard.coverSaved': 'Titelbild gespeichert',
  'dashboard.coverUploadError': 'Fehler beim Hochladen',
  'dashboard.coverRemoveError': 'Fehler beim Entfernen',
  'dashboard.titleRequired': 'Titel ist erforderlich',
  'dashboard.endDateError': 'Enddatum muss nach dem Startdatum liegen',

  // Settings
  'settings.title': 'Einstellungen',
  'settings.subtitle': 'Konfigurieren Sie Ihre persönlichen Einstellungen',
  'settings.map': 'Karte',
  'settings.mapTemplate': 'Karten-Vorlage',
  'settings.mapTemplatePlaceholder.select': 'Vorlage auswählen...',
  'settings.mapDefaultHint': 'Leer lassen für OpenStreetMap (Standard)',
  'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
  'settings.mapHint': 'URL-Template für die Kartenkacheln',
  'settings.latitude': 'Breitengrad',
  'settings.longitude': 'Längengrad',
  'settings.saveMap': 'Karte speichern',
  'settings.apiKeys': 'API-Schlüssel',
  'settings.mapsKey': 'Google Maps API-Schlüssel',
  'settings.mapsKeyHint': 'Für Ortsuche. Benötigt Places API (New). Erhalten unter console.cloud.google.com',
  'settings.weatherKey': 'OpenWeatherMap API-Schlüssel',
  'settings.weatherKeyHint': 'Für Wetterdaten. Kostenlos unter openweathermap.org/api',
  'settings.keyPlaceholder': 'Schlüssel eingeben...',
  'settings.configured': 'Konfiguriert',
  'settings.saveKeys': 'Schlüssel speichern',
  'settings.display': 'Darstellung',
  'settings.colorMode': 'Farbmodus',
  'settings.light': 'Hell',
  'settings.dark': 'Dunkel',
  'settings.language': 'Sprache',
  'settings.temperature': 'Temperatureinheit',
  'settings.timeFormat': 'Zeitformat',
  'settings.account': 'Konto',
  'settings.username': 'Benutzername',
  'settings.email': 'E-Mail',
  'settings.role': 'Rolle',
  'settings.roleAdmin': 'Administrator',
  'settings.oidcLinked': 'Verknüpft mit',
  'settings.changePassword': 'Passwort ändern',
  'settings.currentPassword': 'Aktuelles Passwort',
  'settings.newPassword': 'Neues Passwort',
  'settings.confirmPassword': 'Neues Passwort bestätigen',
  'settings.updatePassword': 'Passwort aktualisieren',
  'settings.passwordRequired': 'Bitte aktuelles und neues Passwort eingeben',
  'settings.passwordTooShort': 'Passwort muss mindestens 8 Zeichen lang sein',
  'settings.passwordMismatch': 'Passwörter stimmen nicht überein',
  'settings.passwordChanged': 'Passwort erfolgreich geändert',
  'settings.deleteAccount': 'Löschen',
  'settings.deleteAccountTitle': 'Account wirklich löschen?',
  'settings.deleteAccountWarning': 'Dein Account und alle deine Reisen, Orte und Dateien werden unwiderruflich gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.',
  'settings.deleteAccountConfirm': 'Endgültig löschen',
  'settings.deleteBlockedTitle': 'Löschung nicht möglich',
  'settings.deleteBlockedMessage': 'Du bist der einzige Administrator. Ernenne zuerst einen anderen Benutzer zum Admin, bevor du deinen Account löschen kannst.',
  'settings.roleUser': 'Benutzer',
  'settings.saveProfile': 'Speichern',
  'settings.toast.mapSaved': 'Karteneinstellungen gespeichert',
  'settings.toast.keysSaved': 'API-Schlüssel gespeichert',
  'settings.toast.displaySaved': 'Anzeigeeinstellungen gespeichert',
  'settings.toast.profileSaved': 'Profil aktualisiert',
  'settings.uploadAvatar': 'Profilbild hochladen',
  'settings.removeAvatar': 'Profilbild entfernen',
  'settings.avatarUploaded': 'Profilbild aktualisiert',
  'settings.avatarRemoved': 'Profilbild entfernt',
  'settings.avatarError': 'Fehler beim Hochladen',

  // Login
  'login.error': 'Anmeldung fehlgeschlagen. Bitte Zugangsdaten prüfen.',
  'login.tagline': 'Deine Reisen.\nDein Plan.',
  'login.description': 'Plane Reisen gemeinsam mit interaktiven Karten, Budgets und Echtzeit-Sync.',
  'login.features.maps': 'Interaktive Karten',
  'login.features.mapsDesc': 'Google Places, Routen & Clustering',
  'login.features.realtime': 'Echtzeit-Sync',
  'login.features.realtimeDesc': 'Gemeinsam planen via WebSocket',
  'login.features.budget': 'Budget-Tracking',
  'login.features.budgetDesc': 'Kategorien, Diagramme & Pro-Kopf',
  'login.features.collab': 'Zusammenarbeit',
  'login.features.collabDesc': 'Multi-User mit geteilten Reisen',
  'login.features.packing': 'Packlisten',
  'login.features.packingDesc': 'Kategorien & Fortschritt',
  'login.features.bookings': 'Buchungen',
  'login.features.bookingsDesc': 'Flüge, Hotels, Restaurants & mehr',
  'login.features.files': 'Dokumente',
  'login.features.filesDesc': 'Dateien hochladen & verwalten',
  'login.features.routes': 'Routenoptimierung',
  'login.features.routesDesc': 'Auto-Optimierung & Google Maps Export',
  'login.selfHosted': 'Self-hosted \u00B7 Open Source \u00B7 Deine Daten bleiben bei dir',
  'login.title': 'Anmelden',
  'login.subtitle': 'Willkommen zurück',
  'login.signingIn': 'Anmelden…',
  'login.signIn': 'Anmelden',
  'login.createAdmin': 'Admin-Konto erstellen',
  'login.createAdminHint': 'Erstelle das erste Admin-Konto für NOMAD.',
  'login.createAccount': 'Konto erstellen',
  'login.createAccountHint': 'Neues Konto registrieren.',
  'login.creating': 'Erstelle…',
  'login.noAccount': 'Noch kein Konto?',
  'login.hasAccount': 'Bereits ein Konto?',
  'login.register': 'Registrieren',
  'login.emailPlaceholder': 'deine@email.de',
  'login.username': 'Benutzername',

  // Admin
  'admin.title': 'Administration',
  'admin.subtitle': 'Benutzerverwaltung und Systemeinstellungen',
  'admin.tabs.users': 'Benutzer',
  'admin.tabs.categories': 'Kategorien',
  'admin.tabs.backup': 'Backup',
  'admin.stats.users': 'Benutzer',
  'admin.stats.trips': 'Reisen',
  'admin.stats.places': 'Orte',
  'admin.stats.photos': 'Fotos',
  'admin.stats.files': 'Dateien',
  'admin.table.user': 'Benutzer',
  'admin.table.email': 'E-Mail',
  'admin.table.role': 'Rolle',
  'admin.table.created': 'Erstellt',
  'admin.table.lastLogin': 'Letzter Login',
  'admin.table.actions': 'Aktionen',
  'admin.you': '(Du)',
  'admin.editUser': 'Benutzer bearbeiten',
  'admin.newPassword': 'Neues Passwort',
  'admin.newPasswordHint': 'Leer lassen, um das Passwort nicht zu ändern',
  'admin.deleteUser': 'Benutzer "{name}" löschen? Alle Reisen werden unwiderruflich gelöscht.',
  'admin.deleteUserTitle': 'Benutzer löschen',
  'admin.newPasswordPlaceholder': 'Neues Passwort eingeben…',
  'admin.toast.loadError': 'Fehler beim Laden der Admin-Daten',
  'admin.toast.userUpdated': 'Benutzer aktualisiert',
  'admin.toast.updateError': 'Fehler beim Aktualisieren',
  'admin.toast.userDeleted': 'Benutzer gelöscht',
  'admin.toast.deleteError': 'Fehler beim Löschen',
  'admin.toast.cannotDeleteSelf': 'Eigenes Konto kann nicht gelöscht werden',
  'admin.toast.userCreated': 'Benutzer erstellt',
  'admin.toast.createError': 'Fehler beim Erstellen des Benutzers',
  'admin.toast.fieldsRequired': 'Benutzername, E-Mail und Passwort sind erforderlich',
  'admin.createUser': 'Benutzer anlegen',
  'admin.tabs.settings': 'Einstellungen',
  'admin.allowRegistration': 'Registrierung erlauben',
  'admin.allowRegistrationHint': 'Neue Benutzer können sich selbst registrieren',
  'admin.apiKeys': 'API-Schlüssel',
  'admin.apiKeysHint': 'Optional. Aktiviert erweiterte Ortsdaten wie Fotos und Wetter.',
  'admin.mapsKey': 'Google Maps API Key',
  'admin.mapsKeyHint': 'Für Ortsuche benötigt. Erstellen unter console.cloud.google.com',
  'admin.mapsKeyHintLong': 'Ohne API Key wird OpenStreetMap für die Ortssuche genutzt. Mit Google API Key können zusätzlich Bilder, Bewertungen und Öffnungszeiten geladen werden. Erstellen unter console.cloud.google.com.',
  'admin.recommended': 'Empfohlen',
  'admin.weatherKey': 'OpenWeatherMap API Key',
  'admin.weatherKeyHint': 'Für Wetterdaten. Kostenlos unter openweathermap.org',
  'admin.validateKey': 'Test',
  'admin.keyValid': 'Verbunden',
  'admin.keyInvalid': 'Ungültig',
  'admin.keySaved': 'API-Schlüssel gespeichert',
  'admin.oidcTitle': 'Single Sign-On (OIDC)',
  'admin.oidcSubtitle': 'Anmeldung über externe Anbieter wie Google, Apple, Authentik oder Keycloak.',
  'admin.oidcDisplayName': 'Anzeigename',
  'admin.oidcIssuer': 'Issuer URL',
  'admin.oidcIssuerHint': 'Die OpenID Connect Issuer URL des Anbieters. z.B. https://accounts.google.com',
  'admin.oidcSaved': 'OIDC-Konfiguration gespeichert',

  // Addons
  'admin.tabs.addons': 'Addons',
  'admin.addons.title': 'Addons',
  'admin.addons.subtitle': 'Aktiviere oder deaktiviere Funktionen, um NOMAD nach deinen Wünschen anzupassen.',
  'admin.addons.subtitleBefore': 'Aktiviere oder deaktiviere Funktionen, um ',
  'admin.addons.subtitleAfter': ' nach deinen Wünschen anzupassen.',
  'admin.addons.enabled': 'Aktiviert',
  'admin.addons.disabled': 'Deaktiviert',
  'admin.addons.type.trip': 'Trip',
  'admin.addons.type.global': 'Global',
  'admin.addons.tripHint': 'Verfügbar als Tab innerhalb jedes Trips',
  'admin.addons.globalHint': 'Verfügbar als eigenständiger Bereich in der Navigation',
  'admin.addons.toast.updated': 'Addon aktualisiert',
  'admin.addons.toast.error': 'Addon konnte nicht aktualisiert werden',
  'admin.addons.noAddons': 'Keine Addons verfügbar',
  'admin.update.available': 'Update verfügbar',
  'admin.update.text': 'NOMAD {version} ist verfügbar. Du verwendest {current}.',
  'admin.update.button': 'Auf GitHub ansehen',
  'admin.update.install': 'Update installieren',
  'admin.update.confirmTitle': 'Update installieren?',
  'admin.update.confirmText': 'NOMAD wird von {current} auf {version} aktualisiert. Der Server startet danach automatisch neu.',
  'admin.update.dataInfo': 'Alle Daten (Reisen, Benutzer, API-Schlüssel, Uploads, Vacay, Atlas, Budgets) bleiben erhalten.',
  'admin.update.warning': 'Die App ist während des Neustarts kurz nicht erreichbar.',
  'admin.update.confirm': 'Jetzt aktualisieren',
  'admin.update.installing': 'Wird aktualisiert…',
  'admin.update.success': 'Update installiert! Server startet neu…',
  'admin.update.failed': 'Update fehlgeschlagen',
  'admin.update.backupHint': 'Wir empfehlen, vor dem Update ein Backup zu erstellen und herunterzuladen.',
  'admin.update.backupLink': 'Zum Backup',
  'admin.update.howTo': 'Update-Anleitung',
  'admin.update.dockerText': 'Deine NOMAD-Instanz läuft in Docker. Um auf {version} zu aktualisieren, führe folgende Befehle auf deinem Server aus:',
  'admin.update.reloadHint': 'Bitte lade die Seite in wenigen Sekunden neu.',

  // Vacay addon
  'vacay.subtitle': 'Urlaubstage planen und verwalten',
  'vacay.settings': 'Einstellungen',
  'vacay.year': 'Jahr',
  'vacay.addYear': 'Jahr hinzufügen',
  'vacay.removeYear': 'Jahr entfernen',
  'vacay.removeYearConfirm': '{year} entfernen?',
  'vacay.removeYearHint': 'Alle Urlaubseinträge und Betriebsferien für dieses Jahr werden unwiderruflich gelöscht.',
  'vacay.remove': 'Entfernen',
  'vacay.persons': 'Personen',
  'vacay.noPersons': 'Keine Personen angelegt',
  'vacay.addPerson': 'Person hinzufügen',
  'vacay.editPerson': 'Person bearbeiten',
  'vacay.removePerson': 'Person entfernen',
  'vacay.removePersonConfirm': '{name} wirklich entfernen?',
  'vacay.removePersonHint': 'Alle Urlaubseinträge dieser Person werden unwiderruflich gelöscht.',
  'vacay.personName': 'Name',
  'vacay.personNamePlaceholder': 'Name eingeben',
  'vacay.color': 'Farbe',
  'vacay.add': 'Hinzufügen',
  'vacay.legend': 'Legende',
  'vacay.publicHoliday': 'Feiertag',
  'vacay.companyHoliday': 'Betriebsferien',
  'vacay.weekend': 'Wochenende',
  'vacay.modeVacation': 'Urlaub',
  'vacay.modeCompany': 'Betriebsferien',
  'vacay.entitlement': 'Urlaubsanspruch',
  'vacay.entitlementDays': 'Tage',
  'vacay.used': 'Weg',
  'vacay.remaining': 'Rest',
  'vacay.carriedOver': 'aus {year}',
  'vacay.blockWeekends': 'Wochenenden sperren',
  'vacay.blockWeekendsHint': 'Verhindert Urlaubseinträge an Samstagen und Sonntagen',
  'vacay.publicHolidays': 'Feiertage',
  'vacay.publicHolidaysHint': 'Feiertage im Kalender markieren',
  'vacay.selectCountry': 'Land wählen',
  'vacay.selectRegion': 'Region wählen (optional)',
  'vacay.companyHolidays': 'Betriebsferien',
  'vacay.companyHolidaysHint': 'Erlaubt das Markieren von unternehmensweiten Feiertagen',
  'vacay.companyHolidaysNoDeduct': 'Betriebsferien werden nicht vom Urlaubskontingent abgezogen.',
  'vacay.carryOver': 'Urlaubsmitnahme',
  'vacay.carryOverHint': 'Resturlaub automatisch ins Folgejahr übertragen',
  'vacay.sharing': 'Teilen',
  'vacay.sharingHint': 'Teile deinen Urlaubsplan mit anderen NOMAD-Benutzern',
  'vacay.owner': 'Besitzer',
  'vacay.shareEmailPlaceholder': 'E-Mail des NOMAD-Benutzers',
  'vacay.shareSuccess': 'Plan erfolgreich geteilt',
  'vacay.shareError': 'Plan konnte nicht geteilt werden',
  'vacay.dissolve': 'Fusion auflösen',
  'vacay.dissolveHint': 'Kalender wieder trennen. Deine Einträge bleiben erhalten.',
  'vacay.dissolveAction': 'Auflösen',
  'vacay.dissolved': 'Kalender getrennt',
  'vacay.fusedWith': 'Fusioniert mit',
  'vacay.you': 'du',
  'vacay.noData': 'Keine Daten',
  'vacay.changeColor': 'Farbe ändern',
  'vacay.inviteUser': 'Benutzer einladen',
  'vacay.inviteHint': 'Lade einen anderen NOMAD-Benutzer ein, um einen gemeinsamen Urlaubskalender zu teilen.',
  'vacay.selectUser': 'Benutzer wählen',
  'vacay.sendInvite': 'Einladung senden',
  'vacay.inviteSent': 'Einladung gesendet',
  'vacay.inviteError': 'Einladung konnte nicht gesendet werden',
  'vacay.pending': 'ausstehend',
  'vacay.noUsersAvailable': 'Keine Benutzer verfügbar',
  'vacay.accept': 'Annehmen',
  'vacay.decline': 'Ablehnen',
  'vacay.acceptFusion': 'Annehmen & Fusionieren',
  'vacay.inviteTitle': 'Fusionsanfrage',
  'vacay.inviteWantsToFuse': 'möchte einen Urlaubskalender mit dir teilen.',
  'vacay.fuseInfo1': 'Beide sehen alle Urlaubseinträge in einem gemeinsamen Kalender.',
  'vacay.fuseInfo2': 'Beide können Einträge für den jeweils anderen erstellen und bearbeiten.',
  'vacay.fuseInfo3': 'Beide können Einträge löschen und den Urlaubsanspruch ändern.',
  'vacay.fuseInfo4': 'Einstellungen wie Feiertage und Betriebsferien werden geteilt.',
  'vacay.fuseInfo5': 'Die Fusion kann jederzeit von beiden Seiten aufgelöst werden. Einträge bleiben erhalten.',
  'nav.myTrips': 'Meine Trips',

  // Atlas addon
  'atlas.subtitle': 'Dein Reise-Fußabdruck auf der Welt',
  'atlas.countries': 'Länder',
  'atlas.trips': 'Reisen',
  'atlas.places': 'Orte',
  'atlas.days': 'Tage',
  'atlas.visitedCountries': 'Besuchte Länder',
  'atlas.cities': 'Städte',
  'atlas.noData': 'Noch keine Reisedaten',
  'atlas.noDataHint': 'Erstelle einen Trip und füge Orte hinzu',
  'atlas.lastTrip': 'Letzter Trip',
  'atlas.nextTrip': 'Nächster Trip',
  'atlas.daysLeft': 'Tage',
  'atlas.streak': 'Streak',
  'atlas.year': 'Jahr',
  'atlas.years': 'Jahre',
  'atlas.yearInRow': 'Jahr in Folge',
  'atlas.yearsInRow': 'Jahre in Folge',
  'atlas.tripIn': 'Reise in',
  'atlas.tripsIn': 'Reisen in',
  'atlas.since': 'seit',
  'atlas.europe': 'Europa',
  'atlas.asia': 'Asien',
  'atlas.northAmerica': 'N-Amerika',
  'atlas.southAmerica': 'S-Amerika',
  'atlas.africa': 'Afrika',
  'atlas.oceania': 'Ozeanien',
  'atlas.other': 'Andere',
  'atlas.firstVisit': 'Erste Reise',
  'atlas.lastVisitLabel': 'Letzte Reise',
  'atlas.tripSingular': 'Reise',
  'atlas.tripPlural': 'Reisen',
  'atlas.placeVisited': 'Ort besucht',
  'atlas.placesVisited': 'Orte besucht',

  // Trip Planner
  'trip.tabs.plan': 'Karte',
  'trip.tabs.reservations': 'Buchungen',
  'trip.tabs.reservationsShort': 'Buchung',
  'trip.tabs.packing': 'Liste',
  'trip.tabs.packingShort': 'Liste',
  'trip.tabs.budget': 'Budget',
  'trip.tabs.files': 'Dateien',
  'trip.loading': 'Reise wird geladen...',
  'trip.mobilePlan': 'Planung',
  'trip.mobilePlaces': 'Orte',
  'trip.toast.placeUpdated': 'Ort aktualisiert',
  'trip.toast.placeAdded': 'Ort hinzugefügt',
  'trip.toast.placeDeleted': 'Ort gelöscht',
  'trip.toast.selectDay': 'Bitte wähle zuerst einen Tag aus',
  'trip.toast.assignedToDay': 'Ort wurde dem Tag zugewiesen',
  'trip.toast.reorderError': 'Fehler beim Sortieren',
  'trip.toast.reservationUpdated': 'Reservierung aktualisiert',
  'trip.toast.reservationAdded': 'Reservierung hinzugefügt',
  'trip.toast.deleted': 'Gelöscht',
  'trip.confirm.deletePlace': 'Möchtest du diesen Ort wirklich löschen?',

  // Day Plan Sidebar
  'dayplan.transport.car': 'Auto',
  'dayplan.transport.walk': 'Zu Fuß',
  'dayplan.transport.bike': 'Fahrrad',
  'dayplan.emptyDay': 'Keine Orte für diesen Tag geplant',
  'dayplan.addNote': 'Notiz hinzufügen',
  'dayplan.editNote': 'Notiz bearbeiten',
  'dayplan.noteAdd': 'Notiz hinzufügen',
  'dayplan.noteEdit': 'Notiz bearbeiten',
  'dayplan.noteTitle': 'Notiz',
  'dayplan.noteSubtitle': 'Tagesnotiz',
  'dayplan.totalCost': 'Gesamtkosten',
  'dayplan.days': 'Tage',
  'dayplan.dayN': 'Tag {n}',
  'dayplan.calculating': 'Berechne...',
  'dayplan.route': 'Route',
  'dayplan.optimize': 'Optimieren',
  'dayplan.optimized': 'Route optimiert',
  'dayplan.routeError': 'Fehler bei der Routenberechnung',
  'dayplan.toast.needTwoPlaces': 'Mindestens zwei Orte für Routenoptimierung nötig',
  'dayplan.toast.routeOptimized': 'Route optimiert',
  'dayplan.toast.noGeoPlaces': 'Keine Orte mit Koordinaten für Routenberechnung gefunden',
  'dayplan.confirmed': 'Bestätigt',
  'dayplan.pendingRes': 'Ausstehend',
  'dayplan.pdf': 'PDF',
  'dayplan.pdfTooltip': 'Tagesplan als PDF exportieren',
  'dayplan.pdfError': 'Fehler beim PDF-Export',

  // Places Sidebar
  'places.addPlace': 'Ort hinzufügen',
  'places.assignToDay': 'Zu welchem Tag hinzufügen?',
  'places.all': 'Alle',
  'places.unplanned': 'Ungeplant',
  'places.search': 'Orte suchen...',
  'places.allCategories': 'Alle Kategorien',
  'places.count': '{count} Orte',
  'places.countSingular': '1 Ort',
  'places.allPlanned': 'Alle Orte sind eingeplant',
  'places.noneFound': 'Keine Orte gefunden',
  'places.editPlace': 'Ort bearbeiten',
  'places.formName': 'Name',
  'places.formNamePlaceholder': 'z.B. Eiffelturm',
  'places.formDescription': 'Beschreibung',
  'places.formDescriptionPlaceholder': 'Kurze Beschreibung...',
  'places.formAddress': 'Adresse',
  'places.formAddressPlaceholder': 'Straße, Stadt, Land',
  'places.formLat': 'Breitengrad (z.B. 48.8566)',
  'places.formLng': 'Längengrad (z.B. 2.3522)',
  'places.formCategory': 'Kategorie',
  'places.noCategory': 'Keine Kategorie',
  'places.categoryNamePlaceholder': 'Kategoriename',
  'places.formTime': 'Uhrzeit',
  'places.formWebsite': 'Website',
  'places.formNotesPlaceholder': 'Persönliche Notizen...',
  'places.formReservation': 'Reservierung',
  'places.reservationNotesPlaceholder': 'Reservierungsnotizen, Bestätigungsnummer...',
  'places.mapsSearchPlaceholder': 'Ortssuche...',
  'places.mapsSearchError': 'Ortssuche fehlgeschlagen.',
  'places.osmHint': 'OpenStreetMap-Suche aktiv (ohne Bilder, Öffnungszeiten, Bewertungen). Für erweiterte Daten Google API Key in den Einstellungen hinterlegen.',
  'places.osmActive': 'Suche via OpenStreetMap (ohne Bilder, Bewertungen & Öffnungszeiten). Google API Key in den Einstellungen hinterlegen für erweiterte Daten.',
  'places.categoryCreateError': 'Fehler beim Erstellen der Kategorie',
  'places.nameRequired': 'Bitte einen Namen eingeben',
  'places.saveError': 'Fehler beim Speichern',
  'places.transport.walking': '🚶 Zu Fuß',
  'places.transport.driving': '🚗 Auto',
  'places.transport.cycling': '🚲 Fahrrad',
  'places.transport.transit': '🚌 ÖPNV',

  // Place Inspector
  'inspector.opened': 'Geöffnet',
  'inspector.closed': 'Geschlossen',
  'inspector.openingHours': 'Öffnungszeiten',
  'inspector.showHours': 'Öffnungszeiten anzeigen',
  'inspector.files': 'Dateien',
  'inspector.filesCount': '{count} Dateien',
  'inspector.removeFromDay': 'Vom Tag entfernen',
  'inspector.addToDay': 'Zum Tag hinzufügen',
  'inspector.confirmedRes': 'Bestätigte Reservierung',
  'inspector.pendingRes': 'Ausstehende Reservierung',
  'inspector.google': 'In Google Maps öffnen',
  'inspector.website': 'Webseite öffnen',

  // Reservations
  'reservations.title': 'Buchungen',
  'reservations.empty': 'Keine Reservierungen vorhanden',
  'reservations.emptyHint': 'Füge Reservierungen für Flüge, Hotels und mehr hinzu',
  'reservations.add': 'Reservierung hinzufügen',
  'reservations.addManual': 'Manuelle Buchung',
  'reservations.placeHint': 'Tipp: Buchungen werden am besten direkt über einen angelegten Ort erstellt, um sie mit dem Tagesplan zu verknüpfen.',
  'reservations.confirmed': 'Bestätigt',
  'reservations.pending': 'Ausstehend',
  'reservations.summary': '{confirmed} bestätigt, {pending} ausstehend',
  'reservations.fromPlan': 'Aus Planung',
  'reservations.showFiles': 'Dateien anzeigen',
  'reservations.editTitle': 'Reservierung bearbeiten',
  'reservations.status': 'Status',
  'reservations.datetime': 'Datum & Uhrzeit',
  'reservations.timeAlt': 'Uhrzeit (alternativ, z.B. 19:30)',
  'reservations.notes': 'Notizen',
  'reservations.notesPlaceholder': 'Zusätzliche Notizen...',
  'reservations.type.flight': 'Flug',
  'reservations.type.hotel': 'Hotel',
  'reservations.type.restaurant': 'Restaurant',
  'reservations.type.train': 'Zug',
  'reservations.type.car': 'Mietwagen',
  'reservations.type.cruise': 'Kreuzfahrt',
  'reservations.type.event': 'Veranstaltung',
  'reservations.type.tour': 'Tour',
  'reservations.type.other': 'Sonstiges',
  'reservations.confirm.delete': 'Möchtest du die Reservierung "{name}" wirklich löschen?',
  'reservations.toast.updated': 'Reservierung aktualisiert',
  'reservations.toast.removed': 'Reservierung gelöscht',
  'reservations.toast.saveError': 'Fehler beim Speichern',
  'reservations.toast.updateError': 'Fehler beim Aktualisieren',
  'reservations.toast.deleteError': 'Fehler beim Löschen',
  'reservations.confirm.remove': 'Reservierung für "{name}" entfernen?',
  'reservations.toast.fileUploaded': 'Datei hochgeladen',
  'reservations.toast.uploadError': 'Fehler beim Hochladen',
  'reservations.newTitle': 'Neue Buchung',
  'reservations.bookingType': 'Art der Buchung',
  'reservations.titleLabel': 'Titel',
  'reservations.titlePlaceholder': 'z.B. Lufthansa LH123, Hotel Adlon, ...',
  'reservations.locationAddress': 'Ort / Adresse',
  'reservations.locationPlaceholder': 'Adresse, Flughafen, Hotel...',
  'reservations.confirmationCode': 'Bestätigungsnummer / Buchungscode',
  'reservations.confirmationPlaceholder': 'z.B. ABC12345',
  'reservations.day': 'Tag',
  'reservations.noDay': 'Kein Tag',
  'reservations.place': 'Ort',
  'reservations.noPlace': 'Kein Ort',
  'reservations.pendingSave': 'wird gespeichert…',
  'reservations.uploading': 'Wird hochgeladen...',
  'reservations.attachFile': 'Datei anhängen',

  // Budget
  'budget.title': 'Budget',
  'budget.emptyTitle': 'Noch kein Budget erstellt',
  'budget.emptyText': 'Erstelle Kategorien und Einträge, um dein Reisebudget zu planen',
  'budget.emptyPlaceholder': 'Kategoriename eingeben...',
  'budget.createCategory': 'Kategorie erstellen',
  'budget.category': 'Kategorie',
  'budget.categoryName': 'Kategoriename',
  'budget.table.name': 'Name',
  'budget.table.total': 'Gesamt',
  'budget.table.persons': 'Personen',
  'budget.table.days': 'Tage',
  'budget.table.perPerson': 'Pro Person',
  'budget.table.perDay': 'Pro Tag',
  'budget.table.perPersonDay': 'Pro Person/Tag',
  'budget.table.note': 'Notiz',
  'budget.newEntry': 'Neuer Eintrag',
  'budget.defaultEntry': 'Neuer Eintrag',
  'budget.defaultCategory': 'Neue Kategorie',
  'budget.total': 'Gesamt',
  'budget.totalBudget': 'Gesamtbudget',
  'budget.byCategory': 'Nach Kategorie',
  'budget.editTooltip': 'Klicken zum Bearbeiten',
  'budget.confirm.deleteCategory': 'Möchtest du die Kategorie "{name}" mit {count} Einträgen wirklich löschen?',
  'budget.deleteCategory': 'Kategorie löschen',

  // Files
  'files.title': 'Dateien',
  'files.count': '{count} Dateien',
  'files.countSingular': '1 Datei',
  'files.uploaded': '{count} hochgeladen',
  'files.uploadError': 'Fehler beim Hochladen',
  'files.dropzone': 'Dateien hier ablegen',
  'files.dropzoneHint': 'oder klicken zum Auswählen',
  'files.uploading': 'Wird hochgeladen...',
  'files.filterAll': 'Alle',
  'files.filterPdf': 'PDFs',
  'files.filterImages': 'Bilder',
  'files.filterDocs': 'Dokumente',
  'files.empty': 'Keine Dateien vorhanden',
  'files.emptyHint': 'Lade Dateien hoch, um sie mit deiner Reise zu verknüpfen',
  'files.openTab': 'In neuem Tab öffnen',
  'files.confirm.delete': 'Möchtest du diese Datei wirklich löschen?',
  'files.toast.deleted': 'Datei gelöscht',
  'files.toast.deleteError': 'Fehler beim Löschen der Datei',
  'files.sourcePlan': 'Tagesplan',
  'files.sourceBooking': 'Buchung',

  // Packing
  'packing.title': 'Packliste',
  'packing.empty': 'Packliste ist leer',
  'packing.progress': '{packed} von {total} gepackt ({percent}%)',
  'packing.clearChecked': '{count} abgehakte entfernen',
  'packing.clearCheckedShort': '{count} entfernen',
  'packing.suggestions': 'Vorschläge',
  'packing.suggestionsTitle': 'Vorschläge hinzufügen',
  'packing.allSuggested': 'Alle Vorschläge hinzugefügt',
  'packing.allPacked': 'Alles gepackt!',
  'packing.addPlaceholder': 'Neuen Gegenstand hinzufügen...',
  'packing.categoryPlaceholder': 'Kategorie...',
  'packing.filterAll': 'Alle',
  'packing.filterOpen': 'Offen',
  'packing.filterDone': 'Erledigt',
  'packing.emptyTitle': 'Packliste ist leer',
  'packing.emptyHint': 'Füge Gegenstände hinzu oder nutze die Vorschläge',
  'packing.emptyFiltered': 'Keine Gegenstände in diesem Filter',
  'packing.menuRename': 'Umbenennen',
  'packing.menuCheckAll': 'Alle abhaken',
  'packing.menuUncheckAll': 'Alle Haken entfernen',
  'packing.menuDeleteCat': 'Kategorie löschen',
  'packing.changeCategory': 'Kategorie ändern',
  'packing.confirm.clearChecked': 'Möchtest du {count} abgehakte Gegenstände wirklich entfernen?',
  'packing.confirm.deleteCat': 'Möchtest du die Kategorie "{name}" mit {count} Gegenständen wirklich löschen?',
  'packing.defaultCategory': 'Sonstiges',
  'packing.toast.saveError': 'Fehler beim Speichern',
  'packing.toast.deleteError': 'Fehler beim Löschen',
  'packing.toast.renameError': 'Fehler beim Umbenennen',
  'packing.toast.addError': 'Fehler beim Hinzufügen',

  // Packing suggestions
  'packing.suggestions.items': [
    { name: 'Reisepass', category: 'Dokumente' },
    { name: 'Personalausweis', category: 'Dokumente' },
    { name: 'Reiseversicherung', category: 'Dokumente' },
    { name: 'Flugtickets', category: 'Dokumente' },
    { name: 'Kreditkarte', category: 'Finanzen' },
    { name: 'Bargeld', category: 'Finanzen' },
    { name: 'Visum', category: 'Dokumente' },
    { name: 'T-Shirts', category: 'Kleidung' },
    { name: 'Hosen', category: 'Kleidung' },
    { name: 'Unterwäsche', category: 'Kleidung' },
    { name: 'Socken', category: 'Kleidung' },
    { name: 'Jacke', category: 'Kleidung' },
    { name: 'Schlafkleidung', category: 'Kleidung' },
    { name: 'Badekleidung', category: 'Kleidung' },
    { name: 'Regenjacke', category: 'Kleidung' },
    { name: 'Bequeme Schuhe', category: 'Kleidung' },
    { name: 'Zahnbürste', category: 'Hygiene' },
    { name: 'Zahnpasta', category: 'Hygiene' },
    { name: 'Shampoo', category: 'Hygiene' },
    { name: 'Deo', category: 'Hygiene' },
    { name: 'Sonnencreme', category: 'Hygiene' },
    { name: 'Rasierer', category: 'Hygiene' },
    { name: 'Ladegerät', category: 'Elektronik' },
    { name: 'Powerbank', category: 'Elektronik' },
    { name: 'Kopfhörer', category: 'Elektronik' },
    { name: 'Reiseadapter', category: 'Elektronik' },
    { name: 'Kamera', category: 'Elektronik' },
    { name: 'Schmerzmittel', category: 'Gesundheit' },
    { name: 'Pflaster', category: 'Gesundheit' },
    { name: 'Desinfektionsmittel', category: 'Gesundheit' },
  ],

  // Members / Sharing
  'members.shareTrip': 'Reise teilen',
  'members.inviteUser': 'Benutzer einladen',
  'members.selectUser': 'Benutzer auswählen…',
  'members.invite': 'Einladen',
  'members.allHaveAccess': 'Alle Benutzer haben bereits Zugriff.',
  'members.access': 'Zugriff',
  'members.person': 'Person',
  'members.persons': 'Personen',
  'members.you': 'du',
  'members.owner': 'Eigentümer',
  'members.leaveTrip': 'Reise verlassen',
  'members.removeAccess': 'Zugriff entfernen',
  'members.confirmLeave': 'Reise verlassen? Du verlierst den Zugriff.',
  'members.confirmRemove': 'Zugriff für diesen Benutzer entfernen?',
  'members.loadError': 'Fehler beim Laden der Mitglieder',
  'members.added': 'hinzugefügt',
  'members.addError': 'Fehler beim Hinzufügen',
  'members.removed': 'Mitglied entfernt',
  'members.removeError': 'Fehler beim Entfernen',

  // Categories (Admin)
  'categories.title': 'Kategorien',
  'categories.subtitle': 'Kategorien für Orte verwalten',
  'categories.new': 'Neue Kategorie',
  'categories.empty': 'Keine Kategorien vorhanden',
  'categories.namePlaceholder': 'Kategoriename',
  'categories.icon': 'Symbol',
  'categories.color': 'Farbe',
  'categories.customColor': 'Eigene Farbe wählen',
  'categories.preview': 'Vorschau',
  'categories.defaultName': 'Kategorie',
  'categories.update': 'Aktualisieren',
  'categories.create': 'Erstellen',
  'categories.confirm.delete': 'Kategorie löschen? Orte dieser Kategorie werden nicht gelöscht.',
  'categories.toast.loadError': 'Fehler beim Laden der Kategorien',
  'categories.toast.nameRequired': 'Bitte einen Namen eingeben',
  'categories.toast.updated': 'Kategorie aktualisiert',
  'categories.toast.created': 'Kategorie erstellt',
  'categories.toast.saveError': 'Fehler beim Speichern',
  'categories.toast.deleted': 'Kategorie gelöscht',
  'categories.toast.deleteError': 'Fehler beim Löschen',

  // Backup (Admin)
  'backup.title': 'Datensicherung',
  'backup.subtitle': 'Datenbank und alle hochgeladenen Dateien',
  'backup.refresh': 'Aktualisieren',
  'backup.upload': 'Backup hochladen',
  'backup.uploading': 'Wird hochgeladen…',
  'backup.create': 'Backup erstellen',
  'backup.creating': 'Erstelle…',
  'backup.empty': 'Noch keine Backups vorhanden',
  'backup.createFirst': 'Erstes Backup erstellen',
  'backup.download': 'Herunterladen',
  'backup.restore': 'Wiederherstellen',
  'backup.confirm.restore': 'Backup "{name}" wiederherstellen?\n\nAlle aktuellen Daten werden durch den Backup-Stand ersetzt.',
  'backup.confirm.uploadRestore': 'Backup-Datei "{name}" hochladen und wiederherstellen?\n\nAlle aktuellen Daten werden überschrieben.',
  'backup.confirm.delete': 'Backup "{name}" löschen?',
  'backup.toast.loadError': 'Fehler beim Laden der Backups',
  'backup.toast.created': 'Backup erfolgreich erstellt',
  'backup.toast.createError': 'Fehler beim Erstellen des Backups',
  'backup.toast.restored': 'Backup wiederhergestellt. Seite wird neu geladen…',
  'backup.toast.restoreError': 'Fehler beim Wiederherstellen',
  'backup.toast.uploadError': 'Fehler beim Hochladen',
  'backup.toast.deleted': 'Backup gelöscht',
  'backup.toast.deleteError': 'Fehler beim Löschen',
  'backup.toast.downloadError': 'Download fehlgeschlagen',
  'backup.toast.settingsSaved': 'Auto-Backup Einstellungen gespeichert',
  'backup.toast.settingsError': 'Fehler beim Speichern der Einstellungen',
  'backup.auto.title': 'Auto-Backup',
  'backup.auto.subtitle': 'Automatische Sicherung nach Zeitplan',
  'backup.auto.enable': 'Auto-Backup aktivieren',
  'backup.auto.enableHint': 'Backups werden automatisch nach dem gewählten Zeitplan erstellt',
  'backup.auto.interval': 'Intervall',
  'backup.auto.keepLabel': 'Alte Backups löschen nach',
  'backup.interval.hourly': 'Stündlich',
  'backup.interval.daily': 'Täglich',
  'backup.interval.weekly': 'Wöchentlich',
  'backup.interval.monthly': 'Monatlich',
  'backup.keep.1day': '1 Tag',
  'backup.keep.3days': '3 Tage',
  'backup.keep.7days': '7 Tage',
  'backup.keep.14days': '14 Tage',
  'backup.keep.30days': '30 Tage',
  'backup.keep.forever': 'Immer behalten',

  // PDF
  'pdf.travelPlan': 'Reiseplan',
  'pdf.planned': 'Eingeplant',
  'pdf.costLabel': 'Kosten EUR',
  'pdf.preview': 'PDF Vorschau',
  'pdf.saveAsPdf': 'Als PDF speichern',

  // Dashboard Stats
  'stats.countries': 'Länder',
  'stats.cities': 'Städte',
  'stats.trips': 'Reisen',
  'stats.places': 'Orte',
  'stats.worldProgress': 'Weltfortschritt',
  'stats.visited': 'besucht',
  'stats.remaining': 'verbleibend',
  'stats.visitedCountries': 'Besuchte Länder',
}

export default de
