import type { Translations } from "./types";

export const it: Translations = {
  common: {
    save: "Salva",
    saving: "Salvataggio...",
    cancel: "Annulla",
    close: "Chiudi",
    confirm: "Conferma",
    delete: "Elimina",
    refresh: "Aggiorna",
    retry: "Riprova",
    search: "Cerca...",
    loading: "Caricamento...",
    create: "Crea",
    creating: "Creazione...",
    set: "Imposta",
    replace: "Sostituisci",
    clear: "Cancella",
    live: "In tempo reale",
    off: "Spento",
    enabled: "abilitato",
    disabled: "disabilitato",
    active: "attivo",
    inactive: "inattivo",
    unknown: "sconosciuto",
    untitled: "Senza titolo",
    none: "Nessuno",
    form: "Modulo",
    noResults: "Nessun risultato",
    of: "di",
    page: "Pagina",
    msgs: "msg",
    tools: "strumenti",
    match: "corrispondenza",
    other: "Altro",
    configured: "configurato",
    removed: "rimosso",
    failedToToggle: "Commutazione non riuscita",
    failedToRemove: "Rimozione non riuscita",
    failedToReveal: "Visualizzazione non riuscita",
    collapse: "Comprimi",
    expand: "Espandi",
    general: "Generale",
    messaging: "Messaggistica",
    pluginLoadFailed:
      "Impossibile caricare lo script di questo plugin. Controlla la scheda Network (dashboard-plugins/…) e il percorso dei plugin del server.",
    pluginNotRegistered:
      "Lo script del plugin non ha chiamato register(), oppure ha generato un errore. Apri la console del browser per i dettagli.",
  },

  app: {
    brand: "Hermes Agent",
    brandShort: "HA",
    closeNavigation: "Chiudi navigazione",
    closeModelTools: "Chiudi modello e strumenti",
    footer: {
      org: "Nous Research",
    },
    activeSessionsLabel: "Sessioni attive:",
    gatewayStatusLabel: "Stato gateway:",
    gatewayStrip: {
      failed: "Avvio non riuscito",
      off: "Spento",
      running: "In esecuzione",
      starting: "Avvio in corso",
      stopped: "Arrestato",
    },
    nav: {
      analytics: "Analisi",
      chat: "Chat",
      config: "Configurazione",
      cron: "Cron",
      documentation: "Documentazione",
      keys: "Chiavi",
      logs: "Log",
      models: "Modelli",
      profiles: "profili : multi agent",
      plugins: "Plugin",
      sessions: "Sessioni",
      skills: "Competenze",
    },
    modelToolsSheetSubtitle: "e strumenti",
    modelToolsSheetTitle: "Modello",
    navigation: "Navigazione",
    openDocumentation: "Apri la documentazione in una nuova scheda",
    openNavigation: "Apri navigazione",
    pluginNavSection: "Plugin",
    sessionsActiveCount: "{count} attive",
    statusOverview: "Panoramica dello stato",
    system: "Sistema",
    webUi: "Web UI",
  },

  status: {
    actionFailed: "Azione non riuscita",
    actionFinished: "Completata",
    actions: "Azioni",
    agent: "Agente",
    activeSessions: "Sessioni attive",
    connected: "Connesso",
    connectedPlatforms: "Piattaforme connesse",
    disconnected: "Disconnesso",
    error: "Errore",
    failed: "Non riuscito",
    gateway: "Gateway",
    gatewayFailedToStart: "Avvio del gateway non riuscito",
    lastUpdate: "Ultimo aggiornamento",
    noneRunning: "Nessuno",
    notRunning: "Non in esecuzione",
    pid: "PID",
    platformDisconnected: "disconnesso",
    platformError: "errore",
    recentSessions: "Sessioni recenti",
    restartGateway: "Riavvia gateway",
    restartingGateway: "Riavvio del gateway…",
    running: "In esecuzione",
    runningRemote: "In esecuzione (remoto)",
    startFailed: "Avvio non riuscito",
    starting: "Avvio in corso",
    startedInBackground: "Avviato in background — controlla i log per i progressi",
    stopped: "Arrestato",
    updateHermes: "Aggiorna Hermes",
    updatingHermes: "Aggiornamento di Hermes…",
    waitingForOutput: "In attesa di output…",
  },

  sessions: {
    title: "Sessioni",
    history: "Cronologia",
    overview: "Panoramica",
    searchPlaceholder: "Cerca nel contenuto dei messaggi...",
    noSessions: "Nessuna sessione",
    noMatch: "Nessuna sessione corrisponde alla ricerca",
    startConversation: "Avvia una conversazione per vederla qui",
    noMessages: "Nessun messaggio",
    untitledSession: "Sessione senza titolo",
    deleteSession: "Elimina sessione",
    confirmDeleteTitle: "Eliminare la sessione?",
    confirmDeleteMessage:
      "Questa operazione rimuove definitivamente la conversazione e tutti i suoi messaggi. Non può essere annullata.",
    sessionDeleted: "Sessione eliminata",
    failedToDelete: "Eliminazione della sessione non riuscita",
    deleteEmpty: "Elimina vuote",
    deleteEmptyConfirmTitle: "Eliminare le sessioni vuote?",
    deleteEmptyConfirmMessage:
      "Questa azione rimuove in modo permanente {count} sessioni senza messaggi. Le sessioni attive e archiviate vengono ignorate. L'azione non può essere annullata.",
    emptySessionsDeleted: "{count} sessioni vuote eliminate",
    failedToDeleteEmpty: "Impossibile eliminare le sessioni vuote",
    selectSession: "Seleziona sessione",
    selectAllOnPage: "Seleziona tutte in questa pagina",
    clearSelection: "Annulla selezione",
    selectedCount: "{count} selezionate",
    deleteSelected: "Elimina {count}",
    deleteSelectedConfirmTitle: "Eliminare {count} sessioni?",
    deleteSelectedConfirmMessage:
      "Verranno eliminate definitivamente {count} sessioni selezionate e tutti i loro messaggi. L'operazione non può essere annullata.",
    selectedSessionsDeleted: "{count} sessioni eliminate",
    failedToDeleteSelected: "Impossibile eliminare le sessioni selezionate",
    resumeInChat: "Riprendi nella chat",
    previousPage: "Pagina precedente",
    nextPage: "Pagina successiva",
    roles: {
      user: "Utente",
      assistant: "Assistente",
      system: "Sistema",
      tool: "Strumento",
    },
  },

  analytics: {
    period: "Periodo:",
    totalTokens: "Token totali",
    totalSessions: "Sessioni totali",
    apiCalls: "Chiamate API",
    dailyTokenUsage: "Utilizzo giornaliero token",
    dailyBreakdown: "Dettaglio giornaliero",
    perModelBreakdown: "Dettaglio per modello",
    topSkills: "Competenze più usate",
    skill: "Competenza",
    loads: "Caricato dall'agente",
    edits: "Gestito dall'agente",
    lastUsed: "Ultimo uso",
    input: "Input",
    output: "Output",
    total: "Totale",
    noUsageData: "Nessun dato di utilizzo per questo periodo",
    startSession: "Avvia una sessione per vedere le analisi qui",
    date: "Data",
    model: "Modello",
    tokens: "Token",
    perDayAvg: "/giorno medio",
    acrossModels: "su {count} modelli",
    inOut: "{input} in / {output} out",
  },

  models: {
    modelsUsed: "Modelli utilizzati",
    estimatedCost: "Costo stim.",
    tokens: "token",
    sessions: "sessioni",
    avgPerSession: "media/sessione",
    apiCalls: "chiamate API",
    toolCalls: "chiamate strumenti",
    noModelsData: "Nessun dato sull'uso dei modelli per questo periodo",
    startSession: "Avvia una sessione per vedere i dati dei modelli qui",
  },

  logs: {
    title: "Log",
    autoRefresh: "Aggiornamento automatico",
    file: "File",
    level: "Livello",
    component: "Componente",
    lines: "Righe",
    noLogLines: "Nessuna riga di log trovata",
  },

  cron: {
    confirmDeleteMessage:
      "Questa operazione rimuove l'attività dalla pianificazione. Non può essere annullata.",
    confirmDeleteTitle: "Eliminare l'attività pianificata?",
    newJob: "Nuova attività cron",
    nameOptional: "Nome (facoltativo)",
    namePlaceholder: "es. Riepilogo giornaliero",
    prompt: "Prompt",
    promptPlaceholder: "Cosa deve fare l'agente a ogni esecuzione?",
    schedule: "Pianificazione (espressione cron)",
    schedulePlaceholder: "0 9 * * *",
    scheduleMode: "Pianificazione",
    scheduleModes: {
      interval: "Intervallo ricorrente",
      daily: "Giornaliero",
      weekly: "Settimanale",
      monthly: "Mensile",
      once: "Una volta",
      custom: "Personalizzato (espressione cron)",
      intervalEvery: "Ogni",
      intervalUnit: "Unità",
      unitMinutes: "minuti",
      unitHours: "ore",
      unitDays: "giorni",
      timeOfDay: "Ora del giorno",
      weekdays: "Giorni della settimana",
      weekdaysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
      dayOfMonth: "Giorno del mese",
      onceAt: "Esegui il",
      customLabel: "Espressione cron",
      customPlaceholder: "0 9 * * *",
      customHint:
        "Espressione cron a cinque campi (minuto, ora, giorno, mese, giorno della settimana).",
      preview: "Inviato come",
      previewEmpty: "(incompleta)",
    },
    scheduleDescribe: {
      none: "—",
      everyMinutes: "Ogni {n} min",
      everyHours: "Ogni {n} h",
      everyDays: "Ogni {n} g",
      dailyAt: "Tutti i giorni alle {time}",
      weeklyAt: "Ogni {days} alle {time}",
      monthlyAt: "Il {day} di ogni mese alle {time}",
      onceAt: "Una volta il {time}",
    },
    deliverTo: "Consegna a",
    scheduledJobs: "Attività pianificate",
    noJobs: "Nessuna attività cron configurata. Creane una sopra.",
    last: "Ultima",
    next: "Prossima",
    pause: "Pausa",
    resume: "Riprendi",
    triggerNow: "Esegui ora",
    delivery: {
      local: "Locale",
      telegram: "Telegram",
      discord: "Discord",
      slack: "Slack",
      email: "Email",
    },
  },

  profiles: {
    newProfile: "Nuovo profilo",
    name: "Nome",
    namePlaceholder: "es. coder, writer, ecc.",
    nameRequired: "Il nome è obbligatorio",
    nameRule:
      "Solo lettere minuscole, cifre, _ e -; deve iniziare con una lettera o cifra; fino a 64 caratteri.",
    invalidName: "Nome del profilo non valido",    cloneFrom: "Clona configurazione dal profilo",
    cloneFromNone: "Nessuno (vuoto)",
    allProfiles: "Profili",
    noProfiles: "Nessun profilo trovato.",
    defaultBadge: "predefinito",
    hasEnv: "env",
    model: "Modello",
    skills: "Competenze",
    rename: "Rinomina",
    editSoul: "Modifica SOUL.md",
    soulSection: "SOUL.md (personalità / prompt di sistema)",
    soulPlaceholder: "# Come dovrebbe comportarsi questo agente…",
    saveSoul: "Salva SOUL",
    soulSaved: "SOUL.md salvato",
    openInTerminal: "Copia comando CLI",
    commandCopied: "Copiato negli appunti",
    copyFailed: "Impossibile copiare",
    confirmDeleteTitle: "Eliminare il profilo?",
    confirmDeleteMessage:
      "Questa operazione elimina definitivamente il profilo '{name}' — configurazione, chiavi, memorie, sessioni, competenze, attività cron. Non può essere annullata.",
    created: "Creato",
    deleted: "Eliminato",
    renamed: "Rinominato",
  },

  pluginsPage: {
    contextEngineLabel: "Motore di contesto",
    dashboardSlots: "Slot del dashboard",
    disableRuntime: "Disabilita",
    enableAfterInstall: "Abilita dopo l'installazione",
    enableRuntime: "Abilita",
    forceReinstall: "Forza reinstallazione (elimina prima la cartella esistente)",
    headline:
      "Scopri, installa, abilita e aggiorna i plugin Hermes (parità con `hermes plugins`).",
    identifierLabel: "URL Git o owner/repo",
    inactive: "inattivo",
    installBtn: "Installa",
    installHeading: "Installa da GitHub / URL Git",
    installHint: "Usa la forma breve owner/repo o un URL clone https:// o git@ completo.",
    memoryProviderLabel: "Provider di memoria",
    missingEnvWarn: "Imposta queste variabili in Chiavi prima di eseguire il plugin:",
    noDashboardTab: "Nessuna scheda nel dashboard",
    openTab: "Apri",
    orphanHeading: "Estensioni solo dashboard (nessuna corrispondenza con plugin.yaml)",
    pluginListHeading: "Plugin installati",
    providerDefaults: "integrato / predefinito",
    providersHeading: "Plugin provider runtime",
    providersHint:
      "Scrive memory.provider (vuoto = integrato) e context.engine in config.yaml. Effetto dalla prossima sessione.",
    refreshDashboard: "Riscansiona estensioni dashboard",
    removeConfirm: "Rimuovere questo plugin da ~/.hermes/plugins/?",
    removeHint: "Solo i plugin installati dall'utente in ~/.hermes/plugins possono essere rimossi.",
    rescanHeading: "Registro plugin SPA",
    rescanHint: "Riscansiona dopo aver aggiunto file su disco affinché la barra laterale rilevi i nuovi manifest.",
    runtimeHeading: "Runtime gateway (plugin YAML)",
    saveProviders: "Salva impostazioni provider",
    savedProviders: "Impostazioni provider salvate.",
    sourceBadge: "Origine",
    authRequired: "Autenticazione richiesta",
    authRequiredHint: "Esegui questo comando per autenticarti:",
    updateGit: "Git pull",
    versionBadge: "Versione",
    showInSidebar: "Mostra nella barra laterale",
    hideFromSidebar: "Nascondi dalla barra laterale",
  },

  skills: {
    title: "Competenze",
    searchPlaceholder: "Cerca competenze e toolset...",
    enabledOf: "{enabled}/{total} abilitati",
    all: "Tutti",
    categories: "Categorie",
    filters: "Filtri",
    noSkills: "Nessuna competenza trovata. Le competenze vengono caricate da ~/.hermes/skills/",
    noSkillsMatch: "Nessuna competenza corrisponde alla ricerca o al filtro.",
    skillCount: "{count} competenz{s}",
    resultCount: "{count} risultat{s}",
    noDescription: "Nessuna descrizione disponibile.",
    toolsets: "Toolset",
    toolsetLabel: "Toolset {name}",
    noToolsetsMatch: "Nessun toolset corrisponde alla ricerca.",
    setupNeeded: "Configurazione necessaria",
    disabledForCli: "Disabilitato per CLI",
    more: "+{count} in più",
  },

  config: {
    configPath: "~/.hermes/config.yaml",
    filters: "Filtri",
    sections: "Sezioni",
    exportConfig: "Esporta configurazione come JSON",
    importConfig: "Importa configurazione da JSON",
    resetDefaults: "Ripristina predefiniti",
    resetScopeTooltip: "Ripristina {scope} ai valori predefiniti",
    confirmResetScope: "Ripristinare tutte le impostazioni di {scope} ai valori predefiniti? Questa operazione aggiorna solo il modulo — le modifiche non vengono scritte in config.yaml finché non premi Salva.",
    resetScopeToast: "{scope} ripristinato ai valori predefiniti — controlla e Salva per rendere persistente",
    rawYaml: "Configurazione YAML grezza",
    searchResults: "Risultati della ricerca",
    fields: "camp{s}",
    noFieldsMatch: 'Nessun campo corrisponde a "{query}"',
    configSaved: "Configurazione salvata",
    yamlConfigSaved: "Configurazione YAML salvata",
    failedToSave: "Salvataggio non riuscito",
    failedToSaveYaml: "Salvataggio YAML non riuscito",
    failedToLoadRaw: "Caricamento configurazione grezza non riuscito",
    configImported: "Configurazione importata — controlla e salva",
    invalidJson: "File JSON non valido",
    categories: {
      general: "Generale",
      agent: "Agente",
      terminal: "Terminale",
      display: "Visualizzazione",
      delegation: "Delega",
      memory: "Memoria",
      compression: "Compressione",
      security: "Sicurezza",
      browser: "Browser",
      voice: "Voce",
      tts: "Sintesi vocale",
      stt: "Riconoscimento vocale",
      logging: "Log",
      discord: "Discord",
      auxiliary: "Ausiliario",
    },
  },

  env: {
    changesNote: "Le modifiche vengono salvate immediatamente su disco. Le sessioni attive rilevano automaticamente le nuove chiavi.",
    confirmClearMessage:
      "Il valore memorizzato per questa variabile sarà rimosso dal tuo file .env. Non può essere annullato dall'interfaccia.",
    confirmClearTitle: "Cancellare questa chiave?",
    description: "Gestisci chiavi API e segreti memorizzati in",
    hideAdvanced: "Nascondi avanzate",
    showAdvanced: "Mostra avanzate",
    showLess: "Mostra meno",
    showMore: "Mostra di più",
    llmProviders: "Provider LLM",
    providersConfigured: "{configured} di {total} provider configurati",
    getKey: "Ottieni chiave",
    notConfigured: "{count} non configurat{s}",
    notSet: "Non impostato",
    keysCount: "{count} chiav{s}",
    enterValue: "Inserisci valore...",
    replaceCurrentValue: "Sostituisci valore corrente ({preview})",
    showValue: "Mostra valore reale",
    hideValue: "Nascondi valore",
  },

  oauth: {
    title: "Accessi provider (OAuth)",
    providerLogins: "Accessi provider (OAuth)",
    description: "{connected} di {total} provider OAuth connessi. I flussi di accesso vengono attualmente eseguiti tramite la CLI; clicca Copia comando e incolla in un terminale per configurare.",
    connected: "Connesso",
    expired: "Scaduto",
    notConnected: "Non connesso. Esegui {command} in un terminale.",
    runInTerminal: "in un terminale.",
    noProviders: "Nessun provider compatibile con OAuth rilevato.",
    login: "Accedi",
    disconnect: "Disconnetti",
    managedExternally: "Gestito esternamente",
    copied: "Copiato ✓",
    cli: "Copia",
    copyCliCommand: "Copia comando CLI (per uso esterno / fallback)",
    connect: "Connetti",
    sessionExpires: "La sessione scade tra {time}",
    initiatingLogin: "Avvio del flusso di accesso…",
    exchangingCode: "Scambio del codice per i token…",
    connectedClosing: "Connesso! Chiusura…",
    loginFailed: "Accesso non riuscito.",
    sessionExpired: "Sessione scaduta. Clicca Riprova per iniziare un nuovo accesso.",
    reOpenAuth: "Riapri pagina di autenticazione",
    reOpenVerification: "Riapri pagina di verifica",
    submitCode: "Invia codice",
    pasteCode: "Incolla codice di autorizzazione (con suffisso #state va bene)",
    waitingAuth: "In attesa che tu autorizzi nel browser…",
    enterCodePrompt: "È stata aperta una nuova scheda. Inserisci questo codice se richiesto:",
    pkceStep1: "È stata aperta una nuova scheda su claude.ai. Accedi e clicca Autorizza.",
    pkceStep2: "Copia il codice di autorizzazione mostrato dopo l'autorizzazione.",
    pkceStep3: "Incollalo qui sotto e invia.",
    flowLabels: {
      pkce: "Accesso browser (PKCE)",
      device_code: "Codice dispositivo",
      external: "CLI esterna",
    },
    expiresIn: "scade tra {time}",
  },

  language: {
    switchTo: "Cambia lingua",
  },

  theme: {
    title: "Tema",
    switchTheme: "Cambia tema",
  },
  achievements: {
    hero: {
      kicker: "Agentic Gamerscore",
      title: "Hermes Achievements",
      subtitle:
        "Badge Hermes da collezione, ottenuti dalla cronologia reale delle sessioni. Gli achievement noti non completati vengono mostrati come Scoperti; gli achievement segreti restano nascosti finché non compare il primo comportamento corrispondente.",
      scan_subtitle:
        "Scansione della cronologia delle sessioni Hermes in corso. La prima scansione può richiedere 5–10 secondi su cronologie ampie.",
    },
    actions: {
      rescan: "Riscansiona",
    },
    stats: {
      unlocked: "Sbloccati",
      unlocked_hint: "badge ottenuti",
      discovered: "Scoperti",
      discovered_hint: "noti, non ancora ottenuti",
      secrets: "Segreti",
      secrets_hint: "nascosti fino al primo segnale",
      highest_tier: "Livello più alto",
      highest_tier_hint: "Copper → Silver → Gold → Diamond → Olympian",
      latest: "Più recente",
      latest_hint_empty: "usa Hermes di più",
      none_yet: "Nessuno ancora",
    },
    state: {
      unlocked: "Sbloccato",
      discovered: "Scoperto",
      secret: "Segreto",
    },
    tier: {
      target: "Obiettivo {tier}",
      hidden: "Nascosto",
      complete: "Completato",
      objective: "Obiettivo",
    },
    progress: {
      hidden: "nascosto",
    },
    scan: {
      building_headline: "Costruzione del profilo achievement…",
      building_detail:
        "Lettura di sessioni, chiamate agli strumenti, metadati del modello e stato di sblocco.",
      starting_headline: "Avvio della scansione achievement…",
      progress_detail:
        "Scansionate {scanned} di {total} sessioni · {pct}%. I badge si sbloccano man mano che viene elaborata altra cronologia.",
      idle_detail:
        "Lettura di sessioni, chiamate agli strumenti, metadati del modello e stato di sblocco. I badge appaiono qui non appena vengono sbloccati.",
    },
    guide: {
      tiers_header: "Livelli",
      secret_header: "Achievement segreti",
      secret_body:
        "I segreti nascondono il loro trigger esatto. Quando Hermes rileva un segnale correlato, la carta passa a Scoperto e mostra il requisito.",
      scan_status_header: "Stato della scansione",
      scan_status_body:
        "Hermes sta scansionando la cronologia locale una sola volta, poi le carte appariranno automaticamente. Non è bloccato nulla se richiede qualche secondo.",
      what_scanned_header: "Cosa viene scansionato",
      what_scanned_body:
        "Sessioni, chiamate agli strumenti, metadati del modello, errori, achievement e stato di sblocco locale.",
    },
    card: {
      share_title: "Condividi questo achievement",
      share_label: "Condividi {name}",
      share_text: "Condividi",
      how_to_reveal: "Come rivelarlo",
      what_counts: "Cosa conta",
      evidence_label: "Prova",
      evidence_session_fallback: "sessione",
      no_evidence: "Nessuna prova ancora",
    },
    latest: {
      header: "Sblocchi recenti",
    },
    empty: {
      no_secrets_header: "Nessun segreto nascosto rimasto in questa scansione.",
      no_secrets_body:
        "Indizio: i segreti di solito partono da fallimenti inusuali o pattern da utente esperto — conflitti di porte, muri di permessi, variabili d'ambiente mancanti, errori YAML, collisioni Docker, uso di rollback/checkpoint, cache hit o piccole correzioni dopo molto testo rosso.",
    },
    filters: {
      all_categories: "Tutti",
      visibility_all: "tutti",
      visibility_unlocked: "sbloccati",
      visibility_discovered: "scoperti",
      visibility_secret: "segreti",
    },
    share: {
      dialog_label: "Condividi achievement",
      header: "Condividi: {name}",
      close: "Chiudi",
      rendering: "Rendering…",
      card_alt: "Carta di condivisione {name}",
      error_generic: "Qualcosa è andato storto.",
      x_title: "Apre X con un post precompilato",
      x_button: "Condividi su X",
      copy_title: "Copia l'immagine per incollarla nel tuo post",
      copy_button: "Copia immagine",
      copied: "Copiato ✓",
      download_button: "Scarica PNG",
      hint:
        "Condividi su X apre un post precompilato in una nuova scheda. Clicca prima su Copia immagine se vuoi allegare il badge 1200×630 — X ti permette di incollarlo direttamente nell'editor del tweet. Scarica PNG salva il file per l'uso ovunque.",
      clipboard_unsupported:
        "La copia delle immagini negli appunti non è supportata in questo browser — usa Scarica invece.",
      tweet_text: "Just unlocked {tier_part}\"{name}\" in Hermes Agent ☤",
    },
  },
  kanban: {
    loading: "Caricamento bacheca Kanban…",
    loadFailed: "Caricamento della bacheca Kanban non riuscito: ",
    loadFailedHint:
      "Il backend crea automaticamente kanban.db alla prima lettura. Se il problema persiste, controlla i log del dashboard.",
    board: "Bacheca",
    newBoard: "+ Nuova bacheca",
    newBoardTitle: "Nuova bacheca",
    newBoardDescription:
      "Le bacheche ti permettono di separare flussi di lavoro non correlati — una per progetto, repository o dominio. I worker su una bacheca non vedono mai le attività di un'altra.",
    slug: "Slug",
    slugHint: "— minuscolo, trattini, ad es. atm10-server",
    displayName: "Nome visualizzato",
    displayNameHint: "(facoltativo)",
    description: "Descrizione",
    descriptionHint: "(facoltativo)",
    icon: "Icona",
    iconHint: "(un singolo carattere o emoji)",
    switchAfterCreate: "Passa a questa bacheca dopo la creazione",
    cancel: "Annulla",
    creating: "Creazione…",
    createBoard: "Crea bacheca",
    search: "Cerca",
    filterCards: "Filtra schede…",
    tenant: "Tenant",
    allTenants: "Tutti i tenant",
    assignee: "Assegnatario",
    allProfiles: "Tutti i profili",
    showArchived: "Mostra archiviati",
    lanesByProfile: "Corsie per profilo",
    nudgeDispatcher: "Sollecita dispatcher",
    refresh: "Aggiorna",
    selected: "selezionato/i",
    complete: "Completa",
    archive: "Archivia",
    apply: "Applica",
    clear: "Cancella",
    createTask: "Crea attività in questa colonna",
    noTasks: "— nessuna attività —",
    unassigned: "non assegnato",
    untitled: "(senza titolo)",
    loadingDetail: "Caricamento…",
    addComment: "Aggiungi un commento… (Enter per inviare)",
    comment: "Commento",
    status: "Stato",
    workspace: "Workspace",
    skills: "Competenze",
    createdBy: "Creato da",
    result: "Result",
    comments: "Commenti",
    events: "Eventi",
    runHistory: "Cronologia esecuzioni",
    workerLog: "Log del worker",
    loadingLog: "Caricamento log…",
    noWorkerLog:
      "— nessun log del worker ancora (l'attività non è stata avviata o il log è stato ruotato) —",
    noDescription: "— nessuna descrizione —",
    noComments: "— nessun commento —",
    edit: "modifica",
    save: "Salva",
    dependencies: "Dipendenze",
    parents: "Padri:",
    children: "Figli:",
    none: "nessuno",
    addParent: "— aggiungi padre —",
    addChild: "— aggiungi figlio —",
    removeDependency: "Rimuovi dipendenza",
    block: "Blocca",
    unblock: "Sblocca",
    notifyHomeChannels: "Notifica i canali home",
    diagnostics: "Diagnostica",
    hide: "Nascondi",
    show: "Mostra",
    attention: "Attenzione",
    tasksNeedAttention: "attività richiedono attenzione",
    taskNeedsAttention: "1 attività richiede attenzione",
    diagnostic: "diagnostica",
    open: "Apri",
    close: "Chiudi (Esc)",
    reassignTo: "Riassegna a:",
    copied: "Copiato",
    copyCommand: "Copia comando negli appunti",
    reclaim: "Recupera",
    reassign: "Riassegna",
    renderingError: "La scheda Kanban ha avuto un errore di rendering",
    reloadView: "Ricarica vista",
    wsAuthFailed:
      "Autenticazione WebSocket non riuscita — ricarica la pagina per aggiornare il token di sessione.",
    markDone: "Contrassegnare {n} attività come completate?",
    markArchived: "Archiviare {n} attività?",
    warning: "Avviso",
    phantomIds: "ID fantasma:",
    active: "attivo",
    ended: "terminato",
    noProfile: "(nessun profilo)",
    showAllAttempts: "Mostra tutti i tentativi",
    sendingUpdates: "Invio aggiornamenti a",
    sendNotifications: "Invia notifiche di completed / blocked / gave_up a",
    archiveBoardConfirm:
      "Archiviare la bacheca '{name}'? Verrà spostata in boards/_archived/ in modo da poterla recuperare in seguito. Le attività di questa bacheca non appariranno più da nessuna parte nell'UI.",
    archiveBoardTitle: "Archivia questa bacheca",
    boardSwitcherHint: "Le bacheche ti permettono di separare flussi di lavoro non correlati",
    taskCreatedWarning: "Attività creata, ma: ",
    moveFailed: "Spostamento non riuscito: ",
    bulkFailed: "Massivo: ",
    completionBlockedHallucination: "⚠ Completamento bloccato — ID schede fantasma",
    suspectedHallucinatedReferences: "⚠ Il testo ha fatto riferimento a ID schede fantasma",
    pickProfileFirst: "Scegli prima un profilo.",
    unblockedMessage: "Sbloccato {id}. L'attività è pronta per il prossimo tick.",
    unblockFailed: "Sblocco non riuscito: ",
    reclaimedMessage: "Recuperato {id}. L'attività è di nuovo pronta.",
    reclaimFailed: "Recupero non riuscito: ",
    reassignedMessage: "Riassegnato {id} a {profile}.",
    reassignFailed: "Riassegnazione non riuscita: ",
    selectForBulk: "Seleziona per azioni massive",
    clickToEdit: "Clicca per modificare",
    clickToEditAssignee: "Clicca per modificare l'assegnatario",
    emptyAssignee: "(vuoto = rimuovi assegnazione)",
    columnLabels: {
      triage: "Triage",
      todo: "Da fare",
      scheduled: "Pianificato",
      ready: "Pronto",
      running: "In corso",
      blocked: "Bloccato",
      done: "Fatto",
      archived: "Archiviato",
    },
    columnHelp: {
      triage: "Idee grezze — un specifier elaborerà la specifica",
      todo: "In attesa di dipendenze o non assegnato",
      scheduled: "In attesa di un ritardo noto o di un follow-up pianificato",
      ready: "Dipendenze soddisfatte; assegna un profilo per il dispatch",
      running: "Preso in carico da un worker — in esecuzione",
      blocked: "Il worker ha richiesto input umano",
      done: "Completato",
      archived: "Archiviato",
    },
    confirmDone:
      "Contrassegnare questa attività come completata? La presa in carico del worker viene rilasciata e i figli dipendenti diventano pronti.",
    confirmArchive:
      "Archiviare questa attività? Sparirà dalla vista predefinita della bacheca.",
    confirmBlocked:
      "Contrassegnare questa attività come bloccata? La presa in carico del worker viene rilasciata.",
    completionSummary:
      "Riepilogo di completamento per {label}. Memorizzato come result dell'attività.",
    completionSummaryRequired:
      "Il riepilogo di completamento è obbligatorio prima di contrassegnare un'attività come completata.",
    triagePlaceholder: "Idea approssimativa — l'IA la specificherà…",
    taskTitlePlaceholder: "Titolo della nuova attività…",
    specifier: "specifier",
    assigneePlaceholder: "assegnatario",
    priority: "Priorità",
    skillsPlaceholder:
      "competenze (facoltative, separate da virgole): translation, github-code-review",
    noParent: "— nessun padre —",
    workspacePathDir: "percorso del workspace (richiesto, ad es. ~/projects/my-app)",
    workspacePathOptional:
      "percorso del workspace (facoltativo, derivato dall'assegnatario se vuoto)",
    logTruncated: "(mostrando ultimi 100 KB — log completo in ",
    logAt: ")",
  },
};
