import type { TranslationDictionary } from '@/types/i18n.types';

export const it: TranslationDictionary = {
  common: {
    save: 'Salva',
    cancel: 'Annulla',
    delete: 'Elimina',
    edit: 'Modifica',
    create: 'Crea',
    search: 'Cerca',
    filter: 'Filtra',
    loading: 'Caricamento...',
    noResults: 'Nessun risultato trovato',
    confirm: 'Conferma',
    back: 'Indietro',
    next: 'Avanti',
    previous: 'Precedente',
    close: 'Chiudi',
    retry: 'Riprova',
    error: 'Errore',
    success: 'Successo',
    warning: 'Avviso',
    info: 'Info',
    healthy: 'Integro',
    degraded: 'Degradato',
    unhealthy: 'Non integro',
    up: 'Attivo',
    down: 'Inattivo',
    responseTime: 'Tempo di risposta',
    unknown: 'Sconosciuto',
    operational: 'Operativo',
    notAvailable: 'N/D',
    yes: 'Sì',
    no: 'No',
    never: 'Mai',
    accessDenied: "Non disponi dell'autorizzazione per accedere a questa pagina.",
    brandName: 'Claw',
    brandVersion: 'Claw v{version}',
    select: 'Seleziona',
    download: 'Scarica',
    noDataAvailable: 'Nessun dato disponibile',
    showingPage: 'Pagina {page} di {total}',
  },
  auth: {
    login: 'Accedi',
    logout: 'Esci',
    email: 'E-mail',
    password: 'Password',
    loginTitle: 'Accedi a Claw',
    loginSubtitle: 'Inserisci le tue credenziali per continuare',
    loginButton: 'Accedi',
    logoutButton: 'Esci',
    sessionExpired: "La tua sessione è scaduta. Effettua nuovamente l'accesso.",
    invalidCredentials: 'Email o password non validi',
    welcomeTitle: 'Benvenuto in Claw',
    welcomeSubtitle: 'Piattaforma di orchestrazione IA',
    passwordPlaceholder: 'Inserisci la tua password',
    signingIn: 'Accesso in corso...',
    loginFailed: 'Accesso non riuscito. Riprova.',
    tagline: 'Claw - Orchestrazione IA local-first',
    authenticating: 'Autenticazione in corso...',
    emailPlaceholder: 'you@example.com',
  },
  nav: {
    dashboard: 'Dashboard',
    chat: 'Chat',
    compareModels: 'Confronta modelli',
    consensusMode: 'Modalità consenso',
    escalationChain: 'Catena di escalation',
    repairLab: 'Laboratorio riparazione',
    decomposeLab: 'Decompositore attività',
    bestOfNLab: 'Generazione Best-of-N',
    verifierLab: 'Verificatore',
    pipelineLab: 'Laboratorio pipeline',
    costEnsemble: 'Ensemble basato sui costi',
    rolePackLab: 'Pacchetto ruoli',
    connectors: 'Connettori',
    models: 'Modelli',
    modelCatalog: 'Catalogo modelli',
    modelLocalFrontier: 'Modelli frontier',
    localModels: 'Modelli locali',
    routing: 'Routing',
    replayLab: 'Laboratorio replay',
    recoveryLab: 'Motore di recupero',
    adaptiveInsights: 'Insight adattivi',
    memory: 'Memoria',
    context: 'Pacchetti di contesto',
    files: 'File',
    observability: 'Osservabilità',
    audits: 'Log di audit',
    logs: 'Log',
    admin: 'Amministrazione',
    settings: 'Impostazioni',
    workspace: 'Area di lavoro',
    workspaceActions: 'Azioni',
    workspaceApprovals: 'Approvazioni',
    workspaceSyncHealth: 'Stato sincronizzazione',
    agent: 'Agente',
    agentTerminal: 'Terminale',
    agentRepos: 'Repository',
    agentCapabilities: 'Capacità',
    agentActivity: 'Attività',
    agentRecipes: 'Ricette',
    agentMarketplace: 'Marketplace',
    agentActivityMemory: 'Memoria Attività',
    discovery: 'Scoperta modelli',
    workspaceProviders: 'Provider',
    workspaceAppConfigs: 'Configurazioni app',
    workspaceGmail: 'Gmail',
    workspaceJira: 'Jira',
    workspaceSourceControl: 'Controllo sorgente',
    workspaceSlack: 'Slack',
    workspaceDocs: 'Documenti',
    workspaceConfluence: 'Confluence',
    workspaceFigma: 'Figma',
    workspaceWorkflows: 'Workflow',
    researchProviders: 'Provider di ricerca',
    researchRuns: 'Esecuzioni di ricerca',
    research: 'Ricerca',
    workspaceInbox: 'Posta in arrivo',
    workspaceSemanticSearch: 'Ricerca semantica',
    workspaceDigest: 'Sintesi',
    workspaceAutomationPreferences: 'Preferenze automazione',
    workspaceEmailSignatures: 'Firme e-mail',
    workspaceEmailTemplates: 'Modelli e-mail',
    workspaceImplHandoffs: 'Passaggi di codice',
    adminAiActionPolicies: 'Policy azioni IA',
    adminSuggestionRules: 'Regole suggerimenti',
    adminWebhookDeliveries: 'Consegne webhook',
  },
  chat: {
    newThread: 'Nuova chat',
    threads: 'Conversazioni',
    searchThreads: 'Cerca conversazioni...',
    noThreads: 'Nessuna conversazione',
    noThreadsDesc: 'Avvia una nuova conversazione per iniziare',
    sendMessage: 'Invia messaggio',
    typeMessage: 'Scrivi un messaggio...',
    deleteThread: 'Elimina conversazione',
    deleteThreadConfirm: 'Sei sicuro di voler eliminare questa conversazione?',
    threadCreated: 'Conversazione creata',
    threadCreateFailed: 'Creazione conversazione non riuscita',
    threadDeleted: 'Conversazione eliminata',
    threadDeleteFailed: 'Eliminazione conversazione non riuscita',
    threadUpdateFailed: 'Aggiornamento conversazione non riuscito',
    messageSendFailed: 'Invio messaggio non riuscito',
    feedbackFailed: 'Salvataggio feedback non riuscito',
    regenerateFailed: 'Rigenerazione messaggio non riuscita',
    aiThinking: "L'IA sta pensando...",
    fallbackRetrying: 'Nuovo tentativo con fallback...',
    providerFailed: 'fallito',
    tryingProvider: 'tentativo',
    allProvidersFailed: 'Tutti i provider non sono riusciti a generare una risposta',
    imageGeneration: 'Generazione immagini',
    generatedImage: 'Immagine generata',
    downloadImage: 'Scarica immagine',
    fileGeneration: 'Generazione file',
    generatingFile: 'Generazione file...',
    fileGenerationFailed: 'Generazione file non riuscita',
    downloadFile: 'Scarica file',
    convertingFile: 'Conversione file',
    providerModel: 'Provider / Modello',
    pinThread: 'Fissa conversazione',
    unpinThread: 'Rimuovi dai fissati',
    archiveThread: 'Archivia conversazione',
    unarchiveThread: 'Ripristina conversazione',
    threadPinned: 'Conversazione fissata',
    threadUnpinned: 'Conversazione rimossa dai fissati',
    threadArchived: 'Conversazione archiviata',
    threadUnarchived: 'Conversazione ripristinata',
    pinFailed: 'Aggiornamento stato di fissaggio non riuscito',
    archiveFailed: 'Aggiornamento stato di archivio non riuscito',
    showArchived: 'Mostra archiviate',
    hideArchived: 'Nascondi archiviate',
    provenance: 'Provenienza del messaggio',
    provenanceProvider: 'Fornitore',
    provenanceModel: 'Modello',
    provenanceLatency: 'Latenza',
    provenanceInputTokens: 'Token di input',
    provenanceOutputTokens: 'Token di output',
    provenanceEstimatedCost: 'Costo stimato',
    provenanceRoutingMode: 'Modalità di routing',
    provenanceFallbackUsed: 'Fallback utilizzato',
    provenanceYes: 'Sì',
    provenanceNo: 'No',
    globalSearch: 'Cerca conversazioni',
    globalSearchPlaceholder: 'Cerca in tutte le conversazioni...',
    globalSearchNoResults: 'Nessuna conversazione trovata',
    systemPrompt: 'Prompt di sistema',
    systemPromptPlaceholder: "Istruzioni per l'IA...",
    temperature: 'Temperatura',
    temperatureDescription:
      'Controlla la casualità. Più basso = più mirato, più alto = più creativo.',
    maxTokens: 'Token massimi',
    maxTokensDescription: "Lunghezza massima della risposta dell'IA.",
    threadSettings: 'Impostazioni conversazione',
    preferredModel: 'Modello IA predefinito',
    preferredModelDescription:
      'Modello predefinito per questa conversazione. Può essere sovrascritto per messaggio.',
    settingsSaved: 'Impostazioni conversazione salvate',
    helpful: 'Utile',
    notHelpful: 'Non utile',
    feedbackSaved: 'Feedback salvato',
    attachFiles: 'Allega file',
    noFiles: 'Nessun file caricato',
    selectedFiles: '{count} file allegato/i',
    contextPacks: 'Pacchetti di contesto',
    contextPacksDescription:
      'Seleziona i pacchetti di contesto da includere in questa conversazione.',
    noContextPacks: 'Nessun pacchetto di contesto creato',
    reRouted: 'Reindirizzato',
    reRoutedFrom: 'Reindirizzato da {provider}/{model}',
    weakResponse: 'Risposta debole rilevata',
    qualityScore: 'Qualità: {score}%',
    judgeReferee: 'Giudice e arbitro',
    judgeRefereeDescription:
      "Abilita critica e verifica delle risposte basate sull'IA per maggiore accuratezza.",
    judgeVerified: 'Verificata',
    judgeRevised: 'Revisionata',
    judgeEscalated: 'Escalata',
    judgeCriticFeedback: 'Feedback del critico',
    judgeReasoning: 'Ragionamento del giudice',
    judgeEvaluating: 'Verifica della risposta...',
    judgeModelLabel: 'Modello giudice',
    judgeModelAuto: 'Auto (qwen3:1.7b)',
    judgeModelDescription: 'Sovrascrivi il modello locale usato per il verdetto finale',
    judgeOpenReview: 'Visualizza risposta del giudice',
    judgeReviewTitle: 'Revisione del giudice',
    judgeReviewDescription:
      'Ispeziona la risposta originale, la decisione del giudice e la risposta generata dal giudice.',
    judgeDecisionLabel: 'Decisione',
    judgeConfidenceLabel: 'Fiducia',
    judgeSummary: 'Riepilogo del giudice',
    judgeResponse: 'Risposta del giudice',
    judgeOriginalAnswer: 'Risposta originale',
    judgeRevisedAnswer: 'Risposta revisionata',
    judgeEscalatedAnswer: 'Risposta escalata',
    judgeExecutionModel: 'Modello di esecuzione',
    judgeJudgeModel: 'Modello giudice',
    judgeCriticModel: 'Modello critico',
    judgeCriticScore: 'Punteggio critico',
    judgeJudgeLatency: 'Latenza giudice',
    judgeTotalLatency: 'Latenza totale revisione',
    judgeRecommendedChanges: 'Modifiche consigliate',
    judgeNoCriticFeedback: 'Nessun feedback del critico registrato per questa revisione.',
    judgeResponseTypeSummary: 'Riepilogo',
    judgeResponseTypeRevisedAnswer: 'Risposta revisionata',
    judgeResponseTypeEscalatedAnswer: 'Risposta escalata',
    judgeResponseTypeVerificationNote: 'Nota di verifica',
    qualityThreshold: 'Soglia di qualità',
    qualityThresholdDescription:
      'Punteggio minimo di qualità prima del reindirizzamento (0 = accetta tutto, 1 = molto rigoroso)',
    maxReRouteAttempts: 'Tentativi massimi di reindirizzamento',
    maxReRouteAttemptsDescription:
      'Numero massimo di tentativi di reindirizzamento per messaggio (0-5)',
    reRouteReasonShort: 'Troppo breve',
    reRouteReasonRefusal: 'Rifiuto rilevato',
    reRouteReasonRepetition: 'Ripetizione eccessiva',
    reRouteReasonEcho: 'Eco del prompt',
    reRouteReasonLowWords: 'Troppe poche parole',
    backToThreads: 'Torna alle conversazioni',
    loadingThread: 'Caricamento conversazione...',
    selectOrStartTitle: 'Seleziona una conversazione o avviane una nuova',
    selectOrStartDesc:
      'Scegli una conversazione esistente dalla barra laterale o creane una nuova per interagire con i tuoi modelli IA configurati.',
    untitled: 'Senza titolo',
    attachedFile: 'File allegato',
    beginningOfConversation: 'Inizio della conversazione',
    composerPlaceholder: 'Scrivi il tuo messaggio...',
    currentAiProgress: "Avanzamento attuale dell'IA",
    fileGenerationCancelled: 'Generazione del file annullata',
    fileGenerationFailedRetry: 'Generazione del file non riuscita. Riprovare?',
    generationCancelled: 'Generazione annullata',
    imageGenerationFailedRetry: "Generazione dell'immagine non riuscita. Riprovare?",
    judge: 'Giudice',
    live: 'In diretta',
    loadingImage: 'Caricamento immagine...',
    loadingMessages: 'Caricamento messaggi...',
    loadingMoreThreads: 'Caricamento di altre conversazioni...',
    loadingOlderMessages: 'Caricamento messaggi precedenti...',
    loadingThreads: 'Caricamento conversazioni...',
    manyMemories: '{count} ricordi',
    modelThinking: 'Il modello sta pensando...',
    noMatchingThreads: 'Nessuna conversazione corrispondente',
    noMessagesYet: 'Nessun messaggio ancora',
    noVisibleAnswer: 'Nessuna risposta visibile',
    oneMemory: '1 ricordo',
    open: 'Apri',
    preparingDownload: 'Preparazione del download...',
    regenerate: 'Rigenera',
    searching: 'Ricerca in corso...',
    threadActions: 'Azioni della conversazione',
    toggleProvenance: 'Mostra/nascondi provenienza',
    tryAnotherModel: 'Prova un altro modello',
    tryingFallback: 'Tentativo di fallback...',
    verifyingWith: 'Verifica con {model}',
    visibleAiProgress: "Avanzamento visibile dell'IA",
    useMemoryLabel: 'Usa la memoria in questa conversazione',
    useMemoryDescription: 'Se disattivato, nessuna memoria viene inserita nel prompt.',
    useContextLabel: 'Usa i pacchetti di contesto in questa conversazione',
    useContextDescription: 'Se disattivato, i pacchetti allegati vengono ignorati.',
  },
  receipt: {
    openLabel: "Mostra cosa ha usato l'IA",
    contextUsed: 'Contesto utilizzato',
    dialogTitle: 'Perché questa risposta',
    dialogDescription: 'Memorie ed elementi del pacchetto che hanno influenzato questa risposta.',
    loading: 'Caricamento ricevuta...',
    notAvailable: 'Nessuna ricevuta disponibile per questo messaggio.',
    memoriesCount: '{value} memorie',
    packItemsCount: '{value} elementi del pacchetto',
    tokenBudget: 'Token: {used} / {total}',
    memoriesHeading: 'Memorie',
    packItemsHeading: 'Elementi del pacchetto',
    warningsHeading: 'Avvisi',
    scoreLabel: 'punteggio {value}',
    pinnedBadge: 'fissato',
    redactedPlaceholder: '(redatto — contenuto nascosto)',
  },
  preview: {
    openLabel: 'Anteprima contesto',
    dialogTitle: "Cosa vedrebbe l'IA",
    dialogDescription:
      'Simulazione del recupero di memoria e pacchetti di contesto per la bozza corrente.',
    loading: 'Creazione anteprima...',
    failed: "L'anteprima non è riuscita; il prossimo invio funzionerà comunque.",
    empty: 'Nessun contesto verrà inserito per questa bozza.',
    memoryCount: '{value} memorie',
    packCount: '{value} elementi del pacchetto',
    tokenBudget: 'Token: {used} / {total}',
    memoriesHeading: 'Memorie',
    packItemsHeading: 'Elementi del pacchetto',
    redactedPlaceholder: '(redatto — contenuto nascosto)',
  },
  connectors: {
    title: 'Connettori',
    description: 'Gestisci le tue connessioni ai provider IA',
    createConnector: 'Crea connettore',
    editConnector: 'Modifica connettore',
    deleteConnector: 'Elimina connettore',
    testConnection: 'Testa connessione',
    testingConnection: 'Test in corso...',
    syncModels: 'Sincronizza modelli',
    name: 'Nome',
    nameHelp: 'Un nome descrittivo per identificare questo connettore nella tua dashboard.',
    provider: 'Fornitore',
    providerHelp: 'Il provider IA con cui questo connettore comunicherà.',
    authType: 'Tipo di autenticazione',
    authTypeHelp: 'Come autenticarsi con il provider. La maggior parte usa API Key.',
    apiKey: 'API Key',
    apiKeyHelp: 'La tua API key segreta dal provider. Verrà crittografata a riposo.',
    baseUrl: 'URL base',
    baseUrlHelp:
      "Sovrascrivi l'endpoint API predefinito. Lascia vuoto per usare quello del provider.",
    region: 'Regione',
    regionHelp: 'La regione AWS in cui è distribuito il tuo endpoint Bedrock.',
    status: 'Stato',
    healthy: 'Integro',
    degraded: 'Degradato',
    error: 'Errore',
    noConnectors: 'Nessun connettore configurato',
    noConnectorsDesc: 'Aggiungi un connettore per iniziare a usare i provider IA',
    connectorCreated: 'Connettore creato',
    connectorCreateFailed: 'Creazione connettore non riuscita',
    connectorUpdated: 'Connettore aggiornato',
    connectorUpdateFailed: 'Aggiornamento connettore non riuscito',
    connectorDeleted: 'Connettore eliminato',
    connectorDeleteFailed: 'Eliminazione connettore non riuscita',
    testSuccessful: 'Test di connessione riuscito',
    testFailed: 'Test di connessione non riuscito',
    modelsSynced: 'Modelli sincronizzati con successo',
    syncFailed: 'Sincronizzazione modelli non riuscita',
    testBeforeCreate: "Salva prima il connettore, poi testa dall'elenco.",
    loadingConnectors: 'Caricamento connettori...',
    loadingConnector: 'Caricamento connettore...',
    addConnector: 'Aggiungi connettore',
    loadFailed: 'Caricamento connettori non riuscito.',
    connectorDetail: 'Dettaglio connettore',
    connectorNotFound: 'Connettore non trovato',
    backToConnectors: 'Torna ai connettori',
    syncing: 'Sincronizzazione...',
    enabled: 'Abilitato',
    disabled: 'Disabilitato',
    configuration: 'Configurazione',
    healthHistory: 'Cronologia integrità',
    healthHistoryDesc:
      'Il tracciamento della cronologia integrità sarà disponibile in un aggiornamento futuro.',
    models: 'Modelli',
    oneModel: '{count} modello',
    manyModels: '{count} modelli',
    updatedAt: 'Aggiornato {date}',
    addConnectorDesc: 'Aggiungi un nuovo connettore di provider IA',
    apiKeyPlaceholder: 'Inserisci la API Key',
    apiKeyPlaceholderEdit: 'Lascia vuoto per mantenere quella esistente',
    baseUrlOptional: 'URL di base (opzionale)',
    baseUrlPlaceholder: 'https://api.example.com',
    defaultLabel: 'Predefinito',
    editConnectorDesc: 'Aggiorna la configurazione del connettore',
    namePlaceholder: 'es., OpenAI Production',
    regionPlaceholder: 'es., us-east-1',
    saveFirstThenTest: 'Salva prima il connettore, poi testalo',
    selectProvider: 'Seleziona un provider',
  },
  memory: {
    title: 'Memoria',
    description: 'Gestisci i record di memoria IA',
    createMemory: 'Crea memoria',
    editMemory: 'Modifica memoria',
    deleteMemory: 'Elimina memoria',
    type: 'Tipo',
    content: 'Contenuto',
    enabled: 'Abilitata',
    disabled: 'Disabilitata',
    noMemories: 'Nessun record di memoria',
    noMemoriesDesc: "Crea record di memoria per dare contesto all'IA",
    memoryCreated: 'Memoria creata',
    memoryCreateFailed: 'Creazione memoria non riuscita',
    memoryUpdated: 'Memoria aggiornata',
    memoryUpdateFailed: 'Aggiornamento memoria non riuscito',
    memoryDeleted: 'Memoria eliminata',
    memoryDeleteFailed: 'Eliminazione memoria non riuscita',
    memoryToggled: 'Memoria modificata',
    memoryToggleFailed: 'Modifica memoria non riuscita',
    loadFailed: 'Caricamento record di memoria non riuscito.',
    loadingMemories: 'Caricamento record di memoria...',
    addMemory: 'Aggiungi memoria',
    contentPlaceholder: 'Inserisci il contenuto del ricordo...',
    createMemoryDesc: 'Crea una nuova voce di memoria',
    editMemoryDesc: 'Aggiorna i dettagli del ricordo',
    source: 'Origine',
    typeSummary: 'Riepilogo',
    typeFact: 'Fatto',
    typePreference: 'Preferenza',
    typeInstruction: 'Istruzione',
    filterAllTypes: 'Tutti i tipi',
    tabSaved: 'Salvate',
    tabSuggestions: 'Suggerimenti',
    tabAudit: 'Audit',
    searchPlaceholder: 'Cerca memorie...',
    filterAllScopes: 'Tutti gli ambiti',
    filterAllSources: 'Tutte le fonti',
    filterAllSensitivities: 'Tutte le sensibilità',
    scopeUser: 'Personale',
    scopeThread: 'Questa conversazione',
    scopeWorkspace: 'Spazio di lavoro',
    scopeProject: 'Progetto',
    sourceUserManual: 'Creata manualmente',
    sourceAiExtracted: 'Estratta dalla chat',
    sourceAutomation: "Appresa dall'automazione",
    sourceImported: 'Importata',
    sensitivityNormal: 'Normale',
    sensitivitySensitive: 'Sensibile',
    sensitivityRedacted: 'Redatta',
    loadingSuggestions: 'Caricamento suggerimenti...',
    loadingAudit: 'Caricamento audit...',
    noSuggestions: 'Nessun suggerimento al momento',
    noAudit: 'Ancora nessuna voce di audit',
    auditNoMemoryId: '(memoria eliminata)',
    approveSuggestion: 'Approva',
    rejectSuggestion: 'Rifiuta',
    rejectAndSuppress: 'Rifiuta e silenzia simili',
    suggestionConfidence: 'Confidenza: {value}%',
    suggestionReason: 'Motivo: {value}',
  },
  files: {
    title: 'File',
    description: 'Carica e gestisci file per il contesto IA',
    uploadFile: 'Carica file',
    deleteFile: 'Elimina file',
    dragDrop: 'Trascina qui i file o clicca per selezionarli',
    maxSize: 'Dimensione massima file: 50MB',
    noFiles: 'Nessun file caricato',
    noFilesDesc: 'Carica file da usare come contesto IA',
    fileUploaded: 'File caricato',
    fileUploadFailed: 'Caricamento file non riuscito',
    fileDeleted: 'File eliminato',
    fileDeleteFailed: 'Eliminazione file non riuscita',
    uploadFailed: 'Caricamento file non riuscito',
    loadFailed: 'Caricamento file non riuscito.',
    loadingFiles: 'Caricamento file...',
    allTypesAccepted: 'Tutti i tipi di file accettati',
    chunkIndex: 'Blocco #{index}',
    chunksTitle: 'Blocchi del file',
    dropFileHere: 'Trascina qui il file',
    dropOrClick: 'Trascina qui il file o clicca per sfogliare',
    fileFallback: 'File',
    noChunks: 'Nessun blocco disponibile',
    uploading: 'Caricamento in corso...',
    uploadNewFile: 'Carica un nuovo file',
    viewChunks: 'Visualizza blocchi',
    statusPending: 'In attesa',
    statusProcessing: 'Elaborazione',
    statusCompleted: 'Completato',
    statusFailed: 'Fallito',
  },
  context: {
    title: 'Pacchetti di contesto',
    description: 'Organizza il contesto per le conversazioni IA',
    createPack: 'Crea pacchetto di contesto',
    addItem: 'Aggiungi elemento',
    name: 'Nome',
    scope: 'Ambito',
    noContextPacks: 'Nessun pacchetto di contesto',
    noContextPacksDesc: 'Crea pacchetti di contesto per organizzare il contesto IA',
    packCreated: 'Pacchetto di contesto creato',
    packCreateFailed: 'Creazione pacchetto di contesto non riuscita',
    packUpdated: 'Pacchetto di contesto aggiornato',
    packUpdateFailed: 'Aggiornamento pacchetto di contesto non riuscito',
    packDeleted: 'Pacchetto di contesto eliminato',
    packDeleteFailed: 'Eliminazione pacchetto di contesto non riuscita',
    itemAdded: 'Elemento aggiunto al pacchetto',
    itemAddFailed: 'Aggiunta elemento non riuscita',
    itemUpdated: 'Elemento del pacchetto aggiornato',
    itemUpdateFailed: 'Aggiornamento elemento non riuscito',
    itemRemoved: 'Elemento rimosso dal pacchetto',
    itemRemoveFailed: 'Rimozione elemento non riuscita',
    loadFailed: 'Caricamento pacchetti di contesto non riuscito.',
    contextPack: 'Pacchetto di contesto',
    packDetailsDesc: 'Dettagli ed elementi del pacchetto',
    backToPacks: 'Torna ai pacchetti',
    deletePack: 'Elimina pacchetto',
    deleting: 'Eliminazione...',
    loadingPackDetails: 'Caricamento dettagli pacchetto...',
    noItems: 'Nessun elemento in questo pacchetto',
    noItemsDesc: 'Aggiungi note, istruzioni o riferimenti a file a questo pacchetto di contesto.',
    loadingContextPacks: 'Caricamento pacchetti di contesto...',
    addItemDesc: "Aggiungi una nota, un'istruzione o un riferimento a file a questo pacchetto.",
    adding: 'Aggiunta...',
    content: 'Contenuto',
    contentPlaceholder: 'Inserisci il contenuto...',
    fileId: 'ID file',
    fileIdPlaceholder: "Inserisci l'ID file",
    itemType: 'Tipo',
    selectType: 'Seleziona un tipo',
    createPackDesc: 'Crea un nuovo pacchetto di contesto',
    creating: 'Creazione in corso...',
    descriptionOptional: 'Descrizione (opzionale)',
    descriptionPlaceholder: 'Descrivi a cosa serve questo pacchetto',
    namePlaceholder: 'es., Contesto Progetto Alpha',
    scopeOptional: 'Ambito (opzionale)',
    scopePlaceholder: 'es., globale, progetto, utente',
    typeNote: 'Nota',
    typeInstruction: 'Istruzione',
    typeFileReference: 'Riferimento file',
  },
  routing: {
    title: 'Policy di routing',
    description: 'Configura il routing dei modelli IA',
    createPolicy: 'Crea policy',
    editPolicy: 'Modifica policy',
    deletePolicy: 'Elimina policy',
    name: 'Nome',
    mode: 'Modalità di routing',
    priority: 'Priorità',
    active: 'Attiva',
    noPolicies: 'Nessuna policy di routing',
    noPoliciesDesc: 'Crea policy di routing per controllare la selezione dei modelli',
    policyCreated: 'Policy creata',
    policyCreateFailed: 'Creazione policy non riuscita',
    policyUpdated: 'Policy aggiornata',
    policyUpdateFailed: 'Aggiornamento policy non riuscito',
    policyDeleted: 'Policy eliminata',
    policyDeleteFailed: 'Eliminazione policy non riuscita',
    status: 'Stato',
    inactive: 'Inattiva',
    activate: 'Attiva',
    deactivate: 'Disattiva',
    loadFailed: 'Caricamento configurazione di routing non riuscito.',
    defaultRoutingMode: 'Modalità di routing predefinita',
    defaultRoutingModeDesc: 'Scegli come il router locale distribuisce le richieste tra i modelli',
    defaultMode: 'Modalità predefinita',
    fallbackSettings: 'Impostazioni di fallback',
    fallbackSettingsDesc: 'Configura tentativi e timeout',
    maxRetries: 'Tentativi massimi',
    timeoutMs: 'Timeout (ms)',
    loadingPolicies: 'Caricamento policy...',
    noPoliciesConfigured: 'Nessuna policy di routing configurata.',
    complexityLabel: 'Complessità',
    complexitySimple: 'Semplice',
    complexityMedium: 'Media',
    complexityComplex: 'Complessa',
    complexityExpert: 'Esperta',
    routingExplanation: 'Spiegazione del routing',
    explanationSummary: 'Riepilogo decisione',
    explanationFactors: 'Fattori della decisione',
    routingDurationMs: 'Durata del routing',
    modalityLabel: 'Modalità rilevata',
    modalityText: 'Testo',
    modalityCode: 'Codice',
    modalityImageInput: 'Comprensione immagini',
    modalityImageOutput: 'Generazione immagini',
    modalityAudioInput: 'Audio / Voce',
    modalityVideoInput: 'Analisi video',
    modalityPdfInput: 'Documento / PDF',
    modalityWebSearch: 'Ricerca web',
    modalityToolCalling: 'Chiamata strumenti',
    modalityStructuredOutput: 'Output strutturato',
    modalityOcr: 'OCR / Estrazione testo',
    modalityReasoning: 'Ragionamento profondo',
    namePlaceholder: 'La mia policy di routing',
    selectModePlaceholder: 'Seleziona modalità di routing',
    editPolicyDesc: 'Aggiorna la configurazione della policy di routing.',
    createPolicyDesc:
      'Crea una nuova policy di routing per controllare la distribuzione delle richieste.',
    weightsJsonLabel: 'Pesi di punteggio (JSON, opzionale)',
    weightsJsonPlaceholder: '{"capability": 0.2, "domain": 0.1, ...}',
    weightsJsonHelp:
      'Opzionale. Sovrascrive i pesi predefiniti per modalità. Deve includere tutte le 14 dimensioni e la somma deve essere 1,0.',
    weightsJsonError: {
      invalidJson: 'Il JSON dei pesi non è un JSON valido.',
      notAnObject: 'I pesi devono essere un oggetto JSON.',
      missingDimension: 'Il JSON dei pesi deve includere ogni dimensione come numero.',
      sumNotOne: 'La somma dei pesi deve essere 1,0 (±0,001).',
    },
    models: {
      title: 'Registro dei modelli',
      description:
        'Sfoglia tutti i modelli noti al router. Sovrascrivi costo, ciclo di vita o flag di routing.',
      updateSucceeded: 'Modello aggiornato.',
      updateFailed: 'Impossibile aggiornare il modello.',
      overrideCleared: 'Override rimosso.',
      overrideClearFailed: 'Impossibile rimuovere l’override.',
      softDeleteSucceeded: 'Modello contrassegnato come rimosso.',
      softDeleteFailed: 'Impossibile rimuovere il modello.',
      columnProvider: 'Fornitore',
      columnModelKey: 'Modello',
      columnLifecycle: 'Ciclo di vita',
      columnQuality: 'Qualità',
      columnCost: 'Costo',
      columnLatency: 'Latenza',
      filterByProvider: 'Filtra per fornitore',
      filterByLifecycle: 'Filtra per ciclo di vita',
    },
  },
  models: {
    title: 'Modelli',
    description: 'Visualizza tutti i modelli IA disponibili',
    localTitle: 'Modelli locali',
    localDescription: 'Gestisci i modelli IA installati localmente',
    pullModel: 'Scarica modello',
    assignRole: 'Assegna ruolo',
    noModels: 'Nessun modello disponibile',
    noModelsDesc: 'Collega un provider o scarica modelli locali',
    modelPullStarted: 'Download modello avviato',
    modelPullFailed: 'Download modello non riuscito',
    roleAssigned: 'Ruolo assegnato',
    roleAssignFailed: 'Assegnazione ruolo non riuscita',
    loadFailed: 'Caricamento modelli non riuscito.',
    loadingModels: 'Caricamento modelli...',
    allProviders: 'Tutti i provider',
    allLifecycle: 'Tutti i cicli di vita',
    noModelsMatch: 'Nessun modello corrisponde ai filtri attuali.',
    localLoadFailed: 'Caricamento modelli locali non riuscito.',
    runtimeHealth: 'Integrità runtime',
    runtimeHealthDesc: 'Stato attuale del runtime dei modelli locali',
    pullModelDesc: 'Scarica un nuovo modello dal registro',
    modelName: 'Nome modello',
    runtime: 'Runtime',
    pulling: 'Download...',
    pull: 'Scarica',
    installedModels: 'Modelli installati',
    loadingLocalModels: 'Caricamento modelli locali...',
    noLocalModels: 'Nessun modello locale installato',
    noLocalModelsDesc:
      "Scarica un modello usando il modulo qui sopra per iniziare con l'inferenza locale.",
    colModel: 'Modello',
    colRuntime: 'Runtime',
    colSize: 'Dimensione',
    colFamily: 'Famiglia',
    colParameters: 'Parametri',
    colRoles: 'Ruoli',
    noneRole: 'Nessuno',
    modelNamePlaceholder: 'llama3:8b',
    capabilities: 'Capacità',
    context: 'Contesto',
    lifecycle: 'Ciclo di vita',
    noSyncedModels: 'Nessun modello sincronizzato',
    streaming: 'Streaming',
    tools: 'Strumenti',
    vision: 'Visione',
  },
  observability: {
    title: 'Osservabilità',
    description: "Monitora l'utilizzo e le prestazioni dell'IA",
    totalRequests: 'Richieste totali',
    totalCost: 'Costo totale',
    avgLatency: 'Latenza media',
    activeModels: 'Modelli attivi',
    clientLogs: 'Log client',
    serverLogs: 'Log server',
    auditTrail: 'Traccia di audit',
    loadingData: 'Caricamento dati di osservabilità...',
    failedToLoad: 'Caricamento dati non riuscito',
    failedToLoadDesc: 'Impossibile recuperare i dati di osservabilità. Riprova più tardi.',
    noDataYet: 'Nessun dato di osservabilità',
    noDataDesc:
      'Metriche e dati di prestazione verranno popolati qui una volta che le richieste inizieranno a fluire attraverso il livello di orchestrazione.',
    fullDescription:
      "Monitora l'integrità del sistema, la latenza delle richieste e le prestazioni dei modelli",
    totalRequestsLabel: 'Richieste totali',
    acrossProviders: 'Su tutti i provider',
    estimatedCost: 'Costo stimato',
    estimatedCostLabel: 'Costo stimato',
    recentFailures: 'Errori recenti',
    highCriticalSeverity: 'Eventi di severità HIGH + CRITICAL',
    providerUsage: 'Utilizzo provider',
    modelUsage: 'Utilizzo modelli',
    latencyBreakdown: 'Dettaglio latenza',
    costSummary: 'Riepilogo costi',
    avg: 'Media',
    p50Median: 'P50 (Mediana)',
    p95: 'P95',
    totalTokens: 'Token totali',
    requests: 'richieste',
    tokens: 'token',
    noData: 'Nessun dato',
  },
  audits: {
    title: 'Log di audit',
    description: "Visualizza i log dell'attività di sistema",
    action: 'Azione',
    severity: 'Severità',
    entity: 'Entità',
    timestamp: 'Marca temporale',
    noAudits: 'Nessun log di audit',
    noAuditsDesc: "L'attività apparirà qui man mano che usi la piattaforma",
    actor: 'Attore',
    details: 'Dettagli',
    loadingAudits: 'Caricamento log di audit...',
    loadFailed: 'Caricamento audit non riuscito',
    loadFailedDesc: 'Impossibile recuperare i log di audit. Riprova più tardi.',
    noMatchingAudits: 'Nessun log di audit corrisponde ai filtri.',
    allActions: 'Tutte le azioni',
    allSeverities: 'Tutte le severità',
    searchPlaceholder: 'Cerca...',
    ipAddress: 'Indirizzo IP',
  },
  admin: {
    title: 'Amministrazione',
    description: 'Gestisci utenti e impostazioni di sistema',
    users: 'Utenti',
    createUser: 'Crea utente',
    changeRole: 'Cambia ruolo',
    deactivate: 'Disattiva',
    reactivate: 'Riattiva',
    noUsers: 'Nessun utente trovato',
    checkingServices: 'Verifica servizi...',
    healthUnreachable: 'Impossibile raggiungere il servizio di integrità.',
    loadingUsers: 'Caricamento utenti...',
    loadUsersFailed: 'Caricamento utenti non riuscito',
    loadUsersFailedDesc: "Impossibile recuperare l'elenco utenti. Riprova più tardi.",
    userRoleUpdated: 'Ruolo utente aggiornato',
    userRoleUpdateFailed: 'Aggiornamento ruolo utente non riuscito',
    userDeactivated: 'Utente disattivato',
    userDeactivateFailed: 'Disattivazione utente non riuscita',
    userStats: 'Statistiche utenti',
    userStatsDesc: 'Panoramica degli utenti della piattaforma',
    totalUsers: 'Utenti totali',
    activeUsers: 'Utenti attivi',
    platformHealth: 'Integrità della piattaforma',
    systemStatusOverview: 'Panoramica stato del sistema',
    userManagement: 'Gestione utenti',
    colUsername: 'Nome utente',
    colEmail: 'E-mail',
    colRole: 'Ruolo',
    colStatus: 'Stato',
    colJoined: 'Registrato',
    colActions: 'Azioni',
    roleAdmin: 'Amministratore',
    roleOperator: 'Operatore',
    roleViewer: 'Visualizzatore',
  },
  settings: {
    title: 'Impostazioni',
    description: 'Gestisci le impostazioni del tuo account',
    profile: 'Profilo',
    profileDescription: 'Le tue informazioni personali. Questi campi sono in sola lettura.',
    username: 'Nome utente',
    email: 'E-mail',
    emailReadOnly: 'Contatta un amministratore per cambiare la tua email.',
    role: 'Ruolo',
    selectLanguage: 'Seleziona lingua',
    preferences: 'Preferenze',
    language: 'Lingua',
    languageDescription: 'Seleziona la tua lingua di visualizzazione preferita',
    appearance: 'Aspetto',
    appearanceDescription: "Scegli come appare l'applicazione",
    system: 'Sistema',
    light: 'Chiaro',
    dark: 'Scuro',
    theme: 'Tema',
    changePassword: 'Cambia password',
    currentPassword: 'Password attuale',
    newPassword: 'Nuova password',
    confirmPassword: 'Conferma password',
    passwordChanged: 'Password modificata con successo',
    passwordChangeFailed: 'Modifica password non riuscita',
    passwordRequirements:
      'La password deve essere di almeno 8 caratteri con maiuscole, minuscole e un numero',
    preferencesUpdated: 'Preferenze aggiornate con successo',
    preferencesUpdateFailed: 'Aggiornamento preferenze non riuscito',
    devices: {
      title: 'Dispositivi',
      description: 'Gestisci gli agent desktop associati al tuo account.',
      emptyTitle: 'Nessun dispositivo associato',
      emptyBody: 'Esegui `claw-agent login` sulla tua macchina per associare un dispositivo.',
      revoke: 'Revoca',
      rename: 'Rinomina',
      scopesHeading: 'Ambiti',
      revokedBanner: 'Questo dispositivo è stato revocato',
    },
    langEnglish: 'Inglese',
    langArabic: 'Arabo',
    langFrench: 'Francese',
    langItalian: 'Italiano',
    langGerman: 'Tedesco',
    langSpanish: 'Spagnolo',
    langRussian: 'Russo',
    langPortuguese: 'Portoghese',
    langHindi: 'Hindi',
    appearanceSystem: 'Sistema',
    appearanceLight: 'Chiaro',
    appearanceDark: 'Scuro',
  },
  dashboard: {
    title: 'Dashboard',
    description: 'Panoramica della tua piattaforma IA',
    quickActions: 'Azioni rapide',
    recentActivity: 'Attività recente',
    totalThreads: 'Conversazioni totali',
    activeConnectors: 'Connettori attivi',
    localModels: 'Modelli locali',
    systemHealth: 'Integrità del sistema',
    startNewChat: 'Avvia nuova chat',
    addConnector: 'Aggiungi connettore',
    configureRouting: 'Configura routing',
    serviceStatus: 'Stato del servizio',
    checkingHealth: 'Verifica integrità del servizio...',
    healthUnreachable:
      "Impossibile raggiungere l'aggregatore di integrità. Verifica che il servizio sia in esecuzione.",
    servicesOperational: '{up} di {total} servizi operativi',
    responseTimeMs: '{ms}ms',
    unreachable: 'irraggiungibile',
    newChatLabel: 'Nuova chat',
    newChatDesc: 'Avvia una nuova conversazione',
    manageConnectorsLabel: 'Gestisci connettori',
    manageConnectorsDesc: 'Configura i connettori dei fornitori di IA',
    routingSettingsLabel: 'Impostazioni di routing',
    routingSettingsDesc: 'Configura come vengono instradate le richieste',
  },
  catalog: {
    title: 'Catalogo modelli',
    description: 'Sfoglia e scarica modelli IA',
    searchPlaceholder: 'Cerca modelli...',
    allCategories: 'Tutti',
    coding: 'Programmazione',
    fileGeneration: 'Generazione file',
    imageGeneration: 'Generazione immagini',
    routing: 'Routing',
    reasoning: 'Ragionamento',
    thinking: 'Pensiero e ricerca',
    download: 'Scarica',
    downloading: 'Download in corso...',
    installed: 'Installato',
    failed: 'Fallito',
    unavailable: 'Non disponibile',
    cloudOnly: 'Solo cloud',
    cancel: 'Annulla',
    recommended: 'Consigliato',
    noModels: 'Nessun modello trovato',
    activeDownloads: 'Download attivi',
    parameterCount: 'Parametri',
    modelSize: 'Dimensione',
    capabilities: 'Capacità',
    models: 'modelli',
    scrollForMore: 'Scorri per altro',
    allLoaded: 'Tutti i modelli caricati',
    searchBrowserHelpers: 'Helper di ricerca/browser',
    searchBrowserScoreLabel: 'Aiutante',
    searchBrowserScoreTooltip:
      'Idoneità per workflow di helper ricerca e browser (punteggio basato su metadati, 0.00–1.00)',
    cancelDownloadFailed: 'Annullamento del download non riuscito',
    downloadCancelled: 'Download annullato',
    downloadStarted: 'Download avviato',
    downloadStartFailed: 'Avvio del download non riuscito',
    modelRemoved: 'Modello rimosso',
    modelRemoveFailed: 'Rimozione del modello non riuscita',
  },
  replay: {
    title: 'Laboratorio replay del routing',
    description:
      'Riesegui decisioni di routing storiche rispetto al router attuale e confronta i risultati',
    runReplay: 'Esegui replay',
    running: 'Replay in corso...',
    totalReplayed: 'Totale rieseguiti',
    changed: 'Modificati',
    unchanged: 'Invariati',
    oldRoute: 'Rotta originale',
    newRoute: 'Nuova rotta',
    improvement: 'Miglioramento',
    noResults: 'Nessun risultato di replay',
    confidenceOld: 'Fiducia media (Vecchia)',
    confidenceNew: 'Fiducia media (Nuova)',
    replayComplete: 'Replay del routing completato',
    replayFailed: 'Esecuzione replay non riuscita',
    saveRun: 'Salva esecuzione',
    runName: 'Nome esecuzione',
    runNamePlaceholder: 'es. baseline-2026-04',
    threadIdFilter: 'ID conversazione',
    threadIdPlaceholder: 'Filtra per conversazione...',
    startDate: 'Data inizio',
    endDate: 'Data fine',
    suspicious: 'Sospetti',
    avgImprovement: 'Miglioramento medio',
    needsReview: 'Richiede revisione',
    noSuspiciousCases: 'Nessun caso sospetto rilevato',
    noSuspiciousCasesDesc: 'Tutti i risultati del replay sembrano puliti',
    confirmedRegression: 'Regressione confermata',
    markConfirmedRegression: 'Contrassegna come regressione',
    caseReviewed: 'Caso revisionato con successo',
    caseReviewFailed: 'Revisione caso non riuscita',
    copyBundle: 'Copia bundle di esportazione',
    bundleCopied: 'Bundle di esportazione copiato negli appunti',
    exportFailed: 'Esportazione bundle non riuscita',
    runsHistory: 'Cronologia esecuzioni',
    noRunsHistory: 'Nessuna esecuzione salvata',
    noRunsHistoryDesc: 'Abilita "Salva esecuzione" durante un replay per tracciare la cronologia',
    runResults: 'Risultati',
    correct_improvement: 'Miglioramento',
    bad_regression: 'Regressione',
    cost_win: 'Vittoria costi',
    quality_win: 'Vittoria qualità',
    uncertain: 'Incerto',
    badRegression: 'Regressioni',
    noOriginalContent: 'Nessun prompt originale memorizzato',
    promoteCase: 'Promuovi a test',
    promoted: 'Caso promosso a fixture di test',
    promoteFailed: 'Promozione caso non riuscita',
    compareRuns: 'Confronta esecuzioni',
    compareRunsTitle: 'Confronto esecuzioni',
    compareRunsDesc: 'Seleziona due esecuzioni da confrontare',
    selectRunToCompare: "Seleziona un'esecuzione da confrontare",
    runA: 'Esecuzione A',
    runB: 'Esecuzione B',
    improved: 'Migliorato',
    regressed: 'Regredito',
    suspiciousReasons: {
      empty_message_content: 'Prompt originale mancante',
      large_confidence_drop: 'Grande calo di fiducia',
      large_cost_increase: 'Grande aumento di costo',
      route_changed_with_negative_improvement: 'Rotta cambiata con impatto negativo',
    },
  },
  compare: {
    title: 'Confronta modelli',
    description:
      'Seleziona 2-5 modelli e inserisci un prompt per confrontare le risposte fianco a fianco',
    selectModels: 'Seleziona modelli',
    minModels: 'Seleziona almeno {min} modelli',
    maxModels: 'Massimo {max} modelli consentiti',
    sendPrompt: 'Confronta modelli',
    comparing: 'Confronto in corso...',
    compareFailed: 'Confronto modelli non riuscito',
    results: 'Risultati',
    fastest: 'Il più veloce',
    completed: 'Completato',
    failed: 'Fallito',
    latency: 'Latenza',
    tokens: 'Token',
    noResults: 'Nessun risultato di confronto',
    modelCount: '{count} modelli',
    expand: 'Espandi',
    bestResponse: 'Migliore risposta',
    viewInThread: 'Visualizza nella conversazione',
    totalTokens: 'Token totali',
    avgLatencyLabel: 'Latenza media',
    completedCount: '{count} completati',
    failedCount: '{count} falliti',
    timeoutCount: '{count} scaduti',
    modelsCompared: 'Modelli confrontati',
    summaryTitle: 'Riepilogo confronto',
    showMore: 'Mostra altro',
    showLess: 'Mostra meno',
    timeout: 'Scaduto',
    noContent: 'Nessun contenuto disponibile',
    noJudge: 'Nessun giudice',
    judgeAwaiting: 'In attesa del giudice',
    judgeSkipped: 'Giudice saltato',
    judgeFailed: 'Giudice fallito',
    judgeUnavailable: 'Giudice non disponibile',
    judgeVerified: 'Verificato',
    judgeRevised: 'Revisionato',
    judgeEscalated: 'Escalato',
    modelsProcessing: 'Elaborazione dei modelli...',
    processingMessage: 'Elaborazione del tuo messaggio...',
  },
  consensus: {
    title: 'Modalità consenso',
    description: "Seleziona 2-5 modelli e lascia che l'IA sintetizzi una risposta consensuale",
    selectModels: 'Seleziona modelli',
    minModels: 'Seleziona almeno {min} modelli',
    maxModels: 'Massimo {max} modelli consentiti',
    sendPrompt: 'Esegui consenso',
    running: 'Consenso in corso...',
    sendFailed: 'Avvio consenso non riuscito',
    synthesizing: 'Sintesi delle risposte...',
    synthesisReady: 'Sintesi pronta',
    synthesisTitle: 'Sintesi del consenso',
    agreementScore: 'Punteggio accordo',
    confidenceLevel: 'Fiducia',
    agreements: 'Accordi',
    disagreements: 'Disaccordi',
    contradictions: 'Contraddizioni',
    synthesisRationale: 'Motivazione',
    modelBreakdown: 'Dettaglio modelli',
    completed: 'Completato',
    failed: 'Fallito',
    timeout: 'Scaduto',
    contentLength: 'Lunghezza contenuto',
    noResults: 'Nessun risultato di consenso',
    viewInThread: 'Visualizza nella conversazione',
    high: 'Alta',
    medium: 'Media',
    low: 'Bassa',
    modelsSelected: '{count} modelli selezionati',
    synthesisRationaleLabel: 'Motivazione della sintesi',
  },
  escalation: {
    title: 'Catena di escalation',
    description:
      "Definisci una catena di modelli — il più economico primo, il più potente ultimo. L'IA esegue l'escalation automaticamente quando la qualità è bassa",
    chainBuilder: 'Costruisci la tua catena',
    addModel: 'Aggiungi modello',
    removeModel: 'Rimuovi',
    moveUp: 'Sposta su',
    moveDown: 'Sposta giù',
    minSteps: 'Aggiungi almeno {min} modelli',
    maxSteps: 'Massimo {max} modelli nella catena',
    sendPrompt: 'Esegui catena',
    running: 'Esecuzione catena...',
    sendFailed: 'Avvio catena di escalation non riuscito',
    synthesizing: 'Escalation in corso...',
    synthesisReady: 'Risultato pronto',
    resultTitle: 'Risultato escalation',
    stepUsed: 'Passo utilizzato',
    totalSteps: 'Passi totali',
    escalated: 'Escalato',
    notEscalated: 'Nessuna escalation necessaria',
    status: 'Stato',
    statusSingleStep: 'Risolto al primo passo',
    statusResolved: 'Risolto dopo escalation',
    statusExhausted: 'Tutti i passi esauriti',
    qualityScore: 'Punteggio qualità',
    latency: 'Latenza',
    step: 'Passo',
    passed: 'Superato',
    failed: 'Fallito',
    finalModel: 'Modello finale',
    noResults: 'Nessun risultato di escalation',
    viewInThread: 'Visualizza nella conversazione',
    stepsTimeline: 'Timeline dei passi',
    finalAnswer: 'Risposta finale',
  },
  repair: {
    title: 'Laboratorio di riparazione risposte',
    description:
      'Ripara risposte malformate, superficiali, incomplete o allucinate senza ricominciare.',
    contentLabel: 'Risposta da riparare',
    contentPlaceholder: 'Incolla la risposta da riparare...',
    repairTypes: 'Tipi di riparazione',
    schemaLabel: 'Schema',
    schemaDesc: 'Corregge JSON malformato, struttura errata o problemi di formato dei dati.',
    formatLabel: 'Formato',
    formatDesc:
      'Corregge formattazione markdown, intestazioni, elenchi, blocchi di codice e struttura generale.',
    completenessLabel: 'Completezza',
    completenessDesc: 'Espande sezioni superficiali o incomplete, aggiunge punti chiave mancanti.',
    factualityLabel: 'Fattualità',
    factualityDesc: 'Identifica e corregge errori fattuali, allucinazioni o affermazioni errate.',
    sendPrompt: 'Ripara risposta',
    running: 'Riparazione...',
    sendFailed: 'Avvio riparazione non riuscito. Riprova.',
    synthesizing: 'Riparazione in corso...',
    resultTitle: 'Risposta riparata',
    noResults: 'Nessun risultato di riparazione',
    viewInThread: 'Visualizza nella conversazione',
    finalAnswer: 'Risposta finale',
    provider: 'Fornitore',
    model: 'Modello',
  },
  decompose: {
    title: 'Router di decomposizione attività',
    description:
      'Dividi attività complesse in sotto-attività, esegui ciascuna con il miglior modello, poi sintetizza i risultati.',
    contentLabel: 'Attività complessa',
    contentPlaceholder:
      'Descrivi un\'attività complessa da decomporre, es. "Ricerca sui trend IA nel 2025, crea un piano d\'azione in 3 punti e scrivi un riepilogo esecutivo."',
    maxSubTasks: 'Sotto-attività massime',
    sendPrompt: 'Decomponi ed esegui',
    running: 'Decomposizione…',
    synthesizing: 'Esecuzione sotto-attività e sintesi dei risultati…',
    resultTitle: 'Risultato sintetizzato',
    viewInThread: 'Visualizza nella conversazione',
    subTasksHeader: 'Risultati sotto-attività',
    subTaskResult: 'Risultato',
    category: 'Categoria',
    model: 'Modello',
    latencyMs: 'Latenza',
    noResults: 'Nessun risultato di decomposizione',
    sendFailed: 'Decomposizione attività non riuscita. Riprova.',
  },
  bestOfN: {
    title: 'Generazione candidati Best-of-N',
    description:
      'Genera più risposte candidate e seleziona automaticamente quella di qualità più alta.',
    contentLabel: 'Prompt',
    contentPlaceholder: 'Inserisci il prompt per generare più candidati…',
    nCandidates: 'Candidati (N)',
    sendPrompt: 'Genera Best-of-N',
    running: 'Generazione candidati…',
    synthesizing: 'Valutazione e selezione del miglior candidato…',
    resultTitle: 'Risultato miglior candidato',
    viewInThread: 'Visualizza nella conversazione',
    candidatesHeader: 'Tutti i candidati',
    rank: 'Posizione',
    score: 'Punteggio',
    model: 'Modello',
    latency: 'Latenza',
    noResults: 'Nessun candidato generato',
    sendFailed: 'Generazione candidati non riuscita. Riprova.',
  },
  recovery: {
    title: 'Ripristino errori di routing',
    description:
      'Monitora gli errori dei provider e gli eventi di recupero automatico tramite fallback.',
    totalDecisions: 'Decisioni totali',
    totalFallbacks: 'Eventi di fallback',
    fallbackRate: 'Tasso di fallback',
    providerTable: 'Dettaglio errori per provider',
    provider: 'Fornitore',
    fallbackCount: 'Fallback',
    rate: 'Tasso',
    recentFallbacks: 'Eventi di fallback recenti',
    originalProvider: 'Originale',
    originalModel: 'Modello',
    fallbackProvider: 'Riserva',
    fallbackModel: 'Modello fallback',
    mode: 'Modalità',
    time: 'Orario',
    noFallbacks: 'Nessun evento di fallback',
    noData: 'Nessuna decisione di routing registrata.',
    loading: 'Caricamento dati di recupero…',
    error: 'Caricamento statistiche di recupero non riuscito.',
  },
  verify: {
    title: 'Verificatore',
    description: 'Genera e verifica una risposta prima di inviarla',
    contentLabel: 'Il tuo prompt',
    contentPlaceholder: 'Inserisci la tua domanda o attività...',
    maxRevisionsLabel: 'Revisioni massime',
    sendPrompt: 'Verifica e invia',
    running: 'Verifica...',
    synthesizing: 'Generazione e verifica della risposta...',
    noResults: 'Nessuna risposta verificata',
    sendFailed: 'Verifica non riuscita. Riprova.',
    verified: 'Verificata',
    verifierScore: 'Punteggio qualità',
    revisions: 'Revisioni',
    issues: 'Problemi',
    viewInThread: 'Visualizza nella conversazione',
  },
  adaptiveLearning: {
    title: 'Apprendimento adattivo del routing',
    description: 'Insight derivati dalla cronologia di routing per migliorare le decisioni future',
    loading: 'Caricamento insight...',
    error: 'Caricamento insight non riuscito',
    windowDays: 'Finestra',
    days: 'giorni',
    totalDecisions: 'Decisioni totali',
    avgConfidence: 'Fiducia media',
    topReasonTags: 'Principali tag motivo',
    providerTable: 'Prestazioni provider',
    modeBreakdown: 'Dettaglio modalità',
    noData: 'Nessuna decisione di routing in questa finestra',
    provider: 'Fornitore',
    fallbackRate: 'Tasso di fallback',
    totalCalls: 'Chiamate totali',
    topModes: 'Principali modalità',
    mode: 'Modalità',
    count: 'Conteggio',
    percentage: 'Percentuale',
  },
  pipeline: {
    title: 'Pipeline multi-stadio',
    description: 'Instrada la richiesta attraverso una catena di stadi specializzati',
    contentLabel: 'La tua richiesta',
    contentPlaceholder: 'Descrivi ciò di cui hai bisogno...',
    templateLabel: 'Template pipeline',
    templateAnalyze: 'Analizza → Ragiona → Formatta',
    templateCode: 'Codice → Debug → Revisione',
    templateDraft: 'Bozza → Critica → Revisione',
    sendPrompt: 'Esegui pipeline',
    running: 'Pipeline in corso...',
    synthesizing: 'Elaborazione stadi...',
    noResults: 'Nessun risultato della pipeline',
    sendFailed: 'Pipeline non riuscita. Riprova.',
    stageBreakdown: 'Dettaglio stadi',
    stage: 'Stadio',
    model: 'Modello',
    latency: 'Latenza',
    viewInThread: 'Visualizza nella conversazione',
  },
  costEnsemble: {
    title: 'Ensemble basato sui costi',
    description:
      "Esecuzione intelligente: usa uno, due o tre modelli in base alla complessità dell'attività",
    contentLabel: 'Il tuo prompt',
    contentPlaceholder: 'Inserisci la tua domanda o attività...',
    sendPrompt: 'Analizza e invia',
    running: 'Analisi dei costi...',
    synthesizing: 'Selezione ensemble ottimale...',
    noResults: 'Nessun risultato',
    sendFailed: 'Ensemble di costo non riuscito. Riprova.',
    tier: 'Livello',
    tierSingle: 'Singolo',
    tierDuo: 'Duo',
    tierTrio: 'Trio',
    complexity: 'Complessità',
    risk: 'Rischio',
    ambiguity: 'Ambiguità',
    reasoning: 'Ragionamento',
    candidates: 'Candidati',
    viewInThread: 'Visualizza nella conversazione',
  },
  rolePack: {
    title: 'Ensemble basato sui ruoli',
    description: 'Invia la tua richiesta a un team di ruoli IA specializzati',
    contentLabel: 'La tua richiesta',
    contentPlaceholder: 'Descrivi ciò di cui hai bisogno...',
    packLabel: 'Seleziona team',
    packCoding: 'Team di programmazione',
    packResearch: 'Team di ricerca',
    packMarketing: 'Team marketing',
    packLegal: 'Team legale',
    sendPrompt: 'Esegui team',
    running: 'Elaborazione team...',
    synthesizing: 'Esecuzione di tutti i ruoli in parallelo...',
    noResults: 'Nessun risultato del team',
    sendFailed: 'Esecuzione team non riuscita. Riprova.',
    teamBreakdown: 'Risultati del team',
    role: 'Ruolo',
    model: 'Modello',
    latency: 'Latenza',
    viewInThread: 'Visualizza nella conversazione',
  },
  advancedModelSelector: {
    label: 'Modello di esecuzione',
    auto: 'Auto (scegli il miglior modello locale)',
    loading: 'Caricamento modelli...',
    description:
      'Scegli Auto o un modello Ollama specifico installato localmente per questo laboratorio.',
    empty: 'Nessun modello di testo locale disponibile per questo laboratorio.',
  },
  workspaceConnectors: {
    title: "Connettori dell'area di lavoro",
    description: 'Collega i tuoi strumenti di lavoro — GitHub, Slack, Jira, Google Drive e altri.',
    createConnector: 'Crea connettore',
    editConnector: 'Modifica connettore',
    deleteConnector: 'Elimina connettore',
    testHealth: 'Testa integrità',
    triggerSync: 'Sincronizza ora',
    name: 'Nome',
    nameHelp: 'Un nome visualizzato per questo connettore',
    provider: 'Fornitore',
    providerHelp: 'Lo strumento di lavoro da collegare',
    permissionLevel: 'Livello di permesso',
    permissionLevelHelp: 'Il livello di accesso concesso a questo connettore',
    status: 'Stato',
    connected: 'Connesso',
    degraded: 'Degradato',
    disconnected: 'Disconnesso',
    pendingAuth: 'Autenticazione in attesa',
    unknown: 'Sconosciuto',
    noConnectors: 'Nessun connettore',
    noConnectorsDesc: 'Collega il tuo primo strumento di lavoro per iniziare.',
    noConnectorsGuidance:
      'Le connessioni partono dalle Configurazioni App. Registra lì la tua app OAuth, poi clicca Connetti per collegarla qui.',
    overviewDescription:
      'I tuoi strumenti di lavoro connessi. Aggiungine di nuovi dalle Configurazioni App.',
    manageAppConfigs: 'Gestisci configurazioni app',
    goToAppConfigs: 'Vai alle configurazioni app',
    connectorCreated: 'Connettore creato con successo.',
    connectorCreateFailed: 'Creazione connettore non riuscita.',
    connectorDeleted: 'Connettore eliminato con successo.',
    connectorDeleteFailed: 'Eliminazione connettore non riuscita.',
    healthCheckStarted: 'Controllo integrità avviato.',
    healthCheckFailed: 'Controllo integrità non riuscito.',
    syncStarted: 'Sincronizzazione avviata.',
    syncFailed: 'Avvio sincronizzazione non riuscito.',
    loadFailed: 'Caricamento connettori non riuscito.',
    loadingConnectors: 'Caricamento connettori...',
    addConnector: 'Aggiungi connettore',
    connectViaOAuth: 'Connetti tramite OAuth',
    lastSync: 'Ultima sincronizzazione',
    never: 'Mai',
    syncRuns: 'Esecuzioni di sincronizzazione',
    healthEvents: 'Eventi integrità',
    enabled: 'Abilitato',
    disabled: 'Disabilitato',
    deleteConfirm:
      'Sei sicuro di voler eliminare questo connettore? Questa azione non può essere annullata.',
    namePlaceholder: 'es., GitHub Workspace',
    paused: 'In pausa',
  },
  workspaceObjects: {
    title: 'Oggetti sincronizzati',
    description: 'Oggetti sincronizzati dai tuoi strumenti di lavoro connessi.',
    loading: 'Caricamento oggetti...',
    loadFailed: 'Caricamento oggetti non riuscito.',
    noObjects: 'Nessun oggetto sincronizzato.',
    noObjectsDesc:
      "Avvia una sincronizzazione su un connettore per importare oggetti dell'area di lavoro.",
    selectConnector: 'Seleziona un connettore per visualizzare gli oggetti sincronizzati.',
    source: 'Origine',
    viewObject: 'Visualizza oggetto',
  },
  workspaceSearch: {
    title: "Ricerca nell'area di lavoro",
    description: "Cerca tra tutti gli oggetti sincronizzati dell'area di lavoro.",
    placeholder: 'Cerca documenti, ticket, messaggi...',
    searching: 'Ricerca in corso...',
    noResults: 'Nessun risultato trovato.',
    noResultsDesc: 'Prova un termine di ricerca diverso o sincronizza più connettori.',
    searchFailed: 'Ricerca non riuscita. Riprova.',
    resultCount: '{count} risultato/i',
    viewSource: 'Visualizza origine',
    score: 'Rilevanza',
  },
  workspaceObjectDetail: {
    title: 'Dettaglio oggetto',
    description:
      "Ispeziona un oggetto sincronizzato dell'area di lavoro e aggiornalo dal suo provider.",
    loadFailed: 'Caricamento oggetto non riuscito.',
    refresh: 'Aggiorna dal provider',
    refreshing: 'Aggiornamento...',
    refreshFailed: 'Aggiornamento non riuscito.',
    content: 'Contenuto',
    metadata: 'Metadati',
    externalCreated: 'Creato a monte',
    externalUpdated: 'Aggiornato a monte',
    openInProvider: 'Apri nel provider',
    author: 'Autore: {author}',
  },
  connectorDetail: {
    title: 'Dettaglio connettore',
    description:
      'Cronologia sincronizzazione, eventi integrità e oggetti sincronizzati di recente per questo connettore.',
    loadFailed: 'Caricamento connettore non riuscito.',
    never: 'mai',
    lastSync: 'Ultima sincronizzazione: {value}',
    syncRunsCount: '{count} esecuzioni di sincronizzazione',
    objectsCount: '{count} oggetti',
    recentObjects: 'Oggetti recenti',
    noObjects:
      'Nessun oggetto sincronizzato. Avvia una sincronizzazione per estrarre oggetti dal provider.',
    syncHistory: 'Cronologia sincronizzazione',
    noSyncRuns: 'Nessuna esecuzione di sincronizzazione.',
    syncRunLine: '{synced} sincronizzati · {failed} falliti',
    healthHistory: 'Cronologia integrità',
    noHealthEvents: 'Nessun controllo di integrità registrato.',
    healthOk: 'OK',
    activating:
      "Attivazione di questo connettore — importazione del primo set di oggetti dal provider. Puoi continuare a usare Claw durante l'esecuzione.",
    askAi: "Chiedi all'IA",
    askAiTitle: 'Informazioni su {name}',
    reconnect: 'Riconnetti',
    reconnectTitle: 'Questo connettore è disconnesso',
    reconnectDescription:
      "Le credenziali memorizzate non sono più valide. Ri-autorizza dalle Configurazioni App per ripristinare l'accesso.",
  },
  workspaceSyncRuns: {
    title: 'Esecuzioni di sincronizzazione',
    description: 'Cronologia recente di sincronizzazione per questo connettore.',
    loading: 'Caricamento esecuzioni...',
    loadFailed: 'Caricamento esecuzioni non riuscito.',
    empty: 'Nessuna esecuzione di sincronizzazione.',
    started: 'Avviato',
    status: 'Stato',
    type: 'Tipo',
    delta: 'Delta',
    found: 'Trovati',
    synced: 'Sincronizzati',
    failed: 'Falliti',
    duration: 'Durata',
  },
  workspaceSync: {
    dashboard: {
      title: 'Integrità sincronizzazione area di lavoro',
      description:
        'Vista in tempo reale dei job di sincronizzazione pianificati per ogni connettore.',
      error_title: 'Impossibile caricare la dashboard di sincronizzazione',
      empty_title: 'Nessun connettore',
      empty_description:
        'Una volta connesso uno strumento di lavoro, la sua integrità di sincronizzazione apparirà qui.',
      scheduler_title: 'Pianificatore',
      scheduler_enabled: 'Scheduler abilitato',
      last_tick: 'Ultimo tick',
      active_runs: 'Esecuzioni attive',
      dlq_backlog: 'Arretrato DLQ',
      connectors_title: 'Connettori',
      col: {
        connector: 'Connettore',
        freshness: 'Aggiornamento',
        last_sync: 'Ultima sincronizzazione',
        cadence: 'Cadenza',
        success_rate: 'Tasso di successo 24h',
        avg_duration: 'Durata media',
        status: 'Stato',
      },
    },
    band: {
      fresh: 'Aggiornato',
      slow: 'Lento',
      stale: 'Obsoleto',
    },
    cadence: {
      label: 'Sincronizza ogni',
      '1m': '1 minuto',
      '5m': '5 minuti',
      '10m': '10 minuti',
      '30m': '30 minuti',
      '1h': '1 ora',
      save: 'Salva cadenza',
      saving: 'Salvataggio...',
      saved: 'Cadenza aggiornata',
    },
    pause: {
      pause: 'Sospendi sincronizzazione',
      resume: 'Riprendi sincronizzazione',
      paused_label: 'Sincronizzazione sospesa',
      reason_placeholder: 'Motivo (facoltativo)',
    },
    chip: {
      synced_ago: 'Sincronizzato {ago} fa',
      stale: 'Obsoleto',
      paused: 'Sospeso',
    },
  },
  aiActions: {
    dialog: {
      title: 'Esegui azione IA · {action}',
      description:
        'Scegli un modello e genera. AUTO lascia che sia il router a scegliere in base al tipo di azione e classe di privacy.',
      model_label: 'Modello',
      generate: 'Genera',
      regenerate: 'Rigenera',
      resolving: 'Generazione…',
      cancel: 'Annulla',
      close: 'Chiudi',
      copy: 'Copia',
      copied: 'Copiato',
      generated_by: 'Generato da {model}',
      resolution_mode: 'Modalità: {mode}',
      resolution_primary: 'Primario: {model}',
      resolution_fallback: 'Modelli di fallback in coda: {count}',
    },
  },
  approvals: {
    page: {
      title: 'Centro approvazioni',
      description:
        "Rivedi e approva le azioni pendenti create dall'IA nei tuoi connettori dell'area di lavoro.",
      empty_title: 'Nessuna approvazione in attesa',
      empty_description:
        "Quando l'IA crea una bozza di azione per tuo conto, apparirà qui per la revisione.",
      error_title: 'Impossibile caricare le approvazioni',
      error_description:
        "Si è verificato un errore durante il caricamento dell'elenco delle approvazioni. Riprova.",
    },
    card: {
      approve: 'Approva',
      reject: 'Rifiuta',
      edit: 'Modifica',
      edited: 'Modificato · v{version}',
      source_stale: 'Origine obsoleta',
      attribution_auto: 'AUTO · {model}',
      attribution_manual: 'Manuale · {model}',
    },
    bulk: {
      selected: '{count} selezionati',
      approve_all: 'Approva tutti i selezionati',
      clear: 'Cancella selezione',
    },
    edit: {
      title: 'Modifica bozza',
      description:
        "Modifica il payload dell'azione. La bozza originale è conservata nella cronologia.",
      payload_label: 'Payload (JSON)',
      reason_placeholder: 'Motivo della modifica (facoltativo)',
      save: 'Salva e riapprova dopo',
      cancel: 'Annulla',
      invalid_json: 'Il payload deve essere JSON valido',
    },
    reject: {
      title: 'Rifiuta azione',
      description: 'Descrivi facoltativamente il motivo del rifiuto.',
      reason_placeholder: 'Motivo (facoltativo)',
      confirm: 'Rifiuta',
      cancel: 'Annulla',
    },
  },
  automationPreferences: {
    page: {
      title: 'Preferenze di automazione',
      description:
        'Controlli per tipo di azione. Vince il più restrittivo: la politica admin è la base; le tue preferenze possono solo restringerla.',
      loading: 'Caricamento preferenze…',
      error: 'Impossibile caricare le preferenze. Riprovare.',
      empty: 'Nessun tipo di azione disponibile.',
    },
    row: {
      enabled: 'Abilitato',
      disabled: 'Disabilitato',
      toggleAria: 'Attiva/disattiva automazione per {kind}',
      autoApproveBelowRisk: 'Auto-approva quando il rischio è ≤ alla soglia',
      autoApproveDisabled: 'Auto-approvazione disabilitata (sempre in coda di revisione)',
      autoApproveAt: 'Auto-approva con rischio ≤ {score}',
      perDayBudget: 'Limite giornaliero',
      perDayBudgetPlaceholder: 'unlimited',
      clear: 'Cancella',
    },
  },
  connectorGrants: {
    title: 'Condivisione',
    description:
      'Condividi questo connettore con altri utenti. Il proprietario ha sempre accesso completo; i destinatari vedono il livello di accesso scelto.',
    loading: 'Caricamento autorizzazioni…',
    error: 'Impossibile caricare le autorizzazioni.',
    empty: 'Ancora nessuna autorizzazione. Questo connettore è accessibile solo a te.',
    granteeUserIdLabel: 'ID utente destinatario',
    granteeUserIdPlaceholder: 'cmnkgdc2c00009w92riuztmmd',
    accessLevelLabel: 'Livello di accesso',
    grant: 'Concedi accesso',
    granting: 'Concessione…',
    revoke: 'Revoca',
    revoking: 'Revoca in corso…',
    grantedBy: 'concesso da',
    levelReadOnly: 'Sola lettura',
    levelAiActions: 'Azioni IA',
    levelFull: 'Completo',
  },
  emailSignatures: {
    page: {
      title: 'Firme e-mail',
      description:
        "Gestisci le firme aggiunte alle e-mail redatte dall'IA. Imposta una come predefinita per usarla automaticamente.",
      loading: 'Caricamento firme…',
      error: 'Impossibile caricare le firme. Aggiorna la pagina.',
      empty: 'Ancora nessuna firma. Creane una per iniziare.',
      create: 'Nuova firma',
      edit: 'Modifica',
      delete: 'Elimina',
      deleting: 'Eliminazione…',
      defaultBadge: 'Predefinita',
    },
    dialog: {
      createTitle: 'Crea firma',
      editTitle: 'Modifica firma',
      nameLabel: 'Nome',
      namePlaceholder: 'Firma di lavoro',
      bodyLabel: 'Contenuto',
      bodyPlaceholder: 'Cordiali saluti,\nAlice\nVP Ingegneria · Example Inc.',
      defaultLabel: 'Usa come predefinita',
      save: 'Salva',
      saving: 'Salvataggio…',
      cancel: 'Annulla',
    },
  },
  research: {
    toggle: {
      placeholder: 'Ricerca',
      autoProvider: 'Provider automatico',
      noProviders: 'Nessun provider configurato',
    },
    modes: {
      off: 'Nessuna ricerca',
      searchOnly: 'Ricerca web',
      searchThenFetch: 'Ricerca + recupero',
      searchFetchExtract: 'Ricerca + estrazione',
    },
    providers: {
      title: 'Provider di ricerca',
      description: 'Provider dinamici di ricerca, recupero ed evidenza.',
      createButton: 'Nuovo provider',
      createTitle: 'Aggiungi provider di ricerca',
      createDescription: 'Registra un provider Tavily / SearXNG / Ollama Web.',
      create: 'Crea',
      creating: 'Creazione...',
      kind: 'Tipo',
      name: 'Nome',
      baseUrl: 'URL base',
      apiKey: 'API key (memorizzata crittografata)',
      test: 'Testa',
      secretStored: 'Segreto memorizzato',
      healthy: 'Integro',
      unhealthy: 'Non integro',
      loadFailed: 'Caricamento provider non riuscito.',
      emptyTitle: 'Nessun provider di ricerca',
      emptyDescription:
        'Aggiungi un provider per iniziare a basare la chat su evidenze in tempo reale.',
      col: {
        name: 'Nome',
        kind: 'Tipo',
        baseUrl: 'URL base',
        status: 'Stato',
        secret: 'Segreto',
        actions: 'Azioni',
      },
      namePlaceholder: 'es., Tavily Production',
    },
    runs: {
      title: 'Esecuzioni di ricerca',
      description: 'Cronologia delle ricerche avviate dalla chat.',
      loadFailed: 'Caricamento esecuzioni non riuscito.',
      emptyTitle: 'Nessuna esecuzione di ricerca',
      emptyDescription: 'Attiva la ricerca nella chat per produrre evidenze.',
    },
    evidence: {
      title: 'Evidenze di ricerca in tempo reale',
      empty: 'Nessun elemento di evidenza restituito.',
      noTitle: '(senza titolo)',
      confidence: 'Fiducia',
      warnings: 'Avvisi',
      requestedModel: 'Modello richiesto',
      toolsUsed: 'Strumenti',
    },
    results: {
      open: 'Risultati di ricerca',
      title: 'Risultati di ricerca',
      description:
        'Ispeziona la scelta del provider, la catena di fallback, il bundle di evidenze e la traccia di ricerca.',
      provider: 'Fornitore',
      selectionMode: 'Selezione',
      selectionAuto: 'Auto',
      selectionExplicit: 'Esplicita',
      fallbackUsed: 'Fallback utilizzato',
      query: 'Query di ricerca',
      evidenceCount: 'Elementi di evidenza',
      attempts: 'Tentativi provider',
      trace: 'Traccia di ricerca',
    },
  },
  workspaceActions: {
    title: 'Azioni area di lavoro',
    description: 'Rivedi e approva le azioni di scrittura automatiche prima che vengano eseguite.',
    approve: 'Approva',
    reject: 'Rifiuta',
    cancel: 'Annulla',
    rejectTitle: 'Rifiuta azione',
    rejectDesc: 'Fornisci un motivo facoltativo per il rifiuto.',
    rejectReasonPlaceholder: 'Motivo (facoltativo)',
    confirmReject: 'Conferma rifiuto',
    connector: 'Connettore',
    rejectionReason: 'Motivo del rifiuto',
    pendingApproval: 'In attesa di approvazione',
    executing: 'In esecuzione',
    executed: 'Eseguita',
    failed: 'Fallita',
    rejected: 'Rifiutata',
    noActions: 'Nessuna azione trovata',
    noActionsDesc:
      "Le azioni di scrittura automatiche create dall'IA appariranno qui per la revisione.",
    loadFailed: 'Caricamento azioni non riuscito.',
    viewPayload: 'Visualizza payload',
    requestedAt: 'richiesta {value}',
    reviewedAt: 'revisionata {value}',
    executedAt: 'eseguita {value}',
    approved: 'Approvato',
    expired: 'Scaduto',
    edited: 'Modificato',
  },
  workspaceProviders: {
    catalog: {
      title: 'Catalogo provider area di lavoro',
      description: "Sfoglia le integrazioni supportate per l'area di lavoro.",
      loadFailed: 'Caricamento catalogo provider non riuscito.',
      emptyTitle: 'Nessun provider disponibile',
      emptyDescription: 'Nessun provider di area di lavoro è ancora registrato.',
      available: 'Disponibile',
      comingSoon: 'Prossimamente',
      objectTypes: 'tipi di oggetto',
      docs: 'Documentazione',
    },
    appConfigs: {
      title: 'Configurazioni app provider',
      description: "Registra app OAuth e credenziali per i provider dell'area di lavoro.",
      createButton: 'Nuova configurazione',
      createTitle: 'Crea configurazione app provider',
      createDescription: 'Registra credenziali OAuth o un token di accesso personale.',
      create: 'Crea',
      creating: 'Creazione...',
      editTitle: 'Modifica configurazione app del provider',
      editDescription:
        'Aggiorna i valori di configurazione e i metadati di questo provider. Lascia vuoti i campi segreti per mantenerli invariati.',
      editSecretHint:
        'I campi segreti lasciati vuoti manterranno il valore precedentemente memorizzato. Compilali solo per ruotare le credenziali.',
      save: 'Salva',
      saving: 'Salvataggio…',
      provider: 'Fornitore',
      providerPlaceholder: 'Seleziona un provider...',
      name: 'Nome',
      namePlaceholder: 'es. App GitHub produzione',
      authMode: 'Modalità di autenticazione',
      descriptionLabel: 'Descrizione',
      descriptionPlaceholder: 'Note facoltative su questa configurazione',
      test: 'Testa',
      connect: 'Connetti',
      testResult: 'Risultato test: {status} ({latency}ms)',
      secretStored: 'Segreto memorizzato',
      emptyTitle: 'Nessuna configurazione provider',
      emptyDescription: 'Aggiungi le tue prime credenziali provider per abilitare i connettori.',
      loadFailed: 'Caricamento configurazioni app non riuscito.',
      fields: {
        secret: '(segreto)',
      },
      columns: {
        name: 'Nome',
        provider: 'Fornitore',
        authMode: 'Autenticazione',
        status: 'Stato',
        secret: 'Segreto',
        lastValidated: 'Ultima convalida',
        actions: 'Azioni',
      },
      errors: {
        nameRequired: 'Il nome è obbligatorio.',
      },
    },
    oauthCallback: {
      exchangingTitle: 'Completamento connessione...',
      exchangingDescription: 'Scambio del codice di autorizzazione con il provider.',
      successTitle: 'Connesso!',
      successDescription: "Reindirizzamento all'area di lavoro...",
      successDescriptionNamed: '{name} connesso. Reindirizzamento in corso...',
      errorTitle: 'Connessione non riuscita',
      errorUnknown: 'Si è verificato un errore sconosciuto.',
    },
  },
  agent: {
    title: 'Agent desktop',
    description: 'Gestisci gli agent desktop connessi e i comandi del terminale.',
    loading: 'Caricamento sessioni agent...',
    loadFailed: 'Caricamento dati agent non riuscito.',
    noSessions: 'Nessuna sessione attiva',
    noSessionsDesc: "Avvia l'agent desktop Claw sulla tua macchina per connetterti.",
    noCommands: 'Nessun comando',
    noCommandsDesc: 'I comandi del terminale in attesa appariranno qui.',
    noRepos: 'Nessun repository',
    noReposDesc: "I repository rilevati dall'agent appariranno qui.",
    terminal: 'Comandi terminale',
    terminalDesc: "Approva o rifiuta i comandi del terminale richiesti dall'agent.",
    capabilities: 'Coda capacità',
    capabilitiesDesc:
      'Approva o rifiuta le invocazioni di capacità su filesystem, processi, browser e altre classi.',
    capabilityClass: 'Classe',
    capabilityOperation: 'Operazione',
    blastRadius: "Raggio d'impatto",
    reversibility: 'Reversibilità',
    riskScore: 'Punteggio di rischio',
    matchedPolicy: 'Policy corrispondente',
    activity: "Attività dell'agent",
    activityDesc: 'Capacità recenti ed esecuzioni di ricette su tutti i tuoi dispositivi.',
    autoApproved: 'Approvato automaticamente',
    denied: 'Negato',
    rolledBack: 'Ripristinato',
    recipes: 'Ricette',
    recipesDesc: 'Automazioni multi-step che concatenano invocazioni di capacità.',
    noRecipes: 'Ancora nessuna ricetta',
    noRecipesDesc: 'Crea una ricetta per automatizzare flussi multi-step.',
    recipeRunDetail: 'Dettaglio Esecuzione',
    recipeRunDetailDesc: "Avanzamento in tempo reale dell'esecuzione di una ricetta.",
    runStatus: 'Stato Esecuzione',
    cancelRun: 'Annulla Esecuzione',
    steps: 'Passi',
    marketplace: 'Marketplace Ricette',
    marketplaceDesc: 'Sfoglia e installa ricette firmate pubblicate dalla community.',
    noListings: 'Ancora nessun annuncio',
    noListingsDesc: 'Quando gli editori pubblicano ricette firmate, appaiono qui.',
    install: 'Installa',
    activityMemory: 'Memoria Attività',
    activityMemoryDesc: 'Voci di attività sincronizzate sul cloud opt-in dai tuoi dispositivi.',
    noActivity: 'Ancora nessuna voce di attività',
    noActivityDesc:
      'Le attività registrate sui tuoi dispositivi appaiono qui solo dopo opt-in cloud sync.',
    repos: 'Repository',
    reposDesc: 'repository rilevati',
    pendingCommands: 'Comandi in attesa',
    pendingApproval: 'In attesa di approvazione',
    recentCommands: 'Comandi recenti',
    approve: 'Approva',
    reject: 'Rifiuta',
    version: 'Versione',
    commands: 'comandi',
    files: 'file',
    dirty: 'Modificato',
    connect: {
      title: 'Connetti un dispositivo',
      approveDescription: 'Rivedi i dettagli del dispositivo e gli ambiti prima di approvare.',
      scopesLabel: 'Permessi (ambiti)',
      approveButton: 'Approva',
      denyButton: 'Annulla',
      successTitle: 'Dispositivo associato',
      successBody: 'Puoi chiudere questa scheda e tornare al terminale.',
      expiredTitle: 'Link di associazione non valido o scaduto',
      expiredBody: 'Riesegui `claw-agent login` per avviare una nuova associazione.',
      deniedTitle: 'Approvazione annullata',
      deniedBody: 'Nessuna credenziale è stata rilasciata. Puoi chiudere questa scheda.',
      accountMismatchTitle: 'Account errato',
      accountMismatchBody: "Accedi con l'account a cui vuoi associare questo dispositivo.",
      deviceNamePlaceholder: 'es., Il mio MacBook Pro',
    },
    rejectedByUser: "Rifiutato dall'utente",
  },
  discovery: {
    title: 'Scoperta modelli',
    description: 'Scopri, classifica e approva dinamicamente nuovi modelli Ollama.',
    searchPlaceholder: 'Cerca candidati...',
    filter: {
      status: 'Stato',
      all: 'Tutti',
      pending: 'In attesa',
      approved: 'Approvati',
      rejected: 'Rifiutati',
      imported: 'Importati',
      duplicate: 'Duplicati',
    },
    actions: {
      refresh: 'Esegui scoperta',
      dryRun: 'Esecuzione di prova',
      approve: 'Approva',
      reject: 'Rifiuta',
    },
    runs: {
      title: 'Esecuzioni di scoperta recenti',
      empty: 'Nessuna esecuzione di scoperta. Clicca "Esegui scoperta" per iniziare.',
      discovered: 'scoperti',
      imported: 'importati',
      skipped: 'saltati',
    },
    candidates: {
      title: 'Candidati',
      empty: {
        title: 'Nessun candidato',
        description: "Avvia un'esecuzione di scoperta per trovare nuovi modelli.",
      },
    },
    candidate: {
      size: 'Dimensione',
      confidence: 'Fiducia',
    },
    packs: {
      title: 'Pacchetti hardware',
      empty: 'Nessun pacchetto hardware configurato.',
      install: 'Installa pacchetto',
      noModelsYet: 'Nessun modello corrisponde ancora a questo profilo.',
    },
  },
  validation: {
    required: 'Questo campo è obbligatorio',
    invalidEmail: 'Inserisci un indirizzo email valido',
    tooShort: 'Deve avere almeno {min} caratteri',
    tooLong: 'Deve avere al massimo {max} caratteri',
    invalidUrl: 'Inserisci un URL valido',
    fileTooLarge: 'La dimensione del file supera il massimo consentito',
    invalidFileType: 'Questo tipo di file non è supportato',
  },
  toast: {
    loginSuccess: 'Accesso riuscito',
    loginFailed: 'Accesso non riuscito',
    logoutFailed: 'Disconnessione non riuscita',
    sessionExpired: 'Sessione scaduta, accedi di nuovo',
  },
  accessibility: {
    closeSidebar: 'Chiudi barra laterale',
    openSidebar: 'Apri barra laterale',
    toggleSidebar: 'Alterna barra laterale',
    userMenu: 'Menu utente',
    closeDialog: 'Chiudi finestra',
    openMenu: 'Apri menu',
    search: 'Cerca',
    openSearch: 'Apri ricerca',
    closeSearch: 'Chiudi ricerca',
    navigation: 'Navigazione principale',
    notifications: 'Notifiche',
    languageSelector: 'Seleziona lingua',
    themeToggle: 'Alterna tema',
    resizeInput: 'Ridimensiona input messaggio',
  },
  actions: {
    test: 'Testa',
    testing: 'Test in corso...',
    sync: 'Sincronizza',
    syncing: 'Sincronizzazione...',
    archive: 'Archivia',
    unarchive: 'Ripristina',
    pin: 'Fissa',
    unpin: 'Sblocca',
    duplicate: 'Duplica',
    copy: 'Copia',
    copied: 'Copiato',
    copyToClipboard: 'Copia negli appunti',
    view: 'Visualizza',
    viewAll: 'Visualizza tutto',
    viewDetails: 'Visualizza dettagli',
    download: 'Scarica',
    upload: 'Carica',
    refresh: 'Aggiorna',
    reset: 'Reimposta',
    apply: 'Applica',
    approve: 'Approva',
    approving: 'Approvazione...',
    reject: 'Rifiuta',
    rejecting: 'Rifiuto...',
    reload: 'Ricarica',
    reconnect: 'Riconnetti',
    expand: 'Espandi',
    collapse: 'Riduci',
    enable: 'Abilita',
    disable: 'Disabilita',
    remove: 'Rimuovi',
    add: 'Aggiungi',
    select: 'Seleziona',
    selectAll: 'Seleziona tutto',
    deselectAll: 'Deseleziona tutto',
    clear: 'Cancella',
    submit: 'Invia',
    more: 'Altro',
    less: 'Meno',
    showMore: 'Mostra altro',
    showLess: 'Mostra meno',
  },
  logs: {
    allLevels: 'Tutti i livelli',
    allActions: 'Tutte le azioni',
    allSeverities: 'Tutte le severità',
    allMethods: 'Tutti i metodi',
    methodPlaceholder: 'Metodo',
    componentPlaceholder: 'Componente...',
    actionPlaceholder: 'Azione...',
    routePlaceholder: 'Rotta...',
    routeRegexPlaceholder: 'Rotta (regex)...',
    userIdPlaceholder: 'ID utente...',
    messageContainsPlaceholder: 'Messaggio contiene...',
    servicePlaceholder: 'Servizio...',
    controllerPlaceholder: 'Controller...',
    entityTypePlaceholder: 'Tipo di entità...',
    startDate: 'Data inizio',
    endDate: 'Data fine',
    fullTextSearch: 'Ricerca full-text...',
    searchAllFields: 'Cerca in tutti i campi...',
    avgLatency: 'Latenza media',
    errors: 'Errori',
    failedToLoadClient: 'Caricamento dei log client non riuscito',
    failedToLoadClientDesc: 'Impossibile recuperare i log client dal server',
    failedToLoadServer: 'Caricamento dei log server non riuscito',
    failedToLoadServerDesc: 'Impossibile recuperare i log server dal server',
    levelDistribution: 'Distribuzione per livello',
    loadingClient: 'Caricamento log client...',
    loadingServer: 'Caricamento log server...',
    noActionData: 'Nessun dato di azione',
    noClientLogs: 'Nessun log client',
    noClientLogsActivityDesc: 'Nessuna attività di log client è stata ancora registrata',
    noComponentData: 'Nessun dato di componente',
    noServerLogs: 'Nessun log server',
    noServerLogsActivityDesc: 'Nessuna attività di log server è stata ancora registrata',
    noServiceData: 'Nessun dato di servizio',
    percentOfTotal: '% del totale',
    topActions: 'Azioni principali',
    topComponents: 'Componenti principali',
    topServices: 'Servizi principali',
    totalLogs: 'Log totali',
  },
  gmail: {
    page: {
      title: 'Gmail',
      description: 'Sfoglia e gestisci i messaggi Gmail sincronizzati.',
      empty_title: 'Nessuna email sincronizzata',
      empty_description:
        'Nessuna email è stata ancora sincronizzata. Avvia la sincronizzazione sul tuo connettore Gmail.',
      error_title: 'Impossibile caricare le email',
      no_connector_title: 'Nessun connettore Gmail trovato',
      no_connector_description:
        'Collega un account Gmail nei connettori dello spazio di lavoro per navigare nella tua posta in arrivo.',
    },
    message: {
      from: 'Da',
      to: 'A',
      date: 'Data',
      subject: 'Oggetto',
      reply: 'Rispondi',
      open_in_gmail: 'Apri in Gmail',
      unread: 'Non letto',
      attachments: 'Allegati ({count})',
      download: 'Scarica {name}',
      htmlIframeTitle: 'Corpo email',
      toggleHtml: 'Mostra/nascondi HTML',
      showHtml: 'Mostra HTML',
      toggleImages: 'Mostra/nascondi immagini',
      loadImages: 'Carica immagini',
      imagesBlocked: 'Immagini bloccate',
    },
    actions: {
      summarize: 'Riassumi',
      draft_reply: 'Bozza risposta',
      extract_tasks: 'Estrai attività',
      send_email: 'Invia email',
      draft_sent: 'Bozza creata — controlla in Approvazioni',
      draft_failed: 'Creazione bozza fallita',
    },
  },
  jira: {
    page: {
      title: 'Jira',
      description: 'Sfoglia e gestisci i ticket Jira sincronizzati.',
      empty_title: 'Nessun ticket sincronizzato',
      empty_description:
        'Nessun ticket Jira è stato ancora sincronizzato. Avvia una sincronizzazione sul tuo connettore Jira per caricare i ticket.',
      error_title: 'Impossibile caricare i ticket',
      no_connector_title: 'Nessun connettore Jira trovato',
      no_connector_description:
        'Collega un account Jira nei Connettori Workspace per iniziare a sfogliare i tuoi ticket.',
    },
    ticket: {
      status: 'Stato',
      priority: 'Priorità',
      assignee: 'Assegnatario',
      reporter: 'Segnalatore',
      project: 'Progetto',
      sprint: 'Sprint',
      story_points: 'Story Point',
      due_date: 'Scadenza',
      labels: 'Etichette',
      issue_type: 'Tipo',
      open_in_jira: 'Apri in Jira',
      unassigned: 'Non assegnato',
      no_sprint: 'Nessuno sprint',
    },
    actions: {
      summarize: 'Riassumi',
      write_comment: 'Scrivi commento',
      extract_tasks: 'Estrai attività',
    },
  },
  source_control: {
    page: {
      title: 'Controllo sorgente',
      description: 'Sfoglia pull request da GitHub, GitLab e Bitbucket.',
      empty_title: 'Nessuna pull request sincronizzata',
      empty_description:
        'Nessuna pull request è stata ancora sincronizzata. Avvia una sincronizzazione sul tuo connettore di controllo sorgente.',
      error_title: 'Impossibile caricare le pull request',
      no_connector_title: 'Nessun connettore di controllo sorgente trovato',
      no_connector_description: 'Collega GitHub, GitLab o Bitbucket nei Connettori Workspace.',
    },
    pr: {
      author: 'Autore',
      source_branch: 'Da',
      target_branch: 'In',
      reviewers: 'Revisori',
      additions: 'Aggiunte',
      deletions: 'Eliminazioni',
      labels: 'Etichette',
      draft: 'Bozza',
      open_pr: 'Apri PR',
      state_open: 'Aperto',
      state_closed: 'Chiuso',
      state_merged: 'Unito',
      review_approved: 'Approvato',
      review_changes: 'Modifiche richieste',
      review_pending: 'Revisione in sospeso',
    },
    actions: {
      review: 'Revisiona PR',
      summarize: 'Riassumi',
      extract_tasks: 'Estrai attività',
    },
  },
  slack: {
    page: {
      title: 'Slack',
      description: 'Sfoglia e gestisci i messaggi Slack sincronizzati.',
      empty_title: 'Nessun messaggio sincronizzato',
      empty_description:
        'Nessun messaggio Slack è stato ancora sincronizzato. Avvia una sincronizzazione sul tuo connettore Slack.',
      error_title: 'Impossibile caricare i messaggi',
      no_connector_title: 'Nessun connettore Slack trovato',
      no_connector_description: 'Collega un workspace Slack nei Connettori Workspace.',
    },
    message: {
      channel: 'Canale',
      sender: 'Da',
      date: 'Data',
      thread_reply: 'Risposta nel thread',
      open_in_slack: 'Apri in Slack',
      reactions: 'Reazioni',
    },
    actions: {
      summarize: 'Riassumi',
      reply: 'Bozza risposta',
      extract_tasks: 'Estrai attività',
    },
  },
  confluence: {
    page: {
      title: 'Confluence',
      description: 'Sfoglia e gestisci pagine Confluence sincronizzate.',
      empty_title: 'Nessuna pagina sincronizzata',
      empty_description:
        'Nessuna pagina Confluence è stata sincronizzata. Avvia una sincronizzazione sul tuo connector Confluence.',
      error_title: 'Impossibile caricare le pagine',
      no_connector_title: 'Nessun connector Confluence trovato',
      no_connector_description:
        'Collega un workspace Confluence nei Connector Workspace per sfogliare le pagine.',
    },
    article: {
      space: 'Spazio',
      author: 'Autore',
      modified_by: 'Modificato da',
      version: 'Versione',
      labels: 'Etichette',
      parent: 'Genitore',
      open_page: 'Apri in Confluence',
    },
    actions: {
      summarize: 'Riassumi',
      extract_tasks: 'Estrai attività',
      write_comment: 'Scrivi commento',
    },
  },
  docs: {
    page: {
      title: 'Documenti',
      description:
        'Sfoglia e gestisci documenti sincronizzati da Google Drive, OneDrive e SharePoint.',
      empty_title: 'Nessun documento sincronizzato',
      empty_description:
        'Nessun documento è stato sincronizzato. Avvia una sincronizzazione sul tuo connector Drive o SharePoint.',
      error_title: 'Impossibile caricare i documenti',
      no_connector_title: 'Nessun connector documenti trovato',
      no_connector_description:
        'Collega Google Drive, OneDrive o SharePoint nei Connector Workspace per sfogliare i documenti.',
    },
    file: {
      owner: 'Proprietario',
      modified_by: 'Modificato da',
      size: 'Dimensione',
      type: 'Tipo',
      open_file: 'Apri file',
      shared_with: 'Condiviso con',
      path: 'Percorso',
    },
    actions: {
      summarize: 'Riassumi',
      extract_tasks: 'Estrai attività',
      draft_email: 'Bozza email',
    },
  },
  figma: {
    page: {
      title: 'Figma',
      description: 'Sfoglia e gestisci i file di design Figma sincronizzati.',
      empty_title: 'Nessun design trovato',
      empty_description: 'Nessun file di design Figma è stato ancora sincronizzato.',
      error_title: 'Caricamento design fallito',
      no_connector_title: 'Figma non connesso',
      no_connector_description: 'Connetti il tuo spazio di lavoro Figma per sfogliare i design.',
    },
    design: {
      team: 'Team',
      project: 'Progetto',
      modified_by: 'Modificato da',
      components: 'Componenti',
      open_in_figma: 'Apri in Figma',
      last_updated: 'Ultimo aggiornamento',
    },
    actions: {
      summarize: 'Riassumi design',
      extract_components: 'Estrai componenti',
      draft_spec: 'Bozza specifica',
    },
  },
  workflow: {
    page: {
      title: 'Workflow multi-area di lavoro',
      description: 'Seleziona oggetti da più provider e esegui azioni AI sul contesto combinato.',
      empty_title: 'Nessun oggetto trovato',
      empty_description: "Nessun oggetto dell'area di lavoro è stato ancora sincronizzato.",
      error_title: 'Impossibile caricare gli oggetti',
    },
    object: {
      add: 'Aggiungi',
      remove: 'Rimuovi',
      selected_count: 'oggetti selezionati',
      clear_all: 'Cancella tutto',
    },
    actions: {
      summarize_all: 'Riassumi tutto',
      extract_requirements: 'Estrai requisiti',
      draft_prd: 'Bozza PRD',
    },
  },
  gpuBadge: {
    cpuOnly: 'Solo CPU',
    noGpu: 'Nessuna GPU rilevata — clicca per vedere i modelli locali',
    vendor: {
      nvidia: 'NVIDIA',
      amd: 'AMD ROCm',
      metal: 'Metal',
      intel: 'Intel/Vulkan',
      unknown: 'GPU',
      cpu: 'CPU',
    },
  },
  localFrontier: {
    title: 'Modelli Frontier locali',
    subtitle: 'Esegui localmente LLM frontier a pesi aperti (Kimi K2, GLM-5.1, DeepSeek V3.2/V4).',
    loading: 'Caricamento catalogo…',
    catalogEmpty: 'Nessun modello corrisponde ai filtri.',
    catalogError: 'Caricamento del catalogo fallito. Verifica claw-llamacpp-service.',
    contextLength: 'token contesto',
    requiresRamGb: 'GB RAM',
    sourceLink: 'HuggingFace',
    actions: {
      download: 'Scarica',
      load: 'Carica',
      unload: 'Scarica',
      deleteWeights: 'Elimina pesi',
      configure: 'Configura runtime',
    },
    download: { start: 'Scarica', cancel: 'Annulla', retry: 'Riprova' },
    compat: {
      fits: 'Compatibile con il tuo hardware',
      warns: 'Hardware al limite',
      refuses: 'Hardware insufficiente',
    },
    qualityTier: { survival: 'Sopravvivenza', balanced: 'Bilanciato', best: 'Migliore' },
    preflight: {
      RAM_INSUFFICIENT: 'RAM insufficiente per questo modello.',
      DISK_INSUFFICIENT: 'Spazio su disco insufficiente (non bypassabile).',
      GPU_INSUFFICIENT: 'Nessuna GPU compatibile rilevata.',
      BINARY_NOT_INSTALLED: 'Binario llama-server non ancora installato.',
      RUNTIME_INCOMPATIBLE: 'Il runtime installato non può eseguire questo modello.',
    },
    override: {
      warning: 'Il tuo hardware è sotto i requisiti. Bypassa solo se comprendi il rischio.',
      confirmTypeSize: 'Digita la dimensione del modello in GB per confermare il bypass:',
    },
    delete: {
      confirm: 'Eliminare i pesi?',
      confirmTypePrompt: 'Digita il nome del modello (es. glm-5.1:Q4_K_M) per confermare.',
    },
    hardware: {
      title: 'Hardware e runtime',
      subtitle: 'Snapshot live di questa macchina e del binario llama.cpp.',
      refresh: 'Aggiorna',
      ram: 'RAM',
      disk: 'Disco',
      cpu: 'CPU',
      gpu: 'GPU',
      binary: 'Binario',
      cores: 'core',
      noGpu: 'Nessuna GPU rilevata',
      notInstalled: 'Non installato',
      loadedModel: 'Modello caricato',
      noLoadedModel: 'Nessuno caricato',
    },
    filters: {
      category: 'Categoria',
      qualityTier: 'Livello di qualità',
      compatibleOnly: 'Solo compatibili',
      refreshCatalog: 'Aggiorna catalogo',
      refreshing: 'Aggiornamento…',
      allCategories: 'Tutte le categorie',
      allTiers: 'Tutti i livelli',
      categoryCoding: 'Codice',
      categoryReasoning: 'Ragionamento',
      categoryThinking: 'Pensiero',
      categoryGeneral: 'Generale',
      categoryFileGen: 'Generazione file',
    },
    downloads: {
      title: 'Download attivi',
      empty: 'Nessun download attivo o recente.',
      cancel: 'Annulla',
      retry: 'Riprova',
      remove: 'Chiudi',
      status: 'Stato',
      bytes: 'Byte',
      files: 'File',
      rate: 'Velocità',
      eta: 'ETA',
      unknown: 'Preparazione…',
    },
    deleteDialog: {
      title: 'Elimina pesi',
      description: 'Rimuove permanentemente i pesi scaricati dal disco.',
      promptLabel: 'Digita per confermare',
      placeholder: 'modello:tag',
      cancel: 'Annulla',
      confirm: 'Elimina pesi',
      warning: 'Non reversibile. Dovrai scaricare nuovamente per riutilizzare il modello.',
    },
    overrideDialog: {
      title: 'Bypassare il preflight hardware?',
      description: 'La tua macchina non soddisfa le specifiche consigliate.',
      reasonsTitle: 'Motivi:',
      cancel: 'Annulla',
      proceed: 'Scarica comunque',
    },
    configDialog: {
      title: 'Configurazione runtime',
      description: 'Regola i parametri di llama.cpp per il modello caricato.',
      ngpuLayers: 'Layer GPU',
      ngpuLayersHint: 'Layer da spostare su GPU. Vuoto = automatico.',
      ctxSize: 'Dimensione contesto',
      ctxSizeHint: 'Finestra di contesto massima in token.',
      threads: 'Thread CPU',
      threadsHint: 'Numero di thread CPU. Vuoto = automatico.',
      cpuMoe: 'CPU MoE',
      cpuMoeHint: 'Esegui i layer mixture-of-experts solo su CPU.',
      customArgs: 'Args personalizzati',
      customArgsHint: 'Flag llama-server aggiuntivi (allowlist applicata).',
      cancel: 'Annulla',
      save: 'Salva',
    },
  },

  emailTemplates: {
    page: {
      title: 'Modelli e-mail',
      description:
        "Punti di partenza riutilizzabili (oggetto + corpo) per e-mail redatte dall'IA. I {{placeholders}} vengono compilati all'uso del modello.",
      loading: 'Caricamento modelli…',
      error: 'Impossibile caricare i modelli. Aggiorna la pagina.',
      empty: 'Ancora nessun modello. Creane uno per iniziare.',
      create: 'Nuovo modello',
      edit: 'Modifica',
      delete: 'Elimina',
      deleting: 'Eliminazione…',
      defaultBadge: 'Predefinito',
      subjectLabel: 'Oggetto',
    },
    dialog: {
      createTitle: 'Crea modello',
      editTitle: 'Modifica modello',
      nameLabel: 'Nome',
      namePlaceholder: 'E-mail di follow-up',
      subjectLabel: 'Oggetto',
      subjectPlaceholder: 'Aggiornamento su {{topic}}',
      bodyLabel: 'Corpo',
      bodyPlaceholder: 'Ciao {{name}},\n\nTorno a scriverti riguardo a {{topic}}…',
      defaultLabel: 'Usa come predefinito',
      save: 'Salva',
      saving: 'Salvataggio…',
      cancel: 'Annulla',
    },
  },

  inbox: {
    page: {
      title: 'Posta in arrivo area di lavoro',
      description:
        'Cross-provider feed of every recent workspace object — filter by provider, type, attention.',
      loading: 'Caricamento posta…',
      loadingMore: 'Caricamento altri…',
      loadMore: 'Carica altro',
      empty: 'Nessun elemento corrisponde ai filtri.',
      error: 'Impossibile caricare la posta. Riprovare.',
    },
    filter: {
      providers: 'Fornitore:',
      types: 'Tipo:',
      needsAttention: 'Richiede attenzione',
      hasSuggestion: 'Ha suggerimento',
      reset: 'Reimposta filtri',
    },
    row: {
      needsAttention: 'Richiede attenzione',
      hasSuggestion: 'Ha suggerimento',
      mark: 'Segna come urgente',
      unmark: 'Rimuovi urgenza',
      openExternal: 'Apri',
      viewFile: 'Visualizza file',
    },
  },
  fileViewer: {
    loading: 'Caricamento file…',
    error: 'Impossibile caricare questo file.',
    unsupported:
      'Anteprima non disponibile per questo tipo di file. Usa Scarica per aprirlo in locale.',
    download: 'Scarica',
    close: 'Chiudi',
  },
  search: {
    page: {
      title: 'Ricerca semantica',
      description: 'Cerca in tutti i tuoi oggetti — embedding locali che proteggono la privacy.',
      placeholder: 'Type a natural-language question…',
      submit: 'Cerca',
      searching: 'Ricerca…',
      reset: 'Reimposta',
      local: 'Embedding locali ({model})',
      noResults: 'Nessun risultato. Prova parole diverse.',
      error: 'Ricerca fallita. Riprovare.',
    },
  },
  digest: {
    page: {
      title: 'Sintesi',
      description: 'Il tuo brief mattutino: cosa è cambiato.',
      loading: 'Caricamento sintesi…',
      error: 'Impossibile caricare la sintesi.',
      noTodayDigest: 'Nessuna sintesi per oggi. Avvia o attendi il cron.',
      today: 'Sintesi di oggi',
      history: 'Sintesi precedenti',
      generatedAt: 'Generato {ts}',
      sectionsCount: '{n} sections',
      triggerDaily: 'Avvia sintesi giornaliera',
      triggerWeekly: 'Avvia sintesi settimanale',
      triggering: 'Generazione…',
      preferenceHint: 'Consegna giornaliera: {hour}:00 ({tz})',
    },
    section: {
      highlights: 'In evidenza',
      actionItems: 'Azioni richieste',
    },
  },
  adminAutomation: {
    dismiss: 'Ignora',
    retry: 'Riprova',
    policies: {
      title: 'Policy azioni IA',
      description:
        'Regole di approvazione rigorose per impostazione predefinita. Le impostazioni predefinite di sistema possono essere disattivate ma non eliminate.',
      loading: 'Caricamento policy…',
      error: 'Impossibile caricare le policy.',
      empty: 'Nessuna policy configurata.',
      systemDefault: 'Predefinito di sistema',
      priority: 'Priorità {p}',
      providerRegex: 'Regex fornitore',
      actionKindRegex: 'Regex tipo azione',
      riskCeiling: 'Soglia di rischio',
      delete: 'Elimina',
      cannotDelete: 'I predefiniti di sistema non possono essere eliminati',
      toggleActive: 'Attiva/disattiva',
      toggleSucceeded: 'Policy aggiornata.',
      toggleFailed: 'Impossibile aggiornare la policy.',
      deleteSucceeded: 'Policy eliminata.',
      deleteFailed: 'Impossibile eliminare la policy.',
      mutationError: 'Si è verificato un errore durante l’aggiornamento della policy.',
      addPolicy: 'Aggiungi policy',
      editPolicy: 'Modifica policy',
      createTitle: 'Crea policy',
      editTitle: 'Modifica policy',
      createDescription:
        'Definisci una nuova regola di approvazione per le azioni del workspace redatte dall’IA.',
      editDescription: 'Aggiorna questa regola di approvazione. Il nome non può essere modificato.',
      createSucceeded: 'Policy creata.',
      createFailed: 'Impossibile creare la policy.',
      updateSucceeded: 'Policy aggiornata.',
      updateFailed: 'Impossibile aggiornare la policy.',
      submit: 'Salva policy',
      submitting: 'Salvataggio in corso…',
      nameLabel: 'Nome',
      nameHelp: 'Identificatore minuscolo in kebab-case (es. deny-pii).',
      descriptionLabel: 'Descrizione',
      kindFieldLabel: 'Tipo',
      requireReasonLabel: 'Richiedi motivo per HIGH/CRITICAL',
      isActiveLabel: 'Attiva',
      riskMaxScoreLabel: 'Punteggio di rischio massimo (0–100)',
      priorityLabel: 'Priorità (0–10000)',
      kindLabel: {
        DENY: 'Nega',
        ALLOW: 'Consenti',
        AUTO_APPROVE: 'Approvazione automatica',
      },
      riskLabel: {
        LOW: 'Basso',
        MEDIUM: 'Medio',
        HIGH: 'Alto',
        CRITICAL: 'Critico',
      },
    },
    rules: {
      title: 'Regole trigger suggerimenti',
      description:
        'Regole che trasformano gli eventi grezzi del provider in suggerimenti in bozza. Modifica, disattiva o elimina.',
      loading: 'Caricamento regole…',
      error: 'Impossibile caricare le regole.',
      empty: 'Nessuna regola configurata.',
      systemDefault: 'Predefinito di sistema',
      priority: 'Priorità {p}',
      eventType: 'Tipo evento',
      actionKind: 'Tipo di azione',
      providerRegex: 'Regex fornitore',
      contentRegex: 'Regex contenuto',
      delete: 'Elimina',
      cannotDelete: 'I predefiniti di sistema non possono essere eliminati',
      toggleActive: 'Attiva/disattiva',
      toggleSucceeded: 'Regola aggiornata.',
      toggleFailed: 'Impossibile aggiornare la regola.',
      deleteSucceeded: 'Regola eliminata.',
      deleteFailed: 'Impossibile eliminare la regola.',
      mutationError: 'Si è verificato un errore durante l’aggiornamento della regola.',
      addRule: 'Aggiungi regola',
      editRule: 'Modifica regola',
      createTitle: 'Crea regola',
      editTitle: 'Modifica regola',
      createDescription: 'Definisci quando redigere un suggerimento da un evento del workspace.',
      editDescription: 'Aggiorna questa regola di trigger. Il nome non può essere modificato.',
      createSucceeded: 'Regola creata.',
      createFailed: 'Impossibile creare la regola.',
      updateSucceeded: 'Regola aggiornata.',
      updateFailed: 'Impossibile aggiornare la regola.',
      submit: 'Salva regola',
      submitting: 'Salvataggio in corso…',
      nameLabel: 'Nome',
      nameHelp: 'Identificatore minuscolo in kebab-case (es. github-pr-opened).',
      descriptionLabel: 'Descrizione',
      eventTypeHelp: 'Modello evento come workspace.webhook.received.',
      actionKindHelp: 'Tipo di azione come SUMMARIZE, DRAFT, REWRITE.',
      isActiveLabel: 'Attiva',
      priorityLabel: 'Priorità (0–10000)',
    },
  },
  adminWebhooks: {
    page: {
      title: 'Consegne webhook',
      description: 'Ispeziona e riproduci le consegne webhook in arrivo dai tuoi provider.',
      loading: 'Caricamento consegne…',
      error: 'Impossibile caricare le consegne webhook.',
      empty: 'Nessuna consegna corrisponde ai filtri.',
    },
    filter: {
      providerPlaceholder: 'Filtra per provider (es. GITHUB)',
      connectorPlaceholder: 'Filtra per ID connettore',
      signaturePlaceholder: 'Stato firma',
      signatureAny: 'Qualsiasi firma',
      signatureValid: 'Firma valida',
      signatureInvalid: 'Firma non valida',
      clear: 'Cancella filtri',
    },
    row: {
      deliveryId: 'ID consegna',
      connector: 'Connettore',
      bytes: 'Byte del corpo',
      processedAt: 'Elaborato il',
    },
    status: {
      accepted: 'Accettato',
      rejected: 'Rifiutato',
      idempotent: 'Idempotente',
    },
    replay: 'Riproduci',
    replaying: 'Riproduzione in corso…',
    replaySucceeded: 'Consegna webhook ripetuta.',
    replayFailed: 'Impossibile ripetere la consegna webhook.',
  },
  implHandoff: {
    page: {
      title: 'Passaggi di codice',
      description:
        'Approved IMPL_PROMPT actions delivered to chat threads, agent terminals, or clipboard.',
      loading: 'Caricamento passaggi…',
      error: 'Impossibile caricare i passaggi.',
      empty: 'Nessun passaggio. Approva un IMPL_PROMPT in coda.',
      openThread: 'Apri thread →',
    },
    picker: {
      title: 'Invia IMPL_PROMPT a…',
      description: 'Scegli dove consegnare il brief di codice approvato.',
      cancel: 'Annulla',
      CHAT: { hint: 'Apri un nuovo thread con il brief precaricato' },
      AGENT: { hint: 'Inserisci nella coda del terminale dell’agente' },
      CLIPBOARD: { hint: 'Copia negli appunti per strumenti esterni' },
    },
  },
  learned: {
    panel: {
      title: 'Ciò che abbiamo imparato',
      subtitle: '{count} preferences',
      description:
        'Patterns derived from your approve / reject / edit decisions. Used to personalise future suggestions.',
      loading: 'Caricamento…',
      error: 'Impossibile caricare le preferenze.',
      empty: 'Impareremo dalle tue approvazioni — nessuna preferenza ancora.',
    },
  },
};
