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:
@@ -997,5 +997,65 @@
|
||||
"collapse": "Zusammenklappen",
|
||||
"expand": "Erweitern",
|
||||
"open": "Öffnen"
|
||||
},
|
||||
"mcpSettings": {
|
||||
"title": "MCP-Einstellungen",
|
||||
"description": "API-Schlüssel verwalten und externe Tools konfigurieren",
|
||||
"whatIsMcp": {
|
||||
"title": "Was ist MCP?",
|
||||
"description": "Das Model Context Protocol (MCP) ist ein offenes Protokoll, das es KI-Modellen ermöglicht, sicher mit externen Tools und Datenquellen zu interagieren. Mit MCP können Sie Tools wie Claude Code, Cursor oder N8N mit Ihrer Keep Notes-Instanz verbinden, um Ihre Notes programmgesteuert zu lesen, zu erstellen und zu organisieren.",
|
||||
"learnMore": "Mehr über MCP erfahren"
|
||||
},
|
||||
"serverStatus": {
|
||||
"title": "Serverstatus",
|
||||
"running": "Aktiv",
|
||||
"stopped": "Gestoppt",
|
||||
"mode": "Modus",
|
||||
"url": "URL"
|
||||
},
|
||||
"apiKeys": {
|
||||
"title": "API-Schlüssel",
|
||||
"description": "API-Schlüssel ermöglichen externen Tools den Zugriff auf Ihre Notes über MCP. Halten Sie Ihre Schlüssel geheim.",
|
||||
"generate": "Neuen Schlüssel generieren",
|
||||
"empty": "Noch keine API-Schlüssel. Generieren Sie einen, um zu beginnen.",
|
||||
"active": "Aktiv",
|
||||
"revoked": "Widerrufen",
|
||||
"revoke": "Widerrufen",
|
||||
"delete": "Löschen",
|
||||
"createdAt": "Erstellt",
|
||||
"lastUsed": "Zuletzt verwendet",
|
||||
"never": "Nie",
|
||||
"confirmRevoke": "Sind Sie sicher, dass Sie diesen Schlüssel widerrufen möchten? Tools, die ihn verwenden, verlieren den Zugriff.",
|
||||
"confirmDelete": "Sind Sie sicher, dass Sie diesen Schlüssel dauerhaft löschen möchten?"
|
||||
},
|
||||
"createDialog": {
|
||||
"title": "API-Schlüssel generieren",
|
||||
"description": "Erstellen Sie einen neuen API-Schlüssel, um externe Tools mit Ihren Notes zu verbinden.",
|
||||
"nameLabel": "Schlüsselname",
|
||||
"namePlaceholder": "z.B. Claude Code, Cursor, N8N",
|
||||
"generating": "Wird generiert...",
|
||||
"generate": "Generieren",
|
||||
"successTitle": "API-Schlüssel generiert",
|
||||
"successDescription": "Kopieren Sie Ihren API-Schlüssel jetzt. Sie können ihn später nicht mehr einsehen.",
|
||||
"copy": "Kopieren",
|
||||
"copied": "Kopiert!",
|
||||
"done": "Fertig"
|
||||
},
|
||||
"configInstructions": {
|
||||
"title": "Konfigurationsanleitung",
|
||||
"description": "Verwenden Sie Ihren API-Schlüssel zur Konfiguration dieser Tools.",
|
||||
"claudeCode": {
|
||||
"title": "Claude Code",
|
||||
"description": "Fügen Sie dies zur MCP-Konfigurationsdatei von Claude Code hinzu:"
|
||||
},
|
||||
"cursor": {
|
||||
"title": "Cursor",
|
||||
"description": "Fügen Sie dies zu Ihren Cursor MCP-Einstellungen hinzu:"
|
||||
},
|
||||
"n8n": {
|
||||
"title": "N8N",
|
||||
"description": "Verwenden Sie diese Anmeldeinformationen in Ihrem N8N MCP-Knoten:"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user