mulmoclaude 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/mulmoclaude.js +7 -24
- package/client/assets/html2canvas-Cx501zZr-DiKaqnKs.js +5 -0
- package/client/assets/{index-eHWB79u5.js → index-C94GcmNa.js} +203 -198
- package/client/assets/index-CY-WpQUm.css +2 -0
- package/client/assets/{index.es-D4YyL_Dg-BfRHLTZV.js → index.es-D4YyL_Dg-5ipqh8Pe.js} +5 -5
- package/client/assets/material-symbols-outlined-NzYEeyps.woff2 +0 -0
- package/client/index.html +2 -4
- package/package.json +17 -15
- package/server/agent/attachmentConverter.ts +2 -2
- package/server/agent/backend/claude-code.ts +170 -0
- package/server/agent/backend/index.ts +14 -0
- package/server/agent/backend/types.ts +65 -0
- package/server/agent/index.ts +31 -159
- package/server/agent/mcp-server.ts +88 -10
- package/server/agent/mcp-tools/index.ts +8 -7
- package/server/agent/mcp-tools/notify.ts +76 -0
- package/server/agent/mcp-tools/x.ts +12 -2
- package/server/agent/plugin-names.ts +10 -4
- package/server/agent/prompt.ts +187 -26
- package/server/agent/resumeFailover.ts +5 -5
- package/server/agent/sandboxMounts.ts +3 -3
- package/server/api/auth/bearerAuth.ts +3 -3
- package/server/api/auth/token.ts +2 -2
- package/server/api/routes/agent.ts +99 -4
- package/server/api/routes/chart.ts +13 -0
- package/server/api/routes/chat-index.ts +2 -1
- package/server/api/routes/config.ts +35 -8
- package/server/api/routes/files.ts +75 -24
- package/server/api/routes/html.ts +15 -2
- package/server/api/routes/image.ts +75 -20
- package/server/api/routes/mulmo-script.ts +33 -31
- package/server/api/routes/news.ts +146 -0
- package/server/api/routes/notifications.ts +58 -2
- package/server/api/routes/pdf.ts +2 -2
- package/server/api/routes/plugins.ts +73 -91
- package/server/api/routes/presentHtml.ts +9 -0
- package/server/api/routes/roles.ts +12 -2
- package/server/api/routes/scheduler.ts +20 -11
- package/server/api/routes/schedulerTasks.ts +58 -21
- package/server/api/routes/sessions.ts +15 -4
- package/server/api/routes/sessionsCursor.ts +4 -4
- package/server/api/routes/skills.ts +26 -5
- package/server/api/routes/sources.ts +8 -7
- package/server/api/routes/todos.ts +30 -0
- package/server/api/routes/todosColumnsHandlers.ts +13 -27
- package/server/api/routes/todosHandlers.ts +1 -1
- package/server/api/routes/todosItemsHandlers.ts +14 -14
- package/server/api/routes/wiki/frontmatter.ts +86 -0
- package/server/api/routes/wiki.ts +335 -75
- package/server/api/sandboxStatus.ts +1 -1
- package/server/events/notifications.ts +32 -8
- package/server/events/pub-sub/index.ts +3 -3
- package/server/events/relay-client.ts +26 -16
- package/server/events/resolveRelayBridgeOptions.ts +125 -0
- package/server/index.ts +72 -49
- package/server/system/config.ts +5 -5
- package/server/system/credentials.ts +7 -5
- package/server/system/env.ts +15 -5
- package/server/system/macosNotify.ts +152 -0
- package/server/utils/errors.ts +11 -2
- package/server/utils/fetch.ts +54 -0
- package/server/utils/files/atomic.ts +18 -17
- package/server/utils/files/image-store.ts +19 -13
- package/server/utils/files/journal-io.ts +2 -2
- package/server/utils/files/json.ts +5 -5
- package/server/utils/files/markdown-image-fill.ts +131 -0
- package/server/utils/files/markdown-store.ts +22 -6
- package/server/utils/files/naming.ts +20 -10
- package/server/utils/files/reference-dirs-io.ts +3 -3
- package/server/utils/files/roles-io.ts +4 -4
- package/server/utils/files/safe.ts +14 -14
- package/server/utils/files/scheduler-overrides-io.ts +2 -2
- package/server/utils/files/spreadsheet-store.ts +15 -10
- package/server/utils/files/workspace-io.ts +12 -12
- package/server/utils/gemini.ts +30 -4
- package/server/utils/gitignore.ts +9 -9
- package/server/utils/id.ts +40 -8
- package/server/utils/json.ts +5 -5
- package/server/utils/logBackgroundError.ts +12 -3
- package/server/utils/logPreview.ts +24 -0
- package/server/utils/markdown.ts +5 -5
- package/server/utils/port.d.mts +6 -0
- package/server/utils/port.mjs +48 -0
- package/server/utils/promptMeta.ts +32 -0
- package/server/utils/request.ts +12 -6
- package/server/utils/slug.ts +65 -4
- package/server/utils/spawn.ts +1 -1
- package/server/utils/types.ts +2 -2
- package/server/workspace/chat-index/index.ts +1 -1
- package/server/workspace/chat-index/summarizer.ts +5 -5
- package/server/workspace/custom-dirs.ts +5 -5
- package/server/workspace/helps/gemini.md +57 -0
- package/server/workspace/helps/index.md +2 -1
- package/server/workspace/helps/sources.md +42 -0
- package/server/workspace/helps/wiki.md +40 -5
- package/server/workspace/journal/archivist-cli.ts +121 -0
- package/server/workspace/journal/{archivist.ts → archivist-schemas.ts} +12 -120
- package/server/workspace/journal/dailyPass.ts +78 -38
- package/server/workspace/journal/diff.ts +2 -2
- package/server/workspace/journal/index.ts +56 -5
- package/server/workspace/journal/memoryExtractor.ts +1 -1
- package/server/workspace/journal/optimizationPass.ts +4 -5
- package/server/workspace/journal/paths.ts +8 -24
- package/server/workspace/journal/state.ts +18 -8
- package/server/workspace/news/reader.ts +248 -0
- package/server/workspace/paths.ts +4 -3
- package/server/workspace/reference-dirs.ts +3 -3
- package/server/workspace/skills/parser.ts +6 -6
- package/server/workspace/skills/scheduler.ts +5 -4
- package/server/workspace/skills/user-tasks.ts +3 -2
- package/server/workspace/skills/writer.ts +3 -3
- package/server/workspace/sources/arxivDiscovery.ts +2 -2
- package/server/workspace/sources/classifier.ts +1 -1
- package/server/workspace/sources/fetchers/rss.ts +5 -5
- package/server/workspace/sources/fetchers/rssParser.ts +4 -4
- package/server/workspace/sources/interests.ts +3 -3
- package/server/workspace/sources/paths.ts +6 -6
- package/server/workspace/sources/pipeline/fetch.ts +59 -13
- package/server/workspace/sources/pipeline/index.ts +59 -7
- package/server/workspace/sources/pipeline/notify.ts +13 -5
- package/server/workspace/sources/pipeline/plan.ts +11 -9
- package/server/workspace/sources/pipeline/summarize.ts +1 -1
- package/server/workspace/sources/pipeline/write.ts +5 -5
- package/server/workspace/sources/rateLimiter.ts +1 -1
- package/server/workspace/sources/sourceState.ts +9 -4
- package/server/workspace/sources/types.ts +9 -0
- package/server/workspace/sources/urls.ts +1 -1
- package/server/workspace/tool-trace/classify.ts +4 -4
- package/server/workspace/workspace.ts +7 -7
- package/src/App.vue +477 -251
- package/src/components/CanvasViewToggle.vue +12 -10
- package/src/components/ChatInput.vue +112 -105
- package/src/components/FileContentHeader.vue +10 -7
- package/src/components/FileContentRenderer.vue +37 -10
- package/src/components/FileTree.vue +34 -4
- package/src/components/FileTreePane.vue +32 -27
- package/src/components/FilesView.vue +5 -3
- package/src/components/FilterChip.vue +22 -0
- package/src/components/LockStatusPopup.vue +19 -13
- package/src/components/NewsView.vue +252 -0
- package/src/components/NotificationBell.vue +35 -9
- package/src/components/NotificationToast.vue +4 -1
- package/src/components/PageChatComposer.vue +101 -0
- package/src/components/PluginLauncher.vue +36 -62
- package/src/components/RightSidebar.vue +13 -10
- package/src/components/RoleSelector.vue +3 -2
- package/src/components/SessionHeaderControls.vue +63 -0
- package/src/components/SessionHistoryExpandButton.vue +30 -0
- package/src/components/SessionHistoryPanel.vue +64 -93
- package/src/components/SessionHistoryToggleButton.vue +40 -0
- package/src/components/SessionRoleIcon.vue +72 -0
- package/src/components/SessionSidebar.vue +96 -0
- package/src/components/SessionTabBar.vue +44 -51
- package/src/components/SettingsMcpTab.vue +361 -52
- package/src/components/SettingsModal.vue +203 -72
- package/src/components/SettingsReferenceDirsTab.vue +72 -51
- package/src/components/SettingsWorkspaceDirsTab.vue +74 -51
- package/src/components/SidebarHeader.vue +50 -16
- package/src/components/SourcesManager.vue +900 -0
- package/src/components/SourcesView.vue +45 -0
- package/src/components/StackView.vue +84 -48
- package/src/components/SuggestionsPanel.vue +25 -36
- package/src/components/SystemFileBanner.vue +106 -0
- package/src/components/ThinkingIndicator.vue +41 -0
- package/src/components/TodoExplorer.vue +72 -22
- package/src/components/todo/TodoAddDialog.vue +17 -12
- package/src/components/todo/TodoEditDialog.vue +7 -2
- package/src/components/todo/TodoEditPanel.vue +15 -10
- package/src/components/todo/TodoKanbanView.vue +16 -6
- package/src/components/todo/TodoListView.vue +14 -3
- package/src/components/todo/TodoTableView.vue +36 -5
- package/src/composables/favicon/conditions.ts +76 -0
- package/src/composables/favicon/resolveColor.ts +93 -0
- package/src/composables/favicon/types.ts +61 -0
- package/src/composables/useAppApi.ts +23 -0
- package/src/composables/useChatScroll.ts +5 -5
- package/src/composables/useCurrentRole.ts +32 -0
- package/src/composables/useDynamicFavicon.ts +174 -58
- package/src/composables/useEventListeners.ts +7 -12
- package/src/composables/useFaviconState.ts +93 -12
- package/src/composables/useFileSelection.ts +25 -6
- package/src/composables/useHealth.ts +76 -7
- package/src/composables/useLayoutMode.ts +27 -0
- package/src/composables/useNewsItems.ts +38 -0
- package/src/composables/useNewsReadState.ts +75 -0
- package/src/composables/useNotifications.ts +76 -13
- package/src/composables/usePendingCalls.ts +11 -1
- package/src/composables/useRoles.ts +6 -10
- package/src/composables/useRunElapsed.ts +80 -0
- package/src/composables/useSessionDerived.ts +21 -5
- package/src/composables/useSessionHistory.ts +7 -17
- package/src/composables/useSidePanelVisible.ts +25 -0
- package/src/composables/useViewLayout.ts +16 -37
- package/src/config/apiRoutes.ts +19 -6
- package/src/config/historyFilters.ts +30 -0
- package/src/config/mcpCatalog.ts +285 -0
- package/src/config/mcpTypes.ts +26 -0
- package/src/config/roles.ts +19 -51
- package/src/config/systemFileDescriptors.ts +170 -0
- package/src/config/toolNames.ts +6 -1
- package/src/config/workspacePaths.ts +1 -0
- package/src/index.css +14 -0
- package/src/lang/de.ts +706 -0
- package/src/lang/en.ts +726 -0
- package/src/lang/es.ts +712 -0
- package/src/lang/fr.ts +704 -0
- package/src/lang/ja.ts +707 -0
- package/src/lang/ko.ts +709 -0
- package/src/lang/pt-BR.ts +702 -0
- package/src/lang/zh.ts +705 -0
- package/src/lib/vue-i18n.ts +97 -0
- package/src/main.ts +3 -0
- package/src/plugins/canvas/View.vue +104 -186
- package/src/plugins/canvas/definition.ts +0 -8
- package/src/plugins/canvas/index.ts +3 -2
- package/src/plugins/chart/Preview.vue +1 -1
- package/src/plugins/chart/View.vue +9 -4
- package/src/plugins/chart/index.ts +3 -2
- package/src/plugins/editImage/index.ts +3 -2
- package/src/plugins/generateImage/index.ts +3 -2
- package/src/plugins/manageRoles/Preview.vue +4 -1
- package/src/plugins/manageRoles/View.vue +67 -46
- package/src/plugins/manageRoles/index.ts +3 -2
- package/src/plugins/manageSkills/Preview.vue +8 -3
- package/src/plugins/manageSkills/View.vue +39 -34
- package/src/plugins/manageSkills/index.ts +3 -2
- package/src/plugins/manageSource/Preview.vue +1 -1
- package/src/plugins/manageSource/View.vue +3 -687
- package/src/plugins/manageSource/index.ts +3 -2
- package/src/plugins/markdown/Preview.vue +1 -1
- package/src/plugins/markdown/View.vue +164 -73
- package/src/plugins/markdown/definition.ts +6 -4
- package/src/plugins/markdown/index.ts +3 -2
- package/src/plugins/presentForm/Preview.vue +99 -0
- package/src/plugins/presentForm/View.vue +675 -0
- package/src/plugins/presentForm/definition.ts +127 -0
- package/src/plugins/presentForm/index.ts +18 -0
- package/src/plugins/presentForm/plugin.ts +94 -0
- package/src/plugins/presentForm/types.ts +109 -0
- package/src/plugins/presentHtml/Preview.vue +1 -1
- package/src/plugins/presentHtml/View.vue +7 -4
- package/src/plugins/presentHtml/index.ts +3 -2
- package/src/plugins/presentMulmoScript/Preview.vue +1 -1
- package/src/plugins/presentMulmoScript/View.vue +36 -26
- package/src/plugins/presentMulmoScript/index.ts +3 -2
- package/src/plugins/scheduler/AutomationsPreview.vue +37 -0
- package/src/plugins/scheduler/AutomationsView.vue +23 -0
- package/src/plugins/scheduler/CalendarView.vue +23 -0
- package/src/plugins/scheduler/LegacySchedulerView.vue +32 -0
- package/src/plugins/scheduler/Preview.vue +7 -4
- package/src/plugins/scheduler/TasksTab.vue +119 -28
- package/src/plugins/scheduler/View.vue +75 -32
- package/src/plugins/scheduler/automationsDefinition.ts +58 -0
- package/src/plugins/scheduler/calendarDefinition.ts +46 -0
- package/src/plugins/scheduler/formatSchedule.ts +93 -0
- package/src/plugins/scheduler/index.ts +68 -14
- package/src/plugins/scheduler/legacyShape.ts +34 -0
- package/src/plugins/spreadsheet/Preview.vue +9 -5
- package/src/plugins/spreadsheet/View.vue +43 -57
- package/src/plugins/spreadsheet/engine/responseDecoder.ts +2 -1
- package/src/plugins/spreadsheet/index.ts +3 -2
- package/src/plugins/textResponse/Preview.vue +15 -58
- package/src/plugins/textResponse/View.vue +42 -45
- package/src/plugins/textResponse/utils.ts +25 -0
- package/src/plugins/todo/Preview.vue +11 -6
- package/src/plugins/todo/View.vue +27 -13
- package/src/plugins/todo/composables/useTodos.ts +3 -1
- package/src/plugins/todo/index.ts +3 -2
- package/src/plugins/ui-image/ImagePreview.vue +6 -3
- package/src/plugins/ui-image/ImageView.vue +7 -4
- package/src/plugins/wiki/Preview.vue +5 -2
- package/src/plugins/wiki/View.vue +539 -92
- package/src/plugins/wiki/index.ts +5 -2
- package/src/plugins/wiki/route.ts +121 -0
- package/src/router/guards.ts +43 -24
- package/src/router/index.ts +53 -26
- package/src/router/pageRoutes.ts +23 -0
- package/src/tools/index.ts +12 -5
- package/src/tools/legacyPluginNames.ts +13 -0
- package/src/types/notification.ts +31 -6
- package/src/types/vue-i18n.d.ts +20 -0
- package/src/utils/agent/eventDispatch.ts +3 -6
- package/src/utils/agent/formatElapsed.ts +37 -0
- package/src/utils/agent/request.ts +22 -1
- package/src/utils/canvas/layoutMode.ts +26 -0
- package/src/utils/canvas/sidePanelVisible.ts +19 -0
- package/src/utils/dom/scrollIntoViewByTestId.ts +38 -0
- package/src/utils/errors.ts +9 -2
- package/src/utils/files/filename.ts +24 -0
- package/src/utils/filesPreview/schedulerPreview.ts +9 -3
- package/src/utils/id.ts +18 -0
- package/src/utils/image/cacheBust.ts +16 -0
- package/src/utils/image/resolve.ts +16 -0
- package/src/utils/markdown/taskList.ts +175 -0
- package/src/utils/mcp/interpolateSpec.ts +97 -0
- package/src/utils/notification/dispatch.ts +51 -15
- package/src/utils/path/workspaceLinkRouter.ts +99 -0
- package/src/utils/session/mergeSessions.ts +5 -0
- package/src/utils/sources/filter.ts +69 -0
- package/src/vite-env.d.ts +9 -0
- package/client/assets/chunk-vKJrgz-R-C_I3GbVV.js +0 -1
- package/client/assets/html2canvas-Cx501zZr-BF5dYYkY.js +0 -5
- package/client/assets/index-Bm70FDU2.css +0 -1
- package/client/assets/typeof-DBp4T-Ny-BC0P-2DM.js +0 -1
- package/server/workspace/journal/linkRewrite.ts +0 -4
- package/src/components/ToolResultsPanel.vue +0 -77
- package/src/composables/useCanvasViewMode.ts +0 -121
- package/src/plugins/scheduler/definition.ts +0 -57
- package/src/utils/canvas/viewMode.ts +0 -46
- package/src/utils/role/plugins.ts +0 -12
- package/src/utils/session/seedRoleDefault.ts +0 -35
- /package/client/assets/{purify.es-Fx1Nqyry-PeS5RUhs.js → purify.es-Fx1Nqyry-BwJECkqS.js} +0 -0
package/src/lang/de.ts
ADDED
|
@@ -0,0 +1,706 @@
|
|
|
1
|
+
// German dictionary. Mirror the shape of src/lang/en.ts —
|
|
2
|
+
// missing keys fall back to English per createI18n's fallbackLocale.
|
|
3
|
+
|
|
4
|
+
const deMessages = {
|
|
5
|
+
common: {
|
|
6
|
+
save: "Speichern",
|
|
7
|
+
cancel: "Abbrechen",
|
|
8
|
+
loading: "Wird geladen...",
|
|
9
|
+
close: "Schließen",
|
|
10
|
+
dismiss: "Verwerfen",
|
|
11
|
+
add: "Hinzufügen",
|
|
12
|
+
remove: "Entfernen",
|
|
13
|
+
saving: "Wird gespeichert...",
|
|
14
|
+
saved: "Gespeichert",
|
|
15
|
+
noResultsYet: "Noch keine Ergebnisse",
|
|
16
|
+
noImageYet: "Noch kein Bild",
|
|
17
|
+
sendChat: "Neuen Chat starten",
|
|
18
|
+
},
|
|
19
|
+
sessionTabBar: {
|
|
20
|
+
newSession: "Neue Sitzung",
|
|
21
|
+
activeSessions: "{count} aktive Sitzung (Agent läuft) | {count} aktive Sitzungen (Agent läuft)",
|
|
22
|
+
unreadReplies: "{count} ungelesene Antwort | {count} ungelesene Antworten",
|
|
23
|
+
unreadDot: "Neue Antwort",
|
|
24
|
+
origin: {
|
|
25
|
+
scheduler: "Vom Scheduler gestartet",
|
|
26
|
+
skill: "Von einer Skill gestartet",
|
|
27
|
+
bridge: "Von einem Bridge gestartet",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
chatInput: {
|
|
31
|
+
placeholder: "Aufgabe eingeben oder Datei ziehen / einfügen / anhängen…",
|
|
32
|
+
send: "Senden",
|
|
33
|
+
attachFile: "Datei anhängen",
|
|
34
|
+
fileTooLarge: "Datei zu groß ({sizeMB} MB). Das Maximum beträgt 30 MB.",
|
|
35
|
+
unsupportedFileType: "Dateityp nicht unterstützt. Akzeptiert: Bilder, PDF, DOCX, XLSX, PPTX, Textdateien.",
|
|
36
|
+
},
|
|
37
|
+
sessionHistoryPanel: {
|
|
38
|
+
filters: {
|
|
39
|
+
all: "Alle",
|
|
40
|
+
unread: "Ungelesen",
|
|
41
|
+
human: "Mensch",
|
|
42
|
+
scheduler: "Scheduler",
|
|
43
|
+
skill: "Skill",
|
|
44
|
+
bridge: "Bridge",
|
|
45
|
+
},
|
|
46
|
+
failedToRefresh: "⚠ Aktualisieren fehlgeschlagen: {error}",
|
|
47
|
+
showingLastKnown: " — zeigt die zuletzt bekannte Liste.",
|
|
48
|
+
noSessions: "Noch keine Sitzungen.",
|
|
49
|
+
noMatching: "Keine passenden Sitzungen.",
|
|
50
|
+
running: "Läuft",
|
|
51
|
+
noMessages: "(keine Nachrichten)",
|
|
52
|
+
openRowAria: "Sitzung öffnen: {preview}",
|
|
53
|
+
},
|
|
54
|
+
notificationBell: {
|
|
55
|
+
notifications: "Benachrichtigungen",
|
|
56
|
+
markAllRead: "Alle als gelesen markieren",
|
|
57
|
+
noNotifications: "Keine Benachrichtigungen",
|
|
58
|
+
dismiss: "Verwerfen",
|
|
59
|
+
},
|
|
60
|
+
sidebarHeader: {
|
|
61
|
+
home: "Zum neuesten Chat",
|
|
62
|
+
toolCallHistory: "Tool-Aufrufverlauf",
|
|
63
|
+
settings: "Einstellungen",
|
|
64
|
+
settingsGeminiMissing: "Einstellungen — Gemini-API-Schlüssel fehlt",
|
|
65
|
+
},
|
|
66
|
+
rightSidebar: {
|
|
67
|
+
toggleSystemPrompt: "System-Prompt umschalten",
|
|
68
|
+
systemPrompt: "System-Prompt",
|
|
69
|
+
availableTools: "Verfügbare Tools",
|
|
70
|
+
toggleToolDescription: "Tool-Beschreibung umschalten",
|
|
71
|
+
toolCallHistory: "Tool-Aufrufverlauf",
|
|
72
|
+
noToolCalls: "Noch keine Tool-Aufrufe",
|
|
73
|
+
arguments: "Argumente",
|
|
74
|
+
error: "Fehler",
|
|
75
|
+
result: "Ergebnis",
|
|
76
|
+
running: "Läuft...",
|
|
77
|
+
},
|
|
78
|
+
fileTreePane: {
|
|
79
|
+
sort: "Sortieren:",
|
|
80
|
+
sortByName: "Nach Name sortieren",
|
|
81
|
+
name: "Name",
|
|
82
|
+
sortByRecent: "Nach Änderungsdatum sortieren (neueste zuerst)",
|
|
83
|
+
recent: "Zuletzt",
|
|
84
|
+
reference: "Referenz",
|
|
85
|
+
// "RO" = Read-Only. Englische Abkürzung bleibt erhalten, um als
|
|
86
|
+
// kompaktes Badge neben dem Label "Referenz" zu passen.
|
|
87
|
+
readOnlyBadge: "RO",
|
|
88
|
+
},
|
|
89
|
+
fileTree: {
|
|
90
|
+
workspace: "(Arbeitsbereich)",
|
|
91
|
+
recentlyChanged: "Kürzlich geändert",
|
|
92
|
+
},
|
|
93
|
+
lockStatusPopup: {
|
|
94
|
+
sandboxEnabledTooltip: "Sandbox aktiviert (Docker)",
|
|
95
|
+
noSandboxTooltip: "Keine Sandbox (Docker nicht gefunden)",
|
|
96
|
+
sandboxEnabledLabel: "Sandbox aktiviert:",
|
|
97
|
+
sandboxEnabledBody: "Docker läuft. Der Dateisystemzugriff ist isoliert.",
|
|
98
|
+
noSandboxLabel: "Keine Sandbox:",
|
|
99
|
+
noSandboxBodyPrefix: "Claude kann auf alle Dateien auf Ihrem Rechner zugreifen. Installieren Sie",
|
|
100
|
+
noSandboxBodySuffix: ", um die Dateisystem-Isolation zu aktivieren.",
|
|
101
|
+
dockerDesktop: "Docker Desktop",
|
|
102
|
+
hostCredentials: "Angehängte Host-Zugangsdaten:",
|
|
103
|
+
credsLoading: "wird geladen…",
|
|
104
|
+
sshAgent: "SSH-Agent:",
|
|
105
|
+
forwarded: "weitergeleitet",
|
|
106
|
+
notForwarded: "nicht weitergeleitet",
|
|
107
|
+
mountedConfigs: "Eingebundene Konfigurationen:",
|
|
108
|
+
none: "keine",
|
|
109
|
+
testIsolation: "Sandbox-Isolation testen:",
|
|
110
|
+
},
|
|
111
|
+
settingsModal: {
|
|
112
|
+
title: "Einstellungen",
|
|
113
|
+
tabs: {
|
|
114
|
+
gemini: "Gemini-API-Schlüssel",
|
|
115
|
+
tools: "Erlaubte Tools",
|
|
116
|
+
mcp: "MCP-Server",
|
|
117
|
+
dirs: "Verzeichnisse",
|
|
118
|
+
refs: "Referenzverzeichnisse",
|
|
119
|
+
},
|
|
120
|
+
// `<i18n-t>`-Slots — die Namen `envKey` / `envFile` werden in
|
|
121
|
+
// SettingsModal.vue als Inline-`<code>` gerendert, sodass die
|
|
122
|
+
// literalen Variablen- und Dateinamen unübersetzt bleiben.
|
|
123
|
+
geminiRequired: "Die Bildgenerierung erfordert {envKey}. Fügen Sie ihn zu {envFile} hinzu und starten Sie die App neu.",
|
|
124
|
+
geminiAskButton: "Claude fragen",
|
|
125
|
+
geminiAskMessage: "Welche Rolle spielt der Gemini-API-Schlüssel in dieser App?",
|
|
126
|
+
toolNamesLabel: "Tool-Namen",
|
|
127
|
+
invalidToolNamesPrefix: "Diese sehen nicht standardmäßig aus (erwartetes Präfix",
|
|
128
|
+
invalidToolNamesSuffix: "):",
|
|
129
|
+
mcpToolsError: "⚠ MCP-Tool-Status konnte nicht abgerufen werden: {error}. Alle Tools werden unabhängig von der Aktivierung angezeigt.",
|
|
130
|
+
changesHint: "Änderungen werden bei der nächsten Nachricht wirksam. Kein Neustart erforderlich.",
|
|
131
|
+
cannotSaveTooltip: "Kann nicht gespeichert werden, bis die Einstellungen erfolgreich geladen sind",
|
|
132
|
+
saving: "Wird gespeichert…",
|
|
133
|
+
loadingLabel: "Wird geladen…",
|
|
134
|
+
unsavedMarker: "●",
|
|
135
|
+
unsavedToolsConfirm: "Allowed Tools enthält ungespeicherte Änderungen. Trotzdem schließen?",
|
|
136
|
+
unsavedMcpDraftConfirm: "Ein MCP-Server-Entwurf ist noch offen. Trotzdem schließen?",
|
|
137
|
+
mcpSaveFailed: "Änderungen an den MCP-Servern konnten nicht gespeichert werden.",
|
|
138
|
+
},
|
|
139
|
+
canvasViewToggle: {
|
|
140
|
+
stackViewTooltip: "Stapelansicht · klicken, um zur Einzelansicht zu wechseln",
|
|
141
|
+
singleViewTooltip: "Einzelansicht · klicken, um zur Stapelansicht zu wechseln",
|
|
142
|
+
switchToSingle: "Zur Einzelansicht wechseln",
|
|
143
|
+
switchToStack: "Zur Stapelansicht wechseln",
|
|
144
|
+
},
|
|
145
|
+
sessionHistoryToggle: {
|
|
146
|
+
showTooltip: "Sitzungsverlauf-Panel links anzeigen",
|
|
147
|
+
hideTooltip: "Sitzungsverlauf-Panel ausblenden",
|
|
148
|
+
show: "Sitzungsverlauf anzeigen",
|
|
149
|
+
hide: "Sitzungsverlauf ausblenden",
|
|
150
|
+
},
|
|
151
|
+
sessionHistoryExpand: {
|
|
152
|
+
expandTooltip: "Sitzungsverlauf-Panel auf volle Breite erweitern",
|
|
153
|
+
collapseTooltip: "Sitzungsverlauf-Panel verkleinern",
|
|
154
|
+
expand: "Sitzungsverlauf erweitern",
|
|
155
|
+
collapse: "Sitzungsverlauf verkleinern",
|
|
156
|
+
},
|
|
157
|
+
settingsWorkspaceDirs: {
|
|
158
|
+
explanation:
|
|
159
|
+
"Benutzerdefinierte Verzeichnisse zur Organisation von Dateien unter {dataDir} und {artifactsDir}. Claude nutzt sie, um das Speichern von Dateien zu steuern.",
|
|
160
|
+
noEntries: "Keine benutzerdefinierten Verzeichnisse konfiguriert.",
|
|
161
|
+
addDirTitle: "Verzeichnis hinzufügen",
|
|
162
|
+
pathPlaceholder: "data/kunden oder artifacts/berichte",
|
|
163
|
+
descPlaceholder: "Beschreibung (was in diesen Ordner gehört)",
|
|
164
|
+
errPathRequired: "Pfad ist erforderlich",
|
|
165
|
+
errMustStartWith: "Muss mit data/ oder artifacts/ beginnen",
|
|
166
|
+
errAlreadyExists: "Existiert bereits",
|
|
167
|
+
},
|
|
168
|
+
settingsReferenceDirs: {
|
|
169
|
+
explanation:
|
|
170
|
+
"Externe Verzeichnisse, die Claude lesen, aber nicht ändern kann. Im Docker-Modus werden sie schreibgeschützt eingebunden. Nützlich, um Obsidian-Vaults, Projektcode oder Dokumentordner zu referenzieren.",
|
|
171
|
+
noEntries: "Keine Referenzverzeichnisse konfiguriert.",
|
|
172
|
+
addDirTitle: "Referenzverzeichnis hinzufügen",
|
|
173
|
+
pathPlaceholder: "/Users/ich/ObsidianVault oder ~/Dokumente/notizen",
|
|
174
|
+
labelPlaceholder: "Label (optional — Standardwert ist der Ordnername)",
|
|
175
|
+
readOnlyBadge: "schreibgeschützt",
|
|
176
|
+
errPathRequired: "Pfad ist erforderlich",
|
|
177
|
+
errMustBeAbsolute: "Muss ein absoluter Pfad sein oder mit ~/ beginnen",
|
|
178
|
+
errAlreadyExists: "Existiert bereits",
|
|
179
|
+
errLabelConflict: 'Label "{label}" existiert bereits',
|
|
180
|
+
},
|
|
181
|
+
pluginLauncher: {
|
|
182
|
+
todos: { label: "To-dos", title: "To-dos öffnen" },
|
|
183
|
+
calendar: { label: "Kalender", title: "Kalender öffnen" },
|
|
184
|
+
automations: { label: "Aktionen", title: "Aktionen öffnen" },
|
|
185
|
+
wiki: { label: "Wiki", title: "Wiki öffnen" },
|
|
186
|
+
sources: { label: "Quellen", title: "Informationsquellen öffnen" },
|
|
187
|
+
news: { label: "Nachrichten", title: "Nachrichten-Viewer öffnen" },
|
|
188
|
+
skills: { label: "Skills", title: "Skills öffnen" },
|
|
189
|
+
roles: { label: "Rollen", title: "Rollen öffnen" },
|
|
190
|
+
files: { label: "Dateien", title: "Workspace-Dateien öffnen" },
|
|
191
|
+
},
|
|
192
|
+
fileContentHeader: {
|
|
193
|
+
showRendered: "Gerendertes Markdown anzeigen",
|
|
194
|
+
showRaw: "Rohquelltext anzeigen",
|
|
195
|
+
rendered: "Gerendert",
|
|
196
|
+
raw: "Roh",
|
|
197
|
+
closeFile: "Datei schließen",
|
|
198
|
+
},
|
|
199
|
+
fileContentRenderer: {
|
|
200
|
+
selectFile: "Datei auswählen",
|
|
201
|
+
htmlPreview: "HTML-Vorschau",
|
|
202
|
+
pdfPreview: "PDF-Vorschau",
|
|
203
|
+
parseError: "Parse-Fehler",
|
|
204
|
+
},
|
|
205
|
+
settingsMcpTab: {
|
|
206
|
+
explanation:
|
|
207
|
+
"Externe MCP-Server hinzufügen. HTTP-Server funktionieren in allen Modi. Stdio-Server nutzen {npx} / {node} / {tsx} aus dem Sandbox-Image; wenn Docker aktiviert ist, müssen die Pfade im Workspace liegen.",
|
|
208
|
+
localhostRewrite: "Im Docker-Modus wird {localhost} zu {hostDockerInternal} umgeschrieben.",
|
|
209
|
+
noServers: "Noch keine MCP-Server konfiguriert.",
|
|
210
|
+
enabled: "aktiviert",
|
|
211
|
+
urlLabel: "URL:",
|
|
212
|
+
commandLabel: "Befehl:",
|
|
213
|
+
dockerNonWorkspaceWarning: "⚠ Enthält Pfade außerhalb des Workspaces — diese werden in Docker nicht aufgelöst.",
|
|
214
|
+
addServerButton: "+ MCP-Server hinzufügen",
|
|
215
|
+
nameLabel: "Name",
|
|
216
|
+
namePlaceholder: "mein-server",
|
|
217
|
+
typeHttp: "HTTP",
|
|
218
|
+
typeStdio: "Stdio (Befehl)",
|
|
219
|
+
urlFieldLabel: "URL",
|
|
220
|
+
urlPlaceholder: "https://example.com/mcp",
|
|
221
|
+
commandFieldLabel: "Befehl",
|
|
222
|
+
argsLabel: "Argumente (eins pro Zeile)",
|
|
223
|
+
// Message-Function-Form — umgeht den Message-Compiler von vue-i18n,
|
|
224
|
+
// damit das literale `@` nicht als Linked-Message-Referenz
|
|
225
|
+
// interpretiert wird.
|
|
226
|
+
argsPlaceholder: () => "-y\n@modelcontextprotocol/server-filesystem\n/workspace/path",
|
|
227
|
+
errNoName: "Bitte einen Namen angeben oder eine URL / Argumente eingeben, aus denen sich einer ableiten lässt.",
|
|
228
|
+
errBadName: "Der Name muss mit einem Kleinbuchstaben beginnen und darf nur [a-z0-9_-] enthalten.",
|
|
229
|
+
errIdExists: 'Die Server-ID "{id}" existiert bereits.',
|
|
230
|
+
errBadHttpUrl: "Die HTTP-URL muss mit http:// oder https:// beginnen",
|
|
231
|
+
pendingEntryWarning: "Schließen Sie den ausstehenden MCP-Servereintrag zuerst ab oder brechen Sie ihn ab.",
|
|
232
|
+
customHeading: "Benutzerdefinierte Server",
|
|
233
|
+
catalog: {
|
|
234
|
+
heading: "Vorkonfigurierte MCP-Server",
|
|
235
|
+
audience: { general: "🟢 Allgemein", developer: "🔵 Entwickler" },
|
|
236
|
+
risk: { low: "niedrig", medium: "mittel", high: "hoch" },
|
|
237
|
+
upstream: "📦 Quelle",
|
|
238
|
+
setupGuide: "📚 Einrichtung",
|
|
239
|
+
entry: {
|
|
240
|
+
memory: {
|
|
241
|
+
displayName: "Memory",
|
|
242
|
+
description: "Lässt Claude den Gesprächskontext über Sitzungen hinweg merken.",
|
|
243
|
+
},
|
|
244
|
+
sequentialThinking: {
|
|
245
|
+
displayName: "Sequenzielles Denken",
|
|
246
|
+
description: "Hilft Claude, komplexe Probleme schrittweise zu lösen.",
|
|
247
|
+
},
|
|
248
|
+
context7: {
|
|
249
|
+
displayName: "Context7 (Bibliotheksdokumentation)",
|
|
250
|
+
description: "Aktuelle Dokumentation gängiger Bibliotheken — geht über das Trainings-Cutoff des Modells hinaus.",
|
|
251
|
+
},
|
|
252
|
+
deepwiki: {
|
|
253
|
+
displayName: "DeepWiki (Wiki für GitHub-Repositories)",
|
|
254
|
+
description: "Stelle Fragen zu beliebigen GitHub-Repositories und erhalte eine strukturierte Antwort im Wiki-Stil.",
|
|
255
|
+
},
|
|
256
|
+
notion: {
|
|
257
|
+
displayName: "Notion",
|
|
258
|
+
description: "Lese und schreibe in deinem Notion-Workspace — Seiten, Datenbanken und Suche.",
|
|
259
|
+
field: {
|
|
260
|
+
apiKey: {
|
|
261
|
+
label: "Notion-Integrationstoken",
|
|
262
|
+
help: "Erstelle eine Notion-Integration und kopiere das Internal Integration Secret. 🔑 öffnet die Integrationen-Seite.",
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
slack: {
|
|
267
|
+
displayName: "Slack",
|
|
268
|
+
description: "Kanäle auflisten, Nachrichten senden und den Verlauf deines Slack-Workspaces durchsuchen.",
|
|
269
|
+
field: {
|
|
270
|
+
botToken: {
|
|
271
|
+
label: "Bot-Token",
|
|
272
|
+
help: "Slack-App → OAuth & Permissions → Bot User OAuth Token. Beginnt mit xoxb-.",
|
|
273
|
+
},
|
|
274
|
+
teamId: {
|
|
275
|
+
label: "Team- / Workspace-ID",
|
|
276
|
+
help: "Rufe team.info auf oder prüfe die Workspace-URL — etwa T01ABC23DEF.",
|
|
277
|
+
},
|
|
278
|
+
},
|
|
279
|
+
},
|
|
280
|
+
googleMaps: {
|
|
281
|
+
displayName: "Google Maps",
|
|
282
|
+
description: "Orte suchen, Routen berechnen und Standortdetails abrufen.",
|
|
283
|
+
field: {
|
|
284
|
+
apiKey: {
|
|
285
|
+
label: "Google-Maps-API-Key",
|
|
286
|
+
help: "Google Cloud Console → APIs & Services → Credentials → API-Key erstellen. Aktiviere Places + Directions.",
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
weatherOpenMeteo: {
|
|
291
|
+
displayName: "Wetter (Open-Meteo)",
|
|
292
|
+
description: "Kostenlose Wettervorhersagen und aktuelle Bedingungen weltweit — ohne API-Key.",
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
config: {
|
|
296
|
+
howToGet: "So erhältst du den Wert",
|
|
297
|
+
install: "Installieren",
|
|
298
|
+
errMissingRequired: "Pflichtfelder fehlen: {fields}",
|
|
299
|
+
requiredMarker: "*",
|
|
300
|
+
requiredAria: "Pflichtfeld",
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
},
|
|
304
|
+
pluginScheduler: {
|
|
305
|
+
prev: "Zurück",
|
|
306
|
+
today: "Heute",
|
|
307
|
+
goToday: "Zu Heute",
|
|
308
|
+
next: "Weiter",
|
|
309
|
+
deleteItem: "Eintrag löschen",
|
|
310
|
+
closeEditor: "Editor schließen",
|
|
311
|
+
apiError: "⚠ Scheduler-Aktualisierung fehlgeschlagen: {error}",
|
|
312
|
+
tabCalendar: "Kalender",
|
|
313
|
+
tabTasks: "Aufgaben",
|
|
314
|
+
heading: "Scheduler",
|
|
315
|
+
itemCount: "{count} Eintrag | {count} Einträge",
|
|
316
|
+
noScheduled: "Keine geplanten Einträge",
|
|
317
|
+
unscheduled: "Nicht geplant",
|
|
318
|
+
editItem: "Eintrag bearbeiten",
|
|
319
|
+
update: "Aktualisieren",
|
|
320
|
+
editSource: "Quelle bearbeiten",
|
|
321
|
+
applyChanges: "Änderungen übernehmen",
|
|
322
|
+
yamlParseError: "YAML konnte nicht geparst werden — stellen Sie sicher, dass 'title' vorhanden ist",
|
|
323
|
+
propLabel: "{key}:",
|
|
324
|
+
moreCount: "+{count} weitere",
|
|
325
|
+
previewIcon: "📅",
|
|
326
|
+
previewUpcoming: "{count} anstehend",
|
|
327
|
+
previewAutomations: "{count} Automatisierung | {count} Automatisierungen",
|
|
328
|
+
previewMore: "+ {count} weitere…",
|
|
329
|
+
},
|
|
330
|
+
pluginSchedulerTasks: {
|
|
331
|
+
recommendedFrequencies: "Empfohlene Häufigkeiten",
|
|
332
|
+
tableTaskType: "Aufgabentyp",
|
|
333
|
+
tableSuggestedSchedule: "Empfohlener Zeitplan",
|
|
334
|
+
noTasks: "Keine geplanten Aufgaben",
|
|
335
|
+
runNow: "Jetzt ausführen",
|
|
336
|
+
enable: "Aktivieren",
|
|
337
|
+
disable: "Deaktivieren",
|
|
338
|
+
delete: "Löschen",
|
|
339
|
+
nextRun: "Nächste: {time}",
|
|
340
|
+
originSystem: "System",
|
|
341
|
+
originUser: "Benutzer",
|
|
342
|
+
originSkill: "Skill",
|
|
343
|
+
runFailed: "Ausführung fehlgeschlagen: {error}",
|
|
344
|
+
toggleFailed: "Umschalten fehlgeschlagen: {error}",
|
|
345
|
+
deleteFailed: "Löschen fehlgeschlagen: {error}",
|
|
346
|
+
detailsToggle: "Details anzeigen",
|
|
347
|
+
promptLabel: "Prompt",
|
|
348
|
+
roleLabel: "Rolle",
|
|
349
|
+
},
|
|
350
|
+
pluginCanvas: {
|
|
351
|
+
undo: "Rückgängig",
|
|
352
|
+
redo: "Wiederherstellen",
|
|
353
|
+
clear: "Löschen",
|
|
354
|
+
styleLabel: "Stil:",
|
|
355
|
+
},
|
|
356
|
+
pluginChart: {
|
|
357
|
+
untitled: "Diagramm",
|
|
358
|
+
chartCount: "{count} Diagramm | {count} Diagramme",
|
|
359
|
+
chartTitle: "Diagramm {num}",
|
|
360
|
+
png: "PNG",
|
|
361
|
+
},
|
|
362
|
+
pluginTodo: {
|
|
363
|
+
clearFilters: "Alle Filter zurücksetzen",
|
|
364
|
+
deleteItem: "Eintrag löschen",
|
|
365
|
+
apiError: "⚠ Aktualisieren der To-dos fehlgeschlagen: {error}",
|
|
366
|
+
loadFailed: "Todos konnten nicht geladen werden",
|
|
367
|
+
heading: "Aufgabenliste",
|
|
368
|
+
completedRatio: "{done}/{total} erledigt",
|
|
369
|
+
filter: "Filter:",
|
|
370
|
+
noItems: "Noch keine To-dos",
|
|
371
|
+
noMatchingFilter: "Keine Einträge passen zum aktiven Filter",
|
|
372
|
+
update: "Aktualisieren",
|
|
373
|
+
clearCompleted: "Erledigte entfernen",
|
|
374
|
+
clearButton: "Löschen ✕",
|
|
375
|
+
deleteSymbol: "✕",
|
|
376
|
+
},
|
|
377
|
+
todoExplorer: {
|
|
378
|
+
heading: "To-do",
|
|
379
|
+
doneRatio: "{done}/{total} erledigt",
|
|
380
|
+
addButton: "+ Hinzufügen",
|
|
381
|
+
addColumnButton: "+ Spalte",
|
|
382
|
+
labels: "Labels:",
|
|
383
|
+
searchPlaceholder: "Suchen...",
|
|
384
|
+
clearButton: "Löschen ✕",
|
|
385
|
+
clearFiltersTitle: "Label-Filter zurücksetzen",
|
|
386
|
+
emptyHint: 'Noch keine To-dos. Klicken Sie auf "+ Hinzufügen", um eines zu erstellen.',
|
|
387
|
+
addColumn: "Spalte hinzufügen",
|
|
388
|
+
newColumnLabelField: "Label",
|
|
389
|
+
newColumnPlaceholder: "Review",
|
|
390
|
+
noMatchingFilter: "Keine Einträge passen zum aktuellen Filter",
|
|
391
|
+
},
|
|
392
|
+
todoPreview: {
|
|
393
|
+
completedRatio: "{done}/{total} erledigt",
|
|
394
|
+
moreItems: "+ {count} weitere…",
|
|
395
|
+
headerIcon: "☑",
|
|
396
|
+
doneIcon: "✓",
|
|
397
|
+
pendingIcon: "○",
|
|
398
|
+
moreLabels: "+{count}",
|
|
399
|
+
},
|
|
400
|
+
todoDialogs: {
|
|
401
|
+
addTitle: "To-do hinzufügen",
|
|
402
|
+
editTitle: "To-do bearbeiten",
|
|
403
|
+
deleteButton: "Löschen",
|
|
404
|
+
deleteTitle: "Diesen Eintrag löschen",
|
|
405
|
+
noneOption: "— Keiner —",
|
|
406
|
+
fieldText: "Text",
|
|
407
|
+
fieldNote: "Notiz",
|
|
408
|
+
fieldStatus: "Status",
|
|
409
|
+
fieldPriority: "Priorität",
|
|
410
|
+
fieldDueDate: "Fälligkeitsdatum",
|
|
411
|
+
fieldLabels: "Labels",
|
|
412
|
+
fieldLabelsCommaSeparated: "Labels (durch Komma getrennt)",
|
|
413
|
+
textPlaceholder: "Was muss erledigt werden?",
|
|
414
|
+
labelsPlaceholder: "arbeit, dringend",
|
|
415
|
+
},
|
|
416
|
+
todoKanban: {
|
|
417
|
+
rename: "Umbenennen",
|
|
418
|
+
alreadyDoneColumn: 'Bereits Spalte „Erledigt"',
|
|
419
|
+
markAsDoneColumn: 'Als Spalte „Erledigt" markieren',
|
|
420
|
+
deleteColumn: "Spalte löschen",
|
|
421
|
+
columnActions: "Spaltenaktionen",
|
|
422
|
+
addCard: "+ Karte hinzufügen",
|
|
423
|
+
openCardAria: "Aufgabe öffnen: {task}",
|
|
424
|
+
},
|
|
425
|
+
todoTableList: {
|
|
426
|
+
noMatchingFilter: "Keine Einträge passen zum aktuellen Filter",
|
|
427
|
+
sortColumnAria: "Nach {column} sortieren",
|
|
428
|
+
expandRowAria: "Aufgabe ausklappen: {task}",
|
|
429
|
+
},
|
|
430
|
+
pluginWiki: {
|
|
431
|
+
backToIndex: "Zurück zum Index",
|
|
432
|
+
pdf: "PDF",
|
|
433
|
+
pdfFailed: "⚠ PDF fehlgeschlagen",
|
|
434
|
+
tabIndex: "Index",
|
|
435
|
+
tabLog: "Protokoll",
|
|
436
|
+
tabLint: "Lint",
|
|
437
|
+
empty: "Das Wiki ist leer. Bitten Sie den Wiki Manager, eine Quelle einzulesen.",
|
|
438
|
+
previewMore: "+ {count} weitere…",
|
|
439
|
+
chatPlaceholder: "Fragen Sie zu dieser Seite…",
|
|
440
|
+
emptyPage: "Die Seite „{title}“ existiert noch nicht.",
|
|
441
|
+
emptyContent: "Die Seite „{title}“ existiert, hat aber keinen Inhalt.",
|
|
442
|
+
createPage: "Erstellung dieser Wiki-Seite anfordern",
|
|
443
|
+
updatePage: "Aktualisierung dieser Wiki-Seite anfordern",
|
|
444
|
+
tagFilterAll: "Alle",
|
|
445
|
+
noMatches: "Keine Seiten mit dem Tag #{tag}",
|
|
446
|
+
lintChat: "Wiki prüfen",
|
|
447
|
+
taskCountMismatch:
|
|
448
|
+
"Wiki-Quelle und gerendertes Ergebnis stimmen in der Anzahl der Aufgaben nicht überein. Die Umschaltung wurde abgelehnt, um eine Beschädigung der Datei zu vermeiden.",
|
|
449
|
+
},
|
|
450
|
+
pluginPresentForm: {
|
|
451
|
+
fallbackTitle: "Formular",
|
|
452
|
+
fieldCount: "{count} Feld | {count} Felder",
|
|
453
|
+
submitted: "Gesendet",
|
|
454
|
+
errorSummary: "Bitte korrigieren Sie die folgenden Fehler",
|
|
455
|
+
requiredMarker: "*",
|
|
456
|
+
selectOption: "Bitte auswählen",
|
|
457
|
+
charactersCount: "{current} / {max} Zeichen",
|
|
458
|
+
charactersCountNoMax: "{current} Zeichen",
|
|
459
|
+
submit: "Senden",
|
|
460
|
+
progress: "{filled} von {total} Pflichtfeldern ausgefüllt",
|
|
461
|
+
},
|
|
462
|
+
pluginPresentHtml: {
|
|
463
|
+
saveAsPdf: "Als PDF speichern (öffnet Druckdialog)",
|
|
464
|
+
pdf: "PDF",
|
|
465
|
+
untitled: "HTML-Seite",
|
|
466
|
+
hideSource: "Quelltext ausblenden <>",
|
|
467
|
+
showSource: "Quelltext anzeigen <>",
|
|
468
|
+
},
|
|
469
|
+
pluginNews: {
|
|
470
|
+
title: "Nachrichten",
|
|
471
|
+
itemCount: "{unread} ungelesen / {total} insgesamt",
|
|
472
|
+
filterAll: "Alle",
|
|
473
|
+
filterUnread: "Ungelesen",
|
|
474
|
+
allSources: "Alle",
|
|
475
|
+
markAllRead: "Alle als gelesen markieren",
|
|
476
|
+
selectPrompt: "Wähle einen Eintrag zum Lesen aus.",
|
|
477
|
+
empty: "Keine Nachrichten in dieser Ansicht.",
|
|
478
|
+
unread: "Ungelesen",
|
|
479
|
+
openOriginal: "Original öffnen",
|
|
480
|
+
noBody: "Kein Inhalt verfügbar — öffne den Originalartikel.",
|
|
481
|
+
bodyError: "Inhalt konnte nicht geladen werden: {error}",
|
|
482
|
+
loadError: "Nachrichten konnten nicht geladen werden: {error}",
|
|
483
|
+
chatPlaceholder: "Fragen Sie alles zu diesem Artikel",
|
|
484
|
+
},
|
|
485
|
+
pluginManageSource: {
|
|
486
|
+
titlePlaceholder: "Titel (optional)",
|
|
487
|
+
heading: "Informationsquellen",
|
|
488
|
+
chatPlaceholder: "Fragen Sie zu Ihren Informationsquellen…",
|
|
489
|
+
sourceCount: "{count} Quelle | {count} Quellen",
|
|
490
|
+
addButton: "Hinzufügen",
|
|
491
|
+
rebuildNow: "Jetzt neu aufbauen",
|
|
492
|
+
rebuilding: "Wird neu aufgebaut…",
|
|
493
|
+
typeField: "Typ",
|
|
494
|
+
addingLabel: "Wird hinzugefügt…",
|
|
495
|
+
addAndRebuild: "Hinzufügen + Neu aufbauen",
|
|
496
|
+
emptyPickPack:
|
|
497
|
+
"Noch keine Quellen registriert. Wählen Sie unten ein Starter-Paket, klicken Sie oben auf {addBold} oder bitten Sie Claude, eine zu registrieren.",
|
|
498
|
+
emptyAddStrong: "+ Hinzufügen",
|
|
499
|
+
registering: "Wird registriert und abgerufen…",
|
|
500
|
+
removeLabel: "Entfernen",
|
|
501
|
+
removingLabel: "Wird entfernt…",
|
|
502
|
+
todaysBrief: "Heutiges Briefing",
|
|
503
|
+
todaysBriefLoading: "Heutiges Briefing wird geladen…",
|
|
504
|
+
briefNone: "Für dieses Datum wurde noch kein Briefing erstellt. Klicken Sie auf Jetzt neu aufbauen.",
|
|
505
|
+
briefEmpty: "Das heutige Briefing ist leer.",
|
|
506
|
+
briefLoadFailed: "Briefing konnte nicht geladen werden",
|
|
507
|
+
lastRebuildSummary: "Letzter Neuaufbau ({date}): {itemCount} Einträge aus {planned} Quellen, {duplicates} Duplikate verworfen.",
|
|
508
|
+
archiveErrorsSuffix: "({count} Archivfehler)",
|
|
509
|
+
kindRss: "RSS",
|
|
510
|
+
kindGithubRel: "GitHub-Releases",
|
|
511
|
+
kindGithubIss: "GitHub-Issues",
|
|
512
|
+
kindArxiv: "arXiv",
|
|
513
|
+
kindGithubReleases: "GitHub-Releases",
|
|
514
|
+
kindGithubIssues: "GitHub-Issues",
|
|
515
|
+
briefDateLabel: "({date})",
|
|
516
|
+
primaryRssPlaceholder: "https://news.ycombinator.com/rss",
|
|
517
|
+
primaryGithubPlaceholder: "https://github.com/owner/repo (oder owner/repo)",
|
|
518
|
+
primaryArxivPlaceholder: "cat:cs.CL",
|
|
519
|
+
primaryRssHint: "Feed-URL (RSS 2.0 / Atom / RDF)",
|
|
520
|
+
primaryGithubRelHint: "GitHub-Repo-URL oder owner/repo — ruft Releases ab",
|
|
521
|
+
primaryGithubIssHint: "GitHub-Repo-URL oder owner/repo — ruft Issues ab",
|
|
522
|
+
primaryArxivHint: "arXiv-Suchabfrage (z. B. cat:cs.CL oder au:hinton)",
|
|
523
|
+
confirmRemove: 'Quelle "{slug}" entfernen?',
|
|
524
|
+
flashRegistered: "Registriert. Neue Einträge werden abgerufen…",
|
|
525
|
+
flashRebuildReady: "Bereit: {itemCount} Einträge aus {planned} Quelle.|Bereit: {itemCount} Einträge aus {planned} Quellen.",
|
|
526
|
+
flashRebuildComplete: "Neuaufbau abgeschlossen: {itemCount} Einträge aus {planned} Quellen.",
|
|
527
|
+
flashRebuildFailed: "Neuaufbau fehlgeschlagen: {error}",
|
|
528
|
+
flashRegisterFailed: "Registrierung der Quelle fehlgeschlagen",
|
|
529
|
+
flashRegisterSucceededRebuildFailed: "Registrierung erfolgreich, aber Neuaufbau fehlgeschlagen: {error}",
|
|
530
|
+
flashRemoved: '"{slug}" entfernt.',
|
|
531
|
+
flashRemoveFailed: "Entfernen fehlgeschlagen: {error}",
|
|
532
|
+
flashRefreshListFailed: "Aktualisieren der Quellen fehlgeschlagen: {error}",
|
|
533
|
+
flashPresetAlreadyRegistered: 'Alle Quellen in "{label}" sind bereits registriert.',
|
|
534
|
+
flashPresetRegistered: '{count} Quelle aus "{label}" registriert. Wird abgerufen…|{count} Quellen aus "{label}" registriert. Wird abgerufen…',
|
|
535
|
+
flashPresetPartial: "{ok}/{total} registriert. Fehler: {errors}",
|
|
536
|
+
errPrimaryRequired: "Bitte das Feld URL / Abfrage ausfüllen.",
|
|
537
|
+
errRssUrlProtocol: "RSS-Feed-URL muss mit http:// oder https:// beginnen.",
|
|
538
|
+
errRssUrlInvalid: "RSS-Feed-URL ist keine gültige URL.",
|
|
539
|
+
errRssUrlHost: "RSS-Feed-URL muss einen Host enthalten.",
|
|
540
|
+
errGithubInvalid: "Bitte eine GitHub-Repo-URL (https://github.com/owner/repo) oder owner/repo angeben.",
|
|
541
|
+
errUnsupportedKind: "Nicht unterstützter Fetcher-Typ.",
|
|
542
|
+
initialLoading: "Quellen werden geladen…",
|
|
543
|
+
initialLoadFailed: "Quellen konnten nicht geladen werden.",
|
|
544
|
+
retryLabel: "Erneut versuchen",
|
|
545
|
+
filter: {
|
|
546
|
+
all: "Alle",
|
|
547
|
+
rss: "RSS",
|
|
548
|
+
github: "GitHub",
|
|
549
|
+
arxiv: "arXiv",
|
|
550
|
+
scheduleDaily: "Täglich",
|
|
551
|
+
scheduleWeekly: "Wöchentlich",
|
|
552
|
+
scheduleManual: "Manuell",
|
|
553
|
+
noMatching: "Keine Quellen passen zum aktuellen Filter.",
|
|
554
|
+
clearFilter: "Filter zurücksetzen",
|
|
555
|
+
},
|
|
556
|
+
},
|
|
557
|
+
pluginManageSkills: {
|
|
558
|
+
deleteProjectSkill: "Diese Projekt-Skill löschen",
|
|
559
|
+
heading: "Skills",
|
|
560
|
+
previewCount: "{count} Skill | {count} Skills",
|
|
561
|
+
previewMore: "+{count} weitere",
|
|
562
|
+
subheading: ({ named }: { named: (key: string) => unknown }) => `${named("count")} verfügbar · zum Anzeigen klicken · "Run" ruft sie als /<name> auf`,
|
|
563
|
+
emptyWithPath: "Keine Skills gefunden. Fügen Sie Skill-Ordner unter {path} hinzu.",
|
|
564
|
+
emptySkillPath: "~/.claude/skills/",
|
|
565
|
+
selectHint: "Wählen Sie links eine Skill aus, um ihre SKILL.md anzuzeigen.",
|
|
566
|
+
loading: "Wird geladen…",
|
|
567
|
+
fieldDescription: "Beschreibung",
|
|
568
|
+
fieldBody: "Inhalt (Markdown)",
|
|
569
|
+
emptyBody: "(leerer Inhalt)",
|
|
570
|
+
btnEdit: "Bearbeiten",
|
|
571
|
+
btnDelete: "Löschen",
|
|
572
|
+
btnRun: "Ausführen",
|
|
573
|
+
errListFailed: "Skills konnten nicht geladen werden: {error}",
|
|
574
|
+
errDetailFailed: "Skill konnte nicht geladen werden: {error}",
|
|
575
|
+
errSaveFailed: "Speichern fehlgeschlagen: {error}",
|
|
576
|
+
errDeleteFailed: "Löschen fehlgeschlagen",
|
|
577
|
+
confirmDelete: 'Skill "{name}" löschen? Dies entfernt ~/mulmoclaude/.claude/skills/{name}/SKILL.md.',
|
|
578
|
+
},
|
|
579
|
+
pluginManageRoles: {
|
|
580
|
+
heading: "Benutzerdefinierte Rollen",
|
|
581
|
+
roleCount: "{count} Rolle | {count} Rollen",
|
|
582
|
+
previewCount: "{count} benutzerdefinierte Rolle | {count} benutzerdefinierte Rollen",
|
|
583
|
+
addButton: "+ Hinzufügen",
|
|
584
|
+
createPanel: "Neue Rolle erstellen",
|
|
585
|
+
fieldId: "ID",
|
|
586
|
+
fieldName: "Name",
|
|
587
|
+
fieldIcon: "Symbol",
|
|
588
|
+
fieldPrompt: "Prompt",
|
|
589
|
+
fieldPlugins: "Plugins",
|
|
590
|
+
fieldStarterQueries: "Einstiegsfragen",
|
|
591
|
+
onePerLine: "(eine pro Zeile)",
|
|
592
|
+
helpLink: "?",
|
|
593
|
+
idFormatted: "({id})",
|
|
594
|
+
missingEnv: "({env} fehlt)",
|
|
595
|
+
requiresEnv: "Erfordert {env} in .env",
|
|
596
|
+
collapse: "Einklappen",
|
|
597
|
+
expand: "Ausklappen",
|
|
598
|
+
idPlaceholder: "eindeutige-id",
|
|
599
|
+
creating: "Wird erstellt…",
|
|
600
|
+
create: "Erstellen",
|
|
601
|
+
updating: "Wird aktualisiert…",
|
|
602
|
+
update: "Aktualisieren",
|
|
603
|
+
cancel: "Abbrechen",
|
|
604
|
+
delete: "Löschen",
|
|
605
|
+
emptyHint: 'Noch keine benutzerdefinierten Rollen. Klicken Sie auf "+ Hinzufügen" oder bitten Sie Claude, eine zu erstellen.',
|
|
606
|
+
errIdRequired: "Die ID ist erforderlich.",
|
|
607
|
+
errIdInvalid: "Die ID darf nur Buchstaben, Zahlen, '-' und '_' enthalten.",
|
|
608
|
+
errNameRequired: "Der Name ist erforderlich.",
|
|
609
|
+
errIdDuplicate: "Eine Rolle mit der ID '{id}' existiert bereits.",
|
|
610
|
+
errCreateFailed: "Erstellen fehlgeschlagen",
|
|
611
|
+
errSaveFailed: "Speichern fehlgeschlagen",
|
|
612
|
+
errDeleteFailed: "Löschen fehlgeschlagen",
|
|
613
|
+
errNetworkError: "Netzwerkfehler",
|
|
614
|
+
errServerError: "Serverfehler: {status}",
|
|
615
|
+
},
|
|
616
|
+
pluginUiImage: {
|
|
617
|
+
promptLabel: "{label}:",
|
|
618
|
+
},
|
|
619
|
+
pluginMulmoScript: {
|
|
620
|
+
beatCount: "{count} Beat | {count} Beats",
|
|
621
|
+
movie: "Video",
|
|
622
|
+
generating: "Wird generiert…",
|
|
623
|
+
rendering: "Wird gerendert…",
|
|
624
|
+
saving: "Wird gespeichert…",
|
|
625
|
+
update: "Aktualisieren",
|
|
626
|
+
characters: "Charaktere",
|
|
627
|
+
drop: "Ablegen",
|
|
628
|
+
gen: "Generieren",
|
|
629
|
+
play: "▶ Abspielen",
|
|
630
|
+
stop: "■ Stoppen",
|
|
631
|
+
errPrefix: "⚠ Fehler",
|
|
632
|
+
noBeats: "Keine Beats im Skript gefunden",
|
|
633
|
+
editSource: "Skript-Quelle bearbeiten",
|
|
634
|
+
applyChanges: "Änderungen übernehmen",
|
|
635
|
+
generateAll: "Alle generieren",
|
|
636
|
+
orDropImage: "oder Bild ablegen",
|
|
637
|
+
generate: "Generieren",
|
|
638
|
+
generateAudio: "♪ Generieren",
|
|
639
|
+
saveErrorInvalidJson: "⚠ Ungültiges JSON: {error}",
|
|
640
|
+
saveErrorSaveFailed: "⚠ Speichern fehlgeschlagen: {error}",
|
|
641
|
+
},
|
|
642
|
+
pluginMarkdown: {
|
|
643
|
+
loading: "Dokument wird geladen...",
|
|
644
|
+
loadFailed: "⚠ Laden des Dokuments fehlgeschlagen: {error}",
|
|
645
|
+
refreshFailed: "⚠ Aktualisieren des Dokuments fehlgeschlagen: {error} — es wird der zuletzt erfolgreich geladene Inhalt angezeigt.",
|
|
646
|
+
noContent: "Kein Markdown-Inhalt verfügbar",
|
|
647
|
+
pdf: "PDF",
|
|
648
|
+
pdfFailedShort: "⚠ PDF fehlgeschlagen",
|
|
649
|
+
editSource: "Markdown-Quelle bearbeiten",
|
|
650
|
+
saving: "Wird gespeichert...",
|
|
651
|
+
applyChanges: "Änderungen übernehmen",
|
|
652
|
+
cancel: "Abbrechen",
|
|
653
|
+
saveFailed: "Speichern fehlgeschlagen: {error}",
|
|
654
|
+
saveError: "⚠ {error}",
|
|
655
|
+
copyLabel: "Kopieren",
|
|
656
|
+
copiedLabel: "Kopiert!",
|
|
657
|
+
taskCountMismatch:
|
|
658
|
+
"Die Anzahl der Aufgaben in der Markdown-Quelle und im gerenderten Ergebnis stimmt nicht überein. Das Umschalten wurde abgelehnt, um eine Beschädigung der Datei zu vermeiden.",
|
|
659
|
+
},
|
|
660
|
+
pluginTextResponse: {
|
|
661
|
+
pdf: "PDF",
|
|
662
|
+
pdfFailed: "⚠ PDF fehlgeschlagen",
|
|
663
|
+
editContent: "Textinhalt bearbeiten",
|
|
664
|
+
applyChanges: "Änderungen übernehmen",
|
|
665
|
+
copyLabel: "Kopieren",
|
|
666
|
+
copiedLabel: "Kopiert!",
|
|
667
|
+
cancel: "Abbrechen",
|
|
668
|
+
},
|
|
669
|
+
pluginSpreadsheet: {
|
|
670
|
+
previewUntitled: "Tabelle",
|
|
671
|
+
previewSheets: "{count} Blatt | {count} Blätter",
|
|
672
|
+
untitled: "Tabelle",
|
|
673
|
+
excel: "Excel",
|
|
674
|
+
valuePlaceholder: "Wert",
|
|
675
|
+
valueOrFormulaPlaceholder: "Wert oder Formel (z. B. 100 oder SUM(B2:B11))",
|
|
676
|
+
formatPlaceholder: "Format (z. B. $#,##0.00)",
|
|
677
|
+
loading: "Tabelle wird geladen...",
|
|
678
|
+
noData: "Keine Tabellendaten verfügbar",
|
|
679
|
+
editData: "Tabellendaten bearbeiten",
|
|
680
|
+
applyChanges: "Änderungen übernehmen",
|
|
681
|
+
dataMustBeArray: "Daten müssen ein Array von Blättern sein",
|
|
682
|
+
loadFailed: "Laden der Tabelle fehlgeschlagen: {error}",
|
|
683
|
+
invalidJsonAlert: "Ungültiges JSON-Format: {error}",
|
|
684
|
+
unknownError: "Unbekannter Fehler",
|
|
685
|
+
update: "Aktualisieren",
|
|
686
|
+
stringType: "Zeichenkette",
|
|
687
|
+
formulaType: "Formel",
|
|
688
|
+
},
|
|
689
|
+
app: {
|
|
690
|
+
startConversation: "Gespräch beginnen",
|
|
691
|
+
thinking: "Denkt nach…",
|
|
692
|
+
},
|
|
693
|
+
suggestionsPanel: {
|
|
694
|
+
suggestions: "Vorschläge",
|
|
695
|
+
sendEditHint: "klicken zum Senden · Shift+Klick zum Bearbeiten",
|
|
696
|
+
},
|
|
697
|
+
settingsToolsTab: {
|
|
698
|
+
// Wird über <i18n-t> mit den benannten Slots `allowedTools` und
|
|
699
|
+
// `claudeMcp` gerendert, damit die Inline-`<code>`-Tags ihren Stil
|
|
700
|
+
// behalten, während der Text übersetzbar ist.
|
|
701
|
+
explanation:
|
|
702
|
+
"Zusätzliche Tool-Namen, die Claude über {allowedTools} übergeben werden sollen. Einer pro Zeile. Nützlich für in Claude Code integrierte MCP-Server wie Gmail / Google Kalender, nachdem Sie sich über {claudeMcp} authentifiziert haben.",
|
|
703
|
+
},
|
|
704
|
+
};
|
|
705
|
+
|
|
706
|
+
export default deMessages;
|