From 27d2c3e1bcf3fa1b45837b89a46edc1252f5bffc Mon Sep 17 00:00:00 2001 From: Efrem Ropelato Date: Mon, 6 Apr 2026 17:21:16 +0200 Subject: [PATCH] Italian localization fully implemented --- i18n/locales/it_IT.json | 6837 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 6837 insertions(+) create mode 100644 i18n/locales/it_IT.json diff --git a/i18n/locales/it_IT.json b/i18n/locales/it_IT.json new file mode 100644 index 0000000..b3313f9 --- /dev/null +++ b/i18n/locales/it_IT.json @@ -0,0 +1,6837 @@ +{ + "you": "Tu", + "select": "Seleziona", + "selectAll": "Seleziona tutto", + "selected": "Selezionato", + "conversations": "Conversazioni", + "copyToClipboard": "Copia negli appunti", + "copyJsonToClipboard": "Copia JSON negli appunti", + "toCopyMarkdownDirectly": "per copiare direttamente il markdown", + "clickToCopyMarkdownDirectly": "Clicca per copiare direttamente il markdown", + "toShowMoreOptions": "per mostrare più opzioni", + "longPressOrAltClickForMoreOptions": "Pressione prolungata o {key}+clic per più opzioni", + "onMessage": "su messaggio", + "selectModel": "@:seleziona un modello | @:seleziona modelli", + "manageModels": "@:gestisci Modelli", + "required": "Obbligatorio", + "optional": "Opzionale", + "systemPrompt": "System Prompt", + "systemPromptAttachMode": "@:systemPrompt Allega @:mode", + "userPrompt": "@:user Prompt", + "delete": "Elimina {item}", + "deleteWithConfirm": "Elimina...", + "removeWithConfirm": "Rimuovi...", + "deleteAll": "Elimina tutto", + "deleteItems": "Elimina elementi", + "create": "Crea", + "edit": "Modifica", + "editNote": "Modifica nota...", + "addNote": "Aggiungi nota...", + "viewDetails": "Visualizza dettagli...", + "expandTextarea": "Espandi editor", + "collapseTextarea": "Comprimi editor", + "enable": "Abilita", + "disable": "Disabilita", + "save": "Salva", + "saved": "Salvato", + "cancel": "Annulla", + "close": "Chiudi", + "bookmarked": "Segnalibro", + "pinned": "Fissato", + "update": "Aggiorna", + "apply": "Applica", + "reset": "Ripristina", + "icon": "Icona", + "clear": "Cancella", + "apiKey": "Chiave API", + "models": "Modelli", + "available": "{itemType} disponibile", + "unavailable": "Non disponibile", + "detected": "Rilevato", + "continue": "Continua", + "undetected": "Non rilevato", + "welcome": "Benvenuto!", + "plan": "Piano", + "allChangesSaved": "Tutte le modifiche salvate", + "toolbar": "Barra degli strumenti", + "bookmark": "Segnalibro | Segnalibri", + "waitingMessage": { + "waiting": "In attesa :: Un attimo :: Solo un momento :: Un secondo :: La pazienza è una virtù :: Ci siamo quasi :: Caricamento fantastico", + "fetchingWebResults": "Ricerca sul Web :: Navigazione in internet :: Ricerca online :: Scansione del web :: Consultazione dell'oracolo :: Chiedendo gentilmente a internet :: Immersione nel cyberspazio :: Estrazione dal web", + "queryingKnowledgeStack": "Interrogazione @:knowledgeStack.title :: Ricerca nella tua conoscenza :: Consultazione dei tuoi documenti :: Esplorazione della tua base di conoscenza :: Ricerca nella tua saggezza :: Consultazione della tua biblioteca digitale :: Scansione degli archivi :: Scavo tra le tue note", + "preparingTools": "Preparazione strumenti :: Preparazione degli strumenti :: Configurazione strumenti :: Caricamento strumenti :: Affilatura degli strumenti :: Assemblaggio del toolkit :: Riscaldamento dei motori :: Preparazione dell'area di lavoro", + "connectingToModel": "Il modello sta facendo la sua magia ✨ :: L'IA sta pensando :: Elaborazione della tua richiesta :: Ci stiamo lavorando :: Calcolo dei dati :: Neuroni attivi :: Riflessione profonda :: Calcolo brillante :: Attivazione modalità cervello :: Evocazione intelligenza", + "processingContext": "Elaborazione contesto :: Comprensione del contesto :: Analisi del contesto :: Lettura della situazione :: Collegamento dei punti :: Visione d'insieme :: Ricomposizione dei pezzi :: Dare un senso alle cose", + "streaming": "Streaming :: Invio risposta :: Consegna risposta :: Trasmissione :: Trasmissione risultati :: Flusso verso di te :: In arrivo :: In arrivo!", + "scrubbingPIIData": "Pulizia dati PII :: Protezione privacy :: Rimozione info personali :: Anonimizzazione dati :: Protezione segreti :: Modalità privacy attiva :: Redazione dati sensibili :: Navigazione in incognito", + "synthesizingQuery": "Sintesi query per migliori risultati :: Ottimizzazione domanda :: Miglioramento query :: Affinamento termini di ricerca :: Rifinitura richiesta :: Ottimizzazione domanda :: Creazione query perfetta :: Far brillare le tue parole", + "fetchingLiveContexts": "Recupero contesti live :: Raccolta dati in tempo reale :: Estrazione nuovi insight :: Sincronizzazione con fonti live :: Accesso al flusso dati :: Raccolta info attuali :: Aggiornamento feed contesto :: Raccolta aggiornamenti live :: Connessione al polso" + }, + "progress": { + "initializing": "Inizializzazione..." + }, + "add": "Aggiungi", + "easyAccess": { + "title": "Accesso Facile", + "quickActions": "Azioni Rapide", + "shortcuts": "Accesso Rapido", + "addToEasyAccess": "Aggiungi ad Accesso Rapido", + "removeFromEasyAccess": "Rimuovi da Accesso Rapido", + "resetToDefaults": "Ripristina predefiniti", + "noItems": "Nessuna scorciatoia ancora" + }, + "actionBar": { + "expandGroup": "Espandi {group}", + "collapseGroup": "Comprimi {group}", + "pinActionsHint": "Doppio clic per fissare", + "unpinActionsHint": "Doppio clic per sbloccare", + "toggleActions": "Alterna azioni", + "showExtraAddOns": "Mostra componenti extra", + "hideExtraAddOns": "Nascondi componenti extra", + "groups": { + "model": "Modello & Prompt", + "data": "Dati & Conoscenza", + "tools": "Strumenti & Persona" + } + }, + "unauthorized": "Non autorizzato", + "valid": "Valido", + "invalid": "Non valido", + "done": "Fatto!", + "confirm": "Conferma", + "shareWithSyncedSplits": "Condividi con split sincronizzati", + "source": "Fonte | Fonti", + "groundingSources": "Fonti di base", + "manage": "Gestisci", + "chat": "Chat | Chat", + "advancedOptions": "Opzioni Avanzate", + "duplicate": "Duplica", + "manageItem": "@:gestisci {item}", + "success": "Successo!", + "notes": "Note", + "viewNotes": "Visualizza Note", + "error": "Errore!", + "warning": "Avviso", + "authorized": "Autorizzato", + "notAuthorized": "Non autorizzato", + "authorize": "Autorizza", + "reauthorize": "Riautorizza", + "deauthorize": "Rimuovi autorizzazione", + "failedToDelete": "Eliminazione fallita", + "failedToSave": "Salvataggio fallito", + "failedToUpdate": "Aggiornamento fallito", + "updatedSuccess": "aggiornato.", + "applyAndShareWithSyncedSplits": "Applica e condividi con split sincronizzati", + "clickToEdit": "Clicca per modificare", + "clickToAddSystemPrompt": "Clicca per aggiungere @:systemPrompt", + "pause": "Pausa", + "resume": "Riprendi", + "retry": "Riprova", + "stop": "Ferma", + "run": "Esegui | Esecuzioni", + "rerun": "Riesegui", + "remove": "Rimuovi", + "skip": "Salta", + "unskip": "Annulla salto", + "startImporting": "Inizia Importazione", + "new": "Nuovo", + "entry": "Voce | Voci", + "import": "Importa", + "connect": "Connetti", + "disconnect": "Disconnetti", + "reconnect": "Riconnetti", + "selectTargetFolder": "Seleziona Cartella Destinazione", + "createNewFolderForImport": "Crea nuova cartella per elementi importati", + "newFolderName": "Nome nuova cartella", + "remote": "Remoto", + "local": "Locale", + "strength": "Forza | Punti di forza", + "provider": "Fornitore", + "capability": "{count} Capacità | {count} Capacità", + "preset": "Preimpostazione | Preimpostazioni", + "saveAsPreset": "Salva come @:preset", + "append": "Aggiungi", + "prepend": "Preponi", + "replace": "Sostituisci", + "description": "Descrizione", + "mode": "Modalità", + "addOns": "Componenti aggiuntivi", + "user": "Utente", + "assistant": "Assistente", + "assistantMessage": "@:assistant @:message.title", + "connectionInfo": "Info Connessione", + "export": "Esporta", + "exportOptions": "Opzioni di Esportazione", + "chooseFile": "Scegli File", + "purpose": "Scopo", + "download": "Scarica", + "downloads": "Download", + "downloadAsJson": "Scarica come JSON", + "install": "Installa", + "installed": "Installato", + "modified": "Modificato", + "created": "Creato", + "minimize": "Minimizza", + "status": "Stato", + "type": "Tipo", + "yes": "Sì", + "fileSize": "Dimensione File", + "size": "Dimensione", + "likes": "Mi piace | Mi piace", + "cancelled": "Annullato", + "parameterSize": "Parametro @:size", + "quantization": "Quantizzazione", + "quantizationLevel": "@:Livello Quantizzazione", + "contextSize": "Dimensione Contesto", + "defaultToModelMax": "Predefinito al massimo del modello", + "llamaCppContextSizeDescription": "Numero massimo di token elaborati dal modello in una volta. Imposta a 0 per usare il massimo del modello. Valori più grandi aumentano l'uso della memoria. Questo valore viene salvato globalmente per modello con LLaMa.cpp. Il contesto è condiviso equamente tra il numero di richieste concorrenti impostate tramite le impostazioni del servizio LLaMa.cpp.", + "truncationStrategy": { + "truncateMiddle": "Tronca Centro", + "truncateOld": "Tronca Vecchio", + "none": "Nessuna" + }, + "truncationStrategyDescription": "Come gestire i messaggi quando si raggiunge il limite di contesto.", + "storage": "Archiviazione", + "params": "Param", + "arch": "Arch", + "filter": "Filtro", + "treeControls": { + "title": "Ordina e Visualizza", + "searchPlaceholder": "Cerca...", + "clear": "Ripristina", + "foldersFirst": "Cartelle prima", + "itemsFirst": "Elementi prima", + "sort": { + "none": "Nessuno", + "name": "Nome", + "title": "Titolo", + "created": "Creato", + "updated": "Aggiornato", + "lastUsed": "Ultimo uso", + "ascending": "Ascendente", + "descending": "Decrescente" + }, + "visibility": { + "label": "Visibilità", + "empty": { + "show": "Mostra cartelle vuote", + "hide": "Nascondi cartelle vuote" + }, + "counts": { + "show": "Mostra conteggio elementi", + "hide": "Nascondi conteggio elementi" + }, + "recents": { + "show": "Mostra recenti", + "hide": "Nascondi recenti" + }, + "archive": { + "show": "Mostra archiviati", + "hide": "Nascondi archiviati" + } + } + }, + "noSearchResults": "Nessun {item} trovato per questa ricerca", + "loading": "Caricamento", + "invite": "Invita", + "refresh": "Aggiorna", + "email": "Email", + "role": "Ruolo", + "admin": "Admin", + "owner": "Proprietario", + "inActive": "Inattivo", + "argument": "Argomento|Argomenti", + "abort": "Aborta", + "send": "Invia", + "remindMeLater": "Ricordamelo più tardi", + "text": "Testo", + "folders": "Cartelle", + "folder": "Cartella | @:folders", + "title": "Titolo", + "search": { + "label": "Cerca", + "scope": { + "active": "Attivo", + "archived": "Archiviato", + "all": "Tutti" + } + }, + "fuzzySearch": { + "enabled": "Ricerca fuzzy abilitata", + "disabled": "Ricerca fuzzy disabilitata", + "enabledHint": "Ricerca Fuzzy Abilitata. Clicca per alternare", + "disabledHint": "Ricerca Fuzzy Disabilitata. Clicca per alternare" + }, + "none": "Nessuno", + "change": "Cambia", + "expandAllProjects": "Espandi tutti i progetti", + "collapseAllProjects": "Comprimi tutti i progetti", + "expandAllFolders": "Espandi tutte le cartelle", + "collapseAllFolders": "Comprimi tutte le cartelle", + "expand": "Espandi", + "collapse": "Comprimi", + "clone": { + "title": "Clona {item}", + "successMessage": { + "detail": "{item} clonato" + }, + "errorMessage": { + "detail": "Errore durante la clonazione di {item}" + } + }, + "notesPurposePlaceholder": "Aggiungi note per aiutarti a ricordare lo scopo di questo {item}; queste saranno visibili anche ai modelli che possono fornire maggiori dettagli su come usare questo {item} (@:optional)", + "endpointTestResults": "Risultati Test Endpoint", + "testConnection": "Test Connessione", + "emptyPlaceholder": "Nessun {item} trovato", + "selectItem": "@:seleziona {item}", + "selectedItemLabel": "{count} {title}", + "feature": "Funzione|Funzioni", + "raw": "Greggio", + "rawOutput": "Output Greggio", + "property": "Proprietà|Proprietà", + "configure": "Configura", + "customInstructions": "Istruzioni Personalizzate", + "context": "Contesto | Contesti", + "path": "Percorso | Percorsi", + "project": { + "title": "Progetto | Progetti", + "createRootProject": "Nuovo Progetto alla Radice", + "projectName": "Nome Progetto", + "projectDescription": "Descrizione Progetto", + "defaultModel": "Modello Predefinito", + "customInstructions": "Istruzioni Personalizzate", + "addChildProject": "Aggiungi Progetto Figlio", + "promoteToRoot": { + "title": "Sposta Cartella alla Radice", + "errorMessage": { + "detail": "Errore durante lo spostamento del progetto alla radice." + }, + "successMessage": { + "detail": "Il progetto è stato spostato con successo alla radice." + } + }, + "deleteProject": "Elimina Progetto", + "setDefaultForNewConversations": "Imposta come Progetto Predefinito", + "unsetDefaultForNewConversations": "Rimuovi Progetto Predefinito", + "orphanageProjectName": "Varie", + "includeProjectContext": "Includi Contesto Progetto", + "deleteConfirmation": { + "header": "Elimina Progetto", + "message": "Sei sicuro di voler eliminare {projectName} e tutte le sue conversazioni?", + "rejectLabel": "@:annulla", + "acceptLabel": "@:elimina", + "successMessage": { + "detail": "Progetto eliminato" + } + }, + "deleteAllConversations": { + "title": "Elimina Tutte le Conversazioni", + "description": "Sei sicuro di voler eliminare tutte le conversazioni in {projectName}? Questa azione non può essere annullata.", + "successMessage": { + "detail": "Eliminata {count} conversazione | Eliminate {count} conversazioni", + "empty": "Nessuna conversazione da eliminare" + }, + "errorMessage": { + "detail": "Eliminazione conversazioni fallita" + } + }, + "archiveAllConversations": { + "title": "Archivia Tutte le Conversazioni", + "description": "Archiviare tutte le conversazioni in {projectName}? Verranno spostate nell'Archivio e potranno essere ripristinate in seguito.", + "confirmLabel": "Archivia Tutto", + "successMessage": { + "detail": "Archiviata {count} conversazione | Archiviate {count} conversazioni" + }, + "errorMessage": { + "detail": "Archiviazione conversazioni fallita" + } + }, + "projectForm": { + "addFiles": "Aggiungi File", + "editProject": "Modifica Progetto", + "createNewProject": "Nuovo Progetto", + "dragAndDropFiles": "Trascina e rilascia i file che verranno allegati a ogni conversazione in questo progetto.", + "successMessage": { + "createDetail": "Progetto creato", + "createDetailHidden": "Progetto creato! Al momento è nascosto perché è vuoto. Clicca il pulsante sotto per mostrarlo ora, o apparirà automaticamente quando aggiungerai la tua prima conversazione.", + "updateDetail": "Progetto aggiornato" + }, + "errorMessage": { + "createDetail": "Creazione Progetto fallita", + "updateDetail": "Aggiornamento Progetto fallito" + } + }, + "emptyProjectVisibilityToast": { + "showButton": "Mostra Progetti Vuoti", + "enabled": "I progetti vuoti sono ora visibili" + }, + "startNewToGetStarted": "Inizia una Nuova Conversazione per Iniziare", + "importConversation": { + "pointsToConsider": { + "title": "Punti da Considerare", + "importFormats": "Importa i file utilizzando conversazioni esportate valide in formato JSON o i file .mstyconv compressi.", + "jsonAttachments": "Utilizzando il formato JSON, gli allegati non verranno importati se non sono già presenti.", + "zipAttachments": "Utilizzando il formato ZIP, gli allegati inclusi nello ZIP verranno importati e collegati alla conversazione." + }, + "title": "Importa @:conversation.title", + "invalidConversationFile": "File conversazione non valido. Seleziona un file JSON o ZIP valido.", + "description": "Scegli un file conversazione da importare in {projectName}. Formati supportati: JSON, ZIP.", + "successMessage": { + "detail": "Conversazione importata con successo" + }, + "errorMessage": { + "detail": "Importazione conversazione fallita" + } + } + }, + "selectedModel": "Modello selezionato", + "endpoint": "Endpoint", + "authToken": "Token di Autenticazione", + "before": "Prima", + "after": "Dopo", + "method": "Metodo", + "httpMethod": "HTTP @:method", + "get": "Get", + "post": "Post", + "presetAlreadyExistsMessage": "@:preset con lo stesso nome esiste già.", + "duplicatePresetOverwriteMessage": "@:presetAlreadyExistsMessage Se salvi, sovrascriverà la preimpostazione esistente.", + "noPropsAvailable": "Nessun {propsName} disponibile. Aggiungine uno personalizzato.", + "localAI": "@:IA locale", + "branch": { + "clickToLabel": "Clicca per aggiungere un'etichetta", + "labelPlaceholder": "Etichetta ramo (max 30 car.)", + "labelBranch": "Etichetta Ramo...", + "labelDialogTitle": "Etichetta Ramo", + "noLabel": "Nessuna etichetta", + "clickForOptions": "Clicca per più opzioni", + "timeline": { + "title": "Esplora Rami", + "viewAll": "Esplora Rami...", + "branchNumber": "Ramo {n}", + "current": "Corrente", + "branches": "Rami", + "compare": "Confronta" + }, + "diff": { + "title": "Confronta Rami", + "compare": "Confronta rami", + "exitCompare": "Esci dalla modalità confronto", + "selectFirst": "Seleziona il primo ramo da confrontare", + "selectSecond": "Seleziona il secondo ramo da confrontare", + "selected": "Selezionato", + "identical": "Il contenuto è identico", + "leftBranch": "Primo ramo", + "rightBranch": "Secondo ramo", + "selectBranch": "Seleziona ramo", + "selectBranchesToCompare": "Seleziona due rami sopra per confrontare il loro contenuto", + "switchToBranch": "Passa a {name}", + "viewDiff": "Diff", + "viewSideBySide": "Affiancati" + } + }, + "conversation": { + "title": "Conversazione | Conversazioni", + "conversationTitle": "Titolo @:conversation.title", + "contextShieldErrorMessage": { + "summary": "Generazione riassunto contesto fallita.", + "detail": "Controlla Impostazioni > Notifiche per maggiori dettagli." + }, + "sendErrorMessage": { + "summary": "Invio messaggio fallito.", + "detail": "Controlla Impostazioni > Notifiche per maggiori dettagli." + }, + "contextSizeError": { + "summary": "Il messaggio supera il limite di contesto", + "detail": "Il tuo messaggio con i risultati della ricerca e il contesto è troppo grande per questo modello. Prova: aumentando la dimensione del contesto dai parametri del modello, riducendo i risultati di ricerca, cancellando la cronologia della conversazione, usando un modello con contesto più ampio (16k+) o accorciando le tue istruzioni di sistema." + }, + "deleteConversation": "Elimina @:conversation.title", + "addNewConversation": "Aggiungi Nuova @:conversation.title", + "newConversation": "Nuova @:conversation.title", + "treeControls": { + "title": "Ordina e Visualizza", + "projectSort": { + "none": "Nessuno", + "name": "Nome", + "created": "Creato", + "ascending": "Ascendente", + "descending": "Decrescente", + "projectsFirst": "Progetti prima" + }, + "conversationSort": { + "none": "Nessuno", + "title": "Titolo", + "created": "Creato", + "lastActivity": "Ultima attività", + "ascending": "Ascendente", + "descending": "Decrescente" + }, + "priority": { + "none": "Nessuna priorità", + "pinned": "@:pinned prima", + "bookmarked": "@:bookmarked prima" + }, + "visibility": { + "label": "Visibilità", + "recents": { + "show": "Mostra Recenti & @:pinned", + "hide": "Nascondi Recenti & @:pinned" + }, + "archive": { + "show": "Mostra Archivio", + "hide": "Nascondi Archivio" + }, + "empty": { + "show": "Mostra progetti vuoti", + "hide": "Nascondi progetti vuoti" + }, + "counts": { + "show": "Mostra conteggio conversazioni", + "hide": "Nascondi conteggio conversazioni" + } + }, + "clear": "Ripristina" + }, + "promptPlaceHolder": { + "normal": { + "focused": "Premi {trigger} per comandi rapidi OPPURE inizia a scrivere...", + "unfocused": "Premi / per focalizzarti qui e iniziare a scrivere" + } + }, + "deleteConfirmation": { + "header": "Elimina @:conversation.title", + "message": "Sei sicuro di voler eliminare la conversazione selezionata e tutti i suoi split di chat? | Sei sicuro di voler eliminare le conversazioni selezionate e tutti i loro split di chat?", + "rejectLabel": "Annulla", + "acceptLabel": "Elimina", + "successMessage": { + "detail": "@:conversation.title eliminata" + }, + "errorMessage": { + "detail": "Eliminazione @:conversation.title fallita" + } + }, + "convertToChat": { + "title": "Converti in Chat", + "successMessage": { + "detail": "@:conversation.title convertita in Chat" + }, + "errorMessage": { + "detail": "Conversione in Chat fallita" + } + }, + "convertToForgeCanvas": { + "title": "Converti in @:forge.forgeCanvas", + "successMessage": { + "detail": "@:conversation.title convertita in @:forge.forgeCanvas" + }, + "errorMessage": { + "detail": "Conversione in @:forge.forgeCanvas fallita" + } + }, + "cloneAncestorsSuccess": { + "detail": "Messaggi clonati con successo nel nuovo split" + }, + "cloneAncestorsError": { + "detail": "Errore durante la clonazione dei messaggi nel nuovo split" + }, + "cloneAncestorsToNewConversationSuccess": { + "detail": "Messaggi clonati con successo nella nuova conversazione" + }, + "cloneAncestorsToNewConversationError": { + "detail": "Errore durante la clonazione dei messaggi nella nuova conversazione" + }, + "archive": { + "groupLabel": "Archivio", + "orphanProject": "Conversazione Orfana", + "bannerMessage": "Questa conversazione è archiviata. Archiviala per continuare la discussione.", + "bannerHint": "Inviare un nuovo messaggio sarchivierà automaticamente.", + "unarchiveAction": "Sarchivia", + "autoUnarchivedToast": "Conversazione sarchiviata automaticamente.", + "archivedToast": "{count} conversazione archiviata | {count} conversazioni archiviate", + "unarchivedToast": "{count} conversazione ripristinata | {count} conversazioni ripristinate", + "archiveSingle": "Archivia", + "unarchiveSingle": "Sarchivia", + "unload": "Scarica elementi archiviati", + "unloaded": "Elementi archiviati scaricati", + "error": "Impossibile aggiornare lo stato dell'archivio. Riprova.", + "archiveMultiple": "Archivia {item}" + }, + "conversationNotFound": "Conversazione non trovata", + "conversationStreaming": { + "title": "Streaming", + "detail": "La conversazione è attualmente in streaming. Attendi la fine prima di clonare." + } + }, + "conversationActions": { + "exportConversation": { + "title": "Esporta @:conversation.title", + "json": { + "title": "Come JSON", + "errorMessage": "Esportazione conversazione come JSON fallita", + "successMessage": "Conversazione esportata con successo come JSON" + }, + "zip": { + "title": "Come ZIP", + "errorMessage": "Esportazione conversazione come ZIP fallita", + "successMessage": "Conversazione esportata con successo come ZIP" + } + }, + "showAllSplits": "Mostra tutti gli Split", + "saveSplitsAs": "Salva Split come", + "newSingleSplitChat": "Nuova Chat Single Split", + "splitPreset": "Preimpostazione Split | Preimpostazioni Split", + "splitPresetForm": { + "saveTitle": "Salva Split come @:preset", + "editTitle": "Modifica Split @:preset {presetName}", + "presetName": "Nome @:preset", + "presetOptions": "Opzioni @:preset", + "presetOptionsPlaceholder": "@:seleziona Opzioni @:preset", + "savePreset": "Salva @:preset", + "successMessage": { + "saveDetail": "Split @:preset aggiunto", + "editDetail": "Split @:preset aggiornato" + }, + "errorMessage": { + "saveDetail": "Salvataggio Split @:preset fallito" + } + }, + "deleteSplitPresetConfirmation": { + "header": "Elimina Split @:preset", + "message": "Sei sicuro di voler eliminare {splitPresetName}? ", + "successMessage": { + "detail": "Split @:preset eliminato" + } + }, + "compactMode": "Modalità Compatta", + "enableCompactMode": "@:abilita @:conversationActions.compactMode", + "disableCompactMode": "@:disabilita @:conversationActions.compactMode", + "modernLayout": "Layout Moderno", + "enableModernLayout": "@:abilita @:conversationActions.modernLayout", + "disableModernLayout": "@:disabilita @:conversationActions.modernLayout", + "toggleAlwaysOnTop": "Sempre in primo piano", + "splitWidths": { + "title": "Larghezza Split", + "slim": "Sottile", + "balanced": "Equilibrato", + "roomy": "Ampio", + "spacious": "Spazioso", + "full": "Intero" + } + }, + "responseConfiguration": { + "title": "Configurazione Risposta", + "selectPresetPlaceholder": "Seleziona una preimpostazione...", + "saveAsPreset": "Salva come Preimpostazione", + "commonSettings": { + "title": "Impostazioni Comuni" + }, + "advancedParameters": { + "title": "Parametri Avanzati", + "description": "Oggetto JSON per parametri avanzati del modello", + "placeholder": "" + }, + "providerOptions": { + "title": "Opzioni Fornitore", + "description": "Configurazione specifica per il fornitore", + "placeholder": "" + }, + "thinkingConfig": { + "title": "Configurazione Pensiero", + "description": "Configurazione pensiero esteso", + "notice": "Il fornitore potrebbe ignorare o onorare parzialmente le impostazioni di pensiero" + }, + "promptCaching": { + "label": "Caching Prompt", + "helper": "Memorizza il contesto ripetuto per ridurre costi e latenza. Richiede un numero minimo di token per essere efficace.", + "ttl": { + "default": "Predefinito (5 min)", + "5m": "5 minuti", + "1h": "1 ora" + } + }, + "customParameters": { + "title": "Parametri Personalizzati", + "helper": "Il fornitore potrebbe ignorare o onorare parzialmente questi", + "keyPlaceholder": "custom_param", + "valuePlaceholder": "valore", + "deleteConfirm": { + "title": "Elimina Parametro", + "message": "Eliminare il parametro personalizzato \"{param}\"?" + }, + "errors": { + "missingKey": "La chiave del parametro è obbligatoria.", + "reserved": "Questa chiave è riservata per i parametri integrati.", + "duplicate": "Un parametro con questa chiave esiste già." + } + }, + "json": { + "invalid": "JSON non valido" + }, + "tooltips": { + "constraintMode": "Modalità Vincolo ON", + "freeformMode": "Modalità Libera ON - nessun limite min/max" + }, + "expandOtherOptions": "Espandi per altre opzioni", + "collapseOtherOptions": "Comprimi altre opzioni", + "parameters": { + "temperature": { + "label": "Temperatura", + "helper": "Controlla la casualità (0=focalizzato, 2=creativo)" + }, + "topP": { + "label": "Top P", + "helper": "Massa di probabilità da mantenere durante il nucleus sampling" + }, + "topK": { + "label": "Top K", + "helper": "Limita la selezione dei token ai primi K token" + }, + "maxOutputTokens": { + "label": "Max Token Output", + "helper": "Massimo token per le risposte", + "helperWithLimit": "Massimo token per le risposte (limite {0})" + }, + "numCtx": { + "label": "Dimensione Finestra Contesto", + "helper": "Massimo token accettati nel prompt", + "helperWithLimit": "Massimo token accettati nel prompt (limite {0})", + "llamaCppHint": "Imposta a 0 per usare il massimo del contesto del modello" + }, + "presencePenalty": { + "label": "Presenza Penalty", + "helper": "Penalizza i nuovi token in base alla loro presenza nel testo finora" + }, + "frequencyPenalty": { + "label": "Frequenza Penalty", + "helper": "Penalizza i token in base alla loro frequenza nel testo finora" + }, + "repeatPenalty": { + "label": "Ripetizione Penalty", + "helper": "Discourage la ripetizione di frasi" + }, + "repeatLastN": { + "label": "Ripeti Ultimi N", + "helper": "Finestra di contesto per l'applicazione della ripetizione penalty" + }, + "minP": { + "label": "Min P", + "helper": "Probabilità cumulativa minima per la selezione dei token" + }, + "mirostat": { + "label": "Mirostat", + "helper": "Stabilizza la perplessità dinamicamente", + "options": { + "off": "Off", + "v1": "Mirostat 1.0", + "v2": "Mirostat 2.0" + } + }, + "mirostatTau": { + "label": "Mirostat Tau", + "helper": "Livello di sorpresa target (più basso = più sicuro)" + }, + "mirostatEta": { + "label": "Mirostat Eta", + "helper": "Tasso di apprendimento per l'aggiustamento di Mirostat" + }, + "numGpu": { + "label": "Layer GPU", + "helper": "Numero di layer da spostare sulla GPU" + }, + "numThread": { + "label": "Thread", + "helper": "Thread CPU da usare per la generazione" + } + } + }, + "modelParams": { + "params": "Param", + "title": "Parametri Modello", + "advancedParams": "Parametri Avanzati", + "providerOptions": "Opzioni Fornitore", + "maxTokens": "Max Token Output (Legacy)", + "maxOutputTokens": "Max Token Output", + "temperature": "Temperatura", + "topP": "Top P", + "presencePenalty": "Presenza Penalty", + "frequencyPenalty": "Frequenza Penalty", + "numCtx": "Finestra Contesto @:size", + "numGpu": "Numero Layer GPU", + "selectPlaceholder": "@:seleziona o inserisci un parametro", + "selectPresetPlaceholder": "@:seleziona una @:preset", + "saveAsPreset": "Salva come @:preset", + "addParameter": "Aggiungi Nuovo Parametro", + "extraParams": "Extra @:params", + "applyAndSaveAsDefault": "Applica e Salva come Predefinito Modello", + "savePresetForm": { + "title": "Salva @:modelParams.params come Preimpostazione", + "errorMessage": { + "detail": "Salvataggio preimpostazione parametri fallito." + }, + "successMessage": { + "detail": "Preimpostazione @:modelParams.params salvata." + } + }, + "deletePresetConfirm": { + "title": "Elimina @:preset", + "message": "Sei sicuro di voler eliminare {presetName}?", + "errorMessage": { + "detail": "Eliminazione preimpostazione parametri fallita." + }, + "successMessage": { + "detail": "Preimpostazione @:modelParams.params eliminata." + } + }, + "thinkingEffort": { + "label": "Sforzo di Pensiero", + "minimal": "Pensiero Minimo", + "light": "Pensiero Leggero", + "moderate": "Pensiero Moderato", + "deep": "Pensiero Profondo", + "veryDeep": "Pensiero Molto Profondo", + "default": "Predefinito", + "none": "Nessuno", + "dynamic": "Dinamico", + "exclude": "Escludi" + } + }, + "chatSplitActions": { + "title": "Opzioni Split", + "addSplitChat": "Aggiungi Split Chat", + "hideSplit": "Nascondi Split", + "copySplitToNewConversation": "Copia Split in Nuova Conversazione", + "moveSplitToNewConversation": "Sposta Split in Nuova Conversazione", + "deleteSplit": "Elimina Split", + "removeSplit": "Rimuovi Split", + "copySessionId": "Copia ID Sessione", + "sessionIdCopied": "ID Sessione copiato negli appunti", + "reloadFromAgent": "Ricarica da Agent", + "reloadConfirmation": { + "header": "Ricarica da Agent", + "message": "Sei sicuro di voler ricaricare questo split dall'agent? Questo scarterà lo stato attuale e recupererà i dati più recenti.", + "acceptLabel": "Ricarica" + }, + "splitRemoved": "Split rimosso", + "splitReset": "Split ripristinato", + "copySplitToNewConversationSuccess": { + "detail": "Split copiato in nuova conversazione" + }, + "moveSplitToNewConversationSuccess": { + "detail": "Split spostato in nuova conversazione" + }, + "copySplitToNewConversationError": { + "detail": "Copia split in nuova conversazione fallita" + }, + "moveSplitToNewConversationError": { + "detail": "Spostamento split in nuova conversazione fallito" + }, + "exportOrCopyChat": { + "exportChat": "Esporta Chat", + "copyChat": "Copia Chat", + "activeBranchAsJson": "Ramo Attivo come JSON", + "activeBranchAsMarkdown": "Ramo Attivo come Markdown", + "allBranchesAsJson": "Tutti i Rami come JSON", + "successMessage": "Chat {action} con successo come {format}", + "action": { + "export": "esportata", + "copy": "copiata" + } + }, + "showAllHiddenMessages": { + "title": "Mostra tutti i messaggi nascosti", + "successMessage": { + "detail": "Tutti i messaggi nascosti sono ora visibili" + } + }, + "deleteConfirmation": { + "header": "Elimina Split", + "message": "Sei sicuro di voler eliminare questo Split?", + "rejectLabel": "@:annulla", + "acceptLabel": "@:elimina" + } + }, + "message": { + "title": "Messaggio|Messaggi", + "currentMessageAndDescendants": "Messaggio e Discendenti", + "sendOnEnter": "Invia con Invio", + "sendModifier": { + "label": "Modificatore Invio", + "none": "Solo Invio", + "shift": "Shift", + "alt": "Alt", + "ctrl": "Ctrl", + "meta": "Meta" + }, + "resendUserMessage": "Reinvia messaggio utente", + "sendAsAssistantMessage": "Invia come Messaggio @:assistant", + "sendAsAssistantMessageHelp": "Inviare un messaggio come \"Assistente\" ti permette di dare forma alla conversazione aggiungendo tu stesso le risposte dell'IA. L'IA continuerà come se avesse scritto quel messaggio. Utile per fornire contesto o guidare le risposte.", + "sentAsAssistantBadge": "Inviato come Messaggio Assistente", + "manuallyEdited": "Modificato Manualmente", + "stopGeneration": "Ferma", + "renderingActions": { + "bookmark": "@:bookmark Messaggio | @:bookmark Messaggi", + "removeBookmark": "Rimuovi @:bookmark | Rimuovi Segnalibri", + "deleteMessage": "Elimina Messaggio | Elimina Messaggi", + "removeMessage": "Rimuovi Messaggio", + "regenerateAssistantMessage": "Rigenera messaggio assistente come nuovo ramo", + "continueGeneration": "@:continua Generazione", + "useAsPromptInNewSplit": "Usa come prompt in nuovo split", + "foldUp": "Comprimi Messaggi Sopra", + "unfold": "Espandi Messaggi Sopra", + "addToUserPersonaMemory": "Aggiungi alla Memoria Persona Utente", + "cloneAncestorsToNewSplit": "Clona con Antenati in Nuovo Split", + "cloneAncestorsToNewConversation": "Clona con Antenati in Nuova Conversazione", + "extraActions": "Azioni Extra" + }, + "noModelSelectedErrorMessage": { + "detail": "Nessun modello selezionato. Seleziona un modello per inviare un messaggio" + }, + "currentMessageDeleteConfirmation": { + "header": "Elimina Messaggio", + "message": "Sei sicuro di voler eliminare questo messaggio?" + }, + "currentMessageAndDescendantsDeleteConfirmation": { + "header": "Elimina Messaggio e i suoi discendenti", + "message": "Sei sicuro di voler eliminare questo messaggio e tutti i suoi discendenti?" + } + }, + "slashCommands": { + "title": "Comandi Rapidi", + "noMatches": "Nessun comando corrispondente", + "hint": "Digita \\ seguito dal comando o alias", + "executed": { + "regenerate": "Rigenerazione messaggio...", + "shield": "Scudo contesto applicato", + "compress": "Compressione con scudo...", + "bookmark": "Messaggio @:bookmarked", + "copy": "Copiato negli appunti", + "continue": "Continuazione generazione...", + "resend": "Reinvio messaggio..." + } + }, + "urlEndpoint": "Endpoint URL", + "giveUniqueNamePlaceholder": "Assegna un nome unico", + "duplicateName": "Nome {item} duplicato o non valido. Inserisci un nome unico.", + "manageData": { + "firstBackupReminder": "Non hai effettuato il backup dei dati, vuoi esportare i tuoi dati per il backup?", + "scheduledBackupReminder": "Sono passate 24 ore dal tuo ultimo backup, vuoi esportare i tuoi dati per il backup?", + "nonPersistentStorage": "Lo storage potrebbe essere cancellato dal browser in caso di pressione sulla memoria. Raccomandiamo di eseguire regolarmente il backup dei dati.", + "exportData": "Esporta @:data", + "clearData": "Cancella @:data", + "restoreData": "Ripristina @:data", + "dragAndDropExportedData": "Trascina e rilascia il backup dei tuoi dati per ripristinarlo.", + "restoreDataWarning": "Il ripristino da un file di backup sostituirà tutti i dati esistenti. Raccomandiamo di esportare prima un backup.", + "exportErrorMessage": { + "detail": "Esportazione dati fallita" + }, + "backupData": "Backup @:data", + "exportSuccessMessage": { + "detail": "@:data esportati" + }, + "clearErrorMessage": { + "detail": "Cancellazione dati fallita" + }, + "clearSuccessMessage": { + "detail": "@:data è stato cancellato" + }, + "confirmationActionPlaceholder": "Inserisci '{string}' qui", + "proceedWithConfirmationAction": "Inserisci '{string}' qui sotto per procedere", + "invalidConfirmationString": { + "summary": "@:warning", + "detail": "Conferma non valida. Inserisci '{string}' per procedere." + }, + "clearDataConfirmation": { + "header": "Cancella @:data", + "message": "Sei sicuro di voler cancellare tutti i dati? Questa azione non può essere annullata.", + "rejectLabel": "Annulla", + "acceptLabel": "Cancella" + }, + "restoreDataConfirmation": { + "fileNotSelectedWarning": { + "summary": "@:warning", + "message": "Seleziona un file da cui ripristinare" + }, + "header": "Ripristina @:data", + "message": "Sei sicuro di voler ripristinare tutti i dati? Questa azione sostituirà tutti i dati esistenti e non può essere annullata. Raccomandiamo di esportare prima un backup.", + "rejectLabel": "Annulla", + "acceptLabel": "Ripristina" + }, + "importDataSuccessMessage": { + "detail": "@:data importati" + }, + "importDataErrorMessage": { + "detail": "Importazione @:data fallita" + } + }, + "setupItem": { + "label": "Configura {item}", + "success": "Configurazione {item} completata", + "failure": "Impossibile configurare {item}" + }, + "onboard": { + "greeting": "Benvenuto in Msty Studio!", + "getStarted": "Avremmo bisogno di almeno un fornitore di modelli per iniziare.", + "desktop": { + "greeting": "Benvenuto in Msty!", + "getStarted": "Come vorresti iniziare?", + "customLocation": { + "title": "Hai modelli Ollama/Msty?", + "titleMLX": "Hai modelli MLX?", + "titleLlamaCpp": "Hai modelli LLaMA.cpp?", + "description": "Puoi usare i tuoi modelli Ollama o Msty esistenti direttamente, se presenti, o specificare una posizione personalizzata. Nota: useremo comunque il nostro servizio per eseguire tali modelli.", + "descriptionMLX": "Se non hai ancora modelli MLX, puoi specificare una posizione personalizzata dove desideri memorizzarli.", + "descriptionMLXWithSwama": "Abbiamo trovato modelli MLX nella cache del tuo Hugging Face Hub! Puoi usarli direttamente o specificare una posizione personalizzata.", + "descriptionLlamaCpp": "Specifica una posizione personalizzata dove desideri memorizzare i tuoi modelli GGUF per LLaMA.cpp.", + "noLocationSet": "Nessuna posizione impostata", + "setYourOwn": "Imposta la tua", + "notAvailableForMLX": "Le posizioni personalizzate dei modelli non sono disponibili per MLX", + "placeholder": "Inserisci il percorso personalizzato dei modelli" + }, + "setupLocalAI": { + "description": "Per iniziare, verrà scaricato {modelName}. Puoi scegliere un modello diverso.", + "pros": { + "item1": "Usa modelli come DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, ecc.", + "item2": "Usa offline e mantieni privati i tuoi @:data", + "item3": "I modelli sono gratuiti da scaricare e usare", + "item4": "Installa e usa modelli specializzati" + }, + "cons": { + "item1": "Richiede spazio di archiviazione e memoria extra" + }, + "successMessage": { + "summary": "Tutto qui!", + "detail": "Ora puoi iniziare a chattare con i tuoi modelli in modo privato e sicuro." + }, + "errorMessage": { + "summary": "Errore durante la configurazione di @:localAIService", + "detail": "Impossibile configurare @:localAIService{'.'} Controlla i log per maggiori dettagli. {errorMessage}", + "epermDetail": "C'è stato un problema di permessi durante la configurazione dell'IA locale. Puoi eseguire l'app come amministratore (non raccomandato) o considerare di installare l'app solo per un singolo utente (raccomandato).", + "abortDetail": "{errorMessage} Considera l'installazione dell'IA locale dai file di archivio se continui a ricevere questo errore. Visita https://docs.msty.studio/getting-started/onboarding" + } + }, + "setupMLX": { + "errorMessage": { + "summary": "Errore durante la configurazione del servizio MLX", + "detail": "Impossibile configurare il servizio MLX. Controlla i log per maggiori dettagli. {errorMessage}" + }, + "description": "Per iniziare, verrà scaricato {modelName}. MLX è il framework ottimizzato di Apple per Apple Silicon.", + "experimentalInfo": "MLX è attualmente in modalità sperimentale. Potrebbe avere alcune limitazioni e difetti. Segnala qualsiasi problema al team.", + "pros": { + "item1": "Ottimizzato per Apple Silicon (M1, M2, M3, M4)", + "item2": "Uso efficiente della memoria con architettura a memoria unificata", + "item3": "Supporta modelli MLX, SafeTensors e GGUF", + "item4": "Prestazioni native su macOS" + }, + "cons": { + "item1": "Disponibile solo su Mac con Apple Silicon", + "item2": "Selezione di modelli più ridotta rispetto a Ollama" + }, + "successMessage": { + "summary": "Configurazione MLX completata!", + "detail": "Ora puoi usare i modelli MLX con prestazioni ottimali sul tuo Mac." + }, + "progress": { + "checkingCompatibility": "Controllo compatibilità di sistema...", + "downloadingBinary": "Download server MLX...", + "startingService": "Avvio servizio MLX...", + "settingUp": "Configurazione MLX...", + "downloadProgress": "Download Modello: {progress}%" + } + }, + "setupLlamaCpp": { + "experimentalInfo": "Il supporto per LLaMA.cpp è sperimentale e in fase di attivo sviluppo", + "errorMessage": { + "summary": "Errore durante la configurazione del servizio LLaMA.cpp", + "detail": "Impossibile configurare il servizio LLaMA.cpp. Controlla i log per maggiori dettagli. {errorMessage}" + }, + "description": "Per iniziare, verrà scaricato {modelName}. LLaMA.cpp fornisce un'inferenza IA cross-platform efficiente.", + "pros": { + "item1": "Funziona su Windows, macOS e Linux", + "item2": "Supporta accelerazione sia CPU che GPU", + "item3": "Uso efficiente della memoria e inferenza veloce", + "item4": "Compatibile con il formato modello GGUF" + }, + "cons": { + "item1": "Richiede l'applicazione desktop", + "item2": "Le prestazioni dipendono dalla configurazione hardware" + }, + "successMessage": { + "summary": "Configurazione LLaMA.cpp completata!", + "detail": "Ora puoi usare i modelli LLaMA.cpp con prestazioni efficienti sul tuo sistema." + }, + "progress": { + "checkingCompatibility": "Controllo compatibilità di sistema...", + "downloadingBinary": "Download server LLaMA.cpp...", + "startingService": "Avvio servizio LLaMA.cpp...", + "settingUp": "Configurazione LLaMA.cpp...", + "downloadProgress": "Download: {progress}%" + } + }, + "addRemoteModelsProvider": { + "description": "Con la maggior parte dei fornitori online, dovrai ottenere una chiave API dal sito web del fornitore. {findYourKey}", + "findYourKey": "Trova la tua chiave API", + "pros": { + "item1": "Usa OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, ecc.", + "item2": "Inizia senza scaricare modelli", + "item3": "Alcuni vendor forniscono funzioni extra come generazione di immagini, ricerca web, ecc." + }, + "cons": { + "item1": "Richiede una connessione internet per chattare", + "item2": "Potrebbero applicarsi commissioni del fornitore" + } + } + }, + "modelsAvailableCount": "{count} modello disponibile | {count} modelli disponibili", + "modelsAddedCount": "{count} modello aggiunto | {count} modelli aggiunti", + "forgetThisProvider": "Dimentica questo fornitore", + "submitAndContinue": "Andiamo!", + "getSidecar": "Nessuna @:localAI? Ottieni @:remoteToolsConnector.title per la configurazione in 1-click", + "completedWithProvider": { + "summary": "Tutto qui!", + "detail": "Ora sei pronto per chattare con uno dei modelli di {providerName}." + }, + "continueSetup": "Continua configurazione {service}" + }, + "login": { + "enterEmail": "Inserisci la tua email", + "errorMessage": "Email non valida o qualcosa è andato storto. Riprova.", + "successMessage": "Link di accesso inviato a { email }", + "ssoButton": "Accedi con Microsoft Entra ID" + }, + "modelHub": { + "title": "Model Hub", + "activeDownloads": "{count} Download Attivo | {count} Download Attivi", + "languageModelsProviders": { + "title": "Fornitori di Modelli", + "subtitle": "Accedi ai modelli dal cloud o da server remoti.", + "autoFetchModels": "L'elenco dei modelli viene recuperato automaticamente", + "addLanguageModelsProvider": "Aggiungi Fornitore", + "prosAndCons": { + "pros": [ + "Usa OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, ecc.", + "Inizia rapidamente", + "Nessun download richiesto" + ], + "cons": [ + "Richiede connessione internet per chattare", + "Potrebbero applicarsi commissioni del fornitore" + ] + }, + "deleteConfirmation": { + "header": "Elimina Fornitore", + "message": "Sei sicuro di voler eliminare {providerName}?", + "successMessage": { + "detail": "Fornitore eliminato" + }, + "errorMessage": { + "summary": "Errore", + "detail": "Eliminazione fornitore fallita" + } + }, + "syncProviderWithWorkspaceForm": { + "titleNew": "Copia in altro Workspace", + "titleUpdate": "Copia/Sincronizza in altri Workspace", + "descriptionNew": "Copia questo fornitore in uno o più workspace.", + "descriptionUpdate": "Sincronizza questo fornitore in uno o più workspace. Se questo fornitore è stato copiato in precedenza, verrà aggiornato. Altrimenti, verrà aggiunto.", + "selectWorkspaces": "@:seleziona Workspace", + "availableWorkspaces": "Workspace Disponibili" + }, + "providerForm": { + "addTitle": "Aggiungi Fornitore", + "updateTitle": "Aggiorna Fornitore", + "newHeader": "Nuovo Fornitore di Modelli Linguistici", + "editHeader": "Modifica Fornitore di Modelli Linguistici", + "modelsProvider": "Fornitore di Modelli", + "modelId": "ID Modello", + "modelName": "Nome Modello", + "providerName": "Nome Fornitore", + "providerUrl": "URL Fornitore", + "providerToken": "Token Fornitore", + "saveProvider": "Salva Fornitore", + "selectProvider": "@:seleziona Fornitore", + "namePlaceholder": "Assegna un nome (opzionale)", + "selectModels": "@:seleziona Modelli", + "availableModels": "Modelli Disponibili", + "addCustomModel": "Aggiungi Modello Personalizzato", + "inferenceEndpoint": "Endpoint di Inferenza (deve iniziare con http:// o https://)", + "baseURL": "URL Base", + "resourceName": "Nome Risorsa (verrà ignorato se l'URL base è impostato)", + "apiVersion": "API @:version", + "region": "Regione AWS", + "accessKeyId": "Access Key ID", + "secretAccessKey": "Secret Access Key", + "sessionToken": "Token di Sessione (Opzionale)", + "notAllModelsCompatible": "Non tutti i modelli sono stati testati con Msty e potrebbe non supportare tutti i modelli disponibili nel fornitore.", + "enterAndManuallyFetchModels": "Clicca su 'Recupera Modelli' per recuperare i modelli disponibili dal fornitore (potrebbe essere richiesta una chiave API), o aggiungi manualmente un modello qui sotto.", + "enterAndFetchModels": "Inserisci la tua chiave API per provare a recuperare tutti i modelli disponibili da {providerName}, o aggiungi manualmente un modello personalizzato.", + "fetchModels": "Recupera Modelli", + "modelsFilter": { + "all": "Tutti i Modelli", + "selected": "Selezionati", + "unselected": "Non selezionati" + }, + "purposeFilter": { + "all": "Tutti gli Scopi" + }, + "searchInModels": "Cerca modelli...", + "lmsCorsNote": "Devi avere CORS abilitato in LM Studio per lavorare con Msty", + "openAICompatibleNote": "La maggior parte degli endpoint dei fornitori compatibili con OpenAI necessitano del prefisso /v1, ad esempio https://example.com/v1. Se riscontri problemi, prova ad aggiungere /v1 all'endpoint.", + "successMessage": { + "addDetail": "Fornitore Modelli {providerName} aggiunto", + "updateDetail": "Fornitore Modelli {providerName} aggiornato" + }, + "errorMessage": { + "addDetail": "Aggiunta Fornitore fallita", + "updateDetail": "Aggiornamento Fornitore fallito" + }, + "bedrockLongTermCredsWarning": "L'uso di credenziali a lungo termine per Amazon Bedrock non è raccomandato.", + "awsRegionExample": "es. us-east-1" + }, + "toggleVisibility": { + "errorMessage": { + "detail": "Aggiornamento visibilità fornitore fallito" + }, + "successMessage": { + "detail": "{provider} è ora {visibility}" + } + }, + "modelsCount": "Conteggio Modelli", + "showInSelector": "Mostra nel Selettore Modelli", + "availableModels": "Modelli Disponibili", + "noModels": "Nessun modello disponibile per questo fornitore", + "modelUpdated": "Modello aggiornato con successo", + "modelUpdateError": "Aggiornamento modello fallito", + "manageProviders": "Gestisci", + "addNewProvider": "Aggiungi Nuovo" + }, + "sidecarLocalAIProxyEndpoint": { + "title": "@:remoteToolsConnector.title Proxy Endpoint @:localAI", + "description": "Assicurati che @:remoteToolsConnector.title sia in esecuzione e accessibile all'URL fornito tramite Tunneling. Copia e incolla le informazioni complete della connessione Tunnel con token e URL." + }, + "mstyRemoteEndpoint": { + "description": "Assicurati che Msty Desktop sia in esecuzione con le connessioni remote abilitate.", + "learnMore": "Scopri come abilitare le connessioni remote" + }, + "mstyLocalEndpoint": { + "description": "Questo servizio viene eseguito ogni volta che l'app stessa è attiva. Potresti dover aggiornare il numero della porta se la porta dell'IA locale è stata cambiata. Altrimenti, è meglio lasciarla così com'è." + }, + "ollamaRemoteEndpoint": { + "description": "Quando usi Ollama self-hosted, assicurati che Ollama sia in esecuzione e accessibile all'URL fornito. Devi aggiungere https://msty.studio agli origini consentiti quando avvii il servizio Ollama.", + "placeholder": "es. http://localhost:11434 o https://ollama.com" + }, + "mlxEndpoint": { + "description": "Questo fornitore viene utilizzato per eseguire modelli MLX su Mac con Apple Silicon. L'endpoint viene corretto automaticamente per assicurarsi che corrisponda alla tua configurazione MLX locale. Puoi cambiarlo temporaneamente se necessario." + }, + "llamacppEndpoint": { + "description": "Questo fornitore viene utilizzato per eseguire modelli LLaMA.cpp. Molto probabilmente, non avrai bisogno di cambiare l'endpoint predefinito. Se lo fai, assicurati che il servizio LLaMA.cpp sia in esecuzione e accessibile all'URL fornito." + }, + "localModels": { + "title": "Modelli @:localAI", + "noCompatibleProviders": "Non ci sono fornitori compatibili disponibili per gestire i Modelli Locali. Aggiungi almeno un fornitore di tipo Msty Remote o Ollama Remote per usare i Modelli Locali.", + "activeDownloads": "{count} Download Attivo | {count} Download Attivi", + "featured": { + "title": "Modelli in Evidenza" + }, + "installed": { + "title": "Modelli Installati" + }, + "customOllamaModelPlaceholder": "O Installa modello per tag es. {example}", + "alreadyInstalledErrorMessage": { + "summary": "Già Installato", + "detail": "Il modello {modelName} è già installato" + }, + "abortInstalling": { + "title": "Aborta Installazione di {modelName}", + "successMessage": { + "detail": "Installazione di {modelName} abortita" + } + }, + "deleteConfirmation": { + "header": "Disinstalla Modello", + "message": "Sei sicuro di voler disinstallare {modelName}?", + "successMessage": { + "detail": "Modello rimosso" + }, + "errorMessage": { + "detail": "Disinstallazione modello fallita" + } + }, + "modelInstall": { + "successMessage": { + "detail": "Il modello {modelName} è pronto all'uso" + }, + "errorMessage": { + "detail": "Installazione modello {modelName} fallita", + "newerVersion": "{modelName} richiede una versione più recente di Local AI. Aggiorna all'ultima versione da Impostazioni > Local AI > Versione Servizio > ... > Forza Aggiornamento Servizio IA Locale" + } + }, + "ollamaModels": { + "title": "Modelli Ollama" + }, + "huggingfaceModels": { + "title": "Modelli Hugging Face", + "searchPlaceholder": "Cerca per autore, modello o incolla un URL di un repo Hugging Face", + "searchPlaceholderAlt": "Trova modelli per nome, autore o URL. O inizia con una delle famiglie di modelli qui sotto.", + "searching": "Ricerca modelli...", + "noInstallableFiles": "Nessun file di modello installabile trovato" + }, + "ggufImport": { + "tabTitle": "Importa GGUF", + "title": "Importa Modello GGUF", + "description": "Seleziona un file modello GGUF dal tuo file system per importarlo in {providerLabel}.", + "activeImports": "Importazioni Attive", + "noFileSelected": "Nessun file selezionato", + "selectGgufFilePrompt": "Clicca il pulsante sotto per selezionare un file GGUF", + "dragDropOrClick": "Trascina e rilascia un file GGUF qui, o clicca il pulsante sotto", + "dropFileHere": "Rilascia il file qui", + "releaseToUpload": "Rilascia per selezionare il file", + "selectGgufFile": "Seleziona File GGUF", + "chooseDifferentFile": "Scegli un altro file", + "importModel": "Importa Modello", + "modelName": "Nome Modello", + "modelNamePlaceholder": "es., mio-modello-personalizzato", + "modelNameDescription": "Questo sarà il nome che userai per fare riferimento al modello nelle conversazioni.", + "removeFile": "Rimuovi file", + "dismissJob": "Chiudi", + "useSymlink": "Usa symlink (risparmia spazio disco)", + "symlinkDescription": "Crea un collegamento simbolico invece di copiare il file. Disponibile solo per server locali.", + "process": { + "calculatingDigest": "Calcolo digest del file", + "uploadingFile": "Caricamento file", + "creatingSymlink": "Creazione symlink", + "creatingModel": "Creazione modello" + }, + "success": "Modello {modelName} importato con successo", + "labels": { + "name": "Nome", + "file": "File", + "status": "Stato", + "error": "Errore" + }, + "status": { + "uploading": "Caricamento", + "creating": "Creazione modello", + "completed": "Completato", + "error": "Errore", + "cancelled": "Annullato" + }, + "errors": { + "invalidFile": "Seleziona un file GGUF valido" + } + }, + "safetensorsImport": { + "tabTitle": "Importa Safetensors", + "title": "Importa Modello Safetensors", + "description": "Seleziona una directory contenente i pesi del modello safetensors per importarlo in {providerLabel}. Le architetture supportate includono Gemma, Llama, Mistral e Phi.", + "activeImports": "Importazioni Attive", + "noDirectorySelected": "Nessuna directory selezionata", + "selectDirectoryHint": "La directory deve contenere file safetensors e un file config.json", + "selectDirectoryTitle": "Seleziona Directory Safetensors", + "selectDirectory": "Seleziona Directory", + "chooseDifferentDirectory": "Scegli un'altra directory", + "importModel": "Importa Modello", + "modelName": "Nome Modello", + "modelNamePlaceholder": "es., mio-modello-personalizzato", + "modelNameDescription": "Questo sarà il nome che userai per fare riferimento al modello nelle conversazioni.", + "removeDirectory": "Rimuovi directory", + "process": { + "scanningDirectory": "Scansione directory", + "processingFile": "Elaborazione file {current} di {total}", + "creatingModel": "Creazione modello da safetensors" + }, + "success": "Modello {modelName} importato con successo", + "labels": { + "name": "Nome", + "directory": "Directory", + "status": "Stato", + "error": "Errore" + }, + "status": { + "uploading": "Caricamento file", + "creating": "Creazione modello", + "completed": "Completato", + "error": "Errore", + "cancelled": "Annullato" + }, + "filesSelected": "file selezionati", + "errors": { + "desktopOnly": "L'importazione Safetensors è disponibile solo nell'app desktop", + "selectFailed": "Errore durante la selezione della directory", + "noValidFiles": "Nessun file safetensors valido trovato nella directory selezionata" + } + } + }, + "llamacppModels": { + "title": "Modelli LLaMA.cpp", + "activeDownloads": "{count} Download Attivo LLaMA.cpp | {count} Download Attivi LLaMA.cpp", + "alreadyInstalledErrorMessage": { + "summary": "Già Installato", + "detail": "Il modello LLaMA.cpp {modelName} è già installato" + }, + "installSuccessMessage": { + "summary": "Modello Pronto", + "detail": "Il modello LLaMA.cpp {modelName} è pronto all'uso" + }, + "installErrorMessage": { + "summary": "Installazione Fallita", + "detail": "Installazione modello LLaMA.cpp {modelName} fallita" + }, + "modelInstall": { + "successMessage": { + "detail": "Modello LLaMA.cpp {modelName} installato" + }, + "errorMessage": { + "detail": "Installazione modello LLaMA.cpp {modelName} fallita" + }, + "abortedMessage": { + "detail": "Il download del modello LLaMA.cpp {modelName} è stato abortito" + } + }, + "abortInstallErrorMessage": { + "detail": "Impossibile annullare il download del modello LLaMA.cpp" + }, + "abortInstallSuccessMessage": { + "detail": "Download del modello LLaMA.cpp {modelName} annullato" + }, + "uninstallErrorMessage": { + "summary": "Disinstallazione Fallita", + "detail": "Disinstallazione modello LLaMA.cpp {modelName} fallita" + }, + "uninstallSuccessMessage": { + "summary": "Modello Rimosso", + "detail": "Modello LLaMA.cpp {modelName} disinstallato" + }, + "uninstallConfirmationMessage": { + "summary": "Disinstalla Modello LLaMA.cpp", + "detail": "Sei sicuro di voler disinstallare {modelName}?" + }, + "llamacppFeaturedModels": { + "title": "Modelli LLaMA.cpp in Evidenza" + }, + "llamacppInstalledModels": { + "title": "Modelli LLaMA.cpp Installati" + }, + "llamacppCommunityModels": { + "title": "Modelli Community LLaMA.cpp", + "description": "Sfoglia, cerca e installa modelli GGUF direttamente da Hugging Face nella tua cartella locale dei modelli LLaMA.cpp.", + "searchTitle": "Cerca Modelli Community LLaMA.cpp", + "searchPlaceholder": "Cerca modelli LLaMA.cpp da Hugging Face", + "searchPlaceholderAlt": "Trova modelli GGUF compatibili con LLaMA.cpp o scegli una delle famiglie di modelli in evidenza qui sotto.", + "searching": "Ricerca modelli LLaMA.cpp..." + } + }, + "mlxModels": { + "title": "Modelli MLX", + "notAppleSilicon": "I modelli MLX sono supportati solo su Mac con Apple Silicon (M1, M2, M3, M4, ecc.). Il tuo dispositivo attuale non è compatibile.", + "noCompatibleProviders": "Non ci sono fornitori MLX compatibili disponibili. Aggiungi almeno un fornitore MLX per usare i Modelli MLX.", + "activeDownloads": "{count} Download Attivo MLX | {count} Download Attivi MLX", + "learnMore": "Scopri di più su MLX", + "featured": { + "title": "Modelli MLX in Evidenza" + }, + "installed": { + "title": "Modelli MLX Installati" + }, + "alreadyInstalledErrorMessage": { + "summary": "Già Installato", + "detail": "Il modello MLX {modelName} è già installato" + }, + "deleteConfirmation": { + "header": "Disinstalla Modello MLX", + "message": "Sei sicuro di voler disinstallare {modelName}?", + "successMessage": { + "detail": "Modello MLX rimosso" + }, + "errorMessage": { + "detail": "Disinstallazione modello MLX fallita" + } + }, + "modelInstall": { + "successMessage": { + "detail": "Il modello MLX {modelName} è pronto all'uso" + }, + "errorMessage": { + "detail": "Installazione modello MLX {modelName} fallita" + }, + "abortedMessage": { + "detail": "Il download del modello MLX {modelName} è stato abortito" + } + }, + "mlxCommunityModels": { + "title": "Modelli Community MLX", + "searchTitle": "Cerca Modelli Community MLX", + "searchPlaceholder": "Cerca modelli MLX da HuggingFace mlx-community", + "searchPlaceholderAlt": "Trova modelli ottimizzati MLX da HuggingFace. O inizia con una delle famiglie di modelli qui sotto.", + "searching": "Ricerca modelli MLX..." + } + } + }, + "stickyPrompt": { + "title": "Sticky Prompt", + "disableStickyPrompt": "Disabilita Sticky Prompt", + "editDialog": { + "title": "Modifica Sticky Prompt", + "description": "Quando un prompt 'sticky' viene fissato, viene aggiunto all'inizio di ogni nuovo messaggio ignorando quelli precedenti. Questo rende efficacemente la conversazione focalizzata su un unico contesto attivo. Il prompt di sistema è sempre incluso nel contesto." + } + }, + "contextShield": { + "title": "@:context Shield", + "enableContextShield": "Abilita @:contextShield.title", + "enableContextShieldWithSplitsSync": "Abilita @:contextShield.title{'.'} Tieni premuto Option/Alt per @:contextShield.title tutti gli split sincronizzati.", + "removeContextShield": "Rimuovi @:contextShield.title", + "removeContextShieldWithSplitsSync": "Disabilita @:contextShield.title{'.'} Tieni premuto Option/Alt per rimuovere @:contextShield.title da tutti gli split sincronizzati.", + "breakContext": "Interrompi @:context", + "customContext": "Contesto personalizzato @:context", + "generateContextSummary": "Genera @:context @:summary", + "contextSummary": "@:context @:summary", + "editContextSummary": "Modifica @:context @:summary", + "regenerateContextSummary": "Rigenera @:context @:summary", + "clearContextSummary": "Cancella @:context @:summary", + "summaryDescriptionInfoHeader": "Questo riassunto è generato dal contesto delle conversazioni soprastanti ed è incluso nel contesto quando si generano nuovi messaggi sotto questo scudo.", + "contextShieldWithSummary": "@:contextShield.title con @:summary" + }, + "data": "Dati", + "advancedConfigurations": "Configurazioni Avanzate", + "applicationInfo": { + "title": "Info Applicazione", + "appVersion": { + "title": "Versione App", + "description": "Gli ultimi aggiornamenti vengono controllati periodicamente e sarai notificato quando un nuovo aggiornamento è disponibile. Puoi anche controllare manualmente gli aggiornamenti, che verranno installati automaticamente.", + "checkForUpdates": "Controlla Aggiornamenti", + "enableAutoUpdates": "Abilita Aggiornamenti Automatici", + "disableAutoUpdates": "Disabilita Aggiornamenti Automatici", + "viewChangelog": "Visualizza Changelog", + "checkingForUpdates": "Controllo aggiornamenti...", + "errorCheckingUpdates": "Impossibile controllare gli aggiornamenti. Riprova.", + "packagedBuildsOnly": "Il controllo aggiornamenti è disponibile solo nelle build dell'app pacchettizzate.", + "autoUpdatesEnabled": "Aggiornamenti automatici abilitati", + "autoUpdatesDisabled": "Aggiornamenti automatici disabilitati", + "updateAvailable": "Un nuovo aggiornamento è disponibile.", + "updateAlreadyDownloading": "L'aggiornamento è già in download.", + "updateDownloaded": "Aggiornamento scaricato. Riavvia per applicare.", + "updateDownloading": "Download aggiornamento...", + "noUpdatesAvailable": "La tua app è già aggiornata." + }, + "modelsInfo": { + "title": "Info Modelli", + "description": "Aggiorna i metadati del tuo modello locale. Queste informazioni includono dettagli su ogni modello, ma non i file del modello stessi. Si applica sia ai modelli memorizzati localmente che a quelli online.", + "fetchLatest": "Recupera ultime info modelli", + "updated": "Info modelli aggiornate con successo", + "errorUpdating": "Aggiornamento info modelli fallito" + }, + "appSettings": { + "title": "Impostazioni App", + "description": "Ripristinare le impostazioni dell'app ai valori predefiniti può aiutare a risolvere potenziali problemi. Questo ripristinerà le preferenze dell'utente predefinite, come l'aspetto e il percorso dei modelli, ma non cancellerà alcun dato, inclusi chat o modelli scaricati/importati.", + "resetApp": "Ripristina Impostazioni App", + "resetConfirm": { + "header": "Ripristina Impostazioni App", + "message": "Sei sicuro di voler ripristinare tutte le impostazioni dell'app ai valori predefiniti? Questo ripristinerà le preferenze predefinite ma non cancellerà i tuoi dati." + }, + "resetSuccess": "Impostazioni app ripristinate con successo", + "resetError": "Ripristino impostazioni app fallito" + }, + "dataPaths": { + "title": "Percorsi Dati", + "description": "Tutti i dati, inclusi modelli, conversazioni, impostazioni e log, sono memorizzati localmente sul tuo dispositivo. Modifica il contenuto di queste directory solo se sei esperto della struttura file dell'applicazione.", + "appData": "Dati App", + "appLogs": "Log App", + "openInFinder": "Apri in Finder" + }, + "helpAndDiscussions": { + "title": "Aiuto e Discussioni", + "description": "Connettiti con la nostra community su Discord per ricevere supporto, condividere feedback e rimanere informato.", + "sayHi": "Saluta!", + "viewDocs": "Visualizza Docs" + } + }, + "logViewer": { + "title": "Visualizzatore Log", + "description": "Visualizza e analizza i log dell'applicazione in tempo reale. Usa filtri e ricerca per risolvere i problemi in modo efficiente.", + "searchPlaceholder": "Cerca Log...", + "refresh": "Aggiorna Log", + "autoRefreshOn": "Ferma Auto-Aggiornamento", + "autoRefreshOff": "Abilita Auto-Aggiornamento", + "pause": "Ferma Auto-Scorrimento", + "resume": "Riprendi Auto-Scorrimento", + "copy": "Copia Log negli appunti", + "download": "Scarica Log", + "clearTemporarily": "Cancella visualizzazione log", + "clearPermanently": "Cancella file log", + "showAllLogs": "Mostra tutti i log", + "clearPermanentlyConfirmation": { + "header": "Cancella File Log", + "message": "Sei sicuro di voler cancellare il file log? Questo eliminerà permanentemente tutte le voci di log." + }, + "loading": "Caricamento log...", + "noLogs": "Nessun log disponibile", + "noMatchingLogs": "Nessun log corrisponde ai filtri attuali", + "totalLines": "{count} riga totale | {count} righe totali", + "filteredLines": "{count} riga filtrata | {count} righe filtrate", + "copiedToClipboard": "Log copiati negli appunti", + "downloaded": "Log scaricati con successo", + "clearedPermanently": "File log cancellato con successo", + "errorLoading": "Caricamento log fallito", + "errorCopying": "Copia log fallita", + "errorDownloading": "Download log fallito", + "errorClearing": "Cancellazione log fallita", + "levels": { + "all": "Tutti i livelli", + "error": "Errore", + "warn": "@:warning", + "info": "Info", + "debug": "Debug" + } + }, + "notifications": { + "title": "Notifiche", + "description": "Controlla e gestisci le notifiche dell'applicazione incluse errori, avvisi ed eventi informativi.", + "searchPlaceholder": "Cerca Notifiche...", + "searchingAllLogs": "Ricerca in tutte le notifiche nel database", + "refresh": "Aggiorna Notifiche", + "autoRefreshOn": "Auto-Aggiornamento Abilitato", + "autoRefreshOff": "Abilita Auto-Aggiornamento", + "copy": "Copia tutto negli appunti", + "copyLog": "Copia Notifica", + "download": "Scarica Notifiche", + "clearPermanently": "Cancella tutte le notifiche", + "clearPermanentlyConfirmation": { + "header": "Cancella Notifiche", + "message": "Sei sicuro di voler eliminare permanentemente tutte le notifiche? Questa azione non può essere annullata." + }, + "loading": "Caricamento notifiche...", + "loadingMore": "Caricamento altro...", + "endOfList": "Fine lista", + "noLogs": "Nessuna notifica disponibile", + "totalLogs": "{count} notifica | {count} notifiche", + "displayedLogs": "Mostrando {count}", + "copiedToClipboard": "Notifica copiata negli appunti", + "downloaded": "Notifiche scaricate con successo", + "clearedPermanently": "Notifiche cancellate con successo", + "deleted": "Notifica eliminata con successo", + "errorLoading": "Caricamento notifiche fallito", + "errorCopying": "Copia notifica fallita", + "errorDownloading": "Download notifiche fallito", + "errorClearing": "Cancellazione notifiche fallita", + "errorDeleting": "Eliminazione notifica fallita", + "purge": { + "label": "Purga Notifiche", + "olderThan1Day": "Più vecchie di 1 giorno", + "olderThan7Days": "Più vecchie di 7 giorni", + "olderThan15Days": "Più vecchie di 15 giorni", + "olderThan30Days": "Più vecchie di 30 giorni", + "all": "Tutte", + "confirmHeader": "Purga Notifiche", + "confirmMessageDays": "Sei sicuro di voler eliminare le notifiche più vecchie di {days} giorni? Questa azione non può essere annullata.", + "purge": "Purga", + "purged": "Notifiche purgate con successo", + "errorPurging": "Purga notifiche fallita" + }, + "levels": { + "all": "Tutti i livelli", + "error": "Errori", + "warn": "Avvisi", + "info": "Info" + } + }, + "sidebar": { + "expandGroup": "Espandi {group}", + "collapseGroup": "Comprimi {group}", + "showExtraItems": "Mostra elementi extra", + "hideExtraItems": "Nascondi elementi extra", + "groups": { + "modelsPrompts": "Modelli & Prompt", + "personasTools": "Persona & Strumenti", + "knowledgeInsights": "Conoscenza & Insight", + "system": "Sistema" + }, + "appUpdater": { + "version": "Versione {version}", + "restartToApply": "Riavvia per applicare gli aggiornamenti", + "restart": "Riavvia ora", + "downloading": "Download aggiornamento...", + "viewChangelog": "Visualizza Changelog", + "openingChangelog": "Apertura Changelog...", + "errorHint": "Errore aggiornamento - clicca per dettagli", + "readyHint": "Aggiornamento pronto - riavvia per applicare", + "downloadingHint": "Download aggiornamento... {percent}%", + "errorDialog": { + "header": "Errore Aggiornamento", + "message": "Si è verificato un errore durante l'aggiornamento: {error}", + "downloadManually": "Scarica manualmente" + } + } + }, + "showInNativeFileManager": { + "mac": "Mostra in Finder", + "win": "Mostra in Esplora File", + "lin": "Mostra in File Manager" + }, + "settings": { + "title": "Impostazioni", + "general": "Generale", + "defaultPrompts": "Prompt Predefiniti", + "prompts": { + "description": "Questi prompt modellano il modo in cui vengono generati i titoli, costruite le query di ricerca, recuperata la conoscenza e riassunto il contesto. Le modifiche vengono salvate nelle impostazioni globali di questo dispositivo (database principale) e si applicano a tutti i workspace (non per singolo workspace).", + "availablePrompts": "Prompt Disponibili", + "customized": "Personalizzati", + "customizedCount": "{count} personalizzati", + "modified": "Modificati", + "usingCustom": "Usa Personalizzato", + "usingDefault": "Usa Predefinito", + "clickToEdit": "Clicca per modificare il prompt", + "variables": "Variabili", + "lastModified": "Ultima modifica", + "selectPrompt": "Seleziona un prompt da personalizzare", + "clearContent": "Cancella contenuto", + "resetToDefault": "Ripristina predefinito", + "insertFromLibrary": "Inserisci dalla Libreria", + "saveChanges": "Salva modifiche", + "discardChanges": "Scarta modifiche", + "categories": { + "generation": "Generazione Contenuti", + "search": "Ricerca & Sintesi", + "analysis": "Analisi & Estrazione" + } + }, + "licenseAndAccess": "Licenza e Accesso", + "fontSize": "Font @:size", + "defaultRTD": { + "sectionTitle": "Ricerca Dati in Tempo Reale", + "title": "Fornitore RTD Predefinito", + "description": "Scegli il fornitore predefinito per la ricerca di dati in tempo reale che verrà utilizzato quando si creano nuove conversazioni.", + "saved": "{provider} impostato come fornitore RTD predefinito", + "saveError": "Salvataggio fornitore RTD predefinito fallito", + "noProvidersAvailable": "Nessun fornitore RTD disponibile", + "configureLabel": "Configura opzioni avanzate per", + "configSaved": "Configurazione salvata per {provider}", + "mode": { + "title": "Modalità RTD Predefinita", + "description": "Imposta la modalità RTD predefinita per le nuove conversazioni.", + "pushHint": "Le nuove conversazioni useranno la modalità push per impostazione predefinita.", + "pullHint": "Le nuove conversazioni useranno la modalità pull per impostazione predefinita.", + "pullGuardHint": "La modalità pull richiede un piano Aurum.", + "saveError": "Salvataggio modalità RTD predefinita fallito" + } + }, + "teams": "Team", + "appearance": "Aspetto", + "conversation": { + "title": "Conversazioni", + "autoArchive": { + "title": "Archiviazione automatica conversazioni inattive", + "description": "Sposta automaticamente le conversazioni inattive nell'Archivio dopo il numero di giorni selezionato. Usa 'Abilita archiviazione automatica' per attivarla. 'Esegui archiviazione ora' esegue una pulizia una tantum usando la soglia del giorno corrente.", + "enableLabel": "Abilita archiviazione automatica", + "disableLabel": "Disabilita archiviazione automatica", + "enableHint": "Le conversazioni archiviate rimangono accessibili dalla sezione Archivio.", + "daysLabel": "Archivia dopo", + "suffix": "giorno | giorni", + "disabledHint": "Abilita o disabilita dal menu", + "runNowLabel": "Esegui archiviazione ora", + "runNowDisabled": "Abilita archiviazione automatica e imposta giorni > 0 per eseguire", + "runNowResult": "Archiviata {count} conversazione | Archiviate {count} conversazioni", + "daysSaved": "Archiviazione automatica impostata a {days} giorno | Archiviazione automatica impostata a {days} giorni", + "enabledToast": "Archiviazione automatica abilitata", + "disabledToast": "Archiviazione automatica disabilitata" + }, + "showSystemPromptInEmptyState": { + "title": "Mostra system prompt nella chat vuota", + "description": "Visualizza il prompt di sistema nello spazio segnaposto della chat vuota. Quando disabilitato, il prompt di sistema sarà accessibile solo tramite il pulsante nella barra delle azioni.", + "enabledToast": "Il prompt di sistema sarà mostrato nella chat vuota", + "disabledToast": "Prompt di sistema nascosto dalla chat vuota" + }, + "useModernMessageLayout": { + "title": "Layout messaggi moderno", + "description": "Usa il layout moderno con messaggi utente a destra e messaggi assistente a sinistra. Disabilita per usare il layout classico con avatar.", + "enabledToast": "Layout messaggi moderno abilitato", + "disabledToast": "Layout messaggi classico abilitato" + } + }, + "setupService": "Configura {service}", + "workspaceLock": { + "title": "Blocco Workspace & Crittografia Segreti", + "description": "Blocca il tuo workspace con una passphrase in modo che le impostazioni sensibili e le chiavi API rimangano nascoste finché non lo sblocchi. Sblocca una volta per sessione, ruota la passphrase in qualsiasi momento o disattiva la protezione se cambi idea.", + "experimentalInfo": "La crittografia basata su passphrase è sperimentale. Conserva un backup dei tuoi segreti prima di abilitarla.", + "status": "Stato:", + "locked": "Bloccato", + "unlocked": "Sbloccato", + "lock": "Blocca", + "unlock": "Sblocca", + "protectedSection": "Workspace protetto. Sblocca con la tua passphrase.", + "unprotected": "Non protetto", + "unprotectedToast": "Il blocco workspace non è configurato. Imposta prima una passphrase.", + "unlockTitle": "Inserisci Passphrase", + "cancel": "Annulla", + "toastUnlocked": "Workspace sbloccato per questa sessione", + "toastLocked": "Workspace bloccato", + "disable": "Disabilita Crittografia", + "disableHelp": "Inserisci la passphrase per decriptare e disabilitare la crittografia.", + "disableProtection": "Disabilita Protezione", + "disableProtectionHelp": "Inserisci la tua passphrase per disabilitare la protezione del workspace. Questo rimuoverà la crittografia dai tuoi segreti e chiavi API memorizzati.", + "disableProtectionConfirmMessage": "Sei sicuro di voler disabilitare la protezione del workspace? Questo decripterà permanentemente tutti i segreti e le chiavi API criptati nel tuo database.", + "enableProtection": "Abilita Protezione", + "setPassphrase": "Imposta Passphrase", + "setPassphraseWarning": "Importante: Salva la tua passphrase in modo sicuro. Non puoi recuperare una passphrase dimenticata e, senza di essa, perderai l'accesso ai dati criptati del tuo workspace.", + "changePassphrase": "Cambia Passphrase", + "changePassphraseWarning": "Importante: Salva la tua nuova passphrase in modo sicuro. Non puoi recuperare una passphrase dimenticata e, senza di essa, perderai l'accesso ai dati criptati del tuo workspace.", + "updatePassphrase": "Aggiorna Passphrase", + "passphrase": "Passphrase", + "passphraseCurrent": "Passphrase corrente", + "passphraseNew": "Nuova passphrase", + "passphraseConfirm": "Conferma passphrase", + "errorMinLength": "La passphrase deve avere almeno 8 caratteri", + "errorMismatch": "Le passphrase non corrispondono", + "errorInvalid": "Input non valido", + "setupSuccess": "Passphrase configurata", + "setupFailed": "Configurazione passphrase fallita", + "rotateSuccess": "Passphrase aggiornata", + "rotateFailed": "Aggiornamento passphrase fallito", + "disableConfirmMessage": "Decriptare i segreti memorizzati e rimuovere la protezione del workspace?", + "disableSuccess": "Crittografia disabilitata", + "disableFailed": "Disabilitazione crittografia fallita", + "incorrectPassphrase": "Passphrase errata", + "lockedWithName": "{workspaceName} è bloccato", + "switchBackTitle": "Non puoi sbloccare questo workspace?", + "switchBackDescription": "Torna a {workspaceName} per continuare a lavorare.", + "switchBackAction": "Torna a {workspaceName}", + "switchBackError": "Impossibile cambiare workspace. Riprova." + }, + "dataBackup": { + "title": "Esporta @:data", + "description": "Seleziona il pulsante sotto per esportare una copia dei tuoi dati per il backup o il trasferimento su un altro dispositivo. I dati esportati includono conversazioni, prompt, modelli, impostazioni e altri dati dell'applicazione in tutti i Workspace." + }, + "dataBackupReminderInterval": { + "title": "Intervallo Promemoria Backup @:data", + "description": "Ogni quanto ricordarti di eseguire il backup dei dati." + }, + "dangerZone": { + "title": "Zona Pericolo", + "description": "Le azioni in questa sezione sono irreversibili e possono causare la perdita di dati. Raccomandiamo di esportare una copia dei dati prima di eseguire qualsiasi azione qui.", + "clearData": { + "title": "Cancella Dati", + "description": "Elimina permanentemente tutti i dati dell'applicazione incluse conversazioni, prompt, modelli, impostazioni e altre informazioni correlate in tutti i Workspace." + }, + "restoreData": { + "title": "Ripristina @:data dal Backup", + "description": "Importa un file zip dei dati precedentemente esportato per ripristinare conversazioni, prompt, modelli, impostazioni e altri dati dell'applicazione in tutti i Workspace. Questa azione sovrascriverà tutti i dati esistenti." + } + }, + "dataMigrate": { + "action": "Migra", + "title": "Migrazione da Msty App 1.x a Studio", + "itemsToMigrate": { + "label": "Passaggio 2: Seleziona elementi da migrare", + "action": "Seleziona Elementi" + }, + "pointsToRemember": { + "activeWorkspace": "Puoi importare Prompt della Prompt Library, Fornitori di Modelli Remoti, Conversazioni e Allegati nel workspace corrente. Se vuoi importare in un workspace diverso, passa prima a quel workspace.", + "remoteModelProviders": "La migrazione dei fornitori di modelli remoti NON trasferirà le chiavi API, devono essere reinserite. Alcuni modelli legacy potrebbero non essere supportati in Studio.", + "attachmentsMigration": "Se migri gli allegati, prima comprimi la cartella degli allegati in un file zip. Puoi migrare gli allegati separatamente dopo la migrazione del database o insieme ad esso." + }, + "databaseMigration": { + "title": "Migrazione Database", + "label": "Passaggio 1: Seleziona file Database Msty App 1.x", + "action": "Trascina e rilascia il tuo file Database Msty", + "hint": "I file del database di Msty App 1.x sono tipicamente nominati `msty.db`" + }, + "attachmentsMigration": { + "title": "Migrazione Allegati", + "migrate": "Migra Separatamente", + "label": "Passaggio 3: Aggiungi Cartella Allegati Compressa", + "success": "Allegati migrati con successo", + "error": "Migrazione allegati fallita", + "action": "Trascina e rilascia la tua cartella allegati compressa", + "hint": "Comprimi l'intera cartella allegati di Msty App 1.x. Dopo la selezione, puoi migrare separatamente se aggiungi dopo la migrazione del database." + }, + "missingDataWarning": { + "description": "Seleziona un file database e almeno una tabella da migrare", + "title": "Dati Mancanti" + }, + "description": "Migra i tuoi dati da Msty App 1.x in Studio. I dati importati non sovrascriveranno i dati esistenti.", + "successMessage": "Migrazione di {item} completata con successo", + "errorMessage": "Migrazione di {item} fallita", + "migrationInProgress": "Migrazione in corso...", + "migrationComplete": "Migrazione di {item} completata", + "migrationFail": "Migrazione di {item} fallita", + "migratingItem": "Migrazione di {item}...", + "migrationError": { + "title": "Errore di Migrazione", + "action": "Visualizza Dettagli", + "message": "Messaggio", + "cause": "Causa" + } + }, + "colorPreference": "Preferenza Colore", + "accentColor": "Accento Interfaccia", + "dark": "Scuro", + "light": "Chiaro", + "default": "Predefinito | Predefiniti", + "system": "Sistema", + "baseColor": "Colore Base", + "interfaceMood": "Mood Interfaccia", + "emerald": "Smeraldo", + "lime": "Lime", + "green": "Verde", + "red": "Rosso", + "orange": "Arancione", + "amber": "Ambra", + "yellow": "Giallo", + "teal": "Teal", + "cyan": "Ciano", + "sky": "Cielo", + "blue": "Blu", + "indigo": "Indaco", + "violet": "Violetto", + "purple": "Viola", + "fuchsia": "Fucsia", + "pink": "Rosa", + "rose": "Rosa Antico", + "slate": "Ardesia", + "gray": "Grigio", + "zinc": "Zinco", + "neutral": "Neutrale", + "stone": "Pietra", + "mist": "Nebbia", + "dusk": "Crepuscolo", + "sage": "Salvia", + "ocean": "Oceano", + "sandy": "Sabbia", + "linen": "Lino", + "ember": "Brace", + "terracotta": "Terracotta", + "sepia": "Sepia", + "parchment": "Pergamena", + "lighter": "Più Chiaro", + "accentColorNames": { + "verdant": "Verdante", + "citron": "Citron", + "clover": "Trifoglio", + "signal": "Segnale", + "cinder": "Cenerino", + "honey": "Miele", + "solar": "Solare", + "tide": "Marea", + "glacier": "Ghiacciaio", + "lagoon": "Laguna", + "harbor": "Porto", + "nocturne": "Notturno", + "iris": "Iris", + "velvet": "Velluto", + "voltage": "Voltaggio", + "blush": "Sfumatura", + "bloom": "Fioritura", + "storm": "Tempesta", + "alloy": "Lega", + "graphite": "Grafite", + "quarry": "Cava", + "haze": "Foschia", + "afterglow": "Crepuscolo", + "canopy": "Chioma", + "tidal": "Tidale", + "canvas": "Tela", + "hearth": "Focolare", + "kiln": "Forno", + "scribe": "Scriba" + }, + "interfaceMoodNames": { + "storm": "Tempesta", + "ash": "Cenere", + "alloy": "Lega", + "carbon": "Carbonio", + "quarry": "Cava", + "mist": "Nebbia", + "dusk": "Crepuscolo", + "sage": "Salvia", + "ocean": "Oceano", + "cloud": "Nuvola", + "frost": "Brina", + "drift": "Deriva", + "linen": "Lino", + "parchment": "Pergamena", + "ember": "Brace", + "terracotta": "Terracotta", + "sepia": "Sepia" + }, + "interfaceMoodDescriptions": { + "storm": "Notte blu-grigia", + "ash": "Carbone bilanciato", + "alloy": "Scuro industriale morbido", + "carbon": "Classico scala di grigi", + "quarry": "Minerale terroso scuro", + "mist": "Foschia blu eterea", + "dusk": "Grigio indaco fumoso", + "sage": "Grigio botanico smorzato", + "ocean": "Ardesia vetro di mare", + "cloud": "Fumo fresco sollevato", + "frost": "Nebbia di grafite eterea", + "drift": "Neutro caldo polveroso", + "linen": "Carta calda con inchiostro profondo", + "parchment": "Bagliore d'avorio caldo", + "ember": "Rame ed espresso", + "terracotta": "Argilla e crepuscolo", + "sepia": "Inchiostro e pergamena" + }, + "appearanceView": { + "title": "Visualizzazione Aspetto", + "description": "Scegli quanto dettaglio di anteprima mostrare in questa pagina delle impostazioni.", + "compact": "Compatta", + "compactHint": "Seleziona e passa per una scansione più rapida", + "studio": "Studio", + "studioHint": "Schede di anteprima più ricche per scelte visive" + }, + "appearanceScopes": { + "both": "Entrambi", + "light": "Chiaro", + "dark": "Scuro", + "applyToBoth": "Applica a Entrambi", + "appliesToMode": "Si applica alla modalità:", + "bothHint": "Si applica a chiaro e scuro.", + "scopedHint": "Si applica solo a {theme}.", + "inheritedHint": "{theme} sta usando la scelta condivisa.", + "previewHint": "Cambia Preferenza Colore per visualizzarlo." + }, + "colorPreferenceDescriptions": { + "light": "Usa sempre superfici chiare", + "dark": "Usa sempre superfici scure", + "system": "Segui l'impostazione del tuo dispositivo" + }, + "modeDescriptions": { + "normal": "Comportamento workspace bilanciato", + "focus": "Riduci le distrazioni visive", + "zen": "Chrome minimo per una concentrazione profonda" + }, + "codeTheme": "Tema Codice", + "rtlSupport": { + "title": "Supporto RTL", + "sectionDescription": "Abilita layout da destra a sinistra per lingue come l'Arabo, l'Ebraico e il Persiano. L'intero workspace si aggiorna istantaneamente quando attivato.", + "toggleLabel": "Abilita Layout RTL", + "enabledHint": "Il layout da destra a sinistra è attivo in tutta l'app.", + "disabledHint": "L'app sta attualmente usando un layout da sinistra a destra." + }, + "miniMap": { + "title": "Mini Mappa", + "description": "Abilita il navigatore di messaggi mini mappa inline con anteprime dei rami. Quando disabilitato, viene usato un navigatore Top/Bottom più semplice.", + "enabled": "Abilitato", + "disabled": "Disabilitato", + "enabledHint": "Mini mappa inline con anteprime rami", + "disabledHint": "Solo navigazione Top/Bottom", + "navigator": { + "title": "Mini Mappa", + "open": "Apri mini mappa", + "hide": "Nascondi mini mappa", + "jumpToTop": "Vai in alto", + "jumpToBottom": "Vai in basso", + "previousSection": "Sezione precedente", + "nextSection": "Sezione successiva", + "browseConversation": "Sfoglia conversazione", + "hideContents": "Nascondi contenuti mini mappa", + "atTop": "In alto", + "atBottom": "In basso", + "resumeAutoScroll": "Riprendi auto-scorrimento", + "entries": "{count} voce | {count} voci", + "emptyExcerpt": "Nessun contenuto" + }, + "scrollJumpButton": { + "goToTop": "Vai in alto", + "goToBottom": "Vai in basso" + } + }, + "branchBreadcrumbs": { + "title": "Briciole di Pane dei Rami", + "description": "Mostra una barra di navigazione compatta nella parte superiore delle conversazioni quando esistono rami." + }, + "spellcheck": { + "title": "Controllo Ortografico", + "description": "Abilita o disabilita il controllo ortografico per i campi di input del testo. Disabilitarlo può aiutare quando si lavora con più lingue o contenuti tecnici. Le impostazioni del correttore ortografico del tuo sistema operativo potrebbero sovrascrivere queste preferenze. Riavvia l'applicazione dopo aver cambiato questa impostazione affinché le modifiche abbiano pieno effetto." + }, + "language": { + "sectionTitle": "Lingua e Localizzazione", + "sectionDescription": "Passa tra le lingue dell'interfaccia, visualizza la modalità sviluppatore o importa un file di localizzazione temporaneo. Se vuoi contribuire con una traduzione, visita https://github.com/cloudstack-llc/msty-studio-i18n", + "localeLabel": "Lingua", + "downloadTemplate": "Scarica Modello", + "downloadBuiltInLocale": "Scarica questo file JSON di localizzazione integrato.", + "downloadCustomLocale": "Scarica la localizzazione personalizzata che hai importato.", + "downloadDeveloperTemplate": "Scarica un modello vuoto basato sulla localizzazione base.", + "importLocale": "Importa Localizzazione", + "importLocaleHint": "Le localizzazioni importate durano solo finché non riavvii o aggiorni l'app.", + "importSuccessSummary": "Localizzazione Importata", + "importSuccessDetail": "Ora stai usando {code}. Controlla l'interfaccia per confermare le traduzioni.", + "importError": "Impossibile importare quel file di localizzazione. Assicurati che sia un JSON valido basato sul modello.", + "developerMode": { + "label": "Modalità Sviluppatore" + }, + "clearCache": "Cancella Cache", + "cacheClearedSummary": "Cache Cancellata", + "cacheClearedDetail": "Rimosso {count} file lingua in cache. | Rimossi {count} file lingua in cache.", + "cacheEmptySummary": "Cache già vuota" + }, + "security": { + "title": "Sicurezza", + "subtitle": "Configura le impostazioni di sicurezza per l'applicazione" + }, + "webSecurity": { + "title": "Disabilita Sicurezza Web", + "description": "Questo può aiutarti a risolvere alcuni problemi relativi al CORS. Tuttavia, non è raccomandato e potrebbe esporre la tua applicazione a rischi di sicurezza. Disabilitalo solo se sai cosa stai facendo. Devi riavviare l'app affinché questa impostazione abbia effetto.", + "applyAndRestart": "Applica e Riavvia" + }, + "fontStyle": { + "title": "Stile Font", + "galaxyFarAway": "Galassia Lontana", + "everythingEverywhere": "Tutto Ovunque", + "homeAlone": "Solo a Casa", + "lordOfTheLoops": "Signore dei Loop" + }, + "renderingModules": { + "title": "Moduli di Rendering", + "selectPlaceholder": "@:seleziona Moduli di Rendering", + "coreHint": "Il Markdown è richiesto per tutti gli altri moduli." + }, + "remoteToolsConnector": { + "description": "Consenti a Msty Studio web di connettersi a questo dispositivo per eseguire strumenti remoti e accedere ai modelli locali. Questo servizio deve essere attivamente in esecuzione per consentire connessioni remote.", + "allowRemoteToolsConnection": "Abilita Servizio", + "connectionToken": { + "title": "Token di Connessione", + "rememberToken": "Ricorda Token", + "placeholder": "Inserisci un token di connessione forte", + "description": "Questo token viene utilizzato per autenticare la connessione tra Msty Studio e questa app quando ci si connette da remoto. Puoi rigenerarlo in qualsiasi momento per invalidare il token precedente. Assicurati di usare un token forte e di tenerlo segreto.", + "successMessage": { + "detail": "Servizio remoto ora attivo" + }, + "errorMessage": { + "summary": "Errore Abilitazione Connettore", + "detail": "Abilitazione Servizio Remoto fallita. Controlla i log per maggiori dettagli" + }, + "copyConnectionInfo": "Copia URL Locale", + "copyTunnelConnectionInfo": "Copia URL Tunnel", + "stopSuccessMessage": { + "detail": "Servizio remoto ora disabilitato" + } + }, + "enableTunneling": "Abilita Tunneling (Sperimentale)" + }, + "copyLocalURL": "Copia URL Locale", + "localAI": { + "notInstalled": { + "description": "Configura @:localAIService per eseguire i modelli IA localmente sul tuo dispositivo." + }, + "modelsLocation": { + "title": "Posizione Modelli", + "description": "Configura dove sono memorizzati i tuoi modelli IA locali." + }, + "existingModels": { + "title": "Usa Modelli Esistenti", + "description": "Usa i modelli che già possiedi senza scaricarli di nuovo." + }, + "serviceConfigurations": { + "title": "Configurazioni @:service", + "description": "Queste configurazioni vengono applicate a @:localAIService all'avvio. @:localAIService si riavvierà automaticamente dopo aver salvato eventuali modifiche.", + "configurePortNumber": { + "title": "Configura Numero Porta", + "description": "Numero porta per @:localAIService{'.'} Lascia vuoto per usare il predefinito." + }, + "maximumParallelChats": { + "title": "Massime Chat Parallele", + "description": "Numero massimo di sessioni di chat concorrenti (quando si usa la modalità split)." + }, + "maximumLoadedModels": { + "title": "Massimi Modelli Caricati", + "description": "Numero massimo di LLM caricati contemporaneamente. Mantenere più modelli in memoria velocizza le risposte iniziali ma consuma più risorse di sistema." + }, + "enableNetworkAccess": { + "title": "Abilita Accesso alla Rete", + "description": "Consenti ad altri dispositivi nella tua rete di accedere a questo @:localAIService tramite l'indirizzo IP di questo dispositivo." + }, + "allowedNetworkOrigins": { + "title": "Origini di Rete Consentite", + "description": "Elenca qui le origini di rete consentite (separate da virgola). Ogni voce deve iniziare con http:// o https://. Usa * per consentire tutte le origini.", + "placeholder": "es. https://msty.studio, http://localhost:3000, *" + }, + "allowMstyStudioAccess": { + "title": "Consenti Accesso da Msty Studio", + "description": "Consenti connessioni da Msty Studio Web a questa app in modo che possa accedere a @:localAIService{'.'}" + }, + "captureServiceLogs": { + "title": "Cattura Log @:service", + "description": "Abilita il logging per catturare i dati del servizio per il debug. Usa questa opzione solo quando necessario." + }, + "advancedConfiguration": { + "description": "Inserisci un JSON valido per impostare le variabili d'ambiente per @:localAIService{'.'}" + }, + "unsavedChanges": { + "message": "Hai modifiche non salvate nelle Configurazioni di @:localAIService. Una volta salvate, @:localAIService verrà riavviato con le nuove configurazioni.", + "saveChanges": "Salva Modifiche e Riavvia Servizio", + "successMessage": { + "detail": "Configurazioni @:localAIService salvate e servizio riavviato" + }, + "errorMessage": { + "detail": "Salvataggio configurazioni @:localAIService fallito. Controlla i log per maggiori dettagli." + } + } + }, + "modelConfigurations": { + "title": "Configurazioni @:model", + "description": "Queste configurazioni vengono applicate a tutti i modelli durante le sessioni di chat.", + "keepAliveTimeout": { + "title": "Timeout Keep-Alive Modello", + "description": "Tempo (in minuti) dopo il quale il modello verrà scaricato dalla memoria se non usato." + }, + "advancedConfiguration": { + "description": "Inserisci un JSON valido per passare parametri extra ai modelli durante le sessioni di chat." + }, + "unsavedChanges": { + "message": "Hai modifiche non salvate in @:settings.localAI.modelConfigurations.title{'.'} Assicurati di salvarle prima di iniziare una nuova sessione di chat.", + "successMessage": { + "detail": "@:settings.localAI.modelConfigurations.title salvato" + }, + "errorMessage": { + "detail": "Salvataggio @:settings.localAI.modelConfigurations.title fallito. Controlla i log per maggiori dettagli." + } + } + }, + "openSettings": "Apri Impostazioni IA Locale", + "manageModels": { + "title": "Gestisci Modelli IA Locale", + "description": "Sfoglia, installa e gestisci modelli IA per l'inferenza locale.", + "openModelHub": "Apri Hub Modelli IA Locale" + } + }, + "vibeCliProxy": { + "shortTitle": "Vibe CLI Proxy", + "title": "Vibe CLI Proxy", + "subtitle": "Proxy unificato per assistenti di coding IA. Connettiti a Claude Code, ChatGPT, Gemini, Qwen Code tramite un singolo endpoint locale.", + "install": { + "copy": "Installa il binario CLIProxyAPI per connettere assistenti di coding IA (Claude Code, ChatGPT, Gemini, Qwen) tramite proxy locale con autenticazione OAuth.", + "button": "Installa Vibe CLI Proxy" + }, + "health": { + "description": "Avvia o ferma il servizio Vibe CLI Proxy." + }, + "endpoint": { + "title": "Endpoint del Servizio", + "description": "Usa questo endpoint per richieste compatibili con OpenAI instradate tramite Vibe CLI Proxy.", + "network": "Host di rete: {host}", + "copied": "Endpoint copiato" + }, + "version": { + "title": "Versione", + "description": "Versione CLIProxyAPI installata.", + "current": "Versione corrente", + "reinstall": "Reinstalla", + "unknown": "Non installato" + }, + "configs": { + "title": "Configurazioni Servizio", + "description": "Configura porta, directory di autenticazione e accesso alla rete per il proxy.", + "port": "Porta", + "retries": "Tentativi", + "authDir": "Directory Auth", + "enableNetworkAccess": "Abilita accesso alla rete", + "enableNetworkAccessHelp": "Consenti ad altri dispositivi sulla rete di raggiungere il proxy.", + "captureLogs": "Cattura log del servizio", + "captureLogsHelp": "Conserva i log del proxy per il debug (potrebbe aumentare l'uso del disco).", + "enableRemoteManagement": "Abilita gestione remota", + "enableRemoteManagementHelp": "Espone gli endpoint di gestione; richiede una chiave segreta.", + "managementKey": "Chiave segreta di gestione", + "updated": "Configurazioni Vibe CLI Proxy aggiornate", + "failed": "Aggiornamento configurazioni Vibe CLI Proxy fallito", + "portDescription": "La porta locale su cui il servizio proxy ascolta le richieste.", + "retriesDescription": "Numero di tentativi per richieste upstream fallite.", + "authDirDescription": "Directory in cui vengono memorizzati i token di autenticazione.", + "managementKeyDescription": "Chiave segreta richiesta per le operazioni di gestione remota." + }, + "authPath": { + "title": "Cartella Auth", + "description": "Percorso in cui Vibe CLI Proxy memorizza i token OAuth per i fornitori connessi. Gestito automaticamente; non modificabile." + }, + "authStatus": { + "title": "Autenticazione", + "description": "Collega in modo sicuro i tuoi account IA in modo che Vibe CLI Proxy possa chiamare le loro API per tuo conto. Quando ti connetti, si apre una finestra del browser per quel fornitore dove completi l'accesso.", + "connecting": "Apertura browser per OAuth...", + "browser": "Completa l'autenticazione nel tuo browser, quindi torna qui.", + "failed": "Inizio flusso OAuth fallito", + "deviceCodeTitle": "Autorizzazione Dispositivo", + "deviceCodeInstructions": "Inserisci il codice qui sotto nella pagina di autorizzazione per completare l'autenticazione.", + "copyCode": "Copia Codice", + "codeCopied": "Codice copiato negli appunti", + "openGitHub": "Apri GitHub" + }, + "setup": { + "disclaimerTitle": "Avviso Importante", + "disclaimer": "Vibe CLI Proxy viene eseguito localmente e instrada le richieste a servizi IA di terze parti. Sei responsabile dell'uso di ogni fornitore connesso in conformità con i suoi termini di servizio e le sue policy. Continua solo se comprendi i rischi. Msty non è responsabile per azioni dell'account del fornitore, restrizioni o violazioni del servizio.", + "acknowledgment": "Capisco e accetto la responsabilità della conformità ai termini del fornitore IA connesso." + } + }, + "agentMode": { + "adapters": { + "title": "Adapter", + "description": "Scarica gli ultimi adapter Agent Client Protocol per i CLI agent supportati. Gli aggiornamenti si applicano alle nuove sessioni.", + "checkUpdates": "Controlla aggiornamenti", + "updateSuccessDetail": "Adapter aggiornati: {agents}", + "updatePartialDetail": "Aggiornamento fallito: {agents}", + "updateSkippedDetail": "Saltato (nessun binario compatibile): {agents}", + "updateError": "Aggiornamento adapter agent fallito" + }, + "skills": { + "title": "Skill", + "badge": "Skill Agent", + "subtitlePrefix": "Estendi le capacità dell'agent con skill riutilizzabili. Le skill seguono il formato aperto", + "subtitleLink": "Agent Skills", + "subtitleSuffix": "formato.", + "studio": { + "title": "Skills Studio", + "description": "Un workspace dedicato per costruire, ispezionare e installare skill.", + "open": "Apri Skills Studio", + "heading": "Laboratorio skill solo per Aurum", + "body": "Crea bozze SKILL.md più precise, ispeziona il contenuto del pacchetto e usa Skills AI per perfezionare attivazione e struttura prima di salvare.", + "snapshot": "Studio Snapshot" + }, + "installed": { + "title": "Skill Installate", + "description": "Skill disponibili per i tuoi agent. Gli agent scoprono automaticamente le skill dalla loro directory.", + "createCustom": "Crea Personalizzata", + "refresh": "@:refresh", + "empty": "Nessuna skill installata. Crea una skill personalizzata o installane una dallo Skill Hub.", + "deleteConfirmHeader": "Elimina Skill", + "deleteConfirmMessage": "Eliminare \"{name}\"? Questo rimuoverà i file della skill dal disco.", + "deletedSummary": "Eliminata", + "deletedDetail": "Skill \"{name}\" rimossa", + "deleteTooltip": "Elimina (Shift+clic per saltare la conferma)", + "detailHeader": "Dettagli Skill", + "enabled": "Abilitata", + "contentLoadError": "Impossibile caricare il contenuto della skill.", + "pathLabel": "Percorso:", + "filesLabel": "{count} file", + "filesEmpty": "Nessun file trovato.", + "filesViewAll": "Visualizza tutti i {count} file", + "filesHiddenSuffix": "altro", + "filesDialogHeader": "File - {name}" + }, + "hub": { + "title": "Skill Hub", + "description": "Sfoglia e installa skill dai repository GitHub.", + "addRepo": "Aggiungi Repo", + "addRepoHint": "Incolla un repository GitHub nel formato proprietario/repo o l'URL completo.", + "add": "@:add", + "remove": "@:remove", + "install": "@:install", + "repoPlaceholder": "proprietario/repo o URL GitHub", + "repoInputRequired": "Inserisci un repo", + "invalidRepoFormat": "Formato repo GitHub non valido", + "repoAlreadyAdded": "Repo già aggiunta", + "repoNotFound": "Repository non trovata o inaccessibile", + "repoNoSkills": "Il repository non ha skill scopribili", + "addRepoFailed": "Aggiunta repo fallita", + "addedSummary": "Aggiunta", + "addedDetail": "Repo aggiunta con successo", + "removeConfirmHeader": "Rimuovi Repo", + "removeConfirmMessage": "Rimuovere \"{label}\" dalle tue fonti di skill?", + "removedSummary": "Rimossa", + "removedDetail": "Repo \"{label}\" rimossa", + "installedSummary": "Installata", + "installedDetail": "Skill \"{name}\" installata", + "installFailed": "Installazione skill fallita", + "repoAvailability": "{available} / {total} disponibili", + "removeTooltip": "Rimuovi repo", + "filesHintMultiple": "Include script, template o riferimenti", + "filesHintSingle": "Solo SKILL.md", + "filesSingle": "{count} file", + "filesMultiple": "{count} file", + "filesViewAll": "Visualizza tutti i {count} file", + "filesHiddenSuffix": "altro", + "filesDialogHeader": "File - {name}", + "emptyRepo": "Tutte le skill da questo repo sono già installate.", + "detailHeader": "Dettagli Skill" + }, + "form": { + "header": "Crea Skill Personalizzata", + "editHeader": "Modifica Skill", + "skillId": "ID Skill", + "skillIdPlaceholder": "nome-della-mia-skill", + "skillIdLockedHint": "L'ID della skill non può essere cambiato dopo la creazione.", + "description": "Descrizione", + "descriptionPlaceholder": "Cosa fa questa skill e quando usarla", + "instructionsPlaceholder": "# La mia Skill\n\n## Istruzioni\n1. Passo uno...\n2. Passo due...", + "create": "Crea Skill", + "nameErrorMax": "Massimo 64 caratteri", + "nameErrorFormat": "Solo lettere minuscole, numeri e trattini", + "nameErrorEdgeHyphen": "Non deve iniziare o finire con un trattino", + "nameErrorConsecutiveHyphen": "Nessun trattino consecutivo", + "nameErrorDuplicate": "Una skill con questo ID esiste già", + "descriptionErrorMax": "Massimo 1024 caratteri", + "createdSummary": "Creata", + "createdDetail": "Skill \"{name}\" creata", + "createFailed": "Creazione skill fallita", + "updatedSummary": "Aggiornata", + "updatedDetail": "Skill \"{name}\" aggiornata", + "updateFailed": "Aggiornamento skill fallito" + } + }, + "preferredEditor": { + "title": "Editor Preferito", + "subtitle": "Scegli in quale editor aprire i file quando clicchi sui riferimenti ai file", + "fileManager": "File Manager (predefinito)", + "noEditors": "Nessun editor supportato rilevato su questo sistema" + }, + "vimMode": { + "title": "Modalità Vim", + "subtitle": "Abilita i binding dei tasti stile vim di base nell'input del prompt dell'agent. È supportato solo un sottoinsieme di movimenti e operatori." + }, + "persistToolCalls": { + "title": "Persisti Tool Call", + "subtitle": "Salva gli eventi della timeline delle tool-call nel database per l'Agent Mode. Quando disabilitato, le tool-call sono mostrate solo durante la sessione attiva e vengono nascoste dopo il ricaricamento." + }, + "turnDiffSummary": { + "title": "Riassunto Diff Turno", + "subtitle": "Mostra un riassunto diff del file per turno con commenti riga per riga inline per l'Agent Mode" + }, + "localProviders": { + "title": "Fornitori Locali", + "description": "Connetti server di inferenza locali come backend per l'Agent Mode. Ogni fornitore abilitato appare come un agent separato nel selettore agent.", + "claudeCodeRequired": "I fornitori locali richiedono l'installazione di Claude Code CLI. In genere non sono ideali per i flussi di lavoro Agent CLI e tipicamente richiedono modelli grandi e potenti.", + "noProviders": "Nessun fornitore locale rilevato. Avvia un servizio locale come Ollama o aggiungi un fornitore compatibile nel Model Hub." + } + }, + "mlx": { + "notInstalled": { + "description": "Configura @:mlxService per eseguire modelli IA ottimizzati sul tuo Mac con Apple Silicon." + }, + "modelsLocation": { + "title": "Posizione Modelli", + "description": "Configura dove sono memorizzati i tuoi modelli MLX." + }, + "existingModels": { + "title": "Usa Modelli Esistenti", + "description": "Usa i modelli che già possiedi senza scaricarli di nuovo." + }, + "openSettings": "Apri Impostazioni MLX", + "manageModels": { + "title": "Gestisci Modelli MLX", + "description": "Sfoglia, installa e gestisci modelli MLX ottimizzati per Apple Silicon.", + "openModelHub": "Apri Hub Modelli MLX" + }, + "compatibility": { + "title": "Compatibilità di Sistema", + "description": "Controlla se il tuo sistema è compatibile con MLX.", + "checkAgain": "Ricontrolla", + "status": { + "notChecked": "Non controllato", + "compatible": "Compatibile", + "notCompatible": "Non compatibile" + }, + "requirements": { + "title": "Requisiti MLX:", + "appleSilicon": "Mac Apple Silicon (M1, M2, M3, M4)", + "macOS13": "macOS 13.0 o successivo", + "unifiedMemory": "Architettura memoria unificata" + } + } + }, + "llamacpp": { + "notInstalled": { + "description": "Configura @:llamacppService per eseguire modelli IA efficienti su Windows, macOS e Linux." + }, + "modelsLocation": { + "title": "Posizione Modelli", + "description": "Configura dove sono memorizzati i tuoi modelli LLaMA.cpp." + }, + "existingModels": { + "title": "Usa Modelli Esistenti", + "description": "Usa i modelli che già possiedi senza scaricarli di nuovo." + }, + "openSettings": "Apri Impostazioni LLaMA.cpp", + "manageModels": { + "title": "Gestisci Modelli LLaMA.cpp", + "description": "Sfoglia, installa e gestisci modelli LLaMA.cpp per l'inferenza cross-platform.", + "openModelHub": "Apri Hub Modelli LLaMA.cpp" + }, + "compatibility": { + "title": "Compatibilità di Sistema", + "description": "Controlla se il tuo sistema è compatibile con LLaMA.cpp.", + "checkAgain": "Ricontrolla", + "status": { + "notChecked": "Non controllato", + "compatible": "Compatibile", + "notCompatible": "Non compatibile", + "requiresDesktop": "LLaMA.cpp richiede l'applicazione desktop" + }, + "systemInfo": { + "title": "Informazioni di Sistema", + "platform": "Piattaforma", + "architecture": "Architettura", + "memory": "Memoria Disponibile", + "gpu": "GPU" + }, + "requirements": { + "title": "Requisiti LLaMA.cpp:", + "desktop": "Applicazione desktop (Windows, macOS o Linux)", + "memory": "Almeno 4GB di RAM (8GB+ raccomandati)", + "storage": "Spazio di archiviazione sufficiente per i modelli (varia in base alla dimensione del modello)", + "gpu": "Opzionale: GPU per accelerazione (CUDA, Metal, OpenCL)" + } + }, + "serviceConfigurations": { + "threads": { + "title": "Thread CPU", + "description": "Numero di thread CPU da utilizzare durante l'inferenza. Imposta a -1 per il rilevamento automatico in base al sistema (corrisponde al flag --threads)." + }, + "concurrentRequests": { + "title": "Richieste Concorrenti", + "description": "Numero di chat che possono essere eseguite contemporaneamente per modello (corrisponde al flag --parallel). Con parallel=2, ogni chat ottiene metà della dimensione del contesto.", + "inputLabel": "Richieste concorrenti" + }, + "advancedConfiguration": { + "description": "Inserisci JSON valido per impostare le variabili d'ambiente per il processo llama-server. Queste variabili hanno una priorità inferiore rispetto agli argomenti CLI impostati nelle Configurazioni di Servizio e Modello." + } + }, + "modelConfigurations": { + "title": "Configurazioni @:model", + "description": "Queste configurazioni vengono applicate a tutti i modelli durante le sessioni di chat.", + "keepAliveTimeout": { + "title": "Timeout Keep-Alive del Modello", + "description": "Tempo (in minuti) dopo il quale il modello verrà scaricato dalla memoria se non viene utilizzato." + }, + "unsavedChanges": { + "message": "Hai modifiche non salvate in @:settings.llamacpp.modelConfigurations.title{'.'} Assicurati di salvarle prima di iniziare una nuova sessione di chat.", + "successMessage": { + "detail": "@:settings.llamacpp.modelConfigurations.title salvato" + }, + "errorMessage": { + "detail": "Impossibile salvare @:settings.llamacpp.modelConfigurations.title. Controlla i log per maggiori dettagli." + } + } + } + } + }, + "mlx": "MLX", + "mlxService": "Servizio @:mlx", + "llamacpp": "LLaMA.cpp", + "llamacppService": "Servizio @:llamacpp", + "settingsAndConfigs": "Impostazioni e Configurazioni", + "prompts": "Prompts", + "apiKeys": "API Keys", + "workspaces": { + "createNewWorkspace": "Crea Nuovo Workspace", + "switchWorkspace": "Cambia Workspace", + "switchToCustomWorkspace": "Cambia al Workspace {workspaceName}", + "hideWorkspaceTray": "Nascondi Workspace Tray", + "showWorkspaceTray": "Mostra Workspace Tray", + "switchAction": { + "successMessage": { + "summary": "Workspace cambiato!", + "detail": "{workspaceName} è ora il workspace attivo" + } + }, + "deleteWorkspace": "Elimina Workspace", + "workspaceIsActive": "Il workspace {workspaceName} è attivo", + "currentActiveWorkspace": "Il tuo workspace attivo corrente è: {workspaceName}", + "workspaceForm": { + "newTitle": "Nuovo Workspace", + "editTitle": "Modifica Workspace", + "workspaceName": "Nome Workspace", + "whatToCopy": "Cosa copiare dal workspace {activeWorkspace}?", + "copyDisabledForLockedWorkspace": "La copia degli elementi è disabilitata perché il workspace attivo ha una passphrase impostata.", + "createAndSwitch": "Crea e Cambia", + "createOnly": "Crea e Resta", + "duplicateWorkspaceName": "Nome workspace già esistente", + "invalidWorkspaceName": "Nome workspace non valido o duplicato", + "updateSuccessMessage": { + "detail": "Workspace aggiornato" + }, + "updateErrorMessage": { + "detail": "Impossibile aggiornare il Workspace" + }, + "createAndSwitchSuccessMessage": { + "detail": "Workspace creato e cambiato" + }, + "createSuccessMessage": { + "detail": "Workspace creato" + }, + "createErrorMessage": { + "detail": "Impossibile creare il Workspace" + } + }, + "deleteConfirmation": { + "header": "Elimina Workspace", + "message": "Sei sicuro di voler eliminare {workspaceName}? Tutti i dati associati a questo workspace verranno eliminati. Questa azione non può essere annullata.", + "downloadWorkspaceData": "@:download Workspace @:data", + "successMessage": { + "detail": "Workspace {workspaceName} eliminato" + }, + "errorMessage": { + "detail": "Impossibile eliminare il Workspace" + } + }, + "exportWorkspace": { + "title": "Esporta Workspace", + "successMessage": { + "detail": "Dati del workspace {workspaceName} esportati come {fileName}" + }, + "errorMessage": { + "detail": "Impossibile esportare il workspace {workspaceName}" + } + }, + "importWorkspace": { + "title": "@:import Workspace", + "dragAndDropMessage": "Drag-and-drop un file Workspace Msty zippato per importare e creare un nuovo Workspace. In caso di nomi duplicati, il workspace importato verrà rinominato. Puoi cambiarlo in seguito.", + "successMessage": { + "detail": "Workspace {workspaceName} importato con successo" + }, + "errorMessage": { + "detail": "Impossibile importare il Workspace" + }, + "switchToWorkspace": "Cambia al Workspace" + } + }, + "attachments": { + "title": "Allegati", + "documents": "Documenti", + "images": "Immagini", + "webpages": "Pagine Web", + "youTubeLinks": "Link YouTube", + "dropThem": "Lasciali Cadere!", + "selectAll": "@:select tutti", + "deselectAll": "Deseleziona tutti", + "dragAnDropHere": "Drag-and-drop {attachmentType} qui", + "addNew": "Aggiungi Nuovi Allegati", + "addDocumentTypes": "Aggiungi {documentTypes} come anche altri file di codice", + "addImageTypes": "Aggiungi immagini .png, .jpg o jpeg", + "captureScreenshot": { + "title": "Cattura Screenshot", + "unsupported": "La cattura dello screenshot non è disponibile in questo ambiente.", + "failed": "Impossibile catturare lo screenshot", + "enableAction": "Abilita Cattura Screenshot", + "enableSuccess": "La cattura dello screenshot è abilitata per questa app su questo dispositivo.", + "enableFailed": "Impossibile abilitare la cattura dello screenshot.", + "permissionHelp": "Controlla le impostazioni del tuo sistema operativo e assicurati che Msty Studio sia autorizzato a catturare screenshot, quindi riprova.", + "enableConfirm": { + "header": "Abilita Cattura Screenshot", + "message": "Msty inizializzerà la cattura dello screenshot, e il tuo sistema operativo potrebbe chiedere l'accesso alla cattura dello schermo. Continua?" + }, + "captureInteractiveRegion": "Cattura Regione Interattiva", + "captureQuickRegion": "Cattura Regione Rapida", + "captureDisplayMenu": "Cattura Display", + "captureDisplay": "Cattura {displayName}", + "displayFallback": "Cattura Display Principale", + "refreshDisplays": "Aggiorna Display", + "captureWindowMenu": "Cattura Finestra", + "captureWindow": "Cattura Finestra: {windowName}", + "windowFallback": "Cattura Prima Finestra Disponibile", + "refreshWindows": "Aggiorna Finestre" + }, + "dragAndDropOrBrowseMore": "Drag-and-drop o sfoglia", + "commaSeparatedUrls": "o incolla URL separati da virgola", + "manageTooltip": "Clicca per gestire {attachmentType} allegati", + "modelMayNotSupportImages": "Il modello selezionato potrebbe non supportare gli allegati immagine.", + "clickToInstallVisionCapabilities": "Clicca per installare le capacità di visione.", + "checkingVisionCapabilities": "Verifica delle capacità di visione...", + "installingVision": "Installazione delle capacità di visione...", + "documentsAttachedCount": "{count} documento allegato | {count} documenti allegati", + "imagesAttachedCount": "{count} immagine allegata | {count} immagini allegate", + "webpagesAttachedCount": "{count} pagina web allegata | {count} pagine web allegate", + "webpageLinks": "un link web | link web", + "holdKeyToShareWithSyncedSplits": "Tieni premuto {key} per condividere con Synced Splits", + "youTubeLinksAttachedCount": "{count} link YouTube allegato | {count} link YouTube allegati", + "youTubeTranscriptDeprecationWarning": "@:knowledgeStack.buckets.youTubeLinks.deprecationWarning", + "dropFiles": { + "errorMessage": { + "detail": "Impossibile allegare file" + } + }, + "dropWebpages": { + "errorMessage": { + "detail": "Impossibile allegare pagine web" + } + }, + "dropYouTubeLinks": { + "errorMessage": { + "detail": "Impossibile importare il link YouTube. {errorMessage}" + } + }, + "detachAll": { + "title": "Scollega tutto", + "confirm": { + "header": "Scollega tutto", + "message": "Sei sicuro di voler scollegare tutti i {attachmentType}? Questi {attachmentType} non saranno più disponibili nella conversazione in tutti gli split.", + "acceptLabel": "@:delete" + }, + "maxResult": { + "title": "Risultato Massimo" + }, + "successMessage": { + "detail": "Allegati scollegati" + } + } + }, + "jinaAPI": { + "manageJinaAPIKeys": "Gestisci chiavi", + "jinaApiKeyRequired": "È richiesta una Jina API Key valida per utilizzare questa funzionalità. Puoi visitare il seguente link per ottenerne una gratuitamente:", + "willUseJina": { + "description": "Hai attualmente {count} chiavi API Jina aggiunte. Puoi aggiungere altre chiavi e Msty sceglierà una chiave valida casuale da utilizzare per la richiesta." + }, + "jinaAPIKeyForm": { + "newTitle": "Nuova Jina API Key", + "editTitle": "Modifica Jina API Key", + "availableKeys": "Chiavi Disponibili", + "reVerifyKey": "La chiave è {status}. Clicca per verificare di nuovo", + "verifyKeyAndAdd": "Verifica e aggiungi chiave", + "newDescription": "Aggiungi una nuova Jina API key da utilizzare con gli endpoint Jina Reader e Search. Puoi aggiungere più chiavi e verificarle per assicurarti che siano valide. Quando utilizzi le chiavi, Msty sceglierà una chiave valida casuale da utilizzare per la richiesta.", + "keyIsGood": { + "summary": "Tutto a posto!", + "detail": "La chiave sembra valida e pronta all'uso" + }, + "successMessage": { + "detail": "Jina API Key aggiunta" + }, + "errorMessage": { + "summary": "Error{status}!", + "detail": "Impossibile aggiungere la Jina API Key. Per favore, controlla la API key e assicurati che sia valida." + } + }, + "tokenBudget": { + "title": "Token Budget", + "description": "Numero massimo di token da utilizzare per le richieste API Jina. Questo aiuta a controllare i costi e la lunghezza della risposta." + } + }, + "rtd": { + "title": "Real Time @:data", + "enableRTD": "Clicca per attivare/disattivare RTD; doppio clic per configurare", + "contexts": "@:rtd.title Contexts", + "removeSource": { + "successMessage": { + "detail": "Fonte rimossa" + }, + "errorMessage": { + "detail": "Impossibile rimuovere la fonte" + } + }, + "updateSource": { + "errorMessage": { + "detail": "Impossibile aggiornare la fonte" + } + }, + "searchProvider": "Provider di Ricerca", + "jina": "Jina", + "useRemoteConnector": "Usa @:remoteToolsConnector.title", + "noSources": "Nessuna fonte disponibile", + "settings": { + "maxResult": { + "title": "Risultato Massimo" + }, + "saveAsDefaultProvider": { + "title": "Salva {providerName} come provider di ricerca predefinito", + "successMessage": { + "summary": "{providerName}!", + "detail": "{providerName} è il provider di ricerca predefinito" + } + }, + "autoWithFallback": "Auto con Fallback", + "google": "Google", + "brave": "Brave", + "ecosia": "Ecosia", + "customSearchQuery": { + "title": "Query di Ricerca Personalizzata", + "placeholder": "Questa query verrà utilizzata per la ricerca. Lasciala vuota per usare il prompt come query" + }, + "limitByDomain": { + "title": "Limit by Domain", + "placeholder": "es. reddit.com, gov oppure (site:reddit.com OR site:gov)", + "commaDelimitedPlaceholder": "Inserisci elenco di domini separati da virgola es. reddit.com,wikipedia.com" + }, + "extraOperators": { + "title": "Operatori Aggiuntivi" + }, + "dateRange": { + "title": "Intervallo di Date della Ricerca", + "placeholder": "Da data - A data" + }, + "successMessage": { + "detail": "@:rtd.title Attivato" + }, + "types": { + "api": "API", + "rtc": "@:remoteToolsConnector.title" + } + }, + "useJinaLabel": "Use @:rtd.jina", + "google": { + "useLabel": "Use @:rtd.settings.google", + "apiKey": { + "placeholder": "@:rtd.settings.google @:apiKey" + }, + "cseIdLabel": "Motore di ricerca personalizzato ID", + "cseIdPlaceholder": "@:rtd.settings.google @:rtd.google.cseIdLabel" + }, + "brave": { + "useLabel": "Use @:rtd.settings.brave", + "resultFilter": "Filtra Risultati", + "apiKey": { + "placeholder": "@:rtd.settings.brave @:apiKey" + } + }, + "searXng": { + "title": "SearXNG", + "engines": { + "title": "Motori", + "placeholder": "Elenco separato da virgola di motori da usare es. google, brave etc." + }, + "extraParams": { + "title": "Parametri Aggiuntivi", + "placeholder": "Aggiungi parametri aggiuntivi. Questo dovrebbe essere un oggetto JSON valido." + }, + "notice": "Il tuo server SearXNG deve avere JSON abilitato ed essere servito tramite HTTPS. Per una soluzione alternativa su HTTP su alcuni browser, consulta la nostra documentazione su https://docs.msty.studio", + "useLabel": "Use @:rtd.searXng.title" + }, + "tavily": { + "title": "Tavily", + "useLabel": "Use @:rtd.tavily.title", + "searchTopic": { + "title": "Argomento di Ricerca", + "placeholder": "Categoria di ricerca", + "general": "Generale", + "news": "Notizie", + "finance": "Finanza" + }, + "apiKey": { + "placeholder": "Enter @:rtd.tavily.title @:apiKey" + }, + "searchDepth": { + "title": "Profondità di Ricerca", + "placeholder": "Profondità della ricerca", + "advanced": "Avanzato", + "basic": "Base" + }, + "timeRange": { + "title": "Intervallo di Tempo", + "placeholder": "Intervallo di tempo indietro dalla data corrente" + } + }, + "exa": { + "title": "Exa", + "useLabel": "Use @:rtd.exa.title", + "apiKey": { + "placeholder": "Inserisci @:rtd.exa.title @:apiKey" + } + }, + "ollama": { + "title": "Ollama", + "useLabel": "Use @:rtd.ollama.title", + "apiKey": { + "placeholder": "Inserisci @:rtd.ollama.title @:apiKey" + } + }, + "disableRTD": { + "label": "Disabilita @:rtd.title", + "successMessage": { + "detail": "@:rtd.title disabilitato" + }, + "errorMessage": { + "detail": "Impossibile disabilitare @:rtd.title" + } + } + }, + "remoteToolsConnector": { + "title": "Servizio Remoto", + "connectionRequired": "Per usare questa funzionalità, devi connetterti con @:remoteToolsConnector.title{'.'}", + "experimentalInfo": "RTD è sperimentale e potrebbe non funzionare come previsto.", + "isConnectedTooltip": "@:remoteToolsConnector.title - Connesso", + "isDisconnectedTooltip": "@:remoteToolsConnector.title - Disconnesso", + "connectNow": "@:connect with @:remoteToolsConnector.title", + "connectFirst": "@:connect @:remoteToolsConnector.title first", + "reconnectNow": "@:reconnect with @:remoteToolsConnector.title", + "disconnectNow": "@:disconnect Now", + "checkHealth": "Controlla lo stato della connessione", + "connectionDetails": "Modifica i dettagli della connessione", + "noPermissionPolicy": "Non hai il permesso di accedere a questa funzionalità", + "connect": { + "form": { + "title": "Connetti a @:remoteToolsConnector.title", + "saveAndConnect": "Salva e Connetti", + "rememberConnectionInfo": "Ricorda @:connectionInfo" + }, + "import": { + "title": "@:import @:connectionInfo", + "dragAndDropMessage": "Trascina e rilascia il file di configurazione della connessione remota Msty per importarlo e connetterti a @:remoteToolsConnector.title{'.'}", + "successMessage": { + "detail": "@:connectionInfo importato" + }, + "errorMessage": { + "detail": "Impossibile importare @:connectionInfo" + } + }, + "export": { + "title": "Esporta @:connectionInfo Salvato", + "successMessage": { + "detail": "@:connectionInfo esportato" + }, + "errorMessage": { + "detail": "Impossibile esportare @:connectionInfo" + } + }, + "successMessage": { + "summary": "Connesso!", + "detail": "@:remoteToolsConnector.title connesso a {url}" + }, + "errorMessage": { + "detail": "Impossibile connettersi con @:remoteToolsConnector.title{'.'} Assicurati che @:remoteToolsConnector.title sia in esecuzione e accessibile all'URL fornito.", + "tokenMissing": "Token mancante. Per favore, controlla il token e riprova." + }, + "forgetConnectionInfo": "Dimentica @:connectionInfo Precedente", + "forgetSuccessMessage": { + "detail": "@:connectionInfo dimenticato" + }, + "toolCommandPaths": { + "title": "Percorsi dei Comandi degli Strumenti", + "description": "Se stai usando Toolsets, imposta i percorsi dei comandi che stai usando.", + "selectPlaceholder": "@:select or enter a command", + "pathPlaceholder": "Inserisci il percorso completo del comando", + "assignPath": "Assegna @:path" + } + }, + "disconnect": { + "successMessage": { + "summary": "Disconnesso!", + "detail": "Disconnesso da @:remoteToolsConnector.title" + } + } + }, + "forge": { + "forgeMode": { + "title": "Modalità Forge", + "description": "La modalità Forge ti offre una tela bianca e un potente scrittore per creare, modificare, stilizzare e perfezionare contenuti liberamente." + }, + "title": "Forge", + "forgeContent": "@:forge.title Content", + "forgingContent": "Creazione Contenuti", + "editRawMarkdown": "Modifica Markdown Grezzo", + "editAsBranch": "Modifica come Branch", + "disabledEditRawMarkdown": "Questo contenuto è stato forgiato. La modifica del markdown grezzo non è consentita.", + "saveChanges": { + "title": "Salva Modifiche", + "successMessage": { + "detail": "Modifiche salvate" + }, + "errorMessage": { + "detail": "Impossibile salvare le modifiche" + } + }, + "placeholders": { + "writeSomething": "Scrivi qualcosa o digita / per le opzioni...", + "detailsSummary": "Inserisci un riassunto dei dettagli" + }, + "prompts": { + "simplify": "Semplifica", + "fixSpellingAndGrammar": "Correggi Ortografia e Grammatica", + "makeShorter": "Rendi più breve", + "makeLonger": "Rendi più lungo", + "tldr": "TL;DR;", + "emojify": "Aggiungi Emoji", + "changeTone": { + "title": "@:change Tone", + "academic": "Accademico", + "business": "Business", + "casual": "Casual", + "childFriendly": "Adatto ai Bambini", + "conversational": "Conversazionale", + "emotional": "Emotivo", + "humorous": "Umoristico", + "informative": "Informativo", + "inspirational": "Ispiratore", + "professional": "Professionale", + "narrative": "Narrativo", + "objective": "Obiettivo", + "persuasive": "Persuasivo", + "poetic": "Poetico" + } + }, + "clearFormatting": "Rimuovi Formattazione", + "bold": "Grassetto", + "italic": "Corsivo", + "underline": "Sottolineato", + "strikethrough": "Barrato", + "code": "Codice", + "codeBlock": "Blocco di Codice", + "blockQuote": "Citazione", + "undo": "Annulla", + "redo": "Ripeti", + "texts": "Testi", + "paragraph": "Paragrafo", + "heading1": "Titolo 1", + "heading2": "Titolo 2", + "heading3": "Titolo 3", + "lists": "Liste", + "bulletList": "Lista Puntata", + "numberedList": "Lista Numerata", + "taskList": "Lista di Attività", + "whatToForgePlaceholder": "Cosa vuoi forgiare oggi?", + "forgeWriter": "Scrittore Forge", + "contentType": "Tipo di Contenuto", + "moreOptions": "Più Opzioni", + "inlinePrompt": { + "placeholder": "Inserisci il tuo prompt personalizzato...", + "ask": "Chiedi", + "askTooltip": "Chiedi al modello di generare una risposta basata su un prompt personalizzato" + }, + "forgeCanvas": "@:forge.title Canvas", + "newForgeCanvas": "Nuovo @:forge.forgeCanvas", + "addNewForgeCanvas": "Aggiungi Nuovo @:forge.forgeCanvas" + }, + "agentMode": { + "title": "Modalità Agente", + "description": "La modalità Agente ti permette di interagire con agenti di codifica AI tramite Agent Client Protocol", + "newAgentSession": "Nuova Sessione Agente", + "selectAgent": "Seleziona Agente", + "selectWorkspace": "Seleziona Workspace", + "connecting": "Connessione...", + "connected": "Connesso", + "disconnected": "Disconnesso", + "agentNotInstalled": "Agente non installato", + "rollback": "Rollback a qui", + "rollbackBeforeMessage": "Rollback prima di questo messaggio", + "rollbackToMessage": "Rollback a questo messaggio", + "modes": { + "ask": "ASK", + "act": "ACT", + "plan": "PLAN" + } + }, + "preview": "Anteprima", + "prompt": "Prompt | Prompts", + "discard": "Scarta", + "insert": "Inserisci", + "regenerate": "Rigenera", + "rewrite": "Riscrivi", + "exit": "Esci", + "customPrompt": "Prompt Personalizzato", + "markdown": "Markdown", + "json": "JSON", + "html": "HTML", + "formatted": "Formattato", + "invalidJson": "Invalid @:json", + "downloadMarkdown": "@:download as @:markdown file", + "downloadJson": "@:download as @:json file", + "downloadHTML": "@:download as HTML file", + "copyMarkdownToClipboard": "Copia @:markdown negli Appunti", + "copyHTMLToClipboard": "Copia HTML negli Appunti", + "copyFormattedToClipboard": "Copia Testo negli Appunti", + "copiedToClipboard": { + "summary": "Copiato!", + "markdownDetail": "Contenuto copiato negli appunti come @:markdown", + "htmlDetail": "Contenuto copiato negli appunti come HTML", + "formattedDetail": "Contenuto copiato negli appunti come testo formattato", + "jsonDetail": "Contenuto copiato negli appunti come @:json", + "itemCopied": "{item} copiato negli appunti" + }, + "exportJsonToClipboard": "Contenuto esportato negli appunti come @:json", + "variable": "Variabile | Variabili", + "pinItem": { + "title": "@:pinned {item}", + "action": "Pin {item}", + "successMessage": { + "detail": "{item} pinnato" + }, + "errorMessage": { + "detail": "Impossibile pinnare {item}" + } + }, + "unpinItem": { + "action": "Rimuovi Pin da {item}", + "successMessage": { + "detail": "{item} rimosso da pinned" + }, + "errorMessage": { + "detail": "Impossibile rimuovere pin da {item}" + } + }, + "setDefaultItem": { + "title": "{item} default", + "action": "Imposta {item} come default", + "successMessage": { + "detail": "{item} impostato come default" + }, + "errorMessage": { + "detail": "Impossibile impostare {item} come default" + } + }, + "unsetDefaultItem": { + "action": "Rimuovi default da {item}. Clicca per rimuovere.", + "successMessage": { + "detail": "{item} rimosso come default" + } + }, + "model": "Modello", + "fallbackModel": { + "selectModel": "Seleziona Modello di Fallback", + "hint": "Usato quando nessun modello è configurato" + }, + "modelSelector": { + "filterControls": { + "title": "Ordina e Visualizza", + "searchPlaceholder": "Cerca modelli...", + "clear": "Reset", + "providerSort": { + "label": "Ordinamento per Provider", + "none": "Nessuno", + "name": "Nome", + "createdAt": "Data di Creazione", + "ascending": "Ascendente", + "descending": "Discendente", + "groupByProvider": "Raggruppa per Provider" + }, + "modelSort": { + "label": "Ordinamento Modelli", + "none": "Nessuno", + "name": "Nome", + "recent": "Recente", + "ascending": "Ascendente", + "descending": "Discendente" + }, + "purpose": { + "label": "Filtra per scopo", + "placeholder": "Tutti gli scopi" + } + } + }, + "modelSettings": "@:model Settings", + "syncSplit": "Sync @:split", + "name": "Nome", + "split": "Split | Splits", + "template": "Template | Templates", + "discardChanges": "Scarta Modifiche", + "applyChanges": "Applica Modifiche", + "splitPreset": { + "title": "Split @:preset | Split @:preset", + "selectPlaceholder": "@:select a @:preset", + "new": "New @:preset", + "newSplit": "New @:split", + "sync": "Sync", + "updateSync": "Aggiorna Sync", + "unsync": "Unsync", + "syncEntities": { + "systemPrompt": "System Prompt", + "userPrompt": "User Prompt", + "attachments": "Allegati", + "rtdInfo": "Dati in Tempo Reale", + "liveContextInfo": "Contesti Live", + "toolsets": "Toolsets" + }, + "splits": { + "splitIndex": "Split {index}", + "delete": "@:delete @:preset" + }, + "import": { + "title": "Import @:preset | Import @:preset", + "dragAndDropMessage": "Drag-and-drop un file di preset Msty zippato per importare e creare nuovi preset. In caso di nomi duplicati, i preset importati verranno rinominati. Puoi cambiarli in seguito.", + "successMessage": { + "detail": "@:preset importato" + }, + "errorMessage": { + "detail": "Impossibile importare i preset" + } + }, + "export": { + "title": "Esporta @:preset | Esporta @:preset", + "selected": "Esporta @:preset selezionati | Esporta @:preset selezionati", + "successMessage": { + "detail": "Split preset esportato come {fileName} | Split presets esportati come {fileName}" + }, + "errorMessage": { + "detail": "Impossibile esportare il preset | Impossibile esportare i preset" + } + }, + "delete": { + "title": "@:delete @:preset | Delete @:preset", + "selected": "@:delete @:preset selezionati | Delete @:preset selezionati", + "deleteConfirmation": { + "header": "@:delete @:preset", + "description": "Sei sicuro di voler eliminare {presetName}? | Sei sicuro di voler eliminare {count} preset?" + }, + "successMessage": { + "detail": "Split preset eliminato | Split presets eliminati" + }, + "errorMessage": { + "detail": "Impossibile eliminare il preset | Impossibile eliminare i preset" + } + }, + "update": { + "successMessage": { + "detail": "Split preset aggiornato" + }, + "errorMessage": { + "detail": "Impossibile aggiornare il preset" + } + }, + "save": { + "successMessage": { + "detail": "Split preset salvato" + }, + "errorMessage": { + "detail": "Impossibile salvare il preset" + } + }, + "empty": { + "title": "Nessun @:splitPreset.title disponibile.", + "description": "Inizia aggiungendo o importando un nuovo @:splitPreset.title" + }, + "invalidTemplatesMessage": { + "summary": "Template non validi", + "detail": "Alcuni template non sono validi o mancano campi obbligatori. Correggili prima di continuare." + } + }, + "shadowPersonas": { + "title": "Shadow Personas", + "create": "Crea Shadow Persona", + "editTitle": "Modifica Shadow Persona", + "assignedPersona": "Persona Assegnata", + "changePersona": "Cambia Persona", + "changePersonaTitle": "Cambia Shadow Persona", + "currentPersona": "Persona Corrente", + "selectNewPersona": "Seleziona Nuova Persona", + "waitingForCompletion": "In attesa di completamento", + "changePersonaWarning": "Cambiare la persona resetterà il contesto di analisi e potrebbe influire sulla continuità.", + "unassigned": "Nessuna Persona Assegnata", + "hideSidebar": "Nascondi Shadow Personas", + "showSidebar": "Mostra Shadow Personas", + "noMonitoring": "Nessuno split monitorato", + "monitoringHiddenHint": "Monitora {count} split (click to show) | Monitora {count} splits (click to show)", + "monitoringSplitsHint": "Monitora {count} split | Monitora {count} splits", + "noSplitsMonitoredHint": "Nessuno split monitorato", + "monitoringStatus": "Monitora {count} split | Monitora {count} splits", + "activate": "Attiva", + "deactivate": "Disattiva", + "processNow": "Processa Ora", + "processing": "Processing...", + "createAndAssign": "Crea e Assegna", + "latestInsight": "Ultima Insight", + "noOutputYet": "Nessun output ancora", + "outputs": "Outputs", + "viewLatest": "Visualizza Ultima", + "viewHistory": "Visualizza Cronologia", + "noHistory": "Nessuna cronologia disponibile", + "selectVersion": "Seleziona Versione", + "name": "Nome Shadow Persona", + "namePlaceholder": "e.g., Technical Analyst, Performance Monitor", + "edit": "Modifica Shadow Persona", + "switchShadowPersona": "Cambia Shadow Persona", + "selectShadowPersonaToSwitch": "Seleziona una shadow persona a cui passare", + "selectShadowPersona": "Seleziona Shadow Persona", + "searchShadowPersonas": "Cerca shadow personas...", + "description": "Descrizione (Opzionale)", + "descriptionPlaceholder": "Descrivi cosa osserva o analizza questa shadow persona", + "selectPersona": "Seleziona Persona", + "selectPersonaPlaceholder": "Scegli una persona da usare", + "selectSplits": "Seleziona Split da Monitorare", + "selectSplitsPlaceholder": "Scegli split da monitorare", + "selectSplitsPlaceholderOptional": "Scegli split da monitorare (può essere impostato in seguito)", + "splitsCanBeAssignedLater": "Gli split possono essere assegnati e gestiti dinamicamente dopo la creazione", + "updateTrigger": "Trigger di Aggiornamento", + "messageInterval": "Intervallo Messaggi", + "timeInterval": "Intervallo Temporale", + "messagesPerSplit": "Messaggi per Split", + "maxContext": "Max Context", + "synthesisMode": "Modalità Sintesi", + "outputFormat": "Formato Output", + "maxProcessingTime": "Tempo Massimo di Elaborazione", + "versionManagement": "Gestione Versioni", + "maxVersions": "Max Versions", + "advancedSettings": "Impostazioni Avanzate", + "includeSystemMessages": "Includi Messaggi di Sistema", + "autoDeleteOld": "Elimina automaticamente vecchie versioni", + "waitingForSplits": "In attesa di split", + "processingNow": "Processing now", + "empty": { + "title": "Nessuna Shadow Persona", + "description": "Crea una Shadow Persona per monitorare e analizzare i tuoi split di conversazione" + }, + "unlock": "Sblocca Shadow Personas", + "experimental": "Sperimentale", + "experimentalInfo": "Shadow Personas è una funzionalità sperimentale che analizza le conversazioni e genera prospettive alternative e insight in parallelo.", + "noOutput": { + "title": "Nessun output ancora", + "description": "Questa Shadow Persona non ha ancora generato alcun output" + }, + "saveToEnableProcessing": "Salva questa conversazione per abilitare l'elaborazione Shadow Persona", + "delete": { + "title": "Elimina Shadow Persona", + "action": "Elimina", + "confirmMessage": "Sei sicuro di voler eliminare \"{name}\"? \"{name}\" verrà eliminato da tutte le conversazioni a cui è collegato. Questa azione non può essere annullata.", + "successMessage": "Shadow persona eliminata con successo", + "errorMessage": "Impossibile eliminare la shadow persona" + }, + "detach": { + "title": "Scollega Shadow Persona", + "action": "Scollega", + "confirmMessage": "Scollega \"{name}\" da questa conversazione? La shadow persona rimarrà disponibile per altre conversazioni.", + "successMessage": "Shadow persona scollegata con successo", + "errorMessage": "Impossibile scollegare la shadow persona" + }, + "switch": { + "successMessage": "Shadow persona cambiata con successo", + "errorMessage": "Impossibile cambiare la shadow persona" + }, + "editToast": { + "successMessage": "Shadow persona aggiornata con successo", + "errorMessage": "Impossibile aggiornare la shadow persona" + }, + "createToast": { + "successMessage": "Shadow persona creata con successo", + "errorMessage": "Impossibile creare la shadow persona" + }, + "queueClearedToast": { + "summary": "Coda svuotata", + "detail": "Cancellato {cancelledCount} elemento in coda | Cancellati {cancelledCount} elementi in coda" + }, + "queueUpdatedToast": { + "summary": "Coda aggiornata", + "detail": "Cancellato {cancelledCount} elemento attivato automaticamente | Cancellati {cancelledCount} elementi attivati automaticamente" + }, + "queueFullToast": { + "summary": "Coda piena", + "detail": "La coda di elaborazione è piena. Attendi il completamento degli elementi correnti" + }, + "alreadyProcessingToast": { + "summary": "Elaborazione in corso", + "detail": "Questa conversazione è già in fase di elaborazione" + }, + "trigger": { + "everyMessage": "Ogni Messaggio", + "everyNMessages": "Ogni {n} Messaggi", + "manual": "Solo Manuale", + "timeInterval": "Intervallo di Tempo", + "automatic": "Automatico" + }, + "triggerHints": { + "everyMessage": "Si attiva dopo ogni messaggio (più veloce, più frequente)", + "everyNMessages": "Si attiva dopo {n} messaggi (in batch)", + "manual": "Solo quando clicchi Process Now" + }, + "synthesis": { + "auto": "Auto", + "combined": "Analisi Combinata", + "perSplit": "Per Split", + "comparative": "Comparativa" + }, + "synthesisHints": { + "auto": "Sceglie la modalità migliore in base agli split e all'intento", + "combined": "Un riassunto che copre tutti gli split", + "perSplit": "Mantiene ogni split separato e etichettato", + "comparative": "Confronto fianco a fianco di differenze e accordi" + }, + "synthesisAutoReasons": { + "singleSplit": "Auto userà Combined perché è presente un solo split.", + "multipleModels": "Auto userà Comparative perché sono in uso più modelli.", + "sameModel": "Auto userà Per Split perché gli split usano lo stesso modello." + }, + "format": { + "insights": "Insights", + "summary": "Riassunto", + "recommendations": "Raccomandazioni", + "analysis": "Analisi" + }, + "monitoringSplits": "Monitoraggio {count} split | Monitoraggio {count} split", + "locateSplits": "Individua split", + "manageSplits": "Gestisci Split", + "addAllSplits": "Aggiungi tutti gli split", + "deselectAll": "Deseleziona tutto", + "selectAll": "Seleziona tutto", + "selectedCount": "{count} di {total} selezionati", + "streaming": "Streaming", + "starting": "Starting", + "collectingContext": "Raccolta del contesto dagli split...", + "waitingForConversationCompletion": "In attesa del completamento della conversazione", + "analyzingConversationSplits": "Analisi degli split della conversazione...", + "analyzeResponses": "Shadow Persona analizzerà una volta ricevute tutte le risposte", + "toolCalls": "Chiamate Strumento", + "reasoning": "Ragionamento", + "stopProcessing": "Interrompi elaborazione", + "attachExisting": "Collega Esistente", + "attachTitle": "Collega Shadow Persona", + "previousVersion": "Versione Precedente", + "nextVersion": "Versione Successiva", + "attach": "Collega", + "selectShadowPersonaToAttach": "Seleziona una shadow persona da collegare a questa conversazione", + "selectShadowPersonaPlaceholder": "Scegli una shadow persona da collegare", + "queuedPosition": "In coda #{position}", + "addToQueue": "Aggiungi alla coda", + "processingQueue": "Coda di elaborazione", + "removeFromQueue": "Rimuovi dalla coda", + "removedFromQueue": "Rimosso dalla coda", + "inQueue": "in coda", + "clearQueue": "Cancella tutto", + "queueEmpty": "Nessun elemento in coda", + "estimatedWait": "Attesa stimata: {time}", + "queuedItems": "{count} elemento in coda | {count} elementi in coda", + "monitoring": "Monitoraggio e Coda", + "monitoredSplits": "Split Monitorati" + }, + "toolbox": { + "title": "Toolbox", + "toolsUsageWillSkip": "Msty @:remoteToolsConnector.title non è in esecuzione; l'uso degli strumenti verrà saltato.", + "tools": { + "title": "Tool | Tools", + "description": "Una collezione di strumenti per aiutarti con il tuo lavoro LLM.", + "availableTools": "Strumenti Disponibili", + "availableToolsets": "Toolset Disponibili", + "authorize": "Autorizza", + "authorization": "Autorizzazione", + "authorizationFailed": "Impossibile avviare l'autorizzazione", + "authorizationStarted": "Il flusso di autorizzazione è iniziato. Completalo nel tuo browser.", + "setDefaultParams": "Imposta Parametri Predefiniti", + "setParams": "Imposta Parametri", + "missingThisDependency": "Questa dipendenza sembra mancare dal tuo ambiente. Senza di essa, lo strumento potrebbe non funzionare come previsto.", + "defaultParamsForm": { + "header": "Parametri Predefiniti per {toolName}", + "description": "Questi parametri verranno utilizzati globalmente per tutte le istanze dello strumento {toolName}. Puoi sovrascriverli quando crei un toolset.", + "args": { + "label": "Argomenti", + "description": "@:seleziona un @:argomento e imposta il suo valore. Lascialo vuoto per saltare l'impostazione di un valore.", + "customArg": { + "label": "Custom @:argomento", + "description": "Inserisci il nome del nuovo @:argomento{'.'} Separa più argomenti con una virgola.", + "placeholder": "es. --arg1, someArg, -verbose" + } + }, + "env": { + "label": "Variabili d'Ambiente", + "description": "@:seleziona o inserisci una nuova @:variabile d'ambiente e imposta il suo valore.", + "addEnv": "Aggiungi @:variabile d'ambiente", + "selectPlaceholder": "@:seleziona una @:variabile d'ambiente", + "enterNew": "Aggiungi una nuova @:variabile d'ambiente" + }, + "successMessage": { + "saveDetail": "Parametri predefiniti salvati per {toolName}." + }, + "errorMessage": { + "saveDetail": "Impossibile salvare i parametri predefiniti." + } + }, + "addNewTool": { + "title": "Aggiungi Nuovo Strumento", + "description": "Aggiungi il tuo strumento compatibile MCP alla toolbox. Una volta aggiunto, puoi aggiungerlo a un toolset, impostare i parametri e usarlo con un modello.", + "namePlaceholder": "Dagli un nome (usa l'ID dello strumento per impostazione predefinita)", + "id": { + "label": "ID Strumento", + "placeholder": "Identificatore univoco dello strumento (riempito automaticamente se rilevato dalla configurazione)" + }, + "duplicateId": "Uno strumento con questo ID esiste già. Inserisci un ID univoco.", + "successMessage": { + "summary": "Strumento Aggiunto", + "detail": "Strumento aggiunto alla toolbox. Ora puoi aggiungerlo a un toolset e usarlo con un modello." + }, + "successMessageWithToolset": { + "summary": "Strumento Aggiunto", + "detail": "Strumento aggiunto alla toolbox e creato un toolset corrispondente. È pronto per l'uso con un modello." + }, + "errorMessage": { + "detail": "Impossibile aggiungere lo strumento alla toolbox. {error}" + }, + "toolConfig": { + "label": "Configurazione Strumento", + "placeholder": "Inserisci o incolla la configurazione JSON dello strumento. Accetta configurazioni dirette o formati avvolti (estrarrà automaticamente l'ID dello strumento)", + "showExampleTitle": "Mostrami un esempio di configurazione di strumento", + "explanation": "La configurazione dello strumento accetta più formati, incluse configurazioni avvolte con mcpServers. Estrarrà automaticamente l'ID e il nome dello strumento quando possibile. Deve contenere almeno {command}. Gli argomenti dinamici devono essere racchiusi tra parentesi graffe {curly} come segue: {argExample}. Allo stesso modo, le variabili d'ambiente dinamiche possono essere impostate usando {envVarLabel}." + }, + "autoCreateToolset": { + "label": "Crea automaticamente un toolset con lo stesso nome" + } + }, + "editTool": { + "title": "Modifica Strumento", + "description": "Aggiorna il nome, le note e la configurazione dello strumento.", + "successMessage": { + "detail": "Strumento @:updatedSuccess" + }, + "errorMessage": { + "detail": "@:failedToUpdate strumento." + } + }, + "emptyPlaceholder": { + "description1": "Usa strumenti MCP esterni alimentati da Msty @:remoteToolsConnector.title per estendere le capacità dei tuoi modelli e migliorare la tua esperienza LLM.", + "description2": "Puoi iniziare importando molti degli strumenti forniti da Msty o aggiungendo i tuoi strumenti.", + "description3": "Nota: Questi strumenti non sono forniti, testati o mantenuti da Msty. Stiamo semplicemente fornendo una piattaforma per usarli e permettendo di importarli come comodità. USALI A TUO RISCHIO. Msty non è responsabile per eventuali problemi che potrebbero derivare dall'uso di questi strumenti. Inoltre, per il supporto, contatta l'autore dello strumento." + }, + "importTools": { + "title": "Importa Default @:toolbox.tools.title", + "successMessage": { + "detail": "{count} strumenti predefiniti importati con successo. Puoi creare toolset e usarli con un modello." + }, + "successMessageWithToolsets": { + "detail": "{count} strumenti predefiniti importati con successo e {toolsetCount} toolset corrispondenti creati automaticamente." + }, + "errorMessage": { + "detail": "Impossibile importare default @:toolbox.tools.title" + } + }, + "deleteConfirmation": { + "header": "Elimina Strumento", + "description": "Sei sicuro di voler eliminare {toolName}?", + "successMessage": { + "detail": "Strumento eliminato" + }, + "errorMessage": { + "detail": "@:failedToDelete strumento" + } + }, + "deleteAll": { + "confirmationHeader": "Elimina Tutti gli Strumenti", + "confirmationMessage": "Sei sicuro di voler eliminare tutti gli strumenti? Questa azione non può essere annullata.", + "successMessage": "Tutti gli strumenti sono stati eliminati con successo", + "errorMessage": "Impossibile eliminare tutti gli strumenti" + }, + "folderForm": { + "updateSuccessMessage": { + "detail": "@:folder aggiornato" + }, + "updateErrorMessage": { + "detail": "Impossibile aggiornare @:folder" + }, + "createSuccessMessage": { + "detail": "@:folder creato" + }, + "createErrorMessage": { + "detail": "Impossibile creare @:folder" + }, + "deleteConfirmation": { + "header": "Elimina @:folder", + "message": "Sei sicuro di voler eliminare {folderName}? Questo eliminerà la cartella e i suoi elementi.", + "successMessage": { + "detail": "@:folder eliminato" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:folder" + } + }, + "deleteItemsConfirmation": { + "header": "Elimina Elementi", + "message": "Sei sicuro di voler eliminare tutti gli elementi in {folderName}? La cartella rimarrà.", + "successMessage": { + "detail": "Elementi eliminati" + }, + "errorMessage": { + "detail": "Impossibile eliminare elementi" + } + } + }, + "copiedToClipboard": "Configurazione dello strumento copiata negli appunti", + "viewToolsUsage": { + "title": "Visualizza Utilizzo Strumenti", + "noToolCalls": { + "title": "Nessuna Chiamata a Strumento Trovata", + "description": "Sembra che ci fossero alcuni strumenti disponibili per il modello ma non ha effettuato chiamate a strumenti. Questo potrebbe essere dovuto al fatto che il modello non aveva bisogno di usare strumenti." + } + } + }, + "toolsets": { + "title": "Toolset | Toolsets", + "emptyPlaceholder": { + "title": "Nessun Toolset trovato", + "description": "I toolset sono una raccolta di strumenti con parametri. Puoi creare un toolset e aggiungere strumenti ad esso. Quando chatti con un modello, puoi selezionare uno o più toolset da usare con il modello." + }, + "addSomeTools": "Per iniziare, aggiungi alcuni strumenti.", + "noTools": "Nessuno strumento in questo toolset", + "tooltip": { + "selectedFeatures": "Funzionalità abilitate", + "loading": "Caricamento dettagli funzionalità…", + "allFeatures": "Tutte le funzionalità", + "unavailable": "Impossibile caricare i dettagli della funzionalità" + }, + "addNewToolset": { + "title": "Aggiungi Nuovo Toolset", + "description": "Crea un nuovo toolset per raggruppare gli strumenti. Puoi aggiungere strumenti al toolset e usarlo con un modello. Assicurati di impostare/sovrascrivere i parametri per ogni strumento nel toolset cliccando sul pulsante {icon}.", + "setParams": { + "title": "Imposta Parametri per {toolName}", + "description": "Imposta i parametri per lo strumento {toolName}. Puoi sovrascrivere i parametri predefiniti impostati per lo strumento. Usa la Console Strumenti per testare lo strumento, visualizzare le funzionalità disponibili e limitare le funzionalità se necessario." + }, + "successMessage": { + "saveDetail": "Toolset salvato e aggiunto alla toolbox. Ora puoi usarlo con un modello." + }, + "errorMessage": { + "saveDetail": "@:failedToSave toolset." + } + }, + "editToolset": { + "title": "Modifica Toolset", + "description": "Modifica il nome e le note del toolset. Puoi anche aggiungere o rimuovere strumenti dal toolset e modificare i parametri o limitare le funzionalità per ogni strumento cliccando sul pulsante {icon}.", + "successMessage": { + "detail": "Toolset @:updatedSuccess" + }, + "errorMessage": { + "detail": "@:failedToUpdate toolset." + } + }, + "deleteConfirmation": { + "header": "Elimina Toolset", + "description": "Sei sicuro di voler eliminare {toolsetName}?", + "successMessage": { + "detail": "Toolset eliminato" + }, + "errorMessage": { + "detail": "Impossibile eliminare toolset" + } + }, + "deleteAll": { + "confirmationHeader": "Elimina Tutti i Toolset", + "confirmationMessage": "Sei sicuro di voler eliminare tutti i toolset? Questa azione non può essere annullata.", + "successMessage": "Tutti i toolset sono stati eliminati con successo", + "errorMessage": "Impossibile eliminare tutti i toolset" + }, + "export": { + "title": "Esporta Toolset", + "description": "Per motivi di sicurezza, i valori di configurazione sensibili possono essere rimossi prima dell'esportazione. Seleziona quali variabili d'ambiente e argomenti eliminare per ogni strumento.", + "envVarsToScrub": "Variabili d'ambiente da eliminare", + "argsToScrub": "Argomenti da eliminare", + "scrubCustomArgs": "Elimina stringa argomenti personalizzati", + "selectEnvVarsPlaceholder": "Seleziona variabili d'ambiente da rimuovere", + "selectArgsPlaceholder": "Seleziona argomenti da rimuovere", + "noScrubbableData": "Nessun dato di configurazione da eliminare", + "sensitiveDataNote": "I valori sensibili comuni sono preselezionati per la tua sicurezza.", + "copiedToClipboard": "Configurazione del toolset copiata negli appunti", + "downloadedAsJson": "Configurazione del toolset scaricata", + "fetchError": "Impossibile recuperare i dati del toolset per l'esportazione" + }, + "import": { + "missingTools": "Alcuni strumenti non sono stati trovati e saltati: {tools}" + }, + "noOfTools": "{count} strumento | {count} strumenti", + "viewToolsAndNotes": "Visualizza Strumenti e Note", + "console": { + "title": "Console Strumenti", + "description": "Puoi usare questa console per testare {toolName} e vedere l'output. Puoi anche usarla per testare lo strumento con parametri diversi o limitare le funzionalità disponibili. Tutte le funzionalità sono abilitate per impostazione predefinita, seleziona le caselle di controllo per limitare le funzionalità solo a quelle selezionate.", + "listTools": "Elenca le funzionalità di {toolName}", + "missingRequiredArgument": "Mancano {count} @:argument richiesti", + "continueWithMissingArgs": "@:continue with Missing @:argument", + "viewSourceOnGitHub": "Visualizza Sorgente su GitHub", + "allowedFeaturesLabel": "Abilita funzionalità specifiche per questo strumento", + "allowedFeaturesPlaceholder": "Cerca o scegli funzionalità da consentire", + "selectedFeaturesLabel": "Funzionalità attualmente abilitate", + "toolCall": { + "title": "Chiamata allo Strumento", + "description": "Aggiungi le proprietà richieste per chiamare {featureName}. Puoi aggiungere proprietà extra se vuoi. Fai attenzione a chiamare lo strumento così com'è, specialmente senza i valori giusti.", + "selectPlaceholder": "@:select a property", + "enterNew": "Add a new property", + "execute": "Esegui @:toolbox.toolsets.console.toolCall" + } + }, + "manageTooltip": "Clicca per gestire i toolset usati", + "noModelSupport": "@:select model may not support tools.", + "toolsetsUsedCount": "{count} Active Toolset | {count} Active Toolsets" + } + }, + "liveContexts": { + "liveContextsUsedCount": "{count} Live Context Attivo | {count} Live Context Attivi", + "title": "Live @:context", + "contexts": "Live Contexts", + "untitled": "Live Context Senza Titolo", + "selectSource": "Seleziona Origine", + "selectSourceTooltip": "Attiva/disattiva per includere o escludere questa origine dal contesto", + "addNew": { + "title": "Aggiungi Nuovo @:liveContexts.title", + "description": "Crea una nuova origine @:liveContexts.title per aggiungere contesto di dati esterni alla tua conversazione.", + "errorMessage": { + "detail": "Impossibile aggiungere @:liveContexts.title" + }, + "successMessage": { + "detail": "@:liveContexts.title aggiunto" + } + }, + "edit": { + "title": "Modifica @:liveContexts.title" + }, + "promptPlaceholder": "Fornisci qui un prompt per la modalità Push; includi eventuali dettagli per la modalità Pull nella sezione Note.", + "endpointDetails": "Dettagli Endpoint", + "method": "Metodo", + "url": "URL", + "customHeaders": "Intestazioni Personalizzate", + "hasBody": "Ha un Corpo", + "customProcessing": "Elaborazione Personalizzata", + "promptTemplate": "Template del Prompt", + "requestHeaders": { + "title": "Intestazioni della Richiesta", + "description": "Aggiungi intestazioni di richiesta come oggetto JSON. Queste verranno inviate con la richiesta all'endpoint API.", + "placeholder": "{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}" + }, + "requestBody": { + "title": "Corpo della Richiesta", + "description": "Aggiungi corpo della richiesta come oggetto JSON. Questo verrà inviato con la richiesta all'endpoint API.", + "placeholder": "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}" + }, + "placeholders": { + "title": "Segnaposti Dinamici", + "tooltip": "Sintassi segnaposto", + "label": "Segnaposti:" + }, + "processingFunction": { + "title": "Funzione di Elaborazione", + "description": "Aggiungi una funzione di elaborazione per trasformare i dati della risposta prima di usarli nella conversazione. La funzione deve restituire una stringa.", + "placeholderHeader": "function process({'{'}data, placeholders{'}'}) {'{'}", + "placeholder": " // accedi a data e ai placeholders opzionali\n return JSON.stringify(data)", + "placeholderFooter": "{'}'}", + "tooltip": "Accesso tramite parametro placeholders", + "usePlaceholders": "Usa placeholders nel codice:" + }, + "testVariables": { + "description": "Inserisci valori di test per i segnaposti rilevati per testare l'endpoint." + }, + "update": { + "successMessage": { + "detail": "@:liveContexts.title aggiornato" + }, + "errorMessage": { + "detail": "Impossibile aggiornare @:liveContexts.title" + } + }, + "deleteConfirmation": { + "header": "Elimina @:liveContexts.title", + "description": "Sei sicuro di voler eliminare {liveContextName}?", + "successMessage": { + "detail": "@:liveContexts.title eliminato" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:liveContexts.title" + } + }, + "emptyPlaceholder": { + "title": "Nessun @:liveContexts.title trovato", + "description": "I @:liveContexts.title sono contesti di dati esterni che puoi aggiungere alla tua conversazione. Puoi creare una nuova origine @:liveContexts.title e usarla con un modello." + }, + "deleteAll": { + "confirmationHeader": "Elimina Tutti i @:liveContexts.contexts", + "confirmationMessage": "Sei sicuro di voler eliminare tutti i live contexts? Questa azione non può essere annullata.", + "successMessage": "Tutti i live contexts sono stati eliminati con successo", + "errorMessage": "Impossibile eliminare tutti i live contexts" + }, + "importOOTB": { + "title": "Importa Default @:liveContexts.contexts", + "successMessage": "Importato con successo {count} live context predefinito | Importati con successo {count} live context predefiniti", + "errorMessage": "Impossibile importare i live contexts predefiniti" + }, + "export": { + "title": "Esporta @:liveContexts.title", + "headerScrubDescription": "Per motivi di sicurezza, i valori sensibili delle intestazioni possono essere rimossi prima dell'esportazione. Seleziona quali intestazioni eliminare.", + "selectHeadersToScrub": "Intestazioni da eliminare", + "selectHeadersPlaceholder": "Seleziona le intestazioni di cui rimuovere i valori", + "sensitiveHeadersNote": "Le intestazioni sensibili comuni sono preselezionate per la tua sicurezza.", + "copiedToClipboard": "Configurazione del live context copiata negli appunti", + "downloadedAsJson": "Configurazione del live context scaricata" + }, + "modeLabel": "Modalità", + "mode": { + "push": "Push", + "pull": "Pull", + "tooltip": { + "push": "Modalità Push: viene eseguita automaticamente prima che il modello risponda", + "pull": "Modalità Pull: chiamata su richiesta dal modello" + } + } + }, + "modes": { + "mode": "Modalità | Modalità", + "title": "@:modes.mode", + "exitMode": "Esci da @:modes.mode {mode}", + "zenMode": { + "title": "Zen", + "quote": "uno stato di calma attenzione", + "newConversation": "Nuova @:conversation.title @:modes.zenMode.title" + }, + "vaporMode": { + "title": "@:modes.mode @:modes.vaporMode.vapor", + "vapor": "Vapor", + "description": "Le conversazioni non verranno salvate nella cronologia e scompariranno quando disattivi questa modalità o selezioni un'altra pagina", + "willDisappearTooltip": "Questo scomparirà quando disattivi la @:modes.mode @:modes.vaporMode.vapor o selezioni un'altra pagina", + "exitVaporMode": "Esci da @:modes.mode @:modes.vaporMode.vapor", + "enterVaporMode": "Entra in @:modes.mode @:modes.vaporMode.vapor", + "preserverChat": { + "saveConversation": "@:save @:conversation.title", + "successMessage": { + "detail": "La chat @:modes.vaporMode.vapor è stata conservata" + }, + "errorMessage": { + "detail": "Impossibile conservare la chat @:modes.vaporMode.vapor" + } + } + }, + "focusMode": { + "title": "@:modes.mode Focus" + }, + "normalMode": { + "title": "@:modes.mode Normale" + } + }, + "searchForm": { + "query": "Ricerca", + "title": "Cerca Elementi", + "noResults": { + "title": "Nessun risultato trovato", + "description": "Prova a cercare un termine diverso" + }, + "entity": { + "conversationTextMessages": "@:conversation.title", + "promptsLibraryPrompts": "Prompt | Prompts" + }, + "foundResultsCount": "Trovato {count} risultato | Trovati {count} risultati", + "labels": { + "title": "Cerca {entity}", + "description": "Cerca {entity} rapidamente usando parole chiave", + "tips": { + "default": { + "description": "La ricerca corrisponde a tutte le parole per impostazione predefinita (es. {example} → corrisponde a testo contenente entrambe le parole in qualsiasi ordine)", + "example": "auto blu" + }, + "partial": { + "description": "Usa {operator} per corrispondenze parziali (es. {example})", + "operator": "*", + "example": "corr* → corre, correre" + }, + "or": { + "description": "Usa {operator} per cercare uno qualsiasi tra più termini (es. {example})", + "operator": "OR", + "example": "mela OR arancia" + }, + "exact": { + "description": "Usa le virgolette doppie {operator} per corrispondenze esatte (es. {example})", + "operator": "\"\"", + "example": "\"auto blu\"" + }, + "specialCharacters": { + "description": "Usa {operator} per proteggere i caratteri speciali (es. {example})", + "operator": "\"\"", + "example": "\"C++\", \"node.js\"" + } + } + } + }, + "clearSearch": "Cancella Ricerca", + "helpfulTips": "Suggerimenti Utili", + "hideSearch": "Nascondi Ricerca", + "bookmarkItem": { + "action": "@:bookmark {item}", + "jump": "Vai a {item} @:bookmarked", + "title": "{item} @:bookmarked", + "successMessage": { + "detail": "{item} @:bookmarked" + }, + "errorMessage": { + "detail": "Impossibile aggiungere {item} ai segnalibri" + }, + "deletedInfoMessage": { + "detail": "{item} @:bookmarked è stato eliminato" + }, + "emptyState": { + "title": "Nessun segnalibro disponibile.", + "description": "Inizia aggiungendo {item} ai segnalibri" + } + }, + "removeBookmarkedItem": { + "action": "Rimuovi {item} @:bookmarked", + "successMessage": { + "detail": "{item} rimosso dai segnalibri" + }, + "errorMessage": { + "detail": "Impossibile rimuovere {item} dai segnalibri" + } + }, + "turnstile": { + "title": "Turnstile | Turnstili", + "newTurnstile": "Nuovo @:turnstile.title", + "queueEntry": "Aggiungi alla Coda", + "selectPlaceholder": "@:select un @:turnstile.title", + "addQueueWithAlt": "Clicca per aprire o Alt+Clicca per aggiungere alla coda", + "entriesQueued": "Nessun @:entry in coda | {count}/{total} @:entry in Coda | {count}/{total} @:entry in Coda", + "emptyQueueMessage": "Una volta pronto il tuo prompt, clicca @:turnstile.queueEntry per aggiungere una voce alla coda.", + "manageSavedTurnstiles": "Gestisci Turnstili Salvati", + "saveForm": { + "title": "Salva @:turnstile.title Come", + "successMessage": { + "detail": "@:turnstile.title salvato." + }, + "errorMessage": { + "detail": "Impossibile salvare il turnstile." + } + }, + "loadTurnstiles": { + "title": "Carica @:turnstile.title", + "successMessage": { + "summary": "@:turnstile.title Caricato!", + "detail": "{count} voce caricata e messa in coda. | {count} voci caricate e messe in coda." + }, + "errorMessage": { + "detail": "Impossibile caricare il turnstile." + } + }, + "clearQueue": { + "title": "Svuota Coda", + "clearQueueConfirmation": { + "message": "Sei sicuro di voler svuotare la coda? Questo rimuoverà tutti i messaggi che hai aggiunto." + } + }, + "newEntry": { + "title": "Nuova Voce" + }, + "invalidEntriesMessage": { + "summary": "Voci Non Valide", + "detail": "Alcune voci non sono valide o mancano dei campi obbligatori. Correggile prima di continuare." + }, + "metaSendMissingRootNode": { + "detail": "Impossibile eseguire {metaType}. Assicurati che non sia la prima voce in coda." + }, + "update": { + "successMessage": { + "detail": "@:turnstile.title aggiornato." + }, + "errorMessage": { + "detail": "Impossibile aggiornare il turnstile. Hai impostato prompt e modello?" + } + }, + "save": { + "successMessage": { + "detail": "@:turnstile.title salvato." + }, + "errorMessage": { + "detail": "Impossibile salvare il turnstile. Hai impostato prompt e modello?" + } + }, + "delete": { + "selected": "Elimina @:turnstile.title Selezionato | Elimina @:turnstile.title Selezionati", + "deleteConfirmation": { + "header": "Elimina @:turnstile.title", + "description": "Sei sicuro di voler eliminare {turnstileName}? | Sei sicuro di voler eliminare {count} turnstili?" + } + }, + "empty": { + "title": "Nessun @:turnstile.title Disponibile.", + "description": "Inizia aggiungendo o importando un nuovo @:turnstile.title{'.'}" + }, + "new": "@:new @:turnstile.title", + "entryIndex": "@:entry {index}", + "addContinue": "Aggiungi @:message.renderingActions.continueGeneration", + "addRegenerate": "Aggiungi @:regenerate", + "addPersona": "Aggiungi @:persona.title", + "addShield": "Aggiungi @:contextShield.title", + "addShieldWithSummary": "Aggiungi @:contextShield.contextShieldWithSummary", + "import": { + "title": "Importa @:turnstile.title", + "dragAndDropMessage": "Fai drag-and-drop di un @:turnstile.title zippato di Msty per importare e creare nuovi turnstili. In caso di nomi duplicati, i turnstili importati verranno rinominati. Puoi cambiarli in seguito.", + "successMessage": { + "detail": "Turnstili importati" + }, + "errorMessage": { + "detail": "Impossibile importare i turnstili" + } + }, + "export": { + "title": "Esporta @:turnstile.title", + "selected": "Esporta @:turnstile.title Selezionato | Esporta @:turnstile.title Selezionati", + "successMessage": { + "detail": "@:turnstile.title esportato come {fileName} | @:turnstile.title esportati come {fileName}" + }, + "errorMessage": { + "detail": "Impossibile esportare @:turnstile.title | Impossibile esportare @:turnstile.title" + } + } + }, + "modelMatchmaker": { + "title": "Model Matchmaker", + "description": "Regola gli slider di gravità per punti di forza come codifica, ragionamento o matematica, e Matchmaker classificherà e consiglierà i migliori modelli per le tue esigenze. I risultati possono variare in base alla qualità dei dati, alle dimensioni del modello e alla complessità dell'attività.", + "ctaIntro": "Hai trovato il tuo modello?", + "ctaMessage": "Testa e confronta in Msty Studio.", + "gravity": "Gravità", + "remoteOnly": "Solo Remoto", + "rankedModels": { + "title": "Modelli Classificati", + "emptyMessage": "Nessun modello trovato. Prova a modificare i tuoi requisiti." + }, + "strengthsLabel": { + "ca": { + "title": "Programmazione", + "description": "La capacità di scrivere codice in un linguaggio di programmazione." + }, + "aca": { + "title": "Programmazione Agentica", + "description": "La capacità agentica di scrivere codice in un linguaggio di programmazione." + }, + "daa": { + "title": "Analisi @:data", + "description": "La capacità di analizzare dati e generare insight." + }, + "ifa": { + "title": "Esecuzione Istruzioni", + "description": "La capacità di seguire le istruzioni ed eseguire compiti." + }, + "jak": { + "title": "GOAT: Generalista per Ottime Prestazioni", + "description": "La capacità di eseguire una vasta gamma di compiti." + }, + "la": { + "title": "Linguaggio", + "description": "La capacità di comprendere e generare linguaggio umano." + }, + "ma": { + "title": "Matematica", + "description": "La capacità di eseguire calcoli matematici." + }, + "pp": { + "title": "Parafrasi", + "description": "Capacità di riscrittura dimostrata per riformulare qualsiasi testo." + }, + "ra": { + "title": "Ragionamento", + "description": "Pensiero Critico - la capacità di ragionare e prendere decisioni." + }, + "sim": { + "title": "Semplificazione", + "description": "La capacità di semplificare qualsiasi testo complesso." + }, + "stg": { + "title": "Generazione Storie", + "description": "La capacità di generare storie o narrazioni." + }, + "sum": { + "title": "Riassunto", + "description": "La capacità di riassumere informazioni testuali e numeriche." + }, + "tu": { + "title": "Uso Strumenti", + "description": "La capacità di richiamare e utilizzare strumenti esterni." + }, + "mit": { + "title": "Token di Input Massimi", + "description": "Il numero massimo di token accettati in una chiamata." + }, + "mot": { + "title": "Token di Output Massimi", + "description": "Il numero massimo di token generati in una chiamata." + }, + "ics": { + "title": "Risparmio Token Input", + "costTitle": "Costo Input/Milione Token", + "description": "Il risparmio sui costi di generazione dei token di input." + }, + "ocs": { + "title": "Risparmio Token Output", + "costTitle": "Costo Output/Milione Token", + "description": "Il risparmio sui costi di generazione dei token di output." + } + }, + "normalizedScore": "Punteggio Normalizzato", + "resetStrengths": "Ripristina Punti di Forza", + "savePresetForm": { + "title": "@:save Punti di Forza Come @:preset", + "errorMessage": { + "detail": "Impossibile salvare il preset dei punti di forza." + }, + "successMessage": { + "detail": "Preset dei punti di forza salvato." + }, + "loadedMessage": { + "detail": "Preset dei punti di forza caricato." + } + }, + "deletePresetConfirm": { + "title": "Elimina @:preset", + "message": "Sei sicuro di voler eliminare {presetName}?", + "errorMessage": { + "detail": "Impossibile eliminare il preset dei punti di forza." + }, + "successMessage": { + "detail": "Preset dei punti di forza eliminato." + } + } + }, + "costCalculator": { + "title": "Calcolatore Costi Modelli", + "description": "Calcola e confronta i costi per i modelli AI di OpenAI, Anthropic, Google e altri. Stima le tue spese in base all'uso dei token di input/output e ai prezzi del modello. Queste sono solo stime e i costi effettivi potrebbero variare.", + "tokenInputs": "Input Token", + "filters": "Filtri", + "ctaIntro": "Hai trovato il tuo modello?", + "ctaMessage": "Testa e confronta in Msty Studio." + }, + "vramCalculator": { + "title": "Calcolatore VRAM", + "description": "Verifica se un modello si adatta alla VRAM del tuo dispositivo prima di scaricarlo o eseguirlo. Questo calcolatore fornisce i requisiti stimati di VRAM in base all'architettura e alle dimensioni del modello. Seleziona una delle opzioni qui sotto per iniziare.", + "ctaIntro": "Hai trovato il tuo modello?", + "ctaMessage": "Testa e confronta in Msty Studio." + }, + "contextExplorer": { + "title": "Esploratore Contesto", + "description": "Esplora come funzionano le finestre di contesto LLM nei vari motori di inferenza. Visualizza l'uso della memoria, i limiti di concorrenza e cosa succede quando il contesto trabocca — per Ollama, vLLM, MLX e llama.cpp.", + "ctaIntro": "Pronto a provarlo tu stesso?", + "ctaMessage": "Esegui modelli localmente in Msty Studio." + }, + "copyOrMoveItemToWorkspace": { + "copyTitle": "Copia {item} nei Workspace", + "copyOrMoveTitle": "Copia/Sposta {item} nei Workspace", + "selectWorkspaces": "@:select Workspace", + "availableWorkspaces": "Workspace Disponibili", + "actionLabel": "Azione", + "inputLabel": { + "copy": "Copia {item} in uno o più workspace.", + "copyOrMove": "Copia/Sposta {item} in uno o più workspace.", + "edit": "Sincronizza questo provider con uno o più workspace. Se questo provider era già stato copiato in precedenza, verrà aggiornato. In caso contrario, verrà aggiunto." + }, + "successMessage": { + "copyDetail": "{item} copiato in {count} workspace | {item} copiati in {count} workspace", + "moveDetail": "{item} spostato in {count} workspace | {item} spostati in {count} workspace" + }, + "errorMessage": { + "copyDetail": "Impossibile copiare {item} in {count} workspace | Impossibile copiare {item} in {count} workspace", + "moveDetail": "Impossibile spostare {item} in {count} workspace | Impossibile spostare {item} in {count} workspace" + }, + "partialCopyWarningMessage": { + "summary": "Copiato Parzialmente", + "detail": "Impossibile copiare {item} in {count} workspace | Impossibile copiare {item} in {count} workspace" + }, + "partialMovedWarningMessage": { + "summary": "Spostato Parzialmente", + "detail": "Impossibile spostare {item} in {count} workspace | Impossibile spostare {item} in {count} workspace" + }, + "existingCopiesInfo": "Alcuni workspace ({workspaces}) sono stati ignorati perché {item} esiste già al loro interno", + "skippingExistingCopies": "Le copie già esistenti di {item} verranno ignorate." + }, + "assignment": "Assegnazione | Assegnazioni", + "modelSquad": { + "title": "Model Squad", + "description": "@:modelSquad.title è una collezione di modelli AI specializzati, dove a ciascun modello è assegnata un'attività specifica, come Generazione Automatica dei Titoli, Generazione di Riassunti @:context, ecc. Quando è il momento di eseguire quell'attività specifica, il modello assegnato viene selezionato automaticamente.", + "addNewAssignment": "Aggiungi Nuova @:assignment", + "noTask": "Nessuna altra attività disponibile", + "tasks": { + "autoTitleGeneration": "Generazione Automatica Titoli", + "skillsStudio": "Skills Studio", + "promptsStudio": "Prompt Studio", + "personaStudio": "Persona Studio", + "contextShieldSummaryGeneration": "Generazione Riassunto @:contextShield.title", + "realTimeDataPromptSynthesis": "Sintesi Prompt @:rtd.title", + "forgeContentGeneration": "Generazione Contenuti Forge", + "piiScrubbing": "@:pii.scrubbing.title", + "userPersonaMemoryExtraction": "Estrazione Memoria User Persona", + "iconFinder": "Ricerca Icone" + }, + "save": { + "successMessage": { + "detail": "@:assignment salvata" + }, + "errorMessage": { + "detail": "Impossibile salvare @:assignment" + } + }, + "assignment": { + "dialog": { + "title": "Assegna Modello per {task}", + "description": "Seleziona un modello da assegnare all'attività {task} in ModelSquad.", + "selectModel": "Seleziona Modello", + "selectModelPlaceholder": "Scegli un modello...", + "currentlyAssigned": "Attualmente assegnato: {model}", + "unknownModel": "Modello sconosciuto", + "assignButton": "Assegna Modello", + "changeButton": "Cambia Modello", + "helpText": "Questo modello verrà utilizzato automaticamente quando viene eseguita l'attività {task}." + }, + "success": "Modello assegnato con successo a {task}!", + "errors": { + "noModelSelected": "Seleziona un modello da assegnare.", + "saveFailed": "Impossibile salvare l'assegnazione del modello. Riprova." + } + }, + "invalidAssignment": { + "summary": "Assegnazione Model Squad Non Valida", + "detail": "Il modello assegnato per {task} non è più disponibile. Verrà utilizzato il modello predefinito. Aggiorna l'assegnazione in Model Squad." + } + }, + "pii": { + "title": "PII (Informazioni di Identificazione Personale)", + "scrubbing": { + "title": "Rimozione PII", + "description": "Rileva e rimuove automaticamente le informazioni di identificazione personale dai contenuti del Knowledge Stack prima di visualizzarli nelle conversazioni.", + "info": { + "modelAssigned": "Utilizzo di {model} per il rilevamento e la rimozione delle PII." + }, + "warning": { + "noModel": "Nessun modello assegnato per @:pii.scrubbing.title in ModelSquad. Il recupero del Knowledge Stack fallirà fino all'assegnazione di un modello.", + "configurationError": "Errore di configurazione @:pii.scrubbing.title - annullamento recupero Knowledge Stack per sicurezza", + "setupError": "Errore nell'impostazione di @:pii.scrubbing.title - annullamento recupero Knowledge Stack" + }, + "placeholders": { + "personName": "[NOME_PERSONA]", + "emailAddress": "[INDIRIZZO_EMAIL]", + "phoneNumber": "[NUMERO_TELEFONO]", + "address": "[INDIRIZZO]", + "idNumber": "[NUMERO_ID]", + "creditCard": "[CARTA_DI_CREDITO]", + "bankAccount": "[CONTO_BANCARIO]", + "ipAddress": "[INDIRIZZO_IP]", + "dateOfBirth": "[DATA_DI_NASCITA]" + }, + "categories": { + "personalIdentifiers": "Identificatori Personali", + "contactInformation": "Informazioni di Contatto", + "financialInformation": "Informazioni Finanziarie", + "medicalInformation": "Informazioni Mediche", + "digitalIdentifiers": "Identificatori Digitali", + "biometricData": "Dati Biometrici", + "locationData": "Dati di Posizione" + } + } + }, + "persona": { + "title": "Persona | Personas", + "newPersona": "Nuova @:persona.title", + "newPersonaConversation": "Nuova Conversazione Persona", + "selectToBegin": "Con chi vorresti chattare?", + "selectModel": "Seleziona un modello", + "usingPersonaModel": "Utilizzo modello configurato per la persona", + "usingFallbackModel": "Utilizzo modello della conversazione", + "noModelAvailable": "Nessun modello selezionato", + "modelForThisConversation": "La selezione si applica solo a questa conversazione", + "personaModeTitle": "Modalità Persona", + "personaModeDescription": "Seleziona una persona con cui iniziare. Ognuna porta la propria voce, conoscenza e stile nella conversazione.", + "personaModeHint": "Puoi cambiare persona in qualsiasi momento dalla scheda sottostante.", + "personaModeWithPersona": "{personaName} guiderà questa conversazione con la sua prospettiva e competenza uniche.", + "activePersona": "@:persona.title Attiva", + "empty": { + "title": "Nessuna @:persona.title Disponibile.", + "description": "Inizia aggiungendo o importando una nuova @:persona.title{'.'} Puoi anche importare Personas predefinite per iniziare." + }, + "contextShieldPosition": "Posizione @:contextShield.title", + "save": { + "successMessage": { + "detail": "@:persona.title salvata" + }, + "errorMessage": { + "detail": "Impossibile salvare @:persona.title" + } + }, + "update": { + "successMessage": { + "detail": "@:persona.title aggiornata" + }, + "errorMessage": { + "detail": "Impossibile aggiornare @:persona.title" + } + }, + "delete": { + "selected": "Elimina @:persona.title Selezionata", + "deleteConfirmation": { + "header": "Elimina @:persona.title", + "description": "Sei sicuro di voler eliminare {personaName}? | Sei sicuro di voler eliminare {count} @:persona.title{'?'}" + }, + "successMessage": { + "detail": "@:persona.title eliminata | @:persona.title eliminate" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:persona.title | Impossibile eliminare @:persona.title" + } + }, + "import": { + "title": "Importa @:persona.title", + "dragAndDropMessage": "Trascina e rilascia una @:persona.title di Msty zippata per importare e creare nuove Personas. In caso di nomi duplicati, le Personas importate verranno rinominate. Puoi cambiarle in seguito.", + "successMessage": { + "detail": "Personas importate" + }, + "errorMessage": { + "detail": "Impossibile importare Personas" + } + }, + "export": { + "title": "Esporta @:persona.title", + "selected": "Esporta @:persona.title Selezionata | Esporta @:persona.title Selezionate", + "successMessage": { + "detail": "@:persona.title esportata come {fileName} | @:persona.title esportate come {fileName}" + }, + "errorMessage": { + "detail": "Impossibile esportare @:persona.title | Impossibile esportare @:persona.title" + } + }, + "messages": { + "deleteSuccess": "@:persona.title eliminata | @:persona.title eliminate" + }, + "deleteConfirmation": { + "header": "Elimina @:persona.title", + "message": "Sei sicuro di voler eliminare {personaName}? | Sei sicuro di voler eliminare {count} @:persona.title{'?'}", + "errorMessage": { + "detail": "Impossibile eliminare @:persona.title | Impossibile eliminare @:persona.title" + } + }, + "addTitle": "Aggiungi @:persona.title", + "createRootFolder": "Nuova Cartella nella Radice", + "setDefaultFolder": "Imposta come Cartella Predefinita", + "unsetDefaultFolder": "Rimuovi Cartella Predefinita", + "folderForm": { + "updateSuccessMessage": { + "detail": "@:folder aggiornata" + }, + "updateErrorMessage": { + "detail": "Impossibile aggiornare @:folder" + }, + "createSuccessMessage": { + "detail": "@:folder creata" + }, + "createErrorMessage": { + "detail": "Impossibile creare @:folder" + }, + "deleteConfirmation": { + "header": "Elimina @:folder", + "message": "Sei sicuro di voler eliminare {folderName} con tutte le sue @:persona.title{'?'}", + "successMessage": { + "detail": "@:folder eliminata" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:folder" + } + } + }, + "selectPlaceholder": "@:select una @:persona.title", + "autoResponder": { + "turnOn": "Attiva Risponditore Automatico", + "turnOff": "Disattiva Risponditore Automatico" + }, + "additionalSettings": "Impostazioni Aggiuntive", + "additionalSettingsHint": { + "hideAndIsolateSystemPrompt": "Nascondi & Isola Prompt di Sistema: mantiene il prompt della persona nascosto e separato dal contesto visibile della chat.", + "isolateResponse": "Isola Risposta: mantiene le risposte limitate in questo contesto della persona.", + "autoResponder": "Risponditore Automatico: permette alla persona di rispondere automaticamente quando abilitato.", + "showFewShotsInConversation": "Mostra Few Shots nella Conversazione: mostra esempi few-shot nella trascrizione invece di mantenerli nascosti." + }, + "hideAndIsolateSystemPrompt": "Nascondi e Isola Prompt di Sistema", + "isolateResponse": "Isola Risposta", + "autoResponderDefault": "Risponditore Automatico", + "showFewShotsInConversation": "Mostra few shots nella conversazione", + "fewShotsHint": "I prompt few-shot sono esempi di scambi utente/assistente che insegnano alla persona come rispondere. Migliorano la coerenza, l'adattamento del tono e il rispetto delle istruzioni per attività comuni.", + "contextMessageCount": { + "title": "Conteggio Contesto", + "description": "Imposta il numero di messaggi recenti da usare come contesto per la @:persona.title{'.'}" + } + }, + "crew": { + "title": "Crew | Crews", + "newCrewConversation": "Nuova Conversazione Crew", + "personas": "persona | personas", + "noCrews": "Ancora Nessuna Crew", + "noCrewsDescription": "Crea una crew per chattare con più personas contemporaneamente.", + "createCrew": "Crea Crew", + "selectCrew": "Seleziona una Crew", + "switchCrew": "Cambia crew", + "expand": "Espandi controlli", + "collapse": "Riduci controlli", + "selectAll": "Seleziona tutte le personas", + "deselectAll": "Deseleziona tutte le personas", + "quickActions": "Rapide", + "crewModeTitle": "Modalità Crew", + "experimental": "Sperimentale", + "experimentalInfo": "La Modalità Crew è sperimentale e in fase di sviluppo attivo. Alcune funzioni potrebbero cambiare o avere limitazioni.", + "crewModeDescription": "Seleziona una crew per chattare con più personas. Ognuna porta la propria prospettiva unica nella conversazione.", + "crewModeHint": "Puoi scegliere quali personas rispondono e cambiare crew in qualsiasi momento.", + "crewModeWithCrew": "La crew {crewName} è pronta. {count} persona(s) risponderanno ai tuoi messaggi.", + "responseMode": { + "label": "Risposta", + "auto": "Auto", + "autoDescription": "Tutte le personas rispondono automaticamente a ciascun messaggio", + "manual": "Manuale", + "manualDescription": "Scegli quali personas rispondono ogni volta" + }, + "executionMode": { + "label": "Esecuzione", + "sequential": "Sequenziale", + "sequentialDescription": "Le personas rispondono una dopo l'altra in ordine", + "parallel": "Parallela", + "parallelDescription": "Tutte le personas rispondono contemporaneamente" + }, + "contextMode": { + "label": "Contesto", + "independent": "Indipendente", + "independentDescription": "Ogni persona vede solo i tuoi messaggi", + "contextual": "Contestuale", + "contextualDescription": "Le personas possono vedere le risposte delle altre" + }, + "behaviorSettings": "Comportamento", + "editCrew": "Modifica Crew", + "namePlaceholder": "Inserisci nome crew", + "descriptionPlaceholder": "Descrivi lo scopo di questa crew", + "nameRequired": "Il nome della crew è obbligatorio", + "created": "Crew creata", + "updated": "Crew aggiornata", + "saveFailed": "Impossibile salvare la crew", + "allPersonasAdded": "Tutte le Personas Aggiunte", + "allPersonasAddedDescription": "Tutte le personas disponibili sono state aggiunte a questa crew.", + "addPersona": "Aggiungi Persona", + "personasHint": "Puoi aggiungere altre personas in seguito", + "addPersonaFailed": "Impossibile aggiungere persona alla crew", + "selectPersonas": "Seleziona Personas", + "trigger": "Trigger", + "selectFallback": "Seleziona modello di fallback", + "usingFallbackModel": "{count} persona(s) usando il modello di fallback", + "needsFallbackModel": "{count} persona(s) necessitano di un modello - seleziona un fallback", + "selectFallbackModel": "Seleziona Modello di Fallback", + "fallbackModelHint": "Questo modello verrà usato per le personas senza un modello configurato" + }, + "fewShotPrompts": { + "title": "Prompt Few-Shot", + "description": "L'apprendimento few-shot è una tecnica di machine learning che consente di addestrare un modello con una piccola quantità di dati. Puoi usare i prompt few-shot per fornire esempi al modello per aiutarlo a capire il contesto e generare risposte migliori.", + "addNewShot": "Aggiungi Nuovo Shot" + }, + "insights": "Statistiche", + "cost": "Costo", + "costInUSD": "Costo in USD", + "promptTokens": "Token Prompt", + "completionTokens": "Token Completamento", + "totalTokens": "Token Totali", + "usage": "Utilizzo", + "tokens": "Token", + "tokensProcessed": "Token Elaborati", + "selectProvider": "@:select un provider | @:select provider", + "tokensProcessedForProvider": "Token Elaborati per {provider}", + "totalUsage": "Utilizzo Totale", + "fromTo": "Da {from} a {to}", + "crunchingTheNumbers": "Elaborazione dei dati", + "throughputForModel": { + "title": "Throughput per {model}", + "unit": { + "description": "Misurato in token al secondo" + } + }, + "latencyForModel": { + "title": "Latenza per {model}", + "unit": { + "description": "Misurato in secondi" + } + }, + "total": "Totale", + "min": "Min", + "max": "Max", + "avg": "Media", + "summary": "Riepilogo", + "dates": { + "today": "Oggi", + "last7Days": "Ultimi 7 giorni", + "last14Days": "Ultimi 14 giorni", + "last30Days": "Ultimi 30 giorni", + "last3Months": "Ultimi 3 mesi", + "last6Months": "Ultimi 6 mesi", + "last12Months": "Ultimi 12 mesi", + "monthToDate": "Dall'inizio del mese", + "yearToDate": "Dall'inizio dell'anno", + "allTime": "Sempre", + "selectDateRange": "@:select intervallo di date", + "month": "Mese", + "year": "Anno", + "day": "Giorno", + "week": "Settimana" + }, + "insightsSummary": { + "emptyState": { + "title": "Riepilogo Statistiche", + "description": "Nessun dato disponibile per l'intervallo di date e i provider selezionati." + } + }, + "insightsProviderTokensProcessed": { + "emptyState": { + "title": "Token Elaborati", + "description": "Nessun dato disponibile per l'intervallo di date e il provider selezionato." + } + }, + "insightsProviderThroughput": { + "emptyState": { + "title": "Throughput", + "description": "Nessun dato disponibile per l'intervallo di date, provider e modello selezionati." + } + }, + "insightsProviderLatency": { + "emptyState": { + "title": "Latenza", + "description": "Nessun dato disponibile per l'intervallo di date, provider e modello selezionati." + } + }, + "hideItem": { + "action": "Nascondi {item}", + "successMessage": { + "detail": "{item} è stato nascosto" + }, + "errorMessage": { + "detail": "Impossibile nascondere {item}" + }, + "unhideParent": "Mostra Elemento Padre di {item}", + "hiddenParentContentTitle": "Contenuto Padre Nascosto. Clicca per mostrare." + }, + "showItem": { + "action": "Mostra {item}" + }, + "licenseVerification": { + "errorMessage": "Verifica della licenza fallita. Riprova.", + "enterLicenseKey": "Inserisci la Chiave di Licenza Aurum", + "licenseTypeInfo": "Stai utilizzando la licenza {licenseType}.", + "licenseKey": "Chiave di Licenza", + "logout": "Esci", + "licenseTypeInfoForAdmin": "Stai utilizzando la licenza {licenseType} e hai effettuato l'accesso come Proprietario." + }, + "aurum": { + "activateLicense": "Attiva Licenza Aurum", + "activateLicenseDescription": "Inserisci la tua chiave di licenza per sbloccare le funzioni premium", + "manageLicense": "Gestisci Licenza", + "lifetimeLicense": "Aurum a Vita", + "lifetimeLicenseDescription": "Acquisto una tantum con accesso a vita alle funzioni premium", + "annualLicense": "Aurum Annuale", + "annualLicenseDescription": "Abbonamento annuale con aggiornamenti continui e funzioni premium", + "oneTimePurchase": "Acquisto una tantum", + "yearlySubscription": "Abbonamento annuale", + "enterLicenseKey": "Chiave di Licenza", + "verifyAndActivate": "Verifica e Attiva", + "deactivateLicense": "Disattiva Licenza", + "licensedTo": "Concesso in licenza a", + "expiresOn": "Scade il", + "expired": "Scaduta", + "expiresInDays": "Scade tra {days} giorni", + "needLicense": "Hai bisogno di una licenza?", + "purchaseLicense": "Acquista su msty.ai", + "hasLicense": "Hai già una licenza?", + "manageActivation": "Gestisci Attivazione" + }, + "cloneItem": { + "action": "Clona {item}", + "successMessage": { + "detail": "{item} è stato clonato" + }, + "errorMessage": { + "detail": "Impossibile clonare {item}" + } + }, + "cloneItemTo": { + "action": "Clona in {item}", + "successMessage": { + "detail": "Clonato con successo in un nuovo {item} " + }, + "errorMessage": { + "detail": "Impossibile clonare in un nuovo {item}" + } + }, + "importJson": { + "clipboardTitle": "Importa {item} dagli Appunti JSON", + "fileTitle": "Importa {item} da File JSON", + "successMessage": { + "detail": "{count} {item} importati con successo", + "detailDestination": "@:importJson.successMessage.detail {item} in {destination}" + }, + "successMessageWithToolsets": { + "detail": "{count} {item} importati con successo e set di strumenti corrispondenti auto-creati" + }, + "invalidConfig": { + "detail": "Configurazione non valida o nulla da importare. Assicurati che il JSON sia valido e riprova." + }, + "errorMessage": { + "detail": "Importazione fallita. Controlla il JSON e riprova." + }, + "partialError": { + "detail": "Impossibile importare {failed} elementi: {items}" + }, + "dragAndDropMessage": "Trascina e rilascia un file JSON per importare {item}." + }, + "team": { + "label": "Team | Team", + "createTeam": "@:create @:team.label", + "inviteUserLabel": "Invita Utente", + "overview": "Panoramica", + "usersLabel": "Utenti", + "allTeamLabel": "Tutti i Team", + "createSuccess": "Team {teamName} creato con successo.", + "member": "Membro|Membri", + "allUsers": "Tutti gli Utenti", + "addTeamFormHeader": "Crea Nuovo Team", + "updateTeamFormHeader": "Modifica Team", + "addUsers": "Aggiungi Utenti", + "updateUsers": "Aggiorna Utenti", + "addUserToTeam": "Aggiungi Utenti al Team", + "teamNameLabel": "Nome del Team", + "teamNamePlaceholder": "Inserisci il nuovo nome del team", + "addTeamDescription": "Crea un nuovo team per gestire le risorse.", + "noUserInTeam": "Nessun utente assegnato a questo team.", + "editTeam": "Modifica Team", + "invited": "Invitato", + "shortDescription": "Gestisci i tuoi team e utenti.", + "empty": { + "description": "Un team viene utilizzato per gestire le risorse. Puoi aggiungere utenti al team per collaborare e condividere l'accesso alle risorse." + }, + "deleteConfirmation": { + "header": "Elimina Team", + "message": "Sei sicuro di voler eliminare", + "inputPlaceholder": "Digita {name} per confermare l'eliminazione.", + "rejectLabel": "@:cancel", + "acceptLabel": "@:delete" + }, + "policies": { + "title": "Criterio | Criteri", + "toolbox": { + "title": "@:toolbox.title", + "description": "Consenti all'utente di usare la funzione Toolbox" + }, + "promptsLibrary": { + "title": "Libreria Prompt", + "description": "Consenti all'utente di usare la funzione Libreria Prompt" + }, + "persona": { + "title": "Persona Studio", + "description": "Consenti all'utente di usare la funzione Persona" + }, + "turnstile": { + "title": "@:turnstile.title", + "description": "Consenti all'utente di usare la funzione Turnstile" + }, + "knowledgeStack": { + "title": "@:knowledgeStack.title", + "description": "Consenti all'utente di usare la funzione Stack Conoscenza" + }, + "remoteToolsConnector": { + "title": "@:remoteToolsConnector.title", + "description": "Consenti all'utente di usare la funzione @:remoteToolsConnector.title" + }, + "rtd": { + "title": "@:rtd.title", + "description": "Consenti all'utente di usare la funzione @:rtd.title" + }, + "attachments": { + "title": "@:attachments.title", + "description": "Consenti all'utente di usare la funzione @:attachments.title" + }, + "forgeMode": { + "title": "@:forge.forgeMode.title", + "description": "Consenti all'utente di usare la funzione @:forge.forgeMode.title" + }, + "personaMode": { + "title": "Modalità Persona", + "description": "Consenti all'utente di creare conversazioni Persona" + }, + "crewMode": { + "title": "Modalità Crew", + "description": "Consenti all'utente di creare conversazioni Crew" + }, + "agentMode": { + "title": "@:agentMode.title", + "description": "Consenti all'utente di usare la funzione @:agentMode.title" + }, + "insights": { + "title": "@:insights", + "description": "Consenti all'utente di usare la funzione @:insights" + }, + "platformWeb": { + "title": "Accesso Web Msty Studio", + "description": "Consenti all'utente di accedere a Msty Studio dal browser web" + }, + "platformDesktop": { + "title": "Accesso Desktop Msty Studio", + "description": "Consenti all'utente di accedere a Msty Studio dall'applicazione desktop" + }, + "platformAccess": "Accesso Piattaforma", + "modelHub": { + "description": "Gestisci l'accesso a fornitori di modelli specifici." + } + }, + "user": { + "noAvailableSeats": "Hai raggiunto il limite per invitare utenti.", + "licenceAndAccess": { + "loggedInAsLabel": "Accesso effettuato come", + "useSignInWithEmail": "Un link di accesso sicuro verrà inviato all'indirizzo email fornito. I titolari di licenza Aurum devono verificare la loro chiave di licenza prima di utilizzare questa funzione.", + "continueWithlicenseLabel": "continua con Chiave di Licenza", + "sendLoginLink": "Invia Link di Accesso" + }, + "teamUserFormHeader": "Utenti del Team", + "invitationVerification": { + "inProgress": "Verifica della tua richiesta di accesso in corso. Attendi", + "info": "Sei stato invitato a unirti a un account su Msty Studio. ", + "error": "Qualcosa è andato storto, contatta l'Amministratore del tuo account." + }, + "invitationInfo": "Un link di accesso verrà inviato all'email fornita sopra.", + "invitation": { + "successMessage": { + "detail": "Utente {email} invitato." + }, + "invalidEmail": "@:invalid @:email", + "errorMessageUserExist": "L'utente esiste già", + "errorMessage": { + "detail": "Impossibile invitare {email}." + } + }, + "fetch": { + "errorMessage": { + "detail": "Impossibile caricare l'elenco degli utenti" + } + }, + "delete": { + "successMessage": { + "detail": "Utente {email} eliminato con successo." + }, + "errorMessage": { + "detail": "Impossibile eliminare l'utente {email}" + } + }, + "deleteConfirmation": { + "header": "Elimina Utente", + "message": "Sei sicuro di voler eliminare {email}?", + "rejectLabel": "@:cancel", + "acceptLabel": "@:delete" + }, + "assignUserToTeamLabel": "Assegna utenti al team {teamName}", + "assignUserToTeamSuccess": "{user} assegnato con successo al team {teamName}", + "unassignUserToTeamLabel": "Rimuovi utente dal team", + "unassignUserToTeamMessage": "Rimuovi {user} dal team {teamName}", + "selectUserToAddToTeamPlaceholder": "@:select utenti da aggiungere" + } + }, + "updateItem": { + "action": "Aggiorna {item}", + "editAction": "Modifica {item}", + "successMessage": { + "detail": "{item} è stato aggiornato" + }, + "errorMessage": { + "detail": "Impossibile aggiornare {item}" + } + }, + "modelPurpose": { + "text": "Testo", + "tools": "Strumenti", + "vision": "Visione", + "coding": "Codifica", + "embedding": "Embedding", + "streaming": "Streaming", + "image": "Immagine", + "thinking": "Pensiero" + }, + "editModel": { + "inputLabels": { + "label": "Etichetta", + "purpose": "Scopo" + } + }, + "environment": { + "selectPlaceholder": "@:select un @:environment.title", + "new": "Nuovo @:environment.title", + "title": "Ambiente | Ambienti", + "empty": { + "description": "Aggiungi nuovi ambienti per iniziare." + }, + "save": { + "successMessage": { + "detail": "@:environment.title salvato" + }, + "errorMessage": { + "detail": "Salvataggio di @:environment.title fallito" + } + }, + "delete": { + "title": "@:delete @:environment.title | Elimina @:environment.title", + "selected": "@:delete Selezionati @:environment.title | Elimina Selezionati @:environment.title", + "deleteConfirmation": { + "header": "@:delete @:environment.title", + "description": "Sei sicuro di voler eliminare {environmentName}? | Sei sicuro di voler eliminare {count} ambienti?" + }, + "successMessage": { + "detail": "@:environment.title eliminato | @:environment.title eliminati" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:environment.title | Impossibile eliminare @:environment.title" + } + }, + "backup": { + "title": "Backup @:environment.title", + "successMessage": { + "detail": "Backup di @:environment.title eseguito" + }, + "errorMessage": { + "detail": "Impossibile eseguire il backup di @:environment.title" + } + }, + "restore": { + "title": "Ripristina @:environment.title", + "dragAndDropMessage": "Trascina e rilascia un file Ambiente Msty per ripristinarli. Nota: Tutti gli ambienti esistenti verranno eliminati e sostituiti con quelli importati.", + "successMessage": { + "detail": "@:environment.title ripristinato" + }, + "errorMessage": { + "detail": "Impossibile ripristinare @:environment.title" + } + }, + "quickSelect": { + "title": "Selezione Rapida Variabile d'Ambiente", + "selectPlaceholder": "Cerca o seleziona una variabile per copiarla negli appunti" + } + }, + "makeActive": { + "title": "Rendi Attivo {itemType}", + "isActive": "{itemType} Attivo", + "successMessage": { + "detail": "{itemName} è ora il {itemType} attivo" + }, + "errorMessage": { + "detail": "Impossibile rendere {itemName} il {itemType} attivo" + } + }, + "moveItem": { + "action": "Sposta {item}", + "moveLocation": "Sposta {count} {sourceType} in {item}", + "confirmation": { + "message": "Sei sicuro di voler spostare l'elemento selezionato?" + }, + "successMessage": { + "detail": "{item} è stato spostato | {item} sono stati spostati" + }, + "errorMessage": { + "detail": "Impossibile spostare {item}" + }, + "errrorMessage": { + "detail": "Impossibile spostare {item}" + }, + "cannotDetermineTargetProject": "Impossibile determinare il progetto di destinazione.", + "cannotDetermineTargetFolder": "Impossibile determinare la cartella di destinazione." + }, + "deleteItem": { + "action": "Elimina {item}", + "successMessage": { + "detail": "{item} è stato eliminato" + }, + "errorMessage": { + "detail": "Impossibile eliminare {item}" + } + }, + "deleteSelected": { + "action": "Elimina {item} selezionato", + "confirmationMessage": "Sei sicuro di voler eliminare l'elemento {item} selezionato?", + "successMessage": { + "detail": "{item} selezionato eliminato" + }, + "errorMessage": { + "detail": "Impossibile eliminare l'elemento {item} selezionato" + } + }, + "promptsStudio": { + "title": "Prompt Studio" + }, + "skillsStudio": { + "title": "Skills Studio" + }, + "personaStudio": { + "title": "Persona Studio" + }, + "promptsLibrary": { + "title": "Libreria @:prompts", + "newPrompt": "Nuovo @:prompt", + "search": "@:search.label @:prompt", + "searchWithTags": "Filtra o digita # per i tag", + "quickPrompt": "@:prompt Rapido", + "saveToQuickPrompts": "Salva nei @:prompts Rapidi", + "copyPrompt": "Copia @:prompt negli Appunti", + "shortcutUsage": "Digita / per cercare in @:promptsLibrary.title", + "setDefaultFolder": "Imposta come Cartella Predefinita", + "unsetDefaultFolder": "Rimuovi Cartella Predefinita", + "createRootFolder": "Nuova Cartella nella Radice", + "folder": "@:folder", + "prompt": "@:prompt", + "deleteAllPrompt": { + "title": "Elimina tutti i @:prompt e @:folders", + "description": "Questo svuoterà l'intera @:promptsLibrary.title e @:folder@:folders. Non c'è modo di recuperarli dopo l'eliminazione.", + "successMessage": { + "detail": "Tutti i @:prompt eliminati" + } + }, + "empty": { + "title": "Nessun @:persona.title Disponibile.", + "description": "Inizia aggiungendo o importando un nuovo @:prompt{'.'} Puoi anche importare i @:prompts predefiniti per iniziare." + }, + "import": { + "title": "Importa @:prompts Predefiniti", + "successMessage": { + "detail": "Ora puoi usare i prompt importati nelle tue conversazioni." + }, + "copyMultiplePrompts": "Copia {count} @:prompts negli appunti", + "copyMultiplePromptsAsJson": "Copia {count} @:prompts come @:json negli appunti", + "errorMessage": { + "detail": "Impossibile importare i @:prompts predefiniti" + }, + "copyErrorMessage": { + "detail": "Impossibile copiare @:prompt{'.'} Riprova." + } + }, + "folderForm": { + "updateSuccessMessage": { + "detail": "@:folder aggiornata" + }, + "updateErrorMessage": { + "detail": "Impossibile aggiornare @:folder" + }, + "createSuccessMessage": { + "detail": "@:folder creata" + }, + "createErrorMessage": { + "detail": "Impossibile creare @:folder" + }, + "deleteConfirmation": { + "header": "Elimina @:folder", + "message": "Sei sicuro di voler eliminare {folderName} con tutte le sue sotto-cartelle e prompt?", + "successMessage": { + "detail": "@:folder eliminata" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:folder" + } + } + }, + "promptForm": { + "addTitle": "Aggiungi Nuovo @:prompt", + "editTitle": "Modifica @:prompt", + "promptName": "Nome @:prompt", + "promptDescription": "@:description", + "updateSuccessMessage": { + "detail": "@:prompt aggiornato" + }, + "updateErrorMessage": { + "detail": "Impossibile aggiornare @:prompt" + }, + "createSuccessMessage": { + "detail": "@:prompt creato" + }, + "createErrorMessage": { + "detail": "Impossibile creare @:prompt" + }, + "deleteConfirmation": { + "header": "Elimina {count} @:prompt", + "message": "Sei sicuro di voler eliminare?", + "successMessage": { + "detail": "@:prompt eliminato" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:prompt" + } + } + }, + "saveAsVersion": "Salva come Versione", + "version": { + "noVersions": "Nessuna versione salvata", + "selectVersion": "Seleziona una versione", + "saveAsVersion": "Salva come Versione", + "saveAsVersionN": "Salva come Versione {n}", + "saveVersion": "Salva Versione", + "changelog": "Registro modifiche", + "changelogPlaceholder": "Descrivi cosa è cambiato in questa versione...", + "savedAs": "Salvato come versione {version}", + "saveError": "Impossibile salvare la versione", + "setActive": "Imposta Prompt come Attivo", + "unsetActive": "Rimuovi Attivo", + "markedActive": "Versione contrassegnata come attiva", + "clearedActive": "Versione attiva rimossa", + "setActiveError": "Impossibile impostare la versione attiva", + "unsavedChangesMessage": "Hai modifiche non salvate. Cambiando versione le scarterai.", + "deleteVersion": "Elimina Versione", + "deleteConfirm": "Sei sicuro di voler eliminare la versione {version}? Questa operazione non può essere annullata.", + "deleted": "Versione {version} eliminata", + "deleteError": "Impossibile eliminare la versione", + "cannotDelete": "Impossibile eliminare", + "cannotDeleteLast": "Devi mantenere almeno una versione" + }, + "workbench": { + "savePromptFirst": "Salva prima il tuo prompt per usare il workbench", + "unsavedRunMessage": "Hai un test non salvato. Cambiando versione lo scarterai." + }, + "testRunDetails": "Dettagli Esecuzione Test", + "loadTestRun": "Carica Configurazione", + "noteHint": "Aggiungi una nota su questo test...", + "versionDetails": "Dettagli Versione", + "bestConfig": "Miglior Configurazione", + "recentTestRuns": "Test Recenti", + "noTestRuns": "Nessun test ancora per questa versione", + "versionNotFound": "Versione non trovata", + "variables": { + "manageVariables": "Compila le variabili", + "requiredVariablesMissing": "Le variabili obbligatorie richiedono valori" + }, + "tags": { + "label": "Tag", + "placeholder": "Aggiungi tag...", + "noResults": "Digita per cercare o creare un tag", + "addSuccess": "Tag aggiunto", + "removeSuccess": "Tag rimosso", + "addError": "Impossibile aggiungere il tag", + "removeError": "Impossibile rimuovere il tag" + } + }, + "importDefault": { + "title": "Importa {item} Predefinito", + "successMessage": { + "detail": "{item} predefinito importato" + }, + "errorMessage": { + "detail": "Impossibile importare {item} predefinito" + } + }, + "contextIsolation": { + "isolate": "Isola @:context", + "unIsolate": "Rimuovi Isolamento @:context", + "label": "@:context Isolato", + "clearAll": { + "title": "Cancella Tutti gli Isolamenti @:context", + "successMessage": { + "detail": "Tutti gli Isolamenti @:context cancellati" + } + } + }, + "responseMetrics": { + "title": "Metriche di Risposta", + "longPressOrAltClickToCycle": "Premi a lungo o fai clic con {key} per scorrere le metriche" + }, + "quickView": "Visualizzazione Rapida", + "detailsView": "Visualizzazione Dettagli", + "input": "Input | Input", + "output": "Output | Output", + "think": "Pensa", + "reasoning": { + "emptyNotice": "Il modello ha eseguito un pensiero interno ma non ha restituito un riepilogo. Per abilitare i riepiloghi del pensiero, applica il tag 'Thinking' a questo modello cliccando sull'icona di modifica accanto alla selezione del modello.", + "thinking": "Ponderazione in corso...", + "ponderedBriefly": "Ha ponderato brevemente", + "ponderedFor": "Ha ponderato per {time}", + "seconds": "secondi" + }, + "toolCall": { + "usedTool": "Usato {tool}", + "usedToolFrom": "Usato {tool} da {source}", + "inputs": "Input", + "outputs": "Output", + "noDetailsAvailable": "Nessun dettaglio disponibile" + }, + "service": "Servizio | Servizi", + "localAIService": "Servizio @:localAI", + "version": "Versione | Versioni", + "invalidConfig": "Configurazione non valida. Inserisci un oggetto JSON valido.", + "unsavedChanges": "Modifiche Non Salvate", + "saveChanges": "Salva Modifiche", + "day": "Giorno | Giorni", + "every": "Ogni", + "files": "File", + "file": "File | @:files", + "reallyDelete": "Eliminare Definitivamente?", + "similarity": "Somiglianza", + "saveAsDraft": "Salva come Bozza", + "compose": "Componi", + "embeddingModel": "Modello di Embedding", + "document": "Documento | Documenti", + "matched": "Trovati", + "active": "Attivo", + "inactive": "Inattivo", + "folderName": "Nome @:folder", + "addNewFolder": "Aggiungi Nuova @:folder", + "editFolder": "Modifica @:folder", + "errorGeneric": "Si è verificato un errore. Riprova più tardi. Controlla i log per maggiori dettagli.", + "sharedService": { + "modelsPath": { + "title": "Percorso Modelli", + "description": "Questo è il percorso in cui {service} scarica e cerca i modelli. Puoi aggiornare il percorso per utilizzare una cartella personalizzata.", + "edit": { + "title": "Modifica Percorso Modelli", + "description": "Imposta la tua posizione preferita.", + "willRestartWarning": "Nota: La modifica del percorso dei modelli riavvierà {service} affinché le modifiche abbiano effetto.", + "selectModelsPath": "Seleziona Percorso Modelli", + "successMessage": { + "detail": "Percorso modelli aggiornato" + }, + "errorMessage": { + "detail": "Impossibile aggiornare il percorso dei modelli" + } + } + }, + "quickPromptDialog": { + "title": "Salva nei @:prompts Rapidi", + "description": "Dai al tuo prompt di sistema un breve titolo. Verrà aggiunto ai Prompt Rapidi per un facile riutilizzo.", + "nameLabel": "Nome @:prompt Rapido", + "successMessage": "Prompt di sistema salvato nei Prompt Rapidi.", + "errorMessage": "Impossibile salvare il prompt di sistema nei Prompt Rapidi.", + "emptyPromptMessage": "Aggiungi del testo al prompt di sistema prima di salvarlo nei Prompt Rapidi." + }, + "serviceHealth": { + "title": "Stato del Servizio", + "description": "Stato di {service}. Hai problemi? Prova a riavviare o controlla i log.", + "serviceAction": { + "restartService": "Riavvia Servizio", + "stopService": "Arresta Servizio", + "startService": "Avvia Servizio", + "errorMessage": { + "detail": "Impossibile eseguire {action} su {service}. Controlla i log per maggiori dettagli." + }, + "restartSuccessMessage": { + "detail": "{service} Riavviato" + } + }, + "serviceStatus": { + "starting": "Avvio in corso", + "running": "In esecuzione", + "stopped": "Arrestato" + } + }, + "serviceEndpoint": { + "title": "Endpoint Servizio | Endpoint Servizio", + "description": { + "base": "Endpoint locale per {service}. Usalo per connetterti da altre applicazioni in esecuzione localmente sul dispositivo.", + "serviceIsNotRunning": "Quando il servizio è in esecuzione, l'indirizzo verrà visualizzato qui.", + "serviceIsAvailableOnNetwork": "Poiché il servizio è disponibile sulla rete, puoi connetterti usando l'URL del Servizio di Rete da altri dispositivi." + }, + "copyNetworkURL": "Copia URL di Rete" + }, + "serviceVersion": { + "title": "Versione Servizio", + "description": "Mostra la versione attuale di {service}. Per garantire prestazioni ottimali e l'accesso alle nuove funzionalità, tienilo aggiornato. È disponibile anche la reinstallazione se necessario.", + "forceUpdate": { + "title": "Forza Aggiornamento {service}", + "forCpu": "Forza Aggiornamento {service} (CPU)", + "forCuda": "Forza Aggiornamento {service} (CUDA)", + "forCuda124": "Forza Aggiornamento {service} (CUDA 12.4)", + "forCuda131": "Forza Aggiornamento {service} (CUDA 13.1)", + "forVulkan": "Forza Aggiornamento {service} (Vulkan)", + "forRocm": "Forza Aggiornamento {service} (ROCm)", + "forOpencl": "Forza Aggiornamento {service} (OpenCL)", + "forSycl": "Forza Aggiornamento {service} (SYCL)", + "successMessage": { + "detail": "{service} è aggiornato all'ultima versione {version}" + }, + "errorMessage": { + "detail": "Impossibile aggiornare {service}. Controlla i log per maggiori dettagli." + } + }, + "removeService": { + "title": "Rimuovi {service}", + "confirmationHeader": "Rimuovi {service}", + "confirmationMessage": "Sei sicuro di voler rimuovere {service}? Questo eliminerà l'eseguibile del servizio e tutte le sue configurazioni. Potrai reinstallarlo in seguito dalla pagina delle impostazioni.", + "confirmationAccept": "Rimuovi", + "successMessage": { + "detail": "{service} è stato rimosso con successo" + }, + "errorMessage": { + "detail": "Impossibile rimuovere {service}. Controlla i log per maggiori dettagli." + } + } + }, + "localArchive": { + "drawerHeader": "Installa da Archivio Locale", + "variant": "Variante", + "primaryArchive": "Archivio LLaMA.cpp", + "cudartArchive": "Archivio Runtime CUDA", + "noFileSelected": "Nessun file selezionato", + "browse": "Sfoglia", + "install": "Installa", + "cudartHint": "es. cudart-llama-bin-win-cuda-*.zip" + }, + "serviceConfigurations": { + "title": "Configurazioni Servizio", + "description": "Queste configurazioni vengono applicate a {service} all'avvio. {service} si riavvierà automaticamente dopo aver salvato le modifiche.", + "enableNetworkAccess": { + "title": "Abilita Accesso di Rete", + "description": "Consenti ad altri dispositivi sulla tua rete di accedere a questo {service} tramite l'indirizzo IP di questo dispositivo." + }, + "allowMstyStudioAccess": { + "title": "Consenti Accesso da Msty Studio", + "description": "Consenti le connessioni da Msty Studio Web a questa app in modo che possa accedere a {service}." + }, + "captureServiceLogs": { + "title": "Cattura Log del Servizio", + "description": "Abilita la registrazione per acquisire i dati del servizio per il debug. Assicurati di abilitare questa impostazione solo se necessario." + }, + "unsavedChanges": { + "message": "Hai delle modifiche non salvate nelle Configurazioni di {service}. Una volta salvate, {service} si riavvierà con le nuove configurazioni.", + "saveChanges": "Salva Modifiche e Riavvia Servizio", + "successMessage": { + "detail": "Configurazioni {service} salvate e servizio riavviato" + }, + "errorMessage": { + "detail": "Impossibile salvare le Configurazioni di {service}. Controlla i log per maggiori dettagli." + } + } + }, + "modelConfigurations": { + "title": "Configurazioni @:model", + "description": "Queste configurazioni vengono applicate a tutti i modelli durante le sessioni di chat." + } + }, + "keyboardShortcuts": { + "title": "Scorciatoie da Tastiera", + "description": "Personalizza le scorciatoie da tastiera per un rapido accesso alle funzionalità", + "search": "Cerca scorciatoie...", + "searchByShortcut": "Cerca per scorciatoia", + "searchByName": "Cerca per nome", + "pressShortcut": "Premi qualsiasi combinazione di tasti...", + "pressKeys": "Premi i tasti...", + "notSet": "Non impostato", + "edit": "Modifica scorciatoia", + "clear": "Cancella", + "global": "Globale", + "saved": "Scorciatoia salvata", + "error": "Errore nel salvataggio della scorciatoia", + "reset": "Scorciatoia ripristinata", + "resetToDefault": "Ripristina predefinite", + "resetAll": "Ripristina tutte le scorciatoie", + "allReset": "Tutte le scorciatoie sono state ripristinate ai valori predefiniti", + "noResults": "Nessuna scorciatoia trovata", + "conflictWith": "In conflitto con: {name}", + "categories": { + "all": "Tutte", + "general": "Generale", + "navigation": "Navigazione", + "appearance": "@:settings.appearance", + "conversation": "Conversazione", + "agentMode": "Modalità Agente" + }, + "resetAllConfirm": { + "title": "Ripristina Tutte le Scorciatoie", + "message": "Sei sicuro di voler ripristinare tutte le scorciatoie da tastiera ai loro valori predefiniti?" + }, + "help": { + "title": "Scorciatoie da Tastiera", + "customizeButton": "Personalizza Scorciatoie" + }, + "contextual": "Contestuale", + "systemWide": "A livello di sistema", + "perSplit": "Per Divisione", + "macOptionHint": "Le scorciatoie con il tasto Opzione funzionano in Msty. Se invece producono caratteri speciali, controlla Impostazioni di Sistema > Tastiera > Sorgenti di Input", + "example": { + "title": "Esempio Scorciatoie da Tastiera", + "description": "Questo componente dimostra come registrare e utilizzare le scorciatoie da tastiera nei tuoi componenti.", + "registeredShortcuts": "Scorciatoie Registrate:", + "exampleAction1": "Azione di Esempio 1", + "scopedAction": "Azione con Scopo", + "actions": "Azioni:", + "updateFirstShortcut": "Aggiorna Prima Scorciatoia", + "testConflictDetection": "Testa Rilevamento Conflitti", + "actionLog": "Registro Azioni:", + "noActionsYet": "Ancora nessuna azione. Prova a premere le scorciatoie!", + "developerNotes": { + "title": "Note per Sviluppatori:", + "items": [ + "Le scorciatoie vengono ripulite automaticamente quando il componente viene smontato", + "Usa scorciatoie limitate al componente per evitare conflitti di ID", + "Le associazioni specifiche della piattaforma vengono gestite automaticamente (Cmd su Mac, Ctrl su Windows)", + "Controlla i conflitti prima di registrare scorciatoie che potrebbero scontrarsi con quelle esistenti", + "Le scorciatoie possono essere globali (funzionano ovunque) o specifiche del contesto" + ] + } + }, + "splitRemoval": { + "selectSplitToRemove": "Seleziona la divisione da rimuovere", + "pressKeysToCancel": "Premi", + "remove": "Rimuovi" + } + }, + "commandPalette": { + "title": "Palette dei Comandi", + "description": "Cerca comandi, impostazioni e navigazione", + "placeholder": "Digita un comando, un pannello o una destinazione", + "count": "corrispondenze", + "unavailable": "Non disponibile", + "sections": { + "recent": "Recenti", + "create": "Crea", + "navigation": "Vai A", + "settings": "Impostazioni", + "desktop": "Desktop" + }, + "empty": { + "title": "Nessun comando nell'intervallo", + "default": "Prova a cercare un'impostazione, una destinazione di navigazione o un comando di creazione.", + "withQuery": "Nessun comando corrisponde a questa ricerca. Prova con una frase più breve o una parola chiave più ampia." + }, + "reasons": { + "blockedByOverlay": "Chiudi prima la finestra di dialogo o il pannello corrente", + "requiresConversation": "Apri prima una conversazione", + "unavailableInCrew": "La creazione di divisioni non è disponibile nelle sessioni crew", + "unavailable": "Questo comando non è al momento disponibile" + }, + "toasts": { + "checkingUpdates": "Ricerca aggiornamenti in corso…", + "localAIUpdateStarted": "Aggiornamento Local AI avviato", + "mlxUpdateStarted": "Aggiornamento MLX avviato" + }, + "commands": { + "newConversation": { + "label": "Nuova Conversazione", + "description": "Inizia una nuova conversazione nell'area di lavoro attiva" + }, + "newSplit": { + "label": "Nuova Chat Divisa", + "description": "Aggiungi una nuova divisione alla conversazione corrente" + }, + "openModelHub": { + "label": "Apri Hub dei Modelli", + "description": "Sfoglia fornitori, modelli, calcolatori e strumenti di scoperta" + }, + "openRemoteModels": { + "label": "Apri Modelli Remoti", + "description": "Vai direttamente ai fornitori di modelli ospitati nell'Hub dei Modelli" + }, + "openLocalModels": { + "label": "Apri Modelli Locali", + "description": "Vai direttamente ai modelli locali installati nell'Hub dei Modelli" + }, + "openTools": { + "label": "Apri Casella degli Strumenti", + "description": "Apri l'area di lavoro degli strumenti" + }, + "openToolsets": { + "label": "Apri Set di Strumenti", + "description": "Apri l'area di lavoro dei set di strumenti" + }, + "openLiveContexts": { + "label": "Apri Contesti Live", + "description": "Apri l'area di lavoro dei contesti live" + }, + "openPersonas": { + "label": "Apri Personas", + "description": "Gestisci personas e scoperte di personas" + }, + "openTurnstiles": { + "label": "Apri Turnstile", + "description": "Gestisci i flussi di turnstile e di routing" + }, + "openKnowledgeStack": { + "label": "Apri Stack Conoscenza", + "description": "Apri l'esperienza Stack Conoscenza attiva" + }, + "openPromptsLibrary": { + "label": "Apri Libreria Prompts", + "description": "Sfoglia i prompt salvati e gli strumenti dei prompt" + }, + "openEnvironments": { + "label": "Apri Ambienti", + "description": "Gestisci le variabili d'ambiente e i valori dell'area di lavoro" + }, + "openNotifications": { + "label": "Apri Notifiche", + "description": "Rivedi le notifiche recenti dell'app" + }, + "openLogViewer": { + "label": "Apri Visualizzatore Log", + "description": "Ispeziona i log del desktop e l'output di esecuzione" + }, + "openSettings": { + "label": "Apri Impostazioni", + "description": "Apri la finestra delle impostazioni dell'applicazione" + }, + "openKeyboardShortcuts": { + "label": "Apri Impostazioni Scorciatoie da Tastiera", + "description": "Personalizza e ispeziona le scorciatoie da tastiera" + }, + "openKeyboardShortcutsHelp": { + "label": "Apri Guida Scorciatoie da Tastiera", + "description": "Mostra la guida rapida delle scorciatoie da tastiera" + }, + "openLocalAISettings": { + "label": "Apri Impostazioni AI Locale", + "description": "Passa alle impostazioni del servizio AI Locale" + }, + "openMLXSettings": { + "label": "Apri Impostazioni MLX", + "description": "Passa alle impostazioni del servizio MLX" + }, + "openNotificationsSettings": { + "label": "Apri Impostazioni Notifiche", + "description": "Passa alle preferenze delle notifiche" + }, + "openLogViewerSettings": { + "label": "Apri Impostazioni Visualizzatore Log", + "description": "Passa alle preferenze del visualizzatore log" + }, + "checkForUpdates": { + "label": "Verifica Aggiornamenti App", + "description": "Chiedi all'app desktop di cercare una versione più recente" + }, + "updateLocalAI": { + "label": "Aggiorna AI Locale", + "description": "Avvia il flusso di aggiornamento del servizio AI Locale" + }, + "updateMLX": { + "label": "Aggiorna MLX", + "description": "Avvia il flusso di aggiornamento del servizio MLX" + }, + "createForgeCanvas": { + "label": "Nuovo Forge Canvas", + "description": "Crea una nuova conversazione forge canvas" + }, + "createPersonaConversation": { + "label": "Nuova Conversazione Persona", + "description": "Inizia una conversazione con una persona" + }, + "createCrewConversation": { + "label": "Nuova Conversazione Crew", + "description": "Avvia una conversazione crew multi-agente" + }, + "createAgentSession": { + "description": "Avvia una nuova sessione agente autonoma" + }, + "enterVaporMode": { + "label": "Entra in Modalità Vapor", + "description": "Inizia una conversazione effimera" + }, + "expandAllProjects": { + "label": "Espandi Tutti i Progetti", + "description": "Espandi tutte le cartelle di progetto nella barra laterale" + }, + "collapseAllProjects": { + "label": "Comprimi Tutti i Progetti", + "description": "Comprimi tutte le cartelle di progetto nella barra laterale" + }, + "setSplitWidth": { + "label": "Imposta Larghezza Divisione", + "description": "Scegli la larghezza del pannello di conversazione" + }, + "splitSlim": { + "label": "Sottile", + "description": "Pannelli di conversazione stretti" + }, + "splitBalanced": { + "label": "Bilanciata", + "description": "Pannelli di conversazione di media larghezza" + }, + "splitRoomy": { + "label": "Spaziosa", + "description": "Pannelli di conversazione confortevoli" + }, + "splitSpacious": { + "label": "Ampia", + "description": "Pannelli di conversazione extra-larghi" + }, + "splitFull": { + "label": "Intera", + "description": "Pannelli di conversazione alla massima larghezza" + }, + "setTheme": { + "label": "Imposta Tema Colori", + "description": "Scegli il tema chiaro, scuro o di sistema" + }, + "themeLight": { + "label": "Chiaro", + "description": "Passa alla modalità chiara" + }, + "themeDark": { + "label": "Scuro", + "description": "Passa alla modalità scura" + }, + "themeSystem": { + "label": "Sistema", + "description": "Segui le preferenze di colore del sistema" + }, + "setMode": { + "label": "Cambia Modalità di Visualizzazione", + "description": "Scegli la modalità normale, focus o zen" + }, + "modeNormal": { + "label": "Normale", + "description": "Visualizzazione standard con tutti i pannelli" + }, + "modeFocus": { + "label": "Focus", + "description": "Distrazioni ridotte, interfaccia minima" + }, + "modeZen": { + "label": "Zen", + "description": "Massima tranquillità, senza distrazioni" + }, + "setAccentColor": { + "label": "Imposta Colore d'Accento", + "description": "Scegli un colore d'accento per l'interfaccia" + }, + "setAccentColorTo": { + "description": "Imposta il colore d'accento a {name}" + }, + "toggleMiniMap": { + "label": "Attiva/Disattiva Mini Mappa", + "description": "Mostra o nascondi la mini mappa della conversazione" + }, + "createWorkspace": { + "label": "Nuova Area di Lavoro", + "description": "Crea una nuova area di lavoro" + }, + "switchWorkspace": { + "label": "Cambia Area di Lavoro", + "description": "Passa a un'area di lavoro diversa" + }, + "switchWorkspaceTo": { + "description": "Passa a {name}" + }, + "exitVaporMode": { + "label": "Esci dalla Modalità Vapor", + "description": "Abbandona la modalità vapor e torna alle conversazioni normali" + }, + "editConversationTitle": { + "label": "Modifica Titolo Conversazione", + "description": "Rinomina la conversazione attiva" + }, + "toggleSidebar": { + "label": "Attiva/Disattiva Barra Laterale", + "description": "Mostra o nascondi la barra laterale" + }, + "setBaseColor": { + "label": "Imposta Colore di Base", + "description": "Scegli un colore di superficie base per la modalità scura" + }, + "setBaseColorTo": { + "description": "Imposta colore di base a {name}" + } + } + }, + "createNew": "Crea Nuovo", + "copy": "Copia", + "miniMapActions": { + "noMessageSelectedWarning": { + "summary": "Nessun Messaggio Selezionato", + "detail": "Seleziona almeno un messaggio per eseguire qualsiasi azione" + }, + "exportOrCopyMessage": { + "exportMessage": "Esporta Messaggio | Esporta Messaggi", + "copyMessage": "Copia Messaggio | Copia Messaggi", + "asJson": "Come JSON", + "asMarkdown": "Come Markdown", + "successMessage": "Messaggi {action} con successo come {format}", + "action": { + "export": "esportati", + "copy": "copiati" + } + } + }, + "reIndexItem": { + "action": "Reindicizza {item}", + "successMessage": { + "detail": "{item} reindicizzato con successo" + }, + "errorMessage": { + "detail": "Impossibile reindicizzare {item}" + }, + "confirmationMessage": "Sei sicuro di voler reindicizzare {item}?" + }, + "recent": "Recente|Recenti", + "recentsPinned": "Recenti & @:pinned", + "knowledgeStack": { + "title": "Stack Conoscenza | Stack Conoscenza", + "contexts": "Contesti @:knowledgeStack.title", + "composeProgress": { + "clickForDetails": "Composizione in corso — clicca per i dettagli", + "processing": "Elaborazione: {fileName}", + "composing": "Composizione in corso", + "composingEllipsis": "Composizione in corso…", + "files": "File", + "notes": "Note", + "youtube": "YouTube", + "webLinks": "Link Web", + "folders": "Cartelle", + "conversations": "Conversazioni", + "conversationProjects": "Progetti di Conversazione", + "overallProgress": "Progresso complessivo", + "inFlight": "In corso:" + }, + "itemStatus": { + "ignoredForRetrieval": "Ignorato per il recupero" + }, + "archive": { + "groupLabel": "Archivio", + "archiveSingle": "Archivia", + "unarchiveSingle": "Estrai dall'archivio", + "archivedToast": "{count} Stack Conoscenza archiviato | {count} Stack Conoscenza archiviati", + "hiddenHint": "Ora è nell'Archivio. Attiva \"Mostra archiviati\" per vederlo.", + "unarchivedToast": "{count} Stack Conoscenza ripristinato | {count} Stack Conoscenza ripristinati", + "error": "Impossibile aggiornare lo stato di archiviazione. Riprova." + }, + "cloudShare": { + "importingFolder": "Importazione cartella: {name}", + "processingCount": "Elaborazione di {count} stack conoscenza" + }, + "saveEdits": { + "title": "Salva Modifiche", + "confirmation": { + "header": "Salva Modifiche e Segna come Bozza", + "message": "Sei sicuro di voler salvare le tue modifiche? Questo contrassegnerà lo Stack Conoscenza come bozza e ne impedirà l'uso in produzione fino a quando non verrà elaborato di nuovo." + } + }, + "selectFolderForImport": "Scegli dove importare il @:knowledgeStack.title", + "newKnowledgeStack": "Nuovo @:knowledgeStack.title", + "legacy": "Classico", + "switchV2": { + "menu": "Passa al Next Gen Knowledge Stack...", + "title": "Prova la nuova esperienza Next Gen.", + "description": "Puoi tornare indietro in qualsiasi momento.", + "confirm": "Passa a Next Gen", + "caveats": { + "title": "Prima di cambiare", + "description": "Alcuni dettagli importanti da tenere a mente.", + "item1": "I nuovi stack che crei utilizzeranno il flusso Next Gen.", + "item2": "Gli stack Classici vengono visualizzati come sola lettura finché non scegli di aggiornarli.", + "item3": "Le analisi degli stack Classici non sono disponibili in Next Gen.", + "item4": "Tornando indietro verranno nascosti gli stack Next Gen, ma nulla verrà eliminato." + }, + "features": { + "title": "Novità in Next Gen", + "description": "Punti salienti che otterrai subito.", + "item1": "Pagine web e acquisizione più ricca di link YouTube.", + "item2": "Cartelle di conversazioni e progetti.", + "item3": "Modalità di controllo cartelle con composizione automatica.", + "item4": "Controlli di composizione, ripresa e analisi migliorati." + } + }, + "switchV1": { + "menu": "Torna al Classic Knowledge Stack...", + "title": "Tornare al Classic Knowledge Stack?", + "description": "Ritorna all'esperienza originale del Knowledge Stack.", + "confirm": "Passa a Classico", + "caveats": { + "title": "Cosa aspettarsi", + "description": "La modalità classica mantiene i tuoi dati ma limita le nuove funzionalità.", + "item1": "Le funzionalità Next Gen non saranno disponibili in modalità Classica.", + "item2": "Gli stack Next Gen verranno nascosti fino a quando non tornerai indietro.", + "item3": "Puoi passare di nuovo a Next Gen in qualsiasi momento." + } + }, + "classicLabel": "Classico", + "nextGenLabel": "Next Gen", + "cloneDefaultTitle": "Copia di {title}", + "cloneInfo": { + "title": "Clonato da", + "id": "ID Sorgente", + "clonedAt": "Clonato alle {time}" + }, + "cloneConfirm": { + "header": "Clona Stack Conoscenza", + "message": "Questo crea un clone rapido. I contenuti dei file memorizzati nella cache non vengono copiati. La ricomposizione dipende dai file sorgente originali. Le cartelle dinamiche rimangono collegate ai loro percorsi di origine.", + "includeVectorDbLabel": "Includi Vector DB", + "includeVectorDbHelp": "Abilita questo per copiare i dati vettoriali per una ricerca immediata nello stack clonato." + }, + "upgradeV2": { + "menu": "Aggiorna a Next Gen...", + "title": "Aggiorna Stack Conoscenza", + "stackLabel": "Stack: {title}", + "description": "L'aggiornamento sposta questo Stack Conoscenza al motore Next Gen. Gli elementi rimangono dove sono, la ricerca continua a funzionare fino a quando non li ricomponi e si sbloccano nuovi contenitori. Controlla prima l'impatto e poi continua.", + "changesTitle": "Cosa cambia in Next Gen", + "changesDescription": "Aggiornamenti di comportamento una volta che questo stack è su Next Gen.", + "changesItem1": "Questo stack è modificabile solo in Next Gen; il Classico lo apre in modalità sola lettura.", + "changesItem2": "Tutti gli elementi sono contrassegnati per la rielaborazione in modo che tu possa esaminarli o saltarli prima di comporre.", + "changesItem3": "La pipeline Next Gen gestisce la cache, il tracciamento dei progressi e il recupero.", + "staysTitle": "Cosa rimane uguale", + "staysDescription": "I tuoi contenuti e la struttura rimangono intatti.", + "staysItem1": "Gli elementi e le posizioni di origine rimangono gli stessi; nulla viene eliminato.", + "staysItem2": "La ricerca esistente rimane disponibile fino al completamento della rielaborazione.", + "staysItem3": "Sei tu a decidere quando rielaborare e cosa includere.", + "nextTitle": "Dopo l'aggiornamento", + "nextDescription": "Prossimi passi suggeriti una volta completato il passaggio.", + "nextItem1": "Controlla gli elementi contrassegnati per la rielaborazione e aggiorna se necessario le regole ignora o blocca.", + "nextItem2": "Ricomponi per aggiornare l'indice e l'analisi (l'operazione potrebbe richiedere del tempo).", + "nextItem3": "Metti in pausa, riprendi o interrompi la composizione in qualsiasi momento.", + "detailsTitle": "Dettagli e impatto", + "detailsDescription": "Compatibilità, gestione dati, comportamento di composizione e nuove funzionalità.", + "oneWayTitle": "Modifica irreversibile", + "oneWayDetail": "L'aggiornamento è una modifica a senso unico. Puoi continuare a lavorare in Classico finché non decidi di aggiornare.", + "confirm": "Aggiorna", + "success": "Stack Conoscenza aggiornato a Next Gen.", + "required": "Aggiornamento richiesto", + "requiredDetail": "Aggiorna questo Stack Conoscenza per utilizzare questa funzionalità.", + "sections": { + "compatibility": { + "title": "Compatibilità", + "description": "Come accedere a questo stack nel Classico e in Next Gen dopo l'aggiornamento.", + "item1": "Dopo l'aggiornamento, il Classico apre questo stack in modalità sola lettura.", + "item2": "Altri stack possono rimanere sul Classico fino a quando decidi di aggiornarli." + }, + "data": { + "title": "I tuoi contenuti", + "description": "Come vengono conservati gli elementi e gestite le origini mancanti.", + "item1": "Gli elementi rimangono dove sono; le fonti non vengono spostate.", + "item2": "Se una fonte è mancante, vedrai un avviso e deciderai come procedere." + }, + "compose": { + "title": "Composizione e ricerca", + "description": "Cosa succede quando rielabori questo stack.", + "item1": "Gli elementi sono contrassegnati per la rielaborazione per poterli esaminare o ignorare.", + "item2": "La ricerca esistente rimane disponibile fino al completamento della rielaborazione.", + "item3": "Puoi mettere in pausa, riprendere o interrompere la composizione in qualsiasi momento." + }, + "features": { + "title": "Novità in Next Gen", + "description": "Contenitori e controlli aggiuntivi sbloccati dopo l'aggiornamento.", + "item1": "I link web, le conversazioni e i progetti diventano disponibili.", + "item2": "Tracciamento più affidabile dei progressi, pausa/ripresa e recupero." + } + } + }, + "import": { + "title": "Importa @:knowledgeStack.title", + "titleWithFolder": "Importa @:knowledgeStack.title in {folder}", + "dragAndDropMessage": "Trascina e rilascia un file esportazione Msty Knowledge Stack (.mstyks) per importarlo." + }, + "addDescription": "Aggiungi descrizione", + "editDescription": "Modifica descrizione", + "descriptionPlaceholder": "Aggiungi una descrizione per questo Stack Conoscenza...", + "autoSaving": "Salvataggio...", + "autoSaved": "Salvato alle {time}", + "basicInfo": "Informazioni di Base", + "similarityThreshold": "Soglia di @:similarity", + "similarityThresholdTooltip": "Punteggio di corrispondenza minimo richiesto (0-1). Valori più alti restituiscono solo frammenti molto rilevanti. Valori più bassi includono più risultati.", + "similarityMatch": "Corrispondenza di @:similarity", + "unsavedChanges": { + "confirmNavigation": "Hai delle modifiche non salvate. Sei sicuro di voler lasciare questa pagina? Le tue modifiche andranno perse.", + "confirmReload": "Hai delle modifiche non salvate che andranno perse se ricarichi la pagina." + }, + "empty": { + "title": "Nessun @:knowledgeStack.title selezionato", + "description": "Knowledge Stack ti consente di importare file, cartelle, note e trascrizioni di YouTube, rendendoli ricercabili e pronti per la conversazione tramite Retrieval-Augmented Generation (RAG)" + }, + "selectOrCreate": "Seleziona un @:knowledgeStack.title", + "selectFromTreeOrCreate": "Seleziona un @:knowledgeStack.title dall'elenco o creane uno nuovo", + "folderForm": { + "addTitle": "Aggiungi Nuova @:folder", + "editTitle": "Modifica @:folder", + "editIgnoreRules": "Modifica Regole di Esclusione", + "editIgnoreRulesTitle": "Regole di Esclusione", + "ignoreRulesDescription": "Definisci i pattern per escludere file e cartelle dall'elaborazione.", + "ignoreRulesHierarchySimple": "Priorità: .mstyignore/.gitignore locale → Regole cartella → Predefiniti di sistema", + "ignoreRulesPlaceholder": "# Inserisci i pattern qui, uno per riga\n# Esempio: *.log, node_modules/, !important.txt", + "showExamples": "Mostra esempi e aiuti", + "ignoreExample1": "File di log", + "ignoreExample2": "File temporanei in tutte le directory", + "ignoreExample3": "Intera directory", + "ignoreExample4": "Pattern di eccezione", + "ignoreExample5": "Tipi multipli di immagini", + "ignoreExample6": "Tutti i file in test e relative sottocartelle", + "ignoreExample7": "Corrispondenza non sensibile alle maiuscole", + "ignoreExample8": "File che iniziano per secret-", + "insertTemplate": "Usa modello", + "clearContent": "Cancella tutto", + "ignoreRulesUpdated": "Regole di esclusione aggiornate con successo", + "ignoreRulesUpdateError": "Impossibile aggiornare le regole di esclusione", + "deleteConfirmation": { + "header": "Elimina @:folder '{folderName}'", + "message": "Sei sicuro di voler eliminare questa cartella? Tutti gli Stack di Conoscenza al suo interno verranno rimossi. L'azione non può essere annullata.", + "successMessage": { + "detail": "@:folder eliminata" + }, + "errorMessage": { + "detail": "Impossibile eliminare @:folder" + } + }, + "updateErrorMessage": { + "detail": "Impossibile aggiornare @:folder" + }, + "createSuccessMessage": { + "detail": "@:folder creata" + }, + "createErrorMessage": { + "detail": "Impossibile creare @:folder" + } + }, + "setDefaultFolder": "Imposta come Cartella Predefinita", + "unsetDefaultFolder": "Rimuovi Cartella Predefinita", + "createRootFolder": "Nuova Cartella nella Root", + "knowledgeStackForm": { + "addTitle": "Aggiungi Nuovo @:knowledgeStack.title", + "deleteConfirmation": { + "header": "Elimina @:knowledgeStack.title", + "message": "Sei sicuro di voler eliminare questo Knowledge Stack? Tutti gli elementi al suo interno verranno rimossi. L'azione non può essere annullata." + } + }, + "deleteAllKnowledgeStack": { + "title": "Elimina Tutti i @:knowledgeStack.title", + "description": "Questo eliminerà interi @:knowledgeStack.title{'.'} Non c'è modo di recuperarli dopo l'eliminazione.", + "successMessage": { + "detail": "Tutti i @:knowledgeStack.title eliminati" + }, + "errorMessage": { + "detail": "Impossibile eliminare tutti i @:knowledgeStack.title" + } + }, + "chunksConsole": { + "chunk": "Chunk | @:knowledgeStack.chunksConsole.chunks", + "chunks": "Chunk", + "title": "Console dei @:knowledgeStack.chunksConsole.chunks", + "description": "Usa questa console per capire come viene utilizzato il tuo Knowledge Stack, { title }, e quali frammenti (chunk) vengono inviati a un modello durante la chat. Puoi anche eliminare un chunk se ritieni che non sia rilevante o utile.", + "queryText": "Testo della Query", + "similarityFilter": { + "title": "@:similarity", + "all": "Tutti", + "highest": "Altissima", + "high": "Alta", + "medium": "Media", + "low": "Bassa" + }, + "matchCount": "N. di @:knowledgeStack.chunksConsole.chunks", + "sourceFile": "File Origine", + "sourceNote": "Nota Origine", + "sourceVideo": "Video Origine", + "sourceWebLink": "Link Web Origine", + "sourceConversation": "Conversazione Origine", + "source": "Origine", + "score": "Punteggio", + "searchResults": "Risultati Ricerca", + "rerankApplied": "Rerank applicato ({model})", + "rerankSelected": "Modello di reranking selezionato ({model})", + "rerankScore": "Punteggio di rerank", + "reranked": "Reranked", + "noResultsFound": "Nessun risultato di ricerca trovato. Prova a modificare la query o le impostazioni di ricerca.", + "noResultsAfterFilter": "Nessun risultato corrisponde all'attuale filtro di somiglianza. Prova a regolare il filtro per mostrare più risultati.", + "deleteChunk": { + "successMessage": { + "detail": "Il @:knowledgeStack.chunksConsole.chunk è stato eliminato" + } + }, + "searchType": { + "title": "Tipo di Ricerca", + "hybrid": "Ricerca Ibrida", + "semantic": "Ricerca Semantica", + "keyword": "Ricerca per Parole Chiave" + }, + "filterDisclaimer": "Questo filtro influisce solo su quali risultati vengono visualizzati di seguito. Non modifica la query effettiva.", + "tooltip": { + "scrubbed": "Il contenuto è stato ripulito per la rimozione delle PII", + "cached": "È stata utilizzata la versione ripulita nella cache", + "fresh": "Contenuto appena ripulito" + }, + "runQuery": "Esegui Query" + }, + "addon": { + "title": "@:knowledgeStack.title", + "selectedCount": "{count} selezionati", + "selectedStacks": "Stack Selezionati", + "searchPlaceholder": "Cerca Stack Conoscenza...", + "recentlyUpdated": "Aggiornati di Recente", + "searchResults": "Risultati Ricerca", + "noResults": "Nessun Stack Conoscenza trovato", + "noStacks": "Nessun Stack Conoscenza disponibile", + "noDescription": "Nessuna descrizione", + "numberOfChunks": "Numero di @:knowledgeStack.chunksConsole.chunks", + "numberOfChunksTooltip": "Numero massimo di frammenti di testo da recuperare dai tuoi Stack Conoscenza. Valori più alti forniscono più contesto ma utilizzano più token.", + "searchType": "Tipo di Ricerca", + "searchTypeTooltip": "La semantica trova contenuti concettualmente simili. Le parole chiave corrispondono a termini esatti. L'ibrido combina entrambi gli approcci.", + "synthesizePrompt": "Sintetizza Query", + "synthesizePromptTooltip": "Riformula la query per migliorare i risultati di ricerca espandendo le abbreviazioni e aggiungendo contesto.", + "enablePiiScrubbing": "Abilita Pulizia PII", + "enablePiiScrubbingTooltip": "Oscura automaticamente i dati personali (nomi, e-mail, numeri di telefono, ecc.) dai chunk recuperati prima di inviarli al modello.", + "fullContentContextLimit": "Limite Contesti Contenuto Integrale", + "fullContentContextLimitTooltip": "Numero di documenti completi da includere insieme ai frammenti. Fornisce un contesto più ricco ma aumenta in modo significativo l'utilizzo dei token.", + "fullContentContextWarning": "I Contesti Contenuto Integrale possono aumentare in modo significativo l'utilizzo dei token e influire sulle prestazioni", + "manageStacks": "Gestisci Stack", + "onlyCompletedStacks": "Solo gli stack completati possono essere selezionati" + }, + "totalFiles": "File Totali", + "vectorDimensions": "Dimensioni Vettore", + "wordCount": "Conteggio Parole", + "readingTime": "Tempo di Lettura", + "embeddingModel": { + "title": "Modello di Embedding", + "noModel": "Nessun modello di embedding configurato", + "modelMissing": "Modello {modelId} non trovato", + "providerRemapped": "Il provider del modello è stato mappato automaticamente", + "changeModel": "Cambia modello di Embedding Query", + "selectModel": "Seleziona Modello di Embedding Query", + "missingModelWarning": "Il modello di embedding originale per questo Stack Conoscenza non è disponibile. Seleziona un nuovo modello.", + "providerRemappedInfo": "Il provider del modello di embedding è stato mappato automaticamente a un provider compatibile.", + "currentModel": "Modello Attuale", + "noModelConfigured": "Nessun modello configurato", + "selectNewModel": "Seleziona Nuovo Modello", + "defaultLocal": "Predefinito (Locale)" + }, + "buckets": { + "files": { + "title": "@:files", + "description": "Aggiungi .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx o qualsiasi altro tipo di file supportato.", + "dropZoneText": "Trascina e rilascia i file qui o sfoglia di seguito", + "browseFiles": "Sfoglia File", + "dropHint": "Rilascia i file qui", + "limitMessage": "Puoi aggiungere fino a {limit} singoli file qui. Per set più grandi, aggiungi invece una cartella per mantenere le cose organizzate e più facili da gestire.", + "bulkRemoveConfirm": "Rimuovere {count} file da questo Stack Conoscenza?" + }, + "folders": { + "title": "@:folders & Vault Obsidian", + "description": "Aggiungi cartelle contenenti file. Puoi anche trascinare e rilasciare i Vault Obsidian.", + "dropZoneText": "Trascina e rilascia le cartelle qui o sfoglia di seguito", + "browseFolders": "Sfoglia Cartelle", + "dropHint": "Rilascia le cartelle qui", + "liveMode": "Modalità Live", + "liveModeDescription": "Le cartelle vengono monitorate per le modifiche e aggiornano automaticamente lo Stack Conoscenza", + "duplicateFolder": "Cartella Duplicata", + "alreadyAdded": "Cartella Già Aggiunta", + "folderAlreadyExists": "Questa cartella è già stata aggiunta a @:knowledgeStack.title", + "folderAlreadyAdded": "La cartella '{path}' è già stata aggiunta", + "folderProcessed": "Cartella Elaborata", + "filesAdded": "{count} file aggiunti con successo", + "onlyFoldersAllowed": "Qui possono essere aggiunte solo le cartelle. Seleziona una cartella invece dei singoli file.", + "selectFolder": "Seleziona Cartella", + "useDirectoryPicker": "Utilizza il pulsante Sfoglia per selezionare una cartella nella modalità web", + "processed": "Elaborato", + "processingError": "Errore di Elaborazione Cartella", + "folderExplorer": "Esplora Cartelle", + "showIgnoredFiles": "Mostra File Ignorati", + "noFolders": "Ancora nessuna cartella aggiunta", + "refresh": "Aggiorna", + "showInFileManager": "Mostra in Gestione File", + "remove": "Rimuovi", + "loadError": "Caricamento Cartella Fallito", + "removed": "Cartella Rimossa", + "folderRemoved": "'{name}' è stata rimossa dallo Stack Conoscenza", + "removeError": "Impossibile Rimuovere la Cartella", + "ignored": "Ignorato", + "loading": "Caricamento...", + "loadingContents": "Caricamento contenuti cartella...", + "confirmRemove": "Sei sicuro di voler rimuovere \"{name}\" da questo Stack Conoscenza? La cartella e i suoi file rimarranno sul tuo sistema.", + "expandFolder": "Espandi cartella", + "collapseFolder": "Comprimi cartella", + "folderIgnored": "Questa cartella è ignorata in base alle regole .mstyignore o .gitignore", + "fileIgnored": "Questo file è ignorato in base alle regole .mstyignore o .gitignore", + "actionMenu": "Menu azioni", + "emptyFolder": "Cartella vuota", + "itemCount": "{count} elemento | {count} elementi", + "hiddenItemCount": "{count} elemento nascosto | {count} elementi nascosti" + }, + "obsidianVaults": { + "title": "Vault Obsidian", + "description": "Aggiungi i Vault Obsidian al tuo Stack Conoscenza. Msty indicizzerà tutte le note nel vault.", + "dropZoneText": "Trascina e rilascia i Vault Obsidian qui o sfoglia di seguito", + "browseVaults": "Sfoglia Vault Obsidian" + }, + "notes": { + "title": "Note", + "description": "Aggiungi le tue note allo Stack Conoscenza. Queste note verranno frammentate (chunking) e incorporate (embedding) per la ricerca semantica.", + "addNote": "Aggiungi Nota", + "titlePlaceholder": "Inserisci il titolo della nota...", + "contentPlaceholder": "Inserisci il contenuto della nota...", + "empty": "Ancora nessuna nota aggiunta. Aggiungile qui sotto.", + "unsaved": "Non ancora salvata" + }, + "youTubeLinks": { + "title": "Link YouTube", + "description": "Aggiungi i link ai video di YouTube per indicizzare i loro sottotitoli. Msty recupererà i sottotitoli e li renderà ricercabili.", + "deprecationWarning": "L'accesso ai sottotitoli di YouTube è attualmente influenzato da restrizioni delle piattaforme di terze parti. Stiamo esplorando meccanismi alternativi per ripristinare la funzionalità; tuttavia, se una soluzione sostenibile non è fattibile, questa funzione potrebbe essere deprecata in una versione futura.", + "dropZoneText": "Trascina e rilascia i link YouTube qui o incollali di seguito", + "inputPlaceholder": "Incolla gli URL di YouTube qui (separati da spazio o virgola)...", + "inputPlaceholderWithDetected": "Incolla gli URL di YouTube qui ({count} rilevato) | Incolla gli URL di YouTube qui ({count} rilevati)", + "autoDetection": "Estrazione automatica degli URL rilevati", + "detectedCount": "{count} URL rilevato | {count} URL rilevati", + "detectedUnpulledUrls": "{count} URL YouTube rilevato ma non ancora estratto | {count} URL YouTube rilevati ma non ancora estratti" + }, + "webLinks": { + "title": "Link Web", + "description": "Aggiungi pagine web allo Stack Conoscenza. Msty recupererà e salverà i loro contenuti per la ricerca.", + "dropZoneText": "Trascina e rilascia gli URL qui o incollali di seguito", + "inputPlaceholder": "Incolla gli URL dei siti Web qui (separati da spazio o virgola)...", + "inputPlaceholderWithDetected": "Incolla gli URL dei siti Web qui ({count} rilevato) | Incolla gli URL dei siti Web qui ({count} rilevati)", + "autoDetection": "Estrazione automatica degli URL rilevati", + "detectedCount": "{count} URL rilevato | {count} URL rilevati", + "detectedUnpulledUrls": "{count} URL rilevato ma non ancora estratto | {count} URL rilevati ma non ancora estratti", + "tokenBudgetLabel": "Budget Token", + "tokenBudgetHelp": "Controlla quanti contenuti vengono recuperati per pagina.", + "missingCachedContent": "Il contenuto nella cache è mancante. Aggiungi di nuovo questo collegamento per aggiornarlo." + }, + "conversationProjects": { + "title": "Progetti di Conversazione", + "description": "Aggiungi progetti di conversazione per includere le loro conversazioni dirette in questo Stack Conoscenza.", + "add": "Aggiungi Progetti", + "empty": "Nessun progetto di conversazione ancora aggiunto. Aggiungili qui sotto.", + "selectTitle": "Seleziona Progetti di Conversazione", + "selectDescription": "Scegli i progetti di conversazione da includere in questo Stack Conoscenza.", + "filterPlaceholder": "Cerca progetti...", + "projectUnknown": "Progetto sconosciuto", + "conversationCount": "conversazione | conversazioni", + "confirmRemove": "Rimuovere \"{title}\" da questo Stack Conoscenza?", + "loadError": "Impossibile caricare i progetti di conversazione" + }, + "conversations": { + "title": "Conversazioni", + "description": "Aggiungi conversazioni per indicizzare la loro cronologia.", + "add": "Aggiungi Conversazioni", + "empty": "Nessuna conversazione ancora aggiunta. Aggiungile qui sotto.", + "selectTitle": "Seleziona Conversazioni", + "selectDescription": "Scegli le conversazioni da includere in questo Stack Conoscenza.", + "filterPlaceholder": "Cerca conversazioni...", + "untitled": "Conversazione Senza Titolo", + "projectUnknown": "Progetto sconosciuto", + "unknownDate": "Data sconosciuta", + "confirmRemove": "Rimuovere \"{title}\" da questo Stack Conoscenza?", + "loadError": "Impossibile caricare le conversazioni" + } + }, + "actions": { + "addTo": "Aggiungi a @:knowledgeStack.title", + "addSelectedTo": "Aggiungi Selezionato a @:knowledgeStack.title", + "selectedConversationsLabel": "{count} conversazione selezionata | {count} conversazioni selezionate", + "addToDescription": "Scegli uno Stack Conoscenza per \"{item}\".", + "addToConfirm": "Aggiungi", + "addedToStack": "\"{item}\" aggiunto a \"{stack}\"", + "addedCountToStack": "{count} conversazione aggiunta a \"{stack}\" | {count} conversazioni aggiunte a \"{stack}\"", + "composeReminder": "Ricordati di comporre \"{stack}\" per applicare le modifiche.", + "composeReminderSelected": "Ricordati di comporre \"{stack}\" per applicare le modifiche.", + "alreadyInStack": "\"{item}\" è già in \"{stack}\"", + "alreadyInStackCount": "{count} già in \"{stack}\" | {count} già in \"{stack}\"", + "addToError": "Impossibile aggiungere a @:knowledgeStack.title", + "empty": "Nessun @:knowledgeStack.title. Creane uno qui sotto.", + "loadError": "Impossibile caricare l'elenco @:knowledgeStack.title", + "upgradeRequired": "Aggiornamento richiesto" + }, + "itemActions": { + "markForReprocessing": "Segna per Rielaborazione", + "lockTemporary": "Blocca Temporaneamente", + "lockPermanent": "Blocca Permanentemente", + "unlock": "Sblocca", + "permanentLockedSkipped": "{count} elemento bloccato permanentemente ignorato | {count} elementi bloccati permanentemente ignorati", + "viewContent": "Visualizza Contenuto", + "ignoreRetrieval": "Ignora per il Recupero", + "unignoreRetrieval": "Includi nel Recupero", + "moreActions": "Altre azioni" + }, + "lockPermanent": { + "subtitle": "Questa azione non può essere annullata", + "warning": "Una volta bloccato permanentemente, questo elemento non può essere sbloccato o rielaborato.", + "consequences": "Cosa significa", + "consequence1": "Non può essere sbloccato o modificato", + "consequence2": "Verrà saltato durante la Forza Composizione", + "consequence3": "I chunk esistenti rimangono disponibili per il recupero", + "whenToUse": "Usalo per i contenuti definitivi che non dovrebbero mai cambiare" + }, + "loadMode": { + "title": "Modalità Caricamento", + "dialogTitle": "Seleziona Modalità Caricamento", + "distribution": "Distribuzione", + "dialogDescription": "Scegli come deve essere caricato questo file durante la composizione dello Stack Conoscenza.", + "staticFiles": "File Statici", + "dynamicFiles": "File Dinamici", + "syncFiles": "File Sincronizzati", + "totalFiles": "File Totali", + "specialModes": "Modalità Speciali", + "specialModesRatio": "Rapporto Modalità Speciali", + "static": { + "label": "Modalità Statica", + "description": "Utilizza la versione nella cache di quando è stato aggiunto il file. Veloce e prevedibile, ma non riflette le modifiche recenti.", + "shortDescription": "Contenuto nella cache caricato dall'indicizzazione iniziale", + "badge": "Predefinito" + }, + "dynamic": { + "label": "Modalità Dinamica", + "description": "Carica il contenuto file più recente su ogni composizione. Leggermente più lento ma sempre aggiornato.", + "shortDescription": "Contenuto fresco caricato in ogni composizione", + "badge": "Consigliato" + }, + "sync": { + "label": "Modalità Sincronizzazione", + "description": "Controlla le modifiche ai file e ricompone automaticamente. Ideale per file piccoli e aggiornati di frequente.", + "shortDescription": "Ricompone automaticamente quando i file cambiano", + "badge": "Costoso" + } + }, + "watchMode": { + "title": "Modalità di Controllo", + "dialogTitle": "Seleziona Modalità di Controllo", + "dialogDescription": "Scegli come questo elemento deve rispondere agli aggiornamenti.", + "manual": { + "label": "Manuale", + "description": "Rielabora solo quando componi manualmente questo Stack Conoscenza." + }, + "watchReprocess": { + "label": "Controlla e Contrassegna", + "description": "Rileva le modifiche e contrassegna gli elementi per la rielaborazione." + }, + "watchCompose": { + "label": "Controlla e Componi", + "description": "Rileva le modifiche e componi automaticamente in background." + }, + "ignore": { + "label": "Ignora", + "description": "Salta questo elemento durante la composizione." + } + }, + "syncMode": { + "start": "Avvia Modalità Sincronizzazione", + "pause": "Metti in Pausa Modalità Sincronizzazione", + "pauseAll": "Metti in Pausa Tutto", + "started": "Modalità Sincronizzazione Avviata", + "startedDetail": "Controllo delle modifiche ai file per {name}", + "stopped": "Modalità Sincronizzazione in Pausa", + "stoppedDetail": "Il monitoraggio dei file è stato messo in pausa", + "startFailed": "Impossibile Avviare Sincronizzazione", + "startFailedDetail": "Assicurati che lo Stack Conoscenza abbia file contrassegnati per la Sincronizzazione", + "allPaused": "Tutte le Sincronizzazioni in Pausa", + "allPausedDetail": "Il monitoraggio dei file è stato interrotto per tutti gli stack conoscenza", + "active": "{count} Attivo | {count} Attivi", + "activeTitle": "Modalità Sincronizzazione Attive", + "filesWatching": "{count} file in controllo | {count} file in controllo", + "filesCount": "{count} file | {count} file", + "startedTime": "Avviata alle {time}", + "totalStats": "{stacks} stack, {files} file | {stacks} stack, {files} file", + "hoursAgo": "{hours}h fa", + "daysAgo": "{days}g fa" + }, + "analytics": { + "title": "Analisi e Approfondimenti", + "lastComposed": "Ultima Composizione", + "sections": "Sezioni di Analisi", + "performanceTimings": "Tempi di Esecuzione", + "summaryStatistics": "Statistiche Riepilogative", + "contentBreakdown": "Suddivisione Contenuti", + "querySettings": "Impostazioni Query", + "readingStatistics": "Statistiche di Lettura", + "noAnalyticsAvailable": "Nessuna Analisi Disponibile", + "noAnalyticsDescription": "L'analisi sarà disponibile dopo aver composto questo Stack Conoscenza.", + "noSectionsSelected": "Nessuna Sezione di Analisi Selezionata", + "noSectionsSelectedDescription": "Seleziona una o più sezioni di analisi sopra per visualizzare gli approfondimenti sul tuo Stack Conoscenza.", + "selectAllSections": "Seleziona Tutte le Sezioni", + "timings": { + "loadingItems": "Caricamento Elementi", + "splittingChunks": "Suddivisione dei @:knowledgeStack.chunksConsole.chunks", + "embeddingChunks": "Embedding dei @:knowledgeStack.chunksConsole.chunks", + "composingStack": "Composizione Stack", + "totalTime": "Tempo Totale", + "parallelNote": "Alcune operazioni possono essere eseguite in parallelo, quindi i singoli tempi potrebbero non corrispondere al tempo totale", + "fileReading": "Lettura File", + "databaseWrite": "Scrittura Database" + }, + "stats": { + "numberOfItems": "N. di Elementi", + "totalChunks": "Totale @:knowledgeStack.chunksConsole.chunks", + "availableChunks": "@:knowledgeStack.chunksConsole.chunks Disponibili", + "skippedChunks": "@:knowledgeStack.chunksConsole.chunks Saltati", + "wordCount": "Conteggio Parole", + "characterCount": "Conteggio Caratteri", + "readingTime": "Tempo di Lettura" + }, + "ignoredItems": "Elementi Ignorati", + "ignoredForRetrieval": "Ignorati per il Recupero", + "ignoredItemsDescription": "Questi elementi sono esclusi dalla ricerca e dal recupero", + "ignoredPercentage": "Percentuale di elementi ignorati", + "ofTotal": "di {total}", + "files": "File", + "notes": "Note", + "youTubeLinks": "Video YouTube", + "webLinks": "Link Web", + "conversations": "Conversazioni", + "conversationProjects": "Progetti di Conversazione", + "noIgnoredItems": "Nessun Elemento Ignorato", + "allItemsIncluded": "Tutti gli elementi in questo Stack Conoscenza sono inclusi nella ricerca e nel recupero", + "failedItems": { + "title": "{count} Elemento Fallito | {count} Elementi Falliti", + "description": "Gli elementi falliti sono stati saltati. Ricomponili singolarmente o tutti in una volta.", + "recomposeItem": "Ricomponi", + "recomposeAll": "Ricomponi Tutti i Falliti", + "showInFileManagerFailed": "Impossibile aprire la posizione nel file manager", + "markFailed": "Impossibile accodare {count} elemento per la ricomposizione | Impossibile accodare {count} elementi per la ricomposizione", + "recomposeError": "Impossibile ricomporre gli elementi falliti", + "recomposeSuccess": "Elementi falliti ricomposti con successo", + "recomposeCompletedWithErrors": "La ricomposizione è terminata con {count} elemento fallito rimanente | La ricomposizione è terminata con {count} elementi falliti rimanenti" + }, + "recommendation": "Raccomandazione", + "contentTypes": { + "files": "FILE", + "obsidianVaults": "VAULT OBSIDIAN", + "folders": "CARTELLE", + "notes": "NOTE", + "youTubeLinks": "LINK YOUTUBE", + "webLinks": "LINK WEB", + "conversations": "CONVERSAZIONI", + "conversationProjects": "PROGETTI DI CONVERSAZIONE" + }, + "piiScrubbing": { + "title": "Pulizia PII", + "totalChunks": "Totale @:knowledgeStack.chunksConsole.chunks", + "scrubbedChunks": "@:knowledgeStack.chunksConsole.chunks Ripuliti", + "cachedChunks": "@:knowledgeStack.chunksConsole.chunks in Cache", + "coverage": "Copertura", + "progress": "Avanzamento Pulizia", + "loadAnalytics": "Carica Analisi", + "failedToLoadAnalytics": "Impossibile caricare l'analisi PII", + "analyticsNotLoaded": "Analisi PII non caricata", + "clickToViewAnalytics": "Clicca su \"Carica Analisi\" per visualizzare le statistiche di pulizia PII", + "scoreTooltip": "Questo punteggio riflette quanto la pulizia PII sia applicata al tuo Stack Conoscenza. Un punteggio più alto significa che più frammenti sono stati elaborati per la rimozione PII.", + "optionalDescription": "La pulizia PII è opzionale. Abilitala nelle impostazioni di query solo se i tuoi contenuti contengono informazioni personali sensibili.", + "protectionDescription": "Misura quanto bene le informazioni sensibili sono protette dal tuo Stack Conoscenza", + "status": { + "notEnabled": "Non Abilitato", + "wellProtected": "Ben Protetto", + "partiallyProtected": "Parzialmente Protetto", + "limitedProtection": "Protezione Limitata", + "minimalProtection": "Protezione Minima" + }, + "insights": { + "excellentPrivacy": "Ottima protezione della privacy - quasi tutti i contenuti sono protetti", + "goodPrivacy": "Buona protezione della privacy - la maggior parte dei contenuti è protetta", + "partialPrivacy": "Protezione della privacy parziale - considera la revisione delle impostazioni", + "limitedPrivacy": "Protezione della privacy limitata - controlla i contenuti sensibili", + "notEnabled": "La pulizia PII non è abilitata. Va benissimo se il tuo contenuto non contiene informazioni personali sensibili.", + "whenToEnable": "Considera di abilitare la pulizia PII solo se il tuo Stack Conoscenza contiene nomi, indirizzi, numeri di telefono, e-mail o altri dati personali.", + "significantReduction": "Significativa riduzione dei contenuti ({percentage}%) - rilevati estesi dati PII", + "moderateReduction": "Moderata riduzione dei contenuti ({percentage}%) - rimossi alcuni dati PII", + "minimalReduction": "Minima riduzione dei contenuti ({percentage}%) - pochi dati PII rilevati", + "noContentChange": "Nessuna variazione della dimensione: nessun file PII rilevato o rimosso", + "allChunksProcessed": "Tutti i chunk elaborati correttamente", + "nearlyAllProcessed": "Quasi tutti i chunk elaborati correttamente", + "mostProcessed": "La maggior parte dei chunk è stata elaborata: alcuni potrebbero richiedere attenzione", + "incompleteProcessing": "Elaborazione non completata: controlla la configurazione della pulizia PII", + "largeKnowledgeBase": "Base di conoscenza di grandi dimensioni: valuta la possibilità di aumentare la copertura di rilevamento PII", + "manyUnprocessed": "Molti chunk non elaborati: controlla le impostazioni di pulizia PII", + "optionalFeature": "La pulizia PII è facoltativa. Abilitala nelle impostazioni delle interrogazioni se i tuoi contenuti includono informazioni sensibili come nomi, indirizzi email o numeri di telefono.", + "privacyOption": "La pulizia PII aiuta a proteggere le informazioni sensibili. È facoltativa e può essere abilitata nelle impostazioni delle interrogazioni, se necessario." + }, + "labels": { + "securityStatus": "Stato Sicurezza", + "privacyStatus": "Stato Privacy", + "whenToEnable": "Quando Abilitare", + "contentImpact": "Impatto Contenuto", + "processingEfficiency": "Efficienza Elaborazione", + "scaleRecommendation": "Raccomandazione Riproprozionamento", + "coverageRecommendation": "Raccomandazione Copertura", + "optionalFeature": "Funzionalità Opzionale", + "privacyOption": "Opzione Privacy" + } + }, + "querySettingsDetails": { + "searchType": "Tipo di Ricerca", + "numberOfChunks": "Numero di @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefisso Prompt" + }, + "privacyOptimizationScore": "Punteggio Ottimizzazione Privacy", + "piiProtectionLevel": "Livello di Protezione PII", + "piiScrubbingStatus": "Stato di Pulizia PII", + "unscrubbedChunks": "@:knowledgeStack.chunksConsole.chunks Non Ripuliti", + "originalSize": "Dimensione Originale", + "processedSize": "Dimensione Elaborata", + "sizeReduction": "Riduzione Dimensione", + "privacyInsights": "@:insights Privacy", + "dataModified": "I dati sono stati modificati", + "showOutdatedData": "Mostra comunque dati obsoleti", + "contentDistribution": "Distribuzione Contenuti", + "contentContribution": "{label} contribuisce per il {percentage}% di tutti i chunk", + "processingIssue": "Problema di Elaborazione", + "lowEfficiency": "{label} hanno una bassa efficienza ({efficiency}%)", + "dataQualityIssue": "Problema Qualità Dati", + "highSkipRates": "{count} tipo(i) di contenuto hanno alti tassi di salto", + "contentDiversity": "Diversità Contenuti", + "singleContentType": "Singolo tipo di contenuto - valuta la diversificazione delle fonti", + "excellentDiversity": "Eccellente diversità dei contenuti su più tipi", + "optimizationTip": "Suggerimento Ottimizzazione", + "reduceChunkSize": "Riduci le dimensioni dei chunk a 800-1200 caratteri per un migliore risultato nei contenuti", + "increaseChunkSize": "Aumenta la dimensione dei chunk a 1500-2000 caratteri per una migliore efficienza", + "embeddingThroughput": "Throughput Embedding", + "chunksPerSecond": "{rate} chunk/sec (ognuno {time}ms)", + "searchStrategy": "Strategia di Ricerca", + "balancedSearch": "Approccio bilanciato che combina ricerca per keyword e semantica", + "semanticSearch": "Ricerca semantica - ideale per query concettuali", + "keywordSearch": "Ricerca keyword - ideale per termini esatti", + "retrievalVolume": "Volume di Recupero", + "lowChunkCount": "Un numero molto basso di chunk può ignorare alcune informazioni rilevanti", + "highChunkCount": "Un numero elevato di chunk potrebbe includere rumore", + "optimalChunkCount": "Numero di chunk ottimale per un recupero bilanciato", + "contentFiltering": "Filtraggio Contenuti", + "relaxedFiltering": "Filtro permissivo - potrebbe includere informazioni debolmente connesse", + "strictFiltering": "Filtro rigoroso - risultati focalizzati", + "moderateFiltering": "Filtraggio bilanciato per risultati interessanti", + "guidedContext": "Contesto Guidato", + "customPromptPrefix": "Il prefisso del prompt guiderà come l'interpretazione è gestita", + "lockIndicator": "Indicatore Blocco", + "allItemsCanBeReprocessed": "Tutti gli elementi possono essere rielaborati", + "itemsPartiallyLocked": "Il {percentage}% degli oggetti è bloccato", + "mostItemsLocked": "La maggior parte degli elementi è bloccata - capacità di aggiornamento ridotta", + "privacySecurity": "Privacy e Sicurezza", + "privacyProtectionEnabled": "Protezione attiva per i dati riservati", + "noPiiScrubbing": "Omissione o cancellazione della protezione PII non attivata", + "scaleOptimization": "Ottimizzazione Copertura", + "largeKnowledgeBase": "Base di conoscenza grande: migliorare il quantitativo dei pacchetti per estendere la zona d'analisi", + "smallKnowledgeBase": "Base di conoscenze circoscritta: potrebbe essere indicato ridurre i chunk", + "performanceProfile": "Profilo Prestazioni", + "optimizedForSpeed": "Configurazione ottimizzata per velocità", + "optimizedForQuality": "Configurazione ottimizzata per qualità", + "highLockRate": "Alto livello di blocco", + "lockedItemsPercentage": "{percentage}% degli oggetti non verranno alterati", + "unlockRecommendation": "Verificare un rilascio delle entità interdette se devono essere aggiornate", + "overHalfLocked": "Piu della metà del bacino è bloccato, bloccandone eventuali nuovi assorbimenti", + "lockStatus": "Stato Blocco", + "totalItems": "Totale Elementi", + "unlocked": "Sbloccati", + "temporarilyLocked": "Bloccati temporaneamente", + "permanentlyLocked": "Bloccati Permanentemente", + "lockStatusByContentType": "Stato Blocco per Tipo", + "tempLocked": "Temp. Bloccato", + "permLocked": "Perm. Bloccato", + "lockStatusInsights": "@:insights Stato Blocco", + "processingEfficiency": "Efficienza Elaborazione", + "contentInsights": "@:insights Contenuti", + "compositionOptimizationScore": "Punteggio di Ottimizzazione Composizione", + "compositionInsights": "@:insights Composizione", + "performanceInsights": "@:insights Prestazioni", + "processingPhaseDetails": "Dettagli Fase Elaborazione", + "loadingItems": "Caricamento Elementi", + "splittingChunks": "Suddivisione dei @:knowledgeStack.chunksConsole.chunks", + "embeddingChunks": "Embedding dei @:knowledgeStack.chunksConsole.chunks", + "fileReading": "Lettura File", + "databaseWrite": "Scrittura Database", + "composingStack": "Composizione Stack", + "totalProcessingTime": "Tempo di Elaborazione Totale", + "totalLockedItems": "Elementi Bloccati Totali", + "efficiency": "Efficienza", + "loadMode": { + "title": "Analisi Modalità di Caricamento", + "description": "Comportamento di caricamento dei file nel tuo Stack Conoscenza", + "distribution": "Distribuzione Modalità di Caricamento", + "totalFiles": "File Totali", + "staticFiles": "Modalità Statica", + "dynamicFiles": "Modalità Dinamica", + "syncFiles": "Modalità Sincronizzazione", + "specialModes": "Modalità Speciali", + "specialModesRatio": "% Modalità Speciali", + "status": "Stato", + "active": "Attivo", + "inactive": "Inattivo", + "breakdown": "Suddivisione Visiva", + "noFiles": "Nessun file in questo Stack Conoscenza", + "desktopOnly": "Le opzioni della Modalità di Caricamento sono disponibili solo nell'applicazione desktop", + "notAvailable": "Le opzioni della Modalità di Caricamento sono disponibili solo nell'applicazione desktop", + "noSpecialModes": "Tutti i file utilizzano la Modalità Statica. Abilita la Modalità Dinamica o Sincronizzazione per utilizzare i contenuti più recenti.", + "syncActive": "Modalità Sincronizzazione Attiva", + "syncActiveDetails": "Monitoraggio di {files} • Avviato alle {time}", + "staticDescription": "Contenuto nella cache caricato dall'indicizzazione iniziale", + "dynamicDescription": "Contenuto fresco caricato in ogni composizione", + "syncDescription": "Ricompone automaticamente quando i file cambiano", + "staticBadge": "Predefinito", + "dynamicBadge": "Fresco", + "syncBadge": "Live", + "insights": { + "highSyncCount": { + "title": "Alto Numero di File in Sincronizzazione", + "description": "{count} file sono in Modalità Sincronizzazione", + "recommendation": "Considera l'utilizzo della Modalità Dinamica per i file aggiornati meno frequentemente per ridurre l'uso delle risorse" + }, + "syncEnabled": { + "title": "Modalità Sincronizzazione Abilitata", + "description": "{count} file si aggiornano automaticamente quando vengono modificati" + }, + "highDynamicUsage": { + "title": "Alto Utilizzo Modalità Dinamica", + "description": "Il {percentage}% dei file utilizza la Modalità Dinamica", + "recommendation": "La Modalità Statica potrebbe essere sufficiente per i file che cambiano raramente" + }, + "dynamicEnabled": { + "title": "Modalità Dinamica Attiva", + "description": "{count} file caricano contenuti freschi ad ogni composizione" + }, + "staticOnly": { + "title": "Solo Modalità Statica", + "description": "Tutti i file utilizzano contenuti nella cache dall'indicizzazione iniziale", + "recommendation": "Abilita la Modalità Dinamica o Sincronizzazione per i file aggiornati frequentemente per garantire contenuti sempre freschi" + }, + "mixedModes": { + "title": "Modalità di Caricamento Miste", + "description": "Il {percentage}% dei file utilizza modalità di caricamento speciali" + } + } + } + }, + "composeSettings": { + "title": "Impostazioni Composizione", + "chunkOverlapping": "Sovrapposizione @:knowledgeStack.chunksConsole.chunk", + "embeddingModel": { + "title": "Modello di Embedding", + "warning": "La modifica del modello di embedding richiederà la ricomposizione dell'intero Stack Conoscenza e, anche in quel caso, esiste la possibilità che la ricomposizione fallisca.", + "learnMore": "Scopri di più sulla compatibilità del modello di embedding", + "defaultPlaceholder": "Predefinito (Locale)" + }, + "placeholders": { + "selectEmbeddingModel": "Seleziona un modello di embedding", + "selectchunkingMethod": "Seleziona il metodo di frammentazione (chunking)", + "selectChunkOverlapping": "Seleziona la sovrapposizione del chunk", + "selectChunkSize": "Seleziona la dimensione del chunk" + }, + "chunkingMethod": { + "title": "Metodo di Frammentazione (Chunking)", + "recursiveCharacter": "Carattere Ricorsivo", + "sentence": "Frase", + "file": "File (Chunk Singolo)", + "fileWarning": "La frammentazione a livello di file tratta ogni elemento come un singolo chunk. La dimensione del chunk, la sovrapposizione e le impostazioni di ignoranza non vengono utilizzate.", + "description": "Scegli come i documenti devono essere suddivisi in pezzi più piccoli per una migliore ricerca e recupero." + }, + "overlapping": { + "title": "Sovrapposizione", + "description": "Scegli quanta sovrapposizione deve esserci tra i chunk. Una sovrapposizione maggiore può migliorare il contesto ma aumenta l'utilizzo dei token." + }, + "chunkSize": { + "title": "Dimensione dei @:knowledgeStack.chunksConsole.chunk", + "description": "Imposta la dimensione massima di ogni chunk in caratteri. Chunk più piccoli possono migliorare la precisione della ricerca ma aumentano l'utilizzo dei token.", + "contextWarning": "La dimensione del chunk è di circa {estimatedTokens} token, il che supera la lunghezza del contesto di questo modello ({contextLength}). Riduci la dimensione del chunk per evitare errori di embedding.", + "contextWarningUnavailable": "Impossibile recuperare la lunghezza del contesto del modello selezionato. Gli avvisi sulla dimensione del chunk potrebbero essere inaccurati." + }, + "chunkSizesToIgnore": { + "title": "Dimensioni dei @:knowledgeStack.chunksConsole.chunk da Ignorare", + "description": "Specifica le dimensioni dei chunk che devono essere ignorate durante l'elaborazione. Utile per escludere chunk molto piccoli o molto grandi." + }, + "advanced": { + "title": "Opzioni Avanzate", + "sentenceStreamingThreshold": { + "title": "Soglia di Streaming delle Frasi", + "description": "Influisce solo sulla frammentazione per Frase.", + "tooltip": { + "intro": "Influisce solo sulla frammentazione per Frase (non Ricorsiva/File). Se un file è più grande di questa dimensione, trasmettiamo le frasi in streaming man mano che leggiamo il file invece di caricare l'intero file in memoria.", + "whenTitle": "Quando cambiarlo", + "whenLower": "Dimuiscilo se noti picchi di memoria con file medi/grandi.", + "whenRaise": "Aumentalo se hai molta RAM e desideri un'elaborazione più rapida.", + "whenDisable": "Imposta a 0 (Disabilitato) per utilizzare sempre la frammentazione delle frasi in memoria.", + "metaFolder": "Comportamento cartella: valutato per file." + } + }, + "persistEveryItems": { + "title": "Persisti Ogni", + "description": "Controlla la frequenza con cui i progressi vengono salvati.", + "tooltip": { + "intro": "Durante la composizione salviamo periodicamente i progressi (stato, conteggi, ecc.). Questo controlla quanti elementi elaboriamo prima del salvataggio. Si applica comunque un fallback basato sul tempo.", + "whenTitle": "Quando cambiarlo", + "whenLower": "Dimuiscilo (1-3) per esecuzioni lunghe più sicure e aggiornamenti dei progressi più frequenti.", + "whenHigher": "Aumentalo (10-20) per meno scritture e throughput più veloce, ma più lavoro perso se interrotto." + } + }, + "chunkInsertBatchSize": { + "title": "Dimensione Batch Inserimento Chunk", + "description": "Controlla quanti chunk vengono scritti per batch.", + "tooltip": { + "intro": "Controlla quanti chunk scriviamo nel database vettoriale per batch.", + "whenTitle": "Quando cambiarlo", + "whenLower": "Dimuiscilo (25-50) se noti picchi di memoria o contesa del database.", + "whenHigher": "Aumentalo (100-500) su macchine potenti/SSD per importazioni più veloci." + } + }, + "analytics": { + "notApplicable": "N/A", + "title": "Cattura Analisi", + "description": "Monitora i tempi di composizione, il conteggio delle parole e la suddivisione degli elementi per ottenere approfondimenti." + } + } + }, + "querySettings": { + "title": "Impostazioni Query", + "numberOfChunks": "Numero di @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefisso Prompt", + "rerank": { + "title": "Modello di Reranking", + "tooltip": "Riassegna il punteggio e riordina i chunk recuperati utilizzando un modello specializzato per migliorare la pertinenza." + }, + "similarityThreshold": { + "low": "Bassa", + "medium": "Media", + "high": "Alta", + "highest": "Altissima" + }, + "searchTypes": { + "semantic": "Ricerca Semantica", + "keyword": "Ricerca per Parole Chiave", + "hybrid": "Ricerca Ibrida" + }, + "modes": { + "push": "Modalità Push", + "pull": "Modalità Pull" + }, + "chunks": { + "title": "Contesto Stack Conoscenza", + "loadError": "Impossibile caricare i chunk dello Stack Conoscenza. Riprova.", + "searchSettings": "Impostazioni di Ricerca", + "searchType": "Tipo di Ricerca", + "searchQuery": "Query di Ricerca", + "source": "Origine", + "content": "Contenuto", + "fullContent": "Contenuto Integrale", + "chunkInfo": "Informazioni sul @:knowledgeStack.chunksConsole.chunk", + "knowledgeStack": "Stack Conoscenza", + "chunks": "chunk", + "maxChunks": "Max @:knowledgeStack.chunksConsole.chunks" + }, + "retrievalMode": { + "title": "Modalità di Recupero dei @:knowledgeStack.chunksConsole.chunk", + "description": "Scegli tra la modalità Push, in cui i chunk vengono recuperati in anticipo, o la modalità Pull, in cui il modello può interrogare direttamente gli Stack Conoscenza" + } + }, + "chunks": { + "coverage": "Copertura", + "skippedChunks": "@:knowledgeStack.chunksConsole.chunks Saltati", + "availableChunks": "@:knowledgeStack.chunksConsole.chunks Disponibili", + "numberOfChunks": "Numero di @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefisso Prompt", + "chunkingMethod": "Metodo di Frammentazione", + "chunkSize": "Dimensione del @:knowledgeStack.chunksConsole.chunk", + "chunkOverlap": "Sovrapposizione del @:knowledgeStack.chunksConsole.chunk", + "totalChunks": "Totale @:knowledgeStack.chunksConsole.chunks", + "cachedChunks": "@:knowledgeStack.chunksConsole.chunks in Cache", + "scrubbedChunks": "@:knowledgeStack.chunksConsole.chunks Ripuliti", + "loadError": "Impossibile caricare i chunk dello Stack Conoscenza. Riprova.", + "searchSettings": "Impostazioni di Ricerca", + "searchType": "Tipo di Ricerca", + "maxChunks": "Max @:knowledgeStack.chunksConsole.chunks", + "searchQuery": "Query di Ricerca", + "synthesizedQuery": "Query Sintetizzata", + "chunks": "chunk | chunk", + "source": "Origine", + "content": "Contenuto", + "viewFull": "Visualizza Contenuto Integrale", + "fullContent": "Contenuto Integrale del @:knowledgeStack.chunksConsole.chunk", + "chunkInfo": "Informazioni sul @:knowledgeStack.chunksConsole.chunk", + "knowledgeStack": "Stack Conoscenza", + "scrubbed": "Ripulito", + "original": "Originale", + "chunkId": "ID @:knowledgeStack.chunksConsole.chunk", + "piiStatus": "Stato PII", + "piiScrubbed": "PII Ripulito", + "piiUnscrubbed": "PII Non Ripulito", + "tooltip": { + "scrubbed": "Il contenuto è stato ripulito per la rimozione delle PII", + "cached": "Viene utilizzata la versione ripulita nella cache", + "fresh": "Contenuto appena ripulito", + "original": "Contenuto originale senza @:pii.scrubbing.title" + }, + "queryAnalysis": "Analisi della Query", + "fullContentRetrieved": "Contesto Contenuto Integrale Attivo", + "documentsRetrieved": "Documenti Recuperati", + "contentContext": "Contesto del Contenuto", + "keywords": "Parole Chiave", + "fullDoc": "Doc Integrale", + "type": "Tipo", + "fullDocument": "Documento Integrale" + }, + "chunksVisualizer": { + "title": "Visualizzatore @:knowledgeStack.chunksConsole.chunks", + "description": "I chunk sorgente a colpo d'occhio: esplora, interroga e gestisci", + "openStitcher": "Apri Visualizzatore", + "viewStitcher": "Visualizza Visualizzatore", + "stitchableFiles": "File Disponibili", + "loading": "Caricamento file...", + "noFiles": "Nessun file trovato", + "selectFile": "Seleziona un File", + "selectFileDescription": "Scegli un file a sinistra per visualizzarne i chunk e i contenuti", + "mimeType": "Tipo MIME", + "chunks": "@:knowledgeStack.chunksConsole.chunks", + "overlaps": "Sovrapposizioni", + "stitchedSize": "Dimensione Ricostruita", + "showOverlaps": "Mostra Sovrapposizioni", + "hideOverlaps": "Nascondi Sovrapposizioni", + "showChunks": "Mostra @:knowledgeStack.chunksConsole.chunks", + "showStitched": "Mostra Ricostruito", + "copyContent": "Copia Contenuto", + "stitchedContent": "Contenuto Ricostruito", + "scrubbedChunks": "@:knowledgeStack.chunksConsole.chunks Ripuliti", + "unScrubbedChunks": "@:knowledgeStack.chunksConsole.chunks Non Ripuliti", + "overlapRemoved": "Le sovrapposizioni sono state rimosse per una ricostruzione del testo pulita", + "chunkNumber": "@:knowledgeStack.chunksConsole.chunk {number}", + "overlapPrevious": "Sovrapponi al Precedente", + "overlapNext": "Sovrapponi al Successivo", + "overlapWithPrevious": "Questo testo si sovrappone al chunk precedente", + "overlapWithNext": "Questo testo si sovrappone al chunk successivo", + "chunkIndices": "Posizioni caratteri nel file", + "coreIndices": "Contenuto principale senza sovrapposizioni", + "chunkCount": "{count} chunk | {count} chunk", + "showOriginal": "Mostra Originale", + "showScrubbed": "Mostra Ripulito", + "showScrubbedOnly": "Mostra Solo Ripulito", + "showAllChunks": "Mostra Tutti i @:knowledgeStack.chunksConsole.chunks", + "tooltip": { + "scrubbed": "Il contenuto è stato ripulito per la rimozione delle PII", + "cached": "Viene utilizzata la versione ripulita nella cache", + "fresh": "Contenuto appena ripulito" + }, + "itemsPerPage": "Per Pagina", + "showingChunks": "{start}-{end} di {total} chunk", + "loadingChunks": "Caricamento chunk...", + "noItems": "Nessun elemento trovato", + "noChunksAvailablePrimary": "Nessun chunk disponibile ancora per questo Stack Conoscenza.", + "noChunksAvailableHint": "Componi con contenuti supportati e riprova.", + "selectItem": "Seleziona un Elemento", + "selectItemDescription": "Scegli un file o una nota a sinistra per visualizzarne i chunk e i contenuti", + "openConsole": "Apri Console", + "selectedChunks": "{count} @:knowledgeStack.chunksConsole.chunk selezionato | {count} @:knowledgeStack.chunksConsole.chunk selezionati", + "deleteSelected": "Elimina Selezionati", + "clearSelection": "Cancella Selezione", + "confirmDelete": "Conferma Eliminazione", + "confirmDeleteMessage": "Sei sicuro di voler eliminare {count} chunk selezionati? Questa azione non può essere annullata.", + "deleteSuccess": "@:knowledgeStack.chunksConsole.chunks Eliminati", + "deleteSuccessDetail": "{count} chunk eliminati con successo", + "deletedChunksCount": "{count} @:knowledgeStack.chunksConsole.chunk eliminato con successo | {count} @:knowledgeStack.chunksConsole.chunk eliminati con successo", + "deleteError": "Eliminazione Fallita" + }, + "export": { + "forceCompose": "Composizione Forzata", + "overallProgress": "Avanzamento Globale", + "itemsExported": "{count} elementi esportati", + "items": "Elementi", + "skip": "Salta", + "exportCompleted": "Esportazione completata con successo!", + "savedTo": "Salvato in: {path}", + "cancelAll": "Annulla Tutto", + "done": "Fatto", + "export": "Esporta", + "exporting": "Esportazione in corso", + "knowledgeStack": "Stack Conoscenza", + "folder": "Cartella", + "exportFailed": "Esportazione fallita", + "importFailed": "Importazione fallita" + }, + "messages": { + "editsSaved": "Le modifiche allo Stack Conoscenza sono state salvate. Sarà necessario ricomporlo per applicare le modifiche.", + "savedAndProcessing": "Stack conoscenza salvato ed elaborazione avviata", + "cannotForceCompose": "Impossibile forzare la composizione: lo Stack Conoscenza deve prima essere salvato", + "failedToForceCompose": "Impossibile forzare la composizione dello Stack Conoscenza", + "forceComposeStarted": "Composizione forzata avviata - tutti gli elementi verranno rielaborati", + "failedToUpdateQuerySettings": "Impossibile aggiornare le impostazioni di query", + "querySettingsUpdated": "Impostazioni di query aggiornate", + "justNow": "proprio ora", + "minutesAgo": "{minutes}m fa", + "searchPlaceholder": "Cerca...", + "failedToSelectItem": "Impossibile selezionare l'elemento", + "failedToSelectFolder": "Impossibile selezionare la cartella", + "processingCompleted": "L'elaborazione dello Stack Conoscenza {title} è finita. Controlla lo stato per qualsiasi problema", + "processingCompletedWithErrors": "Lo Stack Conoscenza {title} è terminato con {count} elemento fallito | Lo Stack Conoscenza {title} è terminato con {count} elementi falliti", + "processingFailed": "L'elaborazione dello Stack Conoscenza {title} è fallita", + "compositionPaused": "Composizione in pausa per {title}", + "compositionResumed": "Composizione ripresa per {title}", + "compositionAborted": "Composizione interrotta per {title}", + "compositionErrorSuggestion": "Prova a passare a un modello di embedding differente e prova a comporre di nuovo", + "cloneVectorDbCopyFallbackWarning": "La copia del database vettoriale è fallita durate il clone. Gli elementi sono stati ripristinati come in attesa così da poter procedere alla composizione.", + "nothingToCompose": "Niente da comporre per lo Stack Conoscenza {title}", + "composeError": "Errore durante la composizione dello Stack Conoscenza {title}", + "downloadImportNotAvailableInWeb": "L'importazione tramite URL è disponibile solo nell'applicazione desktop", + "deleteSuccess": "{count} @:knowledgeStack.title eliminato! | {count} @:knowledgeStack.title eliminati!", + "createError": "Impossibile creare lo @:knowledgeStack.title", + "saveEditsError": "Impossibile salvare le modifiche allo @:knowledgeStack.title", + "folderAdded": "Cartella '{name}' aggiunta allo Stack Conoscenza" + }, + "folderLockedTemporary": "Cartella '{name}' bloccata temporaneamente", + "folderLockedPermanent": "Cartella '{name}' bloccata permanentemente", + "lockFailed": "Blocco della cartella fallito", + "folderUnlocked": "Cartella '{name}' sbloccata", + "unlockFailed": "Sblocco della cartella fallito", + "unlock": "Sblocca", + "status": { + "misc": "Varie", + "path": "Percorso: {path}", + "name": "Nome: {name}", + "unknown": "Sconosciuto", + "original": "Originale", + "loadingPiiAnalytics": "Caricamento analisi PII...", + "allItemsUnlocked": "Tutti gli elementi sono sbloccati e possono essere rielaborati quando necessario." + }, + "abortProcessing": "Interrompi Elaborazione", + "errors": { + "processingFailed": "Elaborazione Fallita", + "errorMessage": "Messaggio di Errore", + "occurredAt": "Verificatosi il", + "failedFile": "File Fallito", + "errorSummary": "Riepilogo Errore", + "technicalDetails": "Dettagli Tecnici", + "stackTrace": "Stack Trace", + "copyDetails": "Copia Dettagli", + "detailsCopied": "Dettagli dell'errore copiati negli appunti", + "clickToSeeDetails": "Clicca per vedere i dettagli dell'errore", + "failedItemsTitle": "Dettagli Elementi Falliti ({count})", + "showInFileManagerFailed": "Impossibile aprire la posizione nel file manager", + "fileIsNull": "Il file è null", + "checkingPathError": "Errore durante il controllo se il percorso è una directory", + "processingFolderError": "Errore durante l'elaborazione della cartella", + "lockFolderTemporaryFailed": "Impossibile bloccare la cartella temporaneamente", + "lockFolderPermanentFailed": "Impossibile bloccare la cartella permanentemente", + "unlockFolderFailed": "Impossibile sbloccare la cartella", + "status": { + "completed": "Stato: Completato", + "completedWithErrors": "Stato: Completato con Errori", + "processing": "Stato: In elaborazione", + "paused": "Stato: In pausa", + "pending": "Stato: In attesa", + "draft": "Stato: Bozza", + "needsReprocessing": "Stato: Necessita Rielaborazione", + "error": "Stato: Errore", + "lockedTemporary": "Stato: Bloccato Temporaneamente", + "lockedPermanent": "Stato: Bloccato Permanentemente", + "aborted": "Stato: Interrotto", + "unknown": "Stato: Sconosciuto" + } + } + }, + "features": { + "showcase": { + "title": "Sblocca le Funzionalità Aurum", + "subtitle": "Passa alla licenza Aurum per le funzionalità IA più potenti e capacità avanzate", + "eyebrow": "Tutto ciò di cui hai bisogno", + "viewPricing": "Visualizza Prezzi", + "featureMatrix": "Matrice delle Funzionalità", + "activateLicense": "Attiva Licenza", + "licenses": { + "aurum": "Aurum" + } + } + }, + "images": { + "upload": "Carica immagine…", + "onlySupported": "Sono supportati solo file immagine.", + "maxSize": "L'immagine deve essere di 1 MB o inferiore." + }, + "userAvatar": { + "updated": "Immagine del profilo aggiornata.", + "updateFailed": "Impossibile aggiornare l'immagine. Riprova.", + "changeHint": "Clicca per cambiare l'immagine del profilo" + }, + "setting": { + "lostAndFound": { + "title": "Lost & Found", + "description": "Trova e recupera workspace persi dal tuo computer. Vengono scansionati e rilevati solo i database dei workspace, non gli allegati.", + "experimentalInfo": "Lost & Found è sperimentale. Conserva sempre dei backup dei dati del tuo workspace prima di tentare il recupero.", + "scanForLostWorkspaces": "Scansiona Workspace Persi", + "scanAppData": "Scansiona Dati App", + "scanFolder": "Scansiona Cartella…", + "workspace": "Workspace", + "file": "File", + "status": "Stato", + "lastModifiedColumn": "Ultima Modifica", + "actions": "Azioni", + "statusCurrent": "Attuale", + "statusLinked": "Collegato", + "statusFound": "Trovato", + "restoreCurrentWorkspace": "Ripristina workspace attuale", + "importAsNewWorkspace": "Importa come Nuovo Workspace", + "restoreConfirmHeader": "Ripristinare il workspace attuale?", + "restoreConfirmMessage": "Questo sostituirà i dati del workspace attualmente attivo con i dati del file recuperato selezionato. L'azione non può essere annullata.", + "restore": "Ripristina", + "failedToImportWorkspace": "Impossibile importare il workspace", + "workspaceImported": "Workspace importato", + "workspaceImportedDetail": "Il workspace recuperato è stato importato. Passa ad esso dal menu dei workspace se necessario.", + "failedToRestoreWorkspace": "Impossibile ripristinare il workspace", + "workspaceRestored": "Workspace ripristinato", + "workspaceRestoredDetail": "Il workspace attuale è stato ripristinato dal file recuperato.", + "showInFileExplorer": "Mostra in Esplora File", + "lastModified": "Ultima modifica", + "failedToImportRecoveredWorkspace": "Impossibile importare il workspace recuperato", + "failedToImportRecoveredWorkspaceUnexpected": "Impossibile importare il workspace recuperato (errore imprevisto)", + "failedToRestoreFromRecoveredFile": "Impossibile ripristinare il workspace dal file recuperato", + "failedToRestoreFromRecoveredFileUnexpected": "Impossibile ripristinare il workspace dal file recuperato (errore imprevisto)" + } + }, + "quickFilter": "Filtro rapido...", + "toggleQuickFilter": "Attiva/Disattiva Filtro Rapido", + "toggleFilter": "Attiva/Disattiva filtro", + "toggleSearchConversations": "Attiva/Disattiva Ricerca Conversazioni", + "toggleSidebar": "Attiva/Disattiva barra laterale", + "adjust": "Regola", + "experimentalInfo": "{item} è sperimentale e in fase di sviluppo attivo. Segnala eventuali problemi al team.", + "attachmentsManager": { + "columnHeaders": { + "name": "Nome", + "fileType": "Tipo File", + "attachmentType": "Tipo Allegato", + "size": "Dimensione", + "actions": "Azioni" + }, + "actions": { + "browseExisting": "Sfoglia Allegati Esistenti", + "viewAssociations": "Visualizza Associazioni", + "attach": "Allega", + "delete": { + "title": "Elimina Allegato | Elimina Allegati", + "confirmationMessage": "Sei sicuro di voler eliminare l'allegato? Tutte le associazioni all'allegato verranno rimosse. Questa azione non può essere annullata. | Sei sicuro di voler eliminare gli allegati? Tutte le associazioni agli allegati verranno rimosse. Questa azione non può essere annullata.", + "successMessage": "Allegato eliminato con successo | Allegati eliminati con successo", + "errorMessage": "Impossibile eliminare l'allegato | Impossibile eliminare gli allegati" + } + }, + "search": "Cerca per Nome", + "filter": "Filtra per Tipo Allegato", + "title": "Gestore Allegati", + "emptyState": { + "title": "Nessun Allegato Trovato", + "description": "Non hai allegati disponibili." + }, + "associations": { + "title": "Associazioni per {attachmentName}", + "search": "Cerca per Nome Associazione", + "filter": "Filtra per Entità Associata", + "emptyState": { + "title": "Nessuna Associazione Trovata", + "description": "Non hai ancora usato questo allegato da nessuna parte." + }, + "columnHeaders": { + "associationName": "Nome Associazione", + "associatedEntity": "Entità Associata", + "actions": "Azioni" + }, + "actions": { + "jumpTo": "Vai a {entity}", + "detach": { + "action": "Scollega", + "title": "Scollega Associazione", + "confirmationMessage": "Sei sicuro di voler scollegare l'associazione dalla {associationEntity}? Questa azione non può essere annullata.", + "successMessage": "Associazione scollegata con successo", + "errorMessage": "Impossibile scollegare l'associazione" + } + } + } + }, + "iconSelector": { + "searchMode": "Cerca", + "aiMode": "Prompt IA", + "aiPlaceholder": "Descrivi cosa rappresenta l'icona...", + "findIcon": "Trova Icona", + "finding": "Ricerca in corso..." + }, + "sso": { + "emailLoginTitle": "Accesso via Email", + "signInWithCodeOrSso": "Accedi con un codice o SSO", + "signInWithMagicLinkOrCode": "Accedi con magic link o codice", + "loginInCode": "Accedi con codice", + "loginWithSso": "Accedi con SSO", + "verificationCodeDescription": "Ricevi un codice di verifica via email.", + "ssoFindProvider": "Useremo la tua email per trovare il tuo provider.", + "submitEmailToResolveProvider": "Invia la tua email per risolvere il tuo provider", + "changeMethod": "Cambia metodo", + "emailAddress": "Indirizzo Email", + "alreadyHaveVerificationCode": "Hai già un codice di verifica?", + "enterCode": "Inserisci codice", + "sendLoginCode": "Invia Codice di Accesso", + "ssoCopyUrlHint": "Se il tuo browser non si è aperto, copia questo URL e incollalo nel browser.", + "continue": "Continua con SSO", + "title": "Configurazione SSO", + "adminGroupId": "ID Gruppo Admin", + "adminGroupIdDescription": "Inserisci l'ID del gruppo Microsoft Entra ID. I membri di questo gruppo avranno assegnato il ruolo admin; tutti gli altri utenti avranno il ruolo user.", + "adminGroupIdPlaceholder": "ID Gruppo", + "saveSuccess": "Configurazione SSO salvata con successo", + "saveError": "Impossibile salvare la configurazione SSO", + "providers": { + "microsoft": "Microsoft Entra ID", + "google": "Google", + "other": "Altro Provider OIDC" + }, + "configIntro": "Configura il Single Sign-On (SSO) per la tua organizzazione. Aggiungi", + "configOutro": "come URL di reindirizzamento.", + "providerLabel": "Provider OIDC", + "providerTooltip": "Scegli un provider per precompilare i valori predefiniti di issuer e claim.", + "providerPlaceholder": "Seleziona provider", + "orgDomainLabel": "Dominio Organizzazione", + "orgDomainTooltip": "Dominio email utilizzato per abbinare gli utenti a questa organizzazione.", + "orgDomainPlaceholder": "es. acme.com", + "advancedOptionsTooltip": "Configura la mappatura dei ruoli admin e le sovrascritture dei claim per l'SSO.", + "advancedOptionsDescription": "Sovrascritture dei claim opzionali e impostazioni del ruolo admin.", + "adminGroupIdLabel": "ID Gruppo Admin", + "adminGroupIdTooltip": "Agli utenti che corrispondono all'ID Gruppo Admin o ai Valori Ruolo Admin viene assegnato il ruolo admin. Se nessuno dei due è configurato, l'accesso SSO non cambierà i ruoli utente esistenti.", + "adminRoleValuesLabel": "Valori Ruolo Admin", + "adminRoleValuesTooltip": "Agli utenti che corrispondono all'ID Gruppo Admin o ai Valori Ruolo Admin viene assegnato il ruolo admin. Se nessuno dei due è configurato, l'accesso SSO non cambierà i ruoli utente esistenti.", + "adminRoleValuesPlaceholder": "es. Admin, MstyAdmin", + "emailClaimLabel": "Email Claim", + "emailClaimTooltip": "Nome del claim utilizzato per l'email (es. email, preferred_username, upn).", + "emailClaimPlaceholder": "es. email", + "groupsClaimLabel": "Groups Claim", + "groupsClaimTooltip": "Nome del claim utilizzato per i gruppi (es. groups, roles, memberOf).", + "groupsClaimPlaceholder": "es. groups", + "tenantIdLabel": "ID Tenant", + "tenantIdTooltip": "ID tenant Microsoft Entra utilizzato per costruire l'URL dell'issuer.", + "tenantIdPlaceholder": "ID Directory (tenant)", + "clientIdLabel": "ID Client", + "clientIdTooltip": "ID client OIDC per l'applicazione desktop (client pubblico).", + "microsoftClientIdPlaceholder": "ID Applicazione (client)", + "googleClientIdPlaceholder": "ID client OAuth", + "otherClientIdPlaceholder": "ID client OIDC", + "clientSecretLabel": "Client Secret", + "clientSecretTooltip": "Archiviato criptato a riposo e non viene mai restituito nelle risposte.", + "clientSecretPlaceholder": "Inserisci client secret", + "clientSecretMaskedPlaceholder": "********", + "issuerUrlLabel": "URL Issuer", + "issuerUrlTooltip": "URL issuer OIDC per il tuo identity provider (usato per il discovery).", + "issuerUrlPlaceholder": "es. https://idp.example.com", + "loadError": "Impossibile caricare la configurazione SSO", + "settingsSaved": "Impostazioni salvate", + "updated": "La configurazione SSO è stata aggiornata", + "updateError": "Impossibile aggiornare la configurazione SSO", + "settingsReset": "Impostazioni ripristinate", + "resetDetail": "La configurazione SSO è stata ripristinata", + "settingsTab": "Impostazioni SSO", + "groupAutoAssignment": { + "title": "Assegnazione Automatica Gruppi SSO", + "subtitle": "Configura gli ID gruppo dell'identity provider per assegnare automaticamente gli utenti a questo team quando si autenticano tramite SSO.", + "groupIdsLabel": "ID Gruppo", + "groupIdsPlaceholder": "es. id-gruppo-1, id-gruppo-2, id-gruppo-3", + "howItWorksTitle": "Come funziona", + "howItWorksStepOne": "Inserisci uno o più ID gruppo dal tuo identity provider (separati da virgola)", + "howItWorksStepTwo": "Quando gli utenti si autenticano tramite SSO, viene controllata la loro appartenenza ai gruppi", + "howItWorksStepThree": "Gli utenti in uno qualsiasi di questi gruppi vengono aggiunti automaticamente a questo team" + } + } +} \ No newline at end of file