const en = {
  // Common
  'common.save': 'Save',
  'common.cancel': 'Cancel',
  'common.delete': 'Delete',
  'common.edit': 'Edit',
  'common.add': 'Add',
  'common.loading': 'Loading...',
  'common.error': 'Error',
  'common.back': 'Back',
  'common.all': 'All',
  'common.close': 'Close',
  'common.open': 'Open',
  'common.upload': 'Upload',
  'common.search': 'Search',
  'common.confirm': 'Confirm',
  'common.ok': 'OK',
  'common.yes': 'Yes',
  'common.no': 'No',
  'common.or': 'or',
  'common.none': 'None',
  'common.date': 'Date',
  'common.rename': 'Rename',
  'common.name': 'Name',
  'common.email': 'Email',
  'common.password': 'Password',
  'common.saving': 'Saving...',
  'common.update': 'Update',
  'common.change': 'Change',
  'common.uploading': 'Uploading…',

  // Navbar
  'nav.trip': 'Trip',
  'nav.share': 'Share',
  'nav.settings': 'Settings',
  'nav.admin': 'Admin',
  'nav.logout': 'Log out',
  'nav.lightMode': 'Light Mode',
  'nav.darkMode': 'Dark Mode',
  'nav.administrator': 'Administrator',

  // Dashboard
  'dashboard.title': 'My Trips',
  'dashboard.subtitle.loading': 'Loading trips...',
  'dashboard.subtitle.trips': '{count} trips ({archived} archived)',
  'dashboard.subtitle.empty': 'Start your first trip',
  'dashboard.subtitle.activeOne': '{count} active trip',
  'dashboard.subtitle.activeMany': '{count} active trips',
  'dashboard.subtitle.archivedSuffix': ' · {count} archived',
  'dashboard.newTrip': 'New Trip',
  'dashboard.currency': 'Currency',
  'dashboard.timezone': 'Timezones',
  'dashboard.localTime': 'Local',
  'dashboard.emptyTitle': 'No trips yet',
  'dashboard.emptyText': 'Create your first trip and start planning!',
  'dashboard.emptyButton': 'Create First Trip',
  'dashboard.nextTrip': 'Next Trip',
  'dashboard.shared': 'Shared',
  'dashboard.sharedBy': 'Shared by {name}',
  'dashboard.days': 'Days',
  'dashboard.places': 'Places',
  'dashboard.archive': 'Archive',
  'dashboard.restore': 'Restore',
  'dashboard.archived': 'Archived',
  'dashboard.status.ongoing': 'Ongoing',
  'dashboard.status.today': 'Today',
  'dashboard.status.tomorrow': 'Tomorrow',
  'dashboard.status.past': 'Past',
  'dashboard.status.daysLeft': '{count} days left',
  'dashboard.toast.loadError': 'Failed to load trips',
  'dashboard.toast.created': 'Trip created successfully!',
  'dashboard.toast.createError': 'Failed to create trip',
  'dashboard.toast.updated': 'Trip updated!',
  'dashboard.toast.updateError': 'Failed to update trip',
  'dashboard.toast.deleted': 'Trip deleted',
  'dashboard.toast.deleteError': 'Failed to delete trip',
  'dashboard.toast.archived': 'Trip archived',
  'dashboard.toast.archiveError': 'Failed to archive trip',
  'dashboard.toast.restored': 'Trip restored',
  'dashboard.toast.restoreError': 'Failed to restore trip',
  'dashboard.confirm.delete': 'Delete trip "{title}"? All places and plans will be permanently deleted.',
  'dashboard.editTrip': 'Edit Trip',
  'dashboard.createTrip': 'Create New Trip',
  'dashboard.tripTitle': 'Title',
  'dashboard.tripTitlePlaceholder': 'e.g. Summer in Japan',
  'dashboard.tripDescription': 'Description',
  'dashboard.tripDescriptionPlaceholder': 'What is this trip about?',
  'dashboard.startDate': 'Start Date',
  'dashboard.endDate': 'End Date',
  'dashboard.noDateHint': 'No date set — 7 default days will be created. You can change this anytime.',
  'dashboard.coverImage': 'Cover Image',
  'dashboard.addCoverImage': 'Add cover image',
  'dashboard.coverSaved': 'Cover image saved',
  'dashboard.coverUploadError': 'Failed to upload',
  'dashboard.coverRemoveError': 'Failed to remove',
  'dashboard.titleRequired': 'Title is required',
  'dashboard.endDateError': 'End date must be after start date',

  // Settings
  'settings.title': 'Settings',
  'settings.subtitle': 'Configure your personal settings',
  'settings.map': 'Map',
  'settings.mapTemplate': 'Map Template',
  'settings.mapTemplatePlaceholder.select': 'Select template...',
  'settings.mapDefaultHint': 'Leave empty for OpenStreetMap (default)',
  'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
  'settings.mapHint': 'URL template for map tiles',
  'settings.latitude': 'Latitude',
  'settings.longitude': 'Longitude',
  'settings.saveMap': 'Save Map',
  'settings.apiKeys': 'API Keys',
  'settings.mapsKey': 'Google Maps API Key',
  'settings.mapsKeyHint': 'For place search. Requires Places API (New). Get at console.cloud.google.com',
  'settings.weatherKey': 'OpenWeatherMap API Key',
  'settings.weatherKeyHint': 'For weather data. Free at openweathermap.org/api',
  'settings.keyPlaceholder': 'Enter key...',
  'settings.configured': 'Configured',
  'settings.saveKeys': 'Save Keys',
  'settings.display': 'Display',
  'settings.colorMode': 'Color Mode',
  'settings.light': 'Light',
  'settings.dark': 'Dark',
  'settings.language': 'Language',
  'settings.temperature': 'Temperature Unit',
  'settings.timeFormat': 'Time Format',
  'settings.account': 'Account',
  'settings.username': 'Username',
  'settings.email': 'Email',
  'settings.role': 'Role',
  'settings.roleAdmin': 'Administrator',
  'settings.oidcLinked': 'Linked with',
  'settings.changePassword': 'Change Password',
  'settings.currentPassword': 'Current password',
  'settings.newPassword': 'New password',
  'settings.confirmPassword': 'Confirm new password',
  'settings.updatePassword': 'Update password',
  'settings.passwordRequired': 'Please enter current and new password',
  'settings.passwordTooShort': 'Password must be at least 8 characters',
  'settings.passwordMismatch': 'Passwords do not match',
  'settings.passwordChanged': 'Password changed successfully',
  'settings.deleteAccount': 'Delete account',
  'settings.deleteAccountTitle': 'Delete your account?',
  'settings.deleteAccountWarning': 'Your account and all your trips, places, and files will be permanently deleted. This action cannot be undone.',
  'settings.deleteAccountConfirm': 'Delete permanently',
  'settings.deleteBlockedTitle': 'Deletion not possible',
  'settings.deleteBlockedMessage': 'You are the only administrator. Promote another user to admin before deleting your account.',
  'settings.roleUser': 'User',
  'settings.saveProfile': 'Save Profile',
  'settings.toast.mapSaved': 'Map settings saved',
  'settings.toast.keysSaved': 'API keys saved',
  'settings.toast.displaySaved': 'Display settings saved',
  'settings.toast.profileSaved': 'Profile saved',
  'settings.uploadAvatar': 'Upload Profile Picture',
  'settings.removeAvatar': 'Remove Profile Picture',
  'settings.avatarUploaded': 'Profile picture updated',
  'settings.avatarRemoved': 'Profile picture removed',
  'settings.avatarError': 'Upload failed',

  // Login
  'login.error': 'Login failed. Please check your credentials.',
  'login.tagline': 'Your Trips.\nYour Plan.',
  'login.description': 'Plan trips collaboratively with interactive maps, budgets, and real-time sync.',
  'login.features.maps': 'Interactive Maps',
  'login.features.mapsDesc': 'Google Places, routes & clustering',
  'login.features.realtime': 'Real-Time Sync',
  'login.features.realtimeDesc': 'Plan together via WebSocket',
  'login.features.budget': 'Budget Tracking',
  'login.features.budgetDesc': 'Categories, charts & per-person costs',
  'login.features.collab': 'Collaboration',
  'login.features.collabDesc': 'Multi-user with shared trips',
  'login.features.packing': 'Packing Lists',
  'login.features.packingDesc': 'Categories, progress & suggestions',
  'login.features.bookings': 'Reservations',
  'login.features.bookingsDesc': 'Flights, hotels, restaurants & more',
  'login.features.files': 'Documents',
  'login.features.filesDesc': 'Upload & manage documents',
  'login.features.routes': 'Smart Routes',
  'login.features.routesDesc': 'Auto-optimize & Google Maps export',
  'login.selfHosted': 'Self-hosted \u00B7 Open Source \u00B7 Your data stays yours',
  'login.title': 'Sign In',
  'login.subtitle': 'Welcome back',
  'login.signingIn': 'Signing in…',
  'login.signIn': 'Sign In',
  'login.createAdmin': 'Create Admin Account',
  'login.createAdminHint': 'Set up the first admin account for NOMAD.',
  'login.createAccount': 'Create Account',
  'login.createAccountHint': 'Register a new account.',
  'login.creating': 'Creating…',
  'login.noAccount': "Don't have an account?",
  'login.hasAccount': 'Already have an account?',
  'login.register': 'Register',
  'login.emailPlaceholder': 'your@email.com',
  'login.username': 'Username',

  // Admin
  'admin.title': 'Administration',
  'admin.subtitle': 'User management and system settings',
  'admin.tabs.users': 'Users',
  'admin.tabs.categories': 'Categories',
  'admin.tabs.backup': 'Backup',
  'admin.stats.users': 'Users',
  'admin.stats.trips': 'Trips',
  'admin.stats.places': 'Places',
  'admin.stats.photos': 'Photos',
  'admin.stats.files': 'Files',
  'admin.table.user': 'User',
  'admin.table.email': 'Email',
  'admin.table.role': 'Role',
  'admin.table.created': 'Created',
  'admin.table.lastLogin': 'Last Login',
  'admin.table.actions': 'Actions',
  'admin.you': '(You)',
  'admin.editUser': 'Edit User',
  'admin.newPassword': 'New Password',
  'admin.newPasswordHint': 'Leave empty to keep current password',
  'admin.deleteUser': 'Delete user "{name}"? All trips will be permanently deleted.',
  'admin.deleteUserTitle': 'Delete user',
  'admin.newPasswordPlaceholder': 'Enter new password…',
  'admin.toast.loadError': 'Failed to load admin data',
  'admin.toast.userUpdated': 'User updated',
  'admin.toast.updateError': 'Failed to update',
  'admin.toast.userDeleted': 'User deleted',
  'admin.toast.deleteError': 'Failed to delete',
  'admin.toast.cannotDeleteSelf': 'Cannot delete your own account',
  'admin.toast.userCreated': 'User created',
  'admin.toast.createError': 'Failed to create user',
  'admin.toast.fieldsRequired': 'Username, email and password are required',
  'admin.createUser': 'Create User',
  'admin.tabs.settings': 'Settings',
  'admin.allowRegistration': 'Allow Registration',
  'admin.allowRegistrationHint': 'New users can register themselves',
  'admin.apiKeys': 'API Keys',
  'admin.apiKeysHint': 'Optional. Enables extended place data like photos and weather.',
  'admin.mapsKey': 'Google Maps API Key',
  'admin.mapsKeyHint': 'Required for place search. Get at console.cloud.google.com',
  'admin.mapsKeyHintLong': 'Without an API key, OpenStreetMap is used for place search. With a Google API key, photos, ratings, and opening hours can be loaded as well. Get one at console.cloud.google.com.',
  'admin.recommended': 'Recommended',
  'admin.weatherKey': 'OpenWeatherMap API Key',
  'admin.weatherKeyHint': 'For weather data. Free at openweathermap.org',
  'admin.validateKey': 'Test',
  'admin.keyValid': 'Connected',
  'admin.keyInvalid': 'Invalid',
  'admin.keySaved': 'API keys saved',
  'admin.oidcTitle': 'Single Sign-On (OIDC)',
  'admin.oidcSubtitle': 'Allow login via external providers like Google, Apple, Authentik or Keycloak.',
  'admin.oidcDisplayName': 'Display Name',
  'admin.oidcIssuer': 'Issuer URL',
  'admin.oidcIssuerHint': 'The OpenID Connect Issuer URL of the provider. e.g. https://accounts.google.com',
  'admin.oidcSaved': 'OIDC configuration saved',

  // Addons
  'admin.tabs.addons': 'Addons',
  'admin.addons.title': 'Addons',
  'admin.addons.subtitle': 'Enable or disable features to customize your NOMAD experience.',
  'admin.addons.subtitleBefore': 'Enable or disable features to customize your ',
  'admin.addons.subtitleAfter': ' experience.',
  'admin.addons.enabled': 'Enabled',
  'admin.addons.disabled': 'Disabled',
  'admin.addons.type.trip': 'Trip',
  'admin.addons.type.global': 'Global',
  'admin.addons.tripHint': 'Available as a tab within each trip',
  'admin.addons.globalHint': 'Available as a standalone section in the main navigation',
  'admin.addons.toast.updated': 'Addon updated',
  'admin.addons.toast.error': 'Failed to update addon',
  'admin.addons.noAddons': 'No addons available',
  'admin.update.available': 'Update available',
  'admin.update.text': 'NOMAD {version} is available. You are running {current}.',
  'admin.update.button': 'View on GitHub',
  'admin.update.install': 'Install Update',
  'admin.update.confirmTitle': 'Install Update?',
  'admin.update.confirmText': 'NOMAD will be updated from {current} to {version}. The server will restart automatically afterwards.',
  'admin.update.dataInfo': 'All your data (trips, users, API keys, uploads, Vacay, Atlas, budgets) will be preserved.',
  'admin.update.warning': 'The app will be briefly unavailable during the restart.',
  'admin.update.confirm': 'Update Now',
  'admin.update.installing': 'Updating…',
  'admin.update.success': 'Update installed! Server is restarting…',
  'admin.update.failed': 'Update failed',
  'admin.update.backupHint': 'We recommend creating a backup before updating.',
  'admin.update.backupLink': 'Go to Backup',
  'admin.update.howTo': 'How to Update',
  'admin.update.dockerText': 'Your NOMAD instance runs in Docker. To update to {version}, run the following commands on your server:',
  'admin.update.reloadHint': 'Please reload the page in a few seconds.',

  // Vacay addon
  'vacay.subtitle': 'Plan and manage vacation days',
  'vacay.settings': 'Settings',
  'vacay.year': 'Year',
  'vacay.addYear': 'Add year',
  'vacay.removeYear': 'Remove year',
  'vacay.removeYearConfirm': 'Remove {year}?',
  'vacay.removeYearHint': 'All vacation entries and company holidays for this year will be permanently deleted.',
  'vacay.remove': 'Remove',
  'vacay.persons': 'Persons',
  'vacay.noPersons': 'No persons added',
  'vacay.addPerson': 'Add Person',
  'vacay.editPerson': 'Edit Person',
  'vacay.removePerson': 'Remove Person',
  'vacay.removePersonConfirm': 'Remove {name}?',
  'vacay.removePersonHint': 'All vacation entries for this person will be permanently deleted.',
  'vacay.personName': 'Name',
  'vacay.personNamePlaceholder': 'Enter name',
  'vacay.color': 'Color',
  'vacay.add': 'Add',
  'vacay.legend': 'Legend',
  'vacay.publicHoliday': 'Public Holiday',
  'vacay.companyHoliday': 'Company Holiday',
  'vacay.weekend': 'Weekend',
  'vacay.modeVacation': 'Vacation',
  'vacay.modeCompany': 'Company Holiday',
  'vacay.entitlement': 'Entitlement',
  'vacay.entitlementDays': 'Days',
  'vacay.used': 'Used',
  'vacay.remaining': 'Left',
  'vacay.carriedOver': 'from {year}',
  'vacay.blockWeekends': 'Block Weekends',
  'vacay.blockWeekendsHint': 'Prevent vacation entries on Saturdays and Sundays',
  'vacay.publicHolidays': 'Public Holidays',
  'vacay.publicHolidaysHint': 'Mark public holidays in the calendar',
  'vacay.selectCountry': 'Select country',
  'vacay.selectRegion': 'Select region (optional)',
  'vacay.companyHolidays': 'Company Holidays',
  'vacay.companyHolidaysHint': 'Allow marking company-wide holiday days',
  'vacay.companyHolidaysNoDeduct': 'Company holidays do not count towards vacation days.',
  'vacay.carryOver': 'Carry Over',
  'vacay.carryOverHint': 'Automatically carry remaining vacation days into the next year',
  'vacay.sharing': 'Sharing',
  'vacay.sharingHint': 'Share your vacation plan with other NOMAD users',
  'vacay.owner': 'Owner',
  'vacay.shareEmailPlaceholder': 'Email of NOMAD user',
  'vacay.shareSuccess': 'Plan shared successfully',
  'vacay.shareError': 'Could not share plan',
  'vacay.dissolve': 'Dissolve Fusion',
  'vacay.dissolveHint': 'Separate calendars again. Your entries will be kept.',
  'vacay.dissolveAction': 'Dissolve',
  'vacay.dissolved': 'Calendar separated',
  'vacay.fusedWith': 'Fused with',
  'vacay.you': 'you',
  'vacay.noData': 'No data',
  'vacay.changeColor': 'Change color',
  'vacay.inviteUser': 'Invite User',
  'vacay.inviteHint': 'Invite another NOMAD user to share a combined vacation calendar.',
  'vacay.selectUser': 'Select user',
  'vacay.sendInvite': 'Send Invite',
  'vacay.inviteSent': 'Invite sent',
  'vacay.inviteError': 'Could not send invite',
  'vacay.pending': 'pending',
  'vacay.noUsersAvailable': 'No users available',
  'vacay.accept': 'Accept',
  'vacay.decline': 'Decline',
  'vacay.acceptFusion': 'Accept & Fuse',
  'vacay.inviteTitle': 'Fusion Request',
  'vacay.inviteWantsToFuse': 'wants to share a vacation calendar with you.',
  'vacay.fuseInfo1': 'Both of you will see all vacation entries in one shared calendar.',
  'vacay.fuseInfo2': 'Both parties can create and edit entries for each other.',
  'vacay.fuseInfo3': 'Both parties can delete entries and change vacation entitlements.',
  'vacay.fuseInfo4': 'Settings like public holidays and company holidays are shared.',
  'vacay.fuseInfo5': 'The fusion can be dissolved at any time by either party. Your entries will be preserved.',
  'nav.myTrips': 'My Trips',

  // Atlas addon
  'atlas.subtitle': 'Your travel footprint around the world',
  'atlas.countries': 'Countries',
  'atlas.trips': 'Trips',
  'atlas.places': 'Places',
  'atlas.days': 'Days',
  'atlas.visitedCountries': 'Visited Countries',
  'atlas.cities': 'Cities',
  'atlas.noData': 'No travel data yet',
  'atlas.noDataHint': 'Create a trip and add places to see your world map',
  'atlas.lastTrip': 'Last trip',
  'atlas.nextTrip': 'Next trip',
  'atlas.daysLeft': 'days left',
  'atlas.streak': 'Streak',
  'atlas.year': 'year',
  'atlas.years': 'years',
  'atlas.yearInRow': 'year in a row',
  'atlas.yearsInRow': 'years in a row',
  'atlas.tripIn': 'trip in',
  'atlas.tripsIn': 'trips in',
  'atlas.since': 'since',
  'atlas.europe': 'Europe',
  'atlas.asia': 'Asia',
  'atlas.northAmerica': 'N. America',
  'atlas.southAmerica': 'S. America',
  'atlas.africa': 'Africa',
  'atlas.oceania': 'Oceania',
  'atlas.other': 'Other',
  'atlas.firstVisit': 'First trip',
  'atlas.lastVisitLabel': 'Last trip',
  'atlas.tripSingular': 'Trip',
  'atlas.tripPlural': 'Trips',
  'atlas.placeVisited': 'Place visited',
  'atlas.placesVisited': 'Places visited',

  // Trip Planner
  'trip.tabs.plan': 'Plan',
  'trip.tabs.reservations': 'Bookings',
  'trip.tabs.reservationsShort': 'Book',
  'trip.tabs.packing': 'Packing List',
  'trip.tabs.packingShort': 'Packing',
  'trip.tabs.budget': 'Budget',
  'trip.tabs.files': 'Files',
  'trip.loading': 'Loading trip...',
  'trip.mobilePlan': 'Plan',
  'trip.mobilePlaces': 'Places',
  'trip.toast.placeUpdated': 'Place updated',
  'trip.toast.placeAdded': 'Place added',
  'trip.toast.placeDeleted': 'Place deleted',
  'trip.toast.selectDay': 'Please select a day first',
  'trip.toast.assignedToDay': 'Place assigned to day',
  'trip.toast.reorderError': 'Failed to reorder',
  'trip.toast.reservationUpdated': 'Reservation updated',
  'trip.toast.reservationAdded': 'Reservation added',
  'trip.toast.deleted': 'Deleted',
  'trip.confirm.deletePlace': 'Are you sure you want to delete this place?',

  // Day Plan Sidebar
  'dayplan.transport.car': 'Car',
  'dayplan.transport.walk': 'Walk',
  'dayplan.transport.bike': 'Bike',
  'dayplan.emptyDay': 'No places planned for this day',
  'dayplan.addNote': 'Add Note',
  'dayplan.editNote': 'Edit Note',
  'dayplan.noteAdd': 'Add Note',
  'dayplan.noteEdit': 'Edit Note',
  'dayplan.noteTitle': 'Note',
  'dayplan.noteSubtitle': 'Daily Note',
  'dayplan.totalCost': 'Total Cost',
  'dayplan.days': 'Days',
  'dayplan.dayN': 'Day {n}',
  'dayplan.calculating': 'Calculating...',
  'dayplan.route': 'Route',
  'dayplan.optimize': 'Optimize',
  'dayplan.optimized': 'Route optimized',
  'dayplan.routeError': 'Failed to calculate route',
  'dayplan.toast.needTwoPlaces': 'At least two places needed for route optimization',
  'dayplan.toast.routeOptimized': 'Route optimized',
  'dayplan.toast.noGeoPlaces': 'No places with coordinates found for route calculation',
  'dayplan.confirmed': 'Confirmed',
  'dayplan.pendingRes': 'Pending',
  'dayplan.pdf': 'PDF',
  'dayplan.pdfTooltip': 'Export day plan as PDF',
  'dayplan.pdfError': 'Failed to export PDF',

  // Places Sidebar
  'places.addPlace': 'Add Place',
  'places.assignToDay': 'Add to which day?',
  'places.all': 'All',
  'places.unplanned': 'Unplanned',
  'places.search': 'Search places...',
  'places.allCategories': 'All Categories',
  'places.count': '{count} places',
  'places.countSingular': '1 place',
  'places.allPlanned': 'All places are planned',
  'places.noneFound': 'No places found',
  'places.editPlace': 'Edit Place',
  'places.formName': 'Name',
  'places.formNamePlaceholder': 'e.g. Eiffel Tower',
  'places.formDescription': 'Description',
  'places.formDescriptionPlaceholder': 'Short description...',
  'places.formAddress': 'Address',
  'places.formAddressPlaceholder': 'Street, City, Country',
  'places.formLat': 'Latitude (e.g. 48.8566)',
  'places.formLng': 'Longitude (e.g. 2.3522)',
  'places.formCategory': 'Category',
  'places.noCategory': 'No Category',
  'places.categoryNamePlaceholder': 'Category name',
  'places.formTime': 'Time',
  'places.formWebsite': 'Website',
  'places.formNotesPlaceholder': 'Personal notes...',
  'places.formReservation': 'Reservation',
  'places.reservationNotesPlaceholder': 'Reservation notes, confirmation number...',
  'places.mapsSearchPlaceholder': 'Search places...',
  'places.mapsSearchError': 'Place search failed.',
  'places.osmHint': 'Using OpenStreetMap search (no photos, opening hours, or ratings). Add a Google API key in settings for full details.',
  'places.osmActive': 'Search via OpenStreetMap (no photos, ratings or opening hours). Add a Google API key in Settings for enhanced data.',
  'places.categoryCreateError': 'Failed to create category',
  'places.nameRequired': 'Please enter a name',
  'places.saveError': 'Failed to save',
  'places.transport.walking': '🚶 Walking',
  'places.transport.driving': '🚗 Driving',
  'places.transport.cycling': '🚲 Cycling',
  'places.transport.transit': '🚌 Transit',

  // Place Inspector
  'inspector.opened': 'Open',
  'inspector.closed': 'Closed',
  'inspector.openingHours': 'Opening Hours',
  'inspector.showHours': 'Show opening hours',
  'inspector.files': 'Files',
  'inspector.filesCount': '{count} files',
  'inspector.removeFromDay': 'Remove from Day',
  'inspector.addToDay': 'Add to Day',
  'inspector.confirmedRes': 'Confirmed Reservation',
  'inspector.pendingRes': 'Pending Reservation',
  'inspector.google': 'Open in Google Maps',
  'inspector.website': 'Open Website',

  // Reservations
  'reservations.title': 'Bookings',
  'reservations.empty': 'No reservations yet',
  'reservations.emptyHint': 'Add reservations for flights, hotels and more',
  'reservations.add': 'Add Reservation',
  'reservations.addManual': 'Manual Booking',
  'reservations.placeHint': 'Tip: Reservations are best created directly from a place to link them with your day plan.',
  'reservations.confirmed': 'Confirmed',
  'reservations.pending': 'Pending',
  'reservations.summary': '{confirmed} confirmed, {pending} pending',
  'reservations.fromPlan': 'From Plan',
  'reservations.showFiles': 'Show Files',
  'reservations.editTitle': 'Edit Reservation',
  'reservations.status': 'Status',
  'reservations.datetime': 'Date & Time',
  'reservations.timeAlt': 'Time (alternative, e.g. 19:30)',
  'reservations.notes': 'Notes',
  'reservations.notesPlaceholder': 'Additional notes...',
  'reservations.type.flight': 'Flight',
  'reservations.type.hotel': 'Hotel',
  'reservations.type.restaurant': 'Restaurant',
  'reservations.type.train': 'Train',
  'reservations.type.car': 'Rental Car',
  'reservations.type.cruise': 'Cruise',
  'reservations.type.event': 'Event',
  'reservations.type.tour': 'Tour',
  'reservations.type.other': 'Other',
  'reservations.confirm.delete': 'Are you sure you want to delete the reservation "{name}"?',
  'reservations.toast.updated': 'Reservation updated',
  'reservations.toast.removed': 'Reservation deleted',
  'reservations.toast.fileUploaded': 'File uploaded',
  'reservations.toast.uploadError': 'Failed to upload',
  'reservations.newTitle': 'New Reservation',
  'reservations.bookingType': 'Booking Type',
  'reservations.titleLabel': 'Title',
  'reservations.titlePlaceholder': 'e.g. Lufthansa LH123, Hotel Adlon, ...',
  'reservations.locationAddress': 'Location / Address',
  'reservations.locationPlaceholder': 'Address, Airport, Hotel...',
  'reservations.confirmationCode': 'Confirmation Number / Booking Code',
  'reservations.confirmationPlaceholder': 'e.g. ABC12345',
  'reservations.day': 'Day',
  'reservations.noDay': 'No Day',
  'reservations.place': 'Place',
  'reservations.noPlace': 'No Place',
  'reservations.pendingSave': 'will be saved…',
  'reservations.uploading': 'Uploading...',
  'reservations.attachFile': 'Attach file',
  'reservations.toast.saveError': 'Failed to save',
  'reservations.toast.updateError': 'Failed to update',
  'reservations.toast.deleteError': 'Failed to delete',
  'reservations.confirm.remove': 'Remove reservation for "{name}"?',

  // Budget
  'budget.title': 'Budget',
  'budget.emptyTitle': 'No budget created yet',
  'budget.emptyText': 'Create categories and entries to plan your travel budget',
  'budget.emptyPlaceholder': 'Enter category name...',
  'budget.createCategory': 'Create Category',
  'budget.category': 'Category',
  'budget.categoryName': 'Category Name',
  'budget.table.name': 'Name',
  'budget.table.total': 'Total',
  'budget.table.persons': 'Persons',
  'budget.table.days': 'Days',
  'budget.table.perPerson': 'Per Person',
  'budget.table.perDay': 'Per Day',
  'budget.table.perPersonDay': 'Per Person/Day',
  'budget.table.note': 'Note',
  'budget.newEntry': 'New Entry',
  'budget.defaultEntry': 'New Entry',
  'budget.defaultCategory': 'New Category',
  'budget.total': 'Total',
  'budget.totalBudget': 'Total Budget',
  'budget.byCategory': 'By Category',
  'budget.editTooltip': 'Click to edit',
  'budget.confirm.deleteCategory': 'Are you sure you want to delete the category "{name}" with {count} entries?',
  'budget.deleteCategory': 'Delete Category',

  // Files
  'files.title': 'Files',
  'files.count': '{count} files',
  'files.countSingular': '1 file',
  'files.uploaded': '{count} uploaded',
  'files.uploadError': 'Upload failed',
  'files.dropzone': 'Drop files here',
  'files.dropzoneHint': 'or click to browse',
  'files.uploading': 'Uploading...',
  'files.filterAll': 'All',
  'files.filterPdf': 'PDFs',
  'files.filterImages': 'Images',
  'files.filterDocs': 'Documents',
  'files.empty': 'No files yet',
  'files.emptyHint': 'Upload files to attach them to your trip',
  'files.openTab': 'Open in new tab',
  'files.confirm.delete': 'Are you sure you want to delete this file?',
  'files.toast.deleted': 'File deleted',
  'files.toast.deleteError': 'Failed to delete file',
  'files.sourcePlan': 'Day Plan',
  'files.sourceBooking': 'Booking',

  // Packing
  'packing.title': 'Packing List',
  'packing.empty': 'Packing list is empty',
  'packing.progress': '{packed} of {total} packed ({percent}%)',
  'packing.clearChecked': 'Remove {count} checked',
  'packing.clearCheckedShort': 'Remove {count}',
  'packing.suggestions': 'Suggestions',
  'packing.suggestionsTitle': 'Add Suggestions',
  'packing.allSuggested': 'All suggestions added',
  'packing.allPacked': 'All packed!',
  'packing.addPlaceholder': 'Add new item...',
  'packing.categoryPlaceholder': 'Category...',
  'packing.filterAll': 'All',
  'packing.filterOpen': 'Open',
  'packing.filterDone': 'Done',
  'packing.emptyTitle': 'Packing list is empty',
  'packing.emptyHint': 'Add items or use the suggestions',
  'packing.emptyFiltered': 'No items match this filter',
  'packing.menuRename': 'Rename',
  'packing.menuCheckAll': 'Check All',
  'packing.menuUncheckAll': 'Uncheck All',
  'packing.menuDeleteCat': 'Delete Category',
  'packing.changeCategory': 'Change Category',
  'packing.confirm.clearChecked': 'Are you sure you want to remove {count} checked items?',
  'packing.confirm.deleteCat': 'Are you sure you want to delete the category "{name}" with {count} items?',
  'packing.defaultCategory': 'Other',
  'packing.toast.saveError': 'Failed to save',
  'packing.toast.deleteError': 'Failed to delete',
  'packing.toast.renameError': 'Failed to rename',
  'packing.toast.addError': 'Failed to add',

  // Packing suggestions
  'packing.suggestions.items': [
    { name: 'Passport', category: 'Documents' },
    { name: 'ID Card', category: 'Documents' },
    { name: 'Travel Insurance', category: 'Documents' },
    { name: 'Flight Tickets', category: 'Documents' },
    { name: 'Credit Card', category: 'Finances' },
    { name: 'Cash', category: 'Finances' },
    { name: 'Visa', category: 'Documents' },
    { name: 'T-Shirts', category: 'Clothing' },
    { name: 'Pants', category: 'Clothing' },
    { name: 'Underwear', category: 'Clothing' },
    { name: 'Socks', category: 'Clothing' },
    { name: 'Jacket', category: 'Clothing' },
    { name: 'Sleepwear', category: 'Clothing' },
    { name: 'Swimwear', category: 'Clothing' },
    { name: 'Rain Jacket', category: 'Clothing' },
    { name: 'Comfortable Shoes', category: 'Clothing' },
    { name: 'Toothbrush', category: 'Toiletries' },
    { name: 'Toothpaste', category: 'Toiletries' },
    { name: 'Shampoo', category: 'Toiletries' },
    { name: 'Deodorant', category: 'Toiletries' },
    { name: 'Sunscreen', category: 'Toiletries' },
    { name: 'Razor', category: 'Toiletries' },
    { name: 'Charger', category: 'Electronics' },
    { name: 'Power Bank', category: 'Electronics' },
    { name: 'Headphones', category: 'Electronics' },
    { name: 'Travel Adapter', category: 'Electronics' },
    { name: 'Camera', category: 'Electronics' },
    { name: 'Pain Medication', category: 'Health' },
    { name: 'Band-Aids', category: 'Health' },
    { name: 'Disinfectant', category: 'Health' },
  ],

  // Members / Sharing
  'members.shareTrip': 'Share Trip',
  'members.inviteUser': 'Invite User',
  'members.selectUser': 'Select user…',
  'members.invite': 'Invite',
  'members.allHaveAccess': 'All users already have access.',
  'members.access': 'Access',
  'members.person': 'person',
  'members.persons': 'persons',
  'members.you': 'you',
  'members.owner': 'Owner',
  'members.leaveTrip': 'Leave trip',
  'members.removeAccess': 'Remove access',
  'members.confirmLeave': 'Leave trip? You will lose access.',
  'members.confirmRemove': 'Remove access for this user?',
  'members.loadError': 'Failed to load members',
  'members.added': 'added',
  'members.addError': 'Failed to add',
  'members.removed': 'Member removed',
  'members.removeError': 'Failed to remove',

  // Categories (Admin)
  'categories.title': 'Categories',
  'categories.subtitle': 'Manage categories for places',
  'categories.new': 'New Category',
  'categories.empty': 'No categories yet',
  'categories.namePlaceholder': 'Category name',
  'categories.icon': 'Icon',
  'categories.color': 'Color',
  'categories.customColor': 'Choose custom color',
  'categories.preview': 'Preview',
  'categories.defaultName': 'Category',
  'categories.update': 'Update',
  'categories.create': 'Create',
  'categories.confirm.delete': 'Delete category? Places in this category will not be deleted.',
  'categories.toast.loadError': 'Failed to load categories',
  'categories.toast.nameRequired': 'Please enter a name',
  'categories.toast.updated': 'Category updated',
  'categories.toast.created': 'Category created',
  'categories.toast.saveError': 'Failed to save',
  'categories.toast.deleted': 'Category deleted',
  'categories.toast.deleteError': 'Failed to delete',

  // Backup (Admin)
  'backup.title': 'Data Backup',
  'backup.subtitle': 'Database and all uploaded files',
  'backup.refresh': 'Refresh',
  'backup.upload': 'Upload Backup',
  'backup.uploading': 'Uploading…',
  'backup.create': 'Create Backup',
  'backup.creating': 'Creating…',
  'backup.empty': 'No backups yet',
  'backup.createFirst': 'Create first backup',
  'backup.download': 'Download',
  'backup.restore': 'Restore',
  'backup.confirm.restore': 'Restore backup "{name}"?\n\nAll current data will be replaced with the backup.',
  'backup.confirm.uploadRestore': 'Upload and restore backup file "{name}"?\n\nAll current data will be overwritten.',
  'backup.confirm.delete': 'Delete backup "{name}"?',
  'backup.toast.loadError': 'Failed to load backups',
  'backup.toast.created': 'Backup created successfully',
  'backup.toast.createError': 'Failed to create backup',
  'backup.toast.restored': 'Backup restored. Page will reload…',
  'backup.toast.restoreError': 'Failed to restore',
  'backup.toast.uploadError': 'Failed to upload',
  'backup.toast.deleted': 'Backup deleted',
  'backup.toast.deleteError': 'Failed to delete',
  'backup.toast.downloadError': 'Download failed',
  'backup.toast.settingsSaved': 'Auto-backup settings saved',
  'backup.toast.settingsError': 'Failed to save settings',
  'backup.auto.title': 'Auto-Backup',
  'backup.auto.subtitle': 'Automatic backup on a schedule',
  'backup.auto.enable': 'Enable auto-backup',
  'backup.auto.enableHint': 'Backups will be created automatically on the chosen schedule',
  'backup.auto.interval': 'Interval',
  'backup.auto.keepLabel': 'Delete old backups after',
  'backup.interval.hourly': 'Hourly',
  'backup.interval.daily': 'Daily',
  'backup.interval.weekly': 'Weekly',
  'backup.interval.monthly': 'Monthly',
  'backup.keep.1day': '1 day',
  'backup.keep.3days': '3 days',
  'backup.keep.7days': '7 days',
  'backup.keep.14days': '14 days',
  'backup.keep.30days': '30 days',
  'backup.keep.forever': 'Keep forever',

  // PDF
  'pdf.travelPlan': 'Travel Plan',
  'pdf.planned': 'Planned',
  'pdf.costLabel': 'Cost EUR',
  'pdf.preview': 'PDF Preview',
  'pdf.saveAsPdf': 'Save as PDF',

  // Dashboard Stats
  'stats.countries': 'Countries',
  'stats.cities': 'Cities',
  'stats.trips': 'Trips',
  'stats.places': 'Places',
  'stats.worldProgress': 'World Progress',
  'stats.visited': 'visited',
  'stats.remaining': 'remaining',
  'stats.visitedCountries': 'Visited Countries',
}

export default en
