From 86b6545c3505475ac2de0cec75cc8f86ab22aceb Mon Sep 17 00:00:00 2001 From: Pereira Ricardo Date: Tue, 21 Apr 2026 14:40:05 +0200 Subject: [PATCH] feat(i18n): add Italian language support (#677) Add complete Italian (it) translations for all 7 namespaces: common, auth, settings, sidebar, chat, codeEditor, and tasks. Register Italian in languages.js and i18n config. Add .gitignore exception for it/tasks.json. Co-authored-by: Simos Mikelatos --- .gitignore | 1 + src/i18n/config.js | 18 + src/i18n/languages.js | 5 + src/i18n/locales/it/auth.json | 37 +++ src/i18n/locales/it/chat.json | 272 +++++++++++++++ src/i18n/locales/it/codeEditor.json | 36 ++ src/i18n/locales/it/common.json | 268 +++++++++++++++ src/i18n/locales/it/settings.json | 490 ++++++++++++++++++++++++++++ src/i18n/locales/it/sidebar.json | 135 ++++++++ src/i18n/locales/it/tasks.json | 142 ++++++++ 10 files changed, 1404 insertions(+) create mode 100644 src/i18n/locales/it/auth.json create mode 100644 src/i18n/locales/it/chat.json create mode 100644 src/i18n/locales/it/codeEditor.json create mode 100644 src/i18n/locales/it/common.json create mode 100644 src/i18n/locales/it/settings.json create mode 100644 src/i18n/locales/it/sidebar.json create mode 100644 src/i18n/locales/it/tasks.json diff --git a/.gitignore b/.gitignore index e9d1b52a..22616171 100755 --- a/.gitignore +++ b/.gitignore @@ -137,6 +137,7 @@ tasks/ !src/i18n/locales/ja/tasks.json !src/i18n/locales/ru/tasks.json !src/i18n/locales/de/tasks.json +!src/i18n/locales/it/tasks.json # Git worktrees .worktrees/ diff --git a/src/i18n/config.js b/src/i18n/config.js index bfc9cd53..f39dbad2 100644 --- a/src/i18n/config.js +++ b/src/i18n/config.js @@ -67,6 +67,15 @@ import deCodeEditor from './locales/de/codeEditor.json'; // eslint-disable-next-line import-x/order import deTasks from './locales/de/tasks.json'; +import itCommon from './locales/it/common.json'; +import itSettings from './locales/it/settings.json'; +import itAuth from './locales/it/auth.json'; +import itSidebar from './locales/it/sidebar.json'; +import itChat from './locales/it/chat.json'; +import itCodeEditor from './locales/it/codeEditor.json'; +// eslint-disable-next-line import-x/order +import itTasks from './locales/it/tasks.json'; + // Import supported languages configuration import { languages } from './languages.js'; @@ -143,6 +152,15 @@ i18n codeEditor: deCodeEditor, tasks: deTasks, }, + it: { + common: itCommon, + settings: itSettings, + auth: itAuth, + sidebar: itSidebar, + chat: itChat, + codeEditor: itCodeEditor, + tasks: itTasks, + }, }, // Default language diff --git a/src/i18n/languages.js b/src/i18n/languages.js index d9bcc29d..65dc823d 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js @@ -39,6 +39,11 @@ export const languages = [ label: 'German', nativeName: 'Deutsch', }, + { + value: 'it', + label: 'Italian', + nativeName: 'Italiano', + }, ]; /** diff --git a/src/i18n/locales/it/auth.json b/src/i18n/locales/it/auth.json new file mode 100644 index 00000000..af13e093 --- /dev/null +++ b/src/i18n/locales/it/auth.json @@ -0,0 +1,37 @@ +{ + "login": { + "title": "Bentornato", + "description": "Accedi al tuo account CloudCLI self-hosted", + "username": "Nome utente", + "password": "Password", + "submit": "Accedi", + "loading": "Accesso in corso...", + "errors": { + "invalidCredentials": "Nome utente o password non validi", + "requiredFields": "Compila tutti i campi", + "networkError": "Errore di rete. Riprova." + }, + "placeholders": { + "username": "Inserisci il tuo nome utente", + "password": "Inserisci la tua password" + } + }, + "register": { + "title": "Crea account", + "username": "Nome utente", + "password": "Password", + "confirmPassword": "Conferma password", + "submit": "Crea account", + "loading": "Creazione account...", + "errors": { + "passwordMismatch": "Le password non corrispondono", + "usernameTaken": "Nome utente già in uso", + "weakPassword": "La password è troppo debole" + } + }, + "logout": { + "title": "Disconnetti", + "confirm": "Sei sicuro di volerti disconnettere?", + "button": "Disconnetti" + } +} diff --git a/src/i18n/locales/it/chat.json b/src/i18n/locales/it/chat.json new file mode 100644 index 00000000..78a7555a --- /dev/null +++ b/src/i18n/locales/it/chat.json @@ -0,0 +1,272 @@ +{ + "codeBlock": { + "copy": "Copia", + "copied": "Copiato", + "copyCode": "Copia codice" + }, + "copyMessage": { + "copy": "Copia messaggio", + "copied": "Messaggio copiato", + "selectFormat": "Seleziona formato copia", + "copyAsMarkdown": "Copia come markdown", + "copyAsText": "Copia come testo" + }, + "messageTypes": { + "user": "U", + "error": "Errore", + "tool": "Strumento", + "claude": "Claude", + "cursor": "Cursor", + "codex": "Codex", + "gemini": "Gemini" + }, + "tools": { + "settings": "Impostazioni strumento", + "error": "Errore strumento", + "result": "Risultato strumento", + "viewParams": "Vedi parametri input", + "viewRawParams": "Vedi parametri grezzi", + "viewDiff": "Vedi differenze per", + "creatingFile": "Creazione nuovo file:", + "updatingTodo": "Aggiornamento lista attività", + "read": "Leggi", + "readFile": "Leggi file", + "updateTodo": "Aggiorna lista attività", + "readTodo": "Leggi lista attività", + "searchResults": "risultati" + }, + "search": { + "found": "Trovati {{count}} {{type}}", + "file": "file", + "files": "file", + "pattern": "pattern:", + "in": "in:" + }, + "fileOperations": { + "updated": "File aggiornato con successo", + "created": "File creato con successo", + "written": "File scritto con successo", + "diff": "Differenze", + "newFile": "Nuovo file", + "viewContent": "Vedi contenuto file", + "viewFullOutput": "Vedi output completo ({{count}} caratteri)", + "contentDisplayed": "Il contenuto del file è visualizzato nella vista differenze sopra" + }, + "interactive": { + "title": "Prompt interattivo", + "waiting": "In attesa della tua risposta nella CLI", + "instruction": "Seleziona un'opzione nel terminale dove Claude è in esecuzione.", + "selectedOption": "✓ Claude ha selezionato l'opzione {{number}}", + "instructionDetail": "Nella CLI, selezioneresti questa opzione interattivamente usando i tasti freccia o digitando il numero." + }, + "thinking": { + "title": "Sto pensando...", + "emoji": "💭 Sto pensando..." + }, + "json": { + "response": "Risposta JSON" + }, + "permissions": { + "grant": "Concedi permesso per {{tool}}", + "added": "Permesso aggiunto", + "addTo": "Aggiunge {{entry}} agli strumenti consentiti.", + "retry": "Permesso salvato. Riprova la richiesta per usare lo strumento.", + "error": "Impossibile aggiornare i permessi. Riprova.", + "openSettings": "Apri impostazioni" + }, + "todo": { + "updated": "Lista attività aggiornata con successo", + "current": "Lista attività corrente" + }, + "plan": { + "viewPlan": "📋 Vedi piano di implementazione", + "title": "Piano di implementazione" + }, + "usageLimit": { + "resetAt": "Limite di utilizzo Claude raggiunto. Il tuo limite verrà ripristinato alle **{{time}} {{timezone}}** - {{date}}" + }, + "codex": { + "permissionMode": "Modalità permessi", + "modes": { + "default": "Modalità predefinita", + "acceptEdits": "Accetta modifiche", + "bypassPermissions": "Ignora permessi", + "plan": "Modalità piano" + }, + "descriptions": { + "default": "Solo i comandi attendibili (ls, cat, grep, git status, ecc.) vengono eseguiti automaticamente. Gli altri comandi vengono saltati. Può scrivere nell'area di lavoro.", + "acceptEdits": "Tutti i comandi vengono eseguiti automaticamente nell'area di lavoro. Modalità completamente automatica con esecuzione sandboxed.", + "bypassPermissions": "Accesso completo al sistema senza restrizioni. Tutti i comandi vengono eseguiti automaticamente con accesso completo a disco e rete. Usa con cautela.", + "plan": "Modalità pianificazione - nessun comando viene eseguito" + }, + "technicalDetails": "Dettagli tecnici" + }, + "gemini": { + "permissionMode": "Modalità permessi Gemini", + "description": "Controlla come Gemini CLI gestisce le approvazioni delle operazioni.", + "modes": { + "default": { + "title": "Standard (chiedi approvazione)", + "description": "Gemini chiederà l'approvazione prima di eseguire comandi, scrivere file e recuperare risorse web." + }, + "autoEdit": { + "title": "Modifica automatica (salta approvazioni file)", + "description": "Gemini approverà automaticamente modifiche ai file e recupero web, ma chiederà conferma per i comandi shell." + }, + "yolo": { + "title": "YOLO (ignora tutti i permessi)", + "description": "Gemini eseguirà tutte le operazioni senza chiedere approvazione. Usa con cautela." + } + } + }, + "input": { + "placeholder": "Digita / per i comandi, @ per i file, o chiedi qualcosa a {{provider}}...", + "placeholderDefault": "Scrivi il tuo messaggio...", + "disabled": "Input disabilitato", + "attachFiles": "Allega file", + "attachImages": "Allega immagini", + "send": "Invia", + "stop": "Ferma", + "hintText": { + "ctrlEnter": "Ctrl+Invio per inviare • Shift+Invio per nuova riga • Tab per cambiare modalità • / per comandi", + "enter": "Invio per inviare • Shift+Invio per nuova riga • Tab per cambiare modalità • / per comandi" + }, + "clickToChangeMode": "Clicca per cambiare modalità permessi (o premi Tab nell'input)", + "showAllCommands": "Mostra tutti i comandi", + "clearInput": "Cancella input", + "scrollToBottom": "Scorri in basso" + }, + "thinkingMode": { + "selector": { + "title": "Modalità ragionamento", + "description": "Il ragionamento esteso dà a Claude più tempo per valutare le alternative", + "active": "Attivo", + "tip": "Modalità di ragionamento più elevate richiedono più tempo ma forniscono un'analisi più approfondita" + }, + "modes": { + "none": { + "name": "Standard", + "description": "Risposta Claude normale", + "prefix": "" + }, + "think": { + "name": "Pensa", + "description": "Ragionamento esteso base", + "prefix": "think" + }, + "thinkHard": { + "name": "Pensa di più", + "description": "Valutazione più approfondita", + "prefix": "think hard" + }, + "thinkHarder": { + "name": "Pensa ancora", + "description": "Analisi profonda con alternative", + "prefix": "think harder" + }, + "ultrathink": { + "name": "Ultrapensiero", + "description": "Budget massimo di ragionamento", + "prefix": "ultrathink" + } + }, + "buttonTitle": "Modalità ragionamento: {{mode}}" + }, + "providerSelection": { + "title": "Scegli il tuo assistente AI", + "description": "Seleziona un provider per iniziare una nuova conversazione", + "selectModel": "Seleziona modello", + "providerInfo": { + "anthropic": "di Anthropic", + "openai": "di OpenAI", + "cursorEditor": "Editor codice AI", + "google": "di Google" + }, + "readyPrompt": { + "claude": "Pronto a usare Claude con {{model}}. Inizia a digitare il tuo messaggio qui sotto.", + "cursor": "Pronto a usare Cursor con {{model}}. Inizia a digitare il tuo messaggio qui sotto.", + "codex": "Pronto a usare Codex con {{model}}. Inizia a digitare il tuo messaggio qui sotto.", + "gemini": "Pronto a usare Gemini con {{model}}. Inizia a digitare il tuo messaggio qui sotto.", + "default": "Seleziona un provider sopra per iniziare" + } + }, + "session": { + "continue": { + "title": "Continua la tua conversazione", + "description": "Fai domande sul tuo codice, richiedi modifiche o chiedi aiuto con le attività di sviluppo" + }, + "loading": { + "olderMessages": "Caricamento messaggi precedenti...", + "sessionMessages": "Caricamento messaggi della sessione..." + }, + "messages": { + "showingOf": "Visualizzati {{shown}} di {{total}} messaggi", + "scrollToLoad": "Scorri in alto per caricare altri", + "showingLast": "Visualizzati ultimi {{count}} messaggi ({{total}} totali)", + "loadEarlier": "Carica messaggi precedenti", + "loadAll": "Carica tutti i messaggi", + "loadingAll": "Caricamento di tutti i messaggi...", + "allLoaded": "Tutti i messaggi caricati", + "perfWarning": "Tutti i messaggi caricati — lo scorrimento potrebbe essere più lento. Clicca \"Scorri in basso\" per ripristinare le prestazioni." + } + }, + "shell": { + "selectProject": { + "title": "Seleziona un progetto", + "description": "Scegli un progetto per aprire una shell interattiva in quella directory" + }, + "status": { + "newSession": "Nuova sessione", + "initializing": "Inizializzazione...", + "restarting": "Riavvio..." + }, + "actions": { + "disconnect": "Disconnetti", + "disconnectTitle": "Disconnetti dalla shell", + "restart": "Riavvia", + "restartTitle": "Riavvia shell (disconnetti prima)", + "connect": "Continua nella shell", + "connectTitle": "Connetti alla shell" + }, + "loading": "Caricamento terminale...", + "connecting": "Connessione alla shell...", + "startSession": "Avvia una nuova sessione Claude", + "resumeSession": "Riprendi sessione: {{displayName}}...", + "runCommand": "Esegui {{command}} in {{projectName}}", + "startCli": "Avvio Claude CLI in {{projectName}}", + "defaultCommand": "comando" + }, + "claudeStatus": { + "actions": { + "thinking": "Ragionamento", + "processing": "Elaborazione", + "analyzing": "Analisi", + "working": "In lavorazione", + "computing": "Calcolo", + "reasoning": "Ragionamento" + }, + "state": { + "live": "Attivo", + "paused": "In pausa" + }, + "elapsed": { + "seconds": "{{count}}s", + "minutesSeconds": "{{minutes}}m {{seconds}}s", + "label": "{{time}} trascorsi", + "startingNow": "Avvio in corso" + }, + "controls": { + "stopGeneration": "Interrompi generazione", + "pressEscToStop": "Premi Esc in qualsiasi momento per interrompere" + }, + "providers": { + "assistant": "Assistente" + } + }, + "projectSelection": { + "startChatWithProvider": "Seleziona un progetto per iniziare a chattare con {{provider}}" + }, + "tasks": { + "nextTaskPrompt": "Inizia l'attività successiva" + } +} diff --git a/src/i18n/locales/it/codeEditor.json b/src/i18n/locales/it/codeEditor.json new file mode 100644 index 00000000..da2fb1cd --- /dev/null +++ b/src/i18n/locales/it/codeEditor.json @@ -0,0 +1,36 @@ +{ + "toolbar": { + "changes": "modifiche", + "previousChange": "Modifica precedente", + "nextChange": "Modifica successiva", + "hideDiff": "Nascondi evidenziazione differenze", + "showDiff": "Mostra evidenziazione differenze", + "settings": "Impostazioni editor", + "collapse": "Comprimi editor", + "expand": "Espandi editor a larghezza piena" + }, + "loading": "Caricamento {{fileName}}...", + "header": { + "showingChanges": "Visualizzazione modifiche" + }, + "actions": { + "download": "Scarica file", + "save": "Salva", + "saving": "Salvataggio...", + "saved": "Salvato!", + "exitFullscreen": "Esci dalla modalità schermo intero", + "fullscreen": "Schermo intero", + "close": "Chiudi", + "previewMarkdown": "Anteprima markdown", + "editMarkdown": "Modifica markdown" + }, + "footer": { + "lines": "Righe:", + "characters": "Caratteri:", + "shortcuts": "Premi Ctrl+S per salvare • Esc per chiudere" + }, + "binaryFile": { + "title": "File binario", + "message": "Il file \"{{fileName}}\" non può essere visualizzato nell'editor di testo perché è un file binario." + } +} diff --git a/src/i18n/locales/it/common.json b/src/i18n/locales/it/common.json new file mode 100644 index 00000000..ff890937 --- /dev/null +++ b/src/i18n/locales/it/common.json @@ -0,0 +1,268 @@ +{ + "buttons": { + "save": "Salva", + "cancel": "Annulla", + "delete": "Elimina", + "create": "Crea", + "edit": "Modifica", + "close": "Chiudi", + "confirm": "Conferma", + "submit": "Invia", + "retry": "Riprova", + "refresh": "Aggiorna", + "search": "Cerca", + "clear": "Cancella", + "copy": "Copia", + "download": "Scarica", + "upload": "Carica", + "browse": "Sfoglia" + }, + "tabs": { + "chat": "Chat", + "shell": "Terminale", + "files": "File", + "git": "Controllo Versione", + "tasks": "Attività" + }, + "status": { + "loading": "Caricamento...", + "success": "Completato", + "error": "Errore", + "failed": "Fallito", + "pending": "In attesa", + "completed": "Completato", + "inProgress": "In corso" + }, + "messages": { + "savedSuccessfully": "Salvato con successo", + "deletedSuccessfully": "Eliminato con successo", + "updatedSuccessfully": "Aggiornato con successo", + "operationFailed": "Operazione fallita", + "networkError": "Errore di rete. Controlla la tua connessione.", + "unauthorized": "Non autorizzato. Effettua l'accesso.", + "notFound": "Non trovato", + "invalidInput": "Input non valido", + "requiredField": "Questo campo è obbligatorio", + "unknownError": "Si è verificato un errore sconosciuto" + }, + "navigation": { + "settings": "Impostazioni", + "home": "Home", + "back": "Indietro", + "next": "Avanti", + "previous": "Precedente", + "logout": "Esci" + }, + "common": { + "language": "Lingua", + "theme": "Tema", + "darkMode": "Modalità scura", + "lightMode": "Modalità chiara", + "name": "Nome", + "description": "Descrizione", + "enabled": "Abilitato", + "disabled": "Disabilitato", + "optional": "Opzionale", + "version": "Versione", + "select": "Seleziona", + "selectAll": "Seleziona tutto", + "deselectAll": "Deseleziona tutto" + }, + "time": { + "justNow": "Adesso", + "minutesAgo": "{{count}} min fa", + "hoursAgo": "{{count}} ore fa", + "daysAgo": "{{count}} giorni fa", + "yesterday": "Ieri" + }, + "fileOperations": { + "newFile": "Nuovo file", + "newFolder": "Nuova cartella", + "rename": "Rinomina", + "move": "Sposta", + "copyPath": "Copia percorso", + "openInEditor": "Apri nell'editor" + }, + "mainContent": { + "loading": "Caricamento CloudCLI", + "settingUpWorkspace": "Preparazione dell'area di lavoro...", + "chooseProject": "Scegli il tuo progetto", + "selectProjectDescription": "Seleziona un progetto dalla barra laterale per iniziare a programmare con Claude. Ogni progetto contiene le tue sessioni di chat e la cronologia dei file.", + "tip": "Suggerimento", + "createProjectMobile": "Tocca il pulsante menu in alto per accedere ai progetti", + "createProjectDesktop": "Crea un nuovo progetto cliccando l'icona cartella nella barra laterale", + "newSession": "Nuova sessione", + "untitledSession": "Sessione senza titolo", + "projectFiles": "File del progetto" + }, + "fileTree": { + "loading": "Caricamento file...", + "files": "File", + "simpleView": "Vista semplice", + "compactView": "Vista compatta", + "detailedView": "Vista dettagliata", + "searchPlaceholder": "Cerca file e cartelle...", + "clearSearch": "Cancella ricerca", + "name": "Nome", + "size": "Dimensione", + "modified": "Modificato", + "permissions": "Permessi", + "noFilesFound": "Nessun file trovato", + "checkProjectPath": "Verifica che il percorso del progetto sia accessibile", + "noMatchesFound": "Nessuna corrispondenza trovata", + "tryDifferentSearch": "Prova con un termine di ricerca diverso o cancella la ricerca", + "justNow": "adesso", + "minAgo": "{{count}} min fa", + "hoursAgo": "{{count}} ore fa", + "daysAgo": "{{count}} giorni fa", + "newFile": "Nuovo file (Cmd+N)", + "newFolder": "Nuova cartella (Cmd+Shift+N)", + "refresh": "Aggiorna", + "collapseAll": "Comprimi tutto", + "context": { + "rename": "Rinomina", + "delete": "Elimina", + "copyPath": "Copia percorso", + "download": "Scarica", + "newFile": "Nuovo file", + "newFolder": "Nuova cartella", + "refresh": "Aggiorna", + "menuLabel": "Menu contestuale file", + "loading": "Caricamento..." + } + }, + "projectWizard": { + "title": "Crea nuovo progetto", + "steps": { + "type": "Tipo", + "configure": "Configura", + "confirm": "Conferma" + }, + "step1": { + "question": "Hai già un'area di lavoro o vuoi crearne una nuova?", + "existing": { + "title": "Area di lavoro esistente", + "description": "Ho già un'area di lavoro sul mio server e devo solo aggiungerla alla lista dei progetti" + }, + "new": { + "title": "Nuova area di lavoro", + "description": "Crea una nuova area di lavoro, opzionalmente clonando da un repository GitHub" + } + }, + "step2": { + "existingPath": "Percorso area di lavoro", + "newPath": "Percorso area di lavoro", + "existingPlaceholder": "/percorso/area-di-lavoro/esistente", + "newPlaceholder": "/percorso/nuova/area-di-lavoro", + "existingHelp": "Percorso completo della directory dell'area di lavoro esistente", + "newHelp": "Percorso completo della directory dell'area di lavoro", + "githubUrl": "URL GitHub (opzionale)", + "githubPlaceholder": "https://github.com/utente/repository", + "githubHelp": "Opzionale: fornisci un URL GitHub per clonare un repository", + "githubAuth": "Autenticazione GitHub (opzionale)", + "githubAuthHelp": "Richiesta solo per repository privati. I repository pubblici possono essere clonati senza autenticazione.", + "loadingTokens": "Caricamento token salvati...", + "storedToken": "Token salvato", + "newToken": "Nuovo token", + "nonePublic": "Nessuno (pubblico)", + "selectToken": "Seleziona token", + "selectTokenPlaceholder": "-- Seleziona un token --", + "tokenPlaceholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "tokenHelp": "Questo token verrà utilizzato solo per questa operazione", + "publicRepoInfo": "I repository pubblici non richiedono autenticazione. Puoi saltare il token se stai clonando un repository pubblico.", + "noTokensHelp": "Nessun token salvato disponibile. Puoi aggiungere token in Impostazioni → Chiavi API per un riutilizzo più semplice.", + "optionalTokenPublic": "Token GitHub (opzionale per repository pubblici)", + "tokenPublicPlaceholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (lascia vuoto per repository pubblici)" + }, + "step3": { + "reviewConfig": "Rivedi la tua configurazione", + "workspaceType": "Tipo area di lavoro:", + "existingWorkspace": "Area di lavoro esistente", + "newWorkspace": "Nuova area di lavoro", + "path": "Percorso:", + "cloneFrom": "Clona da:", + "authentication": "Autenticazione:", + "usingStoredToken": "Usando token salvato:", + "usingProvidedToken": "Usando token fornito", + "noAuthentication": "Nessuna autenticazione", + "sshKey": "Chiave SSH", + "existingInfo": "L'area di lavoro verrà aggiunta alla lista dei progetti e sarà disponibile per le sessioni Claude/Cursor.", + "newWithClone": "Il repository verrà clonato da questa cartella.", + "newEmpty": "L'area di lavoro verrà aggiunta alla lista dei progetti e sarà disponibile per le sessioni Claude/Cursor.", + "cloningRepository": "Clonazione repository..." + }, + "buttons": { + "cancel": "Annulla", + "back": "Indietro", + "next": "Avanti", + "createProject": "Crea progetto", + "creating": "Creazione...", + "cloning": "Clonazione..." + }, + "errors": { + "selectType": "Seleziona se hai un'area di lavoro esistente o vuoi crearne una nuova", + "providePath": "Fornisci un percorso per l'area di lavoro", + "failedToCreate": "Impossibile creare l'area di lavoro", + "failedToCreateFolder": "Impossibile creare la cartella" + } + }, + "notifications": { + "genericTool": "uno strumento", + "codes": { + "generic": { + "info": { + "title": "Notifica" + } + }, + "permission": { + "required": { + "title": "Azione richiesta", + "body": "{{toolName}} è in attesa della tua decisione." + } + }, + "run": { + "stopped": { + "title": "Esecuzione interrotta", + "body": "Motivo: {{reason}}" + }, + "failed": { + "title": "Esecuzione fallita" + } + }, + "agent": { + "notification": { + "title": "Notifica agente" + } + } + } + }, + "versionUpdate": { + "title": "Aggiornamento disponibile", + "newVersionReady": "Una nuova versione è pronta", + "currentVersion": "Versione attuale", + "latestVersion": "Ultima versione", + "whatsNew": "Novità:", + "viewFullRelease": "Vedi release completa", + "updateProgress": "Progresso aggiornamento:", + "manualUpgrade": "Aggiornamento manuale:", + "npmUpgradeCommand": "npm install -g @cloudcli-ai/cloudcli@latest", + "manualUpgradeHint": "Oppure clicca \"Aggiorna ora\" per eseguire l'aggiornamento automaticamente.", + "updateCompleted": "Aggiornamento completato con successo!", + "restartServer": "Riavvia il server per applicare le modifiche.", + "updateFailed": "Aggiornamento fallito", + "buttons": { + "close": "Chiudi", + "later": "Più tardi", + "copyCommand": "Copia comando", + "updateNow": "Aggiorna ora", + "updating": "Aggiornamento..." + }, + "ariaLabels": { + "closeModal": "Chiudi finestra aggiornamento versione", + "showSidebar": "Mostra barra laterale", + "settings": "Impostazioni", + "updateAvailable": "Aggiornamento disponibile", + "closeSidebar": "Chiudi barra laterale" + } + } +} diff --git a/src/i18n/locales/it/settings.json b/src/i18n/locales/it/settings.json new file mode 100644 index 00000000..670798ec --- /dev/null +++ b/src/i18n/locales/it/settings.json @@ -0,0 +1,490 @@ +{ + "title": "Impostazioni", + "tabs": { + "account": "Account", + "permissions": "Permessi", + "mcpServers": "Server MCP", + "appearance": "Aspetto" + }, + "account": { + "title": "Account", + "language": "Lingua", + "languageLabel": "Lingua dell'interfaccia", + "languageDescription": "Scegli la lingua preferita per l'interfaccia", + "username": "Nome utente", + "email": "Email", + "profile": "Profilo", + "changePassword": "Cambia password" + }, + "mcp": { + "title": "Server MCP", + "addServer": "Aggiungi server", + "editServer": "Modifica server", + "deleteServer": "Elimina server", + "serverName": "Nome server", + "serverType": "Tipo server", + "config": "Configurazione", + "testConnection": "Testa connessione", + "status": "Stato", + "connected": "Connesso", + "disconnected": "Disconnesso", + "scope": { + "label": "Ambito", + "user": "Utente", + "project": "Progetto" + } + }, + "appearance": { + "title": "Aspetto", + "theme": "Tema", + "codeEditor": "Editor codice", + "editorTheme": "Tema editor", + "wordWrap": "A capo automatico", + "showMinimap": "Mostra minimappa", + "lineNumbers": "Numeri di riga", + "fontSize": "Dimensione carattere" + }, + "actions": { + "saveChanges": "Salva modifiche", + "resetToDefaults": "Ripristina predefiniti", + "cancelChanges": "Annulla modifiche" + }, + "quickSettings": { + "title": "Impostazioni rapide", + "sections": { + "appearance": "Aspetto", + "toolDisplay": "Visualizzazione strumenti", + "viewOptions": "Opzioni visualizzazione", + "inputSettings": "Impostazioni input" + }, + "darkMode": "Modalità scura", + "autoExpandTools": "Espandi strumenti automaticamente", + "showRawParameters": "Mostra parametri grezzi", + "showThinking": "Mostra ragionamento", + "autoScrollToBottom": "Scorrimento automatico in basso", + "sendByCtrlEnter": "Invia con Ctrl+Invio", + "sendByCtrlEnterDescription": "Se abilitato, premere Ctrl+Invio invierà il messaggio invece di Invio. Utile per gli utenti IME per evitare invii accidentali.", + "dragHandle": { + "dragging": "Trascinamento maniglia", + "closePanel": "Chiudi pannello impostazioni", + "openPanel": "Apri pannello impostazioni", + "draggingStatus": "Trascinamento...", + "toggleAndMove": "Clicca per attivare/disattivare, trascina per spostare" + } + }, + "terminalShortcuts": { + "title": "Scorciatoie terminale", + "sectionKeys": "Tasti", + "sectionNavigation": "Navigazione", + "escape": "Escape", + "tab": "Tab", + "shiftTab": "Shift+Tab", + "arrowUp": "Freccia su", + "arrowDown": "Freccia giù", + "scrollDown": "Scorri giù", + "handle": { + "closePanel": "Chiudi pannello scorciatoie", + "openPanel": "Apri pannello scorciatoie" + } + }, + "mainTabs": { + "label": "Impostazioni", + "agents": "Agenti", + "appearance": "Aspetto", + "git": "Git", + "apiTokens": "API e Token", + "tasks": "Attività", + "notifications": "Notifiche", + "plugins": "Plugin", + "about": "Informazioni" + }, + "notifications": { + "title": "Notifiche", + "description": "Controlla quali notifiche ricevere.", + "webPush": { + "title": "Notifiche push web", + "enable": "Abilita notifiche push", + "disable": "Disabilita notifiche push", + "enabled": "Le notifiche push sono abilitate", + "loading": "Aggiornamento...", + "unsupported": "Le notifiche push non sono supportate in questo browser.", + "denied": "Le notifiche push sono bloccate. Abilitale nelle impostazioni del browser." + }, + "events": { + "title": "Tipi di evento", + "actionRequired": "Azione richiesta", + "stop": "Esecuzione interrotta", + "error": "Esecuzione fallita" + } + }, + "appearanceSettings": { + "darkMode": { + "label": "Modalità scura", + "description": "Alterna tra tema chiaro e scuro" + }, + "projectSorting": { + "label": "Ordinamento progetti", + "description": "Come vengono ordinati i progetti nella barra laterale", + "alphabetical": "Alfabetico", + "recentActivity": "Attività recente" + }, + "codeEditor": { + "title": "Editor codice", + "theme": { + "label": "Tema editor", + "description": "Tema predefinito per l'editor di codice" + }, + "wordWrap": { + "label": "A capo automatico", + "description": "Abilita il ritorno a capo automatico nell'editor" + }, + "showMinimap": { + "label": "Mostra minimappa", + "description": "Visualizza una minimappa per facilitare la navigazione nella vista differenze" + }, + "lineNumbers": { + "label": "Mostra numeri di riga", + "description": "Visualizza i numeri di riga nell'editor" + }, + "fontSize": { + "label": "Dimensione carattere", + "description": "Dimensione del carattere dell'editor in pixel" + } + } + }, + "mcpForm": { + "title": { + "add": "Aggiungi server MCP", + "edit": "Modifica server MCP" + }, + "importMode": { + "form": "Input modulo", + "json": "Importa JSON" + }, + "scope": { + "label": "Ambito", + "userGlobal": "Utente (globale)", + "projectLocal": "Progetto (locale)", + "userDescription": "Ambito utente: disponibile in tutti i progetti sulla tua macchina", + "projectDescription": "Ambito locale: disponibile solo nel progetto selezionato", + "cannotChange": "L'ambito non può essere modificato quando si modifica un server esistente" + }, + "fields": { + "serverName": "Nome server", + "transportType": "Tipo di trasporto", + "command": "Comando", + "arguments": "Argomenti (uno per riga)", + "jsonConfig": "Configurazione JSON", + "url": "URL", + "envVars": "Variabili d'ambiente (CHIAVE=valore, una per riga)", + "headers": "Header (CHIAVE=valore, uno per riga)", + "selectProject": "Seleziona un progetto..." + }, + "placeholders": { + "serverName": "mio-server" + }, + "validation": { + "missingType": "Campo obbligatorio mancante: type", + "stdioRequiresCommand": "Il tipo stdio richiede un campo command", + "httpRequiresUrl": "Il tipo {{type}} richiede un campo url", + "invalidJson": "Formato JSON non valido", + "jsonHelp": "Incolla la configurazione del server MCP in formato JSON. Esempi di formato:", + "jsonExampleStdio": "• stdio: {\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"@upstash/context7-mcp\"]}", + "jsonExampleHttp": "• http/sse: {\"type\":\"http\",\"url\":\"https://api.example.com/mcp\"}" + }, + "configDetails": "Dettagli configurazione (da {{configFile}})", + "projectPath": "Percorso: {{path}}", + "actions": { + "cancel": "Annulla", + "saving": "Salvataggio...", + "addServer": "Aggiungi server", + "updateServer": "Aggiorna server" + } + }, + "saveStatus": { + "success": "Impostazioni salvate con successo!", + "error": "Impossibile salvare le impostazioni", + "saving": "Salvataggio..." + }, + "footerActions": { + "save": "Salva impostazioni", + "cancel": "Annulla" + }, + "git": { + "title": "Configurazione Git", + "description": "Configura la tua identità git per i commit. Queste impostazioni verranno applicate globalmente tramite git config --global", + "name": { + "label": "Nome Git", + "help": "Il tuo nome per i commit git" + }, + "email": { + "label": "Email Git", + "help": "La tua email per i commit git" + }, + "actions": { + "save": "Salva configurazione", + "saving": "Salvataggio..." + }, + "status": { + "success": "Salvato con successo" + } + }, + "apiKeys": { + "title": "Chiavi API", + "description": "Genera chiavi API per accedere all'API esterna da altre applicazioni.", + "newKey": { + "alertTitle": "⚠️ Salva la tua chiave API", + "alertMessage": "Questa è l'unica volta che vedrai questa chiave. Conservala in modo sicuro.", + "iveSavedIt": "L'ho salvata" + }, + "form": { + "placeholder": "Nome chiave API (es. Server produzione)", + "createButton": "Crea", + "cancelButton": "Annulla" + }, + "newButton": "Nuova chiave API", + "empty": "Nessuna chiave API creata.", + "list": { + "created": "Creata:", + "lastUsed": "Ultimo utilizzo:" + }, + "confirmDelete": "Sei sicuro di voler eliminare questa chiave API?", + "status": { + "active": "Attiva", + "inactive": "Inattiva" + }, + "github": { + "title": "Token GitHub", + "description": "Aggiungi token di accesso personale GitHub per clonare repository privati tramite l'API esterna.", + "descriptionAlt": "Aggiungi token di accesso personale GitHub per clonare repository privati. Puoi anche passare i token direttamente nelle richieste API senza salvarli.", + "addButton": "Aggiungi token", + "form": { + "namePlaceholder": "Nome token (es. Repository personali)", + "tokenPlaceholder": "Token di accesso personale GitHub (ghp_...)", + "descriptionPlaceholder": "Descrizione (opzionale)", + "addButton": "Aggiungi token", + "cancelButton": "Annulla", + "howToCreate": "Come creare un token di accesso personale GitHub →" + }, + "empty": "Nessun token GitHub aggiunto.", + "added": "Aggiunto:", + "confirmDelete": "Sei sicuro di voler eliminare questo token GitHub?" + }, + "apiDocsLink": "Documentazione API", + "documentation": { + "title": "Documentazione API esterna", + "description": "Scopri come usare l'API esterna per avviare sessioni Claude/Cursor dalle tue applicazioni.", + "viewLink": "Vedi documentazione API →" + }, + "loading": "Caricamento...", + "version": { + "updateAvailable": "Aggiornamento disponibile: v{{version}}" + } + }, + "tasks": { + "checking": "Verifica installazione TaskMaster...", + "notInstalled": { + "title": "TaskMaster AI CLI non installato", + "description": "TaskMaster CLI è necessario per usare le funzionalità di gestione attività. Installalo per iniziare:", + "installCommand": "npm install -g task-master-ai", + "viewOnGitHub": "Vedi su GitHub", + "afterInstallation": "Dopo l'installazione:", + "steps": { + "restart": "Riavvia questa applicazione", + "autoAvailable": "Le funzionalità TaskMaster saranno automaticamente disponibili", + "initCommand": "Usa task-master init nella directory del tuo progetto" + } + }, + "settings": { + "enableLabel": "Abilita integrazione TaskMaster", + "enableDescription": "Mostra attività TaskMaster, banner e indicatori nella barra laterale nell'interfaccia" + } + }, + "agents": { + "authStatus": { + "checking": "Verifica...", + "connected": "Connesso", + "notConnected": "Non connesso", + "disconnected": "Disconnesso", + "checkingAuth": "Verifica stato autenticazione...", + "loggedInAs": "Connesso come {{email}}", + "authenticatedUser": "utente autenticato" + }, + "account": { + "claude": { + "description": "Assistente AI Anthropic Claude" + }, + "cursor": { + "description": "Editor di codice potenziato da AI Cursor" + }, + "codex": { + "description": "Assistente AI OpenAI Codex" + }, + "gemini": { + "description": "Assistente AI Google Gemini" + } + }, + "connectionStatus": "Stato connessione", + "login": { + "title": "Accedi", + "reAuthenticate": "Ri-autenticati", + "description": "Accedi al tuo account {{agent}} per abilitare le funzionalità AI", + "reAuthDescription": "Accedi con un account diverso o aggiorna le credenziali", + "button": "Accedi", + "reLoginButton": "Ri-accedi" + }, + "error": "Errore: {{error}}" + }, + "permissions": { + "title": "Impostazioni permessi", + "skipPermissions": { + "label": "Salta richieste di permesso (usa con cautela)", + "claudeDescription": "Equivalente al flag --dangerously-skip-permissions", + "cursorDescription": "Equivalente al flag -f in Cursor CLI" + }, + "allowedTools": { + "title": "Strumenti consentiti", + "description": "Strumenti automaticamente consentiti senza richiedere permesso", + "placeholder": "es. \"Bash(git log:*)\" o \"Write\"", + "quickAdd": "Aggiunta rapida strumenti comuni:", + "empty": "Nessuno strumento consentito configurato" + }, + "blockedTools": { + "title": "Strumenti bloccati", + "description": "Strumenti automaticamente bloccati senza richiedere permesso", + "placeholder": "es. \"Bash(rm:*)\"", + "empty": "Nessuno strumento bloccato configurato" + }, + "allowedCommands": { + "title": "Comandi shell consentiti", + "description": "Comandi shell automaticamente consentiti senza richiedere permesso", + "placeholder": "es. \"Shell(ls)\" o \"Shell(git status)\"", + "quickAdd": "Aggiunta rapida comandi comuni:", + "empty": "Nessun comando consentito configurato" + }, + "blockedCommands": { + "title": "Comandi shell bloccati", + "description": "Comandi shell automaticamente bloccati", + "placeholder": "es. \"Shell(rm -rf)\" o \"Shell(sudo)\"", + "empty": "Nessun comando bloccato configurato" + }, + "toolExamples": { + "title": "Esempi pattern strumenti:", + "bashGitLog": "- Consenti tutti i comandi git log", + "bashGitDiff": "- Consenti tutti i comandi git diff", + "write": "- Consenti tutti gli utilizzi dello strumento Write", + "bashRm": "- Blocca tutti i comandi rm (pericoloso)" + }, + "shellExamples": { + "title": "Esempi comandi shell:", + "ls": "- Consenti comando ls", + "gitStatus": "- Consenti git status", + "npmInstall": "- Consenti npm install", + "rmRf": "- Blocca eliminazione ricorsiva" + }, + "codex": { + "permissionMode": "Modalità permessi", + "description": "Controlla come Codex gestisce le modifiche ai file e l'esecuzione dei comandi", + "modes": { + "default": { + "title": "Predefinito", + "description": "Solo i comandi attendibili (ls, cat, grep, git status, ecc.) vengono eseguiti automaticamente. Gli altri comandi vengono saltati. Può scrivere nell'area di lavoro." + }, + "acceptEdits": { + "title": "Accetta modifiche", + "description": "Tutti i comandi vengono eseguiti automaticamente nell'area di lavoro. Modalità completamente automatica con esecuzione sandboxed." + }, + "bypassPermissions": { + "title": "Ignora permessi", + "description": "Accesso completo al sistema senza restrizioni. Tutti i comandi vengono eseguiti automaticamente con accesso completo a disco e rete. Usa con cautela." + } + }, + "technicalDetails": "Dettagli tecnici", + "technicalInfo": { + "default": "sandboxMode=workspace-write, approvalPolicy=untrusted. Comandi attendibili: cat, cd, grep, head, ls, pwd, tail, git status/log/diff/show, find (senza -exec), ecc.", + "acceptEdits": "sandboxMode=workspace-write, approvalPolicy=never. Tutti i comandi vengono auto-eseguiti nella directory del progetto.", + "bypassPermissions": "sandboxMode=danger-full-access, approvalPolicy=never. Accesso completo al sistema, usa solo in ambienti attendibili.", + "overrideNote": "Puoi sovrascrivere questa impostazione per sessione usando il pulsante modalità nell'interfaccia chat." + } + }, + "actions": { + "add": "Aggiungi" + } + }, + "mcpServers": { + "title": "Server MCP", + "description": { + "claude": "I server Model Context Protocol forniscono strumenti e fonti dati aggiuntive a Claude", + "cursor": "I server Model Context Protocol forniscono strumenti e fonti dati aggiuntive a Cursor", + "codex": "I server Model Context Protocol forniscono strumenti e fonti dati aggiuntive a Codex" + }, + "addButton": "Aggiungi server MCP", + "empty": "Nessun server MCP configurato", + "serverType": "Tipo", + "scope": { + "local": "locale", + "user": "utente" + }, + "config": { + "command": "Comando", + "url": "URL", + "args": "Argomenti", + "environment": "Ambiente" + }, + "tools": { + "title": "Strumenti", + "count": "({{count}}):", + "more": "+{{count}} altri" + }, + "actions": { + "edit": "Modifica server", + "delete": "Elimina server" + }, + "help": { + "title": "Informazioni su Codex MCP", + "description": "Codex supporta server MCP basati su stdio. Puoi aggiungere server che estendono le capacità di Codex con strumenti e risorse aggiuntive." + } + }, + "pluginSettings": { + "title": "Plugin", + "description": "Estendi l'interfaccia con plugin personalizzati. Installa da git o inserisci una cartella in ~/.claude-code-ui/plugins/", + "installPlaceholder": "https://github.com/utente/mio-plugin", + "installButton": "Installa", + "installing": "Installazione…", + "securityWarning": "Installa solo plugin di cui hai verificato il codice sorgente o di autori di cui ti fidi.", + "scanningPlugins": "Scansione plugin…", + "noPluginsInstalled": "Nessun plugin installato", + "pullLatest": "Aggiorna da git", + "noGitRemote": "Nessun remote git — aggiornamento non disponibile", + "uninstallPlugin": "Disinstalla plugin", + "confirmUninstall": "Clicca di nuovo per confermare", + "confirmUninstallMessage": "Rimuovere {{name}}? Questa azione non può essere annullata.", + "cancel": "Annulla", + "remove": "Rimuovi", + "updateFailed": "Aggiornamento fallito", + "installFailed": "Installazione fallita", + "uninstallFailed": "Disinstallazione fallita", + "toggleFailed": "Attivazione/disattivazione fallita", + "starterPluginLabel": "Plugin iniziale", + "starter": "Iniziale", + "docs": "Documentazione", + "starterPlugin": { + "name": "Statistiche progetto", + "badge": "iniziale", + "description": "Conteggio file, righe di codice, ripartizione per tipo di file e attività recente per il tuo progetto.", + "install": "Installa" + }, + "terminalPlugin": { + "name": "Terminale", + "badge": "ufficiale", + "description": "Terminale integrato con accesso completo alla shell direttamente nell'interfaccia.", + "install": "Installa" + }, + "morePlugins": "Altri", + "enable": "Abilita", + "disable": "Disabilita", + "installAriaLabel": "URL repository git del plugin", + "tab": "scheda", + "runningStatus": "in esecuzione" + } +} diff --git a/src/i18n/locales/it/sidebar.json b/src/i18n/locales/it/sidebar.json new file mode 100644 index 00000000..79a71bad --- /dev/null +++ b/src/i18n/locales/it/sidebar.json @@ -0,0 +1,135 @@ +{ + "projects": { + "title": "Progetti", + "newProject": "Nuovo progetto", + "deleteProject": "Rimuovi progetto", + "renameProject": "Rinomina progetto", + "noProjects": "Nessun progetto trovato", + "loadingProjects": "Caricamento progetti...", + "searchPlaceholder": "Cerca progetti...", + "projectNamePlaceholder": "Nome progetto", + "starred": "Preferiti", + "all": "Tutti", + "untitledSession": "Sessione senza titolo", + "newSession": "Nuova sessione", + "codexSession": "Sessione Codex", + "fetchingProjects": "Recupero dei tuoi progetti e sessioni Claude", + "projects": "progetti", + "noMatchingProjects": "Nessun progetto corrispondente", + "tryDifferentSearch": "Prova a modificare il termine di ricerca", + "runClaudeCli": "Esegui Claude CLI in una directory di progetto per iniziare" + }, + "app": { + "title": "CloudCLI", + "subtitle": "Interfaccia assistente di programmazione AI" + }, + "sessions": { + "title": "Sessioni", + "newSession": "Nuova sessione", + "deleteSession": "Elimina sessione", + "renameSession": "Rinomina sessione", + "noSessions": "Nessuna sessione", + "loadingSessions": "Caricamento sessioni...", + "unnamed": "Senza nome", + "loading": "Caricamento...", + "showMore": "Mostra più sessioni" + }, + "tooltips": { + "viewEnvironments": "Visualizza ambienti", + "hideSidebar": "Nascondi barra laterale", + "createProject": "Crea nuovo progetto", + "refresh": "Aggiorna progetti e sessioni (Ctrl+R)", + "renameProject": "Rinomina progetto (F2)", + "deleteProject": "Rimuovi progetto dalla barra laterale (Canc)", + "addToFavorites": "Aggiungi ai preferiti", + "removeFromFavorites": "Rimuovi dai preferiti", + "editSessionName": "Modifica manualmente il nome della sessione", + "deleteSession": "Elimina questa sessione permanentemente", + "save": "Salva", + "cancel": "Annulla", + "clearSearch": "Cancella ricerca" + }, + "navigation": { + "chat": "Chat", + "files": "File", + "git": "Git", + "terminal": "Terminale", + "tasks": "Attività" + }, + "actions": { + "refresh": "Aggiorna", + "settings": "Impostazioni", + "collapseAll": "Comprimi tutto", + "expandAll": "Espandi tutto", + "cancel": "Annulla", + "save": "Salva", + "delete": "Elimina", + "rename": "Rinomina", + "joinCommunity": "Unisciti alla community", + "reportIssue": "Segnala problema", + "starOnGithub": "Metti stella su GitHub" + }, + "branding": { + "openSource": "Open Source" + }, + "status": { + "active": "Attivo", + "inactive": "Inattivo", + "thinking": "Sto pensando...", + "error": "Errore", + "aborted": "Interrotto", + "unknown": "Sconosciuto" + }, + "time": { + "justNow": "Adesso", + "oneMinuteAgo": "1 min fa", + "minutesAgo": "{{count}} min fa", + "oneHourAgo": "1 ora fa", + "hoursAgo": "{{count}} ore fa", + "oneDayAgo": "1 giorno fa", + "daysAgo": "{{count}} giorni fa" + }, + "messages": { + "deleteConfirm": "Sei sicuro di voler eliminare questo elemento?", + "renameSuccess": "Rinominato con successo", + "deleteSuccess": "Eliminato con successo", + "errorOccurred": "Si è verificato un errore", + "deleteSessionConfirm": "Sei sicuro di voler eliminare questa sessione? Questa azione non può essere annullata.", + "deleteProjectConfirm": "Rimuovere questo progetto dalla barra laterale? I file del progetto, le memorie e i dati delle sessioni non verranno eliminati.", + "enterProjectPath": "Inserisci un percorso di progetto", + "deleteSessionFailed": "Impossibile eliminare la sessione. Riprova.", + "deleteSessionError": "Errore durante l'eliminazione della sessione. Riprova.", + "renameSessionFailed": "Impossibile rinominare la sessione. Riprova.", + "renameSessionError": "Errore durante la rinomina della sessione. Riprova.", + "deleteProjectFailed": "Impossibile rimuovere il progetto. Riprova.", + "deleteProjectError": "Errore durante la rimozione del progetto. Riprova.", + "createProjectFailed": "Impossibile creare il progetto. Riprova.", + "createProjectError": "Errore durante la creazione del progetto. Riprova." + }, + "version": { + "updateAvailable": "Aggiornamento disponibile" + }, + "search": { + "modeProjects": "Progetti", + "modeConversations": "Conversazioni", + "conversationsPlaceholder": "Cerca nelle conversazioni...", + "searching": "Ricerca in corso...", + "noResults": "Nessun risultato trovato", + "tryDifferentQuery": "Prova con una ricerca diversa", + "matches_one": "{{count}} corrispondenza", + "matches_other": "{{count}} corrispondenze", + "projectsScanned_one": "{{count}} progetto analizzato", + "projectsScanned_other": "{{count}} progetti analizzati" + }, + "deleteConfirmation": { + "deleteProject": "Rimuovi progetto", + "deleteSession": "Elimina sessione", + "confirmDelete": "Cosa vuoi fare con", + "sessionCount_one": "Questo progetto contiene {{count}} conversazione.", + "sessionCount_other": "Questo progetto contiene {{count}} conversazioni.", + "removeFromSidebar": "Rimuovi solo dalla barra laterale", + "deleteAllData": "Elimina tutti i dati permanentemente", + "allConversationsDeleted": "Il progetto verrà rimosso dalla barra laterale. I tuoi file, memorie e dati delle sessioni verranno preservati.", + "cannotUndo": "Puoi riaggiungerlo in seguito." + } +} diff --git a/src/i18n/locales/it/tasks.json b/src/i18n/locales/it/tasks.json new file mode 100644 index 00000000..6eb70abf --- /dev/null +++ b/src/i18n/locales/it/tasks.json @@ -0,0 +1,142 @@ +{ + "notConfigured": { + "title": "TaskMaster AI non è configurato", + "description": "TaskMaster aiuta a suddividere progetti complessi in attività gestibili con assistenza AI", + "whatIsTitle": "🎯 Cos'è TaskMaster?", + "features": { + "aiPowered": "Gestione attività AI: suddividi progetti complessi in sotto-attività gestibili", + "prdTemplates": "Template PRD: genera attività da documenti di requisiti del prodotto", + "dependencyTracking": "Tracciamento dipendenze: comprendi le relazioni tra attività e l'ordine di esecuzione", + "progressVisualization": "Visualizzazione progresso: board Kanban e analisi dettagliata delle attività", + "cliIntegration": "Integrazione CLI: usa i comandi taskmaster per flussi di lavoro avanzati" + }, + "initializeButton": "Inizializza TaskMaster AI" + }, + "gettingStarted": { + "title": "Inizia con TaskMaster", + "subtitle": "TaskMaster è inizializzato! Ecco cosa fare dopo:", + "steps": { + "createPRD": { + "title": "Crea un documento di requisiti del prodotto (PRD)", + "description": "Discuti la tua idea di progetto e crea un PRD che descriva cosa vuoi costruire.", + "addButton": "Aggiungi PRD", + "existingPRDs": "PRD esistenti:" + }, + "generateTasks": { + "title": "Genera attività dal PRD", + "description": "Una volta che hai un PRD, chiedi al tuo assistente AI di analizzarlo e TaskMaster lo suddividerà automaticamente in attività gestibili con dettagli di implementazione." + }, + "analyzeTasks": { + "title": "Analizza ed espandi le attività", + "description": "Chiedi al tuo assistente AI di analizzare la complessità delle attività ed espanderle in sotto-attività dettagliate per un'implementazione più semplice." + }, + "startBuilding": { + "title": "Inizia a costruire", + "description": "Chiedi al tuo assistente AI di iniziare a lavorare sulle attività, aggiornare il loro stato e aggiungere nuove attività man mano che il tuo progetto evolve." + } + }, + "tip": "💡 Suggerimento: inizia con un PRD per ottenere il massimo dalla generazione di attività AI di TaskMaster" + }, + "setupModal": { + "title": "Configurazione TaskMaster", + "subtitle": "CLI interattiva per {{projectName}}", + "willStart": "L'inizializzazione di TaskMaster partirà automaticamente", + "completed": "Configurazione TaskMaster completata! Ora puoi chiudere questa finestra.", + "closeButton": "Chiudi", + "closeContinueButton": "Chiudi e continua" + }, + "helpGuide": { + "title": "Inizia con TaskMaster", + "subtitle": "La tua guida per una gestione produttiva delle attività", + "examples": { + "parsePRD": "💬 Esempio:\n\"Ho appena inizializzato un nuovo progetto con Claude Task Master. Ho un PRD in .taskmaster/docs/prd.txt. Puoi aiutarmi ad analizzarlo e configurare le attività iniziali?\"", + "expandTask": "💬 Esempio:\n\"L'attività 5 sembra complessa. Puoi suddividerla in sotto-attività?\"", + "addTask": "💬 Esempio:\n\"Per favore aggiungi una nuova attività per implementare il caricamento delle immagini profilo utente usando Cloudinary, ricerca l'approccio migliore.\"" + }, + "moreExamples": "Vedi altri esempi e pattern di utilizzo →", + "proTips": { + "title": "💡 Suggerimenti pro", + "search": "Usa la barra di ricerca per trovare rapidamente attività specifiche", + "views": "Passa tra le viste Kanban, Lista e Griglia usando i selettori di vista", + "filters": "Usa i filtri per concentrarti su stati o priorità specifiche delle attività", + "details": "Clicca su qualsiasi attività per vedere informazioni dettagliate e gestire le sotto-attività" + }, + "learnMore": { + "title": "📚 Per saperne di più", + "description": "TaskMaster AI è un sistema avanzato di gestione attività pensato per sviluppatori. Trova documentazione, esempi e contribuisci al progetto.", + "githubButton": "Vedi su GitHub" + } + }, + "search": { + "placeholder": "Cerca attività..." + }, + "filters": { + "button": "Filtri", + "status": "Stato", + "priority": "Priorità", + "sortBy": "Ordina per", + "allStatuses": "Tutti gli stati", + "allPriorities": "Tutte le priorità", + "showing": "Visualizzate {{filtered}} di {{total}} attività", + "clearFilters": "Cancella filtri" + }, + "sort": { + "id": "ID", + "status": "Stato", + "priority": "Priorità", + "idAsc": "ID (crescente)", + "idDesc": "ID (decrescente)", + "titleAsc": "Titolo (A-Z)", + "titleDesc": "Titolo (Z-A)", + "statusAsc": "Stato (in attesa prima)", + "statusDesc": "Stato (completati prima)", + "priorityAsc": "Priorità (alta prima)", + "priorityDesc": "Priorità (bassa prima)" + }, + "views": { + "kanban": "Vista Kanban", + "list": "Vista lista", + "grid": "Vista griglia" + }, + "kanban": { + "pending": "📋 Da fare", + "inProgress": "🚀 In corso", + "done": "✅ Completate", + "blocked": "🚫 Bloccate", + "deferred": "⏳ Rimandate", + "cancelled": "❌ Annullate", + "noTasksYet": "Nessuna attività", + "tasksWillAppear": "Le attività appariranno qui", + "moveTasksHere": "Sposta le attività qui quando iniziate", + "completedTasksHere": "Le attività completate appariranno qui", + "statusTasksHere": "Le attività con questo stato appariranno qui" + }, + "buttons": { + "help": "Guida introduttiva TaskMaster", + "prds": "PRD", + "addPRD": "Aggiungi PRD", + "addTask": "Aggiungi attività", + "createNewPRD": "Crea nuovo PRD", + "prdsAvailable": "{{count}} PRD disponibili" + }, + "prd": { + "modified": "Modificato: {{date}}" + }, + "statuses": { + "pending": "In attesa", + "in-progress": "In corso", + "done": "Completata", + "blocked": "Bloccata", + "deferred": "Rimandata", + "cancelled": "Annullata" + }, + "priorities": { + "high": "Alta", + "medium": "Media", + "low": "Bassa" + }, + "noMatchingTasks": { + "title": "Nessuna attività corrisponde ai filtri", + "description": "Prova a modificare la ricerca o i criteri di filtro." + } +}