Add Italian language support (#508)
* Create new file index.ts * Content added * updated words * Add Italian language support to locales * Fix typos in Italian localization strings * Fix typo in Italian locale for defaultAssignments
This commit is contained in:
parent
2861439ca0
commit
0f76c93b00
2 changed files with 962 additions and 2 deletions
|
|
@ -3,6 +3,7 @@ import { enUS } from './en-US';
|
||||||
import { zhTW } from './zh-TW';
|
import { zhTW } from './zh-TW';
|
||||||
import { ptBR } from './pt-BR';
|
import { ptBR } from './pt-BR';
|
||||||
import { jaJP } from './ja-JP';
|
import { jaJP } from './ja-JP';
|
||||||
|
import { itIT } from './it-IT';
|
||||||
|
|
||||||
export const resources = {
|
export const resources = {
|
||||||
'zh-CN': { translation: zhCN },
|
'zh-CN': { translation: zhCN },
|
||||||
|
|
@ -10,11 +11,12 @@ export const resources = {
|
||||||
'zh-TW': { translation: zhTW },
|
'zh-TW': { translation: zhTW },
|
||||||
'pt-BR': { translation: ptBR },
|
'pt-BR': { translation: ptBR },
|
||||||
'ja-JP': { translation: jaJP },
|
'ja-JP': { translation: jaJP },
|
||||||
|
'it-IT': { translation: itIT },
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export type TranslationKeys = typeof enUS;
|
export type TranslationKeys = typeof enUS;
|
||||||
|
|
||||||
export type LanguageCode = 'zh-CN' | 'en-US' | 'zh-TW' | 'pt-BR' | 'ja-JP';
|
export type LanguageCode = 'zh-CN' | 'en-US' | 'zh-TW' | 'pt-BR' | 'ja-JP' | 'it-IT';
|
||||||
|
|
||||||
export type Language = {
|
export type Language = {
|
||||||
code: LanguageCode;
|
code: LanguageCode;
|
||||||
|
|
@ -27,6 +29,7 @@ export const languages: Language[] = [
|
||||||
{ code: 'zh-TW', label: '繁體中文' },
|
{ code: 'zh-TW', label: '繁體中文' },
|
||||||
{ code: 'pt-BR', label: 'Português' },
|
{ code: 'pt-BR', label: 'Português' },
|
||||||
{ code: 'ja-JP', label: '日本語' },
|
{ code: 'ja-JP', label: '日本語' },
|
||||||
|
{ code: 'it-IT', label: 'Italiano' },
|
||||||
];
|
];
|
||||||
|
|
||||||
export { zhCN, enUS, zhTW, ptBR, jaJP };
|
export { zhCN, enUS, zhTW, ptBR, jaJP, itIT };
|
||||||
|
|
|
||||||
957
frontend/src/lib/locales/it-IT/index.ts
Normal file
957
frontend/src/lib/locales/it-IT/index.ts
Normal file
|
|
@ -0,0 +1,957 @@
|
||||||
|
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: "日本語",
|
||||||
|
italian: "Italiano",
|
||||||
|
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",
|
||||||
|
sessions: "Sessioni",
|
||||||
|
model: "Modello",
|
||||||
|
send: "Invia",
|
||||||
|
back: "Indietro",
|
||||||
|
next: "Avanti",
|
||||||
|
done: "Fatto",
|
||||||
|
processing: "Elaborazione...",
|
||||||
|
creating: "Creazione...",
|
||||||
|
tokenCount: "Token",
|
||||||
|
charCount: "Caratteri",
|
||||||
|
linked: "Collegato",
|
||||||
|
added: "Aggiunto il {date}",
|
||||||
|
adding: "Aggiunta in corso...",
|
||||||
|
addSelected: "Aggiungi selezionati",
|
||||||
|
customModel: "Modello personalizzato",
|
||||||
|
messages: "Messaggi",
|
||||||
|
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",
|
||||||
|
details: "Dettagli",
|
||||||
|
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",
|
||||||
|
simple: "Semplice",
|
||||||
|
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",
|
||||||
|
notFound: "Non trovato",
|
||||||
|
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: {
|
||||||
|
navigation: "Navigazione",
|
||||||
|
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",
|
||||||
|
chatSessions: "Sessioni chat",
|
||||||
|
ytVideo: "Video YouTube",
|
||||||
|
askResponse: "Risposta alla domanda",
|
||||||
|
searchNotebooks: "Cerca quaderni",
|
||||||
|
},
|
||||||
|
url: "URL",
|
||||||
|
errorDetails: "Dettagli errore",
|
||||||
|
editTransformation: "Modifica trasformazione",
|
||||||
|
comingSoon: "Prossimamente",
|
||||||
|
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",
|
||||||
|
missingAuth: "Autenticazione mancante",
|
||||||
|
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",
|
||||||
|
unhandledError: "Errore non gestito durante l'accesso",
|
||||||
|
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",
|
||||||
|
search: "Cerca",
|
||||||
|
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",
|
||||||
|
emptyDescription: "Inizia creando il tuo primo quaderno per organizzare la tua ricerca.",
|
||||||
|
noActiveNotebooks: "Nessun quaderno attivo",
|
||||||
|
noArchivedNotebooks: "Nessun quaderno archiviato",
|
||||||
|
notFound: "Quaderno non trovato",
|
||||||
|
notFoundDesc: "Il quaderno richiesto non esiste.",
|
||||||
|
noDescription: "Nessuna descrizione...",
|
||||||
|
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",
|
||||||
|
empty: "Ancora nessuna fonte",
|
||||||
|
emptyDesc: "Aggiungi la tua prima fonte per iniziare a costruire la tua base di conoscenza.",
|
||||||
|
delete: "Elimina Fonte",
|
||||||
|
deleteMsg: "Sei sicuro di voler eliminare questa fonte? Questa azione non può essere annullata.",
|
||||||
|
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",
|
||||||
|
failedToRetryDesc: "Impossibile ritentare l'elaborazione della fonte. Riprova.",
|
||||||
|
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.",
|
||||||
|
deleteNoteConfirm: "Sei sicuro di voler eliminare questa nota? Questa azione non può essere annullata.",
|
||||||
|
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",
|
||||||
|
noNotesYet: "Ancora nessuna nota",
|
||||||
|
createFirstNote: "Crea la tua prima nota per catturare intuizioni e osservazioni.",
|
||||||
|
deleteNote: "Elimina nota",
|
||||||
|
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",
|
||||||
|
progress: "Progresso",
|
||||||
|
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...",
|
||||||
|
contentRequired: "Fornisci il contenuto richiesto per il tipo di fonte selezionato",
|
||||||
|
titleRequiredForText: "Il titolo è obbligatorio per le fonti testuali",
|
||||||
|
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",
|
||||||
|
startChatting: "Inizia a chattare sulle tue fonti.",
|
||||||
|
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...",
|
||||||
|
newChat: "Nuova chat",
|
||||||
|
sessionsTitle: "Sessioni chat",
|
||||||
|
clearhistory: "Cancella cronologia",
|
||||||
|
renameSession: "Rinomina sessione",
|
||||||
|
noSourcesLinked: "Nessuna fonte collegata",
|
||||||
|
thinking: "L'IA sta pensando...",
|
||||||
|
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",
|
||||||
|
createNewNotebook: "Crea nuovo quaderno",
|
||||||
|
cancel: "Annulla",
|
||||||
|
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",
|
||||||
|
unknown: "Sconosciuto",
|
||||||
|
deleteSuccess: "Podcast eliminato con successo",
|
||||||
|
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",
|
||||||
|
systemInfoDesc: "Visualizza lo stato dei componenti di sistema sottostanti",
|
||||||
|
rebuildEmbeddings: "Ricostruisci indicizzazioni",
|
||||||
|
rebuildEmbeddingsDesc: "Ricostruisci l'indice di ricerca vettoriale per tutte le fonti",
|
||||||
|
rebuildWarning: "Questa azione può richiedere molto tempo a seconda del numero di fonti. Cancellerà gli indici vettoriali esistenti e rigenererà le indicizzazioni per tutto.",
|
||||||
|
startRebuild: "Avvia ricostruzione",
|
||||||
|
rebuilding: "Ricostruzione...",
|
||||||
|
rebuildSuccess: "Ricostruzione indicizzazioni avviata con successo",
|
||||||
|
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...",
|
||||||
|
saveDefault: "Salva predefinito",
|
||||||
|
listTitle: "Trasformazioni personalizzate",
|
||||||
|
createNew: "Crea Nuova",
|
||||||
|
testInPlayground: "Testa nel playground",
|
||||||
|
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",
|
||||||
|
deleteDesc: "L'eliminazione di questa trasformazione non può essere annullata.",
|
||||||
|
selectModel: "Seleziona un modello",
|
||||||
|
deleteConfirm: "Sei sicuro di voler eliminare questa trasformazione?",
|
||||||
|
model: "Modello",
|
||||||
|
systemPrompt: "Prompt di sistema",
|
||||||
|
type: "Tipo",
|
||||||
|
extraction: "Estrazione",
|
||||||
|
summary: "Riepilogo",
|
||||||
|
custom: "Personalizzato",
|
||||||
|
saveChanges: "Salva modifiche",
|
||||||
|
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: {
|
||||||
|
title: "Gestione modelli",
|
||||||
|
desc: "Configura i modelli IA per diversi scopi in Open Notebook",
|
||||||
|
failedToLoad: "Impossibile caricare i dati dei modelli",
|
||||||
|
language: "Modelli linguistici",
|
||||||
|
embedding: "Modelli di embedding",
|
||||||
|
tts: "Text to Speech (TTS)",
|
||||||
|
stt: "Speech to Text (STT)",
|
||||||
|
providers: "Provider",
|
||||||
|
defaultModels: "Modelli predefiniti",
|
||||||
|
status: "Stato",
|
||||||
|
notConfigured: "Non configurato",
|
||||||
|
active: "Attivo",
|
||||||
|
inactive: "Inattivo",
|
||||||
|
configure: "Configura",
|
||||||
|
saveChanges: "Salva modifiche",
|
||||||
|
addModel: "Aggiungi modello",
|
||||||
|
modelName: "Nome modello",
|
||||||
|
provider: "Provider",
|
||||||
|
apiKey: "Chiave API",
|
||||||
|
baseUrl: "URL Base",
|
||||||
|
capabilities: "Capacità",
|
||||||
|
enabled: "Abilitato",
|
||||||
|
disabled: "Disabilitato",
|
||||||
|
deleteConfirm: "Sei sicuro di voler eliminare questo modello?",
|
||||||
|
deleteSuccess: "Modello eliminato con successo",
|
||||||
|
saveSuccess: "Modello salvato con successo",
|
||||||
|
providerStatus: "Stato provider",
|
||||||
|
connectionOk: "Connessione OK",
|
||||||
|
connectionFailed: "Connessione fallita",
|
||||||
|
changeEmbeddingWarning: "Cambiare il modello di embedding predefinito influenzerà le nuove fonti. Le fonti esistenti potrebbero dover essere re-indicizzate.",
|
||||||
|
changeEmbeddingTitle: "Cambiare il modello di embedding predefinito?",
|
||||||
|
aiProviders: "Provider IA",
|
||||||
|
providerConfigDesc: "Configura i provider tramite variabili d'ambiente per abilitare i loro modelli.",
|
||||||
|
configuredCount: "{count} di {total} configurati",
|
||||||
|
noModels: "Nessun modello",
|
||||||
|
learnMore: "Scopri come configurare i provider →",
|
||||||
|
seeLess: "Mostra meno",
|
||||||
|
seeAll: "Mostra tutti i {count} provider",
|
||||||
|
language_models: "Modelli linguistici",
|
||||||
|
embedding_models: "Modelli di embedding",
|
||||||
|
text_to_speech: "Text to Speech (TTS)",
|
||||||
|
speech_to_text: "Speech to Text (STT)",
|
||||||
|
languageDesc: "Chat, trasformazioni e generazione testo",
|
||||||
|
embeddingDesc: "Ricerca semantica e embedding vettoriali",
|
||||||
|
ttsDesc: "Genera audio da testo",
|
||||||
|
sttDesc: "Trascrivi audio in testo",
|
||||||
|
all: "Tutti",
|
||||||
|
noModelsConfigured: "Nessun modello configurato",
|
||||||
|
noProviderModelsConfigured: "Nessun modello {provider} configurato",
|
||||||
|
showMore: "Mostra altri {count}",
|
||||||
|
deleteModel: "Elimina modello",
|
||||||
|
deleteModelDesc: "Sei sicuro di voler eliminare \"{name}\"? Questa azione non può essere annullata.",
|
||||||
|
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",
|
||||||
|
whichModelToChoose: "Quale modello dovrei scegliere? →",
|
||||||
|
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",
|
||||||
|
addSpecificModel: "Aggiungi modello {type}",
|
||||||
|
addSpecificModelDesc: "Configura un nuovo modello {type} dai provider disponibili.",
|
||||||
|
noProvidersForType: "Nessun provider disponibile per modelli {type}",
|
||||||
|
selectProviderPlaceholder: "Seleziona un provider",
|
||||||
|
providerRequired: "Il provider è obbligatorio",
|
||||||
|
modelNameRequired: "Il nome del modello è obbligatorio",
|
||||||
|
modelRequired: "Il modello è obbligatorio",
|
||||||
|
adding: "Aggiunta...",
|
||||||
|
azureHint: "Per Azure, usa il nome del deployment come nome del modello",
|
||||||
|
enterModelName: "Inserisci nome modello",
|
||||||
|
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",
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue