<?php
return [
    'app.title' => 'La Mia Applicazione',
    'app.welcome' => 'Benvenuto',
    'app.copyright' => '© {year} {app}',
    'app.description' => 'Applicazione web con gestione utenti',
    'nav.home' => 'Home',
    'nav.about' => 'Informazioni',
    'nav.doc' => 'Documentazione',
    'doc.title' => 'Documentazione',
    'doc.cat_general_admin' => 'Amministrazione generale',
    'doc.cat_module_admin' => 'Amministrazione dei moduli',
    'doc.cat_general_user' => 'Guida utente generale',
    'doc.cat_module_user' => 'Guide utente dei moduli',
    'doc.empty' => 'Nessuna documentazione disponibile per il tuo profilo.',
    'doc.back' => 'Torna alla documentazione',
    'nav.login' => 'Accedi',
    'nav.logout' => 'Esci',
    'nav.profile' => 'Il mio profilo',
    'nav.admin' => 'Amministrazione',
    'nav.settings' => 'Impostazioni',
    'nav.users' => 'Utenti',
    'auth.username' => 'Nome utente',
    'auth.password' => 'Password',
    'auth.password_new' => 'Nuova password',
    'auth.password_conf' => 'Conferma password',
    'auth.password_keep' => 'Lasciare vuoto per mantenere la password attuale',
    'auth.login' => 'Accedi',
    'auth.logout' => 'Esci',
    'auth.remember' => 'Ricordami',
    'auth.login_title' => 'Accesso',
    'auth.login_error' => 'Nome utente o password non validi.',
    'auth.too_many_attempts' => 'Troppi tentativi di accesso. Riprova tra qualche minuto.',
    'auth.login_inactive' => 'Questo account è disabilitato.',
    'auth.logout_success' => 'Sei stato disconnesso.',
    'auth.no_access' => 'Accesso negato. Permessi insufficienti.',
    'auth.method' => 'Metodo di autenticazione',
    'auth.method_local' => 'Account locale',
    'auth.method_oauth' => 'OAuth / SSO',
    'auth.method_ldap' => 'LDAP / Active Directory',
    'auth.or_use' => 'Oppure accedi con:',
    'user.list' => 'Elenco utenti',
    'user.create' => 'Crea utente',
    'user.edit' => 'Modifica',
    'user.delete' => 'Elimina',
    'user.confirm_delete' => 'Sei sicuro di voler eliminare l\'utente «{username}»?',
    'user.profile' => 'Ruolo',
    'user.roles' => 'Ruoli',
    'user.roles_hint' => 'Selezionare uno o più ruoli. app_admin (sistema) concede tutti i diritti su tutti i moduli.',
    'user.roles_system' => 'Sistema',
    'user.role_self_locked' => 'bloccato: non puoi rimuovere il tuo ruolo di amministratore',
    'user.language' => 'Lingua',
    'user.theme' => 'Tema',
    'user.postgresql_prefs' => 'Preferenze PostgreSQL',
    'user.postgresql_landing' => 'Pagina iniziale dopo aver scelto una base',
    'user.postgresql_landing_hint' => 'Pagina visualizzata dopo aver scelto una base PostgreSQL. Impostabile anche con un clic dal pulsante flottante delle pagine di report.',
    'user.oracle_prefs' => 'Preferenze Oracle',
    'user.oracle_landing' => 'Pagina iniziale dopo aver scelto una base',
    'user.oracle_landing_hint' => 'Pagina su cui si arriva dopo aver selezionato una base Oracle.',
    'user.oracle_report_format' => 'Formato dei report Oracle',
    'user.oracle_format_html' => 'HTML statico',
    'user.oracle_format_active' => 'Dinamico (quando disponibile)',
    'user.oracle_format_hint' => 'Riguarda ASH e SQL Monitor. AWR non ha formato dinamico.',
    'user.active' => 'Attivo',
    'user.inactive' => 'Inattivo',
    'user.created_at' => 'Creato il',
    'user.last_login' => 'Ultimo accesso',
    'user.email' => 'Email',
    'user.password' => 'Password',
    'user.save' => 'Salva',
    'user.cancel' => 'Annulla',
    'user.never' => 'Mai',
    'user.actions' => 'Azioni',
    'role.app_admin' => 'Amministratore dell\'applicazione',
    'role.oracle_admin' => 'Amministratore Oracle',
    'role.oracle_user' => 'Utente Oracle',
    'role.cmdb_admin' => 'Amministratore CMDB',
    'role.cmdb_user' => 'Utente CMDB',
    'role.cnp_admin' => 'Amministratore CNP',
    'role.cnp_user' => 'Utente CNP',
    'theme.label' => 'Tema',
    'theme.os' => 'Tema di sistema',
    'theme.light' => 'Chiaro',
    'theme.dark' => 'Scuro',
    'theme.colorblind' => 'Alto contrasto / Daltonismo',
    'theme.custom' => 'Personalizzato',
    'lang.label' => 'Lingua',
    'lang.fr' => 'Français',
    'lang.en' => 'English',
    'lang.pl' => 'Polski',
    'lang.it' => 'Italiano',
    'lang.es' => 'Español',
    'lang.ro' => 'Română',
    'lang.de' => 'Deutsch',
    'settings.title' => 'Impostazioni applicazione',
    'settings.app_name' => 'Nome applicazione',
    'settings.app_logo' => 'Logo',
    'settings.app_logo_hint' => 'PNG, JPG, SVG, WebP — max 2 MB',
    'settings.app_favicon' => 'Favicon',
    'settings.app_favicon_hint' => 'PNG, ICO, SVG — max 512 KB. Consigliato: 32×32 px',
    'settings.app_logo_del' => 'Rimuovi logo',
    'settings.app_favicon_del' => 'Rimuovi favicon',
    'settings.appearance' => 'Aspetto',
    'settings.default_theme' => 'Tema predefinito',
    'settings.default_lang' => 'Lingua predefinita',
    'settings.auth_methods' => 'Metodi di autenticazione',
    'settings.smtp_title' => 'Email (SMTP)',
    'settings.smtp_hint' => 'Configurazione del server SMTP per l\'invio di email (notifiche, avvisi).',
    'settings.smtp_host' => 'Server SMTP',
    'settings.smtp_port' => 'Porta',
    'settings.smtp_encryption' => 'Crittografia',
    'settings.smtp_enc_none' => 'Nessuna',
    'settings.smtp_auth_enabled' => 'Autenticazione SMTP',
    'settings.smtp_auth_hint' => 'Deselezionare se il server è un relay interno che non richiede credenziali.',
    'settings.smtp_username' => 'Nome utente',
    'settings.smtp_password' => 'Password',
    'settings.smtp_from_address' => 'Indirizzo mittente',
    'settings.smtp_from_name' => 'Nome mittente',
    'settings.smtp_test' => 'Testa connessione',
    'settings.smtp_test_send' => 'Invia test',
    'settings.smtp_test_ok' => 'Connessione SMTP riuscita.',
    'settings.smtp_test_sent' => 'E-mail di test inviata. Controllare la posta in arrivo.',
    'settings.smtp_test_rcpt_placeholder' => 'destinatario@esempio.com',
    'settings.smtp_test_rcpt_required' => 'Inserire un indirizzo e-mail destinatario per il test.',
    'settings.smtp_test_subject' => 'Configurazione SMTP validata',
    'settings.smtp_test_body' => 'Se ricevi questa e-mail, la configurazione SMTP dell\'applicazione è corretta.',
    'settings.smtp_host_required' => 'Il server SMTP non è configurato.',
    'report_sub.title' => 'Abbonamenti ai rapporti',
    'report_sub.schedules_title' => 'Pianificazione dei rapporti',
    'report_sub.matrix_title' => 'Abbonamenti utenti',
    'report_sub.save' => 'Salva',
    'report_sub.saved' => 'Abbonamenti salvati.',
    'report_sub.col_user' => 'Utente',
    'report_sub.col_email' => 'E-mail',
    'report_sub.no_users' => 'Nessun utente attivo con un indirizzo e-mail.',
    'report_sub.frequency_daily' => 'Giornaliero',
    'report_sub.frequency_weekly' => 'Settimanale',
    'report_sub.frequency_monthly' => 'Mensile',
    'report_sub.day_of_month' => 'Giorno del mese',
    'report_sub.logical_day' => 'Giorno logico',
    'report_sub.dow_1' => 'Lunedì',
    'report_sub.dow_2' => 'Martedì',
    'report_sub.dow_3' => 'Mercoledì',
    'report_sub.dow_4' => 'Giovedì',
    'report_sub.dow_5' => 'Venerdì',
    'report_sub.dow_6' => 'Sabato',
    'report_sub.dow_7' => 'Domenica',
    'report_sub.logical_first_monday' => 'Primo lunedì',
    'report_sub.logical_first_tuesday' => 'Primo martedì',
    'report_sub.logical_first_wednesday' => 'Primo mercoledì',
    'report_sub.logical_first_thursday' => 'Primo giovedì',
    'report_sub.logical_first_friday' => 'Primo venerdì',
    'report_sub.logical_last_monday' => 'Ultimo lunedì',
    'report_sub.logical_last_friday' => 'Ultimo venerdì',
    'report_sub.logical_last_day' => 'Ultimo giorno',
    'report_sub.report_cnp_ad_anomalies' => 'Anomalie AD (CNP)',
    'report_sub.report_cmdb_db_inventory' => 'Inventario DB (CMDB)',
    'report_sub.report_cnp_cmdb_sync' => 'Sincr. CMDB/Oracle (CNP)',
    'report_sub.subject_cnp_ad_anomalies' => 'Rapporto: Anomalie AD',
    'report_sub.subject_cmdb_db_inventory' => 'Rapporto: Inventario dei database',
    'report_sub.subject_cnp_cmdb_sync' => 'Rapporto: Sincronizzazione CMDB / Oracle',
    'report_sub.view_online' => 'Vedi online',
    'report_sub.total_databases' => 'Totale database',
    'report_sub.log_title' => 'Ultimi invii',
    'report_sub.log_date' => 'Data',
    'report_sub.log_report' => 'Rapporto',
    'report_sub.log_recipients' => 'Destinatari',
    'report_sub.log_status' => 'Stato',
    'report_sub.no_active_module' => 'Nessun rapporto da proporre: dipendono tutti da moduli attualmente disattivati. Attivate il modulo interessato per ritrovarne la pianificazione e gli abbonati — sono conservati.',
    'settings.oauth_config' => 'Configurazione OAuth',
    'settings.ldap_config' => 'Configurazione LDAP',
    'settings.save' => 'Salva impostazioni',
    'settings.debug_mode' => 'Modalità debug',
    'settings.trace_mode' => 'Modalità trace',
    'settings.session_section' => 'Sessione',
    'settings.session_lifetime' => 'Durata della sessione',
    'settings.session_lifetime_unit' => 'secondi',
    'settings.session_lifetime_hint' => 'Tra 300 (5 min) e 86.400 (24 h). Predefinito: 3.600 (1 h).',
    'settings.enabled' => 'Abilitato',
    'settings.disabled' => 'Disabilitato',
    'settings.client_id' => 'Client ID',
    'settings.client_secret' => 'Client Secret',
    'settings.redirect_uri' => 'URI di reindirizzamento',
    'settings.auth_url' => 'URL di autorizzazione',
    'settings.token_url' => 'URL del token',
    'settings.ldap_host' => 'Host LDAP',
    'settings.ldap_port' => 'Porta LDAP',
    'settings.ldap_base_dn' => 'Base DN',
    'settings.ldap_bind_dn' => 'Bind DN',
    'settings.ldap_bind_pass' => 'Password di connessione',
    'settings.ldap_user_dn_pattern' => 'Pattern DN utente',
    'settings.ldap_user_dn_pattern_hint' => 'Segnaposto: {user}, {base_dn}, {domain}. Es. OpenLDAP: uid={user},{base_dn} — AD UPN: {user}@{domain}',
    'settings.ldap_tls_insecure' => 'Ignora la verifica del certificato TLS (LDAPS)',
    'settings.ldap_tls_insecure_hint' => 'Da usare solo per diagnostica; in produzione, installare la CA nel trust store del server web.',
    'settings.ldap_test_section' => 'Test di configurazione',
    'settings.ldap_test_btn' => 'Testa configurazione',
    'settings.ldap_test_user' => 'Utente di prova',
    'settings.ldap_test_user_hint' => 'Opzionale — per testare un bind utente reale',
    'settings.ldap_test_pass' => 'Password di prova',
    'settings.ldap_test_running' => 'Test in corso…',
    'settings.ldap_test_ok' => 'Configurazione LDAP valida',
    'settings.ldap_test_ko' => 'Test LDAP fallito',
    'settings.ldap_test_step_ext_ko' => 'Estensione PHP ldap assente — abilitare extension=ldap in php.ini',
    'settings.ldap_test_step_ext_ok' => 'Estensione PHP ldap caricata',
    'settings.ldap_test_step_host_ko' => 'Host LDAP non specificato',
    'settings.ldap_test_step_connect_ko' => 'ldap_connect() fallita — parametri non validi',
    'settings.ldap_test_step_connect_ok' => 'Connessione inizializzata (LDAPv3, timeout 5 s)',
    'settings.ldap_test_step_svc_ok' => 'Bind di servizio riuscito',
    'settings.ldap_test_step_svc_ko' => 'Bind di servizio fallito',
    'settings.ldap_test_step_anon_ok' => 'Bind anonimo riuscito',
    'settings.ldap_test_step_anon_warn' => 'Bind anonimo rifiutato (normale su Active Directory)',
    'settings.ldap_test_step_user_ok' => 'Bind utente riuscito',
    'settings.ldap_test_step_user_ko' => 'Bind utente fallito',
    'settings.ldap_test_step_user_no_base' => 'Base DN mancante — impossibile costruire il DN utente',
    'admin.title' => 'Amministrazione',
    'admin.dashboard' => 'Pannello di controllo',
    'admin.total_users' => 'Totale utenti',
    'admin.active_users' => 'Utenti attivi',
    'admin.welcome' => 'Benvenuto nel pannello di amministrazione.',
    'msg.save' => 'Salva',
    'msg.cancel' => 'Annulla',
    'msg.saved' => 'Modifiche salvate con successo.',
    'msg.error' => 'Si è verificato un errore.',
    'msg.warning' => 'Avviso',
    'msg.deleted' => 'Eliminato con successo.',
    'msg.access_denied' => 'Accesso negato.',
    'msg.not_found' => 'Pagina non trovata.',
    'msg.server_error' => 'Errore interno del server.',
    'msg.required_fields' => 'Compila tutti i campi obbligatori.',
    'msg.passwords_mismatch' => 'Le password non corrispondono.',
    'msg.password_changed' => 'Password modificata con successo.',
    'msg.user_created' => 'Utente creato con successo.',
    'msg.user_updated' => 'Utente aggiornato con successo.',
    'msg.user_deleted' => 'Utente eliminato.',
    'msg.username_taken' => 'Questo nome utente è già in uso.',
    'msg.ldap_user_not_found' => 'Questo identificativo non esiste nella directory LDAP.',
    'module.title' => 'Moduli',
    'module.list' => 'Elenco moduli',
    'module.manage' => 'Gestisci moduli',
    'module.name' => 'Modulo',
    'module.status' => 'Stato',
    'module.active' => 'Attivo',
    'module.inactive' => 'Inattivo',
    'module.active_count' => 'modulo/i attivo/i',
    'module.enable' => 'Abilita',
    'module.enable_required' => 'Abilita {module} e le sue dipendenze',
    'module.enable_required_confirm' => 'Attivare il modulo «{module}» e tutti i moduli da cui dipende?',
    'module.enable_required_summary' => '{n} modulo/i attivato/i: {list}.',
    'module.enable_required_none' => 'Il modulo e le sue dipendenze sono già attivi.',
    'module.enable_required_failed' => '{n} modulo/i non attivato/i:',
    'module.disable' => 'Disabilita',
    'module.open' => 'Apri',
    'module.roles' => 'Ruoli',
    'module.depends_on' => 'Dipende da',
    'module.none_registered' => 'Nessun modulo registrato.',
    'module.confirm_disable' => 'Disabilitare il modulo «{label}»?',
    'module.warn_users_linked' => '{n} utente/i attivo/i ha il ruolo «{role}». Perderanno l\'accesso al modulo.',
    'module.deps_missing' => 'Impossibile attivare «{module}»: modulo/i richiesto/i non attivo/i — {deps}',
    'module.deps_dependents' => 'Impossibile disattivare «{module}»: ancora usato da {dependents}',
    'module.enable_failed' => 'Attivazione del modulo fallita',
    'module.provision_summary' => '{created} utente/i creato/i, {roles} ruolo/i assegnato/i.',
    'module.add_title' => 'Aggiungi o aggiorna un modulo',
    'module.add_hint' => 'Carica un archivio ZIP contenente un\'unica cartella di modulo (con il suo module.php nella radice della cartella). Se il modulo non esiste ancora viene aggiunto disattivato; se esiste già viene aggiornato sul posto — i suoi ruoli e le relative assegnazioni agli utenti, la sua configurazione e i suoi dati sono conservati. La versione precedente viene salvata prima della sostituzione.',
    'module.zip_label' => 'Archivio ZIP del modulo',
    'module.add_apply' => 'Applica',
    'module.remove' => 'Rimuovi',
    'module.confirm_delete' => 'Eliminare il modulo «{label}» e tutti i suoi dati (ruoli, configurazione)?',
    'module.cannot_delete_active' => 'Impossibile rimuovere un modulo attivo. Disattivalo prima.',
    'module.upload_error' => 'Errore durante il caricamento del file.',
    'module.upload_invalid_zip' => 'Il file non è un archivio ZIP valido.',
    'module.upload_bad_structure' => 'Lo ZIP deve contenere un\'unica cartella di modulo nella radice.',
    'module.upload_no_descriptor' => 'Lo ZIP non contiene module.php nella radice della cartella del modulo.',
    'module.upload_exists' => 'Un modulo «{name}» esiste già.',
    'module.upload_extract_failed' => 'Estrazione del modulo non riuscita.',
    'module.upload_success' => 'Modulo «{name}» aggiunto (disattivato). Attivalo per usarlo.',
    'module.update_success' => 'Modulo «{name}» aggiornato (v{from} → v{to}). Ruoli, configurazione e dati sono stati conservati. Backup della versione precedente: {backup}',
    'module.update_failed' => 'L\'aggiornamento del modulo «{name}» non è riuscito: la cartella esistente non è stata spostata. Nulla è stato modificato.',
    'module.update_backup_failed' => 'Il backup della versione installata non è riuscito. L\'aggiornamento è stato annullato, nulla è stato modificato.',
    'module.update_rollback' => 'L\'aggiornamento del modulo «{name}» non è riuscito; la versione precedente è stata ripristinata.',
    'module.update_rollback_failed' => 'L\'aggiornamento del modulo «{name}» non è riuscito E la versione precedente non è stata ripristinata. L\'applicazione resta in manutenzione: ripristina il backup {backup} (caricalo qui), poi disattiva la manutenzione.',
    'module.update_name_mismatch' => 'Archivio incoerente: la cartella è «{name}» ma il descrittore dichiara «{decl}». Nulla è stato modificato.',
    'module.update_on_enable_warn' => 'Modulo «{name}» aggiornato, ma la sua inizializzazione ha segnalato un errore: {error}',
    'module.delete_success' => 'Modulo rimosso.',
    'module.delete_failed' => 'La cartella del modulo «{name}» non è stata rimossa completamente.',
    'module.dev_php_env' => 'Ambiente PHP',
    'module.dev_ini' => 'Configurazione php.ini',
    'module.dev_session' => 'Sessione corrente',
    'module.dev_extensions' => 'Estensioni caricate',
    'module.dev_logs' => 'Log recenti',
    'module.dev_no_logs' => 'Nessuna voce di log trovata.',
    'module.dev_db_file' => 'Database',
    'home.title' => 'Home',
    'home.logged_in' => 'Sei connesso come <strong>{username}</strong> ({role}).',
    'home.visitor' => 'Stai navigando come visitatore. <a href="/login.php">Accedi</a> per funzionalità aggiuntive.',
    'admin.maintenance' => 'Manutenzione',

    // ── Batch / Pianificazione ────────────────────────────────────────────
    'batch.title' => 'Batch / Pianificazione',
    'batch.card_desc' => 'Pianificazione delle attività (crontab / utilità di pianificazione Windows), stato e log.',
    'batch.manage' => 'Gestisci i batch',
    'batch.schedule_title' => 'Pianificazione proposta',
    'batch.schedule_intro' => 'Attività pianificate dell\'applicazione e relativa frequenza.',
    'batch.col_job' => 'Attività',
    'batch.col_schedule' => 'Pianificazione (cron)',
    'batch.col_command' => 'Comando',
    'batch.col_state' => 'Stato',
    'batch.state_active' => 'Attiva',
    'batch.state_inactive' => 'Inattiva',
    'batch.job_logrotate' => 'Rotazione dei log',
    'batch.job_backup' => 'Backup',
    'batch.job_collect_ash' => 'Raccolta ASH',
    'batch.job_collect_cmdb' => 'Raccolta CMDB',
    'batch.job_collect_rman' => 'Raccolta RMAN',
    'batch.job_collect_users' => 'Inventario utenti Oracle',
    'batch.job_schedule_reports' => 'Invio dei report pianificati',
    'batch.job_remediate' => 'Remediation utenti Oracle',
    'batch.job_provision' => 'Provisioning utenti Oracle',
    'batch.install' => 'Attiva (installa crontab)',
    'batch.uninstall' => 'Disattiva (rimuovi da crontab)',
    'batch.confirm_install' => 'Installare le attività nella crontab dell\'utente apache?',
    'batch.confirm_uninstall' => 'Rimuovere le attività dell\'applicazione dalla crontab?',
    'batch.apache_note' => 'Opera sulla crontab dell\'utente del server web (apache).',
    'batch.crontab_title' => 'Crontab attuale',
    'batch.crontab_empty' => 'Nessuna crontab per l\'utente attuale.',
    'batch.windows_title' => 'Windows (Utilità di pianificazione)',
    'batch.windows_intro' => 'Comandi schtasks da eseguire in un prompt Amministratore (host Windows).',
    'batch.logs_title' => 'Ultime esecuzioni',
    'batch.logs_rman' => 'Raccolta RMAN',
    'batch.logs_ash' => 'Raccolta ASH',
    'batch.logs_backups' => 'Backup',
    'batch.logs_applog' => 'Log dell\'applicazione',
    'batch.logs_none' => 'Nessun dato.',
    'batch.col_when' => 'Il',
    'batch.col_result' => 'Risultato',
    'batch.col_source' => 'Origine',
    'batch.col_day' => 'Giorno',
    'batch.col_rows' => 'Righe',
    'batch.failed' => 'Errore',
    'batch.shell_unavailable' => 'Esecuzione shell non disponibile (crontab non gestibile dal web).',
    'batch.already_installed' => 'Tutte le attività sono già presenti nella crontab.',
    'batch.install_ok' => '{n} attività aggiunte alla crontab.',
    'batch.uninstall_ok' => 'Attività dell\'applicazione rimosse dalla crontab.',
    'batch.crontab_error' => 'Impossibile aggiornare la crontab.',
    'backup.title' => 'Backup e ripristino',
    'backup.overview' => 'Metadati dell\'applicazione',
    'backup.overview_hint' => 'Contenuto della directory sicura: database, chiave di crittografia, wallet Oracle Cloud.',
    'backup.files_count' => 'File',
    'backup.total_size' => 'Dimensione totale',
    'backup.create_title' => 'Creare un backup',
    'backup.create_hint' => 'Crea un archivio ZIP dell\'intera directory sicura (esclusi i backup precedenti). Il backup può essere salvato sul server o scaricato.',
    'backup.save_local' => 'Salva sul server',
    'backup.download' => 'Scarica',
    'backup.created_ok' => 'Backup «%s» creato (%d file).',
    'backup.restore_title' => 'Ripristinare un backup',
    'backup.restore_hint' => 'Carica un archivio ZIP creato da questa pagina per ripristinare i metadati. Un backup dello stato attuale verrà creato automaticamente prima del ripristino.',
    'backup.restore_label' => 'Archivio ZIP di backup',
    'backup.restore_apply' => 'Ripristina',
    'backup.restore_confirm' => 'Sei sicuro di voler ripristinare questo backup? Lo stato attuale verrà salvato prima.',
    'backup.restore_this' => 'Ripristina questo backup',
    'backup.restored_ok' => '%d file ripristinato/i. Backup pre-ripristino: %s',
    'backup.local_list' => 'Backup locali',
    'backup.no_backups' => 'Nessun backup locale.',
    'backup.col_name' => 'File',
    'backup.col_size' => 'Dimensione',
    'backup.col_date' => 'Data',
    'backup.delete_confirm' => 'Eliminare il backup «%s»?',
    'backup.deleted_ok' => 'Backup «%s» eliminato.',
    'backup.invalid_file' => 'Nome file non valido.',
    'backup.securite_missing' => 'La directory sicura non esiste.',
    'backup.create_error' => 'Impossibile creare l\'archivio ZIP.',
    'update.title' => 'Aggiornamento dell\'applicazione',
    'update.current_version' => 'Versione attuale',
    'update.upload_title' => 'Carica un aggiornamento',
    'update.upload_hint' => 'Seleziona un archivio ZIP contenente i file di aggiornamento. Il database e la chiave di crittografia non verranno sovrascritti.',
    'update.zip_label' => 'Archivio ZIP di aggiornamento',
    'update.apply' => 'Applica aggiornamento',
    'update.confirm' => 'Sei sicuro di voler applicare questo aggiornamento? Un backup verrà creato automaticamente.',
    'update.upload_error' => 'Errore durante il caricamento del file.',
    'update.invalid_zip' => 'Il file non è un archivio ZIP valido.',
    'update.zip_ext_missing' => 'L\'estensione PHP ZipArchive non è disponibile su questo server.',
    'update.empty_archive' => 'L\'archivio non contiene file da estrarre (tutti i file sono protetti o l\'archivio è vuoto).',
    'update.success' => '%d file aggiornato/i con successo.',
    'update.backup_created' => 'Backup creato: %s',
    'update.deleted' => '%d elemento/i della versione precedente rimosso/i.',
    'update.full_backup_created' => 'Backup completo: %s',
    'update.backup_failed' => 'Backup preliminare fallito — aggiornamento annullato, nessun file eliminato.',
    'update.maintenance_failed' => 'Estrazione incompleta: l\'applicazione resta in modalità manutenzione. Ripristina il backup %s (Backup/Ripristino) o riavvia l\'aggiornamento.',
    'update.maintenance_active' => 'L\'applicazione è attualmente in modalità manutenzione (visibile solo agli amministratori).',
    'update.clear_maintenance' => 'Esci dalla modalità manutenzione',
    'update.maintenance_cleared' => 'Modalità manutenzione disattivata.',
    'update.danger_hint' => 'L\'aggiornamento mette l\'app in manutenzione, esegue un backup poi ELIMINA la versione precedente (eccetto securite/ e log/), quindi estrae la nuova.',
    'update.pruned' => '%d backup obsoleto/i rimosso/i.',
    'update.restore_success' => 'Versione ripristinata da %s:',
    'update.backup_deleted' => 'Backup eliminato: %s',
    'update.backup_not_found' => 'Backup non trovato o nome non valido.',
    'update.delete_failed' => 'Eliminazione del backup non riuscita.',
    'update.backups_title' => 'Versioni precedenti (backup)',
    'update.backups_hint' => 'Le ultime 3 versioni sono conservate automaticamente. Puoi ripristinare o eliminare una versione.',
    'update.backups_empty' => 'Nessun backup disponibile.',
    'update.backup_latest' => 'ultima',
    'update.restore' => 'Ripristina',
    'update.restore_confirm' => 'Ripristinare questa versione sostituirà quella attuale (clean replace). Continuare?',
    'update.delete_backup' => 'Elimina',
    'update.delete_backup_confirm' => 'Eliminare definitivamente questo backup?',
    'update.protected_dirs' => 'Dati e log sempre preservati',
    'update.git_kept' => 'Metadati git preservati (modulo Developer presente)',
    'update.git_removed' => 'Metadati git rimossi (istanza pacchettizzata)',
    'update.partial_errors' => '%d file non estratto/i:',
    'update.skipped_files' => '%d file protetto/i ignorato/i:',
    'update.protected_title' => 'File protetti',
    'update.protected_hint' => 'I seguenti file non verranno mai sovrascritti da un aggiornamento, anche se presenti nell\'archivio:',
    'update.protected_db' => 'Database dell\'applicazione',
    'update.protected_key' => 'Chiave di crittografia master',
    'update.protected_wallets' => 'Oracle Cloud Wallets',
    'maintenance.title' => 'Manutenzione in corso',
    'maintenance.message' => 'L\'applicazione è temporaneamente non disponibile per manutenzione. Riprova tra qualche istante.',
    'about.title' => 'Informazioni',
    'about.version' => 'Version',
    'about.libraries' => 'Librerie di terze parti',
    'about.lib_name' => 'Libreria',
    'about.lib_version' => 'Version',
    'about.lib_license' => 'Licenza',
    'about.license_title' => 'Licenza',
    'about.license_rights' => 'Tutti i diritti riservati.',
    'about.license_grant' => 'Questo software è fornito sotto licenza proprietaria, non esclusiva e non trasferibile. L\'autore concede all\'acquirente il diritto di utilizzare il software nella sua forma originale, senza trasferimento di proprietà.',
    'about.license_conditions' => 'Soggetto alle seguenti condizioni:',
    'about.license_cond_attribution' => '<strong>Attribuzione</strong> — L\'origine del software e il nome dell\'autore devono essere conservati nel codice sorgente e nella documentazione tecnica. L\'interfaccia mostrata agli utenti finali può invece essere personalizzata (vedere «Marca bianca»).',
    'about.license_cond_no_derivs' => '<strong>Nessuna opera derivata</strong> — Il codice del software non può essere modificato, trasformato o usato come base per opere derivate senza la previa autorizzazione scritta dell\'autore, ad eccezione della personalizzazione dell\'identità visiva (titolo, logo, favicon, tema) prevista dall\'applicazione.',
    'about.license_cond_commercial' => '<strong>Nessuna cessione — marca bianca consentita</strong> — Il software non può essere ceduto, rivenduto né concesso in sottolicenza come prodotto. L\'acquirente può tuttavia utilizzarlo e proporlo ai propri clienti in marca bianca, sotto la propria identità visiva, senza trasferimento della proprietà della licenza.',
    'about.license_disclaimer' => 'IL SOFTWARE È FORNITO "COSÌ COM\'È", SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE, INCLUSE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO L\'AUTORE SARÀ RESPONSABILE PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ.',
    'about.license_compat' => 'Licenza proprietaria e non trasferibile: il software può essere utilizzato in marca bianca ma non può essere ceduto né rivenduto.',
    'backup.include_key' => 'Includi la chiave di cifratura (master.key) — ripristino completo',
    'backup.include_key_warn' => '⚠ Senza la chiave, il backup non può decifrare i segreti: salva master.key separatamente. Con la chiave, proteggi il file (contiene TUTTI i segreti).',
];
