const it: Record<string, string | { name: string; category: string }[]> = {
  // Common
  'common.save': 'Salva',
  'common.showMore': 'Mostra di più',
  'common.showLess': 'Mostra meno',
  'common.cancel': 'Annulla',
  'common.clear': 'Cancella',
  'common.delete': 'Elimina',
  'common.edit': 'Modifica',
  'common.add': 'Aggiungi',
  'common.loading': 'Caricamento...',
  'common.import': 'Importa',
  'common.select': 'Seleziona',
  'common.selectAll': 'Seleziona tutto',
  'common.deselectAll': 'Deseleziona tutto',
  'common.error': 'Errore',
  'common.unknownError': 'Errore sconosciuto',
  'common.tooManyAttempts': 'Troppi tentativi. Riprova più tardi.',
  'common.back': 'Indietro',
  'common.all': 'Tutti',
  'common.close': 'Chiudi',
  'common.open': 'Apri',
  'common.upload': 'Carica',
  'common.search': 'Cerca',
  'common.confirm': 'Conferma',
  'common.ok': 'OK',
  'common.yes': 'Sì',
  'common.no': 'No',
  'common.or': 'o',
  'common.none': 'Nessuno',
  'common.date': 'Data',
  'common.rename': 'Rinomina',
  'common.discardChanges': 'Scarta modifiche',
  'common.discard': 'Scarta',
  'common.name': 'Nome',
  'common.email': 'Email',
  'common.password': 'Password',
  'common.saving': 'Salvataggio...',
  'common.saved': 'Salvato',
  'trips.memberRemoved': '{username} rimosso',
  'trips.memberRemoveError': 'Rimozione non riuscita',
  'trips.memberAdded': '{username} aggiunto',
  'trips.memberAddError': 'Aggiunta non riuscita',
  'common.expand': 'Espandi',
  'common.collapse': 'Comprimi',
  'trips.reminder': 'Promemoria',
  'trips.reminderNone': 'Nessuno',
  'trips.reminderDay': 'giorno',
  'trips.reminderDays': 'giorni',
  'trips.reminderCustom': 'Personalizzato',
  'trips.reminderDaysBefore': 'giorni prima della partenza',
  'trips.reminderDisabledHint': 'I promemoria dei viaggi sono disabilitati. Abilitali in Admin > Impostazioni > Notifiche.',
  'common.update': 'Aggiorna',
  'common.change': 'Cambia',
  'common.uploading': 'Caricamento…',
  'common.backToPlanning': 'Torna al Programma',
  'common.reset': 'Reimposta',

  // Navbar
  'nav.trip': 'Viaggio',
  'nav.share': 'Condividi',
  'nav.settings': 'Impostazioni',
  'nav.admin': 'Amministrazione',
  'nav.logout': 'Esci',
  'nav.lightMode': 'Modalità chiara',
  'nav.darkMode': 'Modalità scura',
  'nav.autoMode': 'Modalità automatica',
  'nav.administrator': 'Amministratore',

  // Dashboard
  'dashboard.title': 'I miei Viaggi',
  'dashboard.subtitle.loading': 'Caricamento viaggi...',
  'dashboard.subtitle.trips': '{count} viaggi ({archived} archiviati)',
  'dashboard.subtitle.empty': 'Inizia il tuo primo viaggio',
  'dashboard.subtitle.activeOne': '{count} viaggio attivo',
  'dashboard.subtitle.activeMany': '{count} viaggi attivi',
  'dashboard.subtitle.archivedSuffix': ' · {count} archiviati',
  'dashboard.newTrip': 'Nuovo Viaggio',
  'dashboard.gridView': 'Vista a griglia',
  'dashboard.listView': 'Vista a lista',
  'dashboard.currency': 'Valuta',
  'dashboard.timezone': 'Fusi orari',
  'dashboard.localTime': 'Locale',
  'dashboard.timezoneCustomTitle': 'Fuso orario personalizzato',
  'dashboard.timezoneCustomLabelPlaceholder': 'Etichetta (opzionale)',
  'dashboard.timezoneCustomTzPlaceholder': 'es. Europe/Rome',
  'dashboard.timezoneCustomAdd': 'Aggiungi',
  'dashboard.timezoneCustomErrorEmpty': 'Inserisci un identificatore di fuso orario',
  'dashboard.timezoneCustomErrorInvalid': 'Fuso orario non valido. Usa formati come Europe/Rome',
  'dashboard.timezoneCustomErrorDuplicate': 'Già aggiunto',
  'dashboard.emptyTitle': 'Ancora nessun viaggio',
  'dashboard.emptyText': 'Crea il tuo primo viaggio e inizia a programmare!',
  'dashboard.emptyButton': 'Crea il primo viaggio',
  'dashboard.nextTrip': 'Prossimo Viaggio',
  'dashboard.shared': 'Condiviso',
  'dashboard.sharedBy': 'Condiviso da {name}',
  'dashboard.days': 'Giorni',
  'dashboard.places': 'Luoghi',
  'dashboard.members': 'Compagni di viaggio',
  'dashboard.archive': 'Archivia',
  'dashboard.copyTrip': 'Copia',
  'dashboard.copySuffix': 'copia',
  'dashboard.restore': 'Ripristina',
  'dashboard.archived': 'Archiviati',
  'dashboard.status.ongoing': 'In corso',
  'dashboard.status.today': 'Oggi',
  'dashboard.status.tomorrow': 'Domani',
  'dashboard.status.past': 'Passato',
  'dashboard.status.daysLeft': '-{count} giorni',
  'dashboard.toast.loadError': 'Impossibile caricare i viaggi',
  'dashboard.toast.created': 'Viaggio creato con successo!',
  'dashboard.toast.createError': 'Impossibile creare il viaggio',
  'dashboard.toast.updated': 'Viaggio aggiornato!',
  'dashboard.toast.updateError': 'Impossibile aggiornare il viaggio',
  'dashboard.toast.deleted': 'Viaggio eliminato',
  'dashboard.toast.deleteError': 'Impossibile eliminare il viaggio',
  'dashboard.toast.archived': 'Viaggio archiviato',
  'dashboard.toast.archiveError': 'Impossibile archiviare il viaggio',
  'dashboard.toast.restored': 'Viaggio ripristinato',
  'dashboard.toast.restoreError': 'Impossibile ripristinare il viaggio',
  'dashboard.toast.copied': 'Viaggio copiato!',
  'dashboard.toast.copyError': 'Impossibile copiare il viaggio',
  'dashboard.confirm.delete': 'Eliminare il viaggio "{title}"? Tutti i luoghi e i programmi verranno eliminati in modo permanente.',
  'dashboard.editTrip': 'Modifica Viaggio',
  'dashboard.createTrip': 'Crea Nuovo Viaggio',
  'dashboard.tripTitle': 'Titolo',
  'dashboard.tripTitlePlaceholder': 'es. Estate in Giappone',
  'dashboard.tripDescription': 'Descrizione',
  'dashboard.tripDescriptionPlaceholder': 'Di cosa tratta questo viaggio?',
  'dashboard.startDate': 'Data di inizio',
  'dashboard.endDate': 'Data di fine',
  'dashboard.dayCount': 'Numero di giorni',
  'dashboard.dayCountHint': 'Quanti giorni pianificare quando non sono impostate date di viaggio.',
  'dashboard.noDateHint': 'Nessuna data impostata — verranno creati 7 giorni predefiniti. Puoi cambiarlo in qualsiasi momento.',
  'dashboard.coverImage': 'Immagine di copertina',
  'dashboard.addCoverImage': 'Aggiungi immagine di copertina (o trascinala qui)',
  'dashboard.addMembers': 'Compagni di viaggio',
  'dashboard.addMember': 'Aggiungi membro',
  'dashboard.coverSaved': 'Immagine di copertina salvata',
  'dashboard.coverUploadError': 'Impossibile caricare',
  'dashboard.coverRemoveError': 'Impossibile rimuovere',
  'dashboard.titleRequired': 'Il titolo è obbligatorio',
  'dashboard.endDateError': 'La data di fine deve essere successiva alla data di inizio',

  // Settings
  'settings.title': 'Impostazioni',
  'settings.subtitle': 'Configura le tue impostazioni personali',
  'settings.tabs.display': 'Visualizzazione',
  'settings.tabs.map': 'Mappa',
  'settings.tabs.notifications': 'Notifiche',
  'settings.tabs.integrations': 'Integrazioni',
  'settings.tabs.account': 'Account',
  'settings.tabs.offline': 'Offline',
  'settings.tabs.about': 'Informazioni',
  'settings.map': 'Mappa',
  'settings.mapTemplate': 'Modello Mappa',
  'settings.mapTemplatePlaceholder.select': 'Seleziona modello...',
  'settings.mapDefaultHint': 'Lascia vuoto per OpenStreetMap (predefinito)',
  'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
  'settings.mapHint': 'Modello URL per i tile della mappa',
  'settings.mapProvider': 'Provider mappa',
  'settings.mapProviderHint': 'Influisce sulle mappe Trip Planner e Journey. Atlas usa sempre Leaflet.',
  'settings.mapLeafletSubtitle': 'Classica 2D, qualsiasi tile raster',
  'settings.mapMapboxSubtitle': 'Tile vettoriali, edifici 3D e terreno',
  'settings.mapExperimental': 'Sperimentale',
  'settings.mapMapboxToken': 'Token di accesso Mapbox',
  'settings.mapMapboxTokenHint': 'Token pubblico (pk.*) da',
  'settings.mapMapboxTokenLink': 'mapbox.com → Token di accesso',
  'settings.mapStyle': 'Stile mappa',
  'settings.mapStylePlaceholder': 'Seleziona uno stile Mapbox',
  'settings.mapStyleHint': 'Preset o il tuo URL mapbox://styles/USER/ID',
  'settings.map3dBuildings': 'Edifici 3D e terreno',
  'settings.map3dHint': 'Inclinazione + estrusioni 3D reali degli edifici — funziona con ogni stile, incluso satellite.',
  'settings.mapHighQuality': 'Modalità alta qualità',
  'settings.mapHighQualityHint': 'Antialiasing + proiezione globo per bordi più nitidi e una vista realistica del mondo.',
  'settings.mapHighQualityWarning': 'Può influire sulle prestazioni su dispositivi meno potenti.',
  'settings.mapTipLabel': 'Suggerimento:',
  'settings.mapTip': 'Click destro e trascina per ruotare/inclinare la mappa. Click centrale per aggiungere un luogo (il click destro è riservato alla rotazione).',
  'settings.latitude': 'Latitudine',
  'settings.longitude': 'Longitudine',
  'settings.saveMap': 'Salva Mappa',
  'settings.apiKeys': 'Chiavi API',
  'settings.mapsKey': 'Chiave API Google Maps',
  'settings.mapsKeyHint': 'Per la ricerca dei luoghi. Richiede Places API (New). Ottienila su console.cloud.google.com',
  'settings.weatherKey': 'Chiave API OpenWeatherMap',
  'settings.weatherKeyHint': 'Per i dati meteo. Gratuita su openweathermap.org/api',
  'settings.keyPlaceholder': 'Inserisci la chiave...',
  'settings.configured': 'Configurata',
  'settings.saveKeys': 'Salva Chiavi',
  'settings.display': 'Visualizzazione',
  'settings.colorMode': 'Modalità Colore',
  'settings.light': 'Chiara',
  'settings.dark': 'Scura',
  'settings.auto': 'Automatica',
  'settings.language': 'Lingua',
  'settings.temperature': 'Unità di Temperatura',
  'settings.timeFormat': 'Formato Ora',
  'settings.routeCalculation': 'Calcolo Percorso',
  'settings.blurBookingCodes': 'Nascondi codici di prenotazione',
  'settings.notifications': 'Notifiche',
  'settings.notifyTripInvite': 'Inviti di viaggio',
  'settings.notifyBookingChange': 'Modifiche alle prenotazioni',
  'settings.notifyTripReminder': 'Promemoria di viaggio',
  'settings.notifyTodoDue': 'Attività in scadenza',
  'settings.notifyVacayInvite': 'Inviti fusione Vacay',
  'settings.notifyPhotosShared': 'Foto condivise (Immich)',
  'settings.notifyCollabMessage': 'Messaggi chat (Collab)',
  'settings.notifyPackingTagged': 'Lista valigia: assegnazioni',
  'settings.notifyWebhook': 'Notifiche webhook',
  'settings.notificationsDisabled': 'Le notifiche non sono configurate. Chiedi a un amministratore di abilitare le notifiche e-mail o webhook.',
  'settings.notificationsActive': 'Canale attivo',
  'settings.notificationsManagedByAdmin': 'Gli eventi di notifica sono configurati dall\'amministratore.',
  'settings.on': 'On',
  'settings.off': 'Off',
  'settings.mcp.title': 'Configurazione MCP',
  'settings.mcp.endpoint': 'Endpoint MCP',
  'settings.mcp.clientConfig': 'Configurazione client',
  'settings.mcp.clientConfigHint': 'Sostituisci <your_token> con un token API dalla lista sottostante. Il percorso di npx potrebbe dover essere adattato per il tuo sistema (es. C:\\PROGRA~1\\nodejs\\npx.cmd su 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': 'Copia',
  'settings.mcp.copied': 'Copiato!',
  'settings.mcp.apiTokens': 'Token API',
  'settings.mcp.createToken': 'Crea nuovo token',
  'settings.mcp.noTokens': 'Nessun token ancora. Creane uno per connettere i client MCP.',
  'settings.mcp.tokenCreatedAt': 'Creato',
  'settings.mcp.tokenUsedAt': 'Utilizzato',
  'settings.mcp.deleteTokenTitle': 'Elimina token',
  'settings.mcp.deleteTokenMessage': 'Questo token smetterà di funzionare immediatamente. Qualsiasi client MCP che lo utilizza perderà l\'accesso.',
  'settings.mcp.modal.createTitle': 'Crea token API',
  'settings.mcp.modal.tokenName': 'Nome del token',
  'settings.mcp.modal.tokenNamePlaceholder': 'es. Claude Desktop, Laptop di lavoro',
  'settings.mcp.modal.creating': 'Creazione…',
  'settings.mcp.modal.create': 'Crea token',
  'settings.mcp.modal.createdTitle': 'Token creato',
  'settings.mcp.modal.createdWarning': 'Questo token verrà mostrato solo una volta. Copialo e salvalo ora — non può essere recuperato.',
  'settings.mcp.modal.done': 'Fatto',
  'settings.mcp.toast.created': 'Token creato',
  'settings.mcp.toast.createError': 'Impossibile creare il token',
  'settings.mcp.toast.deleted': 'Token eliminato',
  'settings.mcp.toast.deleteError': 'Impossibile eliminare il token',
  'settings.mcp.apiTokensDeprecated': 'I token API sono deprecati e verranno rimossi in una versione futura. Utilizza invece i client OAuth 2.1.',
  'settings.oauth.clients': 'Client OAuth 2.1',
  'settings.oauth.clientsHint': 'Registra client OAuth 2.1 per consentire alle applicazioni MCP di terze parti (Claude Web, Cursor, ecc.) di connettersi senza token statici.',
  'settings.oauth.createClient': 'Nuovo client',
  'settings.oauth.noClients': 'Nessun client OAuth registrato.',
  'settings.oauth.clientId': 'ID client',
  'settings.oauth.clientSecret': 'Segreto client',
  'settings.oauth.deleteClient': 'Elimina client',
  'settings.oauth.deleteClientMessage': 'Questo client e tutte le sessioni attive verranno eliminati definitivamente. Qualsiasi applicazione che lo utilizza perderà immediatamente l\'accesso.',
  'settings.oauth.rotateSecret': 'Rinnova segreto',
  'settings.oauth.rotateSecretMessage': 'Verrà generato un nuovo segreto client e tutte le sessioni esistenti verranno invalidate immediatamente. Aggiorna la tua applicazione prima di chiudere questa finestra.',
  'settings.oauth.rotateSecretConfirm': 'Rinnova',
  'settings.oauth.rotateSecretConfirming': 'Rinnovo in corso…',
  'settings.oauth.rotateSecretDoneTitle': 'Nuovo segreto generato',
  'settings.oauth.rotateSecretDoneWarning': 'Questo segreto viene mostrato una sola volta. Copialo ora e aggiorna la tua applicazione — tutte le sessioni precedenti sono state invalidate.',
  'settings.oauth.activeSessions': 'Sessioni OAuth attive',
  'settings.oauth.sessionScopes': 'Ambiti',
  'settings.oauth.sessionExpires': 'Scade',
  'settings.oauth.revoke': 'Revoca',
  'settings.oauth.revokeSession': 'Revoca sessione',
  'settings.oauth.revokeSessionMessage': 'Questo revocherà immediatamente l\'accesso per questa sessione OAuth.',
  'settings.oauth.modal.createTitle': 'Registra client OAuth',
  'settings.oauth.modal.presets': 'Preimpostazioni rapide',
  'settings.oauth.modal.clientName': 'Nome applicazione',
  'settings.oauth.modal.clientNamePlaceholder': 'es. Claude Web, La mia app MCP',
  'settings.oauth.modal.redirectUris': 'URI di reindirizzamento',
  'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth',
  'settings.oauth.modal.redirectUrisHint': 'Un URI per riga. HTTPS richiesto (localhost esente). Corrispondenza esatta richiesta.',
  'settings.oauth.modal.scopes': 'Ambiti consentiti',
  'settings.oauth.modal.scopesHint': 'list_trips e get_trip_summary sono sempre disponibili — nessun ambito richiesto. Permettono all\'IA di scoprire gli ID viaggio necessari.',
  'settings.oauth.modal.selectAll': 'Seleziona tutto',
  'settings.oauth.modal.deselectAll': 'Deseleziona tutto',
  'settings.oauth.modal.creating': 'Registrazione…',
  'settings.oauth.modal.create': 'Registra client',
  'settings.oauth.modal.createdTitle': 'Client registrato',
  'settings.oauth.modal.createdWarning': 'Il segreto client viene mostrato una sola volta. Copialo ora — non può essere recuperato.',
  'settings.oauth.toast.createError': 'Impossibile registrare il client OAuth',
  'settings.oauth.toast.deleted': 'Client OAuth eliminato',
  'settings.oauth.toast.deleteError': 'Impossibile eliminare il client OAuth',
  'settings.oauth.toast.revoked': 'Sessione revocata',
  'settings.oauth.toast.revokeError': 'Impossibile revocare la sessione',
  'settings.oauth.toast.rotateError': 'Impossibile rinnovare il segreto client',
  'settings.account': 'Account',
  'settings.about': 'Informazioni',
  'settings.about.reportBug': 'Segnala un bug',
  'settings.about.reportBugHint': 'Hai trovato un problema? Faccelo sapere',
  'settings.about.featureRequest': 'Richiedi funzionalità',
  'settings.about.featureRequestHint': 'Suggerisci una nuova funzionalità',
  'settings.about.wikiHint': 'Documentazione e guide',
  'settings.about.supporters.badge': 'Sostenitori Mensili',
  'settings.about.supporters.title': 'Compagni di viaggio per TREK',
  'settings.about.supporters.subtitle': 'Mentre pianifichi il tuo prossimo itinerario, queste persone aiutano a pianificare il futuro di TREK. Il loro contributo mensile va direttamente allo sviluppo e alle ore realmente investite — per mantenere TREK Open Source.',
  'settings.about.supporters.since': 'sostenitore da {date}',
  'settings.about.supporters.tierEmpty': 'Sii il primo',
  '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 è un pianificatore di viaggi self-hosted che ti aiuta a organizzare i tuoi viaggi dalla prima idea all\'ultimo ricordo. Pianificazione giornaliera, budget, liste bagagli, foto e molto altro — tutto in un unico posto, sul tuo server.',
  'settings.about.madeWith': 'Fatto con',
  'settings.about.madeBy': 'da Maurice e una crescente comunità open-source.',
  'settings.username': 'Nome utente',
  'settings.email': 'Email',
  'settings.role': 'Ruolo',
  'settings.roleAdmin': 'Amministratore',
  'settings.oidcLinked': 'Collegato con',
  'settings.changePassword': 'Cambia Password',
  'settings.currentPassword': 'Password attuale',
  'settings.currentPasswordRequired': 'La password attuale è obbligatoria',
  'settings.newPassword': 'Nuova password',
  'settings.confirmPassword': 'Conferma nuova password',
  'settings.updatePassword': 'Aggiorna password',
  'settings.passwordRequired': 'Inserisci la password attuale e quella nuova',
  'settings.passwordTooShort': 'La password deve contenere almeno 8 caratteri',
  'settings.passwordMismatch': 'Le password non corrispondono',
  'settings.passwordWeak': 'La password deve contenere lettere maiuscole, minuscole, un numero e un carattere speciale',
  'settings.passwordChanged': 'Password cambiata con successo',
  'settings.deleteAccount': 'Elimina account',
  'settings.deleteAccountTitle': 'Eliminare il tuo account?',
  'settings.deleteAccountWarning': 'Il tuo account e tutti i tuoi viaggi, luoghi e file verranno eliminati in modo permanente. Questa azione non può essere annullata.',
  'settings.deleteAccountConfirm': 'Elimina in modo permanente',
  'settings.deleteBlockedTitle': 'Eliminazione impossibile',
  'settings.deleteBlockedMessage': 'Sei l\'unico amministratore. Promuovi un altro utente ad amministratore prima di eliminare il tuo account.',
  'settings.roleUser': 'Utente',
  'settings.saveProfile': 'Salva Profillo',
  'settings.toast.mapSaved': 'Impostazioni mappa salvate',
  'settings.toast.keysSaved': 'Chiavi API salvate',
  'settings.toast.displaySaved': 'Impostazioni di visualizzazione salvate',
  'settings.toast.profileSaved': 'Profilo salvato',
  'settings.uploadAvatar': 'Carica Immagine del Profilo',
  'settings.removeAvatar': 'Rimuovi Immagine del Profilo',
  'settings.avatarUploaded': 'Immagine del profilo aggiornata',
  'settings.avatarRemoved': 'Immagine del profilo rimossa',
  'settings.avatarError': 'Impossibile caricare',
  'settings.mfa.title': 'Autenticazione a due fattori (2FA)',
  'settings.mfa.description': 'Aggiunge un secondo passaggio quando accedi con email e password. Usa un\'app authenticator (Google Authenticator, Authy, ecc.).',
  'settings.mfa.requiredByPolicy': 'L\'amministratore richiede l\'autenticazione a due fattori. Configura un\'app authenticator qui sotto prima di continuare.',
  'settings.mfa.backupTitle': 'Codici di backup',
  'settings.mfa.backupDescription': 'Usa questi codici monouso se perdi l\'accesso alla tua app authenticator.',
  'settings.mfa.backupWarning': 'Salvali adesso. Ogni codice può essere usato una sola volta.',
  'settings.mfa.backupCopy': 'Copia codici',
  'settings.mfa.backupDownload': 'Scarica TXT',
  'settings.mfa.backupPrint': 'Stampa / PDF',
  'settings.mfa.backupCopied': 'Codici di backup copiati',
  'settings.mfa.enabled': 'La 2FA è abilitata sul tuo account.',
  'settings.mfa.disabled': 'La 2FA non è abilitata.',
  'settings.mfa.setup': 'Configura authenticator',
  'settings.mfa.scanQr': 'Scansiona questo codice QR con la tua app, o inserisci il segreto manualmente.',
  'settings.mfa.secretLabel': 'Chiave segreta (inserimento manuale)',
  'settings.mfa.codePlaceholder': 'Codice a 6 cifre',
  'settings.mfa.enable': 'Abilita 2FA',
  'settings.mfa.cancelSetup': 'Annulla',
  'settings.mfa.disableTitle': 'Disabilita 2FA',
  'settings.mfa.disableHint': 'Inserisci la password del tuo account e un codice attuale dal tuo authenticator.',
  'settings.mfa.disable': 'Disabilita 2FA',
  'settings.mfa.toastEnabled': 'Autenticazione a due fattori abilitata',
  'settings.mfa.toastDisabled': 'Autenticazione a due fattori disabilitata',
  'settings.mfa.demoBlocked': 'Non disponibile in modalità demo',
  'settings.mustChangePassword': 'Devi cambiare la password prima di continuare. Imposta una nuova password qui sotto.',
  'admin.notifications.title': 'Notifiche',
  'admin.notifications.hint': 'Scegli un canale di notifica. Solo uno può essere attivo alla volta.',
  'admin.notifications.none': 'Disattivato',
  'admin.notifications.email': 'E-mail (SMTP)',
  'admin.notifications.webhook': 'Webhook',
  'admin.notifications.save': 'Salva impostazioni notifiche',
  'admin.notifications.saved': 'Impostazioni notifiche salvate',
  'admin.notifications.testWebhook': 'Invia webhook di test',
  'admin.notifications.testWebhookSuccess': 'Webhook di test inviato con successo',
  'admin.notifications.testWebhookFailed': 'Invio webhook di test fallito',
  'admin.smtp.title': 'Email e notifiche',
  'admin.smtp.hint': 'Configurazione SMTP per l\'invio delle notifiche via e-mail.',
  'admin.smtp.testButton': 'Invia email di prova',
  'admin.webhook.hint': 'Invia notifiche a un webhook esterno (Discord, Slack, ecc.).',
  'admin.smtp.testSuccess': 'Email di prova inviata con successo',
  'admin.smtp.testFailed': 'Invio email di prova fallito',
  'dayplan.icsTooltip': 'Esporta calendario (ICS)',
  'share.linkTitle': 'Link pubblico',
  'share.linkHint': 'Crea un link che chiunque può usare per visualizzare questo viaggio senza accedere. Solo lettura — nessuna modifica possibile.',
  'share.createLink': 'Crea link',
  'share.deleteLink': 'Elimina link',
  'share.createError': 'Impossibile creare il link',
  'common.copy': 'Copia',
  'common.copied': 'Copiato',
  'share.permMap': 'Mappa e programma',
  'share.permBookings': 'Prenotazioni',
  'share.permPacking': 'Valigia',
  'shared.expired': 'Link scaduto o non valido',
  'shared.expiredHint': 'Questo link di viaggio condiviso non è più attivo.',
  'shared.readOnly': 'Vista in sola lettura',
  'shared.tabPlan': 'Programma',
  'shared.tabBookings': 'Prenotazioni',
  'shared.tabPacking': 'Valigia',
  'shared.tabBudget': 'Budget',
  'shared.tabChat': 'Chat',
  'shared.days': 'giorni',
  'shared.places': 'luoghi',
  'shared.other': 'Altro',
  'shared.totalBudget': 'Budget totale',
  'shared.messages': 'messaggi',
  'shared.sharedVia': 'Condiviso tramite',
  'shared.confirmed': 'Confermato',
  'shared.pending': 'In attesa',
  'share.permBudget': 'Budget',
  'share.permCollab': 'Chat',

  // Login
  'login.error': 'Accesso fallito. Controlla le tue credenziali.',
  'login.tagline': 'I tuoi viaggi.\nIl tuo programma.',
  'login.description': 'Programma viaggi in collaborazione con mappe interattive, budget e sincronizzazione in tempo reale.',
  'login.features.maps': 'Mappe Interattive',
  'login.features.mapsDesc': 'Google Places, percorsi e clustering',
  'login.features.realtime': 'Sincronizzazione in tempo reale',
  'login.features.realtimeDesc': 'Programmate insieme tramite WebSocket',
  'login.features.budget': 'Tracciamento Budget',
  'login.features.budgetDesc': 'Categorie, grafici e costi per persona',
  'login.features.collab': 'Collaborazione',
  'login.features.collabDesc': 'Multi-utente con viaggi condivisi',
  'login.features.packing': 'Lista Valigia',
  'login.features.packingDesc': 'Categorie, progressi e suggerimenti',
  'login.features.bookings': 'Prenotazioni',
  'login.features.bookingsDesc': 'Voli, alloggi, ristoranti e altro',
  'login.features.files': 'Documenti',
  'login.features.filesDesc': 'Carica e gestisci i documenti',
  'login.features.routes': 'Percorsi Intelligenti',
  'login.features.routesDesc': 'Ottimizzazione automatica ed esportazione su Google Maps',
  'login.selfHosted': 'Self-hosted · Open Source · Your data stays yours',
  'login.title': 'Accedi',
  'login.subtitle': 'Bentornato',
  'login.signingIn': 'Accesso in corso…',
  'login.signIn': 'Accedi',
  'login.createAdmin': 'Crea Account Amministratore',
  'login.createAdminHint': 'Imposta il primo account amministratore per TREK.',
  'login.setNewPassword': 'Imposta nuova password',
  'login.setNewPasswordHint': 'Devi cambiare la password prima di continuare.',
  'login.createAccount': 'Crea Account',
  'login.createAccountHint': 'Registra un nuovo account.',
  'login.creating': 'Creazione in corso…',
  'login.noAccount': "Non hai un account?",
  'login.hasAccount': 'Hai già un account?',
  'login.register': 'Registrati',
  'login.emailPlaceholder': 'tua@email.com',
  'login.username': 'Nome utente',
  'login.oidc.registrationDisabled': 'La registrazione è disabilitata. Contatta il tuo amministratore.',
  'login.oidc.noEmail': 'Nessuna email ricevuta dal provider.',
  'login.oidc.tokenFailed': 'Autenticazione fallita.',
  'login.oidc.invalidState': 'Sessione non valida. Riprova.',
  'login.demoFailed': 'Accesso demo fallito',
  'login.oidcSignIn': 'Accedi con {name}',
  'login.oidcOnly': 'L\'autenticazione tramite password è disabilitata. Accedi utilizzando il tuo provider SSO.',
  'login.oidcLoggedOut': 'Sei stato disconnesso. Accedi nuovamente tramite il tuo provider SSO.',
  'login.demoHint': 'Prova la demo — nessuna registrazione necessaria',
  'login.mfaTitle': 'Autenticazione a due fattori',
  'login.mfaSubtitle': 'Inserisci il codice a 6 cifre dalla tua app authenticator.',
  'login.mfaCodeLabel': 'Codice di verifica',
  'login.mfaCodeRequired': 'Inserisci il codice dalla tua app authenticator.',
  'login.mfaHint': 'Apri Google Authenticator, Authy o un\'altra app TOTP.',
  'login.mfaBack': '← Torna all\'accesso',
  'login.mfaVerify': 'Verifica',
  'login.invalidInviteLink': 'Link di invito non valido o scaduto',
  'login.oidcFailed': 'Accesso OIDC non riuscito',
  'login.usernameRequired': 'Il nome utente è obbligatorio',
  'login.passwordMinLength': 'La password deve contenere almeno 8 caratteri',
  'login.forgotPassword': 'Password dimenticata?',
  'login.forgotPasswordTitle': 'Reimposta la password',
  'login.forgotPasswordBody': 'Inserisci l’indirizzo email del tuo account. Se esiste un account, invieremo un link per reimpostarla.',
  'login.forgotPasswordSubmit': 'Invia link',
  'login.forgotPasswordSentTitle': 'Controlla la tua email',
  'login.forgotPasswordSentBody': 'Se esiste un account con questa email, il link è in arrivo. Scade tra 60 minuti.',
  'login.forgotPasswordSmtpHintOff': 'Nota: il tuo amministratore non ha configurato SMTP, quindi il link di reset verrà scritto nella console del server invece di essere inviato via email.',
  'login.backToLogin': 'Torna all’accesso',
  'login.newPassword': 'Nuova password',
  'login.confirmPassword': 'Conferma nuova password',
  'login.passwordsDontMatch': 'Le password non corrispondono',
  'login.mfaCode': 'Codice 2FA',
  'login.resetPasswordTitle': 'Imposta una nuova password',
  'login.resetPasswordBody': 'Scegli una password robusta che non hai già usato qui. Minimo 8 caratteri.',
  'login.resetPasswordMfaBody': 'Inserisci il codice 2FA o un codice di backup per completare il reset.',
  'login.resetPasswordSubmit': 'Reimposta password',
  'login.resetPasswordVerify': 'Verifica e reimposta',
  'login.resetPasswordSuccessTitle': 'Password aggiornata',
  'login.resetPasswordSuccessBody': 'Ora puoi accedere con la nuova password.',
  'login.resetPasswordInvalidLink': 'Link di reset non valido',
  'login.resetPasswordInvalidLinkBody': 'Il link è mancante o danneggiato. Richiedine uno nuovo per continuare.',
  'login.resetPasswordFailed': 'Reset non riuscito. Il link potrebbe essere scaduto.',

  // Register
  'register.passwordMismatch': 'Le password non corrispondono',
  'register.passwordTooShort': 'La password deve contenere almeno 8 caratteri',
  'register.failed': 'Registrazione fallita',
  'register.getStarted': 'Inizia',
  'register.subtitle': 'Crea un account e inizia a programmare i viaggi dei tuoi sogni.',
  'register.feature1': 'Piani di viaggio illimitati',
  'register.feature2': 'Vista mappa interattiva',
  'register.feature3': 'Gestisci luoghi e categorie',
  'register.feature4': 'Traccia le prenotazioni',
  'register.feature5': 'Crea liste per la valigia',
  'register.feature6': 'Archivia foto e file',
  'register.createAccount': 'Crea Account',
  'register.startPlanning': 'Inizia a programmare il tuo viaggio',
  'register.minChars': 'Min. 6 caratteri',
  'register.confirmPassword': 'Conferma Password',
  'register.repeatPassword': 'Ripeti password',
  'register.registering': 'Registrazione in corso...',
  'register.register': 'Registrati',
  'register.hasAccount': 'Hai già un account?',
  'register.signIn': 'Accedi',

  // Admin
  'admin.title': 'Amministrazione',
  'admin.subtitle': 'Gestione utenti e impostazioni di sistema',
  'admin.tabs.users': 'Utenti',
  'admin.tabs.categories': 'Categorie',
  'admin.tabs.backup': 'Backup',
  'admin.stats.users': 'Utenti',
  'admin.stats.trips': 'Viaggi',
  'admin.stats.places': 'Luoghi',
  'admin.stats.photos': 'Foto',
  'admin.stats.files': 'File',
  'admin.table.user': 'Utente',
  'admin.table.email': 'Email',
  'admin.table.role': 'Ruolo',
  'admin.table.created': 'Creato',
  'admin.table.lastLogin': 'Ultimo Accesso',
  'admin.table.actions': 'Azioni',
  'admin.you': '(Tu)',
  'admin.editUser': 'Modifica Utente',
  'admin.newPassword': 'Nuova Password',
  'admin.newPasswordHint': 'Lascia vuoto per mantenere la password attuale',
  'admin.deleteUser': 'Eliminare l\'utente "{name}"? Tutti i viaggi verranno eliminati in modo permanente.',
  'admin.deleteUserTitle': 'Elimina utente',
  'admin.newPasswordPlaceholder': 'Inserisci nuova password…',
  'admin.toast.loadError': 'Impossibile caricare i dati di amministrazione',
  'admin.toast.userUpdated': 'Utente aggiornato',
  'admin.toast.updateError': 'Impossibile aggiornare',
  'admin.toast.userDeleted': 'Utente eliminato',
  'admin.toast.deleteError': 'Impossibile eliminare',
  'admin.toast.cannotDeleteSelf': 'Impossibile eliminare il proprio account',
  'admin.toast.userCreated': 'Utente creato',
  'admin.toast.createError': 'Impossibile creare l\'utente',
  'admin.toast.fieldsRequired': 'Username, email e password sono obbligatori',
  'admin.createUser': 'Crea Utente',
  'admin.invite.title': 'Link di Invito',
  'admin.invite.subtitle': 'Crea link di registrazione monouso',
  'admin.invite.create': 'Crea Link',
  'admin.invite.createAndCopy': 'Crea & Copia',
  'admin.invite.empty': 'Nessun link di invito ancora creato',
  'admin.invite.maxUses': 'Usi Max.',
  'admin.invite.expiry': 'Scade tra',
  'admin.invite.uses': 'usato',
  'admin.invite.expiresAt': 'scade',
  'admin.invite.createdBy': 'da',
  'admin.invite.active': 'Attivo',
  'admin.invite.expired': 'Scaduto',
  'admin.invite.usedUp': 'Esaurito',
  'admin.invite.copied': 'Link di invito copiato negli appunti',
  'admin.invite.copyLink': 'Copia link',
  'admin.invite.deleted': 'Link di invito eliminato',
  'admin.invite.createError': 'Impossibile creare il link di invito',
  'admin.invite.deleteError': 'Impossibile eliminare il link di invito',
  'admin.tabs.settings': 'Impostazioni',
  'admin.allowRegistration': 'Consenti Registrazione',
  'admin.allowRegistrationHint': 'I nuovi utenti possono registrarsi autonomamente',
  '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': 'Richiedi autenticazione a due fattori (2FA)',
  'admin.requireMfaHint': 'Gli utenti senza 2FA devono completare la configurazione in Impostazioni prima di usare l\'app.',
  'admin.apiKeys': 'Chiavi API',
  'admin.apiKeysHint': 'Opzionale. Abilita dati estesi per i luoghi come foto e meteo.',
  'admin.mapsKey': 'Chiave API Google Maps',
  'admin.mapsKeyHint': 'Richiesta per la ricerca dei luoghi. Ottienila su console.cloud.google.com',
  'admin.mapsKeyHintLong': 'Senza una chiave API, OpenStreetMap viene utilizzato per la ricerca dei luoghi. Con una chiave API di Google, è possibile caricare anche foto, valutazioni e orari di apertura. Ottienine una su console.cloud.google.com.',
  'admin.recommended': 'Consigliato',
  'admin.weatherKey': 'Chiave API OpenWeatherMap',
  'admin.weatherKeyHint': 'Per i dati meteo. Gratuita su openweathermap.org',
  'admin.validateKey': 'Testa',
  'admin.keyValid': 'Connessa',
  'admin.keyInvalid': 'Non valida',
  'admin.keySaved': 'Chiavi API salvate',
  'admin.oidcTitle': 'Single Sign-On (OIDC)',
  'admin.oidcSubtitle': 'Consenti l\'accesso tramite provider esterni come Google, Apple, Authentik o Keycloak.',
  'admin.oidcDisplayName': 'Nome Visualizzato',
  'admin.oidcIssuer': 'URL Emittente',
  'admin.oidcIssuerHint': 'L\'URL dell\'Emittente OpenID Connect del provider. es. https://accounts.google.com',
  'admin.oidcSaved': 'Configurazione OIDC salvata',
  'admin.oidcOnlyMode': 'Disabilita autenticazione con password',
  'admin.oidcOnlyModeHint': 'Se abilitato, è consentito solo l\'accesso SSO. L\'accesso basato su password e la registrazione sono bloccati.',

  // File Types
  'admin.fileTypes': 'Tipi di File Consentiti',
  'admin.fileTypesHint': 'Configura quali tipi di file gli utenti possono caricare.',
  'admin.fileTypesFormat': 'Estensioni separate da virgola (es. jpg,png,pdf,doc). Usa * per consentire tutti i tipi.',
  'admin.fileTypesSaved': 'Impostazioni dei tipi di file salvate',
    // Packing Templates & Bag Tracking
  'admin.placesPhotos.title': 'Foto dei luoghi',
  'admin.placesPhotos.subtitle': "Recupera le foto dall'API Google Places. Disabilita per risparmiare la quota API. Le foto di Wikimedia non sono interessate.",
  'admin.placesAutocomplete.title': 'Completamento automatico dei luoghi',
  'admin.placesAutocomplete.subtitle': "Utilizza l'API Google Places per i suggerimenti di ricerca. Disabilita per risparmiare la quota API.",
  'admin.placesDetails.title': 'Dettagli del luogo',
  'admin.placesDetails.subtitle': "Recupera informazioni dettagliate sul luogo (orari, valutazione, sito web) dall'API Google Places. Disabilita per risparmiare la quota API.",
  'admin.bagTracking.title': 'Tracciamento valigia',
  'admin.bagTracking.subtitle': 'Abilita il peso e l\'assegnazione della valigia per gli elementi della lista valigia',
  'admin.collab.chat.title': 'Chat',
  'admin.collab.chat.subtitle': 'Messaggistica in tempo reale per la collaborazione',
  'admin.collab.notes.title': 'Note',
  'admin.collab.notes.subtitle': 'Note e documenti condivisi',
  'admin.collab.polls.title': 'Sondaggi',
  'admin.collab.polls.subtitle': 'Sondaggi e votazioni di gruppo',
  'admin.collab.whatsnext.title': 'Prossimi passi',
  'admin.collab.whatsnext.subtitle': 'Suggerimenti attività e prossimi passi',
  'admin.tabs.config': 'Personalizzazione',
  'admin.tabs.defaults': 'Impostazioni predefinite',
  'admin.defaultSettings.title': 'Impostazioni predefinite utente',
  'admin.defaultSettings.description': "Imposta i valori predefiniti per l'intera istanza. Gli utenti che non hanno modificato un'impostazione vedranno questi valori. Le loro modifiche hanno sempre la priorità.",
  'admin.defaultSettings.saved': 'Predefinito salvato',
  'admin.defaultSettings.reset': 'Ripristina il predefinito integrato',
  'admin.defaultSettings.resetToBuiltIn': 'ripristina',
  'admin.tabs.templates': 'Modelli lista valigia',
  'admin.packingTemplates.title': 'Modelli lista valigia',
  'admin.packingTemplates.subtitle': 'Crea liste valigia riutilizzabili per i tuoi viaggi',
  'admin.packingTemplates.create': 'Nuovo modello',
  'admin.packingTemplates.namePlaceholder': 'Nome modello (es. Vacanza al mare)',
  'admin.packingTemplates.empty': 'Ancora nessun modello creato',
  'admin.packingTemplates.items': 'elementi',
  'admin.packingTemplates.categories': 'categorie',
  'admin.packingTemplates.itemName': 'Nome elemento',
  'admin.packingTemplates.itemCategory': 'Categoria',
  'admin.packingTemplates.categoryName': 'Nome categoria (es. Abbigliamento)',
  'admin.packingTemplates.addCategory': 'Aggiungi categoria',
  'admin.packingTemplates.created': 'Modello creato',
  'admin.packingTemplates.deleted': 'Modello eliminato',
  'admin.packingTemplates.loadError': 'Impossibile caricare i modelli',
  'admin.packingTemplates.createError': 'Impossibile creare il modello',
  'admin.packingTemplates.deleteError': 'Impossibile eliminare il modello',
  'admin.packingTemplates.saveError': 'Impossibile salvare',

  // Addons
  'admin.tabs.addons': 'Moduli',
  'admin.addons.title': 'Moduli',
  'admin.addons.subtitle': 'Abilita o disabilita le funzionalità per personalizzare la tua esperienza TREK.',
  'admin.addons.catalog.packing.name': 'Liste',
  'admin.addons.catalog.packing.description': 'Liste di imballaggio e attività da svolgere per i tuoi viaggi',
  'admin.addons.catalog.budget.name': 'Budget',
  'admin.addons.catalog.budget.description': 'Tieni traccia delle spese e pianifica il budget del tuo viaggio',
  'admin.addons.catalog.documents.name': 'Documenti',
  'admin.addons.catalog.documents.description': 'Archivia e gestisci i documenti di viaggio',
  'admin.addons.catalog.vacay.name': 'Ferie',
  'admin.addons.catalog.vacay.description': 'Pianificatore personale delle ferie con vista calendario',
  'admin.addons.catalog.atlas.name': 'Atlante',
  'admin.addons.catalog.atlas.description': 'Mappa del mondo con paesi visitati e statistiche di viaggio',
  'admin.addons.catalog.collab.name': 'Collaborazione',
  'admin.addons.catalog.collab.description': 'Note, sondaggi e chat in tempo reale per la pianificazione del viaggio',
  'admin.addons.catalog.memories.name': 'Foto (Immich)',
  'admin.addons.catalog.memories.description': 'Condividi le foto del viaggio tramite la tua istanza Immich',
  'admin.addons.catalog.mcp.name': 'MCP',
  'admin.addons.catalog.mcp.description': 'Model Context Protocol per l\'integrazione di assistenti AI',
  'admin.addons.subtitleBefore': 'Abilita o disabilita le funzionalità per personalizzare la tua ',
  'admin.addons.subtitleAfter': ' esperienza.',
  'admin.addons.enabled': 'Abilitato',
  'admin.addons.disabled': 'Disabilitato',
  'admin.addons.type.trip': 'Viaggio',
  'admin.addons.type.global': 'Globale',
  'admin.addons.type.integration': 'Integrazione',
  'admin.addons.tripHint': 'Disponibile come scheda all\'interno di ciascun viaggio',
  'admin.addons.globalHint': 'Disponibile come sezione autonoma nella navigazione principale',
  'admin.addons.integrationHint': 'Servizi backend e integrazioni API senza pagina dedicata',
  'admin.addons.toast.updated': 'Modulo aggiornato',
  'admin.addons.toast.error': 'Impossibile aggiornare il modulo',
  'admin.addons.noAddons': 'Nessun modulo disponibile',

  // Weather info
  'admin.weather.title': 'Dati meteo',
  'admin.weather.badge': 'Dal 24 marzo 2026',
  'admin.weather.description': 'TREK utilizza Open-Meteo come fonte dei dati meteo. Open-Meteo è un servizio meteo gratuito e open-source — non è richiesta alcuna chiave API.',
  'admin.weather.forecast': 'Previsioni a 16 giorni',
  'admin.weather.forecastDesc': 'In precedenza 5 giorni (OpenWeatherMap)',
  'admin.weather.climate': 'Dati climatici storici',
  'admin.weather.climateDesc': 'Medie degli ultimi 85 anni per i giorni oltre le previsioni a 16 giorni',
  'admin.weather.requests': '10.000 richieste / giorno',
  'admin.weather.requestsDesc': 'Gratis, nessuna chiave API richiesta',
  'admin.weather.locationHint': 'Il meteo si basa sul primo luogo con coordinate di ogni giorno. Se a un giorno non è assegnato alcun luogo, viene utilizzato come riferimento un qualsiasi luogo dell\'elenco.',

  'admin.tabs.audit': 'Audit',

  'admin.audit.subtitle': 'Eventi sensibili di sicurezza e amministrazione (backup, utenti, 2FA, impostazioni).',
  'admin.audit.empty': 'Nessuna voce di audit.',
  'admin.audit.refresh': 'Aggiorna',
  'admin.audit.loadMore': 'Carica altro',
  'admin.audit.showing': '{count} caricati · {total} totali',
  'admin.audit.col.time': 'Ora',
  'admin.audit.col.user': 'Utente',
  'admin.audit.col.action': 'Azione',
  'admin.audit.col.resource': 'Risorsa',
  'admin.audit.col.ip': 'IP',
  'admin.audit.col.details': 'Dettagli',

  // MCP Tokens
  'admin.tabs.mcpTokens': 'Accesso MCP',
  'admin.mcpTokens.title': 'Accesso MCP',
  'admin.mcpTokens.subtitle': 'Gestisci le sessioni OAuth e i token API di tutti gli utenti',
  'admin.mcpTokens.sectionTitle': 'Token API',
  'admin.mcpTokens.owner': 'Proprietario',
  'admin.mcpTokens.tokenName': 'Nome token',
  'admin.mcpTokens.created': 'Creato',
  'admin.mcpTokens.lastUsed': 'Ultimo utilizzo',
  'admin.mcpTokens.never': 'Mai',
  'admin.mcpTokens.empty': 'Non sono ancora stati creati token MCP',
  'admin.mcpTokens.deleteTitle': 'Elimina token',
  'admin.mcpTokens.deleteMessage': 'Questo token verrà revocato immediatamente. L\'utente perderà l\'accesso MCP tramite questo token.',
  'admin.mcpTokens.deleteSuccess': 'Token eliminato',
  'admin.mcpTokens.deleteError': 'Impossibile eliminare il token',
  'admin.mcpTokens.loadError': 'Impossibile caricare i token',
  'admin.oauthSessions.sectionTitle': 'Sessioni OAuth',
  'admin.oauthSessions.clientName': 'Client',
  'admin.oauthSessions.owner': 'Proprietario',
  'admin.oauthSessions.scopes': 'Ambiti',
  'admin.oauthSessions.created': 'Creato',
  'admin.oauthSessions.empty': 'Nessuna sessione OAuth attiva',
  'admin.oauthSessions.revokeTitle': 'Revoca sessione',
  'admin.oauthSessions.revokeMessage': 'Questa sessione OAuth verrà revocata immediatamente. Il client perderà l\'accesso MCP.',
  'admin.oauthSessions.revokeSuccess': 'Sessione revocata',
  'admin.oauthSessions.revokeError': 'Impossibile revocare la sessione',
  'admin.oauthSessions.loadError': 'Impossibile caricare le sessioni OAuth',

  // GitHub
  'admin.tabs.github': 'GitHub',
  'admin.github.title': 'Cronologia rilasci',
  'admin.github.subtitle': 'Ultimi aggiornamenti da {repo}',
  'admin.github.latest': 'Ultimo',
  'admin.github.prerelease': 'Pre-release',
  'admin.github.showDetails': 'Mostra dettagli',
  'admin.github.hideDetails': 'Nascondi dettagli',
  'admin.github.loadMore': 'Carica altro',
  'admin.github.loading': 'Caricamento...',
  'admin.github.error': 'Impossibile caricare i rilasci',
  'admin.github.by': 'da',
  'admin.github.support': 'Mi aiuta a continuare a sviluppare TREK',

  'admin.update.available': 'Aggiornamento disponibile',
  'admin.update.text': 'TREK {version} è disponibile. Stai eseguendo {current}.',
  'admin.update.button': 'Vedi su GitHub',
  'admin.update.install': 'Installa aggiornamento',
  'admin.update.confirmTitle': 'Installare l\'aggiornamento?',
  'admin.update.confirmText': 'TREK verrà aggiornato da {current} a {version}. Il server si riavvierà automaticamente in seguito.',
  'admin.update.dataInfo': 'Tutti i tuoi dati (viaggi, utenti, chiavi API, caricamenti, Ferie, Atlante, budget) saranno preservati.',
  'admin.update.warning': 'L\'app sarà temporaneamente non disponibile durante il riavvio.',
  'admin.update.confirm': 'Aggiorna ora',
  'admin.update.installing': 'Aggiornamento in corso…',
  'admin.update.success': 'Aggiornamento installato! Il server si sta riavviando…',
  'admin.update.failed': 'Aggiornamento non riuscito',
  'admin.update.backupHint': 'Ti consigliamo di creare un backup prima di aggiornare.',
  'admin.update.backupLink': 'Vai a Backup',
  'admin.update.howTo': 'Come aggiornare',
  'admin.update.dockerText': 'La tua istanza TREK è in esecuzione in Docker. Per aggiornare alla versione {version}, esegui i seguenti comandi sul tuo server:',
  'admin.update.reloadHint': 'Ricarica la pagina tra qualche secondo.',

  // Vacay addon
  'vacay.subtitle': 'Pianifica e gestisci i giorni di ferie',
  'vacay.settings': 'Impostazioni',
  'vacay.year': 'Anno',
  'vacay.addYear': 'Aggiungi anno successivo',
  'vacay.addPrevYear': 'Aggiungi anno precedente',
  'vacay.removeYear': 'Rimuovi anno',
  'vacay.removeYearConfirm': 'Rimuovere {year}?',
  'vacay.removeYearHint': 'Tutte le voci delle ferie e le ferie aziendali di questo anno verranno eliminate in modo permanente.',
  'vacay.remove': 'Rimuovi',
  'vacay.persons': 'Persone',
  'vacay.noPersons': 'Nessuna persona aggiunta',
  'vacay.addPerson': 'Aggiungi persona',
  'vacay.editPerson': 'Modifica persona',
  'vacay.removePerson': 'Rimuovi persona',
  'vacay.removePersonConfirm': 'Rimuovere {name}?',
  'vacay.removePersonHint': 'Tutte le voci delle ferie per questa persona verranno eliminate in modo permanente.',
  'vacay.personName': 'Nome',
  'vacay.personNamePlaceholder': 'Inserisci nome',
  'vacay.color': 'Colore',
  'vacay.add': 'Aggiungi',
  'vacay.legend': 'Legenda',
  'vacay.publicHoliday': 'Festività pubblica',
  'vacay.companyHoliday': 'Ferie aziendali',
  'vacay.weekend': 'Weekend',
  'vacay.modeVacation': 'Ferie',
  'vacay.modeCompany': 'Ferie aziendali',
  'vacay.entitlement': 'Disponibilità',
  'vacay.entitlementDays': 'Giorni',
  'vacay.used': 'Usati',
  'vacay.remaining': 'Rimanenti',
  'vacay.carriedOver': 'dal {year}',
  'vacay.blockWeekends': 'Blocca weekend',
  'vacay.blockWeekendsHint': 'Impedisci le voci ferie nei giorni del weekend',
  'vacay.weekendDays': 'Giorni del weekend',
  'vacay.mon': 'Lun',
  'vacay.tue': 'Mar',
  'vacay.wed': 'Mer',
  'vacay.thu': 'Gio',
  'vacay.fri': 'Ven',
  'vacay.sat': 'Sab',
  'vacay.sun': 'Dom',
  'vacay.publicHolidays': 'Festività pubbliche',
  'vacay.publicHolidaysHint': 'Segna le festività pubbliche nel calendario',
  'vacay.selectCountry': 'Seleziona paese',
  'vacay.selectRegion': 'Seleziona regione (opzionale)',
  'vacay.addCalendar': 'Aggiungi calendario',
  'vacay.calendarLabel': 'Etichetta (opzionale)',
  'vacay.calendarColor': 'Colore',
  'vacay.noCalendars': 'Ancora nessun calendario delle festività aggiunto',
  'vacay.companyHolidays': 'Ferie aziendali',
  'vacay.companyHolidaysHint': 'Consenti di segnare giorni di ferie aziendali',
  'vacay.companyHolidaysNoDeduct': 'Le ferie aziendali non vengono conteggiate nei giorni di ferie.',
  'vacay.weekStart': 'La settimana inizia il',
  'vacay.weekStartHint': 'Scegli se la settimana inizia il lunedì o la domenica',
  'vacay.carryOver': 'Riporto',
  'vacay.carryOverHint': 'Riporta automaticamente i giorni di ferie rimanenti all\'anno successivo',
  'vacay.sharing': 'Condivisione',
  'vacay.sharingHint': 'Condividi il tuo piano ferie con altri utenti TREK',
  'vacay.owner': 'Proprietario',
  'vacay.shareEmailPlaceholder': 'Email dell\'utente TREK',
  'vacay.shareSuccess': 'Piano condiviso con successo',
  'vacay.shareError': 'Impossibile condividere il piano',
  'vacay.dissolve': 'Sciogli unione',
  'vacay.dissolveHint': 'Separa di nuovo i calendari. Le tue voci verranno mantenute.',
  'vacay.dissolveAction': 'Sciogli',
  'vacay.dissolved': 'Calendario separato',
  'vacay.fusedWith': 'Unito con',
  'vacay.you': 'tu',
  'vacay.noData': 'Nessun dato',
  'vacay.changeColor': 'Cambia colore',
  'vacay.inviteUser': 'Invita utente',
  'vacay.inviteHint': 'Invita un altro utente TREK a condividere un calendario ferie combinato.',
  'vacay.selectUser': 'Seleziona utente',
  'vacay.sendInvite': 'Invia invito',
  'vacay.inviteSent': 'Invito inviato',
  'vacay.inviteError': 'Impossibile inviare l\'invito',
  'vacay.pending': 'in attesa',
  'vacay.noUsersAvailable': 'Nessun utente disponibile',
  'vacay.accept': 'Accetta',
  'vacay.decline': 'Rifiuta',
  'vacay.acceptFusion': 'Accetta e unisci',
  'vacay.inviteTitle': 'Richiesta di unione',
  'vacay.inviteWantsToFuse': 'vuole condividere con te un calendario ferie.',
  'vacay.fuseInfo1': 'Entrambi vedrete tutte le voci ferie in un unico calendario condiviso.',
  'vacay.fuseInfo2': 'Entrambe le parti possono creare e modificare le voci reciproche.',
  'vacay.fuseInfo3': 'Entrambe le parti possono eliminare le voci e modificare le disponibilità ferie.',
  'vacay.fuseInfo4': 'Le impostazioni come festività pubbliche e ferie aziendali sono condivise.',
  'vacay.fuseInfo5': 'L\'unione può essere sciolta in qualsiasi momento da una delle due parti. Le tue voci verranno preservate.',
  'nav.myTrips': 'I miei viaggi',

  // Atlas addon
  'atlas.subtitle': 'La tua impronta di viaggio nel mondo',
  'atlas.countries': 'Paesi',
  'atlas.trips': 'Viaggi',
  'atlas.places': 'Luoghi',
  'atlas.unmark': 'Rimuovi',
  'atlas.confirmMark': 'Segnare questo paese come visitato?',
  'atlas.confirmUnmark': 'Rimuovere questo paese dalla tua lista dei visitati?',
  'atlas.confirmUnmarkRegion': 'Rimuovere questa regione dalla tua lista dei visitati?',
  'atlas.markVisited': 'Segna come visitato',
  'atlas.markVisitedHint': 'Aggiungi questo paese alla tua lista dei visitati',
  'atlas.markRegionVisitedHint': 'Aggiungi questa regione alla tua lista dei visitati',
  'atlas.addToBucket': 'Aggiungi alla lista desideri',
  'atlas.addPoi': 'Aggiungi luogo',
  'atlas.bucketNamePlaceholder': 'Nome (paese, città, luogo...)',
  'atlas.month': 'Mese',
  'atlas.addToBucketHint': 'Salvalo come luogo che vuoi visitare',
  'atlas.bucketWhen': 'Quando pensi di visitarlo?',
  'atlas.statsTab': 'Statistiche',
  'atlas.bucketTab': 'Lista desideri',
  'atlas.addBucket': 'Aggiungi alla lista desideri',
  'atlas.bucketNotesPlaceholder': 'Note (opzionale)',
  'atlas.bucketEmpty': 'La tua lista desideri è vuota',
  'atlas.bucketEmptyHint': 'Aggiungi luoghi che sogni di visitare',
  'atlas.days': 'Giorni',
  'atlas.visitedCountries': 'Paesi visitati',
  'atlas.cities': 'Città',
  'atlas.noData': 'Ancora nessun dato di viaggio',
  'atlas.noDataHint': 'Crea un viaggio e aggiungi luoghi per vedere la tua mappa del mondo',
  'atlas.lastTrip': 'Ultimo viaggio',
  'atlas.nextTrip': 'Prossimo viaggio',
  'atlas.daysLeft': 'giorni rimasti',
  'atlas.streak': 'Serie',
  'atlas.year': 'anno',
  'atlas.years': 'anni',
  'atlas.yearInRow': 'anno consecutivo',
  'atlas.yearsInRow': 'anni consecutivi',
  'atlas.tripIn': 'viaggio in',
  'atlas.tripsIn': 'viaggi in',
  'atlas.since': 'dal',
  'atlas.europe': 'Europa',
  'atlas.asia': 'Asia',
  'atlas.northAmerica': 'Nord America',
  'atlas.southAmerica': 'Sud America',
  'atlas.africa': 'Africa',
  'atlas.oceania': 'Oceania',
  'atlas.other': 'Altro',
  'atlas.firstVisit': 'Primo viaggio',
  'atlas.lastVisitLabel': 'Ultimo viaggio',
  'atlas.tripSingular': 'Viaggio',
  'atlas.tripPlural': 'Viaggi',
  'atlas.placeVisited': 'Luogo visitato',
  'atlas.placesVisited': 'Luoghi visitati',
  'atlas.searchCountry': 'Cerca un paese...',

  // Trip Planner
  'trip.tabs.plan': 'Programma',
  'trip.tabs.transports': 'Trasporti',
  'trip.tabs.reservations': 'Prenotazioni',
  'trip.tabs.reservationsShort': 'Pren.',
  'trip.tabs.packing': 'Lista valigia',
  'trip.tabs.packingShort': 'Valigia',
  'trip.tabs.lists': 'Liste',
  'trip.tabs.listsShort': 'Liste',
  'trip.tabs.budget': 'Budget',
  'trip.tabs.files': 'File',
  'trip.loading': 'Caricamento viaggio...',
  'trip.mobilePlan': 'Programma',
  'trip.mobilePlaces': 'Luoghi',
  'trip.toast.placeUpdated': 'Luogo aggiornato',
  'trip.toast.placeAdded': 'Luogo aggiunto',
  'trip.toast.placeDeleted': 'Luogo eliminato',
  'trip.toast.selectDay': 'Seleziona prima un giorno',
  'trip.toast.assignedToDay': 'Luogo assegnato al giorno',
  'trip.toast.reorderError': 'Impossibile riordinare',
  'trip.toast.reservationUpdated': 'Prenotazione aggiornata',
  'trip.toast.reservationAdded': 'Prenotazione aggiunta',
  'trip.toast.deleted': 'Eliminato',
  'trip.confirm.deletePlace': 'Sei sicuro di voler eliminare questo luogo?',
  'trip.confirm.deletePlaces': 'Eliminare {count} luoghi?',
  'trip.toast.placesDeleted': '{count} luoghi eliminati',
  'trip.loadingPhotos': 'Caricamento foto dei luoghi...',

  // Day Plan Sidebar
  'dayplan.emptyDay': 'Nessun luogo programmato per questo giorno',
  'dayplan.addNote': 'Aggiungi nota',
  'dayplan.editNote': 'Modifica nota',
  'dayplan.noteAdd': 'Aggiungi nota',
  'dayplan.noteEdit': 'Modifica nota',
  'dayplan.noteTitle': 'Nota',
  'dayplan.noteSubtitle': 'Nota giornaliera',
  'dayplan.totalCost': 'Costo totale',
  'dayplan.days': 'Giorni',
  'dayplan.dayN': 'Giorno {n}',
  'dayplan.calculating': 'Calcolo in corso...',
  'dayplan.route': 'Percorso',
  'dayplan.optimize': 'Ottimizza',
  'dayplan.optimized': 'Percorso ottimizzato',
  'dayplan.routeError': 'Impossibile calcolare il percorso',
  'dayplan.toast.needTwoPlaces': 'Servono almeno due luoghi per l\'ottimizzazione del percorso',
  'dayplan.toast.routeOptimized': 'Percorso ottimizzato',
  'dayplan.toast.noGeoPlaces': 'Nessun luogo con coordinate trovato per il calcolo del percorso',
  'dayplan.confirmed': 'Confermata',
  'dayplan.pendingRes': 'In attesa',
  'dayplan.pdf': 'PDF',
  'dayplan.pdfTooltip': 'Esporta il programma del giorno come PDF',
  'dayplan.pdfError': 'Impossibile esportare il PDF',
  'dayplan.cannotReorderTransport': 'Le prenotazioni con un orario fisso non possono essere riordinate',
  'dayplan.confirmRemoveTimeTitle': 'Rimuovere l\'orario?',
  'dayplan.confirmRemoveTimeBody': 'Questo luogo ha un orario fisso ({time}). Spostarlo rimuoverà l\'orario e consentirà l\'ordinamento libero.',
  'dayplan.confirmRemoveTimeAction': 'Rimuovi orario e sposta',
  'dayplan.cannotDropOnTimed': 'Gli elementi non possono essere posizionati tra voci con orario fisso',
  'dayplan.cannotBreakChronology': 'Ciò interromperebbe l\'ordine cronologico degli elementi e delle prenotazioni pianificati',

  // Places Sidebar
  'places.addPlace': 'Aggiungi Luogo/Attività',
  'places.importFile': 'Importa file',
  'places.sidebarDrop': 'Rilascia per importare',
  'places.importFileHint': 'Importa file .gpx, .kml o .kmz da strumenti come Google My Maps, Google Earth o un tracker GPS.',
  'places.importFileDropHere': 'Clicca per selezionare un file o trascina e rilascia qui',
  'places.importFileDropActive': 'Rilascia il file per selezionarlo',
  'places.importFileUnsupported': 'Tipo di file non supportato. Usa .gpx, .kml o .kmz.',
  'places.importFileTooLarge': 'Il file è troppo grande. La dimensione massima di caricamento è {maxMb} MB.',
  'places.importFileError': 'Importazione non riuscita',
  'places.importAllSkipped': 'Tutti i luoghi erano già nel viaggio.',
  'places.gpxImported': '{count} luoghi importati da GPX',
  'places.gpxImportTypes': 'Cosa vuoi importare?',
  'places.gpxImportWaypoints': 'Waypoint',
  'places.gpxImportRoutes': 'Percorsi',
  'places.gpxImportTracks': 'Tracce (con geometria percorso)',
  'places.gpxImportNoneSelected': 'Seleziona almeno un tipo da importare.',
  'places.kmlImportTypes': 'Cosa vuoi importare?',
  'places.kmlImportPoints': 'Punti (Placemarks)',
  'places.kmlImportPaths': 'Percorsi (LineStrings)',
  'places.kmlImportNoneSelected': 'Seleziona almeno un tipo.',
  'places.selectionCount': '{count} selezionato/i',
  'places.deleteSelected': 'Elimina selezionati',
  'places.kmlKmzImported': '{count} luoghi importati da KMZ/KML',
  'places.urlResolved': 'Luogo importato dall\'URL',
  'places.importList': 'Importa lista',
  'places.kmlKmzSummaryValues': 'Placemarks: {total} • Importati: {created} • Saltati: {skipped}',
  'places.importGoogleList': 'Lista Google',
  'places.importNaverList': 'Lista Naver',
  'places.googleListHint': 'Incolla un link condiviso di una lista Google Maps per importare tutti i luoghi.',
  'places.googleListImported': '{count} luoghi importati da "{list}"',
  'places.googleListError': 'Importazione lista Google Maps non riuscita',
  'places.naverListHint': 'Incolla un link condiviso di una lista Naver Maps per importare tutti i luoghi.',
  'places.naverListImported': '{count} luoghi importati da "{list}"',
  'places.naverListError': 'Importazione lista Naver Maps non riuscita',
  'places.viewDetails': 'Visualizza dettagli',
  'places.assignToDay': 'A quale giorno aggiungere?',
  'places.all': 'Tutti',
  'places.unplanned': 'Non pianificati',
  'places.filterTracks': 'Tracce',
  'places.search': 'Cerca luoghi...',
  'places.allCategories': 'Tutte le categorie',
  'places.categoriesSelected': 'categorie',
  'places.clearFilter': 'Cancella filtro',
  'places.count': '{count} luoghi',
  'places.countSingular': '1 luogo',
  'places.allPlanned': 'Tutti i luoghi sono programmati',
  'places.noneFound': 'Nessun luogo trovato',
  'places.editPlace': 'Modifica luogo',
  'places.formName': 'Nome',
  'places.formNamePlaceholder': 'es. Torre Eiffel',
  'places.formDescription': 'Descrizione',
  'places.formDescriptionPlaceholder': 'Breve descrizione...',
  'places.formAddress': 'Indirizzo',
  'places.formAddressPlaceholder': 'Via, Città, Paese',
  'places.formLat': 'Latitudine (es. 48.8566)',
  'places.formLng': 'Longitudine (es. 2.3522)',
  'places.formCategory': 'Categoria',
  'places.noCategory': 'Nessuna categoria',
  'places.categoryNamePlaceholder': 'Nome categoria',
  'places.formTime': 'Ora',
  'places.startTime': 'Inizio',
  'places.endTime': 'Fine',
  'places.endTimeBeforeStart': 'L\'ora di fine è precedente all\'ora di inizio',
  'places.timeCollision': 'Sovrapposizione di orario con:',
  'places.formWebsite': 'Sito web',
  'places.formNotes': 'Note',
  'places.formNotesPlaceholder': 'Note personali...',
  'places.formReservation': 'Prenotazione',
  'places.reservationNotesPlaceholder': 'Note della prenotazione, numero di conferma...',
  'places.mapsSearchPlaceholder': 'Cerca luoghi...',
  'places.mapsSearchError': 'Impossibile cercare i luoghi.',
  'places.loadingDetails': 'Caricamento dettagli del luogo…',
  'places.osmHint': 'Uso della ricerca OpenStreetMap (senza foto, orari di apertura o valutazioni). Aggiungi una chiave API Google nelle impostazioni per i dettagli completi.',
  'places.osmActive': 'Ricerca tramite OpenStreetMap (senza foto, valutazioni o orari di apertura). Aggiungi una chiave API Google nelle Impostazioni per dati avanzati.',
  'places.categoryCreateError': 'Impossibile creare la categoria',
  'places.nameRequired': 'Inserisci un nome',
  'places.saveError': 'Impossibile salvare',
  // Place Inspector
  'inspector.opened': 'Aperto',
  'inspector.closed': 'Chiuso',
  'inspector.openingHours': 'Orari di apertura',
  'inspector.showHours': 'Mostra orari di apertura',
  'inspector.files': 'File',
  'inspector.filesCount': '{count} file',
  'inspector.removeFromDay': 'Rimuovi dal giorno',
  'inspector.remove': 'Rimuovi',
  'inspector.addToDay': 'Aggiungi al giorno',
  'inspector.confirmedRes': 'Prenotazione confermata',
  'inspector.pendingRes': 'Prenotazione in attesa',
  'inspector.google': 'Apri in Google Maps',
  'inspector.website': 'Apri sito web',
  'inspector.addRes': 'Prenotazione',
  'inspector.editRes': 'Modifica prenotazione',
  'inspector.participants': 'Partecipanti',
  'inspector.trackStats': 'Dati del percorso',

  // Reservations
  'reservations.title': 'Prenotazioni',
  'reservations.empty': 'Ancora nessuna prenotazione',
  'reservations.emptyHint': 'Aggiungi prenotazioni per voli, alloggi e altro',
  'reservations.add': 'Aggiungi prenotazione',
  'reservations.addManual': 'Prenotazione manuale',
  'reservations.placeHint': 'Suggerimento: è meglio creare le prenotazioni direttamente da un luogo per collegarle al tuo programma del giorno.',
  'reservations.confirmed': 'Confermata',
  'reservations.pending': 'In attesa',
  'reservations.summary': '{confirmed} confermate, {pending} in attesa',
  'reservations.fromPlan': 'Dal programma',
  'reservations.showFiles': 'Mostra file',
  'reservations.editTitle': 'Modifica prenotazione',
  'reservations.status': 'Stato',
  'reservations.datetime': 'Data e ora',
  'reservations.startTime': 'Ora di inizio',
  'reservations.endTime': 'Ora di fine',
  'reservations.date': 'Data',
  'reservations.time': 'Ora',
  'reservations.timeAlt': 'Ora (alternativa, es. 19:30)',
  'reservations.notes': 'Note',
  'reservations.notesPlaceholder': 'Note aggiuntive...',
  'reservations.meta.airline': 'Compagnia aerea',
  'reservations.meta.flightNumber': 'N. volo',
  'reservations.meta.from': 'Da',
  'reservations.meta.to': 'A',
  'reservations.needsReview': 'Verifica',
  'reservations.needsReviewHint': 'L\'aeroporto non è stato riconosciuto automaticamente — conferma la posizione.',
  'reservations.searchLocation': 'Cerca stazione, porto, indirizzo...',
  'airport.searchPlaceholder': 'Codice o città dell\'aeroporto (es. FRA)',
  'map.connections': 'Connessioni',
  'map.showConnections': 'Mostra percorsi prenotati',
  'map.hideConnections': 'Nascondi percorsi prenotati',
  'settings.bookingLabels': 'Etichette percorsi prenotati',
  'settings.bookingLabelsHint': 'Mostra i nomi di stazioni / aeroporti sulla mappa. Se disattivato, viene mostrata solo l\'icona.',
  'reservations.meta.trainNumber': 'N. treno',
  'reservations.meta.platform': 'Binario',
  'reservations.meta.seat': 'Posto',
  'reservations.meta.checkIn': 'Check-in',
  'reservations.meta.checkInUntil': 'Check-in fino a',
  'reservations.meta.checkOut': 'Check-out',
  'reservations.meta.linkAccommodation': 'Alloggio',
  'reservations.meta.pickAccommodation': 'Collega a un alloggio',
  'reservations.meta.noAccommodation': 'Nessuno',
  'reservations.meta.hotelPlace': 'Alloggio',
  'reservations.meta.pickHotel': 'Seleziona alloggio',
  'reservations.meta.fromDay': 'Da',
  'reservations.meta.toDay': 'A',
  'reservations.meta.selectDay': 'Seleziona giorno',
  'reservations.type.flight': 'Volo',
  'reservations.type.hotel': 'Alloggio',
  'reservations.type.restaurant': 'Ristorante',
  'reservations.type.train': 'Treno',
  'reservations.type.car': 'Auto',
  'reservations.type.cruise': 'Crociera',
  'reservations.type.event': 'Evento',
  'reservations.type.tour': 'Tour',
  'reservations.type.other': 'Altro',
  'reservations.confirm.delete': 'Sei sicuro di voler eliminare la prenotazione "{name}"?',
  'reservations.confirm.deleteTitle': 'Eliminare la prenotazione?',
  'reservations.confirm.deleteBody': '"{name}" verrà eliminato in modo permanente.',
  'reservations.toast.updated': 'Prenotazione aggiornata',
  'reservations.toast.removed': 'Prenotazione eliminata',
  'reservations.toast.fileUploaded': 'File caricato',
  'reservations.toast.uploadError': 'Impossibile caricare',
  'reservations.newTitle': 'Nuova prenotazione',
  'reservations.bookingType': 'Tipo di prenotazione',
  'reservations.titleLabel': 'Titolo',
  'reservations.titlePlaceholder': 'es. Lufthansa LH123, Hotel Adlon, ...',
  'reservations.locationAddress': 'Posizione / Indirizzo',
  'reservations.locationPlaceholder': 'Indirizzo, aeroporto, hotel...',
  'reservations.confirmationCode': 'Codice prenotazione',
  'reservations.confirmationPlaceholder': 'es. ABC12345',
  'reservations.day': 'Giorno',
  'reservations.noDay': 'Nessun giorno',
  'reservations.place': 'Luogo',
  'reservations.noPlace': 'Nessun luogo',
  'reservations.pendingSave': 'verrà salvato…',
  'reservations.uploading': 'Caricamento...',
  'reservations.attachFile': 'Allega file',
  'reservations.linkExisting': 'Collega file esistente',
  'reservations.toast.saveError': 'Impossibile salvare',
  'reservations.toast.updateError': 'Impossibile aggiornare',
  'reservations.toast.deleteError': 'Impossibile eliminare',
  'reservations.confirm.remove': 'Rimuovere la prenotazione per "{name}"?',
  'reservations.linkAssignment': 'Collega all\'assegnazione del giorno',
  'reservations.pickAssignment': 'Seleziona un\'assegnazione dal tuo programma...',
  'reservations.noAssignment': 'Nessun collegamento (autonomo)',
  'reservations.price': 'Prezzo',
  'reservations.budgetCategory': 'Categoria budget',
  'reservations.budgetCategoryPlaceholder': 'es. Trasporto, Alloggio',
  'reservations.budgetCategoryAuto': 'Auto (dal tipo di prenotazione)',
  'reservations.budgetHint': 'Una voce di budget verrà creata automaticamente al salvataggio.',
  'reservations.departureDate': 'Partenza',
  'reservations.arrivalDate': 'Arrivo',
  'reservations.departureTime': 'Ora part.',
  'reservations.arrivalTime': 'Ora arr.',
  'reservations.pickupDate': 'Ritiro',
  'reservations.returnDate': 'Riconsegna',
  'reservations.pickupTime': 'Ora ritiro',
  'reservations.returnTime': 'Ora riconsegna',
  'reservations.endDate': 'Data fine',
  'reservations.meta.departureTimezone': 'TZ part.',
  'reservations.meta.arrivalTimezone': 'TZ arr.',
  'reservations.span.departure': 'Partenza',
  'reservations.span.arrival': 'Arrivo',
  'reservations.span.inTransit': 'In transito',
  'reservations.span.pickup': 'Ritiro',
  'reservations.span.return': 'Riconsegna',
  'reservations.span.active': 'Attivo',
  'reservations.span.start': 'Inizio',
  'reservations.span.end': 'Fine',
  'reservations.span.ongoing': 'In corso',
  'reservations.validation.endBeforeStart': 'La data/ora di fine deve essere successiva alla data/ora di inizio',
  'reservations.addBooking': 'Aggiungi prenotazione',

  // Budget
  'budget.title': 'Budget',
  'budget.exportCsv': 'Esporta CSV',
  'budget.emptyTitle': 'Ancora nessun budget creato',
  'budget.emptyText': 'Crea categorie e voci per pianificare il budget del tuo viaggio',
  'budget.emptyPlaceholder': 'Inserisci nome categoria...',
  'budget.createCategory': 'Crea categoria',
  'budget.category': 'Categoria',
  'budget.categoryName': 'Nome categoria',
  'budget.table.name': 'Nome',
  'budget.table.total': 'Totale',
  'budget.table.persons': 'Persone',
  'budget.table.days': 'Giorni',
  'budget.table.perPerson': 'Per persona',
  'budget.table.perDay': 'Per giorno',
  'budget.table.perPersonDay': 'P. p / gio.',
  'budget.table.note': 'Nota',
  'budget.table.date': 'Data',
  'budget.newEntry': 'Nuova voce',
  'budget.defaultEntry': 'Nuova voce',
  'budget.defaultCategory': 'Nuova categoria',
  'budget.total': 'Totale',
  'budget.totalBudget': 'Budget totale',
  'budget.byCategory': 'Per categoria',
  'budget.editTooltip': 'Clicca per modificare',
  'budget.linkedToReservation': 'Collegato a una prenotazione — modifica il nome lì',
  'budget.confirm.deleteCategory': 'Sei sicuro di voler eliminare la categoria "{name}" con {count} voci?',
  'budget.deleteCategory': 'Elimina categoria',
  'budget.perPerson': 'Per persona',
  'budget.paid': 'Pagato',
  'budget.open': 'Aperto',
  'budget.noMembers': 'Nessun membro assegnato',
  'budget.settlement': 'Regolamento',
  'budget.settlementInfo': 'Clicca sull\'avatar di un membro su una voce di budget per contrassegnarlo in verde — significa che ha pagato. Il regolamento mostra poi chi deve quanto a chi.',
  'budget.netBalances': 'Saldi netti',

  // Files
  'files.title': 'File',
  'files.pageTitle': 'File e documenti',
  'files.subtitle': '{count} file per {trip}',
  'files.download': 'Scarica',
  'files.openError': 'Impossibile aprire il file',
  'files.downloadPdf': 'Scarica PDF',
  'files.count': '{count} file',
  'files.countSingular': '1 documento',
  'files.uploaded': '{count} caricati',
  'files.uploadError': 'Caricamento non riuscito',
  'files.dropzone': 'Trascina qui i file',
  'files.dropzoneHint': 'oppure clicca per sfogliare',
  'files.allowedTypes': 'Immagini, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Max 50 MB',
  'files.uploading': 'Caricamento...',
  'files.filterAll': 'Tutti',
  'files.filterPdf': 'PDF',
  'files.filterImages': 'Immagini',
  'files.filterDocs': 'Documenti',
  'files.filterCollab': 'Note Collaborazione',
  'files.sourceCollab': 'Da Note Collaborazione',
  'files.empty': 'Ancora nessun file',
  'files.emptyHint': 'Carica file per allegarli al tuo viaggio',
  'files.openTab': 'Apri in una nuova scheda',
  'files.confirm.delete': 'Sei sicuro di voler eliminare questo file?',
  'files.toast.deleted': 'File eliminato',
  'files.toast.deleteError': 'Impossibile eliminare il file',
  'files.sourcePlan': 'Programma giornaliero',
  'files.sourceBooking': 'Prenotazione',
  'files.sourceTransport': 'Trasporto',
  'files.attach': 'Allega',
  'files.pasteHint': 'Puoi anche incollare immagini dagli appunti (Ctrl+V)',
  'files.trash': 'Cestino',
  'files.trashEmpty': 'Il cestino è vuoto',
  'files.emptyTrash': 'Svuota cestino',
  'files.restore': 'Ripristina',
  'files.star': 'Aggiungi ai preferiti',
  'files.unstar': 'Rimuovi dai preferiti',
  'files.assign': 'Assegna',
  'files.assignTitle': 'Assegna file',
  'files.assignPlace': 'Luogo',
  'files.assignBooking': 'Prenotazione',
  'files.assignTransport': 'Trasporto',
  'files.unassigned': 'Non assegnato',
  'files.unlink': 'Rimuovi collegamento',
  'files.toast.trashed': 'Spostato nel cestino',
  'files.toast.restored': 'File ripristinato',
  'files.toast.trashEmptied': 'Cestino svuotato',
  'files.toast.assigned': 'File assegnato',
    'files.toast.assignError': 'Assegnazione fallita',
  'files.toast.restoreError': 'Ripristino fallito',
  'files.confirm.permanentDelete': 'Eliminare questo file in modo permanente? Questa operazione non può essere annullata.',
  'files.confirm.emptyTrash': 'Eliminare in modo permanente tutti i file nel cestino? Questa operazione non può essere annullata.',
  'files.noteLabel': 'Nota',
  'files.notePlaceholder': 'Aggiungi una nota...',

  // Packing
  'packing.title': 'Lista valigia',
  'packing.empty': 'La lista valigia è vuota',
  'packing.import': 'Importa',
  'packing.importTitle': 'Importa lista valigia',
  'packing.importHint': 'Un elemento per riga. Formato: Categoria, Nome, Peso in g (opzionale), Borsa (opzionale), checked/unchecked (opzionale)',
  'packing.importPlaceholder': 'Igiene, Spazzolino\nAbbigliamento, Magliette, 200\nDocumenti, Passaporto, , Bagaglio a mano\nElettronica, Caricabatterie, 50, Valigia, checked',
  'packing.importCsv': 'Carica CSV/TXT',
  'packing.importAction': 'Importa {count}',
  'packing.importSuccess': '{count} elementi importati',
  'packing.importError': 'Importazione non riuscita',
  'packing.importEmpty': 'Nessun elemento da importare',
  'packing.progress': '{packed} di {total} in valigia ({percent}%)',
  'packing.clearChecked': 'Rimuovi {count} spuntati',
  'packing.clearCheckedShort': 'Rimuovi {count}',
  'packing.suggestions': 'Suggerimenti',
  'packing.suggestionsTitle': 'Aggiungi suggerimenti',
  'packing.allSuggested': 'Tutti i suggerimenti aggiunti',
  'packing.allPacked': 'Tutto in valigia!',
  'packing.addPlaceholder': 'Aggiungi nuovo elemento...',
  'packing.categoryPlaceholder': 'Categoria...',
  'packing.filterAll': 'Tutti',
  'packing.filterOpen': 'Da fare',
  'packing.filterDone': 'Fatto',
  'packing.emptyTitle': 'La lista valigia è vuota',
  'packing.emptyHint': 'Aggiungi elementi o usa i suggerimenti',
  'packing.emptyFiltered': 'Nessun elemento corrisponde a questo filtro',
  'packing.menuRename': 'Rinomina',
  'packing.menuCheckAll': 'Seleziona tutti',
  'packing.menuUncheckAll': 'Deseleziona tutti',
  'packing.menuDeleteCat': 'Elimina categoria',
  'packing.noMembers': 'Nessun membro del viaggio',
  'packing.addItem': 'Aggiungi elemento',
  'packing.addItemPlaceholder': 'Nome elemento...',
  'packing.addCategory': 'Aggiungi categoria',
  'packing.newCategoryPlaceholder': 'Nome categoria (es. Abbigliamento)',
  'packing.applyTemplate': 'Applica modello',
  'packing.template': 'Modello',
  'packing.templateApplied': '{count} elementi aggiunti dal modello',
  'packing.templateError': 'Impossibile applicare il modello',
  'packing.saveAsTemplate': 'Salva come modello',
  'packing.templateName': 'Nome modello',
  'packing.templateSaved': 'Lista bagagli salvata come modello',
  'packing.bags': 'Valigie',
  'packing.noBag': 'Non assegnato',
  'packing.totalWeight': 'Peso totale',
  'packing.bagName': 'Nome valigia...',
  'packing.addBag': 'Aggiungi valigia',
  'packing.changeCategory': 'Cambia categoria',
  'packing.confirm.clearChecked': 'Sei sicuro di voler rimuovere {count} elementi spuntati?',
  'packing.confirm.deleteCat': 'Sei sicuro di voler eliminare la categoria "{name}" con {count} elementi?',
  'packing.defaultCategory': 'Altro',
  'packing.toast.saveError': 'Impossibile salvare',
  'packing.toast.deleteError': 'Impossibile eliminare',
  'packing.toast.renameError': 'Impossibile rinominare',
  'packing.toast.addError': 'Impossibile aggiungere',

  // Packing suggestions
  'packing.suggestions.items': [
    { name: 'Passaporto', category: 'Documenti' },
    { name: 'Carta d\'identità', category: 'Documenti' },
    { name: 'Assicurazione di viaggio', category: 'Documenti' },
    { name: 'Biglietti aerei', category: 'Documenti' },
    { name: 'Carta di credito', category: 'Finanze' },
    { name: 'Contanti', category: 'Finanze' },
    { name: 'Visto', category: 'Documenti' },
    { name: 'Magliette', category: 'Abbigliamento' },
    { name: 'Pantaloni', category: 'Abbigliamento' },
    { name: 'Intimo', category: 'Abbigliamento' },
    { name: 'Calzini', category: 'Abbigliamento' },
    { name: 'Giacca', category: 'Abbigliamento' },
    { name: 'Pigiama', category: 'Abbigliamento' },
    { name: 'Costume da bagno', category: 'Abbigliamento' },
    { name: 'Giacca a vento', category: 'Abbigliamento' },
    { name: 'Scarpe comode', category: 'Abbigliamento' },
    { name: 'Spazzolino da denti', category: 'Igiene personale' },
    { name: 'Dentifricio', category: 'Igiene personale' },
    { name: 'Shampoo', category: 'Igiene personale' },
    { name: 'Deodorante', category: 'Igiene personale' },
    { name: 'Crema solare', category: 'Igiene personale' },
    { name: 'Rasoio', category: 'Igiene personale' },
    { name: 'Caricabatterie', category: 'Elettronica' },
    { name: 'Power bank', category: 'Elettronica' },
    { name: 'Cuffie', category: 'Elettronica' },
    { name: 'Adattatore da viaggio', category: 'Elettronica' },
    { name: 'Macchina fotografica', category: 'Elettronica' },
    { name: 'Antidolorifici', category: 'Salute' },
    { name: 'Cerotti', category: 'Salute' },
    { name: 'Disinfettante', category: 'Salute' },
  ],

  // Members / Sharing
  'members.shareTrip': 'Condividi viaggio',
  'members.inviteUser': 'Invita utente',
  'members.selectUser': 'Seleziona utente...',
  'members.invite': 'Invita',
  'members.allHaveAccess': 'Tutti gli utenti hanno già accesso.',
  'members.access': 'Accesso',
  'members.person': 'persona',
  'members.persons': 'persone',
  'members.you': 'tu',
  'members.owner': 'Proprietario',
  'members.leaveTrip': 'Abbandona viaggio',
  'members.removeAccess': 'Rimuovi accesso',
  'members.confirmLeave': 'Abbandonare il viaggio? Perderai l\'accesso.',
  'members.confirmRemove': 'Rimuovere l\'accesso per questo utente?',
  'members.loadError': 'Impossibile caricare i membri',
  'members.added': 'aggiunto',
  'members.addError': 'Impossibile aggiungere',
  'members.removed': 'Membro rimosso',
  'members.removeError': 'Impossibile rimuovere',

  // Categories (Admin)
  'categories.title': 'Categorie',
  'categories.subtitle': 'Gestisci le categorie per i luoghi',
  'categories.new': 'Nuova categoria',
  'categories.empty': 'Ancora nessuna categoria',
  'categories.namePlaceholder': 'Nome categoria',
  'categories.icon': 'Icona',
  'categories.color': 'Colore',
  'categories.customColor': 'Scegli colore personalizzato',
  'categories.preview': 'Anteprima',
  'categories.defaultName': 'Categoria',
  'categories.update': 'Aggiorna',
  'categories.create': 'Crea',
  'categories.confirm.delete': 'Eliminare la categoria? I luoghi in questa categoria non verranno eliminati.',
  'categories.toast.loadError': 'Impossibile caricare le categorie',
  'categories.toast.nameRequired': 'Inserisci un nome',
  'categories.toast.updated': 'Categoria aggiornata',
  'categories.toast.created': 'Categoria creata',
  'categories.toast.saveError': 'Impossibile salvare',
  'categories.toast.deleted': 'Categoria eliminata',
  'categories.toast.deleteError': 'Impossibile eliminare',

  // Backup (Admin)
  'backup.title': 'Backup dati',
  'backup.subtitle': 'Database e tutti i file caricati',
  'backup.refresh': 'Aggiorna',
  'backup.upload': 'Carica backup',
  'backup.uploading': 'Caricamento...',
  'backup.create': 'Crea backup',
  'backup.creating': 'Creazione...',
  'backup.empty': 'Ancora nessun backup',
  'backup.createFirst': 'Crea primo backup',
  'backup.download': 'Scarica',
  'backup.restore': 'Ripristina',
  'backup.confirm.restore': 'Ripristinare il backup "{name}"?\n\nTutti i dati attuali verranno sostituiti con il backup.',
  'backup.confirm.uploadRestore': 'Scaricare e ripristinare il file di backup "{name}"?\n\nTutti i dati attuali verranno sovrascritti.',
  'backup.confirm.delete': 'Eliminare il backup "{name}"?',
  'backup.toast.loadError': 'Impossibile caricare i backup',
  'backup.toast.created': 'Backup creato con successo',
  'backup.toast.createError': 'Impossibile creare il backup',
  'backup.toast.restored': 'Backup ripristinato. La pagina verrà ricaricata...',
  'backup.toast.restoreError': 'Impossibile ripristinare',
  'backup.toast.uploadError': 'Impossibile caricare',
  'backup.toast.deleted': 'Backup eliminato',
  'backup.toast.deleteError': 'Impossibile eliminare',
  'backup.toast.downloadError': 'Download non riuscito',
  'backup.toast.settingsSaved': 'Impostazioni auto-backup salvate',
  'backup.toast.settingsError': 'Impossibile salvare le impostazioni',
  'backup.auto.title': 'Auto-Backup',
  'backup.auto.subtitle': 'Backup automatico pianificato',
  'backup.auto.enable': 'Abilita auto-backup',
  'backup.auto.enableHint': 'I backup verranno creati automaticamente in base alla pianificazione scelta',
  'backup.auto.interval': 'Intervallo',
  'backup.auto.hour': 'Esegui all\'ora',
  'backup.auto.hourHint': 'Ora locale del server (formato {format})',
  'backup.auto.dayOfWeek': 'Giorno della settimana',
  'backup.auto.dayOfMonth': 'Giorno del mese',
  'backup.auto.dayOfMonthHint': 'Limitato a 1–28 per compatibilità con tutti i mesi',
  'backup.auto.scheduleSummary': 'Pianificazione',
  'backup.auto.summaryDaily': 'Ogni giorno alle {hour}:00',
  'backup.auto.summaryWeekly': 'Ogni {day} alle {hour}:00',
  'backup.auto.summaryMonthly': 'Giorno {day} di ogni mese alle {hour}:00',
  'backup.auto.envLocked': 'Docker',
  'backup.auto.envLockedHint': 'L\'auto-backup è configurato tramite variabili d\'ambiente Docker. Per modificare queste impostazioni, aggiorna il tuo docker-compose.yml e riavvia il container.',
  'backup.auto.copyEnv': 'Copia variabili env Docker',
  'backup.auto.envCopied': 'Variabili env Docker copiate negli appunti',
  'backup.auto.keepLabel': 'Elimina i vecchi backup dopo',
  'backup.dow.sunday': 'Dom',
  'backup.dow.monday': 'Lun',
  'backup.dow.tuesday': 'Mar',
  'backup.dow.wednesday': 'Mer',
  'backup.dow.thursday': 'Gio',
  'backup.dow.friday': 'Ven',
  'backup.dow.saturday': 'Sab',
  'backup.interval.hourly': 'Ogni ora',
  'backup.interval.daily': 'Giornaliero',
  'backup.interval.weekly': 'Settimanale',
  'backup.interval.monthly': 'Mensile',
  'backup.keep.1day': '1 giorno',
  'backup.keep.3days': '3 giorni',
  'backup.keep.7days': '7 giorni',
  'backup.keep.14days': '14 giorni',
  'backup.keep.30days': '30 giorni',
  'backup.keep.forever': 'Conserva per sempre',

  // Photos
  'photos.title': 'Foto',
  'photos.subtitle': '{count} foto per {trip}',
  'photos.dropHere': 'Trascina le foto qui...',
  'photos.dropHereActive': 'Trascina le foto qui',
  'photos.captionForAll': 'Didascalia (per tutti)',
  'photos.captionPlaceholder': 'Didascalia opzionale...',
  'photos.addCaption': 'Aggiungi didascalia...',
  'photos.allDays': 'Tutti i giorni',
  'photos.noPhotos': 'Ancora nessuna foto',
  'photos.uploadHint': 'Carica le foto del tuo viaggio',
  'photos.clickToSelect': 'o clicca per selezionare',
  'photos.linkPlace': 'Collega luogo',
  'photos.noPlace': 'Nessun luogo',
  'photos.uploadN': 'Caricamento di {n} foto',
  'photos.linkDay': 'Collega giorno',
  'photos.noDay': 'Nessun giorno',
  'photos.dayLabel': 'Giorno {number}',
  'photos.photoSelected': 'Foto selezionata',
  'photos.photosSelected': 'Foto selezionate',
  'photos.fileTypeHint': 'JPG, PNG, WebP · max. 10 MB · fino a 30 foto',

  // Backup restore modal
  'backup.restoreConfirmTitle': 'Ripristinare il backup?',
  'backup.restoreWarning': 'Tutti i dati attuali (viaggi, luoghi, utenti, caricamenti) verranno sostituiti in modo permanente dal backup. Questa azione non può essere annullata.',
  'backup.restoreTip': 'Suggerimento: Crea un backup dello stato attuale prima di ripristinare.',
  'backup.restoreConfirm': 'Sì, ripristina',

  // PDF
  'pdf.travelPlan': 'Programma di viaggio',
  'pdf.planned': 'Programmato',
  'pdf.costLabel': 'Costo EUR',
  'pdf.preview': 'Anteprima PDF',
  'pdf.saveAsPdf': 'Salva come PDF',

  // Planner
  'planner.places': 'Luoghi',
  'planner.bookings': 'Prenotazioni',
  'planner.packingList': 'Lista valigia',
  'planner.documents': 'Documenti',
  'planner.dayPlan': 'Programma giornaliero',
  'planner.reservations': 'Prenotazioni',
  'planner.minTwoPlaces': 'Servono almeno 2 luoghi con coordinate',
  'planner.noGeoPlaces': 'Nessun luogo con coordinate disponibile',
  'planner.routeCalculated': 'Percorso calcolato',
  'planner.routeCalcFailed': 'Il percorso non è stato calcolato',
  'planner.routeError': 'Errore nel calcolo del percorso',
  'planner.icsExportFailed': 'Esportazione ICS non riuscita',
  'planner.routeOptimized': 'Percorso ottimizzato',
  'planner.reservationUpdated': 'Prenotazione aggiornata',
  'planner.reservationAdded': 'Prenotazione aggiunta',
  'planner.confirmDeleteReservation': 'Eliminare la prenotazione?',
  'planner.reservationDeleted': 'Prenotazione eliminata',
  'planner.days': 'Giorni',
  'planner.allPlaces': 'Tutti i luoghi',
  'planner.totalPlaces': '{n} luoghi in totale',
  'planner.noDaysPlanned': 'Nessun giorno ancora programmato',
  'planner.editTrip': 'Modifica viaggio \u2192',
  'planner.placeOne': '1 luogo',
  'planner.placeN': '{n} luoghi',
  'planner.addNote': 'Aggiungi nota',
  'planner.noEntries': 'Nessuna voce per questo giorno',
  'planner.addPlace': 'Aggiungi luogo/attività',
  'planner.addPlaceShort': '+ Aggiungi luogo/attività',
  'planner.resPending': 'Prenotazione in attesa \u00B7 ',
  'planner.resConfirmed': 'Prenotazione confermata \u00B7 ',
  'planner.notePlaceholder': 'Nota\u2026',
  'planner.noteTimePlaceholder': 'Ora (opzionale)',
  'planner.noteExamplePlaceholder': 'es. S3 alle 14:30 dalla stazione centrale, traghetto dal molo 7, pausa pranzo\u2026',
  'planner.totalCost': 'Costo totale',
  'planner.searchPlaces': 'Cerca luoghi\u2026',
  'planner.allCategories': 'Tutte le categorie',
  'planner.noPlacesFound': 'Nessun luogo trovato',
  'planner.addFirstPlace': 'Aggiungi primo luogo',
  'planner.noReservations': 'Nessuna prenotazione',
  'planner.addFirstReservation': 'Aggiungi prima prenotazione',
  'planner.new': 'Nuovo',
  'planner.addToDay': '+ Giorno',
  'planner.calculating': 'Calcolo in corso\u2026',
  'planner.route': 'Percorso',
  'planner.optimize': 'Ottimizza',
  'planner.openGoogleMaps': 'Apri in Google Maps',
  'planner.selectDayHint': 'Seleziona un giorno dall\'elenco a sinistra per vedere il programma',
  'planner.noPlacesForDay': 'Ancora nessun luogo per questo giorno',
  'planner.addPlacesLink': 'Aggiungi luoghi \u2192',
  'planner.minTotal': 'min. totali',
  'planner.noReservation': 'Nessuna prenotazione',
  'planner.removeFromDay': 'Rimuovi dal giorno',
  'planner.addToThisDay': 'Aggiungi al giorno',
  'planner.overview': 'Panoramica',
  'planner.noDays': 'Ancora nessun giorno',
  'planner.editTripToAddDays': 'Modifica viaggio per aggiungere giorni',
  'planner.dayCount': '{n} Giorni',
  'planner.clickToUnlock': 'Clicca per sbloccare',
  'planner.keepPosition': 'Mantieni la posizione durante l\'ottimizzazione del percorso',
  'planner.dayDetails': 'Dettagli del giorno',
  'planner.dayN': 'Giorno {n}',

  // Dashboard Stats
  'stats.countries': 'Paesi',
  'stats.cities': 'Città',
  'stats.trips': 'Viaggi',
  'stats.places': 'Luoghi',
  'stats.worldProgress': 'Progresso nel mondo',
  'stats.visited': 'visitati',
  'stats.remaining': 'rimanenti',
  'stats.visitedCountries': 'Paesi visitati',

  // Day Detail Panel
  'day.precipProb': 'Probabilità di pioggia',
  'day.precipitation': 'Precipitazioni',
  'day.wind': 'Vento',
  'day.sunrise': 'Alba',
  'day.sunset': 'Tramonto',
  'day.hourlyForecast': 'Previsione oraria',
  'day.climateHint': 'Medie storiche \u2014 previsioni reali disponibili entro 16 giorni da questa data.',
  'day.noWeather': 'Nessun dato meteo disponibile. Aggiungi un luogo con coordinate.',
  'day.overview': 'Panoramica giornaliera',
  'day.accommodation': 'Alloggio',
  'day.addAccommodation': 'Aggiungi alloggio',
  'day.hotelDayRange': 'Applica ai giorni',
  'day.noPlacesForHotel': 'Aggiungi prima i luoghi al tuo viaggio',
  'day.allDays': 'Tutti',
  'day.checkIn': 'Check-in',
  'day.checkInUntil': 'Fino a',
  'day.checkOut': 'Check-out',
  'day.confirmation': 'Conferma',
  'day.editAccommodation': 'Modifica alloggio',
  'day.reservations': 'Prenotazioni',

  // Photos / Immich
  'memories.title': 'Foto',
  'memories.notConnected': 'Immich non connesso',
  'memories.notConnectedHint': 'Connetti la tua istanza Immich nelle Impostazioni per vedere qui le foto del tuo viaggio.',
  'memories.notConnectedMultipleHint': 'Collega uno di questi provider di foto: {provider_names} nelle Impostazioni per poter aggiungere foto a questo viaggio.',
  'memories.noDates': 'Aggiungi le date al tuo viaggio per caricare le foto.',
  'memories.noPhotos': 'Nessuna foto trovata',
  'memories.noPhotosHint': 'Nessuna foto trovata in Immich per l\'intervallo di date di questo viaggio.',
  'memories.photosFound': 'foto',
  'memories.fromOthers': 'da altri',
  'memories.sharePhotos': 'Condividi foto',
  'memories.sharing': 'Condivisione',
  'memories.reviewTitle': 'Rivedi le tue foto',
  'memories.reviewHint': 'Clicca sulle foto per escluderle dalla condivisione.',
  'memories.shareCount': 'Condividi {count} foto',
  'memories.providerUrl': 'URL del server',
  'memories.providerApiKey': 'Chiave API',
  'memories.providerUsername': 'Nome utente',
  'memories.providerPassword': 'Password',
  'memories.providerOTP': 'Codice MFA (se abilitato)',
  'memories.skipSSLVerification': 'Ignora la verifica del certificato SSL',
  'memories.immichAutoUpload': 'Rispecchia le foto del journey su Immich al caricamento',
  'memories.providerUrlHintSynology': 'Includi il percorso dell\'app Foto nell\'URL, es. https://nas:5001/photo',
  'memories.testConnection': 'Test connessione',
  'memories.testShort': 'Prova',
  'memories.testFirst': 'Testa prima la connessione',
  'memories.connected': 'Connesso',
  'memories.disconnected': 'Non connesso',
  'memories.connectionSuccess': 'Connesso a Immich',
  'memories.connectionError': 'Impossibile connettersi a Immich',
  'memories.saved': 'Impostazioni {provider_name} salvate',
  'memories.providerDisconnectedBanner': 'La connessione a {provider_name} è persa. Riconnetti nelle Impostazioni per visualizzare le foto.',
  'memories.saveError': 'Impossibile salvare le impostazioni di {provider_name}',
  'memories.saveRouteNotConfigured': 'La route di salvataggio non è configurata per questo provider',
  'memories.testRouteNotConfigured': 'La route di test non è configurata per questo provider',
  'memories.fillRequiredFields': 'Per favore compila tutti i campi obbligatori',
  'memories.addPhotos': 'Aggiungi foto',
  'memories.linkAlbum': 'Collega album',
  'memories.selectAlbum': 'Seleziona album Immich',
  'memories.selectAlbumMultiple': 'Seleziona album',
  'memories.noAlbums': 'Nessun album trovato',
  'memories.syncAlbum': 'Sincronizza album',
  'memories.unlinkAlbum': 'Scollega',
  'memories.photos': 'foto',
  'memories.selectPhotos': 'Seleziona foto da Immich',
  'memories.selectPhotosMultiple': 'Seleziona foto',
  'memories.selectHint': 'Tocca le foto per selezionarle.',
  'memories.selected': 'selezionate',
  'memories.addSelected': 'Aggiungi {count} foto',
  'memories.alreadyAdded': 'Aggiunta',
  'memories.private': 'Privato',
  'memories.stopSharing': 'Interrompi condivisione',
  'memories.oldest': 'Prima le più vecchie',
  'memories.newest': 'Prima le più recenti',
  'memories.allLocations': 'Tutte le posizioni',
  'memories.tripDates': 'Date del viaggio',
  'memories.allPhotos': 'Tutte le foto',
  'memories.confirmShareTitle': 'Condividere con i membri del viaggio?',
  'memories.confirmShareHint': '{count} foto saranno visibili a tutti i membri di questo viaggio. Potrai rendere private le singole foto in seguito.',
  'memories.confirmShareButton': 'Condividi foto',

  // Collab Addon
  'collab.tabs.chat': 'Chat',
  'collab.tabs.notes': 'Note',
  'collab.tabs.polls': 'Sondaggi',
  'collab.whatsNext.title': "Cosa c'è dopo",
  'collab.whatsNext.today': 'Oggi',
  'collab.whatsNext.tomorrow': 'Domani',
  'collab.whatsNext.empty': 'Nessuna attività imminente',
  'collab.whatsNext.until': 'a',
  'collab.whatsNext.emptyHint': 'Le attività con orari appariranno qui',
  'collab.chat.send': 'Invia',
  'collab.chat.placeholder': 'Scrivi un messaggio...',
  'collab.chat.empty': 'Inizia la conversazione',
  'collab.chat.emptyHint': 'I messaggi sono condivisi con tutti i membri del viaggio',
  'collab.chat.emptyDesc': 'Condividi idee, programmi e aggiornamenti con il tuo gruppo di viaggio',
  'collab.chat.today': 'Oggi',
  'collab.chat.yesterday': 'Ieri',
  'collab.chat.deletedMessage': 'ha eliminato un messaggio',
  'collab.chat.reply': 'Rispondi',
  'collab.chat.loadMore': 'Carica messaggi precedenti',
  'collab.chat.justNow': 'ora',
  'collab.chat.minutesAgo': '{n}m fa',
  'collab.chat.hoursAgo': '{n}h fa',
  'collab.notes.title': 'Note',
  'collab.notes.new': 'Nuova nota',
  'collab.notes.empty': 'Ancora nessuna nota',
  'collab.notes.emptyHint': 'Inizia a raccogliere idee e programmi',
  'collab.notes.all': 'Tutte',
  'collab.notes.titlePlaceholder': 'Titolo della nota',
  'collab.notes.contentPlaceholder': 'Scrivi qualcosa...',
  'collab.notes.categoryPlaceholder': 'Categoria',
  'collab.notes.newCategory': 'Nuova categoria...',
  'collab.notes.category': 'Categoria',
  'collab.notes.noCategory': 'Nessuna categoria',
  'collab.notes.color': 'Colore',
  'collab.notes.save': 'Salva',
  'collab.notes.cancel': 'Annulla',
  'collab.notes.edit': 'Modifica',
  'collab.notes.delete': 'Elimina',
  'collab.notes.pin': 'Fissa',
  'collab.notes.unpin': 'Rimuovi',
  'collab.notes.daysAgo': '{n}g fa',
  'collab.notes.categorySettings': 'Gestisci categorie',
  'collab.notes.create': 'Crea',
  'collab.notes.website': 'Sito web',
  'collab.notes.websitePlaceholder': 'https://...',
  'collab.notes.attachFiles': 'Allega file',
  'collab.notes.noCategoriesYet': 'Ancora nessuna categoria',
  'collab.notes.emptyDesc': 'Crea una nota per iniziare',
  'collab.polls.title': 'Sondaggi',
  'collab.polls.new': 'Nuovo sondaggio',
  'collab.polls.empty': 'Ancora nessun sondaggio',
  'collab.polls.emptyHint': 'Chiedi al gruppo e votate insieme',
  'collab.polls.question': 'Domanda',
  'collab.polls.questionPlaceholder': 'Cosa dovremmo fare?',
  'collab.polls.addOption': '+ Aggiungi opzione',
  'collab.polls.optionPlaceholder': 'Opzione {n}',
  'collab.polls.create': 'Crea sondaggio',
  'collab.polls.close': 'Chiudi',
  'collab.polls.closed': 'Chiuso',
  'collab.polls.votes': '{n} voti',
  'collab.polls.vote': '{n} voto',
  'collab.polls.multipleChoice': 'Scelta multipla',
  'collab.polls.multiChoice': 'Scelta multipla',
  'collab.polls.deadline': 'Scadenza',
  'collab.polls.option': 'Opzione',
  'collab.polls.options': 'Opzioni',
  'collab.polls.delete': 'Elimina',
  'collab.polls.closedSection': 'Chiusi',

  // Permissions
  'admin.tabs.permissions': 'Permessi',
  'perm.title': 'Impostazioni dei permessi',
  'perm.subtitle': 'Controlla chi può eseguire azioni nell\'applicazione',
  'perm.saved': 'Impostazioni dei permessi salvate',
  'perm.resetDefaults': 'Ripristina predefiniti',
  'perm.customized': 'personalizzato',
  'perm.level.admin': 'Solo amministratore',
  'perm.level.tripOwner': 'Proprietario del viaggio',
  'perm.level.tripMember': 'Membri del viaggio',
  'perm.level.everybody': 'Tutti',
  'perm.cat.trip': 'Gestione viaggi',
  'perm.cat.members': 'Gestione membri',
  'perm.cat.files': 'File',
  'perm.cat.content': 'Contenuti e programma',
  'perm.cat.extras': 'Budget, bagagli e collaborazione',
  'perm.action.trip_create': 'Creare viaggi',
  'perm.action.trip_edit': 'Modificare dettagli del viaggio',
  'perm.action.trip_delete': 'Eliminare viaggi',
  'perm.action.trip_archive': 'Archiviare / dearchiviare viaggi',
  'perm.action.trip_cover_upload': 'Caricare immagine di copertina',
  'perm.action.member_manage': 'Aggiungere / rimuovere membri',
  'perm.action.file_upload': 'Caricare file',
  'perm.action.file_edit': 'Modificare metadati dei file',
  'perm.action.file_delete': 'Eliminare file',
  'perm.action.place_edit': 'Aggiungere / modificare / eliminare luoghi',
  'perm.action.day_edit': 'Modificare giorni, note e assegnazioni',
  'perm.action.reservation_edit': 'Gestire prenotazioni',
  'perm.action.budget_edit': 'Gestire budget',
  'perm.action.packing_edit': 'Gestire liste bagagli',
  'perm.action.collab_edit': 'Collaborazione (note, sondaggi, chat)',
  'perm.action.share_manage': 'Gestire link di condivisione',
  'perm.actionHint.trip_create': 'Chi può creare nuovi viaggi',
  'perm.actionHint.trip_edit': 'Chi può modificare nome, date, descrizione e valuta del viaggio',
  'perm.actionHint.trip_delete': 'Chi può eliminare definitivamente un viaggio',
  'perm.actionHint.trip_archive': 'Chi può archiviare o dearchiviare un viaggio',
  'perm.actionHint.trip_cover_upload': 'Chi può caricare o modificare l\'immagine di copertina',
  'perm.actionHint.member_manage': 'Chi può invitare o rimuovere membri del viaggio',
  'perm.actionHint.file_upload': 'Chi può caricare file in un viaggio',
  'perm.actionHint.file_edit': 'Chi può modificare descrizioni e link dei file',
  'perm.actionHint.file_delete': 'Chi può spostare file nel cestino o eliminarli definitivamente',
  'perm.actionHint.place_edit': 'Chi può aggiungere, modificare o eliminare luoghi',
  'perm.actionHint.day_edit': 'Chi può modificare giorni, note dei giorni e assegnazioni dei luoghi',
  'perm.actionHint.reservation_edit': 'Chi può creare, modificare o eliminare prenotazioni',
  'perm.actionHint.budget_edit': 'Chi può creare, modificare o eliminare voci di budget',
  'perm.actionHint.packing_edit': 'Chi può gestire articoli da bagaglio e borse',
  'perm.actionHint.collab_edit': 'Chi può creare note, sondaggi e inviare messaggi',
  'perm.actionHint.share_manage': 'Chi può creare o eliminare link di condivisione pubblici',

  // Undo
  'undo.button': 'Annulla',
  'undo.tooltip': 'Annulla: {action}',
  'undo.assignPlace': 'Luogo assegnato al giorno',
  'undo.removeAssignment': 'Luogo rimosso dal giorno',
  'undo.reorder': 'Luoghi riordinati',
  'undo.optimize': 'Percorso ottimizzato',
  'undo.deletePlace': 'Luogo eliminato',
  'undo.deletePlaces': 'Luoghi eliminati',
  'undo.moveDay': 'Luogo spostato in altro giorno',
  'undo.lock': 'Blocco luogo modificato',
  'undo.importGpx': 'Importazione GPX',
  'undo.importKeyholeMarkup': 'Importazione KMZ/KML',
  'undo.importGoogleList': 'Importazione Google Maps',
  'undo.importNaverList': 'Importazione Naver Maps',
  'undo.addPlace': 'Luogo aggiunto',
  'undo.done': 'Annullato: {action}',
  // Notifications
  'notifications.title': 'Notifiche',
  'notifications.markAllRead': 'Segna tutto come letto',
  'notifications.deleteAll': 'Elimina tutto',
  'notifications.showAll': 'Vedi tutte le notifiche',
  'notifications.empty': 'Nessuna notifica',
  'notifications.emptyDescription': 'Sei aggiornato!',
  'notifications.all': 'Tutte',
  'notifications.unreadOnly': 'Non lette',
  'notifications.markRead': 'Segna come letto',
  'notifications.markUnread': 'Segna come non letto',
  'notifications.delete': 'Elimina',
  'notifications.system': 'Sistema',
  'notifications.synologySessionCleared.title': 'Synology Photos disconnesso',
  'notifications.synologySessionCleared.text': 'Il server o l\'account è cambiato — vai alle Impostazioni per testare nuovamente la connessione.',
  'memories.error.loadAlbums': 'Caricamento album non riuscito',
  'memories.error.linkAlbum': 'Collegamento album non riuscito',
  'memories.error.unlinkAlbum': 'Scollegamento album non riuscito',
  'memories.error.syncAlbum': 'Sincronizzazione album non riuscita',
  'memories.error.loadPhotos': 'Caricamento foto non riuscito',
  'memories.error.addPhotos': 'Aggiunta foto non riuscita',
  'memories.error.removePhoto': 'Rimozione foto non riuscita',
  'memories.error.toggleSharing': 'Aggiornamento condivisione non riuscito',
  'notifications.test.title': 'Notifica di test da {actor}',
  'notifications.test.text': 'Questa è una semplice notifica di test.',
  'notifications.test.booleanTitle': '{actor} richiede la tua approvazione',
  'notifications.test.booleanText': 'Notifica di test con risposta.',
  'notifications.test.accept': 'Approva',
  'notifications.test.decline': 'Rifiuta',
  'notifications.test.navigateTitle': 'Dai un\'occhiata',
  'notifications.test.navigateText': 'Notifica di test con navigazione.',
  'notifications.test.goThere': 'Vai',
  'notifications.test.adminTitle': 'Comunicazione admin',
  'notifications.test.adminText': '{actor} ha inviato una notifica di test a tutti gli amministratori.',
  'notifications.test.tripTitle': '{actor} ha pubblicato nel tuo viaggio',
  'notifications.test.tripText': 'Notifica di test per il viaggio "{trip}".',

  // Todo
  'todo.subtab.packing': 'Lista di imballaggio',
  'todo.subtab.todo': 'Da fare',
  'todo.completed': 'completato/i',
  'todo.filter.all': 'Tutti',
  'todo.filter.open': 'Aperto',
  'todo.filter.done': 'Fatto',
  'todo.uncategorized': 'Senza categoria',
  'todo.namePlaceholder': 'Nome attività',
  'todo.descriptionPlaceholder': 'Descrizione (facoltativa)',
  'todo.unassigned': 'Non assegnato',
  'todo.noCategory': 'Nessuna categoria',
  'todo.hasDescription': 'Ha descrizione',
  'todo.addItem': 'Nuova attività',
  'todo.sidebar.sortBy': 'Ordina per',
  'todo.priority': 'Priorità',
  'todo.newCategoryLabel': 'nuova',
  'budget.categoriesLabel': 'categorie',
  'todo.newCategory': 'Nome categoria',
  'todo.addCategory': 'Aggiungi categoria',
  'todo.newItem': 'Nuova attività',
  'todo.empty': 'Nessuna attività ancora. Aggiungi un\'attività per iniziare!',
  'todo.filter.my': 'Le mie attività',
  'todo.filter.overdue': 'Scaduta',
  'todo.sidebar.tasks': 'Attività',
  'todo.sidebar.categories': 'Categorie',
  'todo.detail.title': 'Attività',
  'todo.detail.description': 'Descrizione',
  'todo.detail.category': 'Categoria',
  'todo.detail.dueDate': 'Scadenza',
  'todo.detail.assignedTo': 'Assegnato a',
  'todo.detail.delete': 'Elimina',
  'todo.detail.save': 'Salva modifiche',
  'todo.detail.create': 'Crea attività',
  'todo.detail.priority': 'Priorità',
  'todo.detail.noPriority': 'Nessuna',
  'todo.sortByPrio': 'Priorità',

  // Notification system (added from feat/notification-system)
  'settings.notifyVersionAvailable': 'Nuova versione disponibile',
  'settings.notificationPreferences.noChannels': 'Nessun canale di notifica configurato. Chiedi a un amministratore di configurare notifiche via e-mail o webhook.',
  'settings.webhookUrl.label': 'URL webhook',
  'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...',
  'settings.webhookUrl.hint': 'Inserisci il tuo URL webhook Discord, Slack o personalizzato per ricevere notifiche.',
  'settings.webhookUrl.saved': 'URL webhook salvato',
  'settings.webhookUrl.test': 'Test',
  'settings.webhookUrl.testSuccess': 'Webhook di test inviato con successo',
  'settings.webhookUrl.testFailed': 'Invio webhook di test fallito',
  'settings.ntfyUrl.topicLabel': 'Argomento Ntfy',
  'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts',
  'settings.ntfyUrl.serverLabel': 'URL server Ntfy (opzionale)',
  'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh',
  'settings.ntfyUrl.hint': "Inserisci il tuo argomento Ntfy per ricevere notifiche push. Lascia il server vuoto per usare il valore predefinito configurato dall'amministratore.",
  'settings.ntfyUrl.tokenLabel': 'Token di accesso (opzionale)',
  'settings.ntfyUrl.tokenHint': 'Richiesto per gli argomenti protetti da password.',
  'settings.ntfyUrl.saved': 'Impostazioni Ntfy salvate',
  'settings.ntfyUrl.test': 'Testa',
  'settings.ntfyUrl.testSuccess': 'Notifica di test Ntfy inviata con successo',
  'settings.ntfyUrl.testFailed': 'Notifica di test Ntfy fallita',
  'settings.ntfyUrl.tokenCleared': 'Token di accesso rimosso',
  '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': 'Le notifiche in-app sono sempre attive e non possono essere disabilitate globalmente.',
  'admin.notifications.adminWebhookPanel.title': 'Webhook admin',
  'admin.notifications.adminWebhookPanel.hint': 'Questo webhook viene usato esclusivamente per le notifiche admin (es. avvisi di versione). È separato dai webhook utente e si attiva automaticamente quando è configurato un URL.',
  'admin.notifications.adminWebhookPanel.saved': 'URL webhook admin salvato',
  'admin.notifications.adminWebhookPanel.testSuccess': 'Webhook di test inviato con successo',
  'admin.notifications.adminWebhookPanel.testFailed': 'Invio webhook di test fallito',
  'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Il webhook admin si attiva automaticamente quando è configurato un URL',
  'admin.notifications.ntfy': 'Ntfy',
  'admin.ntfy.hint': 'Consente agli utenti di configurare i propri argomenti ntfy per le notifiche push. Imposta il server predefinito di seguito per precompilare le impostazioni utente.',
  'admin.notifications.testNtfy': 'Invia Ntfy di test',
  'admin.notifications.testNtfySuccess': 'Ntfy di test inviato con successo',
  'admin.notifications.testNtfyFailed': 'Invio Ntfy di test fallito',
  'admin.notifications.adminNtfyPanel.title': 'Ntfy admin',
  'admin.notifications.adminNtfyPanel.hint': 'Questo argomento Ntfy viene usato esclusivamente per le notifiche admin (es. avvisi di versione). È separato dagli argomenti per utente e si attiva sempre quando è configurato.',
  'admin.notifications.adminNtfyPanel.serverLabel': 'URL server Ntfy',
  'admin.notifications.adminNtfyPanel.serverHint': 'Usato anche come server predefinito per le notifiche ntfy degli utenti. Lasciare vuoto per usare ntfy.sh. Gli utenti possono sovrascriverlo nelle proprie impostazioni.',
  'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
  'admin.notifications.adminNtfyPanel.topicLabel': 'Argomento admin',
  'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
  'admin.notifications.adminNtfyPanel.tokenLabel': 'Token di accesso (opzionale)',
  'admin.notifications.adminNtfyPanel.tokenCleared': 'Token di accesso admin rimosso',
  'admin.notifications.adminNtfyPanel.saved': 'Impostazioni Ntfy admin salvate',
  'admin.notifications.adminNtfyPanel.test': 'Invia Ntfy di test',
  'admin.notifications.adminNtfyPanel.testSuccess': 'Ntfy di test inviato con successo',
  'admin.notifications.adminNtfyPanel.testFailed': 'Invio Ntfy di test fallito',
  'admin.notifications.adminNtfyPanel.alwaysOnHint': 'Il Ntfy admin si attiva sempre quando un argomento è configurato',
  'admin.notifications.adminNotificationsHint': 'Configura quali canali consegnano le notifiche admin (es. avvisi di versione). Il webhook si attiva automaticamente se è impostato un URL webhook admin.',
  'admin.notifications.tripReminders.title': 'Promemoria viaggio',
  'admin.notifications.tripReminders.hint': 'Invia una notifica promemoria prima dell\'inizio di un viaggio (richiede giorni di promemoria impostati sul viaggio).',
  'admin.notifications.tripReminders.enabled': 'Promemoria viaggio attivati',
  'admin.notifications.tripReminders.disabled': 'Promemoria viaggio disattivati',
  'admin.tabs.notifications': 'Notifiche',
  'notifications.versionAvailable.title': 'Aggiornamento disponibile',
  'notifications.versionAvailable.text': 'TREK {version} è ora disponibile.',
  'notifications.versionAvailable.button': 'Visualizza dettagli',
  'notif.test.title': '[Test] Notifica',
  'notif.test.simple.text': 'Questa è una semplice notifica di test.',
  'notif.test.boolean.text': 'Accetti questa notifica di test?',
  'notif.test.navigate.text': 'Clicca qui sotto per accedere alla dashboard.',

  // Notifications
  'notif.trip_invite.title': 'Invito al viaggio',
  'notif.trip_invite.text': '{actor} ti ha invitato a {trip}',
  'notif.booking_change.title': 'Prenotazione aggiornata',
  'notif.booking_change.text': '{actor} ha aggiornato una prenotazione in {trip}',
  'notif.trip_reminder.title': 'Promemoria viaggio',
  'notif.trip_reminder.text': 'Il tuo viaggio {trip} si avvicina!',
  'notif.todo_due.title': 'Attività in scadenza',
  'notif.todo_due.text': '{todo} in {trip} scade il {due}',
  'notif.vacay_invite.title': 'Invito Vacay Fusion',
  'notif.vacay_invite.text': '{actor} ti ha invitato a fondere i piani vacanza',
  'notif.photos_shared.title': 'Foto condivise',
  'notif.photos_shared.text': '{actor} ha condiviso {count} foto in {trip}',
  'notif.collab_message.title': 'Nuovo messaggio',
  'notif.collab_message.text': '{actor} ha inviato un messaggio in {trip}',
  'notif.packing_tagged.title': 'Assegnazione bagagli',
  'notif.packing_tagged.text': '{actor} ti ha assegnato a {category} in {trip}',
  'notif.version_available.title': 'Nuova versione disponibile',
  'notif.version_available.text': 'TREK {version} è ora disponibile',
  'notif.action.view_trip': 'Vedi viaggio',
  'notif.action.view_collab': 'Vedi messaggi',
  'notif.action.view_packing': 'Vedi bagagli',
  'notif.action.view_photos': 'Vedi foto',
  'notif.action.view_vacay': 'Vedi Vacay',
  'notif.action.view_admin': 'Vai all\'admin',
  'notif.action.view': 'Vedi',
  'notif.action.accept': 'Accetta',
  'notif.action.decline': 'Rifiuta',
  'notif.generic.title': 'Notifica',
  'notif.generic.text': 'Hai una nuova notifica',
  'notif.dev.unknown_event.title': '[DEV] Evento sconosciuto',
  'notif.dev.unknown_event.text': 'Il tipo di evento "{event}" non è registrato in EVENT_NOTIFICATION_CONFIG',

  // Journey, Dashboard, Nav, DayPlan
  'common.justNow': 'proprio ora',
  'common.hoursAgo': '{count}h fa',
  'common.daysAgo': '{count}g fa',
  'journey.search.placeholder': 'Cerca viaggi…',
  'journey.search.noResults': 'Nessun viaggio corrisponde a "{query}"',
  'journey.title': 'Diario di viaggio',
  'journey.subtitle': 'Segui i tuoi viaggi in tempo reale',
  'journey.new': 'Nuovo diario',
  'journey.create': 'Crea',
  'journey.titlePlaceholder': 'Dove stai andando?',
  'journey.empty': 'Nessun diario ancora',
  'journey.emptyHint': 'Inizia a documentare il tuo prossimo viaggio',
  'journey.deleted': 'Diario eliminato',
  'journey.createError': 'Impossibile creare il diario',
  'journey.deleteError': 'Impossibile eliminare il diario',
  'journey.deleteConfirmTitle': 'Elimina',
  'journey.deleteConfirmMessage': 'Eliminare "{title}"? Questa azione non può essere annullata.',
  'journey.deleteConfirmGeneric': 'Sei sicuro di voler eliminare questo?',
  'journey.notFound': 'Diario non trovato',
  'journey.photos': 'Foto',
  'journey.timelineEmpty': 'Nessuna tappa ancora',
  'journey.timelineEmptyHint': 'Aggiungi un check-in o scrivi una voce di diario per iniziare',
  'journey.status.draft': 'Bozza',
  'journey.status.active': 'Attivo',
  'journey.status.completed': 'Completato',
  'journey.status.upcoming': 'In arrivo',
  'journey.status.archived': 'Archiviato',
  'journey.checkin.add': 'Check-in',
  'journey.checkin.namePlaceholder': 'Nome del luogo',
  'journey.checkin.notesPlaceholder': 'Note (facoltativo)',
  'journey.checkin.save': 'Salva',
  'journey.checkin.error': 'Impossibile salvare il check-in',
  'journey.entry.add': 'Diario',
  'journey.entry.edit': 'Modifica voce',
  'journey.entry.titlePlaceholder': 'Titolo (facoltativo)',
  'journey.entry.bodyPlaceholder': 'Cosa è successo oggi?',
  'journey.entry.save': 'Salva',
  'journey.entry.error': 'Impossibile salvare la voce',
  'journey.photo.add': 'Foto',
  'journey.photo.uploadError': 'Caricamento fallito',
  'journey.share.share': 'Condividi',
  'journey.share.public': 'Pubblico',
  'journey.share.linkCopied': 'Link pubblico copiato',
  'journey.share.disabled': 'Condivisione pubblica disattivata',
  'journey.editor.titlePlaceholder': 'Dai un nome a questo momento...',
  'journey.editor.bodyPlaceholder': 'Racconta la storia di questa giornata...',
  'journey.editor.placePlaceholder': 'Luogo (facoltativo)',
  'journey.editor.tagsPlaceholder': 'Tag: gioiello nascosto, miglior pasto, da rivisitare...',
  'journey.visibility.private': 'Privato',
  'journey.visibility.shared': 'Condiviso',
  'journey.visibility.public': 'Pubblico',
  'journey.emptyState.title': 'La tua storia inizia qui',
  'journey.emptyState.subtitle': 'Fai un check-in o scrivi la tua prima voce di diario',
  'journey.frontpage.subtitle': 'Trasforma i tuoi viaggi in storie indimenticabili',
  'journey.frontpage.createJourney': 'Crea diario',
  'journey.frontpage.activeJourney': 'Diario attivo',
  'journey.frontpage.allJourneys': 'Tutti i diari',
  'journey.frontpage.journeys': 'diari',
  'journey.frontpage.createNew': 'Crea un nuovo diario',
  'journey.frontpage.createNewSub': 'Scegli viaggi, scrivi storie, condividi le tue avventure',
  'journey.frontpage.live': 'In diretta',
  'journey.frontpage.synced': 'Sincronizzato',
  'journey.frontpage.continueWriting': 'Continua a scrivere',
  'journey.frontpage.updated': 'Aggiornato {time}',
  'journey.frontpage.suggestionLabel': 'Viaggio appena terminato',
  'journey.frontpage.suggestionText': 'Trasforma <strong>{title}</strong> in un diario di viaggio',
  'journey.frontpage.dismiss': 'Ignora',
  'journey.frontpage.journeyName': 'Nome del diario',
  'journey.frontpage.namePlaceholder': 'es. Sud-est asiatico 2026',
  'journey.frontpage.selectTrips': 'Seleziona viaggi',
  'journey.frontpage.tripsSelected': 'viaggi selezionati',
  'journey.frontpage.trips': 'viaggi',
  'journey.frontpage.placesImported': 'luoghi saranno importati',
  'journey.frontpage.places': 'luoghi',
  'journey.detail.backToJourney': 'Torna al diario',
  'journey.detail.syncedWithTrips': 'Sincronizzato con i viaggi',
  'journey.detail.addEntry': 'Aggiungi voce',
  'journey.detail.newEntry': 'Nuova voce',
  'journey.detail.editEntry': 'Modifica voce',
  'journey.detail.noEntries': 'Nessuna voce ancora',
  'journey.detail.noEntriesHint': 'Aggiungi un viaggio per iniziare con voci precompilate',
  'journey.detail.noPhotos': 'Nessuna foto ancora',
  'journey.detail.noPhotosHint': 'Carica foto nelle voci o sfoglia la tua libreria Immich/Synology',
  'journey.detail.journeyStats': 'Statistiche del diario',
  'journey.detail.syncedTrips': 'Viaggi sincronizzati',
  'journey.detail.noTripsLinked': 'Nessun viaggio collegato ancora',
  'journey.detail.contributors': 'Contributori',
  'journey.detail.readMore': 'Leggi di più',
  'journey.detail.prosCons': 'Pro e contro',
  'journey.detail.photos': 'foto',
  'journey.detail.day': 'Giorno {number}',
  'journey.detail.places': 'luoghi',
  'journey.stats.days': 'Giorni',
  'journey.stats.cities': 'Città',
  'journey.stats.entries': 'Voci',
  'journey.stats.photos': 'Foto',
  'journey.stats.places': 'Luoghi',
  'journey.skeletons.show': 'Mostra suggerimenti',
  'journey.skeletons.hide': 'Nascondi suggerimenti',
  'journey.verdict.lovedIt': 'Adorato',
  'journey.verdict.couldBeBetter': 'Potrebbe essere meglio',
  'journey.synced.places': 'luoghi',
  'journey.synced.synced': 'sincronizzato',
  'journey.editor.discardChangesConfirm': 'Hai modifiche non salvate. Vuoi scartarle?',
  'journey.editor.uploadPhotos': 'Carica foto',
  'journey.editor.uploading': 'Caricamento...',
  'journey.editor.fromGallery': 'Dalla galleria',
  'journey.editor.allPhotosAdded': 'Tutte le foto sono già state aggiunte',
  'journey.editor.writeStory': 'Scrivi la tua storia...',
  'journey.editor.prosCons': 'Pro e contro',
  'journey.editor.pros': 'Pro',
  'journey.editor.cons': 'Contro',
  'journey.editor.proPlaceholder': 'Qualcosa di fantastico...',
  'journey.editor.conPlaceholder': 'Non così fantastico...',
  'journey.editor.addAnother': 'Aggiungi un altro',
  'journey.editor.date': 'Data',
  'journey.editor.location': 'Luogo',
  'journey.editor.searchLocation': 'Cerca luogo...',
  'journey.editor.mood': 'Umore',
  'journey.editor.weather': 'Meteo',
  'journey.editor.photoFirst': '1°',
  'journey.editor.makeFirst': 'Metti 1°',
  'journey.editor.searching': 'Ricerca...',
  'journey.mood.amazing': 'Fantastico',
  'journey.mood.good': 'Buono',
  'journey.mood.neutral': 'Neutro',
  'journey.mood.rough': 'Difficile',
  'journey.weather.sunny': 'Soleggiato',
  'journey.weather.partly': 'Parzialmente nuvoloso',
  'journey.weather.cloudy': 'Nuvoloso',
  'journey.weather.rainy': 'Piovoso',
  'journey.weather.stormy': 'Temporalesco',
  'journey.weather.cold': 'Nevoso',
  'journey.trips.linkTrip': 'Collega viaggio',
  'journey.trips.searchTrip': 'Cerca viaggio',
  'journey.trips.searchPlaceholder': 'Nome del viaggio o destinazione...',
  'journey.trips.noTripsAvailable': 'Nessun viaggio disponibile',
  'journey.trips.link': 'Collega',
  'journey.trips.tripLinked': 'Viaggio collegato',
  'journey.trips.linkFailed': 'Collegamento del viaggio fallito',
  'journey.trips.addTrip': 'Aggiungi viaggio',
  'journey.trips.unlinkTrip': 'Scollega viaggio',
  'journey.trips.unlinkMessage': 'Scollegare "{title}"? Tutte le voci e le foto sincronizzate da questo viaggio saranno eliminate definitivamente. Questa azione non può essere annullata.',
  'journey.trips.unlink': 'Scollega',
  'journey.trips.tripUnlinked': 'Viaggio scollegato',
  'journey.trips.unlinkFailed': 'Scollegamento del viaggio fallito',
  'journey.trips.noTripsLinkedSettings': 'Nessun viaggio collegato',
  'journey.contributors.invite': 'Invita contributore',
  'journey.contributors.searchUser': 'Cerca utente',
  'journey.contributors.searchPlaceholder': 'Nome utente o e-mail...',
  'journey.contributors.noUsers': 'Nessun utente trovato',
  'journey.contributors.role': 'Ruolo',
  'journey.contributors.added': 'Contributore aggiunto',
  'journey.contributors.addFailed': 'Impossibile aggiungere il contributore',
  'journey.share.publicShare': 'Condivisione pubblica',
  'journey.share.createLink': 'Crea link di condivisione',
  'journey.share.linkCreated': 'Link di condivisione creato',
  'journey.share.createFailed': 'Creazione del link fallita',
  'journey.share.copy': 'Copia',
  'journey.share.copied': 'Copiato!',
  'journey.share.timeline': 'Cronologia',
  'journey.share.gallery': 'Galleria',
  'journey.share.map': 'Mappa',
  'journey.share.removeLink': 'Rimuovi link di condivisione',
  'journey.share.linkDeleted': 'Link di condivisione eliminato',
  'journey.share.deleteFailed': 'Eliminazione fallita',
  'journey.share.updateFailed': 'Aggiornamento fallito',

  // Journey — Invite
  'journey.invite.role': 'Ruolo',
  'journey.invite.viewer': 'Visualizzatore',
  'journey.invite.editor': 'Editore',
  'journey.invite.invite': 'Invita',
  'journey.invite.inviting': 'Invito in corso...',
  'journey.settings.title': 'Impostazioni del diario',
  'journey.settings.coverImage': 'Immagine di copertina',
  'journey.settings.changeCover': 'Cambia copertina',
  'journey.settings.addCover': 'Aggiungi immagine di copertina',
  'journey.settings.name': 'Nome',
  'journey.settings.subtitle': 'Sottotitolo',
  'journey.settings.subtitlePlaceholder': 'es. Thailandia, Vietnam e Cambogia',
  'journey.settings.endJourney': 'Archivia il viaggio',
  'journey.settings.reopenJourney': 'Ripristina il viaggio',
  'journey.settings.archived': 'Viaggio archiviato',
  'journey.settings.reopened': 'Viaggio riaperto',
  'journey.settings.endDescription': 'Nasconde il badge In diretta. Puoi riaprire in qualsiasi momento.',
  'journey.settings.delete': 'Elimina',
  'journey.settings.deleteJourney': 'Elimina diario',
  'journey.settings.deleteMessage': 'Eliminare "{title}"? Tutte le voci e le foto andranno perse.',
  'journey.settings.saved': 'Impostazioni salvate',
  'journey.settings.saveFailed': 'Salvataggio fallito',
  'journey.settings.coverUpdated': 'Copertina aggiornata',
  'journey.settings.coverFailed': 'Caricamento fallito',
  'journey.settings.failedToDelete': 'Eliminazione non riuscita',
  'journey.entries.deleteTitle': 'Elimina voce',
  'journey.photosUploaded': '{count} foto caricate',
  'journey.photosAdded': '{count} foto aggiunte',
  'journey.public.notFound': 'Non trovato',
  'journey.public.notFoundMessage': 'Questo diario non esiste o il link è scaduto.',
  'journey.public.readOnly': 'Sola lettura · Diario pubblico',
  'journey.public.tagline': 'Travel Resource & Exploration Kit',
  'journey.public.sharedVia': 'Condiviso tramite',
  'journey.public.madeWith': 'Creato con',
  'journey.pdf.journeyBook': 'Diario di viaggio',
  'journey.pdf.madeWith': 'Creato con TREK',
  'journey.pdf.day': 'Giorno',
  'journey.pdf.theEnd': 'Fine',
  'journey.pdf.saveAsPdf': 'Salva come PDF',
  'journey.pdf.pages': 'pagine',
  'journey.picker.tripPeriod': 'Periodo del viaggio',
  'journey.picker.dateRange': 'Intervallo di date',
  'journey.picker.allPhotos': 'Tutte le foto',
  'journey.picker.albums': 'Album',
  'journey.picker.selected': 'selezionati',
  'journey.picker.addTo': 'Aggiungi a',
  'journey.picker.newGallery': 'Nuova galleria',
  'journey.picker.selectAll': 'Seleziona tutto',
  'journey.picker.deselectAll': 'Deseleziona tutto',
  'journey.picker.noAlbums': 'Nessun album trovato',
  'journey.picker.selectDate': 'Seleziona data',
  'journey.picker.search': 'Cerca',
  'dashboard.greeting.morning': 'Buongiorno,',
  'dashboard.greeting.afternoon': 'Buon pomeriggio,',
  'dashboard.greeting.evening': 'Buonasera,',
  'dashboard.mobile.liveNow': 'In diretta',
  'dashboard.mobile.tripProgress': 'Progresso del viaggio',
  'dashboard.mobile.daysLeft': '{count} giorni rimanenti',
  'dashboard.mobile.places': 'Luoghi',
  'dashboard.mobile.buddies': 'Compagni',
  'dashboard.mobile.newTrip': 'Nuovo viaggio',
  'dashboard.mobile.currency': 'Valuta',
  'dashboard.mobile.timezone': 'Fuso orario',
  'dashboard.mobile.upcomingTrips': 'Viaggi in arrivo',
  'dashboard.mobile.yourTrips': 'I tuoi viaggi',
  'dashboard.mobile.trips': 'viaggi',
  'dashboard.mobile.starts': 'Inizio',
  'dashboard.mobile.duration': 'Durata',
  'dashboard.mobile.day': 'giorno',
  'dashboard.mobile.days': 'giorni',
  'dashboard.mobile.ongoing': 'In corso',
  'dashboard.mobile.startsToday': 'Inizia oggi',
  'dashboard.mobile.tomorrow': 'Domani',
  'dashboard.mobile.inDays': 'Tra {count} giorni',
  'dashboard.mobile.inMonths': 'Tra {count} mesi',
  'dashboard.mobile.completed': 'Completato',
  'dashboard.mobile.currencyConverter': 'Convertitore di valuta',
  'nav.profile': 'Profilo',
  'nav.bottomSettings': 'Impostazioni',
  'nav.bottomAdmin': 'Amministrazione',
  'nav.bottomLogout': 'Disconnetti',
  'nav.bottomAdminBadge': 'Admin',
  'dayplan.mobile.addPlace': 'Aggiungi luogo',
  'dayplan.mobile.searchPlaces': 'Cerca luoghi...',
  'dayplan.mobile.allAssigned': 'Tutti i luoghi assegnati',
  'dayplan.mobile.noMatch': 'Nessun risultato',
  'dayplan.mobile.createNew': 'Crea nuovo luogo',
  'admin.addons.catalog.journey.name': 'Diario di viaggio',
  'admin.addons.catalog.journey.description': 'Tracciamento viaggi e diario con check-in, foto e storie quotidiane',
  // OAuth scope groups
  'oauth.scope.group.trips': 'Viaggi',
  'oauth.scope.group.places': 'Luoghi',
  'oauth.scope.group.atlas': 'Atlas',
  'oauth.scope.group.packing': 'Bagagli',
  'oauth.scope.group.todos': 'Attività',
  'oauth.scope.group.budget': 'Budget',
  'oauth.scope.group.reservations': 'Prenotazioni',
  'oauth.scope.group.collab': 'Collaborazione',
  'oauth.scope.group.notifications': 'Notifiche',
  'oauth.scope.group.vacay': 'Ferie',
  'oauth.scope.group.geo': 'Geo',
  'oauth.scope.group.weather': 'Meteo',
  'oauth.scope.group.journey': 'Diario di viaggio',

  // OAuth scope labels & descriptions
  'oauth.scope.trips:read.label': 'Visualizza viaggi e itinerari',
  'oauth.scope.trips:read.description': 'Leggi viaggi, giorni, note giornaliere e membri',
  'oauth.scope.trips:write.label': 'Modifica viaggi e itinerari',
  'oauth.scope.trips:write.description': 'Crea e aggiorna viaggi, giorni, note e gestisci membri',
  'oauth.scope.trips:delete.label': 'Elimina viaggi',
  'oauth.scope.trips:delete.description': 'Elimina definitivamente interi viaggi — questa azione è irreversibile',
  'oauth.scope.trips:share.label': 'Gestisci link di condivisione',
  'oauth.scope.trips:share.description': 'Crea, aggiorna e revoca link di condivisione pubblici per i viaggi',
  'oauth.scope.places:read.label': 'Visualizza luoghi e dati mappa',
  'oauth.scope.places:read.description': 'Leggi luoghi, assegnazioni giornaliere, tag e categorie',
  'oauth.scope.places:write.label': 'Gestisci luoghi',
  'oauth.scope.places:write.description': 'Crea, aggiorna ed elimina luoghi, assegnazioni e tag',
  'oauth.scope.atlas:read.label': 'Visualizza Atlas',
  'oauth.scope.atlas:read.description': 'Leggi paesi visitati, regioni e lista dei desideri',
  'oauth.scope.atlas:write.label': 'Gestisci Atlas',
  'oauth.scope.atlas:write.description': 'Segna paesi e regioni come visitati, gestisci la lista dei desideri',
  'oauth.scope.packing:read.label': 'Visualizza liste bagagli',
  'oauth.scope.packing:read.description': 'Leggi articoli, borse e assegnatari di categoria',
  'oauth.scope.packing:write.label': 'Gestisci liste bagagli',
  'oauth.scope.packing:write.description': 'Aggiungi, aggiorna, elimina, spunta e riordina articoli e borse',
  'oauth.scope.todos:read.label': 'Visualizza liste attività',
  'oauth.scope.todos:read.description': 'Leggi attività del viaggio e assegnatari di categoria',
  'oauth.scope.todos:write.label': 'Gestisci liste attività',
  'oauth.scope.todos:write.description': 'Crea, aggiorna, spunta, elimina e riordina attività',
  'oauth.scope.budget:read.label': 'Visualizza budget',
  'oauth.scope.budget:read.description': 'Leggi voci di budget e ripartizione delle spese',
  'oauth.scope.budget:write.label': 'Gestisci budget',
  'oauth.scope.budget:write.description': 'Crea, aggiorna ed elimina voci di budget',
  'oauth.scope.reservations:read.label': 'Visualizza prenotazioni',
  'oauth.scope.reservations:read.description': 'Leggi prenotazioni e dettagli alloggio',
  'oauth.scope.reservations:write.label': 'Gestisci prenotazioni',
  'oauth.scope.reservations:write.description': 'Crea, aggiorna, elimina e riordina prenotazioni',
  'oauth.scope.collab:read.label': 'Visualizza collaborazione',
  'oauth.scope.collab:read.description': 'Leggi note collaborative, sondaggi e messaggi',
  'oauth.scope.collab:write.label': 'Gestisci collaborazione',
  'oauth.scope.collab:write.description': 'Crea, aggiorna ed elimina note collaborative, sondaggi e messaggi',
  'oauth.scope.notifications:read.label': 'Visualizza notifiche',
  'oauth.scope.notifications:read.description': 'Leggi notifiche in-app e conteggi non letti',
  'oauth.scope.notifications:write.label': 'Gestisci notifiche',
  'oauth.scope.notifications:write.description': 'Segna notifiche come lette e rispondi',
  'oauth.scope.vacay:read.label': 'Visualizza piani ferie',
  'oauth.scope.vacay:read.description': 'Leggi dati di pianificazione ferie, voci e statistiche',
  'oauth.scope.vacay:write.label': 'Gestisci piani ferie',
  'oauth.scope.vacay:write.description': 'Crea e gestisci voci ferie, festività e piani del team',
  'oauth.scope.geo:read.label': 'Mappe e geocodifica',
  'oauth.scope.geo:read.description': 'Cerca luoghi, risolvi URL mappa e geocodifica inversa coordinate',
  'oauth.scope.weather:read.label': 'Previsioni meteo',
  'oauth.scope.weather:read.description': 'Ottieni previsioni meteo per luoghi e date del viaggio',
  'oauth.scope.journey:read.label': 'Visualizza diari di viaggio',
  'oauth.scope.journey:read.description': 'Leggi diari di viaggio, voci e lista dei collaboratori',
  'oauth.scope.journey:write.label': 'Gestisci diari di viaggio',
  'oauth.scope.journey:write.description': 'Crea, aggiorna ed elimina diari di viaggio e le loro voci',
  'oauth.scope.journey:share.label': 'Gestisci link diari di viaggio',
  'oauth.scope.journey:share.description': 'Crea, aggiorna e revoca link di condivisione pubblici per i diari di viaggio',

  // System notices
  'system_notice.welcome_v1.title': 'Benvenuto su TREK',
  'system_notice.welcome_v1.body': 'Il tuo pianificatore di viaggi tutto in uno. Crea itinerari, condividi viaggi con gli amici e rimani organizzato — online e offline.',
  'system_notice.welcome_v1.cta_label': 'Pianifica un viaggio',
  'system_notice.welcome_v1.hero_alt': 'Destinazione di viaggio panoramica con l\'interfaccia TREK',
  'system_notice.welcome_v1.highlight_plan': 'Itinerari giorno per giorno',
  'system_notice.welcome_v1.highlight_share': 'Collabora con i tuoi compagni di viaggio',
  'system_notice.welcome_v1.highlight_offline': 'Funziona offline su mobile',
  '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': 'Avviso precedente',
  'system_notice.pager.next': 'Avviso successivo',
  'system_notice.pager.counter': '{current} / {total}',
  'system_notice.pager.goto': "Vai all'avviso {n}",
  'system_notice.pager.position': 'Avviso {current} di {total}',
  // System notices — 3.0.0 upgrade
  'system_notice.v3_photos.title': 'Le foto sono spostate nella 3.0',
  'system_notice.v3_photos.body': '**Foto** nel Pianificatore di Viaggio sono state rimosse. Le tue foto sono al sicuro — TREK non ha mai modificato la tua libreria Immich o Synology.\n\nLe foto ora si trovano nel componente aggiuntivo **Journey**. Journey è opzionale — se non è ancora disponibile, chiedi al tuo admin di abilitarlo in Admin → Addon.',
  'system_notice.v3_journey.title': 'Scopri Journey — diario di viaggio',
  'system_notice.v3_journey.body': 'Documenta i tuoi viaggi come storie ricche con cronologie, gallerie fotografiche e mappe interattive.',
  'system_notice.v3_journey.cta_label': 'Apri Journey',
  'system_notice.v3_journey.highlight_timeline': 'Cronologia e galleria giornaliera',
  'system_notice.v3_journey.highlight_photos': 'Importa da Immich o Synology',
  'system_notice.v3_journey.highlight_share': 'Condividi pubblicamente — senza accesso',
  'system_notice.v3_journey.highlight_export': 'Esporta come libro fotografico PDF',
  'system_notice.v3_features.title': 'Altri punti salienti nel 3.0',
  'system_notice.v3_features.body': 'Altre novità da conoscere in questa versione.',
  'system_notice.v3_features.highlight_dashboard': 'Dashboard ridisegnata mobile-first',
  'system_notice.v3_features.highlight_offline': 'Modalità offline completa come PWA',
  'system_notice.v3_features.highlight_search': 'Completamento automatico luoghi in tempo reale',
  'system_notice.v3_features.highlight_import': 'Importa luoghi da file KMZ/KML',

  // System notices — MCP OAuth 2.1 upgrade
  'system_notice.v3_mcp.title': 'MCP: aggiornamento OAuth 2.1',
  'system_notice.v3_mcp.body': "L'integrazione MCP è stata completamente rinnovata. OAuth 2.1 è ora il metodo di autenticazione consigliato. I token statici (trek_\u2026) sono deprecati e verranno rimossi in una versione futura.",
  'system_notice.v3_mcp.highlight_oauth':      'OAuth 2.1 consigliato (mcp-remote)',
  'system_notice.v3_mcp.highlight_scopes':     '24 scope di autorizzazione granulari',
  'system_notice.v3_mcp.highlight_deprecated': 'Token statici trek_ deprecati',
  'system_notice.v3_mcp.highlight_tools':      'Strumenti e prompt estesi',

  // System notices — personal thank you
  'system_notice.v3_thankyou.title': 'Una nota personale da parte mia',
  'system_notice.v3_thankyou.body': 'Prima di andare avanti — voglio prendermi un momento.\n\nTREK è nato come un progetto secondario che ho costruito per i miei viaggi. Non avrei mai immaginato che sarebbe cresciuto fino a diventare qualcosa di cui 4.000 di voi si fidano per pianificare le proprie avventure. Ogni stella, ogni issue, ogni richiesta di funzionalità — le leggo tutte, e sono loro a tenermi in piedi nelle notti tarde tra un lavoro a tempo pieno e l\'università.\n\nVoglio che sappiate: TREK sarà sempre open source, sempre self-hosted, sempre vostro. Nessun tracciamento, nessun abbonamento, nessuna fregatura. Solo uno strumento creato da qualcuno che ama viaggiare tanto quanto voi.\n\nUn ringraziamento speciale a [jubnl](https://github.com/jubnl) — sei diventato un collaboratore incredibile. Molto di ciò che rende la 3.0 fantastica porta la tua impronta. Grazie per aver creduto in questo progetto quando era ancora acerbo.\n\nE a ognuno di voi che ha segnalato un bug, tradotto una stringa, condiviso TREK con un amico o semplicemente lo ha usato per pianificare un viaggio — **grazie**. Voi siete il motivo per cui tutto questo esiste.\n\nA molte altre avventure insieme.\n\n— Maurice\n\n---\n\n[Unisciti alla community su Discord](https://discord.gg/7Q6M6jDwzf)\n\nSe TREK rende i tuoi viaggi migliori, un [piccolo caffè](https://ko-fi.com/mauriceboe) aiuta sempre a tenere le luci accese.',
  // System notices — 3.0.14
  'system_notice.v3014_whitespace_collision.title': 'Azione richiesta: conflitto di account utente',
  'system_notice.v3014_whitespace_collision.body': "L'aggiornamento 3.0.14 ha rilevato uno o più conflitti di nome utente o e-mail causati da spazi iniziali o finali nei valori memorizzati. Gli account interessati sono stati rinominati automaticamente. Controlla i log del server per le righe che iniziano con **[migration] WHITESPACE COLLISION** per identificare quali account richiedono revisione.",
  'transport.addTransport': 'Aggiungi trasporto',
  'transport.modalTitle.create': 'Aggiungi trasporto',
  'transport.modalTitle.edit': 'Modifica trasporto',
  'transport.title': 'Trasporti',
  'transport.addManual': 'Trasporto manuale',
}

export default it

