feat: RTL/i18n, AI translate+undo, no-refresh saves, settings perf
- RTL: force dir=rtl on LabelFilter, NotesViewToggle, LabelManagementDialog - i18n: add missing keys (notifications, privacy, edit/preview, AI translate/undo) - Settings pages: convert to Server Components (general, appearance) + loading skeleton - AI menu: add Translate option (10 languages) + Undo AI button in toolbar - Fix: saveInline uses REST API instead of Server Action → eliminates all implicit refreshes in list mode - Fix: NotesTabsView notes sync effect preserves selected note on content changes - Fix: auto-tag suggestions now filter already-assigned labels - Fix: color change in card view uses local state (no refresh) - Fix: nav links use <Link> for prefetching (Settings, Admin) - Fix: suppress duplicate label suggestions already on note - Route: add /api/ai/translate endpoint
This commit is contained in:
@@ -1041,5 +1041,65 @@
|
||||
"collapse": "Comprimi",
|
||||
"expand": "Espandi",
|
||||
"open": "Apri"
|
||||
},
|
||||
"mcpSettings": {
|
||||
"title": "Impostazioni MCP",
|
||||
"description": "Gestisci le chiavi API e configura gli strumenti esterni",
|
||||
"whatIsMcp": {
|
||||
"title": "Cos'è MCP?",
|
||||
"description": "Il Model Context Protocol (MCP) è un protocollo aperto che consente ai modelli di IA di interagire in modo sicuro con strumenti e fonti di dati esterni. Con MCP puoi collegare strumenti come Claude Code, Cursor o N8N alla tua istanza Keep Notes per leggere, creare e organizzare le tue note a livello di programmazione.",
|
||||
"learnMore": "Scopri di più su MCP"
|
||||
},
|
||||
"serverStatus": {
|
||||
"title": "Stato del server",
|
||||
"running": "In esecuzione",
|
||||
"stopped": "Arrestato",
|
||||
"mode": "Modalità",
|
||||
"url": "URL"
|
||||
},
|
||||
"apiKeys": {
|
||||
"title": "Chiavi API",
|
||||
"description": "Le chiavi API consentono agli strumenti esterni di accedere alle tue note tramite MCP. Mantieni le tue chiavi segrete.",
|
||||
"generate": "Genera una nuova chiave",
|
||||
"empty": "Nessuna chiave API. Generane una per iniziare.",
|
||||
"active": "Attiva",
|
||||
"revoked": "Revocata",
|
||||
"revoke": "Revoca",
|
||||
"delete": "Elimina",
|
||||
"createdAt": "Creata",
|
||||
"lastUsed": "Ultimo utilizzo",
|
||||
"never": "Mai",
|
||||
"confirmRevoke": "Sei sicuro di voler revocare questa chiave? Gli strumenti che la utilizzano perderanno l'accesso.",
|
||||
"confirmDelete": "Sei sicuro di voler eliminare definitivamente questa chiave?"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "Genera chiave API",
|
||||
"description": "Crea una nuova chiave API per collegare strumenti esterni alle tue note.",
|
||||
"nameLabel": "Nome della chiave",
|
||||
"namePlaceholder": "es. Claude Code, Cursor, N8N",
|
||||
"generating": "Generazione...",
|
||||
"generate": "Genera",
|
||||
"successTitle": "Chiave API generata",
|
||||
"successDescription": "Copia la tua chiave API ora. Non potrai vederla di nuovo.",
|
||||
"copy": "Copia",
|
||||
"copied": "Copiata!",
|
||||
"done": "Fatto"
|
||||
},
|
||||
"configInstructions": {
|
||||
"title": "Istruzioni di configurazione",
|
||||
"description": "Usa la tua chiave API per configurare questi strumenti.",
|
||||
"claudeCode": {
|
||||
"title": "Claude Code",
|
||||
"description": "Aggiungi questo al tuo file di configurazione MCP di Claude Code:"
|
||||
},
|
||||
"cursor": {
|
||||
"title": "Cursor",
|
||||
"description": "Aggiungi questo alle tue impostazioni MCP di Cursor:"
|
||||
},
|
||||
"n8n": {
|
||||
"title": "N8N",
|
||||
"description": "Usa queste credenziali nel tuo nodo MCP N8N:"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user