mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
580 lines
37 KiB
TypeScript
580 lines
37 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
||
|
||
const settings: TranslationStrings = {
|
||
'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.plugins.oauth.connected': 'Connesso',
|
||
'settings.plugins.oauth.notConnected': 'Non connesso',
|
||
'settings.plugins.oauth.connect': 'Connetti',
|
||
'settings.plugins.oauth.disconnect': 'Disconnetti',
|
||
'settings.tabs.plugins': 'Plugin',
|
||
'settings.plugins.title': 'Impostazioni plugin',
|
||
'settings.plugins.subtitle': 'Le tue impostazioni personali per i plugin che usi (chiavi API, preferenze).',
|
||
'settings.plugins.empty': 'Nessun plugin attivo.',
|
||
'settings.plugins.saved': 'Impostazioni salvate',
|
||
'settings.plugins.requiredMissing': '"{field}" è obbligatorio',
|
||
'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.routingBase': 'Motore di percorso proprio',
|
||
'settings.routingBaseHint': 'Una tua istanza OSRM. Vuoto usa i server pubblici, che consentono circa una richiesta al secondo: sufficiente per un giorno, poco per un viaggio in auto. Ha effetto dopo il riavvio del server.',
|
||
'settings.valhallaBase': 'Istanza Valhalla propria',
|
||
'settings.valhallaBaseHint':
|
||
'TREK usa per impostazione predefinita la Valhalla pubblica di FOSSGIS per evitare pedaggi, autostrade e traghetti. Inserisci qui l’URL della tua Valhalla per usarla al suo posto. Se è configurata solo un’istanza di routing personalizzata, la Valhalla pubblica non viene usata. Dopo aver inserito un URL personalizzato, riavvia il server e ricarica la pagina.',
|
||
'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.mapMapLibreSubtitle': 'Tile vettoriali OpenFreeMap, senza token',
|
||
'settings.mapExperimental': 'Sperimentale',
|
||
'settings.mapMapboxToken': 'Token di accesso Mapbox',
|
||
'settings.mapMapboxTokenHint': 'Token pubblico (pk.*) da',
|
||
'settings.mapMapboxTokenLink': 'mapbox.com → Token di accesso',
|
||
'settings.mapCartoKey': 'Chiave API CARTO',
|
||
'settings.mapCartoKeyHint': 'Le mappe base CARTO mostrano una filigrana senza chiave. Gratuita e senza account, da',
|
||
'settings.mapCartoKeyLink': 'chiave API mappe base di carto.com',
|
||
'settings.mapCartoKeyMissing':
|
||
'Questo modello è una mappa base CARTO. Senza chiave, CARTO stampa "API KEY REQUIRED" su ogni tassello. Finché non inserisci una chiave, TREK mostra la mappa base predefinita.',
|
||
'settings.mapStyle': 'Stile mappa',
|
||
'settings.mapStylePlaceholder': 'Seleziona uno stile Mapbox',
|
||
'settings.mapStyleHint': 'Preset o il tuo URL mapbox://styles/USER/ID',
|
||
'settings.mapOpenFreeMapStylePlaceholder': 'Seleziona uno stile OpenFreeMap',
|
||
'settings.mapOpenFreeMapStyleHint':
|
||
'Preset o URL di stile OpenFreeMap. Gli stili OpenFreeMap funzionano senza token.',
|
||
'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.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.distance': 'Unità di Distanza',
|
||
'settings.timeFormat': 'Formato Ora',
|
||
'settings.blurBookingCodes': 'Nascondi codici di prenotazione',
|
||
'settings.aiAlwaysRetry': 'Always retry booking imports with AI',
|
||
'settings.aiAlwaysRetryHint': 'When a file cannot be read by the standard parser, automatically retry it with AI.',
|
||
'settings.optimizeFromAccommodation': "Ottimizza il percorso dall'alloggio",
|
||
'settings.optimizeFromAccommodationHint':
|
||
"Quando ottimizzi un giorno, fa iniziare il percorso dall'hotel in cui ti svegli e terminarlo in quello in cui fai il check-in quella sera.",
|
||
'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.notifyVacayShare': 'Condivisioni calendario Vacay',
|
||
'settings.notifyCollectionInvite': 'Inviti alle raccolte',
|
||
'settings.notifySynologySessionCleared': 'Sessione Synology rimossa',
|
||
'settings.notifyPluginNotification': 'Notifiche dei plugin',
|
||
'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, HTTP di loopback o uno schema privato come myapp://. Corrispondenza esatta, tranne la porta di loopback.',
|
||
'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.oauth.modal.machineClient': 'Client macchina (senza login nel browser)',
|
||
'settings.oauth.modal.machineClientHint':
|
||
'Usa il grant client_credentials — nessun URI di reindirizzamento necessario. Il token viene emesso direttamente tramite client_id + client_secret e agisce come te negli ambiti selezionati.',
|
||
'settings.oauth.modal.machineClientUsage':
|
||
'Ottieni token: POST /oauth/token con grant_type=client_credentials, client_id e client_secret. Senza browser, senza token di aggiornamento.',
|
||
'settings.oauth.badge.machine': 'macchina',
|
||
'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.descriptionManaged':
|
||
'TREK helps you organize your trips from the first idea to the last memory. Day planning, budget, packing lists, photos and much more — all in one place.',
|
||
'settings.about.sourceTitle': 'Source code',
|
||
'settings.about.sourceHint': 'TREK is open source, licensed AGPL-3.0',
|
||
'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.avatarRemoveError': 'Rimozione non riuscita',
|
||
'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.',
|
||
'settings.bookingLabels': 'Etichette percorsi prenotati',
|
||
'settings.bookingLabelsHint':
|
||
"Mostra i nomi di stazioni / aeroporti sulla mappa. Se disattivato, viene mostrata solo l'icona.",
|
||
'settings.notifyVersionAvailable': 'Nuova versione disponibile',
|
||
'settings.notifyReplicaFailure': "Errore di replica dell'archiviazione",
|
||
'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.notConfigured': 'Non ancora configurato — impostalo nelle impostazioni del plugin',
|
||
'settings.plugins.actions': 'Azioni',
|
||
'settings.plugins.actions.confirm': 'Eseguire questa azione?',
|
||
'settings.notificationPreferences.sendTest': 'Invia test',
|
||
'settings.notificationPreferences.configure': 'Configura',
|
||
'settings.notificationPreferences.testSuccess': 'Notifica di prova inviata.',
|
||
'settings.notificationPreferences.testFailed': 'Test non riuscito.',
|
||
'settings.notificationPreferences.pluginConfigured':
|
||
'Configurato. Gestisci le credenziali nelle impostazioni del plugin.',
|
||
'settings.notificationPreferences.webhook': 'Webhook',
|
||
'settings.notificationPreferences.email': 'Email',
|
||
'settings.notificationPreferences.ntfy': 'Ntfy',
|
||
'settings.currency': 'Valuta di visualizzazione',
|
||
'settings.currencyHint':
|
||
'Gli importi in Costi vengono mostrati convertiti in questa valuta solo per la visualizzazione — gli importi originali restano invariati.',
|
||
'settings.currencyTrip': 'Valuta del viaggio',
|
||
'settings.passkey.title': 'Passkey',
|
||
'settings.passkey.description':
|
||
'Accedi più velocemente e in modo resistente al phishing con una passkey — la tua impronta digitale, il volto, il PIN o una chiave hardware. La tua password resta come riserva.',
|
||
'settings.passkey.notConfigured':
|
||
'Le passkey sono abilitate ma non ancora completamente configurate su questo server. Chiedi al tuo amministratore di impostare il dominio WebAuthn.',
|
||
'settings.passkey.add': 'Aggiungi una passkey',
|
||
'settings.passkey.addTitle': 'Aggiungi una passkey',
|
||
'settings.passkey.passwordPrompt': 'Conferma la tua password attuale, poi segui le istruzioni del tuo dispositivo.',
|
||
'settings.passkey.passwordRequired': 'La tua password attuale è obbligatoria.',
|
||
'settings.passkey.namePlaceholder': 'Nome (facoltativo, es. "iPhone")',
|
||
'settings.passkey.addedToast': 'Passkey aggiunta',
|
||
'settings.passkey.added': 'Aggiunta',
|
||
'settings.passkey.addError': 'Impossibile aggiungere la passkey',
|
||
'settings.passkey.cancelled': 'Configurazione della passkey annullata',
|
||
'settings.passkey.deleted': 'Passkey rimossa',
|
||
'settings.passkey.deleteConfirm': 'Rimuovere questa passkey? Conferma con la tua password.',
|
||
'settings.passkey.rename': 'Rinomina',
|
||
'settings.passkey.defaultName': 'Passkey',
|
||
'settings.passkey.synced': 'Sincronizzata',
|
||
'settings.passkey.deviceBound': 'Questo dispositivo',
|
||
'settings.passkey.lastUsed': 'Ultimo utilizzo',
|
||
'settings.passkey.neverUsed': 'Mai usata',
|
||
'settings.mapPoiPill': 'Esplora luoghi sulla mappa',
|
||
'settings.mapPoiPillHint':
|
||
'Mostra un selettore di categorie sulla mappa del viaggio per trovare ristoranti, hotel e altro nelle vicinanze da OpenStreetMap.',
|
||
'settings.airtrail.title': 'AirTrail',
|
||
'settings.airtrail.hint':
|
||
'Collega il tuo AirTrail self-hosted per importare e sincronizzare i voli. Crea una chiave API in AirTrail in Impostazioni → Sicurezza.',
|
||
'settings.airtrail.url': 'URL istanza',
|
||
'settings.airtrail.apiKey': 'Chiave API',
|
||
'settings.airtrail.apiKeyPlaceholder': 'Chiave API Bearer',
|
||
'settings.airtrail.apiKeyHint': 'Generata in AirTrail in Impostazioni → Sicurezza. Memorizzata crittografata.',
|
||
'settings.airtrail.allowInsecureTls': 'Consenti certificati autofirmati',
|
||
'settings.airtrail.allowInsecureTlsHint': "Abilita solo per un'istanza attendibile sulla tua rete.",
|
||
'settings.airtrail.writeBack': 'Scrivi le modifiche su AirTrail',
|
||
'settings.airtrail.writeBackHint':
|
||
'Disattivato per impostazione predefinita: AirTrail è la fonte attendibile e TREK si limita a leggerlo. Attiva per inviare ad AirTrail le modifiche fatte in TREK.',
|
||
'settings.airtrail.connected': 'Connesso',
|
||
'settings.airtrail.notConnected': 'Non connesso',
|
||
'settings.airtrail.toast.saved': 'Connessione AirTrail salvata',
|
||
'settings.airtrail.toast.saveError': 'Impossibile salvare la connessione',
|
||
'settings.airtrail.test.button': 'Prova connessione',
|
||
'settings.airtrail.test.success': 'Connesso — {count} volo/i trovato/i',
|
||
'settings.airtrail.test.failed': 'Connessione fallita',
|
||
'settings.aiParsing.title': 'Analisi AI',
|
||
'settings.aiParsing.hint':
|
||
"Scegli il modello AI usato per estrarre le prenotazioni dai file caricati. Vale solo se l'amministratore non ha configurato un modello per l'intera istanza.",
|
||
'settings.aiParsing.provider': 'Provider',
|
||
'settings.aiParsing.providerLocal': 'Locale (Ollama)',
|
||
'settings.aiParsing.providerOpenai': 'OpenAI',
|
||
'settings.aiParsing.providerAnthropic': 'Anthropic',
|
||
'settings.aiParsing.localAdminOnly':
|
||
"Un endpoint locale (Ollama) si configura una sola volta per l'intera istanza nelle impostazioni di amministrazione. Qui puoi comunque usare la tua chiave OpenAI o Anthropic.",
|
||
'settings.aiParsing.model': 'Modello',
|
||
'settings.aiParsing.baseUrl': 'URL di base',
|
||
'settings.aiParsing.baseUrlHint':
|
||
'Dove gira il modello: un server Ollama locale o un endpoint compatibile con OpenAI.',
|
||
'settings.aiParsing.apiKey': 'Chiave API',
|
||
'settings.aiParsing.apiKeyHint': 'Memorizzata in forma cifrata. Lascia vuoto per mantenere la chiave attuale.',
|
||
'settings.aiParsing.multimodal': 'Invia i documenti come immagini',
|
||
'settings.aiParsing.multimodalHint':
|
||
'Per i modelli con capacità visive: invia il PDF originale invece del testo estratto.',
|
||
'settings.aiParsing.toast.saved': 'Impostazioni AI salvate',
|
||
'settings.aiParsing.toast.saveError': 'Impossibile salvare le impostazioni AI',
|
||
'settings.tabs.appearance': 'Appearance',
|
||
'settings.appearance.theme': 'Theme',
|
||
'settings.appearance.scheme': 'Color scheme',
|
||
'settings.appearance.scheme.default': 'Default',
|
||
'settings.appearance.scheme.highContrast': 'High contrast',
|
||
'settings.appearance.scheme.indigo': 'Indigo',
|
||
'settings.appearance.scheme.teal': 'Teal',
|
||
'settings.appearance.scheme.rose': 'Rose',
|
||
'settings.appearance.scheme.amber': 'Amber',
|
||
'settings.appearance.scheme.violet': 'Violet',
|
||
'settings.appearance.scheme.custom': 'Custom',
|
||
'settings.appearance.customAccent': 'Custom accent',
|
||
'settings.appearance.contrastOk': 'Good contrast',
|
||
'settings.appearance.contrastLow': 'Low contrast',
|
||
'settings.appearance.readability': 'Readability',
|
||
'settings.appearance.transparency': 'Transparency',
|
||
'settings.appearance.transparencyHint':
|
||
'Glassy translucent surfaces. Turn off for solid, higher-contrast backgrounds.',
|
||
'settings.appearance.reduceMotion': 'Reduce motion',
|
||
'settings.appearance.reduceMotionHint': 'Minimize animations and transitions.',
|
||
'settings.appearance.density': 'Density',
|
||
'settings.appearance.comfortable': 'Comfortable',
|
||
'settings.appearance.compact': 'Compact',
|
||
'settings.appearance.textSize': 'Text size',
|
||
'settings.appearance.advancedTextSizes': 'Advanced text sizes',
|
||
'settings.appearance.hideAdvanced': 'Hide advanced',
|
||
'settings.appearance.tier.title': 'Titles',
|
||
'settings.appearance.tier.subtitle': 'Subtitles',
|
||
'settings.appearance.tier.body': 'Body',
|
||
'settings.appearance.tier.caption': 'Captions',
|
||
'settings.appearance.dashboardWidgets': 'Dashboard widgets',
|
||
'settings.appearance.dashboardWidgetsHint': 'Show or hide dashboard widgets independently on desktop and mobile.',
|
||
'settings.appearance.desktop': 'Desktop',
|
||
'settings.appearance.mobile': 'Mobile',
|
||
'settings.appearance.widget.sidebar': 'Right sidebar',
|
||
'settings.appearance.widget.currency': 'Currency',
|
||
'settings.appearance.widget.collections': 'Raccolte',
|
||
'settings.appearance.widget.timezones': 'Timezones',
|
||
'settings.appearance.widget.upcomingReservations': 'Upcoming reservations',
|
||
'settings.appearance.widget.atlas': 'Atlas / countries',
|
||
'settings.appearance.widget.tripsTotal': 'Trips total',
|
||
'settings.appearance.widget.daysTraveled': 'Days traveled',
|
||
'settings.appearance.widget.distanceFlown': 'Distance flown',
|
||
'settings.appearance.reset': 'Reset to defaults',
|
||
'settings.appearance.group.belowHero': 'Below the hero',
|
||
'settings.appearance.group.bottomOfPage': 'Bottom of page',
|
||
'settings.appearance.sidebarHint': 'The whole right column. Turn off and the dashboard centers.',
|
||
'settings.appearance.densityHint':
|
||
'Compact tightens spacing and padding for a denser layout that fits more on screen.',
|
||
'settings.appearance.textSizeAll': 'Everything',
|
||
'settings.appearance.perSize': 'Adjust each size separately',
|
||
'settings.appearance.size.large': 'Large',
|
||
'settings.appearance.size.medium': 'Medium',
|
||
'settings.appearance.size.normal': 'Normal',
|
||
'settings.appearance.size.small': 'Small',
|
||
'settings.appearance.preview.large': 'Large heading',
|
||
'settings.appearance.preview.medium': 'Medium subtitle',
|
||
'settings.appearance.preview.normal': 'Normal body text',
|
||
'settings.appearance.preview.small': 'Small caption / address',
|
||
'settings.appearance.example.large': 'Headings, big numbers',
|
||
'settings.appearance.example.medium': 'Sub-headings',
|
||
'settings.appearance.example.normal': 'Place names, descriptions',
|
||
'settings.appearance.example.small': 'Addresses, labels',
|
||
'settings.appearance.experimental': 'Experimental',
|
||
'settings.appearance.mobileNav': 'Barra di navigazione inferiore',
|
||
'settings.appearance.mobileNav.hint':
|
||
'Scegli quali elementi appaiono nella barra e quali sotto «Altro». La Dashboard resta sempre per prima.',
|
||
'settings.appearance.mobileNav.inBar': 'Nella barra',
|
||
'settings.appearance.mobileNav.underMore': 'Sotto «Altro»',
|
||
'settings.appearance.mobileNav.moreEmpty': 'Ancora niente qui — tutto entra nella barra.',
|
||
'settings.appearance.mobileNav.pinned': 'Fisso',
|
||
'settings.appearance.mobileNav.toMore': 'Sposta sotto «Altro»',
|
||
'settings.appearance.mobileNav.toBar': 'Sposta nella barra',
|
||
'settings.appearance.dashOrder': 'Ordine della dashboard',
|
||
'settings.appearance.dashOrder.hint':
|
||
'Riorganizza come si impilano l’elenco dei viaggi e i widget nella dashboard del telefono. Il viaggio in evidenza resta sempre in cima.',
|
||
'settings.appearance.dashOrder.trips': 'Viaggi',
|
||
'settings.appearance.dashOrder.hidden': 'Nascosto',
|
||
'settings.general.languageRegion': 'Language & region',
|
||
'settings.general.travelMap': 'Travel & map',
|
||
'settings.general.startup': 'Avvio',
|
||
'settings.startPage': 'Pagina iniziale',
|
||
'settings.startPageDashboard': 'Dashboard',
|
||
'settings.startPageActiveTrip': 'Viaggio attivo',
|
||
'settings.startPageHint':
|
||
'TREK si apre direttamente sul viaggio in corso, o sul prossimo in arrivo. È lo stesso viaggio che la dashboard mette in evidenza.',
|
||
'settings.startTripTab': 'Scheda iniziale',
|
||
'settings.startTripTabHint':
|
||
'La scheda con cui si apre il viaggio. Se appartiene a un componente aggiuntivo disattivato, si apre la vista Programma.',
|
||
|
||
// ── Offline (#1135)
|
||
'settings.offline.cache.title': 'Cache offline',
|
||
'settings.offline.mode.title': 'Modalità offline',
|
||
'settings.offline.mode.force': 'Forza la modalità offline',
|
||
'settings.offline.mode.forceHint':
|
||
'Lavora solo con i dati in cache e metti in coda le tue modifiche. Disattiva per riconnetterti e sincronizzare.',
|
||
'settings.offline.mode.active':
|
||
'La modalità offline è attiva — le tue modifiche sono in coda e verranno sincronizzate quando la disattivi.',
|
||
'settings.offline.prepare.title': "Prepara per l'offline",
|
||
'settings.offline.prepare.hint':
|
||
'Scarica tutto ciò che ti serve — dati del viaggio, documenti e tile della mappa — prima di perdere la connessione.',
|
||
'settings.offline.prepare.button': "Scarica per l'uso offline",
|
||
'settings.offline.prepare.running': 'Download in corso…',
|
||
'settings.offline.prepare.done': "Pronto per l'uso offline",
|
||
'settings.offline.prepare.phase.trips': 'Dati del viaggio',
|
||
'settings.offline.prepare.phase.files': 'Documenti',
|
||
'settings.offline.prepare.phase.tiles': 'Tile della mappa',
|
||
'settings.offline.resync': 'Risincronizza ora',
|
||
'settings.offline.resyncing': 'Sincronizzazione…',
|
||
'settings.offline.storage.title': 'Cosa archiviare offline',
|
||
'settings.offline.storage.tiles': 'Archivia i tile della mappa offline',
|
||
'settings.offline.storage.tilesHint':
|
||
'I tile della mappa usano più spazio di archiviazione. Disattiva questa opzione per conservare offline solo i dati del viaggio e i documenti.',
|
||
'settings.offline.storage.tripsTitle': 'Viaggi',
|
||
'settings.offline.storage.tripOn': 'Archiviato offline',
|
||
'settings.offline.storage.tripOff': 'Non archiviato',
|
||
'settings.offline.storage.tripFinished': 'Terminato. Salvato solo se lo attivi.',
|
||
'settings.offline.notice.stored': '{count} viaggio/i salvato/i su questo dispositivo',
|
||
'settings.offline.notice.nothing': 'Niente da salvare. Attiva i viaggi che vuoi conservare.',
|
||
'settings.offline.notice.busy': 'Una sincronizzazione è già in corso. Riprova tra un momento.',
|
||
'settings.offline.notice.offline': 'Nessuna connessione. Connettiti per salvare i viaggi offline.',
|
||
'settings.offline.notice.signedOut': 'La tua sessione è scaduta. Accedi di nuovo per sincronizzare.',
|
||
'settings.offline.notice.failed': 'Il download non è stato completato. Controlla la connessione e riprova.',
|
||
'settings.offline.notice.loadFailed': 'Impossibile leggere l’archivio offline di questo dispositivo. Di solito basta svuotare la cache.',
|
||
'settings.offline.clear': 'Svuota la cache',
|
||
'settings.offline.clearConfirm':
|
||
'Cancellare tutti i dati di viaggio offline? Puoi risincronizzare in qualsiasi momento quando sei online.',
|
||
'settings.offline.stats.trips': 'Viaggi in cache',
|
||
'settings.offline.stats.pending': 'Modifiche in sospeso',
|
||
'settings.offline.stats.failed': 'Modifiche non riuscite',
|
||
'settings.offline.stats.conflicts': 'Conflitti',
|
||
'settings.offline.empty': 'Nessun viaggio ancora in cache. Connettiti a internet per sincronizzare.',
|
||
'settings.offline.loading': 'Caricamento…',
|
||
'settings.offline.conflicts.title': 'Conflitti di sincronizzazione',
|
||
'settings.offline.conflicts.hint':
|
||
'Le modifiche fatte offline sono in conflitto con modifiche più recenti sul server. Scegli quale versione mantenere.',
|
||
'settings.offline.conflicts.keepMine': 'Mantieni le mie',
|
||
'settings.offline.conflicts.keepServer': 'Mantieni le loro',
|
||
'settings.offline.conflicts.mine': 'La tua versione',
|
||
'settings.offline.conflicts.server': 'Versione del server',
|
||
'settings.offline.conflicts.item': 'Modifica a “{name}”',
|
||
'settings.offline.conflicts.strategyTitle': 'Quando si verifica un conflitto',
|
||
'settings.offline.conflicts.strategy.ask': 'Chiedimi ogni volta',
|
||
'settings.offline.conflicts.strategy.mine': 'Mantieni sempre la mia versione',
|
||
'settings.offline.conflicts.strategy.server': 'Mantieni sempre la versione del server',
|
||
'settings.offline.banner.offline': 'Offline',
|
||
'settings.offline.banner.forced': 'Modalità offline',
|
||
'settings.offline.banner.queued': 'Offline · {count} in coda',
|
||
'settings.offline.banner.syncing': 'Sincronizzazione di {count}…',
|
||
'settings.offline.banner.failed': 'Sincronizzazione non riuscita: {count}',
|
||
'settings.offline.banner.conflicts': 'Conflitti: {count}',
|
||
'settings.pluginActivity.title': 'Attività dei plugin',
|
||
'settings.pluginActivity.description': 'Ogni azione eseguita da un plugin per tuo conto, dalla più recente.',
|
||
'settings.pluginActivity.empty': 'Nessuna attività dei plugin.',
|
||
'settings.pluginActivity.refresh': 'Aggiorna',
|
||
'settings.pluginActivity.columns.plugin': 'Plugin',
|
||
'settings.pluginActivity.columns.action': 'Azione',
|
||
'settings.pluginActivity.columns.resource': 'Risorsa',
|
||
'settings.pluginActivity.columns.when': 'Quando',
|
||
'settings.pluginActivity.columns.status': 'Esito',
|
||
'settings.alwaysShowRoutes': 'Mostra sempre i percorsi delle prenotazioni',
|
||
'settings.alwaysShowRoutesHint':
|
||
'Mostra automaticamente sulla mappa il percorso di ogni volo, treno e altra prenotazione, senza doverlo attivare singolarmente.',
|
||
|
||
// Public API keys (Settings -> Integrations)
|
||
'settings.apiKeys.title': 'Chiavi API',
|
||
'settings.apiKeys.description': 'Chiavi per l\'API pubblica, così altri software possono leggere i tuoi viaggi. Sola lettura: una chiave non può modificare né eliminare nulla.',
|
||
'settings.apiKeys.create': 'Crea chiave',
|
||
'settings.apiKeys.empty': 'Nessuna chiave. Creane una per collegare altri software.',
|
||
'settings.apiKeys.createdAt': 'creata',
|
||
'settings.apiKeys.usedAt': 'ultimo uso',
|
||
'settings.apiKeys.deleteTitle': 'Elimina chiave',
|
||
'settings.apiKeys.deleteMessage': 'Tutto ciò che usa questa chiave smette di funzionare subito. L\'operazione non è reversibile.',
|
||
'settings.apiKeys.deleted': 'Chiave eliminata',
|
||
'settings.apiKeys.deleteFailed': 'Impossibile eliminare la chiave',
|
||
'settings.apiKeys.createFailed': 'Impossibile creare la chiave',
|
||
'settings.apiKeys.copy': 'Copia',
|
||
'settings.apiKeys.docsHint': 'Invia la chiave come "Authorization: Bearer ..." oppure "X-API-Key: ..." a /api/v1.',
|
||
'settings.apiKeys.modal.createTitle': 'Crea chiave API',
|
||
'settings.apiKeys.modal.name': 'Nome',
|
||
'settings.apiKeys.modal.namePlaceholder': 'ad es. Dawarich',
|
||
'settings.apiKeys.modal.nameHint': 'Solo per te, per riconoscere la chiave in seguito.',
|
||
'settings.apiKeys.modal.creating': 'Creazione...',
|
||
'settings.apiKeys.modal.create': 'Crea',
|
||
'settings.apiKeys.modal.createdTitle': 'Chiave API creata',
|
||
'settings.apiKeys.modal.createdWarning': 'Copia la chiave adesso. Viene mostrata una sola volta e non può essere recuperata in seguito.',
|
||
'settings.apiKeys.modal.done': 'Fatto',
|
||
};
|
||
|
||
export default settings;
|