Files
TREK/client/src/i18n/translations/nl.ts
T
jubnl 5eaf7492dc fix(backups,files): auto-backups rejected by validator; trip file download broken after cookie migration
Fixes #773: isValidBackupFilename regex anchored to ^backup- rejected all
auto-backup-* filenames, causing 400 on download/restore/delete. Broadened
to ^(?:auto-)?backup-.

Fixes #774: three regressions in the trip Files tab —
- openFile import shadowed by a local function of the same name inside
  FileManager; PDF preview modal was calling the local with a URL string,
  corrupting state and crashing on the second click (mime_type read on
  undefined). Fixed by aliasing the import as openFileUrl.
- GET /:id/download used a bespoke authenticateDownload that checked only
  Bearer header and ?token= query param, ignoring the trek_session cookie.
  After the JWT-to-cookie migration the client sends cookies only, so every
  download silently 401-ed. Extended authenticateDownload to accept req and
  check cookie → Bearer → query token in priority order.
- files.download and files.openError translation keys were missing from all
  15 locale files; t() was returning the raw key as a truthy string,
  defeating the || 'Download' fallback.
2026-04-21 11:18:17 +02:00

2353 lines
126 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const nl: Record<string, string> = {
// Common
'common.save': 'Opslaan',
'common.showMore': 'Meer tonen',
'common.showLess': 'Minder tonen',
'common.cancel': 'Annuleren',
'common.clear': 'Wissen',
'common.delete': 'Verwijderen',
'common.edit': 'Bewerken',
'common.add': 'Toevoegen',
'common.loading': 'Laden...',
'common.import': 'Importeren',
'common.select': 'Selecteren',
'common.selectAll': 'Alles selecteren',
'common.deselectAll': 'Alles deselecteren',
'common.error': 'Fout',
'common.unknownError': 'Onbekende fout',
'common.tooManyAttempts': 'Te veel pogingen. Probeer het later opnieuw.',
'common.back': 'Terug',
'common.all': 'Alles',
'common.close': 'Sluiten',
'common.open': 'Openen',
'common.upload': 'Uploaden',
'common.search': 'Zoeken',
'common.confirm': 'Bevestigen',
'common.ok': 'OK',
'common.yes': 'Ja',
'common.no': 'Nee',
'common.or': 'of',
'common.none': 'Geen',
'common.date': 'Datum',
'common.rename': 'Hernoemen',
'common.name': 'Naam',
'common.email': 'E-mail',
'common.password': 'Wachtwoord',
'common.saving': 'Opslaan...',
'common.saved': 'Opgeslagen',
'trips.memberRemoved': '{username} verwijderd',
'trips.memberRemoveError': 'Verwijderen mislukt',
'trips.memberAdded': '{username} toegevoegd',
'trips.memberAddError': 'Toevoegen mislukt',
'common.expand': 'Uitvouwen',
'common.collapse': 'Inklappen',
'trips.reminder': 'Herinnering',
'trips.reminderNone': 'Geen',
'trips.reminderDay': 'dag',
'trips.reminderDays': 'dagen',
'trips.reminderCustom': 'Aangepast',
'trips.reminderDaysBefore': 'dagen voor vertrek',
'trips.reminderDisabledHint': 'Reisherinneringen zijn uitgeschakeld. Schakel ze in via Admin > Instellingen > Meldingen.',
'common.update': 'Bijwerken',
'common.change': 'Wijzigen',
'common.uploading': 'Uploaden…',
'common.backToPlanning': 'Terug naar planning',
'common.reset': 'Resetten',
// Navbar
'nav.trip': 'Reis',
'nav.share': 'Delen',
'nav.settings': 'Instellingen',
'nav.admin': 'Admin',
'nav.logout': 'Uitloggen',
'nav.lightMode': 'Lichte modus',
'nav.darkMode': 'Donkere modus',
'nav.autoMode': 'Automatisch',
'nav.administrator': 'Beheerder',
// Dashboard
'dashboard.title': 'Mijn reizen',
'dashboard.subtitle.loading': 'Reizen laden...',
'dashboard.subtitle.trips': '{count} reizen ({archived} gearchiveerd)',
'dashboard.subtitle.empty': 'Begin je eerste reis',
'dashboard.subtitle.activeOne': '{count} actieve reis',
'dashboard.subtitle.activeMany': '{count} actieve reizen',
'dashboard.subtitle.archivedSuffix': ' · {count} gearchiveerd',
'dashboard.newTrip': 'Nieuwe reis',
'dashboard.gridView': 'Rasterweergave',
'dashboard.listView': 'Lijstweergave',
'dashboard.currency': 'Valuta',
'dashboard.timezone': 'Tijdzones',
'dashboard.localTime': 'Lokaal',
'dashboard.timezoneCustomTitle': 'Aangepaste tijdzone',
'dashboard.timezoneCustomLabelPlaceholder': 'Label (optioneel)',
'dashboard.timezoneCustomTzPlaceholder': 'bijv. America/New_York',
'dashboard.timezoneCustomAdd': 'Toevoegen',
'dashboard.timezoneCustomErrorEmpty': 'Voer een tijdzone-identificatie in',
'dashboard.timezoneCustomErrorInvalid': 'Ongeldige tijdzone. Gebruik een formaat zoals Europe/Berlin',
'dashboard.timezoneCustomErrorDuplicate': 'Al toegevoegd',
'dashboard.emptyTitle': 'Nog geen reizen',
'dashboard.emptyText': 'Maak je eerste reis aan en begin met plannen!',
'dashboard.emptyButton': 'Eerste reis aanmaken',
'dashboard.nextTrip': 'Volgende reis',
'dashboard.shared': 'Gedeeld',
'dashboard.sharedBy': 'Gedeeld door {name}',
'dashboard.days': 'Dagen',
'dashboard.places': 'Plaatsen',
'dashboard.members': 'Reisgenoten',
'dashboard.archive': 'Archiveren',
'dashboard.copyTrip': 'Kopiëren',
'dashboard.copySuffix': 'kopie',
'dashboard.restore': 'Herstellen',
'dashboard.archived': 'Gearchiveerd',
'dashboard.status.ongoing': 'Lopend',
'dashboard.status.today': 'Vandaag',
'dashboard.status.tomorrow': 'Morgen',
'dashboard.status.past': 'Afgelopen',
'dashboard.status.daysLeft': 'nog {count} dagen',
'dashboard.toast.loadError': 'Reizen laden mislukt',
'dashboard.toast.created': 'Reis aangemaakt!',
'dashboard.toast.createError': 'Reis aanmaken mislukt',
'dashboard.toast.updated': 'Reis bijgewerkt!',
'dashboard.toast.updateError': 'Reis bijwerken mislukt',
'dashboard.toast.deleted': 'Reis verwijderd',
'dashboard.toast.deleteError': 'Reis verwijderen mislukt',
'dashboard.toast.archived': 'Reis gearchiveerd',
'dashboard.toast.archiveError': 'Reis archiveren mislukt',
'dashboard.toast.restored': 'Reis hersteld',
'dashboard.toast.restoreError': 'Reis herstellen mislukt',
'dashboard.toast.copied': 'Reis gekopieerd!',
'dashboard.toast.copyError': 'Reis kopiëren mislukt',
'dashboard.confirm.delete': 'Reis "{title}" verwijderen? Alle plaatsen en plannen worden permanent verwijderd.',
'dashboard.editTrip': 'Reis bewerken',
'dashboard.createTrip': 'Nieuwe reis aanmaken',
'dashboard.tripTitle': 'Titel',
'dashboard.tripTitlePlaceholder': 'bijv. Zomer in Japan',
'dashboard.tripDescription': 'Beschrijving',
'dashboard.tripDescriptionPlaceholder': 'Waar gaat deze reis over?',
'dashboard.startDate': 'Startdatum',
'dashboard.endDate': 'Einddatum',
'dashboard.dayCount': 'Aantal dagen',
'dashboard.dayCountHint': 'Hoeveel dagen te plannen wanneer er geen reisdata zijn ingesteld.',
'dashboard.noDateHint': 'Geen datum ingesteld — er worden standaard 7 dagen aangemaakt. Je kunt dit altijd wijzigen.',
'dashboard.coverImage': 'Omslagafbeelding',
'dashboard.addCoverImage': 'Omslagafbeelding toevoegen',
'dashboard.addMembers': 'Reisgenoten',
'dashboard.addMember': 'Lid toevoegen',
'dashboard.coverSaved': 'Omslagafbeelding opgeslagen',
'dashboard.coverUploadError': 'Uploaden mislukt',
'dashboard.coverRemoveError': 'Verwijderen mislukt',
'dashboard.titleRequired': 'Titel is verplicht',
'dashboard.endDateError': 'Einddatum moet na de startdatum liggen',
// Settings
'settings.title': 'Instellingen',
'settings.subtitle': 'Configureer je persoonlijke instellingen',
'settings.tabs.display': 'Weergave',
'settings.tabs.map': 'Kaart',
'settings.tabs.notifications': 'Meldingen',
'settings.tabs.integrations': 'Integraties',
'settings.tabs.account': 'Account',
'settings.tabs.offline': 'Offline',
'settings.tabs.about': 'Over',
'settings.map': 'Kaart',
'settings.mapTemplate': 'Kaartsjabloon',
'settings.mapTemplatePlaceholder.select': 'Selecteer sjabloon...',
'settings.mapDefaultHint': 'Laat leeg voor OpenStreetMap (standaard)',
'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
'settings.mapHint': 'URL-sjabloon voor kaarttegels',
'settings.mapProvider': 'Kaartprovider',
'settings.mapProviderHint': 'Geldt voor Trip Planner en Journey kaarten. Atlas gebruikt altijd Leaflet.',
'settings.mapLeafletSubtitle': 'Klassiek 2D, elke raster-tile',
'settings.mapMapboxSubtitle': 'Vector tiles, 3D-gebouwen & terrein',
'settings.mapExperimental': 'Experimenteel',
'settings.mapMapboxToken': 'Mapbox Access Token',
'settings.mapMapboxTokenHint': 'Openbaar token (pk.*) van',
'settings.mapMapboxTokenLink': 'mapbox.com → Access tokens',
'settings.mapStyle': 'Kaartstijl',
'settings.mapStylePlaceholder': 'Kies een Mapbox-stijl',
'settings.mapStyleHint': 'Preset of eigen mapbox://styles/USER/ID URL',
'settings.map3dBuildings': '3D-gebouwen & terrein',
'settings.map3dHint': 'Kanteling + echte 3D-gebouwenextrusies — werkt op elke stijl, inclusief satelliet.',
'settings.mapHighQuality': 'Hoge kwaliteit modus',
'settings.mapHighQualityHint': 'Antialiasing + globeprojectie voor scherpere randen en een realistische wereldweergave.',
'settings.mapHighQualityWarning': 'Kan de prestaties op minder krachtige apparaten beïnvloeden.',
'settings.mapTipLabel': 'Tip:',
'settings.mapTip': 'Rechts-klik en sleep om de kaart te roteren/kantelen. Middenklik om een locatie toe te voegen (rechts-klik is voor rotatie).',
'settings.latitude': 'Breedtegraad',
'settings.longitude': 'Lengtegraad',
'settings.saveMap': 'Kaart opslaan',
'settings.apiKeys': 'API-sleutels',
'settings.mapsKey': 'Google Maps API-sleutel',
'settings.mapsKeyHint': 'Voor plaatsen zoeken. Vereist Places API (New). Verkrijgbaar op console.cloud.google.com',
'settings.weatherKey': 'OpenWeatherMap API-sleutel',
'settings.weatherKeyHint': 'Voor weergegevens. Gratis op openweathermap.org/api',
'settings.keyPlaceholder': 'Sleutel invoeren...',
'settings.configured': 'Geconfigureerd',
'settings.saveKeys': 'Sleutels opslaan',
'settings.display': 'Weergave',
'settings.colorMode': 'Kleurmodus',
'settings.light': 'Licht',
'settings.dark': 'Donker',
'settings.auto': 'Automatisch',
'settings.language': 'Taal',
'settings.temperature': 'Temperatuureenheid',
'settings.timeFormat': 'Tijdnotatie',
'settings.routeCalculation': 'Routeberekening',
'settings.blurBookingCodes': 'Boekingscodes vervagen',
'settings.notifications': 'Meldingen',
'settings.notifyTripInvite': 'Reisuitnodigingen',
'settings.notifyBookingChange': 'Boekingswijzigingen',
'settings.notifyTripReminder': 'Reisherinneringen',
'settings.notifyTodoDue': 'Taak verloopt',
'settings.notifyVacayInvite': 'Vacay-fusieuitnodigingen',
'settings.notifyPhotosShared': 'Gedeelde foto\'s (Immich)',
'settings.notifyCollabMessage': 'Chatberichten (Collab)',
'settings.notifyPackingTagged': 'Paklijst: toewijzingen',
'settings.notifyWebhook': 'Webhook-meldingen',
'settings.notificationsDisabled': 'Meldingen zijn niet geconfigureerd. Vraag een beheerder om e-mail- of webhookmeldingen in te schakelen.',
'settings.notificationsActive': 'Actief kanaal',
'settings.notificationsManagedByAdmin': 'Meldingsgebeurtenissen worden geconfigureerd door je beheerder.',
'admin.notifications.title': 'Meldingen',
'admin.notifications.hint': 'Kies een meldingskanaal. Er kan er slechts één tegelijk actief zijn.',
'admin.notifications.none': 'Uitgeschakeld',
'admin.notifications.email': 'E-mail (SMTP)',
'admin.notifications.webhook': 'Webhook',
'admin.notifications.save': 'Meldingsinstellingen opslaan',
'admin.notifications.saved': 'Meldingsinstellingen opgeslagen',
'admin.notifications.testWebhook': 'Testwebhook verzenden',
'admin.notifications.testWebhookSuccess': 'Testwebhook succesvol verzonden',
'admin.notifications.testWebhookFailed': 'Testwebhook mislukt',
'admin.smtp.title': 'E-mail en meldingen',
'admin.smtp.hint': 'SMTP-configuratie voor het verzenden van e-mailmeldingen.',
'admin.smtp.testButton': 'Test-e-mail verzenden',
'admin.webhook.hint': 'Meldingen verzenden naar een externe webhook (Discord, Slack, enz.).',
'admin.smtp.testSuccess': 'Test-e-mail succesvol verzonden',
'admin.smtp.testFailed': 'Test-e-mail mislukt',
'dayplan.icsTooltip': 'Kalender exporteren (ICS)',
'share.linkTitle': 'Openbare link',
'share.linkHint': 'Maak een link die iedereen kan gebruiken om deze reis te bekijken zonder in te loggen. Alleen-lezen — bewerken niet mogelijk.',
'share.createLink': 'Link aanmaken',
'share.deleteLink': 'Link verwijderen',
'share.createError': 'Kon link niet aanmaken',
'common.copy': 'Kopiëren',
'common.copied': 'Gekopieerd',
'share.permMap': 'Kaart en plan',
'share.permBookings': 'Boekingen',
'share.permPacking': 'Paklijst',
'shared.expired': 'Link verlopen of ongeldig',
'shared.expiredHint': 'Deze gedeelde reislink is niet meer actief.',
'shared.readOnly': 'Alleen-lezen weergave',
'shared.tabPlan': 'Plan',
'shared.tabBookings': 'Boekingen',
'shared.tabPacking': 'Paklijst',
'shared.tabBudget': 'Budget',
'shared.tabChat': 'Chat',
'shared.days': 'dagen',
'shared.places': 'plaatsen',
'shared.other': 'Overig',
'shared.totalBudget': 'Totaal budget',
'shared.messages': 'berichten',
'shared.sharedVia': 'Gedeeld via',
'shared.confirmed': 'Bevestigd',
'shared.pending': 'In afwachting',
'share.permBudget': 'Budget',
'share.permCollab': 'Chat',
'settings.on': 'Aan',
'settings.off': 'Uit',
'settings.mcp.title': 'MCP-configuratie',
'settings.mcp.endpoint': 'MCP-eindpunt',
'settings.mcp.clientConfig': 'Clientconfiguratie',
'settings.mcp.clientConfigHint': 'Vervang <your_token> door een API-token uit de onderstaande lijst. Het pad naar npx moet mogelijk worden aangepast voor jouw systeem (bijv. C:\\PROGRA~1\\nodejs\\npx.cmd op Windows).',
'settings.mcp.clientConfigHintOAuth': 'Replace <your_client_id> and <your_client_secret> with the credentials shown in the OAuth 2.1 client you created above. mcp-remote will open your browser to complete the authorization the first time you connect. The path to npx may need to be adjusted for your system (e.g. C:\PROGRA~1\nodejs\npx.cmd on Windows).',
'settings.mcp.copy': 'Kopiëren',
'settings.mcp.copied': 'Gekopieerd!',
'settings.mcp.apiTokens': 'API-tokens',
'settings.mcp.createToken': 'Nieuw token aanmaken',
'settings.mcp.noTokens': 'Nog geen tokens. Maak er een aan om MCP-clients te verbinden.',
'settings.mcp.tokenCreatedAt': 'Aangemaakt',
'settings.mcp.tokenUsedAt': 'Gebruikt',
'settings.mcp.deleteTokenTitle': 'Token verwijderen',
'settings.mcp.deleteTokenMessage': 'Dit token werkt onmiddellijk niet meer. Elke MCP-client die het gebruikt verliest de toegang.',
'settings.mcp.modal.createTitle': 'API-token aanmaken',
'settings.mcp.modal.tokenName': 'Tokennaam',
'settings.mcp.modal.tokenNamePlaceholder': 'bijv. Claude Desktop, Werklaptop',
'settings.mcp.modal.creating': 'Aanmaken…',
'settings.mcp.modal.create': 'Token aanmaken',
'settings.mcp.modal.createdTitle': 'Token aangemaakt',
'settings.mcp.modal.createdWarning': 'Dit token wordt slechts één keer getoond. Kopieer en bewaar het nu — het kan niet worden hersteld.',
'settings.mcp.modal.done': 'Klaar',
'settings.mcp.toast.created': 'Token aangemaakt',
'settings.mcp.toast.createError': 'Token aanmaken mislukt',
'settings.mcp.toast.deleted': 'Token verwijderd',
'settings.mcp.toast.deleteError': 'Token verwijderen mislukt',
'settings.mcp.apiTokensDeprecated': 'API-tokens zijn verouderd en worden in een toekomstige versie verwijderd. Gebruik OAuth 2.1-clients in plaats daarvan.',
'settings.oauth.clients': 'OAuth 2.1-clients',
'settings.oauth.clientsHint': 'Registreer OAuth 2.1-clients zodat externe MCP-toepassingen (Claude Web, Cursor, enz.) verbinding kunnen maken zonder statische tokens.',
'settings.oauth.createClient': 'Nieuwe client',
'settings.oauth.noClients': 'Geen OAuth-clients geregistreerd.',
'settings.oauth.clientId': 'Client-ID',
'settings.oauth.clientSecret': 'Clientgeheim',
'settings.oauth.deleteClient': 'Client verwijderen',
'settings.oauth.deleteClientMessage': 'Deze client en alle actieve sessies worden permanent verwijderd. Elke toepassing die deze client gebruikt, verliest onmiddellijk de toegang.',
'settings.oauth.rotateSecret': 'Geheim vernieuwen',
'settings.oauth.rotateSecretMessage': 'Er wordt een nieuw clientgeheim gegenereerd en alle bestaande sessies worden direct ongeldig. Werk uw toepassing bij voordat u dit venster sluit.',
'settings.oauth.rotateSecretConfirm': 'Vernieuwen',
'settings.oauth.rotateSecretConfirming': 'Vernieuwen…',
'settings.oauth.rotateSecretDoneTitle': 'Nieuw geheim gegenereerd',
'settings.oauth.rotateSecretDoneWarning': 'Dit geheim wordt slechts eenmalig getoond. Kopieer het nu en werk uw toepassing bij — alle vorige sessies zijn ongeldig gemaakt.',
'settings.oauth.activeSessions': 'Actieve OAuth-sessies',
'settings.oauth.sessionScopes': 'Rechten',
'settings.oauth.sessionExpires': 'Verloopt',
'settings.oauth.revoke': 'Intrekken',
'settings.oauth.revokeSession': 'Sessie intrekken',
'settings.oauth.revokeSessionMessage': 'Dit trekt onmiddellijk de toegang voor deze OAuth-sessie in.',
'settings.oauth.modal.createTitle': 'OAuth-client registreren',
'settings.oauth.modal.presets': 'Snelle instellingen',
'settings.oauth.modal.clientName': 'Toepassingsnaam',
'settings.oauth.modal.clientNamePlaceholder': 'bijv. Claude Web, Mijn MCP-app',
'settings.oauth.modal.redirectUris': 'Redirect-URI\'s',
'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth',
'settings.oauth.modal.redirectUrisHint': 'Eén URI per regel. HTTPS vereist (localhost uitgezonderd). Exacte overeenkomst vereist.',
'settings.oauth.modal.scopes': 'Toegestane rechten',
'settings.oauth.modal.scopesHint': 'list_trips en get_trip_summary zijn altijd beschikbaar — geen recht vereist. Ze helpen de AI trip-ID\'s te ontdekken.',
'settings.oauth.modal.selectAll': 'Alles selecteren',
'settings.oauth.modal.deselectAll': 'Alles deselecteren',
'settings.oauth.modal.creating': 'Registreren…',
'settings.oauth.modal.create': 'Client registreren',
'settings.oauth.modal.createdTitle': 'Client geregistreerd',
'settings.oauth.modal.createdWarning': 'Het clientgeheim wordt slechts eenmalig getoond. Kopieer het nu — het kan niet worden hersteld.',
'settings.oauth.toast.createError': 'OAuth-client kon niet worden geregistreerd',
'settings.oauth.toast.deleted': 'OAuth-client verwijderd',
'settings.oauth.toast.deleteError': 'OAuth-client kon niet worden verwijderd',
'settings.oauth.toast.revoked': 'Sessie ingetrokken',
'settings.oauth.toast.revokeError': 'Sessie kon niet worden ingetrokken',
'settings.oauth.toast.rotateError': 'Clientgeheim kon niet worden vernieuwd',
'settings.account': 'Account',
'settings.about': 'Over',
'settings.about.reportBug': 'Bug melden',
'settings.about.reportBugHint': 'Probleem gevonden? Laat het ons weten',
'settings.about.featureRequest': 'Feature aanvragen',
'settings.about.featureRequestHint': 'Stel een nieuwe functie voor',
'settings.about.wikiHint': 'Documentatie en handleidingen',
'settings.about.supporters.badge': 'Maandelijkse Steuners',
'settings.about.supporters.title': 'Reisgezelschap voor TREK',
'settings.about.supporters.subtitle': 'Terwijl jij je volgende route plant, plannen deze mensen mee aan de toekomst van TREK. Hun maandelijkse bijdrage gaat rechtstreeks naar ontwikkeling en echte uren — zodat TREK Open Source blijft.',
'settings.about.supporters.since': 'steuner sinds {date}',
'settings.about.supporters.tierEmpty': 'Wees de eerste',
'settings.about.supporter.tier.noReturnTicket': 'No Return Ticket',
'settings.about.supporter.tier.lostLuggageVip': 'Lost Luggage VIP',
'settings.about.supporter.tier.businessClassDreamer': 'Business Class Dreamer',
'settings.about.supporter.tier.budgetTraveller': 'Budget Traveller',
'settings.about.supporter.tier.hostelBunkmate': 'Hostel Bunkmate',
'settings.about.description': 'TREK is een zelf-gehoste reisplanner die je helpt je reizen te organiseren van het eerste idee tot de laatste herinnering. Dagplanning, budget, paklijsten, foto\'s en nog veel meer — alles op één plek, op je eigen server.',
'settings.about.madeWith': 'Gemaakt met',
'settings.about.madeBy': 'door Maurice en een groeiende open-source community.',
'settings.username': 'Gebruikersnaam',
'settings.email': 'E-mail',
'settings.role': 'Rol',
'settings.roleAdmin': 'Beheerder',
'settings.oidcLinked': 'Gekoppeld met',
'settings.changePassword': 'Wachtwoord wijzigen',
'settings.mustChangePassword': 'U moet uw wachtwoord wijzigen voordat u kunt doorgaan. Stel hieronder een nieuw wachtwoord in.',
'settings.currentPassword': 'Huidig wachtwoord',
'settings.currentPasswordRequired': 'Huidig wachtwoord is verplicht',
'settings.newPassword': 'Nieuw wachtwoord',
'settings.confirmPassword': 'Bevestig nieuw wachtwoord',
'settings.updatePassword': 'Wachtwoord bijwerken',
'settings.passwordRequired': 'Voer het huidige en nieuwe wachtwoord in',
'settings.passwordTooShort': 'Wachtwoord moet minimaal 8 tekens bevatten',
'settings.passwordMismatch': 'Wachtwoorden komen niet overeen',
'settings.passwordWeak': 'Wachtwoord moet hoofdletters, kleine letters, een cijfer en een speciaal teken bevatten',
'settings.passwordChanged': 'Wachtwoord succesvol gewijzigd',
'settings.deleteAccount': 'Account verwijderen',
'settings.deleteAccountTitle': 'Account verwijderen?',
'settings.deleteAccountWarning': 'Je account en al je reizen, plaatsen en bestanden worden permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt.',
'settings.deleteAccountConfirm': 'Permanent verwijderen',
'settings.deleteBlockedTitle': 'Verwijderen niet mogelijk',
'settings.deleteBlockedMessage': 'Je bent de enige beheerder. Maak eerst een andere gebruiker beheerder voordat je je account verwijdert.',
'settings.roleUser': 'Gebruiker',
'settings.saveProfile': 'Profiel opslaan',
'settings.mfa.title': 'Tweefactorauthenticatie (2FA)',
'settings.mfa.description': 'Voegt een tweede stap toe bij het inloggen. Gebruik een authenticator-app (Google Authenticator, Authy, etc.).',
'settings.mfa.requiredByPolicy': 'Je beheerder vereist tweestapsverificatie. Stel hieronder een authenticator-app in voordat je verdergaat.',
'settings.mfa.backupTitle': 'Back-upcodes',
'settings.mfa.backupDescription': 'Gebruik deze eenmalige codes als je geen toegang meer hebt tot je authenticator-app.',
'settings.mfa.backupWarning': 'Sla deze codes nu op. Elke code kan maar een keer worden gebruikt.',
'settings.mfa.backupCopy': 'Codes kopiëren',
'settings.mfa.backupDownload': 'TXT downloaden',
'settings.mfa.backupPrint': 'Afdrukken / PDF',
'settings.mfa.backupCopied': 'Back-upcodes gekopieerd',
'settings.mfa.enabled': '2FA is ingeschakeld op je account.',
'settings.mfa.disabled': '2FA is niet ingeschakeld.',
'settings.mfa.setup': 'Authenticator instellen',
'settings.mfa.scanQr': 'Scan deze QR-code met je app of voer de sleutel handmatig in.',
'settings.mfa.secretLabel': 'Geheime sleutel (handmatige invoer)',
'settings.mfa.codePlaceholder': '6-cijferige code',
'settings.mfa.enable': '2FA inschakelen',
'settings.mfa.cancelSetup': 'Annuleren',
'settings.mfa.disableTitle': '2FA uitschakelen',
'settings.mfa.disableHint': 'Voer je wachtwoord en een huidige code van je authenticator in.',
'settings.mfa.disable': '2FA uitschakelen',
'settings.mfa.toastEnabled': 'Tweefactorauthenticatie ingeschakeld',
'settings.mfa.toastDisabled': 'Tweefactorauthenticatie uitgeschakeld',
'settings.mfa.demoBlocked': 'Niet beschikbaar in demomodus',
'settings.toast.mapSaved': 'Kaartinstellingen opgeslagen',
'settings.toast.keysSaved': 'API-sleutels opgeslagen',
'settings.toast.displaySaved': 'Weergave-instellingen opgeslagen',
'settings.toast.profileSaved': 'Profiel opgeslagen',
'settings.uploadAvatar': 'Profielfoto uploaden',
'settings.removeAvatar': 'Profielfoto verwijderen',
'settings.avatarUploaded': 'Profielfoto bijgewerkt',
'settings.avatarRemoved': 'Profielfoto verwijderd',
'settings.avatarError': 'Uploaden mislukt',
// Login
'login.error': 'Inloggen mislukt. Controleer je inloggegevens.',
'login.tagline': 'Jouw reizen.\nJouw plan.',
'login.description': 'Plan reizen samen met interactieve kaarten, budgetten en realtime synchronisatie.',
'login.features.maps': 'Interactieve kaarten',
'login.features.mapsDesc': 'Google Places, routes en clustering',
'login.features.realtime': 'Realtime synchronisatie',
'login.features.realtimeDesc': 'Plan samen via WebSocket',
'login.features.budget': 'Budgetbeheer',
'login.features.budgetDesc': 'Categorieën, grafieken en kosten per persoon',
'login.features.collab': 'Samenwerking',
'login.features.collabDesc': 'Meerdere gebruikers met gedeelde reizen',
'login.features.packing': 'Paklijsten',
'login.features.packingDesc': 'Categorieën, voortgang en suggesties',
'login.features.bookings': 'Reserveringen',
'login.features.bookingsDesc': 'Vluchten, hotels, restaurants en meer',
'login.features.files': 'Documenten',
'login.features.filesDesc': 'Upload en beheer documenten',
'login.features.routes': 'Slimme routes',
'login.features.routesDesc': 'Automatisch optimaliseren en exporteren naar Google Maps',
'login.selfHosted': 'Zelf gehost · Open Source · Jouw gegevens blijven van jou',
'login.title': 'Inloggen',
'login.subtitle': 'Welkom terug',
'login.signingIn': 'Inloggen…',
'login.signIn': 'Inloggen',
'login.createAdmin': 'Beheerdersaccount aanmaken',
'login.createAdminHint': 'Stel het eerste beheerdersaccount in voor TREK.',
'login.setNewPassword': 'Nieuw wachtwoord instellen',
'login.setNewPasswordHint': 'U moet uw wachtwoord wijzigen voordat u verder kunt gaan.',
'login.createAccount': 'Account aanmaken',
'login.createAccountHint': 'Registreer een nieuw account.',
'login.creating': 'Aanmaken…',
'login.noAccount': 'Nog geen account?',
'login.hasAccount': 'Heb je al een account?',
'login.register': 'Registreren',
'login.emailPlaceholder': 'jouw@email.com',
'login.username': 'Gebruikersnaam',
'login.oidc.registrationDisabled': 'Registratie is uitgeschakeld. Neem contact op met je beheerder.',
'login.oidc.noEmail': 'Geen e-mailadres ontvangen van de provider.',
'login.mfaTitle': 'Tweefactorauthenticatie',
'login.mfaSubtitle': 'Voer de 6-cijferige code van je authenticator-app in.',
'login.mfaCodeLabel': 'Verificatiecode',
'login.mfaCodeRequired': 'Voer de code van je authenticator-app in.',
'login.mfaHint': 'Open Google Authenticator, Authy of een andere TOTP-app.',
'login.mfaBack': '← Terug naar inloggen',
'login.mfaVerify': 'Verifiëren',
'login.invalidInviteLink': 'Ongeldige of verlopen uitnodigingslink',
'login.oidcFailed': 'OIDC-aanmelding mislukt',
'login.usernameRequired': 'Gebruikersnaam is vereist',
'login.passwordMinLength': 'Wachtwoord moet minimaal 8 tekens bevatten',
'login.forgotPassword': 'Wachtwoord vergeten?',
'login.forgotPasswordTitle': 'Wachtwoord resetten',
'login.forgotPasswordBody': 'Voer het e-mailadres van je account in. Als er een account bestaat, sturen we een resetlink.',
'login.forgotPasswordSubmit': 'Resetlink verzenden',
'login.forgotPasswordSentTitle': 'Controleer je e-mail',
'login.forgotPasswordSentBody': 'Als er een account bestaat met dit adres, is de resetlink onderweg. Hij verloopt over 60 minuten.',
'login.forgotPasswordSmtpHintOff': 'Let op: de beheerder heeft SMTP niet ingesteld. De resetlink wordt naar de serverconsole geschreven in plaats van via e-mail verzonden.',
'login.backToLogin': 'Terug naar inloggen',
'login.newPassword': 'Nieuw wachtwoord',
'login.confirmPassword': 'Nieuw wachtwoord bevestigen',
'login.passwordsDontMatch': 'Wachtwoorden komen niet overeen',
'login.mfaCode': '2FA-code',
'login.resetPasswordTitle': 'Nieuw wachtwoord instellen',
'login.resetPasswordBody': 'Kies een sterk wachtwoord dat je hier nog niet hebt gebruikt. Minimaal 8 tekens.',
'login.resetPasswordMfaBody': 'Voer je 2FA-code of een back-upcode in om de reset te voltooien.',
'login.resetPasswordSubmit': 'Wachtwoord resetten',
'login.resetPasswordVerify': 'Verifiëren en resetten',
'login.resetPasswordSuccessTitle': 'Wachtwoord bijgewerkt',
'login.resetPasswordSuccessBody': 'Je kunt nu inloggen met je nieuwe wachtwoord.',
'login.resetPasswordInvalidLink': 'Ongeldige resetlink',
'login.resetPasswordInvalidLinkBody': 'Deze link ontbreekt of is ongeldig. Vraag een nieuwe aan om door te gaan.',
'login.resetPasswordFailed': 'Resetten mislukt. De link is mogelijk verlopen.',
'login.oidc.tokenFailed': 'Authenticatie mislukt.',
'login.oidc.invalidState': 'Ongeldige sessie. Probeer het opnieuw.',
'login.demoFailed': 'Demo-login mislukt',
'login.oidcSignIn': 'Inloggen met {name}',
'login.oidcOnly': 'Wachtwoordauthenticatie is uitgeschakeld. Log in via je SSO-provider.',
'login.oidcLoggedOut': 'Je bent uitgelogd. Log opnieuw in via je SSO-provider.',
'login.demoHint': 'Probeer de demo — geen registratie nodig',
// Register
'register.passwordMismatch': 'Wachtwoorden komen niet overeen',
'register.passwordTooShort': 'Wachtwoord moet minimaal 8 tekens bevatten',
'register.failed': 'Registratie mislukt',
'register.getStarted': 'Aan de slag',
'register.subtitle': 'Maak een account aan en begin met het plannen van je droomreizen.',
'register.feature1': 'Onbeperkte reisplannen',
'register.feature2': 'Interactieve kaartweergave',
'register.feature3': 'Beheer plaatsen en categorieën',
'register.feature4': 'Houd reserveringen bij',
'register.feature5': 'Maak paklijsten',
'register.feature6': 'Bewaar foto\'s en bestanden',
'register.createAccount': 'Account aanmaken',
'register.startPlanning': 'Begin met het plannen van je reis',
'register.minChars': 'Min. 6 tekens',
'register.confirmPassword': 'Bevestig wachtwoord',
'register.repeatPassword': 'Herhaal wachtwoord',
'register.registering': 'Registreren...',
'register.register': 'Registreren',
'register.hasAccount': 'Heb je al een account?',
'register.signIn': 'Inloggen',
// Admin
'admin.title': 'Beheer',
'admin.subtitle': 'Gebruikersbeheer en systeeminstellingen',
'admin.tabs.users': 'Gebruikers',
'admin.tabs.categories': 'Categorieën',
'admin.tabs.backup': 'Back-up',
'admin.tabs.audit': 'Audit',
'admin.stats.users': 'Gebruikers',
'admin.stats.trips': 'Reizen',
'admin.stats.places': 'Plaatsen',
'admin.stats.photos': 'Foto\'s',
'admin.stats.files': 'Bestanden',
'admin.table.user': 'Gebruiker',
'admin.table.email': 'E-mail',
'admin.table.role': 'Rol',
'admin.table.created': 'Aangemaakt',
'admin.table.lastLogin': 'Laatste login',
'admin.table.actions': 'Acties',
'admin.you': '(Jij)',
'admin.editUser': 'Gebruiker bewerken',
'admin.newPassword': 'Nieuw wachtwoord',
'admin.newPasswordHint': 'Laat leeg om het huidige wachtwoord te behouden',
'admin.deleteUser': 'Gebruiker "{name}" verwijderen? Alle reizen worden permanent verwijderd.',
'admin.deleteUserTitle': 'Gebruiker verwijderen',
'admin.newPasswordPlaceholder': 'Nieuw wachtwoord invoeren…',
'admin.toast.loadError': 'Beheergegevens laden mislukt',
'admin.toast.userUpdated': 'Gebruiker bijgewerkt',
'admin.toast.updateError': 'Bijwerken mislukt',
'admin.toast.userDeleted': 'Gebruiker verwijderd',
'admin.toast.deleteError': 'Verwijderen mislukt',
'admin.toast.cannotDeleteSelf': 'Je kunt je eigen account niet verwijderen',
'admin.toast.userCreated': 'Gebruiker aangemaakt',
'admin.toast.createError': 'Gebruiker aanmaken mislukt',
'admin.toast.fieldsRequired': 'Gebruikersnaam, e-mail en wachtwoord zijn verplicht',
'admin.createUser': 'Gebruiker aanmaken',
'admin.invite.title': 'Uitnodigingslinks',
'admin.invite.subtitle': 'Eenmalige registratielinks aanmaken',
'admin.invite.create': 'Link aanmaken',
'admin.invite.createAndCopy': 'Aanmaken en kopiëren',
'admin.invite.empty': 'Nog geen uitnodigingslinks aangemaakt',
'admin.invite.maxUses': 'Max. gebruik',
'admin.invite.expiry': 'Verloopt na',
'admin.invite.uses': 'gebruikt',
'admin.invite.expiresAt': 'verloopt op',
'admin.invite.createdBy': 'door',
'admin.invite.active': 'Actief',
'admin.invite.expired': 'Verlopen',
'admin.invite.usedUp': 'Opgebruikt',
'admin.invite.copied': 'Uitnodigingslink gekopieerd',
'admin.invite.copyLink': 'Link kopiëren',
'admin.invite.deleted': 'Uitnodigingslink verwijderd',
'admin.invite.createError': 'Fout bij aanmaken van link',
'admin.invite.deleteError': 'Fout bij verwijderen van link',
'admin.tabs.settings': 'Instellingen',
'admin.allowRegistration': 'Registratie toestaan',
'admin.allowRegistrationHint': 'Nieuwe gebruikers kunnen zichzelf registreren',
'admin.authMethods': 'Authentication Methods',
'admin.passwordLogin': 'Password Login',
'admin.passwordLoginHint': 'Allow users to sign in with email and password',
'admin.passwordRegistration': 'Password Registration',
'admin.passwordRegistrationHint': 'Allow new users to register with email and password',
'admin.oidcLogin': 'SSO Login',
'admin.oidcLoginHint': 'Allow users to sign in with SSO',
'admin.oidcRegistration': 'SSO Auto-Provisioning',
'admin.oidcRegistrationHint': 'Automatically create accounts for new SSO users',
'admin.envOverrideHint': 'Password login settings are controlled by the OIDC_ONLY environment variable and cannot be changed here.',
'admin.lockoutWarning': 'At least one login method must remain enabled',
'admin.requireMfa': 'Tweestapsverificatie (2FA) verplicht stellen',
'admin.requireMfaHint': 'Gebruikers zonder 2FA moeten de installatie in Instellingen voltooien voordat ze de app kunnen gebruiken.',
'admin.apiKeys': 'API-sleutels',
'admin.apiKeysHint': 'Optioneel. Schakelt uitgebreide plaatsgegevens in zoals foto\'s en weer.',
'admin.mapsKey': 'Google Maps API-sleutel',
'admin.mapsKeyHint': 'Vereist voor het zoeken van plaatsen. Verkrijgbaar op console.cloud.google.com',
'admin.mapsKeyHintLong': 'Zonder API-sleutel wordt OpenStreetMap gebruikt voor het zoeken van plaatsen. Met een Google API-sleutel kunnen ook foto\'s, beoordelingen en openingstijden worden geladen. Verkrijgbaar op console.cloud.google.com.',
'admin.recommended': 'Aanbevolen',
'admin.weatherKey': 'OpenWeatherMap API-sleutel',
'admin.weatherKeyHint': 'Voor weergegevens. Gratis op openweathermap.org',
'admin.validateKey': 'Testen',
'admin.keyValid': 'Verbonden',
'admin.keyInvalid': 'Ongeldig',
'admin.keySaved': 'API-sleutels opgeslagen',
'admin.oidcTitle': 'Single Sign-On (OIDC)',
'admin.oidcSubtitle': 'Sta inloggen toe via externe providers zoals Google, Apple, Authentik of Keycloak.',
'admin.oidcDisplayName': 'Weergavenaam',
'admin.oidcIssuer': 'Issuer-URL',
'admin.oidcIssuerHint': 'De OpenID Connect Issuer-URL van de provider. Bijv. https://accounts.google.com',
'admin.oidcSaved': 'OIDC-configuratie opgeslagen',
'admin.oidcOnlyMode': 'Wachtwoordauthenticatie uitschakelen',
'admin.oidcOnlyModeHint': 'Indien ingeschakeld, is alleen SSO-login toegestaan. Inloggen en registreren met wachtwoord worden geblokkeerd.',
// File Types
'admin.fileTypes': 'Toegestane bestandstypen',
'admin.fileTypesHint': 'Configureer welke bestandstypen gebruikers kunnen uploaden.',
'admin.fileTypesFormat': 'Kommagescheiden extensies (bijv. jpg,png,pdf,doc). Gebruik * om alle typen toe te staan.',
'admin.fileTypesSaved': 'Bestandstype-instellingen opgeslagen',
'admin.placesPhotos.title': "Plaatsfoto's",
'admin.placesPhotos.subtitle': "Haalt foto's op via de Google Places API. Schakel uit om API-quota te besparen. Wikimedia-foto's worden niet beïnvloed.",
'admin.placesAutocomplete.title': 'Plaatsautocomplete',
'admin.placesAutocomplete.subtitle': 'Gebruikt de Google Places API voor zoeksuggesties. Schakel uit om API-quota te besparen.',
'admin.placesDetails.title': 'Plaatsdetails',
'admin.placesDetails.subtitle': 'Haalt gedetailleerde plaatsinformatie (openingstijden, beoordeling, website) op via de Google Places API. Schakel uit om API-quota te besparen.',
'admin.bagTracking.title': 'Bagagetracking',
'admin.bagTracking.subtitle': 'Gewicht en bagagetoewijzing inschakelen voor paklijstitems',
'admin.collab.chat.title': 'Chat',
'admin.collab.chat.subtitle': 'Realtime berichten voor reissamenwerking',
'admin.collab.notes.title': 'Notities',
'admin.collab.notes.subtitle': 'Gedeelde notities en documenten',
'admin.collab.polls.title': 'Peilingen',
'admin.collab.polls.subtitle': 'Groepspeilingen en stemmen',
'admin.collab.whatsnext.title': 'Wat nu',
'admin.collab.whatsnext.subtitle': 'Activiteitssuggesties en volgende stappen',
'admin.tabs.config': 'Personalisatie',
'admin.tabs.defaults': 'Standaardinstellingen',
'admin.defaultSettings.title': 'Standaard gebruikersinstellingen',
'admin.defaultSettings.description': 'Stel instantiebrede standaardwaarden in. Gebruikers die een instelling niet hebben gewijzigd, zien deze waarden. Hun eigen wijzigingen hebben altijd voorrang.',
'admin.defaultSettings.saved': 'Standaard opgeslagen',
'admin.defaultSettings.reset': 'Terugzetten naar ingebouwde standaard',
'admin.defaultSettings.resetToBuiltIn': 'terugzetten',
'admin.tabs.templates': 'Paksjablonen',
'admin.packingTemplates.title': 'Paksjablonen',
'admin.packingTemplates.subtitle': 'Herbruikbare paklijsten maken voor je reizen',
'admin.packingTemplates.create': 'Nieuw sjabloon',
'admin.packingTemplates.namePlaceholder': 'Sjabloonnaam (bijv. Strandvakantie)',
'admin.packingTemplates.empty': 'Nog geen sjablonen aangemaakt',
'admin.packingTemplates.items': 'items',
'admin.packingTemplates.categories': 'categorieën',
'admin.packingTemplates.itemName': 'Itemnaam',
'admin.packingTemplates.itemCategory': 'Categorie',
'admin.packingTemplates.categoryName': 'Categorienaam (bijv. Kleding)',
'admin.packingTemplates.addCategory': 'Categorie toevoegen',
'admin.packingTemplates.created': 'Sjabloon aangemaakt',
'admin.packingTemplates.deleted': 'Sjabloon verwijderd',
'admin.packingTemplates.loadError': 'Fout bij laden van sjablonen',
'admin.packingTemplates.createError': 'Fout bij aanmaken van sjabloon',
'admin.packingTemplates.deleteError': 'Fout bij verwijderen van sjabloon',
'admin.packingTemplates.saveError': 'Fout bij opslaan',
// Addons
'admin.tabs.addons': 'Add-ons',
'admin.addons.title': 'Add-ons',
'admin.addons.subtitle': 'Schakel functies in of uit om je TREK-ervaring aan te passen.',
'admin.addons.catalog.memories.name': 'Foto\'s (Immich)',
'admin.addons.catalog.memories.description': 'Deel reisfoto\'s via je Immich-instantie',
'admin.addons.catalog.mcp.name': 'MCP',
'admin.addons.catalog.mcp.description': 'Model Context Protocol voor AI-assistent integratie',
'admin.addons.catalog.packing.name': 'Lijsten',
'admin.addons.catalog.packing.description': 'Paklijsten en to-dotaken voor je reizen',
'admin.addons.catalog.budget.name': 'Budget',
'admin.addons.catalog.budget.description': 'Houd uitgaven bij en plan je reisbudget',
'admin.addons.catalog.documents.name': 'Documenten',
'admin.addons.catalog.documents.description': 'Bewaar en beheer reisdocumenten',
'admin.addons.catalog.vacay.name': 'Vakantie',
'admin.addons.catalog.vacay.description': 'Persoonlijke vakantieplanner met kalenderweergave',
'admin.addons.catalog.atlas.name': 'Atlas',
'admin.addons.catalog.atlas.description': 'Wereldkaart met bezochte landen en reisstatistieken',
'admin.addons.catalog.collab.name': 'Samenwerking',
'admin.addons.catalog.collab.description': 'Realtime notities, polls en chat voor het plannen van reizen',
'admin.addons.subtitleBefore': 'Schakel functies in of uit om je ',
'admin.addons.subtitleAfter': '-ervaring aan te passen.',
'admin.addons.enabled': 'Ingeschakeld',
'admin.addons.disabled': 'Uitgeschakeld',
'admin.addons.type.trip': 'Reis',
'admin.addons.type.global': 'Globaal',
'admin.addons.type.integration': 'Integratie',
'admin.addons.tripHint': 'Beschikbaar als tabblad binnen elke reis',
'admin.addons.globalHint': 'Beschikbaar als zelfstandig onderdeel in de hoofdnavigatie',
'admin.addons.integrationHint': 'Backenddiensten en API-integraties zonder eigen pagina',
'admin.addons.toast.updated': 'Add-on bijgewerkt',
'admin.addons.toast.error': 'Add-on bijwerken mislukt',
'admin.addons.noAddons': 'Geen add-ons beschikbaar',
// Weather info
'admin.weather.title': 'Weergegevens',
'admin.weather.badge': 'Sinds 24 maart 2026',
'admin.weather.description': 'TREK gebruikt Open-Meteo als weerbron. Open-Meteo is een gratis, open-source weerdienst — geen API-sleutel vereist.',
'admin.weather.forecast': '16-daagse voorspelling',
'admin.weather.forecastDesc': 'Voorheen 5 dagen (OpenWeatherMap)',
'admin.weather.climate': 'Historische klimaatgegevens',
'admin.weather.climateDesc': 'Gemiddelden over de afgelopen 85 jaar voor dagen buiten de 16-daagse voorspelling',
'admin.weather.requests': '10.000 verzoeken / dag',
'admin.weather.requestsDesc': 'Gratis, geen API-sleutel vereist',
'admin.weather.locationHint': 'Het weer is gebaseerd op de eerste plaats met coördinaten op elke dag. Als er geen plaats aan een dag is toegewezen, wordt een plaats uit de lijst als referentie gebruikt.',
// MCP Tokens
'admin.tabs.mcpTokens': 'MCP-toegang',
'admin.mcpTokens.title': 'MCP-toegang',
'admin.mcpTokens.subtitle': 'OAuth-sessies en API-tokens van alle gebruikers beheren',
'admin.mcpTokens.sectionTitle': 'API-tokens',
'admin.mcpTokens.owner': 'Eigenaar',
'admin.mcpTokens.tokenName': 'Tokennaam',
'admin.mcpTokens.created': 'Aangemaakt',
'admin.mcpTokens.lastUsed': 'Laatst gebruikt',
'admin.mcpTokens.never': 'Nooit',
'admin.mcpTokens.empty': 'Er zijn nog geen MCP-tokens aangemaakt',
'admin.mcpTokens.deleteTitle': 'Token verwijderen',
'admin.mcpTokens.deleteMessage': 'Dit token wordt onmiddellijk ingetrokken. De gebruiker verliest MCP-toegang via dit token.',
'admin.mcpTokens.deleteSuccess': 'Token verwijderd',
'admin.mcpTokens.deleteError': 'Token kon niet worden verwijderd',
'admin.mcpTokens.loadError': 'Tokens konden niet worden geladen',
'admin.oauthSessions.sectionTitle': 'OAuth-sessies',
'admin.oauthSessions.clientName': 'Client',
'admin.oauthSessions.owner': 'Eigenaar',
'admin.oauthSessions.scopes': 'Rechten',
'admin.oauthSessions.created': 'Aangemaakt',
'admin.oauthSessions.empty': 'Geen actieve OAuth-sessies',
'admin.oauthSessions.revokeTitle': 'Sessie intrekken',
'admin.oauthSessions.revokeMessage': 'Deze OAuth-sessie wordt onmiddellijk ingetrokken. De client verliest MCP-toegang.',
'admin.oauthSessions.revokeSuccess': 'Sessie ingetrokken',
'admin.oauthSessions.revokeError': 'Sessie kon niet worden ingetrokken',
'admin.oauthSessions.loadError': 'OAuth-sessies konden niet worden geladen',
// GitHub
'admin.tabs.github': 'GitHub',
'admin.audit.subtitle': 'Beveiligingsgevoelige en beheerdersgebeurtenissen (back-ups, gebruikers, MFA, instellingen).',
'admin.audit.empty': 'Nog geen auditregistraties.',
'admin.audit.refresh': 'Vernieuwen',
'admin.audit.loadMore': 'Meer laden',
'admin.audit.showing': '{count} geladen · {total} totaal',
'admin.audit.col.time': 'Tijd',
'admin.audit.col.user': 'Gebruiker',
'admin.audit.col.action': 'Actie',
'admin.audit.col.resource': 'Bron',
'admin.audit.col.ip': 'IP',
'admin.audit.col.details': 'Details',
'admin.github.title': 'Release-geschiedenis',
'admin.github.subtitle': 'Laatste updates van {repo}',
'admin.github.latest': 'Nieuwste',
'admin.github.prerelease': 'Pre-release',
'admin.github.showDetails': 'Details tonen',
'admin.github.hideDetails': 'Details verbergen',
'admin.github.loadMore': 'Meer laden',
'admin.github.loading': 'Laden...',
'admin.github.support': 'Helpt mij TREK verder te ontwikkelen',
'admin.github.error': 'Releases laden mislukt',
'admin.github.by': 'door',
'admin.update.available': 'Update beschikbaar',
'admin.update.text': 'TREK {version} is beschikbaar. Je draait {current}.',
'admin.update.button': 'Bekijk op GitHub',
'admin.update.install': 'Update installeren',
'admin.update.confirmTitle': 'Update installeren?',
'admin.update.confirmText': 'TREK wordt bijgewerkt van {current} naar {version}. De server herstart automatisch.',
'admin.update.dataInfo': 'Al je gegevens (reizen, gebruikers, API-sleutels, uploads, Vacay, Atlas, budgetten) worden bewaard.',
'admin.update.warning': 'De app is kort niet beschikbaar tijdens het herstarten.',
'admin.update.confirm': 'Nu bijwerken',
'admin.update.installing': 'Bijwerken…',
'admin.update.success': 'Update geïnstalleerd! Server herstart…',
'admin.update.failed': 'Update mislukt',
'admin.update.backupHint': 'We raden aan een back-up te maken voordat je bijwerkt.',
'admin.update.backupLink': 'Naar back-up',
'admin.update.howTo': 'Hoe bij te werken',
'admin.update.dockerText': 'Je TREK-instantie draait in Docker. Om bij te werken naar {version}, voer de volgende commando\'s uit op je server:',
'admin.update.reloadHint': 'Herlaad de pagina over een paar seconden.',
// Vacay addon
'vacay.subtitle': 'Plan en beheer vakantiedagen',
'vacay.settings': 'Instellingen',
'vacay.year': 'Jaar',
'vacay.addYear': 'Volgend jaar toevoegen',
'vacay.addPrevYear': 'Vorig jaar toevoegen',
'vacay.removeYear': 'Jaar verwijderen',
'vacay.removeYearConfirm': '{year} verwijderen?',
'vacay.removeYearHint': 'Alle vakantie-invoeren en bedrijfsvakanties voor dit jaar worden permanent verwijderd.',
'vacay.remove': 'Verwijderen',
'vacay.persons': 'Personen',
'vacay.noPersons': 'Geen personen toegevoegd',
'vacay.addPerson': 'Persoon toevoegen',
'vacay.editPerson': 'Persoon bewerken',
'vacay.removePerson': 'Persoon verwijderen',
'vacay.removePersonConfirm': '{name} verwijderen?',
'vacay.removePersonHint': 'Alle vakantie-invoeren voor deze persoon worden permanent verwijderd.',
'vacay.personName': 'Naam',
'vacay.personNamePlaceholder': 'Naam invoeren',
'vacay.color': 'Kleur',
'vacay.add': 'Toevoegen',
'vacay.legend': 'Legenda',
'vacay.publicHoliday': 'Feestdag',
'vacay.companyHoliday': 'Bedrijfsvakantie',
'vacay.weekend': 'Weekend',
'vacay.modeVacation': 'Vakantie',
'vacay.modeCompany': 'Bedrijfsvakantie',
'vacay.entitlement': 'Recht',
'vacay.entitlementDays': 'Dagen',
'vacay.used': 'Gebruikt',
'vacay.remaining': 'Resterend',
'vacay.carriedOver': 'van {year}',
'vacay.blockWeekends': 'Weekenden blokkeren',
'vacay.blockWeekendsHint': 'Voorkom vakantie-invoeren op zaterdag en zondag',
'vacay.weekendDays': 'Weekenddagen',
'vacay.mon': 'Ma',
'vacay.tue': 'Di',
'vacay.wed': 'Wo',
'vacay.thu': 'Do',
'vacay.fri': 'Vr',
'vacay.sat': 'Za',
'vacay.sun': 'Zo',
'vacay.publicHolidays': 'Feestdagen',
'vacay.publicHolidaysHint': 'Markeer feestdagen in de kalender',
'vacay.selectCountry': 'Selecteer land',
'vacay.selectRegion': 'Selecteer regio (optioneel)',
'vacay.companyHolidays': 'Bedrijfsvakanties',
'vacay.companyHolidaysHint': 'Sta het markeren van bedrijfsbrede vakantiedagen toe',
'vacay.companyHolidaysNoDeduct': 'Bedrijfsvakanties worden niet afgetrokken van vakantiedagen.',
'vacay.weekStart': 'Week begint op',
'vacay.weekStartHint': 'Kies of de kalenderweek op maandag of zondag begint',
'vacay.carryOver': 'Overdracht',
'vacay.carryOverHint': 'Draag resterende vakantiedagen automatisch over naar het volgende jaar',
'vacay.sharing': 'Delen',
'vacay.sharingHint': 'Deel je vakantieplan met andere TREK-gebruikers',
'vacay.owner': 'Eigenaar',
'vacay.shareEmailPlaceholder': 'E-mail van TREK-gebruiker',
'vacay.shareSuccess': 'Plan succesvol gedeeld',
'vacay.shareError': 'Plan delen mislukt',
'vacay.dissolve': 'Fusie opheffen',
'vacay.dissolveHint': 'Kalenders weer scheiden. Je invoeren blijven behouden.',
'vacay.dissolveAction': 'Opheffen',
'vacay.dissolved': 'Kalender gescheiden',
'vacay.fusedWith': 'Gefuseerd met',
'vacay.you': 'jij',
'vacay.noData': 'Geen gegevens',
'vacay.changeColor': 'Kleur wijzigen',
'vacay.inviteUser': 'Gebruiker uitnodigen',
'vacay.inviteHint': 'Nodig een andere TREK-gebruiker uit om een gecombineerde vakantiekalender te delen.',
'vacay.selectUser': 'Selecteer gebruiker',
'vacay.sendInvite': 'Uitnodiging verzenden',
'vacay.inviteSent': 'Uitnodiging verzonden',
'vacay.inviteError': 'Uitnodiging verzenden mislukt',
'vacay.pending': 'in behandeling',
'vacay.noUsersAvailable': 'Geen gebruikers beschikbaar',
'vacay.accept': 'Accepteren',
'vacay.decline': 'Afwijzen',
'vacay.acceptFusion': 'Accepteren en fuseren',
'vacay.inviteTitle': 'Fusieverzoek',
'vacay.inviteWantsToFuse': 'wil een vakantiekalender met je delen.',
'vacay.fuseInfo1': 'Jullie zien allebei alle vakantie-invoeren in één gedeelde kalender.',
'vacay.fuseInfo2': 'Beide partijen kunnen invoeren voor elkaar aanmaken en bewerken.',
'vacay.fuseInfo3': 'Beide partijen kunnen invoeren verwijderen en vakantierechten wijzigen.',
'vacay.fuseInfo4': 'Instellingen zoals feestdagen en bedrijfsvakanties worden gedeeld.',
'vacay.fuseInfo5': 'De fusie kan op elk moment door beide partijen worden opgeheven. Je invoeren blijven behouden.',
'vacay.addCalendar': 'Kalender toevoegen',
'vacay.calendarColor': 'Kleur',
'vacay.calendarLabel': 'Label',
'vacay.noCalendars': 'Geen kalenders',
'nav.myTrips': 'Mijn reizen',
// Atlas addon
'atlas.subtitle': 'Je reisvoetafdruk over de wereld',
'atlas.countries': 'Landen',
'atlas.trips': 'Reizen',
'atlas.places': 'Plaatsen',
'atlas.days': 'Dagen',
'atlas.visitedCountries': 'Bezochte landen',
'atlas.cities': 'Steden',
'atlas.noData': 'Nog geen reisgegevens',
'atlas.noDataHint': 'Maak een reis aan en voeg plaatsen toe om je wereldkaart te zien',
'atlas.lastTrip': 'Laatste reis',
'atlas.nextTrip': 'Volgende reis',
'atlas.daysLeft': 'dagen te gaan',
'atlas.streak': 'Reeks',
'atlas.year': 'jaar',
'atlas.years': 'jaar',
'atlas.yearInRow': 'jaar op rij',
'atlas.yearsInRow': 'jaar op rij',
'atlas.tripIn': 'reis in',
'atlas.tripsIn': 'reizen in',
'atlas.since': 'sinds',
'atlas.europe': 'Europa',
'atlas.asia': 'Azië',
'atlas.northAmerica': 'N.-Amerika',
'atlas.southAmerica': 'Z.-Amerika',
'atlas.africa': 'Afrika',
'atlas.oceania': 'Oceanië',
'atlas.other': 'Overig',
'atlas.firstVisit': 'Eerste reis',
'atlas.lastVisitLabel': 'Laatste reis',
'atlas.tripSingular': 'Reis',
'atlas.tripPlural': 'Reizen',
'atlas.placeVisited': 'Bezochte plaats',
'atlas.placesVisited': 'Bezochte plaatsen',
'atlas.statsTab': 'Statistieken',
'atlas.bucketTab': 'Bucketlist',
'atlas.addBucket': 'Toevoegen aan bucket list',
'atlas.bucketNamePlaceholder': 'Plaats of bestemming...',
'atlas.bucketNotesPlaceholder': 'Notities (optioneel)',
'atlas.bucketEmpty': 'Je bucket list is leeg',
'atlas.bucketEmptyHint': 'Voeg plekken toe die je wilt bezoeken',
'atlas.unmark': 'Verwijderen',
'atlas.confirmMark': 'Dit land als bezocht markeren?',
'atlas.confirmUnmark': 'Dit land van je bezochte lijst verwijderen?',
'atlas.confirmUnmarkRegion': 'Deze regio van je bezochte lijst verwijderen?',
'atlas.markVisited': 'Markeren als bezocht',
'atlas.markVisitedHint': 'Dit land toevoegen aan je bezochte lijst',
'atlas.markRegionVisitedHint': 'Deze regio toevoegen aan je bezochte lijst',
'atlas.addToBucket': 'Aan bucket list toevoegen',
'atlas.addPoi': 'Plaats toevoegen',
'atlas.searchCountry': 'Zoek een land...',
'atlas.month': 'Maand',
'atlas.addToBucketHint': 'Opslaan als plek die je wilt bezoeken',
'atlas.bucketWhen': 'Wanneer ben je van plan te gaan?',
// Trip Planner
'trip.tabs.plan': 'Plan',
'trip.tabs.transports': 'Transport',
'trip.tabs.reservations': 'Boekingen',
'trip.tabs.reservationsShort': 'Boek',
'trip.tabs.packing': 'Paklijst',
'trip.tabs.packingShort': 'Inpakken',
'trip.tabs.lists': 'Lijsten',
'trip.tabs.listsShort': 'Lijsten',
'trip.tabs.budget': 'Budget',
'trip.tabs.files': 'Bestanden',
'trip.loading': 'Reis laden...',
'trip.loadingPhotos': 'Plaatsfoto laden...',
'trip.mobilePlan': 'Plan',
'trip.mobilePlaces': 'Plaatsen',
'trip.toast.placeUpdated': 'Plaats bijgewerkt',
'trip.toast.placeAdded': 'Plaats toegevoegd',
'trip.toast.placeDeleted': 'Plaats verwijderd',
'trip.toast.selectDay': 'Selecteer eerst een dag',
'trip.toast.assignedToDay': 'Plaats toegewezen aan dag',
'trip.toast.reorderError': 'Herordenen mislukt',
'trip.toast.reservationUpdated': 'Reservering bijgewerkt',
'trip.toast.reservationAdded': 'Reservering toegevoegd',
'trip.toast.deleted': 'Verwijderd',
'trip.confirm.deletePlace': 'Weet je zeker dat je deze plaats wilt verwijderen?',
'trip.confirm.deletePlaces': '{count} plaatsen verwijderen?',
'trip.toast.placesDeleted': '{count} plaatsen verwijderd',
// Day Plan Sidebar
'dayplan.emptyDay': 'Geen plaatsen gepland voor deze dag',
'dayplan.addNote': 'Notitie toevoegen',
'dayplan.editNote': 'Notitie bewerken',
'dayplan.noteAdd': 'Notitie toevoegen',
'dayplan.noteEdit': 'Notitie bewerken',
'dayplan.noteTitle': 'Notitie',
'dayplan.noteSubtitle': 'Dagnotitie',
'dayplan.totalCost': 'Totale kosten',
'dayplan.days': 'Dagen',
'dayplan.dayN': 'Dag {n}',
'dayplan.calculating': 'Berekenen...',
'dayplan.route': 'Route',
'dayplan.optimize': 'Optimaliseren',
'dayplan.optimized': 'Route geoptimaliseerd',
'dayplan.routeError': 'Route berekenen mislukt',
'dayplan.toast.needTwoPlaces': 'Minimaal twee plaatsen nodig voor route-optimalisatie',
'dayplan.toast.routeOptimized': 'Route geoptimaliseerd',
'dayplan.toast.noGeoPlaces': 'Geen plaatsen met coördinaten gevonden voor routeberekening',
'dayplan.confirmed': 'Bevestigd',
'dayplan.pendingRes': 'In behandeling',
'dayplan.pdf': 'PDF',
'dayplan.pdfTooltip': 'Dagplan exporteren als PDF',
'dayplan.pdfError': 'PDF-export mislukt',
'dayplan.cannotReorderTransport': 'Boekingen met een vast tijdstip kunnen niet worden verplaatst',
'dayplan.confirmRemoveTimeTitle': 'Tijd verwijderen?',
'dayplan.confirmRemoveTimeBody': 'Deze plek heeft een vast tijdstip ({time}). Verplaatsen verwijdert het tijdstip en maakt vrije sortering mogelijk.',
'dayplan.confirmRemoveTimeAction': 'Tijd verwijderen en verplaatsen',
'dayplan.cannotDropOnTimed': 'Items kunnen niet tussen tijdgebonden items worden geplaatst',
'dayplan.cannotBreakChronology': 'Dit zou de chronologische volgorde van geplande items en boekingen doorbreken',
// Places Sidebar
'places.addPlace': 'Plaats/activiteit toevoegen',
'places.importFile': 'Bestand importeren',
'places.sidebarDrop': 'Loslaten om te importeren',
'places.importFileHint': 'Importeer .gpx-, .kml- of .kmz-bestanden uit tools zoals Google My Maps, Google Earth of een GPS-tracker.',
'places.importFileDropHere': 'Klik om een bestand te selecteren of sleep het hier naartoe',
'places.importFileDropActive': 'Laat het bestand los om het te selecteren',
'places.importFileUnsupported': 'Niet-ondersteund bestandstype. Gebruik .gpx, .kml of .kmz.',
'places.importFileTooLarge': 'Bestand is te groot. Maximale uploadgrootte is {maxMb} MB.',
'places.importFileError': 'Importeren mislukt',
'places.importAllSkipped': 'Alle plaatsen waren al in de reis.',
'places.gpxImported': '{count} plaatsen geïmporteerd uit GPX',
'places.gpxImportTypes': 'Wat wil je importeren?',
'places.gpxImportWaypoints': 'Waypoints',
'places.gpxImportRoutes': 'Routes',
'places.gpxImportTracks': 'Tracks (met routegeometrie)',
'places.gpxImportNoneSelected': 'Selecteer minstens één type om te importeren.',
'places.kmlImportTypes': 'Wat wil je importeren?',
'places.kmlImportPoints': 'Punten (Placemarks)',
'places.kmlImportPaths': 'Paden (LineStrings)',
'places.kmlImportNoneSelected': 'Selecteer minstens één type.',
'places.selectionCount': '{count} geselecteerd',
'places.deleteSelected': 'Selectie verwijderen',
'places.kmlKmzImported': '{count} plaatsen geïmporteerd uit KMZ/KML',
'places.urlResolved': 'Plaats geïmporteerd van URL',
'places.importList': 'Lijst importeren',
'places.kmlKmzSummaryValues': 'Placemarks: {total} • Geïmporteerd: {created} • Overgeslagen: {skipped}',
'places.importGoogleList': 'Google Lijst',
'places.importNaverList': 'Naver Lijst',
'places.googleListHint': 'Plak een gedeelde Google Maps lijstlink om alle plaatsen te importeren.',
'places.googleListImported': '{count} plaatsen geimporteerd uit "{list}"',
'places.googleListError': 'Google Maps lijst importeren mislukt',
'places.naverListHint': 'Plak een gedeelde Naver Maps lijstlink om alle plaatsen te importeren.',
'places.naverListImported': '{count} plaatsen geimporteerd uit "{list}"',
'places.naverListError': 'Naver Maps lijst importeren mislukt',
'places.viewDetails': 'Details bekijken',
'places.assignToDay': 'Aan welke dag toevoegen?',
'places.all': 'Alle',
'places.unplanned': 'Ongepland',
'places.filterTracks': 'Tracks',
'places.search': 'Plaatsen zoeken...',
'places.allCategories': 'Alle categorieën',
'places.categoriesSelected': 'categorieën',
'places.clearFilter': 'Filter wissen',
'places.count': '{count} plaatsen',
'places.countSingular': '1 plaats',
'places.allPlanned': 'Alle plaatsen zijn gepland',
'places.noneFound': 'Geen plaatsen gevonden',
'places.editPlace': 'Plaats bewerken',
'places.formName': 'Naam',
'places.formNamePlaceholder': 'bijv. Eiffeltoren',
'places.formDescription': 'Beschrijving',
'places.formDescriptionPlaceholder': 'Korte beschrijving...',
'places.formAddress': 'Adres',
'places.formAddressPlaceholder': 'Straat, stad, land',
'places.formLat': 'Breedtegraad (bijv. 48.8566)',
'places.formLng': 'Lengtegraad (bijv. 2.3522)',
'places.formCategory': 'Categorie',
'places.noCategory': 'Geen categorie',
'places.categoryNamePlaceholder': 'Categorienaam',
'places.formTime': 'Tijd',
'places.startTime': 'Starttijd',
'places.endTime': 'Einde',
'places.endTimeBeforeStart': 'Eindtijd is vóór de starttijd',
'places.timeCollision': 'Tijdoverlap met:',
'places.formWebsite': 'Website',
'places.formNotes': 'Notities',
'places.formNotesPlaceholder': 'Persoonlijke notities...',
'places.formReservation': 'Reservering',
'places.reservationNotesPlaceholder': 'Reserveringsnotities, bevestigingsnummer...',
'places.mapsSearchPlaceholder': 'Plaatsen zoeken...',
'places.mapsSearchError': 'Zoeken naar plaatsen mislukt.',
'places.loadingDetails': 'Plaatsgegevens laden…',
'places.osmHint': 'Zoeken via OpenStreetMap (geen foto\'s, openingstijden of beoordelingen). Voeg een Google API-sleutel toe in instellingen voor volledige details.',
'places.osmActive': 'Zoeken via OpenStreetMap (geen foto\'s, beoordelingen of openingstijden). Voeg een Google API-sleutel toe in Instellingen voor uitgebreide gegevens.',
'places.categoryCreateError': 'Categorie aanmaken mislukt',
'places.nameRequired': 'Voer een naam in',
'places.saveError': 'Opslaan mislukt',
// Place Inspector
'inspector.opened': 'Openingstijden',
'inspector.closed': 'Gesloten',
'inspector.openingHours': 'Openingstijden',
'inspector.showHours': 'Openingstijden tonen',
'inspector.files': 'Bestanden',
'inspector.filesCount': '{count} bestanden',
'inspector.removeFromDay': 'Verwijderen van dag',
'inspector.remove': 'Verwijderen',
'inspector.addToDay': 'Toevoegen aan dag',
'inspector.confirmedRes': 'Bevestigde reservering',
'inspector.pendingRes': 'Reservering in behandeling',
'inspector.google': 'Openen in Google Maps',
'inspector.website': 'Website openen',
'inspector.addRes': 'Reservering',
'inspector.editRes': 'Reservering bewerken',
'inspector.participants': 'Deelnemers',
'inspector.trackStats': 'Routegegevens',
// Reservations
'reservations.title': 'Boekingen',
'reservations.empty': 'Nog geen reserveringen',
'reservations.emptyHint': 'Voeg reserveringen toe voor vluchten, hotels en meer',
'reservations.add': 'Reservering toevoegen',
'reservations.addManual': 'Handmatige boeking',
'reservations.placeHint': 'Tip: Reserveringen kun je het beste direct vanuit een plaats aanmaken om ze te koppelen aan je dagplan.',
'reservations.confirmed': 'Bevestigd',
'reservations.pending': 'In behandeling',
'reservations.summary': '{confirmed} bevestigd, {pending} in behandeling',
'reservations.fromPlan': 'Vanuit plan',
'reservations.showFiles': 'Bestanden tonen',
'reservations.editTitle': 'Reservering bewerken',
'reservations.status': 'Status',
'reservations.datetime': 'Datum en tijd',
'reservations.startTime': 'Starttijd',
'reservations.endTime': 'Eindtijd',
'reservations.date': 'Datum',
'reservations.time': 'Tijd',
'reservations.timeAlt': 'Tijd (alternatief, bijv. 19:30)',
'reservations.notes': 'Notities',
'reservations.notesPlaceholder': 'Extra notities...',
'reservations.meta.airline': 'Luchtvaartmaatschappij',
'reservations.meta.flightNumber': 'Vluchtnr.',
'reservations.meta.from': 'Van',
'reservations.meta.to': 'Naar',
'reservations.needsReview': 'Controleren',
'reservations.needsReviewHint': 'Luchthaven kon niet automatisch worden herkend — bevestig de locatie.',
'reservations.searchLocation': 'Station, haven, adres zoeken...',
'airport.searchPlaceholder': 'Luchthavencode of stad (bijv. FRA)',
'map.connections': 'Verbindingen',
'map.showConnections': 'Boekingsroutes tonen',
'map.hideConnections': 'Boekingsroutes verbergen',
'settings.bookingLabels': 'Routelabels voor boekingen',
'settings.bookingLabelsHint': 'Toon station- / luchthavennamen op de kaart. Indien uit, alleen het icoon.',
'reservations.meta.trainNumber': 'Treinnr.',
'reservations.meta.platform': 'Perron',
'reservations.meta.seat': 'Stoel',
'reservations.meta.checkIn': 'Inchecken',
'reservations.meta.checkInUntil': 'Check-in tot',
'reservations.meta.checkOut': 'Uitchecken',
'reservations.meta.linkAccommodation': 'Accommodatie',
'reservations.meta.pickAccommodation': 'Koppel aan accommodatie',
'reservations.meta.noAccommodation': 'Geen',
'reservations.meta.hotelPlace': 'Accommodatie',
'reservations.meta.pickHotel': 'Selecteer accommodatie',
'reservations.meta.fromDay': 'Van',
'reservations.meta.toDay': 'Tot',
'reservations.meta.selectDay': 'Selecteer dag',
'reservations.type.flight': 'Vlucht',
'reservations.type.hotel': 'Accommodatie',
'reservations.type.restaurant': 'Restaurant',
'reservations.type.train': 'Trein',
'reservations.type.car': 'Auto',
'reservations.type.cruise': 'Cruise',
'reservations.type.event': 'Evenement',
'reservations.type.tour': 'Rondleiding',
'reservations.type.other': 'Overig',
'reservations.confirm.delete': 'Weet je zeker dat je de reservering "{name}" wilt verwijderen?',
'reservations.confirm.deleteTitle': 'Boeking verwijderen?',
'reservations.confirm.deleteBody': '"{name}" wordt permanent verwijderd.',
'reservations.toast.updated': 'Reservering bijgewerkt',
'reservations.toast.removed': 'Reservering verwijderd',
'reservations.toast.fileUploaded': 'Bestand geüpload',
'reservations.toast.uploadError': 'Uploaden mislukt',
'reservations.newTitle': 'Nieuwe reservering',
'reservations.bookingType': 'Boekingstype',
'reservations.titleLabel': 'Titel',
'reservations.titlePlaceholder': 'bijv. Lufthansa LH123, Hotel Adlon, ...',
'reservations.locationAddress': 'Locatie / Adres',
'reservations.locationPlaceholder': 'Adres, luchthaven, hotel...',
'reservations.confirmationCode': 'Boekingscode',
'reservations.confirmationPlaceholder': 'bijv. ABC12345',
'reservations.day': 'Dag',
'reservations.noDay': 'Geen dag',
'reservations.place': 'Plaats',
'reservations.noPlace': 'Geen plaats',
'reservations.pendingSave': 'wordt opgeslagen…',
'reservations.uploading': 'Uploaden...',
'reservations.attachFile': 'Bestand bijvoegen',
'reservations.linkExisting': 'Bestaand bestand koppelen',
'reservations.toast.saveError': 'Opslaan mislukt',
'reservations.toast.updateError': 'Bijwerken mislukt',
'reservations.toast.deleteError': 'Verwijderen mislukt',
'reservations.confirm.remove': 'Reservering voor "{name}" verwijderen?',
'reservations.linkAssignment': 'Koppelen aan dagtoewijzing',
'reservations.pickAssignment': 'Selecteer een toewijzing uit je plan...',
'reservations.noAssignment': 'Geen koppeling (zelfstandig)',
'reservations.price': 'Prijs',
'reservations.budgetCategory': 'Budgetcategorie',
'reservations.budgetCategoryPlaceholder': 'bijv. Transport, Accommodatie',
'reservations.budgetCategoryAuto': 'Automatisch (op basis van boekingstype)',
'reservations.budgetHint': 'Er wordt automatisch een budgetpost aangemaakt bij het opslaan.',
'reservations.departureDate': 'Vertrek',
'reservations.arrivalDate': 'Aankomst',
'reservations.departureTime': 'Vertrektijd',
'reservations.arrivalTime': 'Aankomsttijd',
'reservations.pickupDate': 'Ophalen',
'reservations.returnDate': 'Inleveren',
'reservations.pickupTime': 'Ophaaltijd',
'reservations.returnTime': 'Inlevertijd',
'reservations.endDate': 'Einddatum',
'reservations.meta.departureTimezone': 'TZ vertrek',
'reservations.meta.arrivalTimezone': 'TZ aankomst',
'reservations.span.departure': 'Vertrek',
'reservations.span.arrival': 'Aankomst',
'reservations.span.inTransit': 'Onderweg',
'reservations.span.pickup': 'Ophalen',
'reservations.span.return': 'Inleveren',
'reservations.span.active': 'Actief',
'reservations.span.start': 'Start',
'reservations.span.end': 'Einde',
'reservations.span.ongoing': 'Lopend',
'reservations.validation.endBeforeStart': 'Einddatum/-tijd moet na de startdatum/-tijd liggen',
'reservations.addBooking': 'Boeking toevoegen',
// Budget
'budget.title': 'Budget',
'budget.exportCsv': 'CSV exporteren',
'budget.emptyTitle': 'Nog geen budget aangemaakt',
'budget.emptyText': 'Maak categorieën en invoeren aan om je reisbudget te plannen',
'budget.emptyPlaceholder': 'Categorienaam invoeren...',
'budget.createCategory': 'Categorie aanmaken',
'budget.category': 'Categorie',
'budget.categoryName': 'Categorienaam',
'budget.table.name': 'Naam',
'budget.table.total': 'Totaal',
'budget.table.persons': 'Personen',
'budget.table.days': 'Dagen',
'budget.table.perPerson': 'Per persoon',
'budget.table.perDay': 'Per dag',
'budget.table.perPersonDay': 'P. p. / dag',
'budget.table.note': 'Notitie',
'budget.table.date': 'Datum',
'budget.newEntry': 'Nieuwe invoer',
'budget.defaultEntry': 'Nieuwe invoer',
'budget.defaultCategory': 'Nieuwe categorie',
'budget.total': 'Totaal',
'budget.totalBudget': 'Totaal budget',
'budget.byCategory': 'Per categorie',
'budget.editTooltip': 'Klik om te bewerken',
'budget.linkedToReservation': 'Gekoppeld aan een reservering — bewerk de naam daar',
'budget.confirm.deleteCategory': 'Weet je zeker dat je de categorie "{name}" met {count} invoeren wilt verwijderen?',
'budget.deleteCategory': 'Categorie verwijderen',
'budget.perPerson': 'Per persoon',
'budget.paid': 'Betaald',
'budget.open': 'Openstaand',
'budget.noMembers': 'Geen leden toegewezen',
'budget.settlement': 'Afrekening',
'budget.settlementInfo': 'Klik op de avatar van een lid bij een budgetpost om deze groen te markeren — dit betekent dat diegene heeft betaald. De afrekening toont vervolgens wie wie hoeveel verschuldigd is.',
'budget.netBalances': 'Nettosaldi',
// Files
'files.title': 'Bestanden',
'files.pageTitle': 'Bestanden en documenten',
'files.subtitle': '{count} bestanden voor {trip}',
'files.download': 'Downloaden',
'files.openError': 'Bestand kon niet worden geopend',
'files.downloadPdf': 'PDF downloaden',
'files.count': '{count} bestanden',
'files.countSingular': '1 bestand',
'files.uploaded': '{count} geüpload',
'files.uploadError': 'Uploaden mislukt',
'files.dropzone': 'Sleep bestanden hierheen',
'files.dropzoneHint': 'of klik om te bladeren',
'files.allowedTypes': 'Afbeeldingen, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Max 50 MB',
'files.uploading': 'Uploaden...',
'files.filterAll': 'Alle',
'files.filterPdf': 'PDF\'s',
'files.filterImages': 'Afbeeldingen',
'files.filterDocs': 'Documenten',
'files.filterCollab': 'Collab-notities',
'files.sourceCollab': 'Uit Collab-notities',
'files.empty': 'Nog geen bestanden',
'files.emptyHint': 'Upload bestanden om ze aan je reis toe te voegen',
'files.openTab': 'Openen in nieuw tabblad',
'files.confirm.delete': 'Weet je zeker dat je dit bestand wilt verwijderen?',
'files.toast.deleted': 'Bestand verwijderd',
'files.toast.deleteError': 'Bestand verwijderen mislukt',
'files.sourcePlan': 'Dagplan',
'files.sourceBooking': 'Boeking',
'files.attach': 'Bijvoegen',
'files.pasteHint': 'Je kunt ook afbeeldingen plakken vanuit het klembord (Ctrl+V)',
'files.trash': 'Prullenbak',
'files.trashEmpty': 'Prullenbak is leeg',
'files.emptyTrash': 'Prullenbak legen',
'files.restore': 'Herstellen',
'files.star': 'Ster',
'files.unstar': 'Ster verwijderen',
'files.assign': 'Toewijzen',
'files.assignTitle': 'Bestand toewijzen',
'files.assignPlace': 'Plaats',
'files.assignBooking': 'Boeking',
'files.unassigned': 'Niet toegewezen',
'files.unlink': 'Koppeling verwijderen',
'files.toast.trashed': 'Naar prullenbak verplaatst',
'files.toast.restored': 'Bestand hersteld',
'files.toast.trashEmptied': 'Prullenbak geleegd',
'files.toast.assigned': 'Bestand toegewezen',
'files.toast.assignError': 'Toewijzing mislukt',
'files.toast.restoreError': 'Herstellen mislukt',
'files.confirm.permanentDelete': 'Dit bestand permanent verwijderen? Dit kan niet ongedaan worden gemaakt.',
'files.confirm.emptyTrash': 'Alle bestanden in de prullenbak permanent verwijderen? Dit kan niet ongedaan worden gemaakt.',
'files.noteLabel': 'Notitie',
'files.notePlaceholder': 'Notitie toevoegen...',
// Packing
'packing.title': 'Paklijst',
'packing.empty': 'Paklijst is leeg',
'packing.import': 'Importeren',
'packing.importTitle': 'Paklijst importeren',
'packing.importHint': 'Eén item per regel. Optioneel categorie en aantal gescheiden door komma, puntkomma of tab: Naam, Categorie, Aantal',
'packing.importPlaceholder': 'Tandenborstel\nZonnebrand, Hygiëne\nT-Shirts, Kleding, 5\nPaspoort, Documenten',
'packing.importCsv': 'CSV/TXT laden',
'packing.importAction': '{count} importeren',
'packing.importSuccess': '{count} items geïmporteerd',
'packing.importError': 'Import mislukt',
'packing.importEmpty': 'Geen items om te importeren',
'packing.progress': '{packed} van {total} ingepakt ({percent}%)',
'packing.clearChecked': '{count} aangevinkte verwijderen',
'packing.clearCheckedShort': '{count} verwijderen',
'packing.suggestions': 'Suggesties',
'packing.suggestionsTitle': 'Suggesties toevoegen',
'packing.allSuggested': 'Alle suggesties toegevoegd',
'packing.allPacked': 'Alles ingepakt!',
'packing.addPlaceholder': 'Nieuw item toevoegen...',
'packing.categoryPlaceholder': 'Categorie...',
'packing.filterAll': 'Alle',
'packing.filterOpen': 'Openstaand',
'packing.filterDone': 'Klaar',
'packing.emptyTitle': 'Paklijst is leeg',
'packing.emptyHint': 'Voeg items toe of gebruik de suggesties',
'packing.emptyFiltered': 'Geen items gevonden voor dit filter',
'packing.menuRename': 'Hernoemen',
'packing.menuCheckAll': 'Alles aanvinken',
'packing.menuUncheckAll': 'Alles uitvinken',
'packing.menuDeleteCat': 'Categorie verwijderen',
'packing.addItem': 'Item toevoegen',
'packing.addItemPlaceholder': 'Itemnaam...',
'packing.addCategory': 'Categorie toevoegen',
'packing.newCategoryPlaceholder': 'Categorienaam (bijv. Kleding)',
'packing.applyTemplate': 'Sjabloon toepassen',
'packing.template': 'Sjabloon',
'packing.templateApplied': '{count} items toegevoegd vanuit sjabloon',
'packing.templateError': 'Fout bij toepassen van sjabloon',
'packing.saveAsTemplate': 'Opslaan als sjabloon',
'packing.templateName': 'Sjabloonnaam',
'packing.templateSaved': 'Paklijst opgeslagen als sjabloon',
'packing.noMembers': 'Geen leden',
'packing.bags': 'Bagage',
'packing.noBag': 'Niet toegewezen',
'packing.totalWeight': 'Totaalgewicht',
'packing.bagName': 'Naam...',
'packing.addBag': 'Bagage toevoegen',
'packing.changeCategory': 'Categorie wijzigen',
'packing.confirm.clearChecked': 'Weet je zeker dat je {count} aangevinkte items wilt verwijderen?',
'packing.confirm.deleteCat': 'Weet je zeker dat je de categorie "{name}" met {count} items wilt verwijderen?',
'packing.defaultCategory': 'Overig',
'packing.toast.saveError': 'Opslaan mislukt',
'packing.toast.deleteError': 'Verwijderen mislukt',
'packing.toast.renameError': 'Hernoemen mislukt',
'packing.toast.addError': 'Toevoegen mislukt',
// Packing suggestions
'packing.suggestions.items': [
{ name: 'Paspoort', category: 'Documenten' },
{ name: 'Identiteitskaart', category: 'Documenten' },
{ name: 'Reisverzekering', category: 'Documenten' },
{ name: 'Vliegtickets', category: 'Documenten' },
{ name: 'Creditcard', category: 'Financiën' },
{ name: 'Contant geld', category: 'Financiën' },
{ name: 'Visum', category: 'Documenten' },
{ name: 'T-shirts', category: 'Kleding' },
{ name: 'Broeken', category: 'Kleding' },
{ name: 'Ondergoed', category: 'Kleding' },
{ name: 'Sokken', category: 'Kleding' },
{ name: 'Jas', category: 'Kleding' },
{ name: 'Slaapkleding', category: 'Kleding' },
{ name: 'Zwemkleding', category: 'Kleding' },
{ name: 'Regenjas', category: 'Kleding' },
{ name: 'Comfortabele schoenen', category: 'Kleding' },
{ name: 'Tandenborstel', category: 'Toiletartikelen' },
{ name: 'Tandpasta', category: 'Toiletartikelen' },
{ name: 'Shampoo', category: 'Toiletartikelen' },
{ name: 'Deodorant', category: 'Toiletartikelen' },
{ name: 'Zonnebrandcrème', category: 'Toiletartikelen' },
{ name: 'Scheermesje', category: 'Toiletartikelen' },
{ name: 'Oplader', category: 'Elektronica' },
{ name: 'Powerbank', category: 'Elektronica' },
{ name: 'Koptelefoon', category: 'Elektronica' },
{ name: 'Reisadapter', category: 'Elektronica' },
{ name: 'Camera', category: 'Elektronica' },
{ name: 'Pijnstillers', category: 'Gezondheid' },
{ name: 'Pleisters', category: 'Gezondheid' },
{ name: 'Ontsmettingsmiddel', category: 'Gezondheid' },
],
// Members / Sharing
'members.shareTrip': 'Reis delen',
'members.inviteUser': 'Gebruiker uitnodigen',
'members.selectUser': 'Selecteer gebruiker…',
'members.invite': 'Uitnodigen',
'members.allHaveAccess': 'Alle gebruikers hebben al toegang.',
'members.access': 'Toegang',
'members.person': 'persoon',
'members.persons': 'personen',
'members.you': 'jij',
'members.owner': 'Eigenaar',
'members.leaveTrip': 'Reis verlaten',
'members.removeAccess': 'Toegang verwijderen',
'members.confirmLeave': 'Reis verlaten? Je verliest de toegang.',
'members.confirmRemove': 'Toegang voor deze gebruiker verwijderen?',
'members.loadError': 'Leden laden mislukt',
'members.added': 'toegevoegd',
'members.addError': 'Toevoegen mislukt',
'members.removed': 'Lid verwijderd',
'members.removeError': 'Verwijderen mislukt',
// Categories (Admin)
'categories.title': 'Categorieën',
'categories.subtitle': 'Beheer categorieën voor plaatsen',
'categories.new': 'Nieuwe categorie',
'categories.empty': 'Nog geen categorieën',
'categories.namePlaceholder': 'Categorienaam',
'categories.icon': 'Pictogram',
'categories.color': 'Kleur',
'categories.customColor': 'Kies een aangepaste kleur',
'categories.preview': 'Voorbeeld',
'categories.defaultName': 'Categorie',
'categories.update': 'Bijwerken',
'categories.create': 'Aanmaken',
'categories.confirm.delete': 'Categorie verwijderen? Plaatsen in deze categorie worden niet verwijderd.',
'categories.toast.loadError': 'Categorieën laden mislukt',
'categories.toast.nameRequired': 'Voer een naam in',
'categories.toast.updated': 'Categorie bijgewerkt',
'categories.toast.created': 'Categorie aangemaakt',
'categories.toast.saveError': 'Opslaan mislukt',
'categories.toast.deleted': 'Categorie verwijderd',
'categories.toast.deleteError': 'Verwijderen mislukt',
// Backup (Admin)
'backup.title': 'Gegevensback-up',
'backup.subtitle': 'Database en alle geüploade bestanden',
'backup.refresh': 'Vernieuwen',
'backup.upload': 'Back-up uploaden',
'backup.uploading': 'Uploaden…',
'backup.create': 'Back-up aanmaken',
'backup.creating': 'Aanmaken…',
'backup.empty': 'Nog geen back-ups',
'backup.createFirst': 'Eerste back-up aanmaken',
'backup.download': 'Downloaden',
'backup.restore': 'Herstellen',
'backup.confirm.restore': 'Back-up "{name}" herstellen?\n\nAlle huidige gegevens worden vervangen door de back-up.',
'backup.confirm.uploadRestore': 'Back-upbestand "{name}" uploaden en herstellen?\n\nAlle huidige gegevens worden overschreven.',
'backup.confirm.delete': 'Back-up "{name}" verwijderen?',
'backup.toast.loadError': 'Back-ups laden mislukt',
'backup.toast.created': 'Back-up succesvol aangemaakt',
'backup.toast.createError': 'Back-up aanmaken mislukt',
'backup.toast.restored': 'Back-up hersteld. Pagina wordt herladen…',
'backup.toast.restoreError': 'Herstellen mislukt',
'backup.toast.uploadError': 'Uploaden mislukt',
'backup.toast.deleted': 'Back-up verwijderd',
'backup.toast.deleteError': 'Verwijderen mislukt',
'backup.toast.downloadError': 'Downloaden mislukt',
'backup.toast.settingsSaved': 'Auto-back-up-instellingen opgeslagen',
'backup.toast.settingsError': 'Instellingen opslaan mislukt',
'backup.auto.title': 'Auto-back-up',
'backup.auto.subtitle': 'Automatische back-up volgens schema',
'backup.auto.enable': 'Auto-back-up inschakelen',
'backup.auto.enableHint': 'Back-ups worden automatisch aangemaakt volgens het gekozen schema',
'backup.auto.interval': 'Interval',
'backup.auto.hour': 'Uitvoeren om',
'backup.auto.hourHint': 'Lokale servertijd ({format}-notatie)',
'backup.auto.dayOfWeek': 'Dag van de week',
'backup.auto.dayOfMonth': 'Dag van de maand',
'backup.auto.dayOfMonthHint': 'Beperkt tot 128 voor compatibiliteit met alle maanden',
'backup.auto.scheduleSummary': 'Planning',
'backup.auto.summaryDaily': 'Elke dag om {hour}:00',
'backup.auto.summaryWeekly': 'Elke {day} om {hour}:00',
'backup.auto.summaryMonthly': 'Dag {day} van elke maand om {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'Auto-back-up is geconfigureerd via Docker-omgevingsvariabelen. Pas je docker-compose.yml aan en herstart de container om deze instellingen te wijzigen.',
'backup.auto.copyEnv': 'Docker-omgevingsvariabelen kopiëren',
'backup.auto.envCopied': 'Docker-omgevingsvariabelen gekopieerd naar klembord',
'backup.auto.keepLabel': 'Oude back-ups verwijderen na',
'backup.dow.sunday': 'Zo',
'backup.dow.monday': 'Ma',
'backup.dow.tuesday': 'Di',
'backup.dow.wednesday': 'Wo',
'backup.dow.thursday': 'Do',
'backup.dow.friday': 'Vr',
'backup.dow.saturday': 'Za',
'backup.interval.hourly': 'Elk uur',
'backup.interval.daily': 'Dagelijks',
'backup.interval.weekly': 'Wekelijks',
'backup.interval.monthly': 'Maandelijks',
'backup.keep.1day': '1 dag',
'backup.keep.3days': '3 dagen',
'backup.keep.7days': '7 dagen',
'backup.keep.14days': '14 dagen',
'backup.keep.30days': '30 dagen',
'backup.keep.forever': 'Voor altijd bewaren',
// Photos
'photos.title': 'Foto\'s',
'photos.subtitle': '{count} foto\'s voor {trip}',
'photos.dropHere': 'Foto\'s hier neerzetten...',
'photos.dropHereActive': 'Foto\'s hier neerzetten',
'photos.captionForAll': 'Bijschrift (voor alle)',
'photos.captionPlaceholder': 'Optioneel bijschrift...',
'photos.addCaption': 'Bijschrift toevoegen...',
'photos.allDays': 'Alle dagen',
'photos.noPhotos': 'Nog geen foto\'s',
'photos.uploadHint': 'Upload je reisfoto\'s',
'photos.clickToSelect': 'of klik om te selecteren',
'photos.linkPlace': 'Koppel plaats',
'photos.noPlace': 'Geen plaats',
'photos.uploadN': '{n} foto(\'s) uploaden',
'photos.linkDay': 'Dag koppelen',
'photos.noDay': 'Geen dag',
'photos.dayLabel': 'Dag {number}',
'photos.photoSelected': 'Foto geselecteerd',
'photos.photosSelected': "Foto's geselecteerd",
'photos.fileTypeHint': "JPG, PNG, WebP · max. 10 MB · tot 30 foto's",
// Backup restore modal
'backup.restoreConfirmTitle': 'Back-up herstellen?',
'backup.restoreWarning': 'Alle huidige gegevens (reizen, plaatsen, gebruikers, uploads) worden permanent vervangen door de back-up. Deze actie kan niet ongedaan worden gemaakt.',
'backup.restoreTip': 'Tip: Maak een back-up van de huidige status voordat je herstelt.',
'backup.restoreConfirm': 'Ja, herstellen',
// PDF
'pdf.travelPlan': 'Reisplan',
'pdf.planned': 'Gepland',
'pdf.costLabel': 'Kosten EUR',
'pdf.preview': 'PDF-voorbeeld',
'pdf.saveAsPdf': 'Opslaan als PDF',
// Planner
'planner.places': 'Plaatsen',
'planner.bookings': 'Boekingen',
'planner.packingList': 'Paklijst',
'planner.documents': 'Documenten',
'planner.dayPlan': 'Dagplan',
'planner.reservations': 'Reserveringen',
'planner.minTwoPlaces': 'Minimaal 2 plaatsen met coördinaten nodig',
'planner.noGeoPlaces': 'Geen plaatsen met coördinaten beschikbaar',
'planner.routeCalculated': 'Route berekend',
'planner.routeCalcFailed': 'Route kon niet worden berekend',
'planner.routeError': 'Fout bij routeberekening',
'planner.icsExportFailed': 'ICS-export mislukt',
'planner.routeOptimized': 'Route geoptimaliseerd',
'planner.reservationUpdated': 'Reservering bijgewerkt',
'planner.reservationAdded': 'Reservering toegevoegd',
'planner.confirmDeleteReservation': 'Reservering verwijderen?',
'planner.reservationDeleted': 'Reservering verwijderd',
'planner.days': 'Dagen',
'planner.allPlaces': 'Alle plaatsen',
'planner.totalPlaces': '{n} plaatsen totaal',
'planner.noDaysPlanned': 'Nog geen dagen gepland',
'planner.editTrip': 'Reis bewerken \u2192',
'planner.placeOne': '1 plaats',
'planner.placeN': '{n} plaatsen',
'planner.addNote': 'Notitie toevoegen',
'planner.noEntries': 'Geen invoeren voor deze dag',
'planner.addPlace': 'Plaats/activiteit toevoegen',
'planner.addPlaceShort': '+ Plaats/activiteit toevoegen',
'planner.resPending': 'Reservering in behandeling · ',
'planner.resConfirmed': 'Reservering bevestigd · ',
'planner.notePlaceholder': 'Notitie…',
'planner.noteTimePlaceholder': 'Tijd (optioneel)',
'planner.noteExamplePlaceholder': 'bijv. S3 om 14:30 vanaf centraal station, veerboot van pier 7, lunchpauze…',
'planner.totalCost': 'Totale kosten',
'planner.searchPlaces': 'Plaatsen zoeken…',
'planner.allCategories': 'Alle categorieën',
'planner.noPlacesFound': 'Geen plaatsen gevonden',
'planner.addFirstPlace': 'Eerste plaats toevoegen',
'planner.noReservations': 'Geen reserveringen',
'planner.addFirstReservation': 'Eerste reservering toevoegen',
'planner.new': 'Nieuw',
'planner.addToDay': '+ Dag',
'planner.calculating': 'Berekenen…',
'planner.route': 'Route',
'planner.optimize': 'Optimaliseren',
'planner.openGoogleMaps': 'Openen in Google Maps',
'planner.selectDayHint': 'Selecteer een dag uit de lijst links om het dagplan te bekijken',
'planner.noPlacesForDay': 'Nog geen plaatsen voor deze dag',
'planner.addPlacesLink': 'Plaatsen toevoegen \u2192',
'planner.minTotal': 'min. totaal',
'planner.noReservation': 'Geen reservering',
'planner.removeFromDay': 'Verwijderen van dag',
'planner.addToThisDay': 'Toevoegen aan dag',
'planner.overview': 'Overzicht',
'planner.noDays': 'Geen dagen',
'planner.editTripToAddDays': 'Bewerk de reis om dagen toe te voegen',
'planner.dayCount': '{n} dagen',
'planner.clickToUnlock': 'Klik om te ontgrendelen',
'planner.keepPosition': 'Positie behouden tijdens route-optimalisatie',
'planner.dayDetails': 'Dagdetails',
'planner.dayN': 'Dag {n}',
// Dashboard Stats
'stats.countries': 'Landen',
'stats.cities': 'Steden',
'stats.trips': 'Reizen',
'stats.places': 'Plaatsen',
'stats.worldProgress': 'Wereldvoortgang',
'stats.visited': 'bezocht',
'stats.remaining': 'resterend',
'stats.visitedCountries': 'Bezochte landen',
// Day Detail Panel
'day.precipProb': 'Regenkans',
'day.precipitation': 'Neerslag',
'day.wind': 'Wind',
'day.sunrise': 'Zonsopgang',
'day.sunset': 'Zonsondergang',
'day.hourlyForecast': 'Uurlijkse voorspelling',
'day.climateHint': 'Historische gemiddelden — echte voorspelling beschikbaar binnen 16 dagen voor deze datum.',
'day.noWeather': 'Geen weergegevens beschikbaar. Voeg een plaats met coördinaten toe.',
'day.overview': 'Dagoverzicht',
'day.accommodation': 'Accommodatie',
'day.addAccommodation': 'Accommodatie toevoegen',
'day.hotelDayRange': 'Toepassen op dagen',
'day.noPlacesForHotel': 'Voeg eerst plaatsen toe aan je reis',
'day.allDays': 'Alle',
'day.checkIn': 'Inchecken',
'day.checkInUntil': 'Tot',
'day.checkOut': 'Uitchecken',
'day.confirmation': 'Bevestiging',
'day.editAccommodation': 'Accommodatie bewerken',
'day.reservations': 'Reserveringen',
// Memories / Immich
'memories.title': 'Foto\'s',
'memories.notConnected': 'Immich niet verbonden',
'memories.notConnectedHint': 'Verbind je Immich-instantie in Instellingen om je reisfoto\'s hier te zien.',
'memories.notConnectedMultipleHint': 'Verbind een van deze fotoproviders: {provider_names} in Instellingen om foto\'s aan dit reisplan toe te voegen.',
'memories.noDates': 'Voeg data toe aan je reis om foto\'s te laden.',
'memories.noPhotos': 'Geen foto\'s gevonden',
'memories.noPhotosHint': 'Geen foto\'s gevonden in Immich voor de datumreeks van deze reis.',
'memories.photosFound': 'foto\'s',
'memories.fromOthers': 'van anderen',
'memories.sharePhotos': 'Foto\'s delen',
'memories.sharing': 'Wordt gedeeld',
'memories.reviewTitle': 'Je foto\'s bekijken',
'memories.reviewHint': 'Klik op foto\'s om ze uit te sluiten van delen.',
'memories.shareCount': '{count} foto\'s delen',
'memories.providerUrl': 'Server-URL',
'memories.providerApiKey': 'API-sleutel',
'memories.providerUsername': 'Gebruikersnaam',
'memories.providerPassword': 'Wachtwoord',
'memories.providerOTP': 'MFA-code (indien ingeschakeld)',
'memories.skipSSLVerification': 'SSL-certificaatverificatie overslaan',
'memories.immichAutoUpload': 'Journey-foto\'s bij upload ook naar Immich spiegelen',
'memories.providerUrlHintSynology': 'Voeg het pad van de Photos-app toe aan de URL, bijv. https://nas:5001/photo',
'memories.testConnection': 'Verbinding testen',
'memories.testFirst': 'Test eerst de verbinding',
'memories.connected': 'Verbonden',
'memories.disconnected': 'Niet verbonden',
'memories.connectionSuccess': 'Verbonden met Immich',
'memories.connectionError': 'Kon niet verbinden met Immich',
'memories.saved': '{provider_name}-instellingen opgeslagen',
'memories.providerDisconnectedBanner': 'Je {provider_name}-verbinding is verbroken. Maak opnieuw verbinding in Instellingen om foto\'s te bekijken.',
'memories.saveError': '{provider_name}-instellingen konden niet worden opgeslagen',
'memories.saveRouteNotConfigured': 'Opslagroute is niet geconfigureerd voor deze provider',
'memories.testRouteNotConfigured': 'Testroute is niet geconfigureerd voor deze provider',
'memories.fillRequiredFields': 'Vul alle verplichte velden in',
'memories.oldest': 'Oudste eerst',
'memories.newest': 'Nieuwste eerst',
'memories.allLocations': 'Alle locaties',
'memories.addPhotos': 'Foto\'s toevoegen',
'memories.linkAlbum': 'Album koppelen',
'memories.selectAlbum': 'Immich-album selecteren',
'memories.selectAlbumMultiple': 'Album selecteren',
'memories.noAlbums': 'Geen albums gevonden',
'memories.syncAlbum': 'Album synchroniseren',
'memories.unlinkAlbum': 'Ontkoppelen',
'memories.photos': 'fotos',
'memories.selectPhotos': 'Selecteer foto\'s uit Immich',
'memories.selectPhotosMultiple': 'Foto\'s selecteren',
'memories.selectHint': 'Tik op foto\'s om ze te selecteren.',
'memories.selected': 'geselecteerd',
'memories.addSelected': '{count} foto\'s toevoegen',
'memories.alreadyAdded': 'Toegevoegd',
'memories.private': 'Privé',
'memories.stopSharing': 'Delen stoppen',
'memories.tripDates': 'Reisdata',
'memories.allPhotos': 'Alle foto\'s',
'memories.confirmShareTitle': 'Delen met reisgenoten?',
'memories.confirmShareHint': '{count} foto\'s worden zichtbaar voor alle leden van deze reis. Je kunt individuele foto\'s later privé maken.',
'memories.confirmShareButton': 'Foto\'s delen',
// Collab Addon
'collab.tabs.chat': 'Chat',
'collab.tabs.notes': 'Notities',
'collab.tabs.polls': 'Peilingen',
'collab.whatsNext.title': 'Wat komt er',
'collab.whatsNext.today': 'Vandaag',
'collab.whatsNext.tomorrow': 'Morgen',
'collab.whatsNext.empty': 'Geen komende activiteiten',
'collab.whatsNext.until': 'tot',
'collab.whatsNext.emptyHint': 'Activiteiten met tijden verschijnen hier',
'collab.chat.send': 'Verzenden',
'collab.chat.placeholder': 'Typ een bericht...',
'collab.chat.empty': 'Start het gesprek',
'collab.chat.emptyHint': 'Berichten worden gedeeld met alle reisleden',
'collab.chat.emptyDesc': 'Deel ideeën, plannen en updates met je reisgroep',
'collab.chat.today': 'Vandaag',
'collab.chat.yesterday': 'Gisteren',
'collab.chat.deletedMessage': 'heeft een bericht verwijderd',
'collab.chat.reply': 'Beantwoorden',
'collab.chat.loadMore': 'Oudere berichten laden',
'collab.chat.justNow': 'zojuist',
'collab.chat.minutesAgo': '{n} min. geleden',
'collab.chat.hoursAgo': '{n} uur geleden',
'collab.notes.title': 'Notities',
'collab.notes.new': 'Nieuwe notitie',
'collab.notes.empty': 'Nog geen notities',
'collab.notes.emptyHint': 'Begin met het vastleggen van ideeën en plannen',
'collab.notes.all': 'Alle',
'collab.notes.titlePlaceholder': 'Notitietitel',
'collab.notes.contentPlaceholder': 'Schrijf iets...',
'collab.notes.categoryPlaceholder': 'Categorie',
'collab.notes.newCategory': 'Nieuwe categorie...',
'collab.notes.category': 'Categorie',
'collab.notes.noCategory': 'Geen categorie',
'collab.notes.color': 'Kleur',
'collab.notes.save': 'Opslaan',
'collab.notes.cancel': 'Annuleren',
'collab.notes.edit': 'Bewerken',
'collab.notes.delete': 'Verwijderen',
'collab.notes.pin': 'Vastpinnen',
'collab.notes.unpin': 'Losmaken',
'collab.notes.daysAgo': '{n}d geleden',
'collab.notes.categorySettings': 'Categorieën beheren',
'collab.notes.create': 'Aanmaken',
'collab.notes.website': 'Website',
'collab.notes.websitePlaceholder': 'https://...',
'collab.notes.attachFiles': 'Bestanden bijvoegen',
'collab.notes.noCategoriesYet': 'Nog geen categorieën',
'collab.notes.emptyDesc': 'Maak een notitie om te beginnen',
'collab.polls.title': 'Peilingen',
'collab.polls.new': 'Nieuwe poll',
'collab.polls.empty': 'Nog geen polls',
'collab.polls.emptyHint': 'Stel de groep een vraag en stem samen',
'collab.polls.question': 'Vraag',
'collab.polls.questionPlaceholder': 'Wat zullen we doen?',
'collab.polls.addOption': '+ Optie toevoegen',
'collab.polls.optionPlaceholder': 'Optie {n}',
'collab.polls.create': 'Poll aanmaken',
'collab.polls.close': 'Sluiten',
'collab.polls.closed': 'Gesloten',
'collab.polls.votes': '{n} stemmen',
'collab.polls.vote': '{n} stem',
'collab.polls.multipleChoice': 'Meerkeuze',
'collab.polls.multiChoice': 'Meerkeuze',
'collab.polls.deadline': 'Deadline',
'collab.polls.option': 'Optie',
'collab.polls.options': 'Opties',
'collab.polls.delete': 'Verwijderen',
'collab.polls.closedSection': 'Gesloten',
// Permissions
'admin.tabs.permissions': 'Rechten',
'perm.title': 'Rechtinstellingen',
'perm.subtitle': 'Bepaal wie welke acties mag uitvoeren in de applicatie',
'perm.saved': 'Rechtinstellingen opgeslagen',
'perm.resetDefaults': 'Standaardwaarden herstellen',
'perm.customized': 'aangepast',
'perm.level.admin': 'Alleen beheerder',
'perm.level.tripOwner': 'Reiseigenaar',
'perm.level.tripMember': 'Reisleden',
'perm.level.everybody': 'Iedereen',
'perm.cat.trip': 'Reisbeheer',
'perm.cat.members': 'Ledenbeheer',
'perm.cat.files': 'Bestanden',
'perm.cat.content': 'Inhoud & planning',
'perm.cat.extras': 'Budget, paklijsten & samenwerking',
'perm.action.trip_create': 'Reizen aanmaken',
'perm.action.trip_edit': 'Reisdetails bewerken',
'perm.action.trip_delete': 'Reizen verwijderen',
'perm.action.trip_archive': 'Reizen archiveren / dearchiveren',
'perm.action.trip_cover_upload': 'Omslagfoto uploaden',
'perm.action.member_manage': 'Leden toevoegen / verwijderen',
'perm.action.file_upload': 'Bestanden uploaden',
'perm.action.file_edit': 'Bestandsmetadata bewerken',
'perm.action.file_delete': 'Bestanden verwijderen',
'perm.action.place_edit': 'Plaatsen toevoegen / bewerken / verwijderen',
'perm.action.day_edit': 'Dagen, notities & toewijzingen bewerken',
'perm.action.reservation_edit': 'Reserveringen beheren',
'perm.action.budget_edit': 'Budget beheren',
'perm.action.packing_edit': 'Paklijsten beheren',
'perm.action.collab_edit': 'Samenwerking (notities, polls, chat)',
'perm.action.share_manage': 'Deellinks beheren',
'perm.actionHint.trip_create': 'Wie kan nieuwe reizen aanmaken',
'perm.actionHint.trip_edit': 'Wie kan reisnaam, data, beschrijving en valuta wijzigen',
'perm.actionHint.trip_delete': 'Wie kan een reis permanent verwijderen',
'perm.actionHint.trip_archive': 'Wie kan een reis archiveren of dearchiveren',
'perm.actionHint.trip_cover_upload': 'Wie kan de omslagfoto uploaden of wijzigen',
'perm.actionHint.member_manage': 'Wie kan reisleden uitnodigen of verwijderen',
'perm.actionHint.file_upload': 'Wie kan bestanden uploaden naar een reis',
'perm.actionHint.file_edit': 'Wie kan bestandsbeschrijvingen en links bewerken',
'perm.actionHint.file_delete': 'Wie kan bestanden naar de prullenbak verplaatsen of permanent verwijderen',
'perm.actionHint.place_edit': 'Wie kan plaatsen toevoegen, bewerken of verwijderen',
'perm.actionHint.day_edit': 'Wie kan dagen, dagnotities en plaatstoewijzingen bewerken',
'perm.actionHint.reservation_edit': 'Wie kan reserveringen aanmaken, bewerken of verwijderen',
'perm.actionHint.budget_edit': 'Wie kan budgetposten aanmaken, bewerken of verwijderen',
'perm.actionHint.packing_edit': 'Wie kan pakitems en tassen beheren',
'perm.actionHint.collab_edit': 'Wie kan notities, polls aanmaken en berichten versturen',
'perm.actionHint.share_manage': 'Wie kan openbare deellinks aanmaken of verwijderen',
// Undo
'undo.button': 'Ongedaan maken',
'undo.tooltip': 'Ongedaan maken: {action}',
'undo.assignPlace': 'Locatie aan dag toegewezen',
'undo.removeAssignment': 'Locatie uit dag verwijderd',
'undo.reorder': 'Locaties hergeordend',
'undo.optimize': 'Route geoptimaliseerd',
'undo.deletePlace': 'Locatie verwijderd',
'undo.deletePlaces': 'Plaatsen verwijderd',
'undo.moveDay': 'Locatie naar andere dag verplaatst',
'undo.lock': 'Vergrendeling locatie gewijzigd',
'undo.importGpx': 'GPX-import',
'undo.importKeyholeMarkup': 'KMZ/KML-import',
'undo.importGoogleList': 'Google Maps-import',
'undo.importNaverList': 'Naver Maps-import',
// Notifications
'notifications.title': 'Meldingen',
'notifications.markAllRead': 'Alles als gelezen markeren',
'notifications.deleteAll': 'Alles verwijderen',
'notifications.showAll': 'Alle meldingen weergeven',
'notifications.empty': 'Geen meldingen',
'notifications.emptyDescription': 'Je bent helemaal bijgewerkt!',
'notifications.all': 'Alle',
'notifications.unreadOnly': 'Ongelezen',
'notifications.markRead': 'Markeren als gelezen',
'notifications.markUnread': 'Markeren als ongelezen',
'notifications.delete': 'Verwijderen',
'notifications.system': 'Systeem',
'notifications.synologySessionCleared.title': 'Synology Photos verbroken',
'notifications.synologySessionCleared.text': 'Je server of account is gewijzigd — ga naar Instellingen om je verbinding opnieuw te testen.',
'memories.error.loadAlbums': 'Albums laden mislukt',
'memories.error.linkAlbum': 'Album koppelen mislukt',
'memories.error.unlinkAlbum': 'Album ontkoppelen mislukt',
'memories.error.syncAlbum': 'Album synchroniseren mislukt',
'memories.error.loadPhotos': 'Foto\'s laden mislukt',
'memories.error.addPhotos': 'Foto\'s toevoegen mislukt',
'memories.error.removePhoto': 'Foto verwijderen mislukt',
'memories.error.toggleSharing': 'Delen bijwerken mislukt',
'undo.addPlace': 'Locatie toegevoegd',
'undo.done': 'Ongedaan gemaakt: {action}',
'notifications.test.title': 'Testmelding van {actor}',
'notifications.test.text': 'Dit is een eenvoudige testmelding.',
'notifications.test.booleanTitle': '{actor} vraagt om uw goedkeuring',
'notifications.test.booleanText': 'Booleaanse testmelding.',
'notifications.test.accept': 'Goedkeuren',
'notifications.test.decline': 'Afwijzen',
'notifications.test.navigateTitle': 'Bekijk iets',
'notifications.test.navigateText': 'Navigatie-testmelding.',
'notifications.test.goThere': 'Ga erheen',
'notifications.test.adminTitle': 'Admin-broadcast',
'notifications.test.adminText': '{actor} heeft een testmelding naar alle admins gestuurd.',
'notifications.test.tripTitle': '{actor} heeft gepost in uw reis',
'notifications.test.tripText': 'Testmelding voor reis "{trip}".',
// Todo
'todo.subtab.packing': 'Paklijst',
'todo.subtab.todo': 'Taken',
'todo.completed': 'voltooid',
'todo.filter.all': 'Alles',
'todo.filter.open': 'Openstaand',
'todo.filter.done': 'Klaar',
'todo.uncategorized': 'Zonder categorie',
'todo.namePlaceholder': 'Taaknaam',
'todo.descriptionPlaceholder': 'Beschrijving (optioneel)',
'todo.unassigned': 'Niet toegewezen',
'todo.noCategory': 'Geen categorie',
'todo.hasDescription': 'Heeft beschrijving',
'todo.addItem': 'Nieuwe taak',
'todo.sidebar.sortBy': 'Sorteren op',
'todo.priority': 'Prioriteit',
'todo.newCategoryLabel': 'nieuw',
'budget.categoriesLabel': 'categorieën',
'todo.newCategory': 'Categorienaam',
'todo.addCategory': 'Categorie toevoegen',
'todo.newItem': 'Nieuwe taak',
'todo.empty': 'Nog geen taken. Voeg een taak toe om te beginnen!',
'todo.filter.my': 'Mijn taken',
'todo.filter.overdue': 'Verlopen',
'todo.sidebar.tasks': 'Taken',
'todo.sidebar.categories': 'Categorieën',
'todo.detail.title': 'Taak',
'todo.detail.description': 'Beschrijving',
'todo.detail.category': 'Categorie',
'todo.detail.dueDate': 'Vervaldatum',
'todo.detail.assignedTo': 'Toegewezen aan',
'todo.detail.delete': 'Verwijderen',
'todo.detail.save': 'Wijzigingen opslaan',
'todo.detail.create': 'Taak aanmaken',
'todo.detail.priority': 'Prioriteit',
'todo.detail.noPriority': 'Geen',
'todo.sortByPrio': 'Prioriteit',
// Notification system (added from feat/notification-system)
'settings.notifyVersionAvailable': 'Nieuwe versie beschikbaar',
'settings.notificationPreferences.noChannels': 'Er zijn geen meldingskanalen geconfigureerd. Vraag een beheerder om e-mail- of webhookmeldingen in te stellen.',
'settings.webhookUrl.label': 'Webhook-URL',
'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...',
'settings.webhookUrl.hint': 'Voer je Discord-, Slack- of aangepaste webhook-URL in om meldingen te ontvangen.',
'settings.webhookUrl.saved': 'Webhook-URL opgeslagen',
'settings.webhookUrl.test': 'Testen',
'settings.webhookUrl.testSuccess': 'Test-webhook succesvol verzonden',
'settings.webhookUrl.testFailed': 'Test-webhook mislukt',
'settings.ntfyUrl.topicLabel': 'Ntfy-onderwerp',
'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts',
'settings.ntfyUrl.serverLabel': 'Ntfy-server-URL (optioneel)',
'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh',
'settings.ntfyUrl.hint': 'Voer je Ntfy-onderwerp in om pushmeldingen te ontvangen. Laat het serverveld leeg om de standaard te gebruiken die door je beheerder is ingesteld.',
'settings.ntfyUrl.tokenLabel': 'Toegangstoken (optioneel)',
'settings.ntfyUrl.tokenHint': 'Vereist voor onderwerpen die met een wachtwoord zijn beveiligd.',
'settings.ntfyUrl.saved': 'Ntfy-instellingen opgeslagen',
'settings.ntfyUrl.test': 'Testen',
'settings.ntfyUrl.testSuccess': 'Test-Ntfy-melding succesvol verzonden',
'settings.ntfyUrl.testFailed': 'Test-Ntfy-melding mislukt',
'settings.ntfyUrl.tokenCleared': 'Toegangstoken gewist',
'settings.notificationPreferences.inapp': 'In-App',
'settings.notificationPreferences.webhook': 'Webhook',
'settings.notificationPreferences.email': 'Email',
'settings.notificationPreferences.ntfy': 'Ntfy',
'admin.notifications.emailPanel.title': 'Email (SMTP)',
'admin.notifications.webhookPanel.title': 'Webhook',
'admin.notifications.inappPanel.title': 'In-App',
'admin.notifications.inappPanel.hint': 'In-app-meldingen zijn altijd actief en kunnen niet globaal worden uitgeschakeld.',
'admin.notifications.adminWebhookPanel.title': 'Admin-webhook',
'admin.notifications.adminWebhookPanel.hint': 'Deze webhook wordt uitsluitend gebruikt voor admin-meldingen (bijv. versie-updates). Hij staat los van gebruikerswebhooks en verstuurt automatisch als er een URL is ingesteld.',
'admin.notifications.adminWebhookPanel.saved': 'Admin-webhook-URL opgeslagen',
'admin.notifications.adminWebhookPanel.testSuccess': 'Test-webhook succesvol verzonden',
'admin.notifications.adminWebhookPanel.testFailed': 'Test-webhook mislukt',
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Admin-webhook verstuurt automatisch als er een URL is ingesteld',
'admin.notifications.ntfy': 'Ntfy',
'admin.ntfy.hint': 'Hiermee kunnen gebruikers hun eigen ntfy-onderwerpen instellen voor pushmeldingen. Stel de standaardserver hieronder in om de gebruikersinstellingen vooraf in te vullen.',
'admin.notifications.testNtfy': 'Test-Ntfy verzenden',
'admin.notifications.testNtfySuccess': 'Test-Ntfy succesvol verzonden',
'admin.notifications.testNtfyFailed': 'Test-Ntfy mislukt',
'admin.notifications.adminNtfyPanel.title': 'Admin-Ntfy',
'admin.notifications.adminNtfyPanel.hint': 'Dit Ntfy-onderwerp wordt uitsluitend gebruikt voor admin-meldingen (bijv. versie-updates). Het staat los van onderwerpen per gebruiker en verstuurt altijd wanneer het geconfigureerd is.',
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy-server-URL',
'admin.notifications.adminNtfyPanel.serverHint': 'Wordt ook gebruikt als standaardserver voor ntfy-meldingen van gebruikers. Laat leeg om ntfy.sh te gebruiken. Gebruikers kunnen dit aanpassen in hun eigen instellingen.',
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
'admin.notifications.adminNtfyPanel.topicLabel': 'Admin-onderwerp',
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
'admin.notifications.adminNtfyPanel.tokenLabel': 'Toegangstoken (optioneel)',
'admin.notifications.adminNtfyPanel.tokenCleared': 'Admin-toegangstoken gewist',
'admin.notifications.adminNtfyPanel.saved': 'Admin-Ntfy-instellingen opgeslagen',
'admin.notifications.adminNtfyPanel.test': 'Test-Ntfy verzenden',
'admin.notifications.adminNtfyPanel.testSuccess': 'Test-Ntfy succesvol verzonden',
'admin.notifications.adminNtfyPanel.testFailed': 'Test-Ntfy mislukt',
'admin.notifications.adminNtfyPanel.alwaysOnHint': 'Admin-Ntfy verstuurt altijd wanneer een onderwerp is geconfigureerd',
'admin.notifications.adminNotificationsHint': 'Stel in via welke kanalen admin-meldingen worden bezorgd (bijv. versie-updates). De webhook verstuurt automatisch als er een admin-webhook-URL is ingesteld.',
'admin.notifications.tripReminders.title': 'Reisherinneringen',
'admin.notifications.tripReminders.hint': 'Stuurt een herinneringsmelding voor de start van een reis (vereist ingestelde herinneringsdagen bij de reis).',
'admin.notifications.tripReminders.enabled': 'Reisherinneringen ingeschakeld',
'admin.notifications.tripReminders.disabled': 'Reisherinneringen uitgeschakeld',
'admin.tabs.notifications': 'Meldingen',
'notifications.versionAvailable.title': 'Update beschikbaar',
'notifications.versionAvailable.text': 'TREK {version} is nu beschikbaar.',
'notifications.versionAvailable.button': 'Details bekijken',
'notif.test.title': '[Test] Melding',
'notif.test.simple.text': 'Dit is een eenvoudige testmelding.',
'notif.test.boolean.text': 'Accepteer je deze testmelding?',
'notif.test.navigate.text': 'Klik hieronder om naar het dashboard te gaan.',
// Notifications
'notif.trip_invite.title': 'Reisuitnodiging',
'notif.trip_invite.text': '{actor} heeft je uitgenodigd voor {trip}',
'notif.booking_change.title': 'Boeking bijgewerkt',
'notif.booking_change.text': '{actor} heeft een boeking bijgewerkt in {trip}',
'notif.trip_reminder.title': 'Reisherinnering',
'notif.trip_reminder.text': 'Je reis {trip} komt eraan!',
'notif.todo_due.title': 'Taak verloopt',
'notif.todo_due.text': '{todo} in {trip} verloopt op {due}',
'notif.vacay_invite.title': 'Vacay Fusion-uitnodiging',
'notif.vacay_invite.text': '{actor} nodigt je uit om vakantieplannen te fuseren',
'notif.photos_shared.title': 'Foto\'s gedeeld',
'notif.photos_shared.text': '{actor} heeft {count} foto(\'s) gedeeld in {trip}',
'notif.collab_message.title': 'Nieuw bericht',
'notif.collab_message.text': '{actor} heeft een bericht gestuurd in {trip}',
'notif.packing_tagged.title': 'Paklijsttaak',
'notif.packing_tagged.text': '{actor} heeft je toegewezen aan {category} in {trip}',
'notif.version_available.title': 'Nieuwe versie beschikbaar',
'notif.version_available.text': 'TREK {version} is nu beschikbaar',
'notif.action.view_trip': 'Reis bekijken',
'notif.action.view_collab': 'Berichten bekijken',
'notif.action.view_packing': 'Paklijst bekijken',
'notif.action.view_photos': 'Foto\'s bekijken',
'notif.action.view_vacay': 'Vacay bekijken',
'notif.action.view_admin': 'Naar admin',
'notif.action.view': 'Bekijken',
'notif.action.accept': 'Accepteren',
'notif.action.decline': 'Weigeren',
'notif.generic.title': 'Melding',
'notif.generic.text': 'Je hebt een nieuwe melding',
'notif.dev.unknown_event.title': '[DEV] Onbekende gebeurtenis',
'notif.dev.unknown_event.text': 'Gebeurtenistype "{event}" is niet geregistreerd in EVENT_NOTIFICATION_CONFIG',
// Journey, Dashboard, Nav, DayPlan
'common.justNow': 'zojuist',
'common.hoursAgo': '{count}u geleden',
'common.daysAgo': '{count}d geleden',
'journey.search.placeholder': 'Reizen zoeken…',
'journey.search.noResults': 'Geen reizen komen overeen met "{query}"',
'journey.title': 'Reisverslag',
'journey.subtitle': 'Leg je reizen vast terwijl je onderweg bent',
'journey.new': 'Nieuw reisverslag',
'journey.create': 'Aanmaken',
'journey.titlePlaceholder': 'Waar ga je naartoe?',
'journey.empty': 'Nog geen reisverslagen',
'journey.emptyHint': 'Begin met het vastleggen van je volgende reis',
'journey.deleted': 'Reisverslag verwijderd',
'journey.createError': 'Kon reisverslag niet aanmaken',
'journey.deleteError': 'Kon reisverslag niet verwijderen',
'journey.deleteConfirmTitle': 'Verwijderen',
'journey.deleteConfirmMessage': '"{title}" verwijderen? Dit kan niet ongedaan worden gemaakt.',
'journey.deleteConfirmGeneric': 'Weet je zeker dat je dit wilt verwijderen?',
'journey.notFound': 'Reisverslag niet gevonden',
'journey.photos': 'Foto\'s',
'journey.timelineEmpty': 'Nog geen stops',
'journey.timelineEmptyHint': 'Voeg een check-in toe of schrijf een dagboekvermelding om te beginnen',
'journey.status.draft': 'Concept',
'journey.status.active': 'Actief',
'journey.status.completed': 'Voltooid',
'journey.status.upcoming': 'Gepland',
'journey.status.archived': 'Gearchiveerd',
'journey.checkin.add': 'Inchecken',
'journey.checkin.namePlaceholder': 'Locatienaam',
'journey.checkin.notesPlaceholder': 'Notities (optioneel)',
'journey.checkin.save': 'Opslaan',
'journey.checkin.error': 'Kon check-in niet opslaan',
'journey.entry.add': 'Dagboek',
'journey.entry.edit': 'Vermelding bewerken',
'journey.entry.titlePlaceholder': 'Titel (optioneel)',
'journey.entry.bodyPlaceholder': 'Wat is er vandaag gebeurd?',
'journey.entry.save': 'Opslaan',
'journey.entry.error': 'Kon vermelding niet opslaan',
'journey.photo.add': 'Foto',
'journey.photo.uploadError': 'Uploaden mislukt',
'journey.share.share': 'Delen',
'journey.share.public': 'Openbaar',
'journey.share.linkCopied': 'Openbare link gekopieerd',
'journey.share.disabled': 'Openbaar delen uitgeschakeld',
'journey.editor.titlePlaceholder': 'Geef dit moment een naam...',
'journey.editor.bodyPlaceholder': 'Vertel het verhaal van deze dag...',
'journey.editor.placePlaceholder': 'Locatie (optioneel)',
'journey.editor.tagsPlaceholder': 'Tags: verborgen parel, beste maaltijd, moet terugkomen...',
'journey.visibility.private': 'Privé',
'journey.visibility.shared': 'Gedeeld',
'journey.visibility.public': 'Openbaar',
'journey.emptyState.title': 'Je verhaal begint hier',
'journey.emptyState.subtitle': 'Check in op een plek of schrijf je eerste dagboekvermelding',
'journey.frontpage.subtitle': 'Maak van je reizen verhalen die je nooit vergeet',
'journey.frontpage.createJourney': 'Reisverslag aanmaken',
'journey.frontpage.activeJourney': 'Actief reisverslag',
'journey.frontpage.allJourneys': 'Alle reisverslagen',
'journey.frontpage.journeys': 'reisverslagen',
'journey.frontpage.createNew': 'Nieuw reisverslag aanmaken',
'journey.frontpage.createNewSub': 'Kies reizen, schrijf verhalen, deel je avonturen',
'journey.frontpage.live': 'Live',
'journey.frontpage.synced': 'Gesynchroniseerd',
'journey.frontpage.continueWriting': 'Verder schrijven',
'journey.frontpage.updated': 'Bijgewerkt {time}',
'journey.frontpage.suggestionLabel': 'Reis net afgelopen',
'journey.frontpage.suggestionText': 'Maak van <strong>{title}</strong> een reisverslag',
'journey.frontpage.dismiss': 'Sluiten',
'journey.frontpage.journeyName': 'Naam reisverslag',
'journey.frontpage.namePlaceholder': 'bijv. Zuidoost-Azië 2026',
'journey.frontpage.selectTrips': 'Selecteer reizen',
'journey.frontpage.tripsSelected': 'reizen geselecteerd',
'journey.frontpage.trips': 'reizen',
'journey.frontpage.placesImported': 'plaatsen worden geïmporteerd',
'journey.frontpage.places': 'plaatsen',
'journey.detail.backToJourney': 'Terug naar reisverslag',
'journey.detail.syncedWithTrips': 'Gesynchroniseerd met reizen',
'journey.detail.addEntry': 'Vermelding toevoegen',
'journey.detail.newEntry': 'Nieuwe vermelding',
'journey.detail.editEntry': 'Vermelding bewerken',
'journey.detail.noEntries': 'Nog geen vermeldingen',
'journey.detail.noEntriesHint': 'Voeg een reis toe om te beginnen met skeletvermeldingen',
'journey.detail.noPhotos': 'Nog geen foto\'s',
'journey.detail.noPhotosHint': 'Upload foto\'s naar vermeldingen of blader door je Immich/Synology-bibliotheek',
'journey.detail.journeyStats': 'Reisstatistieken',
'journey.detail.syncedTrips': 'Gesynchroniseerde reizen',
'journey.detail.noTripsLinked': 'Nog geen reizen gekoppeld',
'journey.detail.contributors': 'Bijdragers',
'journey.detail.readMore': 'Lees meer',
'journey.detail.prosCons': 'Voor- & nadelen',
'journey.detail.photos': 'foto\'s',
'journey.detail.day': 'Dag {number}',
'journey.detail.places': 'plaatsen',
'journey.stats.days': 'Dagen',
'journey.stats.cities': 'Steden',
'journey.stats.entries': 'Vermeldingen',
'journey.stats.photos': 'Foto\'s',
'journey.stats.places': 'Plaatsen',
'journey.skeletons.show': 'Suggesties tonen',
'journey.skeletons.hide': 'Suggesties verbergen',
'journey.verdict.lovedIt': 'Geweldig',
'journey.verdict.couldBeBetter': 'Kan beter',
'journey.synced.places': 'plaatsen',
'journey.synced.synced': 'gesynchroniseerd',
'journey.editor.discardChangesConfirm': 'Je hebt niet-opgeslagen wijzigingen. Verwerpen?',
'journey.editor.uploadPhotos': 'Foto\'s uploaden',
'journey.editor.uploading': 'Uploaden...',
'journey.editor.fromGallery': 'Uit galerij',
'journey.editor.allPhotosAdded': 'Alle foto\'s al toegevoegd',
'journey.editor.writeStory': 'Schrijf je verhaal...',
'journey.editor.prosCons': 'Voor- & nadelen',
'journey.editor.pros': 'Voordelen',
'journey.editor.cons': 'Nadelen',
'journey.editor.proPlaceholder': 'Iets geweldigs...',
'journey.editor.conPlaceholder': 'Niet zo geweldig...',
'journey.editor.addAnother': 'Nog een toevoegen',
'journey.editor.date': 'Datum',
'journey.editor.location': 'Locatie',
'journey.editor.searchLocation': 'Locatie zoeken...',
'journey.editor.mood': 'Stemming',
'journey.editor.weather': 'Weer',
'journey.editor.photoFirst': '1e',
'journey.editor.makeFirst': 'Maak 1e',
'journey.editor.searching': 'Zoeken...',
'journey.mood.amazing': 'Fantastisch',
'journey.mood.good': 'Goed',
'journey.mood.neutral': 'Neutraal',
'journey.mood.rough': 'Zwaar',
'journey.weather.sunny': 'Zonnig',
'journey.weather.partly': 'Halfbewolkt',
'journey.weather.cloudy': 'Bewolkt',
'journey.weather.rainy': 'Regenachtig',
'journey.weather.stormy': 'Stormachtig',
'journey.weather.cold': 'Sneeuw',
'journey.trips.linkTrip': 'Reis koppelen',
'journey.trips.searchTrip': 'Reis zoeken',
'journey.trips.searchPlaceholder': 'Reisnaam of bestemming...',
'journey.trips.noTripsAvailable': 'Geen reizen beschikbaar',
'journey.trips.link': 'Koppelen',
'journey.trips.tripLinked': 'Reis gekoppeld',
'journey.trips.linkFailed': 'Koppelen van reis mislukt',
'journey.trips.addTrip': 'Reis toevoegen',
'journey.trips.unlinkTrip': 'Reis ontkoppelen',
'journey.trips.unlinkMessage': '"{title}" ontkoppelen? Alle gesynchroniseerde vermeldingen en foto\'s van deze reis worden permanent verwijderd. Dit kan niet ongedaan worden gemaakt.',
'journey.trips.unlink': 'Ontkoppelen',
'journey.trips.tripUnlinked': 'Reis ontkoppeld',
'journey.trips.unlinkFailed': 'Ontkoppelen van reis mislukt',
'journey.trips.noTripsLinkedSettings': 'Geen reizen gekoppeld',
'journey.contributors.invite': 'Bijdrager uitnodigen',
'journey.contributors.searchUser': 'Gebruiker zoeken',
'journey.contributors.searchPlaceholder': 'Gebruikersnaam of e-mail...',
'journey.contributors.noUsers': 'Geen gebruikers gevonden',
'journey.contributors.role': 'Rol',
'journey.contributors.added': 'Bijdrager toegevoegd',
'journey.contributors.addFailed': 'Toevoegen van bijdrager mislukt',
'journey.share.publicShare': 'Openbaar delen',
'journey.share.createLink': 'Deellink aanmaken',
'journey.share.linkCreated': 'Deellink aangemaakt',
'journey.share.createFailed': 'Aanmaken van link mislukt',
'journey.share.copy': 'Kopiëren',
'journey.share.copied': 'Gekopieerd!',
'journey.share.timeline': 'Tijdlijn',
'journey.share.gallery': 'Galerij',
'journey.share.map': 'Kaart',
'journey.share.removeLink': 'Deellink verwijderen',
'journey.share.linkDeleted': 'Deellink verwijderd',
'journey.share.deleteFailed': 'Verwijderen mislukt',
'journey.share.updateFailed': 'Bijwerken mislukt',
// Journey — Invite
'journey.invite.role': 'Rol',
'journey.invite.viewer': 'Kijker',
'journey.invite.editor': 'Bewerker',
'journey.invite.invite': 'Uitnodigen',
'journey.invite.inviting': 'Uitnodigen...',
'journey.settings.title': 'Reisverslaginstellingen',
'journey.settings.coverImage': 'Omslagfoto',
'journey.settings.changeCover': 'Omslag wijzigen',
'journey.settings.addCover': 'Omslagfoto toevoegen',
'journey.settings.name': 'Naam',
'journey.settings.subtitle': 'Ondertitel',
'journey.settings.subtitlePlaceholder': 'bijv. Thailand, Vietnam & Cambodja',
'journey.settings.endJourney': 'Reis archiveren',
'journey.settings.reopenJourney': 'Reis herstellen',
'journey.settings.archived': 'Reis gearchiveerd',
'journey.settings.reopened': 'Reis heropend',
'journey.settings.endDescription': 'Verbergt het Live-badge. Je kunt het altijd heropenen.',
'journey.settings.delete': 'Verwijderen',
'journey.settings.deleteJourney': 'Reisverslag verwijderen',
'journey.settings.deleteMessage': '"{title}" verwijderen? Alle vermeldingen en foto\'s gaan verloren.',
'journey.settings.saved': 'Instellingen opgeslagen',
'journey.settings.saveFailed': 'Opslaan mislukt',
'journey.settings.coverUpdated': 'Omslag bijgewerkt',
'journey.settings.coverFailed': 'Uploaden mislukt',
'journey.settings.failedToDelete': 'Verwijderen mislukt',
'journey.entries.deleteTitle': 'Vermelding verwijderen',
'journey.photosUploaded': "{count} foto's geüpload",
'journey.photosAdded': "{count} foto's toegevoegd",
'journey.public.notFound': 'Niet gevonden',
'journey.public.notFoundMessage': 'Dit reisverslag bestaat niet of de link is verlopen.',
'journey.public.readOnly': 'Alleen-lezen · Openbaar reisverslag',
'journey.public.tagline': 'Travel Resource & Exploration Kit',
'journey.public.sharedVia': 'Gedeeld via',
'journey.public.madeWith': 'Gemaakt met',
'journey.pdf.journeyBook': 'Reisboek',
'journey.pdf.madeWith': 'Gemaakt met TREK',
'journey.pdf.day': 'Dag',
'journey.pdf.theEnd': 'Einde',
'journey.pdf.saveAsPdf': 'Opslaan als PDF',
'journey.pdf.pages': 'pagina\'s',
'journey.picker.tripPeriod': 'Reisperiode',
'journey.picker.dateRange': 'Datumbereik',
'journey.picker.allPhotos': 'Alle foto\'s',
'journey.picker.albums': 'Albums',
'journey.picker.selected': 'geselecteerd',
'journey.picker.addTo': 'Toevoegen aan',
'journey.picker.newGallery': 'Nieuwe galerij',
'journey.picker.selectAll': 'Alles selecteren',
'journey.picker.deselectAll': 'Alles deselecteren',
'journey.picker.noAlbums': 'Geen albums gevonden',
'journey.picker.selectDate': 'Selecteer datum',
'journey.picker.search': 'Zoeken',
'dashboard.greeting.morning': 'Goedemorgen,',
'dashboard.greeting.afternoon': 'Goedemiddag,',
'dashboard.greeting.evening': 'Goedenavond,',
'dashboard.mobile.liveNow': 'Nu live',
'dashboard.mobile.tripProgress': 'Reisvoortgang',
'dashboard.mobile.daysLeft': '{count} dagen over',
'dashboard.mobile.places': 'Plaatsen',
'dashboard.mobile.buddies': 'Reisgenoten',
'dashboard.mobile.newTrip': 'Nieuwe reis',
'dashboard.mobile.currency': 'Valuta',
'dashboard.mobile.timezone': 'Tijdzone',
'dashboard.mobile.upcomingTrips': 'Aankomende reizen',
'dashboard.mobile.yourTrips': 'Jouw reizen',
'dashboard.mobile.trips': 'reizen',
'dashboard.mobile.starts': 'Begint',
'dashboard.mobile.duration': 'Duur',
'dashboard.mobile.day': 'dag',
'dashboard.mobile.days': 'dagen',
'dashboard.mobile.ongoing': 'Bezig',
'dashboard.mobile.startsToday': 'Begint vandaag',
'dashboard.mobile.tomorrow': 'Morgen',
'dashboard.mobile.inDays': 'Over {count} dagen',
'dashboard.mobile.inMonths': 'Over {count} maanden',
'dashboard.mobile.completed': 'Voltooid',
'dashboard.mobile.currencyConverter': 'Valutaomrekener',
'nav.profile': 'Profiel',
'nav.bottomSettings': 'Instellingen',
'nav.bottomAdmin': 'Beheerdersinstellingen',
'nav.bottomLogout': 'Uitloggen',
'nav.bottomAdminBadge': 'Beheerder',
'dayplan.mobile.addPlace': 'Plaats toevoegen',
'dayplan.mobile.searchPlaces': 'Plaatsen zoeken...',
'dayplan.mobile.allAssigned': 'Alle plaatsen toegewezen',
'dayplan.mobile.noMatch': 'Geen resultaat',
'dayplan.mobile.createNew': 'Nieuwe plaats aanmaken',
'admin.addons.catalog.journey.name': 'Reisverslag',
'admin.addons.catalog.journey.description': 'Reistracking & reisdagboek met check-ins, foto\'s en dagelijkse verhalen',
// OAuth scope groups
'oauth.scope.group.trips': 'Reizen',
'oauth.scope.group.places': 'Plaatsen',
'oauth.scope.group.atlas': 'Atlas',
'oauth.scope.group.packing': 'Paklijst',
'oauth.scope.group.todos': 'Taken',
'oauth.scope.group.budget': 'Budget',
'oauth.scope.group.reservations': 'Reserveringen',
'oauth.scope.group.collab': 'Samenwerking',
'oauth.scope.group.notifications': 'Meldingen',
'oauth.scope.group.vacay': 'Vakantie',
'oauth.scope.group.geo': 'Geo',
'oauth.scope.group.weather': 'Weer',
'oauth.scope.group.journey': 'Reisverslag',
// OAuth scope labels & descriptions
'oauth.scope.trips:read.label': 'Reizen en reisplannen bekijken',
'oauth.scope.trips:read.description': 'Reizen, dagen, notities en leden lezen',
'oauth.scope.trips:write.label': 'Reizen en reisplannen bewerken',
'oauth.scope.trips:write.description': 'Reizen, dagen en notities aanmaken, bijwerken en leden beheren',
'oauth.scope.trips:delete.label': 'Reizen verwijderen',
'oauth.scope.trips:delete.description': 'Hele reizen permanent verwijderen — deze actie is onomkeerbaar',
'oauth.scope.trips:share.label': 'Deellinks beheren',
'oauth.scope.trips:share.description': 'Publieke deellinks aanmaken, bijwerken en intrekken',
'oauth.scope.places:read.label': 'Plaatsen en kaartgegevens bekijken',
'oauth.scope.places:read.description': 'Plaatsen, dagtoewijzingen, tags en categorieën lezen',
'oauth.scope.places:write.label': 'Plaatsen beheren',
'oauth.scope.places:write.description': 'Plaatsen, toewijzingen en tags aanmaken, bijwerken en verwijderen',
'oauth.scope.atlas:read.label': 'Atlas bekijken',
'oauth.scope.atlas:read.description': 'Bezochte landen, regio\'s en bucketlist lezen',
'oauth.scope.atlas:write.label': 'Atlas beheren',
'oauth.scope.atlas:write.description': 'Landen en regio\'s markeren als bezocht, bucketlist beheren',
'oauth.scope.packing:read.label': 'Paklijsten bekijken',
'oauth.scope.packing:read.description': 'Pakartikelen, tassen en categorietoewijzingen lezen',
'oauth.scope.packing:write.label': 'Paklijsten beheren',
'oauth.scope.packing:write.description': 'Pakartikelen en tassen toevoegen, bijwerken, verwijderen, omschakelen en herordenen',
'oauth.scope.todos:read.label': 'Takenlijsten bekijken',
'oauth.scope.todos:read.description': 'Reistaakitems en categorietoewijzingen lezen',
'oauth.scope.todos:write.label': 'Takenlijsten beheren',
'oauth.scope.todos:write.description': 'Taakitems aanmaken, bijwerken, omschakelen, verwijderen en herordenen',
'oauth.scope.budget:read.label': 'Budget bekijken',
'oauth.scope.budget:read.description': 'Budgetitems en kostenspecificatie lezen',
'oauth.scope.budget:write.label': 'Budget beheren',
'oauth.scope.budget:write.description': 'Budgetitems aanmaken, bijwerken en verwijderen',
'oauth.scope.reservations:read.label': 'Reserveringen bekijken',
'oauth.scope.reservations:read.description': 'Reserveringen en accommodatiedetails lezen',
'oauth.scope.reservations:write.label': 'Reserveringen beheren',
'oauth.scope.reservations:write.description': 'Reserveringen aanmaken, bijwerken, verwijderen en herordenen',
'oauth.scope.collab:read.label': 'Samenwerking bekijken',
'oauth.scope.collab:read.description': 'Samenwerkingsnotities, polls en berichten lezen',
'oauth.scope.collab:write.label': 'Samenwerking beheren',
'oauth.scope.collab:write.description': 'Samenwerkingsnotities, polls en berichten aanmaken, bijwerken en verwijderen',
'oauth.scope.notifications:read.label': 'Meldingen bekijken',
'oauth.scope.notifications:read.description': 'In-app meldingen en ongelezen aantallen lezen',
'oauth.scope.notifications:write.label': 'Meldingen beheren',
'oauth.scope.notifications:write.description': 'Meldingen als gelezen markeren en erop reageren',
'oauth.scope.vacay:read.label': 'Vakantieplannen bekijken',
'oauth.scope.vacay:read.description': 'Vakantieplanningsgegevens, invoeren en statistieken lezen',
'oauth.scope.vacay:write.label': 'Vakantieplannen beheren',
'oauth.scope.vacay:write.description': 'Vakantie-invoeren, feestdagen en teamplannen aanmaken en beheren',
'oauth.scope.geo:read.label': 'Kaarten & geocodering',
'oauth.scope.geo:read.description': 'Locaties zoeken, kaart-URL\'s oplossen en coördinaten omgekeerd geocoderen',
'oauth.scope.weather:read.label': 'Weersverwachtingen',
'oauth.scope.weather:read.description': 'Weersverwachtingen ophalen voor reislocaties en -datums',
'oauth.scope.journey:read.label': 'Reisverslagen bekijken',
'oauth.scope.journey:read.description': 'Reisverslagen, vermeldingen en lijst van bijdragers lezen',
'oauth.scope.journey:write.label': 'Reisverslagen beheren',
'oauth.scope.journey:write.description': 'Reisverslagen en hun vermeldingen aanmaken, bijwerken en verwijderen',
'oauth.scope.journey:share.label': 'Reisverslag-links beheren',
'oauth.scope.journey:share.description': 'Publieke deellinks voor reisverslagen aanmaken, bijwerken en intrekken',
// System notices
'system_notice.welcome_v1.title': 'Welkom bij TREK',
'system_notice.welcome_v1.body': 'Jouw alles-in-één reisplanner. Maak reisschema\'s, deel trips met vrienden en blijf georganiseerd — online en offline.',
'system_notice.welcome_v1.cta_label': 'Reis plannen',
'system_notice.welcome_v1.hero_alt': 'Schilderachtige reisbestemming met TREK interface',
'system_notice.welcome_v1.highlight_plan': 'Dag-voor-dag reisschema\'s',
'system_notice.welcome_v1.highlight_share': 'Samenwerken met reisgezelschap',
'system_notice.welcome_v1.highlight_offline': 'Werkt offline op mobiel',
'system_notice.dev_test_modal.title': '[Dev] Test notice',
'system_notice.dev_test_modal.body': 'This is a dev-only test notice.',
'system_notice.pager.prev': 'Vorige melding',
'system_notice.pager.next': 'Volgende melding',
'system_notice.pager.counter': '{current} / {total}',
'system_notice.pager.goto': 'Ga naar melding {n}',
'system_notice.pager.position': 'Melding {current} van {total}',
// System notices — 3.0.0 upgrade
'system_notice.v3_photos.title': "Foto's zijn verplaatst in 3.0",
'system_notice.v3_photos.body': "**Foto's** in de Reisplanner zijn verwijderd. Je foto's zijn veilig — TREK heeft je Immich- of Synology-bibliotheek nooit gewijzigd.\n\nFoto's leven nu in de **Journey**-addon. Journey is optioneel — als het nog niet beschikbaar is, vraag je admin het te activeren via Admin → Addons.",
'system_notice.v3_journey.title': 'Maak kennis met Journey — reisdagboek',
'system_notice.v3_journey.body': 'Documenteer je reizen als rijke verhalen met tijdlijnen, fotogalerijen en interactieve kaarten.',
'system_notice.v3_journey.cta_label': 'Journey openen',
'system_notice.v3_journey.highlight_timeline': 'Dag-voor-dag tijdlijn & galerij',
'system_notice.v3_journey.highlight_photos': 'Importeer van Immich of Synology',
'system_notice.v3_journey.highlight_share': 'Openbaar delen — geen login vereist',
'system_notice.v3_journey.highlight_export': 'Exporteer als PDF-fotoboek',
'system_notice.v3_features.title': 'Meer hoogtepunten in 3.0',
'system_notice.v3_features.body': 'Nog een paar dingen die het weten waard zijn in deze release.',
'system_notice.v3_features.highlight_dashboard': 'Mobile-first dashboard herontwerp',
'system_notice.v3_features.highlight_offline': 'Volledige offline modus als PWA',
'system_notice.v3_features.highlight_search': 'Realtime plaatsautocomplete',
'system_notice.v3_features.highlight_import': 'Importeer plaatsen uit KMZ/KML-bestanden',
// System notices — MCP OAuth 2.1 upgrade
'system_notice.v3_mcp.title': 'MCP: OAuth 2.1-upgrade',
'system_notice.v3_mcp.body': 'De MCP-integratie is volledig vernieuwd. OAuth 2.1 is nu de aanbevolen authenticatiemethode. Statische tokens (trek_…) zijn verouderd en worden verwijderd in een toekomstige versie.',
'system_notice.v3_mcp.highlight_oauth': 'OAuth 2.1 aanbevolen (mcp-remote)',
'system_notice.v3_mcp.highlight_scopes': '24 gedetailleerde toestemmingsscopes',
'system_notice.v3_mcp.highlight_deprecated': 'Statische trek_-tokens verouderd',
'system_notice.v3_mcp.highlight_tools': 'Uitgebreide tools & prompts',
// System notices — personal thank you
'system_notice.v3_thankyou.title': 'Een persoonlijk woord van mij',
'system_notice.v3_thankyou.body': 'Voordat je verdergaat — ik wil even stilstaan.\n\nTREK begon als een zijproject dat ik bouwde voor mijn eigen reizen. Ik had nooit gedacht dat het zou uitgroeien tot iets waar 4.000 van jullie op vertrouwen om avonturen te plannen. Elke ster, elke issue, elk functieverzoek — ik lees ze allemaal, en ze houden me op de been tijdens de late avonden tussen een fulltime baan en de universiteit.\n\nIk wil dat jullie weten: TREK zal altijd open source zijn, altijd self-hosted, altijd van jullie. Geen tracking, geen abonnementen, geen addertjes. Gewoon een tool gebouwd door iemand die net zo veel van reizen houdt als jullie.\n\nSpeciale dank aan [jubnl](https://github.com/jubnl) — je bent een ongelooflijke medewerker geworden. Zo veel van wat 3.0 geweldig maakt draagt jouw vingerafdruk. Bedankt dat je in dit project geloofde toen het nog ruw was.\n\nEn aan ieder van jullie die een bug meldde, een string vertaalde, TREK deelde met een vriend of het simpelweg gebruikte om een reis te plannen — **bedankt**. Jullie zijn de reden dat dit bestaat.\n\nOp nog vele avonturen samen.\n\n— Maurice\n\n---\n\n[Sluit je aan bij de community op Discord](https://discord.gg/7Q6M6jDwzf)\n\nAls TREK je reizen beter maakt, houdt een [klein kopje koffie](https://ko-fi.com/mauriceboe) altijd de lichten aan.',
'transport.addTransport': 'Add transport',
'transport.modalTitle.create': 'Add transport',
'transport.modalTitle.edit': 'Edit transport',
'transport.title': 'Transport',
'transport.addManual': 'Handmatig transport',
}
export default nl