export const itIT = { common: { search: "Cerca...", create: "Nuovo", new: "Nuovo", cancel: "Annulla", delete: "Elimina", edit: "Modifica", theme: "Tema", signOut: "Esci", noMatches: "Nessun risultato trovato", tryDifferentSearch: "Prova con un termine di ricerca diverso.", light: "Chiaro", dark: "Scuro", system: "Sistema", loading: "Caricamento...", note: "Nota", insight: "Approfondimento", newSource: "Nuova fonte", newNotebook: "Nuovo quaderno", newPodcast: "Nuovo podcast", language: "Lingua", english: "English", chinese: "简体中文", japanese: "日本語", russian: "Русский", source: "Fonte", notebook: "Quaderno", podcast: "Podcast", quickActions: "Azioni rapide", quickActionsDesc: "Navigazione, ricerca, domande, tema", appName: "Open Notebook", add: "Aggiungi", remove: "Rimuovi", confirm: "Conferma", warning: "Attenzione", error: "Errore", success: "Successo", model: "Modello", back: "Indietro", next: "Avanti", done: "Fatto", processing: "Elaborazione...", creating: "Creazione...", linked: "Collegato", adding: "Aggiunta in corso...", addSelected: "Aggiungi selezionati", customModel: "Modello personalizzato", failed: "fallito", current: "Corrente", save: "Salva", writeNote: "Scrivi nota", batchMode: "Modalità batch", optional: "Opzionale", type: "Tipo", title: "Titolo", created: "Creato {time}", updated: "Aggiornato {time}", actions: "Azioni", noResults: "Nessun risultato", references: "Riferimenti", refreshPage: "Prova ad aggiornare la pagina", refresh: "Aggiorna", aiGenerated: "Generato da IA", human: "Umano", unknown: "Sconosciuto", notes: "Note", chat: "Chat", deleteForever: "Elimina definitivamente", connectionError: "Errore di connessione", unableToConnect: "Impossibile connettersi al server API", retryConnection: "Riprova connessione", diagnosticInfo: "Informazioni diagnostiche", version: "Versione", built: "Compilato", apiUrl: "URL API", frontendUrl: "URL Frontend", checkConsoleLogs: "Controlla la console del browser per log dettagliati (cerca i messaggi 🔧 [Config])", yes: "Sì", no: "No", saving: "Salvataggio...", description: "Descrizione", saveToNote: "Salva come nota", copyToClipboard: "Copia negli appunti", close: "Chiudi", insights: "Approfondimenti", progress: "Progresso", deleting: "Eliminazione...", created_label: "Creato", updated_label: "Aggiornato", download: "Scarica", saveChanges: "Salva modifiche", name: "Nome", default: "Predefinito", nameRequired: "Il nome è obbligatorio", modelConfiguration: "Configurazione modello", resetToDefault: "Ripristina predefinito", reasoning: "Ragionamento", searchTerms: "Termini di ricerca", strategy: "Strategia", individualAnswers: "Risposte individuali ({count})", finalAnswer: "Risposta finale", notebookLabel: "Quaderno: {name}", itemNotFound: "Questo {type} non è stato trovato", accessibility: { transformationViews: "Viste trasformazioni", searchKB: "Chiedi o cerca nella tua base di conoscenza", enterQuestion: "Inserisci la tua domanda per interrogare la base di conoscenza", enterSearch: "Inserisci la query di ricerca", searchKBBtn: "Cerca nella base di conoscenza", podcastViews: "Viste podcast", ytVideo: "Video YouTube", askResponse: "Risposta alla domanda", searchNotebooks: "Cerca quaderni", }, url: "URL", errorDetails: "Dettagli errore", editTransformation: "Modifica trasformazione", retry: "Riprova", traditionalChinese: "繁體中文", portuguese: "Português", completed: "completato", saveSuccess: "Salvato con successo", contextModes: { off: "Non incluso nella chat", insights: "Solo approfondimenti", full: "Contenuto completo", clickToCycle: "Clicca per cambiare", }, clickToEdit: "Clicca per modificare", }, apiErrors: { notebookNotFound: "Quaderno non trovato", sourceNotFound: "Fonte non trovata", transformationNotFound: "Trasformazione non trovata", fileUploadFailed: "Caricamento file fallito", urlRequired: "L'URL è obbligatorio per il tipo link", contentRequired: "Il contenuto è obbligatorio per il tipo testo", invalidSourceType: "Tipo di fonte non valido", processingFailed: "Elaborazione fallita", failedToQueue: "Impossibile accodare l'elaborazione", invalidSortBy: "Il campo di ordinamento deve essere 'created' o 'updated'", invalidSortOrder: "L'ordine deve essere 'asc' o 'desc'", accessDenied: "Accesso al file negato", fileNotFoundOnServer: "File non trovato sul server", searchFailed: "Ricerca fallita", askFailed: "Richiesta fallita", pleaseEnterQuestion: "Inserisci una domanda", pleaseConfigureModels: "Configura tutti i modelli richiesti", failedToCreateSession: "Impossibile creare la sessione", failedToUpdateSession: "Impossibile aggiornare la sessione", failedToDeleteSession: "Impossibile eliminare la sessione", failedToSendMessage: "Impossibile inviare il messaggio", unauthorized: "Accesso non autorizzato, controlla la password", invalidPassword: "Password non valida", embeddingModelRequired: "Questa funzionalità richiede un modello di embedding. Configurane uno nella sezione Modelli.", strategyModelNotFound: "Modello strategia non trovato", answerModelNotFound: "Modello risposta non trovato", finalAnswerModelNotFound: "Modello risposta finale non trovato", noAnswerGenerated: "Nessuna risposta generata", genericError: "Si è verificato un errore imprevisto", }, connectionErrors: { apiTitle: "Impossibile connettersi al server API", apiDesc: "Il server API di Open Notebook non è raggiungibile", dbTitle: "Connessione al database fallita", dbDesc: "Il server API è in esecuzione, ma il database non è accessibile", troubleshooting: "Questo di solito significa:", apiUnreachable1: "Il server API non è in esecuzione", apiUnreachable2: "Il server API è su un indirizzo diverso", apiUnreachable3: "Problemi di connettività di rete", dbFailed1: "SurrealDB non è in esecuzione", dbFailed2: "Le impostazioni di connessione al database sono errate", dbFailed3: "Problemi di rete tra API e database", quickFixes: "Soluzioni rapide:", setApiUrl: "Imposta la variabile d'ambiente API_URL:", checkSurreal: "Verifica se SurrealDB è in esecuzione:", seeDocumentation: "Per istruzioni dettagliate, consulta:", docLink: "Documentazione Open Notebook", showTechnical: "Mostra dettagli tecnici", attemptedUrl: "URL tentato", message: "Messaggio", technicalDetails: "Dettagli tecnici", stackTrace: "Stack trace", retryLabel: "Riprova connessione", retryHint: "Premi R o clicca il pulsante per riprovare", dockerLabel: "Per docker", localDevLabel: "Per sviluppo locale", }, auth: { loginTitle: "Open Notebook", loginDesc: "Inserisci la password per accedere all'applicazione", passwordPlaceholder: "Password", signingIn: "Accesso in corso...", signIn: "Accedi", connectErrorHint: "Impossibile connettersi al server. Verifica che l'API sia in esecuzione.", }, navigation: { collect: "Raccogli", process: "Elabora", create: "Crea", manage: "Gestisci", sources: "Fonti", notebooks: "Quaderni", askAndSearch: "Chiedi e cerca", podcasts: "Podcast", models: "Modelli", transformations: "Trasformazioni", transformation: "Trasformazione", settings: "Impostazioni", advanced: "Avanzate", nav: "Navigazione", language: "Cambia lingua", theme: "Tema", ask: "Chiedi", }, notebooks: { title: "Quaderni", newNotebook: "Nuovo quaderno", searchPlaceholder: "Cerca quaderni...", archived: "Archiviati", archive: "Archivia", unarchive: "Ripristina", deleteNotebook: "Elimina quaderno", deleteNotebookDesc: "Sei sicuro di voler eliminare \"{name}\"? Questa azione non può essere annullata.", deleteNotebookLoading: "Caricamento anteprima eliminazione...", deleteNotebookNotes: "{count} nota/e verranno eliminate definitivamente.", deleteNotebookNoNotes: "Nessuna nota da eliminare.", deleteNotebookExclusiveSources: "{count} fonte/i esistono solo in questo quaderno.", deleteNotebookSharedSources: "{count} fonte/i sono condivise con altri quaderni e verranno scollegate.", deleteNotebookNoSources: "Nessuna fonte in questo quaderno.", deleteExclusiveSourcesLabel: "Elimina fonti esclusive", keepExclusiveSourcesLabel: "Scollega e mantieni", activeNotebooks: "Quaderni attivi", archivedNotebooks: "Quaderni archiviati", notFound: "Quaderno non trovato", notFoundDesc: "Il quaderno richiesto non esiste.", updated: "Aggiornato", namePlaceholder: "Nome quaderno", addDescription: "Aggiungi descrizione...", noNotesYet: "Ancora nessuna nota", deleteNote: "Elimina Nota", deleteNoteConfirm: "Sei sicuro di voler eliminare questa nota? Questa azione non può essere annullata.", noteCreatedSuccess: "Nota creata con successo", failedToCreateNote: "Impossibile creare la nota", noteUpdatedSuccess: "Nota aggiornata con successo", failedToUpdateNote: "Impossibile aggiornare la nota", noteDeletedSuccess: "Nota eliminata con successo", failedToDeleteNote: "Impossibile eliminare la nota", createNew: "Crea nuovo quaderno", createNewDesc: "Inserisci un nome e una descrizione opzionale per iniziare.", descPlaceholder: "Aggiungi più informazioni su questo quaderno qui...", createSuccess: "Quaderno creato con successo", updateSuccess: "Quaderno aggiornato con successo", deleteSuccess: "Quaderno eliminato con successo", }, sources: { title: "Fonti", add: "Aggiungi fonte", addNew: "Aggiungi nuova fonte", addExisting: "Aggiungi fonte esistente", delete: "Elimina Fonte", statusPreparing: "In preparazione", statusQueued: "In coda", statusProcessing: "In elaborazione", statusCompleted: "Completato", statusFailed: "Fallito", statusPreparingDesc: "Preparazione all'elaborazione", statusQueuedDesc: "In attesa di elaborazione", statusProcessingDesc: "In fase di elaborazione", statusCompletedDesc: "Elaborato con successo", statusFailedDesc: "Elaborazione fallita", failedToLoad: "Impossibile caricare le fonti", allSourcesDesc: "Visualizza tutte le tue fonti qui. Puoi aggiungere nuove fonti o gestire quelle esistenti.", allSources: "Tutte le fonti", insights: "Approfondimenti", yes: "Sì", no: "No", loadingMore: "Caricamento...", noSourcesYet: "Ancora nessuna fonte", allSourcesDescShort: "Visualizza tutte le tue fonti qui.", cannotSaveNoteNoNotebook: "Impossibile salvare la nota: ID quaderno non disponibile", createFirstSource: "Aggiungi la tua prima fonte per iniziare a costruire la tua base di conoscenza.", deleteSourceConfirm: "Sei sicuro di voler eliminare questa fonte?", deleteConfirm: "Sei sicuro di voler eliminare questo elemento?", deleteConfirmWithTitle: "Sei sicuro di voler eliminare \"{title}\"?", deleteSuccess: "Fonte eliminata con successo. Nota: Per eliminare il file dallo storage, devi abilitare l'opzione \"elimina file\" nella pagina impostazioni.", failedToDelete: "Impossibile eliminare la fonte", sourceQueued: "Fonte in coda", sourceQueuedDesc: "Fonte inviata per l'elaborazione in background. Puoi monitorare il progresso nella lista fonti.", sourceAddedSuccess: "Fonte aggiunta con successo", failedToAddSource: "Impossibile aggiungere la fonte", sourceUpdatedSuccess: "Fonte aggiornata con successo", failedToUpdateSource: "Impossibile aggiornare la fonte", sourceDeletedSuccess: "Fonte eliminata con successo", failedToDeleteSource: "Impossibile eliminare la fonte", fileUploadedSuccess: "File caricato con successo", failedToUploadFile: "Impossibile caricare il file", sourceRequeued: "Fonte rimessa in coda", sourceRequeuedDesc: "La fonte è stata rimessa in coda per l'elaborazione.", failedToRetry: "Nuovo tentativo fallito", sourcesAddedToNotebook: "{count} fonte/i aggiunte al quaderno", failedToAddSourcesToNotebook: "Impossibile aggiungere le fonti al quaderno", partialAddSuccess: "{success} fonte/i aggiunte, {failed} fallite", sourceRemovedFromNotebook: "Fonte rimossa dal quaderno con successo", failedToRemoveSourceFromNotebook: "Impossibile rimuovere la fonte dal quaderno", removeConfirm: "Sei sicuro di voler rimuovere questa fonte dal quaderno?", checking: "Verifica...", untitledSource: "Fonte senza titolo", maxItems: "max {count}", insightsCount: "{count} approfondimenti", details: "Dettagli", detailsTitle: "Dettagli fonte", content: "Contenuto", metadata: "Metadati", type: { link: "Link", file: "File", text: "Testo", }, id: "ID Fonte", topics: "Argomenti", embedded: "Indicizzato", notEmbedded: "Non indicizzato", embedContent: "Indicizza contenuto", embedding: "Indicizzazione...", alreadyEmbedded: "Già indicizzato", downloadFile: "Scarica file", fileUnavailable: "File non disponibile", preparing: "Preparazione...", generateNewInsight: "Genera nuovo approfondimento", selectTransformation: "Seleziona una trasformazione...", noInsightsYet: "Ancora nessun approfondimento", createFirstInsight: "Crea il tuo primo approfondimento usando una trasformazione sopra", viewInsight: "Visualizza approfondimento", deleteInsight: "Elimina approfondimento", deleteInsightConfirm: "Sei sicuro di voler eliminare questo approfondimento? Questa azione non può essere annullata.", insightGenerationStarted: "Generazione dell'approfondimento avviata. Apparirà a breve.", editNote: "Modifica nota", createNote: "Crea nota", addTitle: "Aggiungi un titolo...", untitledNote: "Nota Senza Titolo", writeNotePlaceholder: "Scrivi il contenuto della tua nota qui...", saveNote: "Salva nota", createNoteBtn: "Crea nota", createFirstNote: "Crea la tua prima nota per catturare intuizioni e osservazioni.", urlLabel: "URL *", fileLabel: "File *", textContentLabel: "Contenuto testo *", enterUrlsPlaceholder: "Inserisci gli URL, uno per riga\nhttps://esempio.com/articolo1\nhttps://esempio.com/articolo2", batchUrlHint: "Incolla più URL (uno per riga) per importazione batch", invalidUrlsDetected: "URL non validi rilevati:", lineLabel: "Riga {line}", fixInvalidUrls: "Correggi o rimuovi gli URL non validi per continuare", selectMultipleFilesHint: "Seleziona più file per importazione batch. Supportati: Documenti (PDF, DOC, DOCX, PPT, XLS, EPUB, TXT, MD), Media (MP4, MP3, WAV, M4A), Immagini (JPG, PNG), Archivi (ZIP)", selectedFiles: "File selezionati:", textPlaceholder: "Incolla o digita il contenuto qui...", htmlDetected: "Rilevato contenuto HTML. Verrà convertito in Markdown dopo l'elaborazione.", titlePlaceholder: "Dai alla tua fonte un titolo descrittivo", batchTitlesAuto: "I titoli verranno generati automaticamente per ogni fonte.", batchCommonSettings: "Gli stessi quaderni e trasformazioni verranno applicati a tutti gli elementi.", urlsCount: "{count} URL", filesCount: "{count} file", addSource: "Aggiungi Fonte", notEmbeddedAlert: "Contenuto non indicizzato", notEmbeddedDesc: "Questo contenuto non è stato indicizzato per la ricerca vettoriale. L'indicizzazione abilita funzionalità di ricerca avanzate e una migliore scoperta dei contenuti.", openOnYoutube: "Apri su YouTube", urlCopied: "URL copiato negli appunti", viewSource: "Visualizza fonte", noInsightSelected: "Nessun approfondimento selezionato", sourceInsight: "Approfondimento Fonte", manageNotebooks: "Gestisci quaderni", manageNotebooksDesc: "Gestisci quali quaderni contengono questa fonte", noNotebooksAvailable: "Nessun quaderno disponibile", loadFailed: "Impossibile caricare i dettagli della fonte", removeFromNotebook: "Rimuovi dal quaderno", retryProcessing: "Riprova elaborazione", deleteSource: "Elimina fonte", retry: "Riprova", addExistingTitle: "Aggiungi fonti esistenti", addExistingDesc: "Seleziona fonti esistenti da tutti i tuoi quaderni per aggiungerle a quello corrente.", searchPlaceholder: "Cerca fonti per nome o URL...", noNotebooksFound: "Nessun quaderno trovato.", showingFirst100: "Mostrate le prime 100 fonti. Usa la ricerca per trovarne di specifiche.", selectedCount: "{count} fonti selezionate", added: "Aggiunto il {date}", addUrl: "Aggiungi URL", uploadFile: "Carica file", enterText: "Inserisci testo", processDescription: "Il contenuto verrà elaborato e analizzato dall'IA.", processingFiles: "Elaborazione dei tuoi file...", titleRequired: "Un titolo è obbligatorio per il contenuto testuale", titleGenerated: "Se lasciato vuoto, verrà generato un titolo dal contenuto", batchCount: "{count} {type} verranno elaborati", enableEmbedding: "Abilita indicizzazione per la ricerca", embeddingDesc: "Permette di trovare questa fonte nelle ricerche vettoriali e query IA", embeddingAlways: "Indicizzazione abilitata automaticamente", embeddingAlwaysDesc: "Le tue impostazioni sono configurate per indicizzare sempre il contenuto per la ricerca vettoriale.", embeddingNever: "Indicizzazione disabilitata", embeddingNeverDesc: "Le tue impostazioni sono configurate per saltare l'indicizzazione. La ricerca vettoriale non sarà disponibile per questa fonte.", changeInSettings: "Puoi modificare questo nelle Impostazioni", notFound: "Fonte non trovata", noContent: "Nessun contenuto disponibile", insightsDesc: "Approfondimenti generati dall'analisi del modello", uploadedFile: "File caricato", fileUnavailableDesc: "Questo file non è attualmente disponibile per motivi di storage.", batchSuccess: "{count} fonte/i create con successo", batchFailed: "Impossibile creare tutte le {count} fonti", batchPartial: "{success} riuscite, {failed} fallite", submittingSource: "Invio fonte per l'elaborazione...", processingBatchSources: "Elaborazione di {count} fonti. Potrebbe richiedere qualche istante.", processingSource: "La tua fonte è in elaborazione. Potrebbe richiedere qualche istante.", maxFilesAllowed: "Massimo {count} file consentiti per batch", }, chat: { sessions: "Sessioni", sessionTitlePlaceholder: "Digita un titolo qui...", noSessions: "Ancora nessuna sessione chat", deleteSession: "Elimina sessione", deleteSessionDesc: "Sei sicuro di voler eliminare questa sessione chat? Questa azione non può essere annullata.", sendPlaceholder: "Chiedi qualsiasi cosa sulle tue fonti...", sessionsTitle: "Sessioni chat", chatWith: "Chatta con {name}", startConversation: "Inizia una conversazione su questo {type}", askQuestions: "Fai domande per capire meglio il contenuto", pressToSend: "Premi {key} per inviare", model: "Modello", createToStart: "Crea una sessione per iniziare.", chatWithNotebook: "Chatta con il quaderno", unableToLoadChat: "Impossibile caricare la chat", noDescription: "Nessuna descrizione", startByCreating: "Inizia creando il tuo primo quaderno per organizzare la tua ricerca.", messagesCount: "{count} messaggi", sessionCreated: "Sessione chat creata", sessionUpdated: "Sessione aggiornata", sessionDeleted: "Sessione eliminata", }, searchPage: { askAndSearch: "Chiedi e cerca", chooseAMode: "Scegli una modalità", askBeta: "Chiedi (beta)", search: "Cerca", askYourKb: "Chiedi alla tua base di conoscenza (beta)", askYourKbDesc: "L'LLM risponderà alla tua domanda basandosi sui documenti nella tua base di conoscenza.", question: "Domanda", enterQuestionPlaceholder: "Inserisci la tua domanda...", pressToSubmit: "Premi Cmd/Ctrl+Invio per inviare", noEmbeddingModel: "Non puoi usare questa funzionalità perché non hai un modello di embedding selezionato. Configurane uno nella pagina modelli.", usingCustomModels: "Uso modelli personalizzati", usingDefaultModels: "Uso modelli predefiniti", advanced: "Avanzate", strategy: "Strategia", answer: "Risposta", final: "Finale", ask: "Chiedi", processing: "Elaborazione...", saveToNotebooks: "Salva nei quaderni", searchDesc: "Cerca nella tua base di conoscenza parole chiave o concetti specifici", enterSearchPlaceholder: "Inserisci la query di ricerca...", pressToSearch: "Premi invio per cercare", searchType: "Tipo di ricerca", vectorSearchWarning: "La ricerca vettoriale richiede un modello di embedding. Solo la ricerca testuale è disponibile.", textSearch: "Ricerca testuale", vectorSearch: "Ricerca vettoriale", searchIn: "Cerca In", searchSources: "Cerca nelle fonti", searchNotes: "Cerca nelle note", resultsFound: "{count} risultati trovati", matches: "Corrispondenze ({count})", noResultsFor: "Nessun risultato trovato per \"{query}\"", notSet: "Non impostato", saveToNotebook: "Salva nel quaderno", saveSuccess: "Salvato con successo nel quaderno", saveError: "Impossibile salvare nel quaderno", selectNotebook: "Seleziona quaderno", searchAndAsk: "Cerca e chiedi", searchResultsFor: "Risultati di ricerca per \"{query}\"", askAbout: "Chiedi riguardo \"{query}\"", orSearchKb: "Oppure cerca nella tua base di conoscenza", saving: "Salvataggio...", advancedModelTitle: "Selezione modello avanzata", advancedModelDesc: "Scegli modelli specifici per ogni fase del processo Chiedi", strategyModel: "Modello strategia", answerModel: "Modello risposta", finalAnswerModel: "Modello risposta finale", selectStrategyPlaceholder: "Seleziona modello strategia", selectAnswerPlaceholder: "Seleziona modello risposta", selectFinalPlaceholder: "Seleziona modello risposta finale", saveChanges: "Salva modifiche", processingQuestion: "Elaborazione della tua domanda...", }, podcasts: { generateEpisode: "Genera episodio podcast", generateEpisodeDesc: "Seleziona il contenuto da includere e configura i dettagli dell'episodio prima di generare un nuovo episodio podcast.", content: "Contenuto", contentDesc: "Scegli quaderni, fonti e note da includere in questo episodio.", itemsSelected: "{count} elementi selezionati", tokens: "{count} token", chars: "{count} caratteri", loadingNotebooks: "Caricamento quaderni...", noNotebooksFoundInPodcasts: "Nessun quaderno trovato. Crea un quaderno e aggiungi contenuto prima di generare un podcast.", noContentSelected: "Nessun contenuto selezionato", summary: "Riepilogo", fullContent: "Contenuto completo", untitledSource: "Fonte senza titolo", untitledNote: "Nota senza titolo", episodeSettings: "Impostazioni episodio", episodeProfile: "Profilo episodio", episodeProfilePlaceholder: "Seleziona un profilo episodio", episodeName: "Nome episodio", episodeNamePlaceholder: "es., IA e il futuro del Lavoro", additionalInstructions: "Istruzioni aggiuntive", instructionsPlaceholder: "Eventuali consigli supplementari da aggiungere al briefing dell'episodio...", generating: "Generazione...", generate: "Genera", hostPlaceholder: "Conduttore {number}", profileRequired: "Profilo episodio richiesto", profileRequiredDesc: "Seleziona un profilo episodio prima di generare un podcast.", nameRequired: "Nome episodio richiesto", nameRequiredDesc: "Fornisci un nome per l'episodio.", addContext: "Aggiungi contesto", addContextDesc: "Seleziona almeno una fonte o nota da includere nell'episodio.", generationFailed: "Generazione podcast fallita", speakerProfile: "Profilo Speaker", usesSpeakerProfile: "Usa profilo speaker", sources: "Fonti", notes: "Note", noSources: "Nessuna fonte disponibile in questo quaderno.", noNotes: "Nessuna nota disponibile in questo quaderno.", selectMode: "Seleziona modalità", buildContextFailed: "Impossibile costruire il contesto. Rivedi le tue selezioni.", podcastTaskStarted: "Attività podcast avviata", loadingProfiles: "Caricamento profili episodio...", noProfilesFound: "Nessun profilo episodio trovato. Crea un profilo episodio prima di generare un podcast.", listTitle: "Podcast", listDesc: "Tieni traccia degli episodi generati e gestisci i modelli riutilizzabili.", chooseAView: "Scegli una vista", episodesTab: "Episodi", templatesTab: "Modelli", overviewTitle: "Panoramica episodi", overviewDesc: "Monitora i lavori di generazione podcast e rivedi gli artefatti finali.", generateBtn: "Genera Podcast", total: "Totale", processingLabel: "In elaborazione", completedLabel: "Completati", failedLabel: "Falliti", pendingLabel: "In attesa", loadErrorTitle: "Impossibile caricare gli episodi", loadErrorDesc: "Non siamo riusciti a recuperare gli ultimi episodi podcast. Riprova tra poco.", loadingEpisodes: "Caricamento episodi…", noEpisodesYet: "Ancora nessun episodio podcast. Genera il tuo primo dalle interfacce chat di quaderni o fonti.", statusRunningTitle: "In elaborazione", statusRunningDesc: "Episodi che stanno attivamente generando risorse.", statusPendingTitle: "In coda / In attesa", statusPendingDesc: "Episodi inviati in attesa di iniziare l'elaborazione.", statusCompletedTitle: "Episodi completati", statusCompletedDesc: "Pronti per revisione, download o pubblicazione.", statusFailedTitle: "Episodi falliti", statusFailedDesc: "Episodi che hanno riscontrato problemi durante la generazione.", templatesWorkspaceTitle: "Area di lavoro modelli", templatesWorkspaceDesc: "Costruisci configurazioni riutilizzabili per episodi e speaker per una produzione podcast rapida.", howTemplatesPowerTitle: "Come i modelli potenziano la generazione podcast", howTemplatesPowerDesc: "I modelli dividono il flusso di lavoro podcast in due blocchi riutilizzabili. Combinali quando generi un nuovo episodio.", episodeProfilesSetFormat: "I profili episodio impostano il formato", episodeProfilesList1: "Delinea il numero di segmenti e come scorre la storia", episodeProfilesList2: "Scegli i modelli linguistici usati per briefing, outline e scrittura script", episodeProfilesList3: "Memorizza briefing predefiniti così ogni episodio inizia con un tono coerente", speakerProfilesBringVoices: "I profili speaker danno vita alle voci", speakerProfilesList1: "Scegli il provider e modello text-to-speech", speakerProfilesList2: "Cattura personalità, background e note di pronuncia per speaker", speakerProfilesList3: "Riutilizza le stesse voci di conduttori o ospiti in diversi formati episodio", recommendedWorkflow: "Flusso di lavoro consigliato", workflowStep1: "Crea profili speaker per ogni voce di cui hai bisogno", workflowStep2: "Costruisci profili episodio che riferiscono quegli speaker per nome", workflowStep3: "Genera podcast selezionando il profilo episodio adatto alla storia", workflowHint: "I profili episodio riferiscono i profili speaker per nome, quindi iniziare dagli speaker evita assegnazioni vocali mancanti.", failedToLoadTemplates: "Impossibile caricare i dati dei modelli", failedToLoadTemplatesDesc: "Assicurati che l'API sia in esecuzione e riprova. Alcune sezioni potrebbero essere incomplete.", loadingTemplates: "Caricamento modelli…", speakerProfilesTitle: "Profili speaker", speakerProfilesDesc: "Configura voci e personalità per gli episodi generati.", createSpeaker: "Crea speaker", noSpeakerProfiles: "Ancora nessun profilo speaker. Creane uno per rendere disponibili i modelli episodio.", noDescription: "Nessuna descrizione fornita.", usedByCount_one: "Usato da 1 episodio", usedByCount_other: "Usato da {count} episodi", usedByCount: "Usato da {count} episodi", unused: "Non utilizzato", voiceId: "ID Voce", backstory: "Background", personality: "Personalità", edit: "Modifica", duplicate: "Duplica", deleteSpeakerProfileTitle: "Eliminare il profilo speaker?", deleteSpeakerProfileDesc: "L'eliminazione di \"{name}\" non può essere annullata.", deleteSpeakerDisabledHint: "Rimuovi questo speaker dai profili episodio prima di eliminarlo.", deleting: "Eliminazione…", episodeProfilesTitle: "Profili episodio", episodeProfilesDesc: "Definisci impostazioni di generazione riutilizzabili per i tuoi programmi.", createProfile: "Crea profilo", createSpeakerFirst: "Crea un profilo speaker prima di aggiungere un profilo episodio.", noEpisodeProfiles: "Ancora nessun profilo episodio. Creane uno per avviare la generazione podcast.", speakerCreated: "Speaker creato", speakerCreatedDesc: "Lo speaker \"{name}\" è stato aggiunto con successo.", failedToCreateSpeaker: "Impossibile creare il profilo speaker", speakerUpdated: "Speaker aggiornato", speakerUpdatedDesc: "Lo speaker \"{name}\" è stato aggiornato con successo.", failedToUpdateSpeaker: "Impossibile aggiornare il profilo speaker", speakerDeleted: "Speaker eliminato", speakerDeletedDesc: "Lo speaker \"{name}\" è stato rimosso con successo.", failedToDeleteSpeaker: "Impossibile eliminare il profilo speaker", speakerDuplicated: "Speaker duplicato", speakerDuplicatedDesc: "Lo speaker \"{name}\" è stato duplicato con successo.", failedToDuplicateSpeaker: "Impossibile duplicare il profilo speaker", generationStarted: "Generazione Avviata", generationStartedDesc: "La generazione del podcast è stata accodata.", failedToStartGeneration: "Impossibile avviare la generazione", tryAgainMoment: "Riprova tra un momento.", deleteProfileTitle: "Eliminare il profilo?", deleteProfileDesc: "Questo rimuoverà \"{name}\". Gli episodi esistenti mantengono i loro dati, ma i nuovi non useranno più questa configurazione.", profileCreated: "Profilo creato", profileCreatedDesc: "Il profilo episodio \"{name}\" è stato creato con successo.", failedToCreateProfile: "Impossibile creare il profilo", profileUpdated: "Profilo aggiornato", profileUpdatedDesc: "Il profilo episodio \"{name}\" è stato aggiornato con successo.", failedToUpdateProfile: "Impossibile aggiornare il profilo", profileDeleted: "Profilo eliminato", profileDeletedDesc: "Il profilo episodio \"{name}\" è stato rimosso con successo.", failedToDeleteProfile: "Impossibile eliminare il profilo", failedToDeleteProfileDesc: "Impossibile rimuovere il profilo episodio.", profileDuplicated: "Profilo duplicato", profileDuplicatedDesc: "Il profilo episodio \"{name}\" è stato duplicato con successo.", failedToDuplicateProfile: "Impossibile duplicare il profilo", episodeDeleted: "Episodio eliminato", episodeDeletedDesc: "L'episodio è stato eliminato con successo.", failedToDeleteEpisode: "Impossibile eliminare l'episodio", failedToDeleteSpeakerDesc: "Impossibile rimuovere il profilo speaker.", outlineModel: "Modello outline", transcriptModel: "Modello trascrizione", segments: "Segmenti", defaultBriefingTitle: "Briefing predefinito", created: "Creato il {time}", details: "Dettagli", summaryTab: "Riepilogo", outlineTab: "Outline", transcriptTab: "Trascrizione", briefing: "Briefing", noOutline: "Nessun outline disponibile.", noTranscript: "Nessuna trascrizione disponibile.", deleteEpisodeTitle: "Eliminare l'episodio?", deleteEpisodeDesc: "Questo rimuoverà \"{name}\" e il suo file audio permanentemente.", audioUnavailable: "Audio non disponibile", segment: "Segmento", speaker: "Speaker", profile: "Profilo", link: "Link", file: "File", embedded: "Indicizzato", notEmbedded: "Non indicizzato", noSpeakerProfilesAvailable: "Nessun profilo speaker disponibile", noLanguageModelsAvailable: "Nessun modello linguistico disponibile", editEpisodeProfile: "Modifica profilo episodio", createEpisodeProfile: "Crea profilo episodio", episodeProfileFormDesc: "Definisci come devono essere generati gli episodi e quale configurazione speaker usare di default.", noSpeakerProfilesDesc: "Crea un profilo speaker prima di configurare un profilo episodio.", noLanguageModelsDesc: "Aggiungi modelli linguistici nella sezione modelli per configurare la generazione di outline e trascrizione.", profileName: "Nome profilo", profileNamePlaceholder: "es., Discussione tech", descriptionPlaceholder: "Breve riepilogo di quando usare questo profilo", speakerConfig: "Configurazione speaker", selectSpeakerProfile: "Seleziona un profilo speaker", outlineGeneration: "Generazione outline", transcriptGeneration: "Generazione trascrizione", defaultBriefingPlaceholder: "Delinea struttura, tono e obiettivi per questo formato episodio", editSpeakerProfile: "Modifica profilo speaker", createSpeakerProfile: "Crea profilo speaker", speakerProfileFormDesc: "Configura le impostazioni text-to-speech e definisci fino a quattro speaker.", noTtsModelsAvailable: "Nessun modello text-to-speech disponibile", noTtsModelsDesc: "Aggiungi modelli TTS nella sezione modelli prima di creare un profilo speaker.", speakers: "Speaker", speakersDesc: "Configura da una a quattro voci per questo profilo.", addSpeaker: "Aggiungi speaker", speakerNumber: "Speaker {number}", backstoryPlaceholder: "Breve biografia o contesto per lo speaker", personalityPlaceholder: "Descrivi stile e tono", outlineProviderRequired: "Il provider outline è obbligatorio", outlineModelRequired: "Il modello outline è obbligatorio", transcriptProviderRequired: "Il provider trascrizione è obbligatorio", transcriptModelRequired: "Il modello trascrizione è obbligatorio", defaultBriefingRequired: "Il briefing predefinito è obbligatorio", segmentsInteger: "Deve essere un numero intero", segmentsMin: "Almeno 3 segmenti", segmentsMax: "Massimo 20 segmenti", voiceIdRequired: "L'ID voce è obbligatorio", backstoryRequired: "Il background è obbligatorio", personalityRequired: "La personalità è obbligatoria", speakerCountMin: "È richiesto almeno uno speaker", speakerCountMax: "Puoi configurare fino a 4 speaker", delete: "Elimina", failedToDelete: "Impossibile eliminare il podcast", }, settings: { contentProcessing: "Elaborazione contenuti", contentProcessingDesc: "Configura come vengono elaborati documenti e URL", docEngine: "Motore elaborazione documenti", docEnginePlaceholder: "Seleziona motore elaborazione documenti", urlEngine: "Motore elaborazione URL", urlEnginePlaceholder: "Seleziona motore elaborazione URL", autoRecommended: "Auto (consigliato)", simple: "Semplice", docling: "Docling", helpMeChoose: "Aiutami a scegliere", docHelp: "· Docling è un po' più lento ma più accurato, specialmente se i documenti contengono tabelle e immagini. · Semplice estrarrà qualsiasi contenuto dal documento senza formattarlo. · Auto (consigliato) proverà a elaborare tramite docling e userà semplice come fallback.", firecrawl: "Firecrawl", jina: "Jina", urlHelp: "· Firecrawl è un servizio a pagamento (con piano gratuito), molto potente. · Jina è una buona alternativa con piano gratuito. · Semplice usa estrazione HTTP base e perderà contenuto su siti basati su javascript. · Auto (consigliato) proverà firecrawl poi Jina, infine semplice come fallback.", embeddingAndSearch: "Indicizzazione e ricerca", embeddingAndSearchDesc: "Configura opzioni di ricerca e indicizzazione", defaultEmbeddingOption: "Opzione indicizzazione predefinita", embeddingOptionPlaceholder: "Seleziona opzione indicizzazione", ask: "Chiedi", always: "Sempre", never: "Mai", embeddingHelp: "Indicizzare il contenuto renderà più facile trovarlo per te e per i tuoi agenti IA. Se usi un modello di embedding locale (Ollama, per esempio), non dovresti preoccuparti del costo e indicizzare tutto.", fileManagement: "Gestione file", fileManagementDesc: "Configura opzioni di gestione e archiviazione file", autoDeleteFiles: "Elimina file automaticamente", autoDeletePlaceholder: "Seleziona opzione eliminazione automatica", filesHelp: "Una volta caricati ed elaborati, i tuoi file non sono più necessari. La maggior parte degli utenti dovrebbe permettere a Open Notebook di eliminare automaticamente i file caricati dalla cartella upload.", loadFailed: "Impossibile caricare le impostazioni", }, advanced: { title: "Strumenti avanzati", desc: "Strumenti e utilità avanzate per utenti esperti", systemInfo: "Informazioni sistema", rebuildEmbeddings: "Ricostruisci indicizzazioni", rebuildEmbeddingsDesc: "Ricostruisci l'indice di ricerca vettoriale per tutte le fonti", currentVersion: "Versione corrente", latestVersion: "Ultima versione", status: "Stato", updateAvailable: "Versione {version} disponibile", updateAvailableDesc: "È disponibile una nuova versione di Open Notebook.", upToDate: "Aggiornato", unknown: "Sconosciuto", viewOnGithub: "Visualizza su GitHub", updateCheckFailed: "Impossibile verificare aggiornamenti. GitHub potrebbe non essere raggiungibile.", rebuild: { mode: "Modalità ricostruzione", existing: "Esistenti", all: "Tutti", existingDesc: "Re-indicizza solo elementi che hanno già indicizzazioni (più veloce, per cambio modello)", allDesc: "Re-indicizza elementi esistenti + crea indicizzazioni per elementi senza (più lento, completo)", include: "Includi nella ricostruzione", selectOneError: "Seleziona almeno un tipo di elemento da ricostruire", starting: "Avvio ricostruzione...", startBtn: "🚀 Avvia ricostruzione", queued: "In coda", running: "In esecuzione...", completed: "Completato!", failed: "Fallito", leavePageHint: "Puoi lasciare questa pagina poiché verrà eseguito in background", startNew: "Avvia nuova ricostruzione", itemsProcessed: "{processed}/{total} elementi ({percent}%)", failedItems: "{count} elementi non elaborati", time: "Tempo", whenToRebuild: "Quando dovrei ricostruire le indicizzazioni?", whenToRebuildAns: "Dovresti ricostruire quando cambi modelli, aggiorni versioni, correggi corruzione o dopo importazioni massive.", howLong: "Quanto tempo richiede la ricostruzione?", howLongAns: "Il tempo di elaborazione dipende dal numero di elementi, velocità del modello e limiti API. I modelli locali sono solitamente molto veloci.", isSafe: "È sicuro ricostruire mentre uso l'app?", isSafeAns: "Sì, la ricostruzione è sicura! Non elimina contenuti, sostituisce solo le indicizzazioni e gestisce gli errori con grazia.", }, }, transformations: { title: "Trasformazioni", desc: "Le trasformazioni sono prompt che verranno usati dall'LLM per elaborare una fonte ed estrarre approfondimenti, riepiloghi, ecc.", workspace: "Scegli un'area di lavoro", playground: "Playground", defaultPrompt: "Prompt trasformazione predefinito", defaultPromptDesc: "Questo verrà aggiunto a tutti i tuoi prompt di trasformazione", defaultPromptPlaceholder: "Inserisci le tue istruzioni di trasformazione predefinite...", listTitle: "Trasformazioni personalizzate", createNew: "Crea Nuova", inputLabel: "Testo di input", inputPlaceholder: "Inserisci del testo da trasformare...", outputLabel: "Output", runTest: "Esegui trasformazione", running: "Esecuzione...", selectToStart: "Seleziona una trasformazione per iniziare", name: "Nome", namePlaceholder: "Identificativo unico, es. argomenti_chiave", titlePlaceholder: "Titolo visualizzato, default al nome", promptPlaceholder: "Scrivi il prompt che alimenterà questa trasformazione...", descriptionPlaceholder: "Descrivi cosa fa questa trasformazione.", suggestDefault: "Suggerisci di default per nuove fonti", promptHint: "I prompt dovrebbero essere scritti considerando il contenuto della fonte. Puoi chiedere al modello di riassumere, estrarre approfondimenti o produrre output strutturati come tabelle.", createSuccess: "Trasformazione creata con successo", updateSuccess: "Trasformazione aggiornata con successo", deleteSuccess: "Trasformazione eliminata con successo", noTransformations: "Ancora nessuna trasformazione", createOne: "Crea una trasformazione per iniziare", selectModel: "Seleziona un modello", deleteConfirm: "Sei sicuro di voler eliminare questa trasformazione?", model: "Modello", systemPrompt: "Prompt di sistema", overrideModelDesc: "Sovrascrivi il modello predefinito per questa sessione chat. Lascia vuoto per usare il default di sistema.", sessionUseReplacement: "Questa sessione userà {name} invece del modello predefinito.", systemDefault: "Predefinito di sistema", }, models: { embedding: "Modelli di embedding", tts: "Text to Speech (TTS)", stt: "Speech to Text (STT)", provider: "Provider", apiKey: "Chiave API", deleteSuccess: "Modello eliminato con successo", saveSuccess: "Modello salvato con successo", noModels: "Nessun modello", discoverModels: "Scopri Modelli", noModelsFound: "Nessun modello trovato per questo provider", modelType: "Tipo di Modello", modelTypeHint: "Seleziona il tipo per i modelli che vuoi aggiungere. Se hai bisogno di tipi diversi, aggiungili in lotti separati.", deleteModel: "Elimina modello", defaultAssignments: "Assegnazioni modelli predefiniti", defaultAssignmentsDesc: "Configura quali modelli usare per diversi scopi in Open Notebook", missingRequiredModels: "Modelli richiesti mancanti: {models}. Open Notebook potrebbe non funzionare correttamente senza questi.", selectModelPlaceholder: "Seleziona un modello", requiredModelPlaceholder: "⚠️ Richiesto - Seleziona un modello", chatModelLabel: "Modello chat", chatModelDesc: "Usato per le conversazioni chat", transformationModelLabel: "Modello trasformazione", transformationModelDesc: "Usato per riepiloghi, approfondimenti e trasformazioni", toolsModelLabel: "Modello strumenti", toolsModelDesc: "Usato per chiamate funzione - OpenAI o Anthropic consigliati", largeContextModelLabel: "Modello contesto ampio", largeContextModelDesc: "Usato per elaborare documenti grandi - Gemini consigliato", embeddingModelLabel: "Modello di embedding", embeddingModelDesc: "Usato per ricerca semantica e embedding vettoriali", ttsModelLabel: "Modello Text-to-Speech", ttsModelDesc: "Usato per la generazione podcast", sttModelLabel: "Modello Speech-to-Text", sttModelDesc: "Usato per la trascrizione audio", selectProviderPlaceholder: "Seleziona un provider", providerRequired: "Il provider è obbligatorio", modelRequired: "Il modello è obbligatorio", embeddingChangeTitle: "Cambio modello di embedding", embeddingChangeConfirm: "Stai per cambiare il modello di embedding da {from} a {to}.", rebuildRequired: "Importante: ricostruzione richiesta", rebuildReason: "Cambiare il modello di embedding richiede la ricostruzione di tutti gli embedding esistenti per mantenere la coerenza. Senza ricostruzione, le tue ricerche potrebbero restituire risultati errati o incompleti.", whatHappensNext: "Cosa succede dopo:", step1: "Il tuo modello di embedding predefinito verrà aggiornato", step2: "Gli embedding esistenti rimarranno invariati fino alla ricostruzione", step3: "I nuovi contenuti useranno il nuovo modello di embedding", step4: "Dovresti ricostruire gli embedding il prima possibile", proceedToRebuildPrompt: "Vuoi procedere alla pagina avanzate per avviare la ricostruzione ora?", changeModelOnly: "Cambia solo modello", changeAndRebuild: "Cambia e vai a ricostruzione", autoAssign: "Assegnazione automatica predefiniti", autoAssigning: "Assegnazione in corso...", autoAssignSuccess: "{count} modelli predefiniti assegnati automaticamente", autoAssignNoModels: "Nessun modello disponibile da assegnare. Sincronizza prima i modelli.", autoAssignAlreadySet: "Tutti i modelli predefiniti sono già configurati", testModel: "Testa Modello", testModelSuccess: "Test del Modello Superato", testModelFailed: "Test del Modello Fallito", searchOrAddModel: "Cerca o digita un nome modello...", addCustomModel: "Aggiungi \"{name}\"", }, apiKeys: { title: "Configura la tua IA con le tue chiavi API", description: "Salva le chiavi API in modo sicuro nel database per abilitare i provider IA in Open Notebook.", encryptionRequired: "Chiave di crittografia non configurata", encryptionRequiredDescription: "Imposta la variabile d'ambiente OPEN_NOTEBOOK_ENCRYPTION_KEY su una stringa segreta qualsiasi per abilitare il salvataggio delle chiavi API nel database.", configured: "Configurato", notConfigured: "Non configurato", migrationAvailable: "Variabili d'ambiente rilevate", migrationDescription: "{count} chiave/i API configurata/e tramite variabili d'ambiente. Puoi migrarle nel database per una gestione più semplice.", migrateToDatabase: "Migra nel database", migrating: "Migrazione in corso...", migrationSuccess: "{count} chiave/i API migrata/e con successo", migrationErrors: "{count} chiave/i non migrata/e", migrationNothingToMigrate: "Tutte le chiavi sono già nel database", learnMore: "Scopri come configurare le chiavi API →", testConnection: "Testa connessione", testSuccess: "Connessione riuscita", testFailed: "Test di connessione fallito", syncModels: "Sincronizza modelli", syncSuccess: "Trovati {discovered} modelli, aggiunti {new} nuovi", syncNoNew: "Trovati {count} modelli, tutti già registrati", syncFailed: "Sincronizzazione modelli fallita", getApiKey: "Ottieni chiave API", vertexProject: "ID progetto GCP", vertexLocation: "Regione", vertexCredentials: "Percorso JSON account di servizio", addConfig: "Aggiungi configurazione", editConfig: "Modifica configurazione", deleteConfig: "Elimina configurazione", configName: "Nome configurazione", configNameHint: "Un nome descrittivo per questa configurazione (es. 'Produzione', 'Sviluppo')", baseUrl: "URL base", baseUrlOverrideHint: "Modifica solo se devi sovrascrivere l'endpoint API predefinito del provider.", deleteConfigConfirm: "Sei sicuro di voler eliminare '{name}'? Questa azione non può essere annullata.", configSaveSuccess: "Configurazione salvata con successo", configUpdateSuccess: "Configurazione aggiornata con successo", configDeleteSuccess: "Configurazione eliminata con successo", apiKeyEditHint: "Lascia vuoto per mantenere la chiave API esistente", }, setupBanner: { encryptionRequired: "Chiave di crittografia non configurata", encryptionRequiredDescription: "Imposta la variabile d'ambiente OPEN_NOTEBOOK_ENCRYPTION_KEY per abilitare l'archiviazione sicura delle credenziali.", migrationAvailable: "Migrazione chiavi API disponibile", migrationDescription: "{count} provider hanno chiavi API impostate tramite variabili d'ambiente. Migrale nel database per una gestione più semplice.", goToSettings: "Vai alle Impostazioni", viewDocs: "Vedi documentazione", }, }