998 lines
56 KiB
JSON
998 lines
56 KiB
JSON
{
|
||
"metadata": { "code": "de", "name": "Deutsch" },
|
||
"settings": {
|
||
"title": "EINSTELLUNGEN",
|
||
"save": "Speichern",
|
||
"cancel": "Abbrechen",
|
||
"language": "Sprache",
|
||
"sidebar": {
|
||
"groupBasis": "BASIS",
|
||
"groupAdvanced": "ERWEITERT",
|
||
"categoryGeneral": "Allgemein",
|
||
"categoryExecution": "Ausführung",
|
||
"categoryPrime": "Prime Claude",
|
||
"categoryPrimeHint": "Geplante Claude-Läufe: Ping, My Day füllen oder ein eigener Prompt, zu festen Zeiten.",
|
||
"categoryWorktrees": "Worktrees",
|
||
"categoryFiles": "Dateien & Prompts",
|
||
"categorySkills": "Session Skills",
|
||
"categoryReports": "Berichte",
|
||
"categoryTickets": "Externe Dienste"
|
||
},
|
||
"repoHint": {
|
||
"text": "Wirkt erst mit verknüpftem Repo.",
|
||
"link": "Repo importieren"
|
||
},
|
||
"general": {
|
||
"defaultInstructions": "Standard-Anweisungen",
|
||
"defaultInstructionsPlaceholder": "Basis-Anweisungen, die auf jede Aufgabe angewendet werden",
|
||
"model": "Modell",
|
||
"maxTurns": "Max. Durchläufe",
|
||
"effort": "Effort",
|
||
"effortHint": "Denkaufwand, den das Modell anwendet. Höher kostet mehr und denkt tiefer.",
|
||
"modelPresets": "Vorgaben pro Modell",
|
||
"modelPresetsHint": "Effort und Durchlauf-Budget, mit denen eine Sitzung unter diesem Modell läuft. Overrides auf Listen- und Aufgabenebene gewinnen weiterhin.",
|
||
"maxTurnsCeiling": "Max. Durchläufe – Obergrenze",
|
||
"maxTurnsCeilingHint": "Harte Obergrenze, auf die jeder aufgelöste Max-Durchläufe-Wert geklemmt wird — Task-, Listen- und Modell-Einstellungen können sie nicht überschreiten.",
|
||
"maxTurnsCeilingInvalid": "Die Obergrenze für Max. Durchläufe muss mindestens 1 sein.",
|
||
"permission": "Berechtigung",
|
||
"maxParallelExecutions": "Max. parallele Ausführungen",
|
||
"maxParallelExecutionsHint": "Wie viele Aufgaben aus der Warteschlange der Worker gleichzeitig ausführt.",
|
||
"usageGateHeading": "Usage-Limit-Stopp",
|
||
"usageGateHint": "Ab dieser Auslastung holt die Warteschlange keine neuen Aufgaben mehr; laufende Aufgaben laufen zu Ende. 0 schaltet den Stopp ab.",
|
||
"usageGateFiveHourPct": "5-Stunden-Fenster (%)",
|
||
"usageGateSevenDayPct": "7-Tage-Fenster (%)",
|
||
"autoContinueOnUsageLimit": "Nach Limit-Reset fortsetzen",
|
||
"autoContinueOnUsageLimitHint": "Ist ein Run am Nutzungslimit abgebrochen, wird er nach Ablauf des 5-Stunden-Fensters automatisch fortgesetzt. Weckt außerdem die pausierte Warteschlange genau zum Reset-Zeitpunkt statt erst beim nächsten Backstop-Check.",
|
||
"listHandlerMaxHandoffs": "Handoff-Budget des List-Handlers",
|
||
"listHandlerMaxHandoffsHint": "Wie viele Wait/Merge-Handoffs ein „Let Claude handle it\"-Run verketten darf. 4 entspricht zwei Merge-Runden. Für Läufe, die stundenlang durchlaufen sollen, höher setzen; der Wert begrenzt eine entlaufene Kette und darf daher nicht 0 sein.",
|
||
"powerUseHeading": "PowerUse",
|
||
"powerUse": "PowerUse aktivieren",
|
||
"powerUseHint": "Das restliche Fenster ausnutzen: ein List-Handler-Run fragt nichts, löst Konflikte selbst, sammelt neue Arbeit und handoffet weiter, solange sein Budget reicht. Wirkt nur auf Listen, die PowerUse in ihren Listen-Einstellungen erlaubt haben.",
|
||
"powerUseWindow": "Nur zwischen",
|
||
"powerUseWindowPlaceholder": "HH:mm",
|
||
"powerUseHandoffPct": "Übergabe bei (% von 5h)",
|
||
"powerUseWindowHint": "Beide Zeiten leer = rund um die Uhr. Das Fenster wird bei jedem Start einer Handler-Phase geprüft — eine Kette, die über das Ende hinausläuft, macht ohne PowerUse weiter.",
|
||
"powerUseWindowInvalid": "PowerUse-Zeiten müssen im Format HH:mm sein oder leer bleiben.",
|
||
"throttleStagesHeading": "Throttle-Stufen",
|
||
"throttleStagesHint": "Die Parallelität wird vor dem harten Limit-Stopp begrenzt: soft auf 2 Slots, hard auf 1. Eingestellt wird das durch Ziehen der Marker an den Gauges im Usage-Monitor. Der Monitor schließt diese Einstellungen — vorher speichern, wenn du etwas geändert hast.",
|
||
"throttleStagesValues": "5h: soft {0}% / hard {1}% · 7d: soft {2}% / hard {3}%",
|
||
"openUsageMonitor": "Usage-Monitor öffnen...",
|
||
"reportExcludedPaths": "Bericht: ausgeschlossene Pfade (einer pro Zeile)",
|
||
"standupWeekday": "Standup-Wochentag",
|
||
"weekdaySunday": "Sonntag",
|
||
"weekdayMonday": "Montag",
|
||
"weekdayTuesday": "Dienstag",
|
||
"weekdayWednesday": "Mittwoch",
|
||
"weekdayThursday": "Donnerstag",
|
||
"weekdayFriday": "Freitag",
|
||
"weekdaySaturday": "Samstag",
|
||
"sessionSkills": "Session-Skills",
|
||
"sessionSkillsHint": "Gilt für jede Aufgabe. Kombiniert sich mit Listen- und Aufgaben-Auswahl.",
|
||
"accentPreset": "Akzentfarbe",
|
||
"accentPresetMoss": "Moos",
|
||
"accentPresetPeat": "Torf",
|
||
"accentPresetSea": "Meer"
|
||
},
|
||
"worktrees": {
|
||
"strategy": "Strategie",
|
||
"centralWorktreeRoot": "Zentrales Worktree-Verzeichnis",
|
||
"autoCleanup": "Abgeschlossene Worktrees automatisch aufräumen nach",
|
||
"days": "Tagen",
|
||
"cleanupFinished": "Abgeschlossene Worktrees aufräumen",
|
||
"forceRemoveAll": "Alle Worktrees zwangsweise entfernen",
|
||
"confirmRemoveAll": "ALLE Worktrees entfernen? Nicht committete Arbeit geht verloren."
|
||
},
|
||
"files": {
|
||
"cliSection": "CLAUDE CLI",
|
||
"claudeBinHint": "Befehl oder vollständiger Pfad, den der Worker startet. Leer setzt auf \"claude\" zurück. Gilt ab dem nächsten Task-Run — kein Neustart nötig.",
|
||
"claudeBinResolved": "Aufgelöst zu: {0}",
|
||
"claudeBinUnresolved": "Nicht im PATH gefunden — Task-Runs schlagen fehl, solange das so bleibt.",
|
||
"agentsSection": "AGENTEN",
|
||
"agentsHint": "Mitgelieferte Standard-Agenten wiederherstellen. Vorhandene Dateien werden nicht überschrieben.",
|
||
"restoreDefaultAgents": "Standard-Agenten wiederherstellen",
|
||
"promptsSection": "PROMPTS",
|
||
"systemPrompt": "System",
|
||
"planningPrompt": "Planung (System)",
|
||
"planningInitialPrompt": "Planungs-Start",
|
||
"retryPrompt": "Wiederholung",
|
||
"dailyPrepPrompt": "Tagesplanung",
|
||
"weeklyReportPrompt": "Wochenbericht",
|
||
"powerUsePrompt": "PowerUse-Addendum",
|
||
"viewPrompt": "Ansehen",
|
||
"customizedSection": "ANGEPASST",
|
||
"customizedHint": "Diese Prompts weichen vom mitgelieferten Standard ab und werden unverändert beibehalten. Zurücksetzen, um künftige Standard-Verbesserungen zu erhalten.",
|
||
"resetToDefault": "Auf Standard zurücksetzen"
|
||
},
|
||
"prime": {
|
||
"description": "Führt an den von dir gewählten Tagen zu einer bestimmten Zeit eine einzelne nicht-interaktive Claude-Aktion aus. Läuft nur, solange ClaudeDo geöffnet ist. Wenn die App innerhalb von 30 Minuten vor der Zielzeit startet, wird sofort ausgelöst.",
|
||
"addSchedule": "+ Zeitplan hinzufügen",
|
||
"removeScheduleTip": "Zeitplan entfernen",
|
||
"dailyPrepMaxTasks": "Max. Aufgaben pro Tag",
|
||
"actionLabel": "Aktion",
|
||
"actionPing": "Ping",
|
||
"actionFillMyDay": "Mein Tag füllen",
|
||
"actionCustom": "Eigener Prompt",
|
||
"actionImportTickets": "Tickets + Tag planen",
|
||
"actionHint": "Ping öffnet nur das Nutzungsfenster. „Mein Tag füllen“ startet die Tagesplanung. „Tickets + Tag planen“ importiert erst deine zugewiesenen Tickets in die passenden Listen und startet dann die Tagesplanung. „Eigener Prompt“ führt deinen eigenen Prompt mit den ClaudeDo-Tools aus.",
|
||
"customPromptLabel": "Prompt",
|
||
"customPromptPlaceholder": "Der vollständige Prompt für diesen Zeitplan (Pflichtfeld)",
|
||
"maxTasksDisabledHint": "Gilt nur für Zeitpläne mit „Mein Tag füllen“ oder „Tickets + Tag planen“.",
|
||
"promptOverrideLabel": "Prompt-Zusatz",
|
||
"promptOverridePlaceholder": "Zusätzliche Anweisungen, die für diesen Zeitplan an den Prime-Prompt angehängt werden (optional)",
|
||
"dayMo": "Mo",
|
||
"dayTu": "Di",
|
||
"dayWe": "Mi",
|
||
"dayTh": "Do",
|
||
"dayFr": "Fr",
|
||
"daySa": "Sa",
|
||
"daySu": "So"
|
||
},
|
||
"onlineInbox": {
|
||
"tabHeader": "Online-Posteingang",
|
||
"enabledLabel": "Online-Posteingang-Sync aktivieren",
|
||
"restartHint": "Aktivieren oder Deaktivieren wird erst nach einem Worker-Neustart wirksam.",
|
||
"apiBaseUrlLabel": "API-Basis-URL",
|
||
"apiBaseUrlPlaceholder": "https://inbox.claudedo.kuns.dev",
|
||
"authorityLabel": "Zitadel-Authority (Issuer-URL)",
|
||
"authorityPlaceholder": "https://auth.example.com",
|
||
"clientIdLabel": "Client-ID",
|
||
"scopesLabel": "Scopes",
|
||
"redirectUriLabel": "Redirect-URI",
|
||
"pollIntervalLabel": "Abfrageintervall (Sekunden)",
|
||
"statusSection": "AUTH-STATUS",
|
||
"signedInStatus": "Angemeldet",
|
||
"signedOutStatus": "Nicht angemeldet",
|
||
"signInButton": "Im Browser anmelden",
|
||
"signOutButton": "Abmelden",
|
||
"configSection": "KONFIGURATION",
|
||
"saveButton": "Konfiguration speichern"
|
||
},
|
||
"tickets": {
|
||
"ticketSection": "TICKETSYSTEM",
|
||
"azdoSection": "AZURE DEVOPS",
|
||
"azdoToken": "Personal Access Token (Scope: Code Read & Write)",
|
||
"azdoHint": "Gilt in Firmen-Repos (origin auf dem Azure DevOps Server): Fetch vor dem Task-Start, Push und Draft-PR beim Genehmigen.",
|
||
"baseUrl": "API-Base-URL",
|
||
"baseUrlHint": "Leer lassen, um die Ticket-Anbindung komplett zu deaktivieren.",
|
||
"token": "Personal Access Token",
|
||
"tokenSet": "gespeichert",
|
||
"testConnection": "Verbindung testen",
|
||
"clearToken": "Token entfernen",
|
||
"fallbackList": "Fallback-Liste",
|
||
"fallbackListHint": "Ticket-Items, die Claude keiner Liste zuordnen kann, landen hier. Keine = sie werden übersprungen.",
|
||
"fallbackNone": "(keine)"
|
||
},
|
||
"inherit": {
|
||
"inheritedFromList": "geerbt · Liste",
|
||
"inheritedFromGlobal": "geerbt · Global",
|
||
"overrideBadge": "überschrieben",
|
||
"resetToInherited": "Auf geerbt zurücksetzen"
|
||
},
|
||
"turnsCeilingHint": "Läufe sind auf {0} Durchläufe gedeckelt — dieser Wert wird geklemmt.",
|
||
"agentEditor": {
|
||
"model": "Modell",
|
||
"maxTurns": "Max. Durchläufe",
|
||
"permissionMode": "Permission-Modus",
|
||
"systemPrompt": "System-Prompt (angehängt)",
|
||
"promptPrepended": "Wird automatisch vorangestellt:",
|
||
"agentFile": "Agent-Datei",
|
||
"browse": "Durchsuchen...",
|
||
"sessionSkills": "Session-Skills",
|
||
"sessionSkillsHint": "Kombiniert sich additiv mit globaler (und Listen-)Auswahl."
|
||
},
|
||
"skills": {
|
||
"installSection": "INSTALLIEREN",
|
||
"installUrlPlaceholder": "Git-Repo-URL (owner/repo oder vollständige URL)",
|
||
"installButton": "Installieren",
|
||
"installedSection": "INSTALLIERT",
|
||
"updateButton": "Aktualisieren",
|
||
"removeButton": "Entfernen",
|
||
"emptyState": "Keine Skills installiert — oben eine GitHub-URL einfügen, um einen hinzuzufügen."
|
||
}
|
||
},
|
||
"tasks": {
|
||
"showCompletedTip": "Abgeschlossene anzeigen",
|
||
"letClaudeTip": "Claude machen lassen",
|
||
"mergeReviewsTip": "Claude die Reviews abnehmen lassen",
|
||
"quickClaudeTip": "Schnelle Claude-Sitzung",
|
||
"listSettingsTip": "Listeneinstellungen",
|
||
"addPlaceholder": "Aufgabe hinzufügen…",
|
||
"enterKey": "ENTER",
|
||
"clearDayTip": "Tag leeren",
|
||
"planMyDayTip": "Meinen Tag planen",
|
||
"overdue": "ÜBERFÄLLIG",
|
||
"tasks": "AUFGABEN",
|
||
"clearCompletedTip": "Alle abgeschlossenen löschen",
|
||
"ctxSendToQueue": "In Warteschlange einreihen",
|
||
"ctxRemoveFromQueue": "Aus Warteschlange entfernen",
|
||
"ctxCancelExecution": "Ausführung abbrechen",
|
||
"ctxMarkAs": "Markieren als",
|
||
"ctxMarkDone": "Erledigt",
|
||
"ctxMarkCancelled": "Abgebrochen",
|
||
"ctxOpenConPtySession": "Interaktive Sitzung öffnen",
|
||
"ctxOpenWorktree": "Worktree öffnen",
|
||
"ctxOpenPlanningSession": "Planungssitzung öffnen",
|
||
"ctxResumePlanningSession": "Planungssitzung fortsetzen",
|
||
"ctxFinalizePlanningSession": "Plan finalisieren",
|
||
"ctxDiscardPlanningSession": "Planungssitzung verwerfen",
|
||
"ctxScheduleFor": "Planen für...",
|
||
"ctxClearSchedule": "Zeitplan entfernen",
|
||
"ctxRemoveFromMyDay": "Aus Mein Tag entfernen",
|
||
"ctxAddToMyDay": "Zu Mein Tag hinzufügen",
|
||
"badgeDraft": "ENTWURF",
|
||
"badgePlanned": "GEPLANT",
|
||
"badgeManual": "MANUELL",
|
||
"chainAfterPrefix": "nach",
|
||
"manualTip": "Manuelle Erinnerung — Claude nimmt sie nie auf",
|
||
"ctxMarkManual": "Als manuell markieren",
|
||
"ctxMarkClaudeTask": "Als Claude-Aufgabe markieren",
|
||
"ctxRefineTask": "Aufgabe verfeinern",
|
||
"ctxPlanning": "Planung",
|
||
"ctxSchedule": "Zeitplan",
|
||
"ctxMoveToList": "In Liste verschieben",
|
||
"ctxDeleteTask": "Aufgabe löschen",
|
||
"reasonAlreadyRunning": "Aufgabe läuft bereits",
|
||
"reasonAlreadyQueued": "Bereits in der Warteschlange",
|
||
"reasonWaitingForReview": "Wartet auf Prüfung",
|
||
"reasonSubtasksQueued": "Teilaufgaben sind bereits eingereiht",
|
||
"reasonPlanNotFinalized": "Plan ist noch nicht finalisiert",
|
||
"reasonPlanningActive": "Planungssitzung ist aktiv — zuerst finalisieren",
|
||
"reasonInteractiveSession": "Für diese Aufgabe ist eine interaktive Sitzung offen",
|
||
"reasonNotRunning": "Aufgabe läuft nicht",
|
||
"reasonRefining": "Verfeinerung läuft bereits",
|
||
"reasonNotIdle": "Nur im Leerlauf verfügbar",
|
||
"reasonIsPlanningParent": "Teil eines Plans",
|
||
"reasonIsChildTask": "Teilaufgaben haben keine eigene Planungssitzung",
|
||
"reasonPlanAlreadyFinalized": "Plan ist bereits finalisiert",
|
||
"reasonNoWorktree": "Kein Worktree für diese Aufgabe",
|
||
"cancel": "Abbrechen",
|
||
"removeFromQueueTip": "Aus Warteschlange entfernen",
|
||
"toggleSubtasksTip": "Unteraufgaben ein-/ausklappen",
|
||
"agentSuggestedTip": "Vom Agenten vorgeschlagen",
|
||
"interactiveChipTip": "Interaktive Sitzung offen — klicken, um im Mission Control dorthin zu springen",
|
||
"waitingOnTip": "Wartet auf {0}",
|
||
"scheduleTitle": "Aufgabe planen",
|
||
"scheduleWhen": "WANN",
|
||
"scheduleConfirm": "Planen",
|
||
"refineTip": "Aufgabe mit Claude verfeinern",
|
||
"refiningTip": "Claude verfeinert diese Aufgabe…",
|
||
"emptyHint": "Noch keine Aufgaben. Lege eine an und wähle per Rechtsklick „In Warteschlange einreihen“ — Claude bearbeitet sie in einem eigenen Worktree.",
|
||
"emptyHintNoWorkingDir": "Diese Liste hat kein Repo — in den Listeneinstellungen verknüpfen, um die Warteschlange zu aktivieren."
|
||
},
|
||
"lists": {
|
||
"heading": "Listen",
|
||
"searchPlaceholder": "Aufgaben suchen…",
|
||
"searchKbd": "Strg K",
|
||
"settingsTip": "Einstellungen",
|
||
"smartListsLabel": "INTELLIGENTE LISTEN",
|
||
"myListsLabel": "MEINE LISTEN",
|
||
"contextWorktrees": "Worktrees…",
|
||
"contextOpenExplorer": "Im Explorer öffnen",
|
||
"contextOpenTerminal": "Im Terminal öffnen",
|
||
"contextOpenFindings": "Findings-Ordner öffnen",
|
||
"contextImportTickets": "Aus Ticketsystem aktualisieren",
|
||
"contextSettings": "Einstellungen…",
|
||
"contextFolderSettings": "Ordner-Einstellungen…",
|
||
"contextRemoveFromFolder": "Aus Ordner herausnehmen",
|
||
"newList": "Neue Liste",
|
||
"addReposTip": "Repos als Listen hinzufügen",
|
||
"noRepoBannerText": "Noch kein Repo verknüpft. ClaudeDo führt Aufgaben in einem Git-Repo aus.",
|
||
"noRepoBannerButton": "Repo importieren",
|
||
"importTicketsResult": "{0} Tickets geprüft, {1} neue Tasks."
|
||
},
|
||
"details": {
|
||
"deleteTaskTip": "Aufgabe löschen",
|
||
"killSessionTip": "Laufende Sitzung hart beenden",
|
||
"sendToQueue": "In Warteschlange einreihen",
|
||
"sendToQueueTip": "Diese Aufgabe in die Warteschlange einreihen, damit Claude sie beim nächsten Lauf übernimmt",
|
||
"copyTaskIdTip": "Aufgaben-ID kopieren",
|
||
"starTip": "Favorit",
|
||
"agentSettingsTip": "Agent-Einstellungen",
|
||
"agentSettingsHeading": "Agent-Einstellungen (Überschreibungen)",
|
||
"waitingOnPrefix": "Wartet auf",
|
||
"copyFormattedTip": "Titel, Beschreibung und offene Schritte kopieren",
|
||
"toggleEditPreviewTip": "Bearbeiten/Vorschau umschalten",
|
||
"planDay": "Tag planen",
|
||
"importTicketsAndPlanDay": "Tickets + Tag planen",
|
||
"prepEmpty": "Heute noch keine Vorbereitung — klick Tag planen",
|
||
"roadblockReply": {
|
||
"placeholder": "Auf den Roadblock antworten…",
|
||
"send": "Senden",
|
||
"noSession": "Keine Sitzung zum Fortsetzen — dieser Lauf hat keine Session-ID zum Antworten.",
|
||
"failed": "Antwort konnte nicht gesendet werden: {0}"
|
||
},
|
||
"attachments": {
|
||
"dropToAttach": "Zum Anhängen ablegen",
|
||
"addFile": "Datei hinzufügen…",
|
||
"removeTip": "Anhang entfernen",
|
||
"addedSummary": "✓ Hinzugefügt: {0} ({1} Datei(en))",
|
||
"overLimitError": "Konnte {0} nicht hinzufügen: {1}",
|
||
"invalidNameError": "Konnte {0} nicht hinzufügen: {1}",
|
||
"dropReadError": "Abgelegte Dateien konnten nicht gelesen werden: {0}",
|
||
"selectIdleTask": "Zuerst eine inaktive Aufgabe auswählen"
|
||
},
|
||
"sections": {
|
||
"description": "Beschreibung",
|
||
"steps": "Schritte",
|
||
"files": "Dateien"
|
||
},
|
||
"emptyState": "Wähle eine Aufgabe aus, um Details zu sehen",
|
||
"roadblockLabel": "ROADBLOCK",
|
||
"stepsCard": {
|
||
"preview": "Vorschau",
|
||
"edit": "Bearbeiten",
|
||
"addStepPlaceholder": "Schritt hinzufügen…"
|
||
},
|
||
"workConsole": {
|
||
"continue": "Fortsetzen",
|
||
"resetAndRetry": "Zurücksetzen & erneut versuchen",
|
||
"tabOutput": "Ausgabe",
|
||
"tabGit": "Git",
|
||
"tabSession": "Sitzung",
|
||
"outcomeLabel": "ERGEBNIS",
|
||
"reviewLabel": "REVIEW",
|
||
"mergeLabel": "MERGE",
|
||
"targetBranch": "Zielbranch",
|
||
"openDiff": "Diff öffnen",
|
||
"worktree": "Worktree",
|
||
"reviewCombinedDiff": "Kombinierten Diff prüfen",
|
||
"openDiffHint": "Diff öffnen, um Mergen freizuschalten",
|
||
"targetDirty": "Ziel-Arbeitsverzeichnis hat uncommittete Änderungen — beim Mergen werden sie gestasht und danach wiederhergestellt.",
|
||
"approveMerge": "Genehmigen & Mergen",
|
||
"createDraftPr": "Draft-PR erstellen",
|
||
"updatePr": "PR aktualisieren",
|
||
"openPr": "Pull Request öffnen",
|
||
"companyTargetHint": "Firmen-Repo — Genehmigen pusht den Branch und erstellt einen Draft-PR auf Azure DevOps.",
|
||
"park": "Parken",
|
||
"parkTip": "Zurückstellen — zurück auf Leerlauf, Worktree bleibt erhalten",
|
||
"cancel": "Abbrechen",
|
||
"resetDiscardBranch": "Zurücksetzen (Branch verwerfen)…",
|
||
"submitForReviewHint": "Von Hand daran gearbeitet? Den Worktree zum Review einreichen, um ihn zu mergen.",
|
||
"submitForReview": "Zum Review einreichen",
|
||
"outcomesLabel": "ERGEBNISSE"
|
||
}
|
||
},
|
||
"agent": {
|
||
"openWorktreeTip": "Worktree im Datei-Explorer öffnen — benötigt einen aktiven Worktree",
|
||
"openDiffTip": "Diff öffnen — benötigt einen Worktree oder einen gemergten Commit-Bereich",
|
||
"reviewCombinedDiffTip": "Nur für Planning-Tasks mit Subtasks oder Child-Outcomes verfügbar"
|
||
},
|
||
"notes": {
|
||
"today": "Heute",
|
||
"yesterday": "Gestern",
|
||
"newNotePlaceholder": "Neue Notiz…",
|
||
"emptyHint": "Noch nichts notiert. Tippen, Enter, fertig.",
|
||
"deleteTip": "Notiz löschen",
|
||
"fromAgentTip": "Von Claude notiert"
|
||
},
|
||
"session": {
|
||
"chipLive": "LIVE",
|
||
"chipDone": "FERTIG",
|
||
"chipFailed": "FEHLGESCHLAGEN",
|
||
"reviewContinueTip": "Dieses Feedback senden und die Aufgabe erneut ausführen",
|
||
"reviewResetTip": "Alle Änderungen verwerfen und die Aufgabe auf Leerlauf zurücksetzen",
|
||
"mergeDrainHint": "Merge zieht Subtasks ein — Abbrechen entsperrt sich danach",
|
||
"approveMergesUnitHint": "Approve mergt das gleich in den Zielbranch — danach folgt kein separater Merge-Schritt.",
|
||
"continueNoSessionTip": "Setzt den letzten Lauf fort — benötigt eine vorherige Session",
|
||
"resetAndRetryInteractiveTip": "Interaktive Sitzung ist offen — erst schließen",
|
||
"reviewFeedbackPlaceholder": "Feedback für nächsten Lauf"
|
||
},
|
||
"missionControl": {
|
||
"windowTitle": "Mission Control",
|
||
"newSession": "Neue Sitzung",
|
||
"empty": "Keine laufenden Aufgaben",
|
||
"settings": "Einstellungen",
|
||
"activity": "Aktivität",
|
||
"runningNow": "Läuft gerade",
|
||
"opVerifyMerge": "Prüfung nach Merge",
|
||
"opVerifyBatch": "Verify (Batch)",
|
||
"opMerging": "Merge",
|
||
"opRebasing": "Rebase",
|
||
"opCreatingWorktree": "Worktree wird erstellt",
|
||
"operationsRefreshFailed": "Laufende Operationen konnten nicht geladen werden: {0}",
|
||
"blocked": "Blockiert",
|
||
"running": "Läuft",
|
||
"review": "Im Review",
|
||
"verifying": "Wird geprüft",
|
||
"failed": "Fehlgeschlagen",
|
||
"roadblock": "Blockade gemeldet",
|
||
"openSession": "Sitzung öffnen",
|
||
"homeFolder": "Home (Schnellsitzung)",
|
||
"browseForFolder": "Ordner wählen…",
|
||
"recentSessions": "Letzte Sitzungen",
|
||
"recentSessionsEmpty": "Keine Sitzungen in den letzten 14 Tagen",
|
||
"resumeSession": "Fortsetzen",
|
||
"showBrief": "Brief",
|
||
"renameSession": "Doppelklick zum Umbenennen",
|
||
"renameFailed": "Sitzung konnte nicht umbenannt werden: {0}",
|
||
"handoffSession": "Übergabe",
|
||
"briefOpenFailed": "Brief konnte nicht geöffnet werden: {0}",
|
||
"focusMode": "Fokus",
|
||
"overviewMode": "Übersicht",
|
||
"columns": "Spalten",
|
||
"columnsAuto": "Auto",
|
||
"closeSession": "Sitzung hart beenden",
|
||
"closeSessionConfirm": "Laufende Sitzung beenden? Der Claude-Prozess wird abgebrochen.",
|
||
"conptyLaunchFailed": "Interaktive Sitzung konnte nicht geöffnet werden: {0}",
|
||
"conptyStarting": "Sitzung wird gestartet…",
|
||
"conptyExited": "Sitzung beendet (Code {0}).",
|
||
"usageWarningNotDelivered": "Die Listen-Handler-Sitzung konnte nicht vor dem Usage-Limit gewarnt werden.",
|
||
"terminalSendFailed": "Konnte nicht an die Terminal-Sitzung gesendet werden.",
|
||
"deferredHandoffTitleSuffix": "warte auf Limit-Zurücksetzen ({0})",
|
||
"mergeHelperTitle": "Merge-Helfer",
|
||
"mergeHelperHandoffTitleSuffix": " (Übergabe)",
|
||
"mergeHelperTaskTitle": "Listen-Handler: {0}",
|
||
"mergeHelperTaskDescriptionHeader": "Von diesem Lauf bearbeitete Tasks:",
|
||
"mergeReviewsTitle": "Review-Merge",
|
||
"mergeReviewsTaskTitle": "Review-Merge: {0}",
|
||
"submitForReviewFailed": "Einreichen zum Review fehlgeschlagen: {0}",
|
||
"submitForReview": "Zum Review einreichen",
|
||
"submitForReviewTip": "Diesen Worktree committen und den Task ins Review bringen, damit er gemergt werden kann",
|
||
"retry": "Erneut versuchen",
|
||
"retryTip": "Diese Sitzung erneut starten",
|
||
"planningTitleSuffix": " (Planung)",
|
||
"enqueueAlreadyOpen": "Kann nicht in die Warteschlange gestellt werden — dieser Task hat eine offene interaktive Sitzung.",
|
||
"enqueueFailed": "In die Warteschlange stellen fehlgeschlagen: {0}",
|
||
"queueRefreshFailed": "Warteschlange konnte nicht aktualisiert werden: {0}",
|
||
"abandonRun": "Lauf abbrechen",
|
||
"abandonRunTip": "Die noch offenen Tasks dieses Laufs abbrechen und die Sitzung schließen",
|
||
"abandonRunConfirm": "{0} offene Aufgabe(n) abbrechen und diese Sitzung schließen? Aufgaben im Review oder bereits erledigt bleiben unangetastet.",
|
||
"abandonRunFailed": "Offene Tasks konnten nicht abgebrochen werden: {0}",
|
||
"question": {
|
||
"title": "Claude fragt nach",
|
||
"placeholder": "Antwort eingeben…",
|
||
"send": "Senden"
|
||
}
|
||
},
|
||
"modals": {
|
||
"logVisualizer": {
|
||
"title": "WORKER-LOGS — LETZTE 30 MIN",
|
||
"warnErrorOnly": "Nur Warnungen & Fehler",
|
||
"refresh": "Aktualisieren",
|
||
"empty": "Keine Logs in den letzten 30 Minuten.",
|
||
"count": "{0} Einträge",
|
||
"copyLast": "Letzte 40 kopieren",
|
||
"copyLastTooltip": "Kopiert die letzten 40 sichtbaren Zeilen in die Zwischenablage",
|
||
"copied": "{0} Zeilen kopiert",
|
||
"copyFailed": "Kopieren fehlgeschlagen",
|
||
"footerHint": "logs",
|
||
"openTooltip": "Aktuelle Worker-Logs anzeigen"
|
||
},
|
||
"about": {
|
||
"title": "ÜBER",
|
||
"version": "Version",
|
||
"data": "Daten",
|
||
"logs": "Logs",
|
||
"config": "Konfiguration",
|
||
"open": "Öffnen"
|
||
},
|
||
"workerConnection": {
|
||
"title": "WORKER NICHT ERREICHBAR",
|
||
"body": "ClaudeDo kann den Hintergrund-Worker nicht erreichen. Normalerweise wird er bei der Anmeldung automatisch gestartet. Du kannst ihn jetzt starten oder neu installieren, falls das Problem bestehen bleibt.",
|
||
"dismiss": "Ausblenden",
|
||
"rerunInstaller": "Installer erneut ausführen",
|
||
"startWorker": "Worker starten",
|
||
"workerNotFound": "Worker-Programm nicht gefunden. Installation prüfen.",
|
||
"installerNotFound": "Installer nicht gefunden. Installation prüfen.",
|
||
"startFailed": "Start fehlgeschlagen: {0}"
|
||
},
|
||
"listSettings": {
|
||
"title": "LISTENEINSTELLUNGEN",
|
||
"folderTitle": "ORDNER",
|
||
"deleteList": "Liste löschen",
|
||
"deleteFolder": "Ordner löschen",
|
||
"createAsFolder": "Stattdessen einen Ordner anlegen",
|
||
"createAsFolderHint": "Ein Ordner gruppiert nur Listen in der Seitenleiste — er enthält keine Aufgaben und führt nichts aus. Listen per Drag-and-Drop hineinziehen.",
|
||
"sectionGeneral": "ALLGEMEIN",
|
||
"name": "Name",
|
||
"color": "Farbe",
|
||
"colorHint": "Färbt den Punkt einer Liste bzw. Namen und Führungslinie eines Ordners. Der leere Ring stellt den Standard wieder her.",
|
||
"colorCustom": "Eigene",
|
||
"workingDirectory": "Arbeitsverzeichnis",
|
||
"workingDirectoryPlaceholder": "(keines)",
|
||
"baseBranch": "Basis-Branch",
|
||
"baseBranchPlaceholder": "(ausgecheckter Branch)",
|
||
"baseBranchHint": "Neue Task-Branches starten hier, und freigegebene Arbeit wird hierhin gemergt, z.B. dev. Leer = der gerade ausgecheckte Branch.",
|
||
"browse": "Durchsuchen...",
|
||
"defaultCommitType": "Standard-Commit-Typ",
|
||
"manualList": "Manuelle Liste (Erinnerungen)",
|
||
"manualListHint": "Neue Aufgaben in dieser Liste sind zunächst manuell: kein Einreihen, Ausführen oder Verfeinern, und die Automatik überspringt sie. Eine handgesteuerte Sitzung kannst du weiterhin öffnen.",
|
||
"findingsTracked": "Findings-Ordner .claudedo einchecken",
|
||
"findingsTrackedHint": "Aus: der Ordner bleibt über .git/info/exclude aus git heraus. An: Findings reisen mit dem Repo.",
|
||
"powerUseAllowed": "PowerUse für diese Liste erlauben",
|
||
"powerUseAllowedHint": "Erlaubt einem List-Handler-Run auf dieser Liste, unbeaufsichtigt zu laufen, sobald PowerUse in Einstellungen → Ausführung eingeschaltet ist: er fragt nichts, löst Konflikte selbst und sammelt neue Arbeit. Beide Schalter sind nötig — ein global aktives PowerUse ändert an einer Liste ohne Opt-in also nichts.",
|
||
"sectionIcon": "ICON",
|
||
"icon": "Listen-Icon",
|
||
"iconHint": "Wird in der Seitenleiste neben dem Listennamen angezeigt.",
|
||
"iconSearchWatermark": "Alle Icons durchsuchen (Englisch, z.B. rocket, car, bug)",
|
||
"iconSearchTruncated": "Die ersten 200 Treffer werden angezeigt — Suche verfeinern.",
|
||
"sectionAgent": "AGENT",
|
||
"resetAgentSettings": "Agent-Einstellungen zurücksetzen",
|
||
"sectionVerify": "VERIFIKATION",
|
||
"verifyCommand": "Verifikationskommando",
|
||
"verifyCommandPlaceholder": "(keines — Merge verhält sich wie bisher)",
|
||
"verifyCommandHint": "Läuft im Arbeitsverzeichnis nach einem Merge, bevor die Aufgabe auf 'Erledigt' gesetzt wird. Ein Exit-Code ungleich 0 (oder Timeout) lässt den Merge bestehen, verhindert aber 'Erledigt' und meldet den Fehler.",
|
||
"ticketProject": "Ticket-Projekt"
|
||
},
|
||
"merge": {
|
||
"title": "WORKTREE MERGEN",
|
||
"windowTitle": "Worktree mergen",
|
||
"cancel": "Abbrechen",
|
||
"merge": "Mergen",
|
||
"targetBranch": "Ziel-Branch",
|
||
"removeWorktree": "Worktree nach dem Mergen entfernen",
|
||
"commitMessage": "Commit-Nachricht",
|
||
"conflictedFiles": "Konfliktdateien:",
|
||
"stashAndMerge": "Änderungen stashen und mergen"
|
||
},
|
||
"diff": {
|
||
"title": "DIFF",
|
||
"windowTitle": "Diff",
|
||
"merge": "Mergen…",
|
||
"filesHeader": "Dateien",
|
||
"binary": "Binärdatei — kein Text-Diff",
|
||
"empty": "Kein Inhalt",
|
||
"unifiedView": "Zusammen",
|
||
"splitView": "Nebeneinander",
|
||
"wrapLines": "Zeilenumbruch",
|
||
"paneBase": "BASIS",
|
||
"paneWorktree": "WORKTREE",
|
||
"maximize": "Maximieren",
|
||
"restore": "Wiederherstellen"
|
||
},
|
||
"worktreesOverview": {
|
||
"refresh": "Aktualisieren",
|
||
"cleanupFinished": "Abgeschlossene aufräumen",
|
||
"columnTask": "AUFGABE",
|
||
"columnState": "STATUS",
|
||
"columnDiff": "DIFF",
|
||
"columnAge": "ALTER",
|
||
"columnOutcome": "ERGEBNIS",
|
||
"selectAll": "Alle auswählen",
|
||
"targetLabel": "Ziel",
|
||
"mergeAll": "Alle mergen",
|
||
"needsResolution": "ZU LÖSEN",
|
||
"resolve": "Lösen",
|
||
"phantom": "Phantom",
|
||
"phantomTooltip": "Verzeichnis fehlt auf der Festplatte",
|
||
"ctxShowDiff": "Diff anzeigen",
|
||
"ctxOpenInExplorer": "Im Explorer öffnen",
|
||
"ctxJumpToTask": "Zur Aufgabe springen",
|
||
"ctxMerge": "Mergen…",
|
||
"ctxDiscard": "Verwerfen",
|
||
"ctxKeep": "Behalten",
|
||
"ctxCopyBranch": "Branch kopieren",
|
||
"ctxCopyPath": "Pfad kopieren",
|
||
"ctxForceRemove": "Zwangsweise entfernen"
|
||
},
|
||
"repoImport": {
|
||
"title": "REPOS ALS LISTEN HINZUFÜGEN",
|
||
"windowTitle": "Repos als Listen hinzufügen",
|
||
"cancel": "Abbrechen",
|
||
"searchPlaceholder": "Repos suchen…",
|
||
"addFolder": "Ordner hinzufügen…",
|
||
"forgetFolders": "Ordner vergessen",
|
||
"alreadyAdded": "(bereits hinzugefügt)"
|
||
},
|
||
"mergeHelper": {
|
||
"title": "CLAUDE MACHEN LASSEN",
|
||
"windowTitle": "Claude machen lassen",
|
||
"scopeList": "Liste: {0}",
|
||
"scopeReview": "Alle Listen — Tasks im Review",
|
||
"modelLabel": "Modell",
|
||
"modelTip": "Modell für die Triage-Session (Dedupe & Verfeinern). Spätere Merge-Phasen laufen immer auf Opus.",
|
||
"confirm": "Claude machen lassen",
|
||
"cancel": "Abbrechen",
|
||
"selectAll": "Alle auswählen",
|
||
"selectNone": "Keine auswählen",
|
||
"empty": "Keine Aufgaben zu übergeben — alles erledigt oder abgebrochen.",
|
||
"columnTask": "AUFGABE",
|
||
"columnStatus": "STATUS",
|
||
"orphanHint": "ELTERNTEIL NICHT IN AUSWAHL",
|
||
"orphanHintTip": "Das Elternteil dieser Unteraufgabe wird hier nicht angeboten (bereits erledigt oder abgebrochen), daher steht sie einzeln."
|
||
},
|
||
"unfinishedPlanning": {
|
||
"title": "UNVOLLENDETE PLANUNGSSITZUNG",
|
||
"windowTitle": "Unvollendete Planungssitzung",
|
||
"discard": "Verwerfen",
|
||
"finalize": "Abschließen",
|
||
"resume": "Fortsetzen",
|
||
"draftTasksSuffix": " Entwurfsaufgabe(n) warten auf Abschluss."
|
||
},
|
||
"weeklyReport": {
|
||
"title": "WOCHENBERICHT",
|
||
"windowTitle": "Wochenbericht",
|
||
"from": "Von",
|
||
"to": "Bis",
|
||
"generate": "Erstellen",
|
||
"regenerate": "Neu erstellen",
|
||
"emptyStateHint": "Noch kein Bericht für diesen Zeitraum. Klicke auf „Erstellen“."
|
||
},
|
||
"cheatSheets": {
|
||
"title": "CHEAT SHEETS",
|
||
"windowTitle": "Cheat Sheets",
|
||
"pin": "Anpinnen",
|
||
"pinTooltip": "Fenster über den anderen halten",
|
||
"missing": "Cheat Sheet {0} nicht gefunden."
|
||
},
|
||
"usageMonitor": {
|
||
"title": "USAGE MONITOR",
|
||
"windowTitle": "Usage Monitor",
|
||
"noGauges": "Noch keine Nutzungslimits gemeldet.",
|
||
"refreshHint": "Jetzt aktualisieren — Abruf alle 5 Min., während ein Task läuft, sonst alle 15 Min.",
|
||
"staleFormat": "Werte veraltet (Stand {0})",
|
||
"staleGateHint": "Der Limit-Stopp greift in diesem Zustand nicht.",
|
||
"gateBlockedFormat": "Warteschlange pausiert — {0}",
|
||
"throttleFormat": "Warteschlange gedrosselt: {0}/{1} Slots ({2})",
|
||
"resetIn": "Reset in {0} ({1})",
|
||
"dragHint": "Marker ziehen oder Wert unten eintragen.",
|
||
"legendSoft": "Soft · 2 Slots",
|
||
"legendHard": "Hard · 1 Slot",
|
||
"legendGate": "Limit-Stopp · Pause",
|
||
"gaugeSession": "Session (5 Std.)",
|
||
"gaugeWeeklyAll": "Woche (alle Modelle)",
|
||
"gaugeWeeklyScopedFormat": "Woche ({0})",
|
||
"period": "Zeitraum:",
|
||
"last7Days": "7 Tage",
|
||
"last30Days": "30 Tage",
|
||
"fromDate": "Von",
|
||
"toDate": "Bis",
|
||
"modelUsage": "Modelle",
|
||
"taskUsage": "Tasks",
|
||
"emptyStateHint": "Noch keine Nutzungsdaten für diesen Zeitraum.",
|
||
"columnModel": "MODELL",
|
||
"columnIn": "IN",
|
||
"columnOut": "OUT",
|
||
"columnCache": "CACHE",
|
||
"columnOtherIn": "ÜBRIGES IN",
|
||
"columnOtherOut": "ÜBRIGES OUT",
|
||
"columnOtherCache": "ÜBRIGES CACHE",
|
||
"columnShare": "ANTEIL",
|
||
"columnTask": "AUFGABE",
|
||
"columnList": "LISTE",
|
||
"columnModelShort": "MODELL",
|
||
"columnRuns": "RUNS",
|
||
"columnTotal": "GESAMT",
|
||
"columnCost": "KOSTEN",
|
||
"columnRetries": "RETRIES",
|
||
"analyticsStampFormat": "Auswertung: Stand {0}",
|
||
"analyticsNever": "Auswertung noch nicht geladen",
|
||
"analyticsRefresh": "Auswertung aktualisieren",
|
||
"openDashboard": "TokenTracker-Dashboard öffnen",
|
||
"openDashboardTip": "Startet das lokale TokenTracker-Dashboard (nur localhost, kein Cloud-Sync) und öffnet es im Browser. Der erste Start dauert ein paar Sekunden.",
|
||
"analyticsTotalsFormat": "{0} Tokens · {1} $",
|
||
"ttMissingTitle": "Die Token-Auswertung braucht TokenTracker",
|
||
"ttMissingBody": "TokenTracker (MIT) liest deine lokalen Claude-Transkripte und sieht keine Prompts. ClaudeDo ruft nur den lokalen Export auf — kein `init`, keine Hooks, kein Cloud-Sync.",
|
||
"ttInstall": "TokenTracker installieren",
|
||
"ttNodeHintFormat": "Node 20 oder neuer wird benötigt (gefunden: {0}).",
|
||
"ttNodeMissing": "Node 20 oder neuer wird benötigt, es wurde aber kein Node gefunden.",
|
||
"ttErrorFormat": "TokenTracker-Problem: {0}"
|
||
}
|
||
},
|
||
"installer": {
|
||
"nav": {
|
||
"back": "Zurück",
|
||
"next": "Weiter →",
|
||
"install": "Installieren",
|
||
"browse": "Durchsuchen...",
|
||
"cancel": "Abbrechen"
|
||
},
|
||
"welcome": {
|
||
"title": "Willkommen",
|
||
"heading": "ClaudeDo installieren",
|
||
"subheading": "Wähle aus, wohin ClaudeDo installiert werden soll, und klicke dann auf Weiter.",
|
||
"updateSubheading": "Deine Aufgaben, Konfiguration und Datenbank bleiben erhalten. Klicke auf Weiter, um fortzufahren.",
|
||
"installDirectory": "Installationsverzeichnis",
|
||
"registerMcp": "MCP-Server bei Claude registrieren",
|
||
"registerMcpHint": "Führt 'claude mcp add' aus, damit Claude deine ClaudeDo-Aufgaben sehen und verwalten kann. Du kannst dies später ändern."
|
||
},
|
||
"systemCheck": {
|
||
"title": "Systemprüfung",
|
||
"subtitle": "ClaudeDo prüft dein System vor der Installation.",
|
||
"recheck": "Erneut prüfen",
|
||
"summary": {
|
||
"running": "System wird geprüft…",
|
||
"ok": "Alles in Ordnung.",
|
||
"warnings": "{0} Warnung(en) gefunden.",
|
||
"blocking": "{0} Problem(e) müssen behoben werden: {1}"
|
||
},
|
||
"claudeHelp": {
|
||
"button": "Claude Help Me",
|
||
"error": "Claude-Session konnte nicht gestartet werden: {0}",
|
||
"tooltip": {
|
||
"cliMissing": "Claude CLI wurde nicht gefunden — installiere sie zuerst (siehe Hinweis zur Claude CLI oben).",
|
||
"notLoggedIn": "Claude ist nicht eingeloggt — führe einmal 'claude' aus und schließe den Login-Vorgang ab.",
|
||
"ready": "Öffnet eine interaktive Claude-Session, die dir beim Einrichten hilft."
|
||
}
|
||
}
|
||
},
|
||
"paths": {
|
||
"title": "Datenpfade",
|
||
"subtitle": "Lege fest, wo ClaudeDo seine Daten speichert.",
|
||
"databasePath": "Datenbankpfad",
|
||
"logDirectory": "Log-Verzeichnis",
|
||
"sandboxRoot": "Sandbox-Verzeichnis",
|
||
"worktreeStrategy": "Worktree-Strategie",
|
||
"centralWorktreeRoot": "Zentrales Worktree-Verzeichnis"
|
||
},
|
||
"service": {
|
||
"title": "Worker",
|
||
"subtitle": "Konfiguriere den ClaudeDo-Hintergrund-Worker.",
|
||
"signalRPort": "SignalR-Port",
|
||
"queueBackstopInterval": "Warteschlangen-Backstop-Intervall (ms)",
|
||
"claudeCliPath": "Claude-CLI-Pfad",
|
||
"autostart": "Worker bei der Anmeldung automatisch starten",
|
||
"autostartHint": "Der Worker läuft als du (der angemeldete Benutzer) über eine benutzerbezogene Anmelde-Aufgabe, sodass er deine Claude-CLI-Authentifizierung nutzen kann.",
|
||
"restartDelay": "Neustart-Verzögerung (ms)"
|
||
},
|
||
"uiSettings": {
|
||
"title": "UI-Einstellungen",
|
||
"subtitle": "Konfiguriere die Verbindungseinstellungen der ClaudeDo-Desktop-Oberfläche.",
|
||
"syncWithService": "Mit Worker-Einstellungen synchronisieren",
|
||
"signalRUrl": "SignalR-URL",
|
||
"syncHint": "Bei Synchronisierung werden diese Werte aus den Seiten „Worker“ und „Datenpfade“ abgeleitet."
|
||
},
|
||
"install": {
|
||
"title": "Installation",
|
||
"subtitle": "Klicke auf Installieren, um ClaudeDo zu erstellen und bereitzustellen.",
|
||
"launch": "ClaudeDo starten"
|
||
},
|
||
"diagnose": {
|
||
"title": "Diagnose",
|
||
"subtitle": "Führt die Systemprüfungen erneut aus, gegen deine installierte Konfiguration."
|
||
},
|
||
"settings": {
|
||
"removeUserData": "Benutzerdaten entfernen (Aufgaben, Logs, Konfigurationen in ~/.claudeDo)",
|
||
"uninstall": "Deinstallieren",
|
||
"repair": "Reparieren",
|
||
"save": "Speichern",
|
||
"close": "Schließen"
|
||
}
|
||
},
|
||
"checks": {
|
||
"git": {
|
||
"title": "Git",
|
||
"hint": "Installiere Git von https://git-scm.com/downloads und starte den Installer neu.",
|
||
"notFound": "git wurde nicht im PATH gefunden.",
|
||
"exitCode": "'{0}' wurde mit Exitcode {1} beendet.",
|
||
"resolvedFormat": "{0} — {1}"
|
||
},
|
||
"gitIdentity": {
|
||
"title": "Git-Identität",
|
||
"hint": "Führe aus: git config --global user.name \"Dein Name\" und git config --global user.email \"du@example.com\"",
|
||
"notFound": "git wurde nicht gefunden — Identität konnte nicht geprüft werden.",
|
||
"missing": "Fehlende Git-Identität: {0}."
|
||
},
|
||
"ports": {
|
||
"title": "Ports",
|
||
"hint": "Ändere die SignalR-/MCP-Ports auf der Dienste-Seite, oder beende den blockierenden Prozess.",
|
||
"inUse": "{0}-Port {1} ist belegt.",
|
||
"inUseBy": "{0}-Port {1} ist belegt von '{2}'.",
|
||
"inUseByOwnWorker": "Belegt vom laufenden ClaudeDo Worker: {0}.",
|
||
"available": "Ports sind verfügbar."
|
||
},
|
||
"writeAccess": {
|
||
"title": "Schreibzugriff",
|
||
"hint": "Wähle ein anderes Installationsverzeichnis oder starte den Installer mit ausreichenden Rechten (z. B. als Administrator).",
|
||
"cannotWrite": "Kein Schreibzugriff auf '{0}': {1}",
|
||
"writable": "Installations- und Datenverzeichnis sind beschreibbar."
|
||
},
|
||
"claudeCli": {
|
||
"title": "Claude CLI",
|
||
"hint": "Installiere die Claude CLI (npm install -g @anthropic-ai/claude-code) und starte danach dein Terminal/deine Anmeldesitzung neu, damit der aktualisierte PATH greift.",
|
||
"notFound": "'{0}' wurde nicht im PATH gefunden. Durchsucht: {1}.",
|
||
"exitCode": "'{0}' wurde mit Exitcode {1} beendet.",
|
||
"resolvedFormat": "{0} — {1}"
|
||
},
|
||
"claudeVersion": {
|
||
"title": "Claude-CLI-Version",
|
||
"hint": "Aktualisiere die CLI: npm update -g @anthropic-ai/claude-code",
|
||
"notFound": "Die claude-CLI wurde nicht gefunden — Version konnte nicht geprüft werden.",
|
||
"parseFailed": "Konnte keine Version aus '{0}' auslesen.",
|
||
"tooOld": "claude {0} ist älter als die erforderliche Version {1}.",
|
||
"ok": "claude {0} erfüllt die Mindestanforderung ({1})."
|
||
},
|
||
"claudeAuth": {
|
||
"title": "Claude-CLI-Login",
|
||
"hint": "Starte 'claude' einmal und schließe den Login-Vorgang ab.",
|
||
"notFound": "Die claude-CLI wurde nicht gefunden — Login konnte nicht geprüft werden.",
|
||
"undetermined": "Login-Status konnte nicht ermittelt werden.",
|
||
"notLoggedIn": "Nicht angemeldet.",
|
||
"loggedIn": "Angemeldet."
|
||
},
|
||
"permissionModeAuto": {
|
||
"title": "Berechtigungsmodus",
|
||
"hint": "Aktualisiere die CLI: npm update -g @anthropic-ai/claude-code. ClaudeDo funktioniert auch im Modus acceptEdits/default, dann mit mehr Rückfragen.",
|
||
"notFound": "Die claude-CLI wurde nicht gefunden — Unterstützung für permission-mode konnte nicht geprüft werden.",
|
||
"undetermined": "Konnte nicht ermitteln, ob --permission-mode auto unterstützt wird.",
|
||
"ok": "--permission-mode auto wird von dieser CLI erkannt.",
|
||
"notListed": "Diese claude-CLI-Version listet 'auto' nicht als --permission-mode-Option."
|
||
}
|
||
},
|
||
"planning": {
|
||
"diff": {
|
||
"previewCombined": "Kombinierte Vorschau",
|
||
"loading": "Wird geladen…"
|
||
}
|
||
},
|
||
"conflictResolver": {
|
||
"windowTitle": "Merge-Konflikte lösen",
|
||
"modalTitle": "KONFLIKTE LÖSEN",
|
||
"loading": "Konflikte werden geladen…",
|
||
"ours": "MAIN · Ziel-Branch",
|
||
"result": "ERGEBNIS",
|
||
"theirs": "INCOMING · Task-Branch",
|
||
"binaryHint": "Binärdateien können hier nicht zusammengeführt werden — brich ab und löse sie in deinem Editor:",
|
||
"prevConflict": "Vorheriger Konflikt (Umschalt+F8)",
|
||
"nextConflict": "Nächster Konflikt (F8)",
|
||
"conflictMap": "Konflikte in dieser Datei — Marker anklicken zum Springen",
|
||
"acceptOurs": "Main hinzufügen",
|
||
"acceptTheirs": "Incoming hinzufügen",
|
||
"removeOurs": "Main entfernen",
|
||
"removeTheirs": "Incoming entfernen",
|
||
"continue": "Lösen & fortfahren",
|
||
"abort": "Merge abbrechen"
|
||
},
|
||
"controls": {
|
||
"markdown": {
|
||
"copy": "Befehl kopieren"
|
||
},
|
||
"datePicker": {
|
||
"today": "Heute",
|
||
"tomorrow": "Morgen",
|
||
"nextMon": "Nächster Mo",
|
||
"clear": "Löschen",
|
||
"time": "Zeit",
|
||
"done": "Fertig"
|
||
}
|
||
},
|
||
"dialog": {
|
||
"cancel": "Abbrechen",
|
||
"confirm": "Bestätigen",
|
||
"delete": "Löschen",
|
||
"ok": "OK",
|
||
"confirmTitle": "Bestätigen",
|
||
"errorTitle": "Fehler"
|
||
},
|
||
"shell": {
|
||
"menu": {
|
||
"help": "Hilfe",
|
||
"worker": "Worker",
|
||
"repositories": "Repositories",
|
||
"checkForUpdates": "Nach Updates suchen",
|
||
"restartWorker": "Worker neu starten",
|
||
"updateClaudeCli": "Claude CLI aktualisieren",
|
||
"shutdown": "Beenden",
|
||
"worktrees": "Worktrees…",
|
||
"weeklyReport": "Wochenbericht…",
|
||
"usageMonitor": "Usage Monitor…",
|
||
"cheatSheets": "Cheat Sheets",
|
||
"cheatSheetGit": "Git…",
|
||
"cheatSheetCommits": "Conventional Commits…",
|
||
"cheatSheetClaude": "Claude CLI…",
|
||
"cheatSheetClaudeConfig": "Claude-Konfiguration…",
|
||
"cheatSheetDotnet": "dotnet CLI…",
|
||
"cheatSheetPowershell": "PowerShell…",
|
||
"about": "Über…",
|
||
"addRepos": "Repos als Listen hinzufügen…"
|
||
},
|
||
"update": {
|
||
"available": "Update verfügbar: v",
|
||
"updateNow": "Jetzt aktualisieren",
|
||
"dismiss": "Ausblenden"
|
||
},
|
||
"externalMerge": {
|
||
"banner": "Eine Claude-Session löst gerade einen Merge-Konflikt auf — bitte keine Dateien im Repository bearbeiten.",
|
||
"open": "Resolver öffnen"
|
||
}
|
||
},
|
||
"vm": {
|
||
"connection": { "online": "Online", "connecting": "Verbinden…", "offline": "Offline" },
|
||
"shell": { "unexpectedError": "Unerwarteter Fehler: {0}", "updatingClaudeCli": "Claude CLI wird aktualisiert…", "shutdownConfirm": "Dadurch wird der ClaudeDo-Worker beendet (laufende Task-Runs und interaktive Sitzungen brechen ab) und die App geschlossen. Fortfahren?" },
|
||
"mainWindow": { "closeConfirm": { "message": "{0} Mission-Control-Sitzung(en) laufen noch. Beim Beenden werden sie abgebrochen. Trotzdem schließen?" } },
|
||
"agentStatus": { "idle": "Leerlauf", "queued": "In Warteschlange", "running": "Läuft", "review": "Prüfung", "children": "Wartet auf Teilaufgaben", "done": "Fertig", "failed": "Fehlgeschlagen", "cancelled": "Abgebrochen" },
|
||
"taskStatus": { "idle": "Leerlauf", "queued": "In Warteschlange", "running": "Läuft", "waitingForReview": "Wartet auf Prüfung", "waitingForChildren": "Wartet auf Teilaufgaben", "done": "Fertig", "failed": "Fehlgeschlagen", "cancelled": "Abgebrochen", "parked": "Geparkt", "interactive": "Interaktiv", "waiting": "Wartet" },
|
||
"failureReason": { "maxTurns": "Turn-Limit erreicht", "timeout": "Zeitüberschreitung", "usageLimit": "Nutzungslimit erreicht", "error": "Fehler", "cancelled": "Abgebrochen", "unknown": "Grund unbekannt" },
|
||
"failureReasonTooltip": { "maxTurns": "Turn-Limit erreicht ({0}/{1} Turns) — der Worktree ist meist brauchbar; Task fortsetzen statt zurücksetzen." },
|
||
"planningBadge": { "active": "PLANUNG", "finalized": "GEPLANT" },
|
||
"taskRow": { "createdPrefix": "Erstellt {0}", "stepsText": "{0}/{1} Schritte" },
|
||
"queue": { "baseDirtyWarning": "Achtung: Das Repo dieser Liste hat uncommittete Änderungen ({0} geändert, {1} untracked) — ein neuer Worktree startet vom letzten Commit und enthält sie nicht." },
|
||
"tasksIsland": { "completedHeader": "ABGESCHLOSSEN", "completedHeaderCount": "ABGESCHLOSSEN · {0}", "statusPill": "{0} laufend · {1} Prüfung", "openTaskOne": "1 offene Aufgabe", "openTasks": "{0} offene Aufgaben", "planningResumeFailed": "Planungssitzung konnte nicht fortgesetzt werden: {0}", "approveFailed": "Genehmigen & Mergen fehlgeschlagen: {0}", "cancelReviewFailed": "Prüfung abbrechen fehlgeschlagen: {0}", "sendToQueueFailed": "In die Warteschlange stellen fehlgeschlagen: {0}", "queuePlanBlockedInteractive": "Plan kann nicht in die Warteschlange gestellt werden — {0} hat eine offene interaktive Sitzung und muss zuerst geschlossen werden.", "moveRunningRejected": "Ein laufender Task kann nicht in eine andere Liste verschoben werden.", "moveWorktreeRejected": "Verschieben nicht möglich — dieser Task hat einen aktiven Worktree, der auf sein aktuelles Repo zeigt.", "moveRepoConfirm": "Unterschiedliche Repos — {0} → {1}. Task trotzdem verschieben?", "moveConfirmUnavailable": "Verschieben nicht möglich — der Bestätigungsdialog ist nicht verfügbar.", "quickClaudeNoWorkingDir": "Für diese Liste ist kein Arbeitsverzeichnis konfiguriert.", "quickClaudeDirMissing": "Arbeitsverzeichnis existiert nicht mehr: {0}", "setStatusFailed": "Status konnte nicht aktualisiert werden: {0}", "cancelFailed": "Abbrechen fehlgeschlagen: {0}", "rejectToQueueFailed": "Zurückweisen in die Warteschlange fehlgeschlagen: {0}", "rejectToIdleFailed": "Zurückweisen fehlgeschlagen: {0}", "deleteTaskConfirm": "\"{0}\" löschen? Dies kann nicht rückgängig gemacht werden.", "deleteTaskFailed": "Löschen fehlgeschlagen: {0}", "toggleDoneFailed": "Erledigt-Status konnte nicht aktualisiert werden: {0}", "removeFromQueueFailed": "Aus der Warteschlange entfernen fehlgeschlagen: {0}", "openWorktreeFailed": "Worktree konnte nicht geöffnet werden: {0}" },
|
||
"diff": { "loadFailed": "Diff konnte nicht geladen werden: {0}", "noChanges": "Keine Änderungen anzuzeigen.", "unavailable": "Diff nicht mehr verfügbar — Commit-Bereich unvollständig." },
|
||
"planningDiff": { "hubError": "Kombinierte Vorschau konnte nicht erstellt werden (Hub-Fehler).", "conflict": "Kombinierte Vorschau nicht möglich: Teilaufgabe {0} steht im Konflikt mit einer früheren Teilaufgabe ({1} Dateien).", "buildFailed": "Kombinierte Vorschau konnte nicht erstellt werden: {0}" },
|
||
"merge": { "commitMessage": "chore: merge {0}", "progressMerging": "Wird zusammengeführt…", "progressVerifying": "Verify-Kommando der Liste läuft… ({0})", "workerOfflineBranches": "Worker offline — Branches können nicht aufgelistet werden.", "loadBranchesFailed": "Branches konnten nicht geladen werden: {0}", "merged": "Zusammengeführt.", "blocked": "Blockiert: {0}", "verifyFailed": "Merge ist gelandet, aber das Verify-Kommando der Liste ist fehlgeschlagen — die Aufgabe wurde nicht auf Erledigt gesetzt.", "untrackedCollision": "Merge abgelehnt — er würde eine unversionierte Datei im Ziel-Arbeitsverzeichnis überschreiben.", "dirtyTarget": "Merge abgelehnt — das Ziel-Arbeitsverzeichnis hat uncommittete Änderungen.", "targetDirty": "Das Ziel-Arbeitsverzeichnis hat bereits uncommittete Änderungen — stashen und mergen?", "unknownStatus": "Unbekannter Status: {0}", "mergeFailed": "Merge fehlgeschlagen: {0}" },
|
||
"settingsModal": { "workerOffline": "Worker offline — Einstellungen schreibgeschützt.", "saveFailed": "Speichern fehlgeschlagen: {0}" },
|
||
"onlineInbox": { "workerOffline": "Worker offline — Konfiguration kann nicht geladen werden.", "saved": "Konfiguration gespeichert.", "saveFailed": "Speichern fehlgeschlagen: {0}", "signedIn": "Erfolgreich angemeldet.", "signedInNoRole": "Angemeldet, aber diesem Konto fehlt die Rolle 'user' in Zitadel — die Online-Synchronisierung wird abgelehnt, bis die Rolle im ClaudeDo-Projekt zugewiesen wird.", "signInFailed": "Anmeldung fehlgeschlagen: {0}", "signedOut": "Abgemeldet.", "signOutFailed": "Abmeldung fehlgeschlagen: {0}" },
|
||
"tickets": { "azdoConnectionOk": "Verbunden — Repo {0}, Default-Branch {1}.", "connectionOk": "Verbunden als {0}.", "connectionMissingScopes": "Verbunden als {0}, aber es fehlen Scopes: {1}", "tokenCleared": "Token entfernt.", "workerOffline": "Worker nicht erreichbar." },
|
||
"weeklyReport": { "invalidRange": "Ungültiger Datumsbereich.", "error": "Fehler: {0}" },
|
||
"usageMonitor": {
|
||
"loadFailed": "Nutzungsdaten konnten nicht geladen werden: {0}",
|
||
"refreshFailed": "Nutzung konnte nicht aktualisiert werden: {0}",
|
||
"thresholdSaveFailed": "Grenze konnte nicht gespeichert werden: {0}",
|
||
"installStarted": "TokenTracker wird installiert — der Fortschritt läuft in der Log-Leiste.",
|
||
"installFailed": "TokenTracker konnte nicht installiert werden: {0}",
|
||
"analyticsRefreshFailed": "Die Auswertung konnte nicht aktualisiert werden: {0}",
|
||
"dashboardFailed": "Das TokenTracker-Dashboard konnte nicht geöffnet werden: {0}",
|
||
"dashboardUnavailable": "der lokale Dashboard-Server ist nicht gestartet"
|
||
},
|
||
"filesTab": { "workerOffline": "Worker offline.", "noneBundled": "Keine Standard-Agenten mitgeliefert.", "allPresent": "Alle Standard-Agenten bereits vorhanden.", "restored": "{0} Standard-Agent(en) wiederhergestellt.", "restoreFailed": "Wiederherstellung fehlgeschlagen: {0}", "resetToDefault": "Auf den mitgelieferten Standard zurückgesetzt." },
|
||
"sessionSkillsTab": { "installed": "Installiert: {0}", "installFailed": "Installation fehlgeschlagen: {0}", "updated": "Aktualisiert.", "updateFailed": "Aktualisierung fehlgeschlagen: {0}", "removed": "Entfernt.", "removeFailed": "Entfernen fehlgeschlagen: {0}" },
|
||
"worktreesTab": { "workerOffline": "Worker offline.", "removed": "{0} Worktree(s) entfernt.", "blocked": "Zwangsentfernung nicht möglich: {0} Aufgabe(n) laufen noch. Brich sie zuerst ab.", "removedFrom": "{0} Worktree(s) von {1} Aufgabe(n) entfernt.", "cleanupFailed": "Aufräumen fehlgeschlagen: {0}", "resetFailed": "Zurücksetzen fehlgeschlagen: {0}" },
|
||
"worktreesOverview": { "titleAll": "Worktrees", "titleList": "Worktrees — {0}", "listFallback": "Liste", "cleanupFailed": "Aufräumen fehlgeschlagen.", "cleanupFailedDetailed": "Aufräumen fehlgeschlagen: {0}", "removed": "{0} Worktree(s) entfernt.", "discardConfirm": "Worktree für \"{0}\" verwerfen? Nicht committete Arbeit geht verloren.", "discardFailed": "Worktree konnte nicht verworfen werden.", "keepFailed": "Worktree konnte nicht behalten werden.", "cannotForceRunning": "Eine laufende Aufgabe kann nicht zwangsweise entfernt werden.", "forceRemoveFailed": "Zwangsentfernung fehlgeschlagen.", "forceRemoveFailedDetailed": "Zwangsentfernung fehlgeschlagen: {0}", "batchDone": "{0} gemergt, {1} zu lösen.", "openInExplorerFailed": "Pfad konnte nicht geöffnet werden: {0}" },
|
||
"listSettings": { "untitled": "Unbenannt", "ticketProjectNone": "— keins —", "loadFailed": "Listeneinstellungen konnten nicht geladen werden: {0}", "ticketProjectsLoadFailed": "Ticket-Projekte konnten nicht geladen werden: {0}", "confirmDeleteFolder": "Ordner \"{0}\" löschen? Die Listen und Unterordner darin bleiben erhalten und wandern auf die oberste Ebene.", "confirmDeleteList": "Liste \"{0}\" und alle ihre Aufgaben löschen? Das kann nicht rückgängig gemacht werden.", "deleteBlockedPlanning": "Diese Liste hat Planungssitzungen mit Kind-Aufgaben. Erst diese verwerfen, dann die Liste löschen.", "workingDirMissing": "Dieser Ordner existiert nicht.", "workingDirNotRepo": "Dieser Ordner ist noch kein Git-Repository. Führe darin zuerst `git init` aus, oder leere das Arbeitsverzeichnis, um dies als manuelle Liste zu speichern." },
|
||
"detailsIsland": { "verifyFailed": "Merge ist erfolgt, aber das Verifikationskommando der Liste ist fehlgeschlagen — die Aufgabe wurde nicht auf 'Erledigt' gesetzt.", "untrackedCollision": "Merge abgelehnt — er würde eine unversionierte Datei im Ziel-Arbeitsverzeichnis überschreiben.", "dirtyTarget": "Merge abgelehnt — das Ziel-Arbeitsverzeichnis hat uncommittete Änderungen.", "stashAndMergeConfirm": "Das Ziel-Arbeitsverzeichnis hat uncommittete Änderungen.\nStashen, mergen und danach wiederherstellen?", "stopOffline": "Worker offline — Task kann nicht gestoppt werden.", "stopFailed": "Stoppen fehlgeschlagen: {0}", "enqueueFailed": "In die Warteschlange stellen fehlgeschlagen: {0}", "dequeueFailed": "Aus der Warteschlange entfernen fehlgeschlagen: {0}", "resetAndRetryFailed": "Zurücksetzen & erneut versuchen fehlgeschlagen: {0}", "toggleDoneFailed": "Erledigt-Status konnte nicht aktualisiert werden: {0}" },
|
||
"mergeSection": { "openWorktreeFailed": "Worktree konnte nicht geöffnet werden: {0}" },
|
||
"about": { "openPathFailed": "Pfad konnte nicht geöffnet werden: {0}" },
|
||
"lists": { "localSuffix": "{0} / lokal", "smartMyDay": "Mein Tag", "smartImportant": "Wichtig", "smartPlanned": "Geplant", "smartNotes": "Notizen", "virtualQueue": "Warteschlange", "virtualRunning": "Läuft", "virtualReview": "Prüfung", "newList": "Neue Liste", "findingsNotFound": "Für diese Liste gibt es noch keine Findings.", "findingsOpenFailed": "Findings-Ordner konnte nicht geöffnet werden: {0}", "openInExplorerFailed": "Pfad konnte nicht geöffnet werden: {0}" },
|
||
"repoImport": { "loadFailed": "Gespeicherte Ordner konnten nicht geladen werden: {0}", "saveFailed": "Ordner konnten nicht gespeichert werden: {0}", "createButton": "{0} Liste(n) erstellen" }
|
||
},
|
||
"ops": {
|
||
"stalledHint": "Läuft weiter — Worker antwortet noch",
|
||
"merge": {
|
||
"merging": "Wird zusammengeführt…",
|
||
"verifying": "Verify-Kommando der Liste läuft… ({0})",
|
||
"publishing": "Push und Draft-PR laufen…"
|
||
},
|
||
"diff": {
|
||
"parsing": "Diff wird geparst…"
|
||
},
|
||
"review": {
|
||
"submitting": "Wird zur Prüfung eingereicht…",
|
||
"rejecting": "Wird abgelehnt…",
|
||
"parking": "Wird geparkt…",
|
||
"previewing": "Vorschau wird geladen…"
|
||
},
|
||
"worktrees": {
|
||
"refreshing": "Wird aktualisiert…",
|
||
"cleaningUp": "Abgeschlossene Worktrees werden aufgeräumt…",
|
||
"resetting": "Worktree wird zurückgesetzt…",
|
||
"forceRemoving": "Worktree wird zwangsweise entfernt…",
|
||
"batchMerging": "Merge {0}/{1}…"
|
||
},
|
||
"claudeBin": {
|
||
"saving": "claude_bin wird gespeichert…"
|
||
},
|
||
"skills": {
|
||
"installing": "Skill wird geklont…",
|
||
"updating": "Skill wird aktualisiert…",
|
||
"restoringDefaults": "Standard-Agenten werden wiederhergestellt…"
|
||
},
|
||
"repoImport": {
|
||
"scanning": "Repositories werden gescannt…"
|
||
},
|
||
"updateCheck": {
|
||
"checking": "Wird nach Updates gesucht…"
|
||
},
|
||
"reports": {
|
||
"generatingWeekly": "Bericht wird erstellt…",
|
||
"runningDailyPrep": "Tagesvorbereitung läuft…",
|
||
"runningTicketImport": "Tickets werden importiert, danach Tagesplanung…"
|
||
},
|
||
"planning": {
|
||
"finalizing": "Plan wird finalisiert…",
|
||
"queuingSubtasks": "Teilaufgaben werden eingereiht…"
|
||
},
|
||
"worker": {
|
||
"startupRecovery": "Wiederherstellung läuft…",
|
||
"creatingWorktree": "Worktree wird erstellt…",
|
||
"rebasingAfterMerge": "Andere Worktrees werden rebased…"
|
||
}
|
||
},
|
||
"usage": {
|
||
"pill": {
|
||
"empty": "Nutzung –",
|
||
"bothFormat": "5h {0}% · 7d {1}%",
|
||
"fiveHourFormat": "5h {0}%",
|
||
"sevenDayFormat": "7d {0}%",
|
||
"fiveHourLabel": "5h",
|
||
"sevenDayLabel": "7d",
|
||
"resetIn": "{0}: Reset in {1}",
|
||
"durationHoursMinutes": "{0} h {1} m",
|
||
"durationMinutes": "{0} m",
|
||
"blockedReason": "Blockiert: {0}",
|
||
"stale": "veraltet (Stand {0})",
|
||
"lastError": "Letzter Fehler: {0}",
|
||
"throttled": "Gedrosselt: {0}/{1} Slots ({2})"
|
||
}
|
||
}
|
||
} |