Files
ClawdDotNet/src/ClawdDotNet.Manager.Web/wwwroot/i18n/de.json
T
RichardandClaude Opus 5.5 5f3a85595b Budgetende, Stufe 1: Ausfall vermerken, Regel je Agent, mitnehmen statt anrennen (#716)
Bisher teilte sich eine Budgetablehnung den Ausgang NichtGelaufen mit dem
Herunterfahren. Einmalige Aufgaben wurden den Rest des Tages alle 30 Minuten
erneut abgelehnt (jedes Mal ein Beleg) und liefen nach Mitternacht still zu
Lasten des neuen Tages. Wiederkehrende verfielen still.

- TaskLauf.KeinBudget als eigener Ausgang; der Dispatcher bildet
  BudgetExceeded darauf ab.
- Vier Felder an der Aufgabe: BudgetMissCount, LastBudgetMissAt,
  DeferredUntil, CatchUpPending (Spalten werden fuer bestehende Datenbanken
  nachgeruestet).
- Einmalige Aufgaben werden mitgenommen: Der Termin bleibt erhalten, faellig
  ist die Aufgabe wieder ab der naechsten lokalen Mitternacht, nicht vorher.
- Wiederkehrende Aufgaben folgen der Regel des Agenten
  (budget.whenExhausted): expire vermerkt den Ausfall und laesst den Termin
  verfallen; catchUpOnce fasst alle verpassten Termine zu einem Nachholauf am
  naechsten Tag zusammen. Ein regulaer faelliger Termin deckt das Nachholen
  mit ab, es bleibt bei einem Lauf.
- Der neue Tag hat Vorfahrt: Mitgenommenes und Nachholaeufe kommen nach allem
  regulaer Faelligen, unabhaengig von der Prioritaet.
- Beim ersten Takt eines neuen Tages eine Zusammenfassung je Agent im Log.
- Sichtbar: Die Aufgabenkarte der WebUI zeigt Ausfaelle, Mitnahme und
  Nachholen; die Regel ist im Desktop je Agent einstellbar. Nebenbei sind
  "Next:"/"Last:" auf der Karte ins Sprachpaket gewandert.

Stufen 2 bis 4 (Reservierung, Spielraum statt pauschalem Anteil, Vorbeugen)
folgen.

Tests: BudgetMissTests (9 neu). 1.238 gruen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:03:15 +02:00

690 lines
34 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"nav.usage.runs": "Läufe",
"nav.usage.timeline": "Zeitverlauf",
"nav.promptHistory": "Prompt-Verlauf",
"common.loading": "Lade…",
"common.previous": "Zurück",
"common.next": "Weiter",
"common.save": "Speichern",
"common.cancel": "Abbrechen",
"common.delete": "Löschen",
"common.edit": "Bearbeiten",
"common.refresh": "Aktualisieren",
"common.close": "Schließen",
"common.discard": "Verwerfen",
"common.apply": "Anwenden",
"common.reset": "Zurücksetzen",
"common.search": "Suche",
"common.actions": "Aktionen",
"common.status": "Status",
"common.name": "Name",
"common.description": "Beschreibung",
"common.ready": "Bereit",
"common.none": "Keine",
"common.unknown": "Unbekannt",
"common.all": "Alle",
"common.details": "Details",
"common.language": "Sprache",
"common.logout": "Abmelden",
"common.confirm": "Bestätigen",
"common.yes": "Ja",
"common.no": "Nein",
"status.running": "Läuft",
"status.stopped": "Gestoppt",
"status.silent": "Verstummt",
"status.crashed": "Abgestürzt",
"status.unknown": "Unbekannt",
"status.ready": "Bereit",
"status.busy": "Beschäftigt",
"status.paused": "Pausiert",
"status.done": "Erledigt",
"status.failed": "Fehlgeschlagen",
"status.blocked": "Blockiert",
"status.inReview": "Im Review",
"status.canceled": "Verworfen",
"status.archived": "Archiviert",
"header.instanceLabel": "Instanz:",
"header.noInstance": "(Keine Instanz)",
"header.switchInstance": "Aktive Instanz wechseln",
"header.startInstance": "Starten",
"header.startInstanceTooltip": "Ausgewählte Instanz jetzt starten",
"header.toggleTheme": "Farbschema umschalten",
"header.eventStreamConnected": "Ereignisstrom: verbunden",
"header.eventStreamDisconnected": "Ereignisstrom: getrennt",
"header.multipleRunning": "{count} laufen",
"header.noneActive": "Keine aktiv",
"header.starting": "Startet…",
"header.noInstances": "Keine Instanzen",
"header.selectInstancePlaceholder": "— Instanz wählen —",
"header.instanceOffline": "Instanz offline (502)",
"header.selectInstancePrompt": "Instanz wählen (409)",
"nav.toggleSidebar": "Seitenleiste ein-/ausklappen",
"nav.group.work": "Arbeiten",
"nav.chat": "Chat",
"nav.agents": "Agenten",
"nav.tasks": "Aufgaben",
"nav.services": "Dienste",
"nav.group.analytics": "Analyse",
"nav.usage": "Tokennutzung",
"nav.agentChats": "Agenten-Chats",
"nav.group.system": "System",
"nav.instances": "Instanzen",
"nav.staging": "Freigaben",
"nav.logs": "Protokoll",
"nav.backup": "Sicherung",
"nav.settings": "Einstellungen",
"nav.info": "Info",
"login.prompt": "Bitte gib das Zugangstoken des Instanzmanagers ein (webUiToken in manager.json).",
"login.tokenPlaceholder": "Zugangstoken (mind. 20 Zeichen)",
"login.submit": "Anmelden",
"login.invalidToken": "Token ungültig oder kürzer als 20 Zeichen.",
"login.error": "Anmeldefehler: {error}",
"chat.agentLabel": "Agent: ",
"chat.noAgents": "Keine Agenten vorhanden",
"chat.wake": "Wecken",
"chat.wakeTooltip": "Agenten manuell ausführen / wecken",
"chat.clearHistory": "Verlauf leeren",
"chat.clearHistoryTooltip": "Chatverlauf dieses Agenten leeren",
"chat.cancel": "Abbrechen",
"chat.cancelTooltip": "Laufenden Lauf abbrechen",
"chat.placeholder": "Nachricht an den Agenten eingeben (Enter zum Senden, Umschalt+Enter für neue Zeile)…",
"chat.send": "Senden",
"chat.sendTooltip": "Nachricht senden",
"chat.loadingHistory": "Lade Verlauf…",
"chat.emptyHistory": "Noch keine Nachrichten im Verlauf vorhanden.",
"chat.historyLoadError": "Verlauf konnte nicht geladen werden: {error}",
"chat.sendError": "Nachricht konnte nicht gesendet werden: {error}",
"chat.cancelConfirm": "Lauf wurde abgebrochen.",
"chat.cancelError": "Abbruch fehlgeschlagen: {error}",
"chat.wakeSuccess": "Agent wurde manuell gestartet.",
"chat.wakeError": "Starten fehlgeschlagen: {error}",
"chat.clearConfirmPrompt": "Soll der gesamte Chatverlauf dieses Agenten unwiderruflich gelöscht werden?",
"chat.cleared": "Chatverlauf geleert.",
"chat.clearError": "Leeren fehlgeschlagen: {error}",
"chat.role.user": "Benutzer",
"chat.role.system": "System",
"chat.role.tool": "Werkzeug",
"agents.title": "Agenten",
"agents.newAgent": "Neuer Agent",
"agents.loading": "Lade Agenten…",
"agents.empty": "In dieser Instanz sind noch keine Agenten eingerichtet.",
"agents.createFirst": "Ersten Agenten anlegen",
"agents.id": "Kennung (ID)",
"agents.model": "Modell",
"agents.toolsActive": "{count} Werkzeuge aktiv",
"agents.details": "Agent-Details",
"agents.selectPrompt": "Wähle links einen Agenten aus.",
"agents.chat": "Chatten",
"agents.chatTooltip": "Mit diesem Agenten chatten",
"agents.delete": "Löschen",
"agents.deleteTooltip": "Diesen Agenten löschen",
"agents.name": "Name",
"agents.description": "Beschreibung",
"agents.availableTools": "Verfügbare Werkzeuge",
"agents.noTools": "Keine Werkzeuge für diesen Agenten konfiguriert.",
"agents.configuration": "Konfiguration",
"agents.configTooltip": "Werkzeug-Einstellungen einsehen",
"agents.toolToggled": "Werkzeug '{tool}' {status}.",
"agents.enabled": "aktiviert",
"agents.disabled": "deaktiviert",
"agents.saveFailed": "Änderung fehlgeschlagen: {error}",
"agents.newAgentTitle": "Neuen Agenten anlegen",
"agents.idLabel": "Agent-ID (eindeutiger Schlüssel):",
"agents.idPlaceholder": "z.B. scout",
"agents.nameLabel": "Anzeigename:",
"agents.namePlaceholder": "z.B. Scout Agent",
"agents.modelLabel": "Modell (OpenRouter):",
"agents.descLabel": "Beschreibung:",
"agents.descPlaceholder": "Optionale Beschreibung des Agenten…",
"agents.createButton": "Agent anlegen",
"agents.createdSuccess": "Agent '{name}' wurde erfolgreich angelegt.",
"agents.createFailed": "Fehler beim Anlegen: {error}",
"agents.deleteConfirm": "Soll der Agent '{name}' ({id}) wirklich gelöscht werden?",
"agents.deleted": "Agent '{name}' wurde gelöscht.",
"agents.deleteFailed": "Löschen fehlgeschlagen: {error}",
"agents.settingsTitle": "Einstellungen: {tool} ({agent})",
"agents.loadingSettings": "Lade Konfiguration…",
"agents.secretHint": "Geheime Werte (Passwörter, Schlüssel) werden vom Server maskiert ausgegeben.",
"agents.noSettings": "Keine individuellen Einstellungen hinterlegt.",
"agents.loadFailed": "Laden fehlgeschlagen: {error}",
"agents.rights": "Rechte",
"agents.noOperations": "Dieses Werkzeug kennt keine einzelnen Operationen. Es gilt die Standardregel.",
"agents.configuredHint": "Erlaubte Operationen laufen ohne Rückfrage, alle anderen werden einzeln zur Freigabe vorgelegt, verbotene gar nicht erst.",
"agents.notConfiguredHint": "Noch keine Rechte gesetzt: Es gilt die Vorgabe des Werkzeugs. Mit dem Speichern werden die Einstellungen unten verbindlich.",
"agents.operation": "Operation",
"agents.setting": "Einstellung",
"agents.effect": "Wirkung",
"agents.allowed": "erlaubt",
"agents.singleApproval": "einzeln freigeben",
"agents.forbidden": "verboten",
"agents.alwaysApprovalReason": "Änderungen an Agenten brauchen immer eine Freigabe.",
"agents.saveRights": "Rechte speichern",
"agents.rightsSaved": "Rechte gespeichert.",
"agents.effectAuto": "läuft",
"agents.effectApprove": "einzeln freigeben",
"agents.effectDeny": "gesperrt",
"agents.standingApproval": "Dauerfreigabe #{id}",
"tasks.title": "Aufgaben",
"tasks.newTask": "Neue Aufgabe",
"tasks.showCompleted": "Abgeschlossene anzeigen",
"tasks.empty": "Keine Aufgaben vorhanden",
"tasks.createTitle": "Aufgabe erstellen",
"tasks.agent": "Agent",
"tasks.taskMessage": "Aufgabenbeschreibung / Nachricht",
"tasks.schedule": "Zeitplan",
"tasks.scheduleType": "Planungsart",
"tasks.scheduleNone": "Keine (Nur manuell)",
"tasks.scheduleCron": "Cron-Ausdruck",
"tasks.scheduleInterval": "Intervall",
"tasks.scheduleAt": "Fester Zeitpunkt",
"tasks.runNow": "Jetzt ausführen",
"tasks.pause": "Pausieren",
"tasks.resume": "Fortsetzen",
"tasks.delete": "Löschen",
"tasks.saved": "Aufgabe gespeichert.",
"tasks.deleted": "Aufgabe gelöscht.",
"tasks.runTriggered": "Lauf ausgelöst.",
"tasks.nextRun": "Nächster",
"tasks.lastRun": "Letzter",
"tasks.budgetMissed": "Budget erschöpft: {n} Lauf/Läufe abgelehnt",
"tasks.budgetMissedLast": "zuletzt {time}",
"tasks.budgetCarriedOver": "mitgenommen, wieder fällig ab {time}",
"tasks.budgetCatchUp": "ein Nachholauf ab {time}",
"services.title": "Dienste",
"services.newService": "Neuer Dienst",
"services.empty": "Keine Hintergrunddienste konfiguriert",
"services.serviceName": "Dienstname",
"services.serviceType": "Typ",
"services.port": "Port",
"services.active": "Aktiv",
"services.start": "Starten",
"services.stop": "Beenden",
"services.restart": "Neustarten",
"backup.title": "Datensicherung & Wiederherstellung",
"backup.refresh": "Aktualisieren",
"backup.refreshTooltip": "Sicherungen neu laden",
"backup.newBackup": "Neue Sicherung",
"backup.newBackupTooltip": "Neue Sicherung erstellen",
"backup.noInstance": "Keine Instanz ausgewählt",
"backup.selectInstancePrompt": "Bitte wähle oben im Kopfbereich eine Instanz aus, um deren Sicherungen zu verwalten.",
"backup.loading": "Lade Sicherungen…",
"backup.backupDir": "Sicherungsverzeichnis",
"backup.backupDirHint": "Sicherungen werden als Ganzes mit dem Lizenzschlüssel des Instanzmanagers verschlüsselt und enthalten die Zugangsdaten. Auf einer anderen Maschine lassen sie sich mit demselben Lizenzschlüssel zurückspielen.",
"backup.existingBackups": "Vorhandene Sicherungen ({count})",
"backup.noBackups": "Für diese Instanz gibt es noch keine Sicherung. Lege über die Schaltfläche oben eine an.",
"backup.restore": "Wiederherstellen",
"backup.restoreTooltip": "Diese Sicherung wiederherstellen",
"backup.deleteTooltip": "Sicherungsdatei unwiderruflich löschen",
"backup.archiveFile": "Archivdatei",
"backup.createdAt": "Erstellt am",
"backup.size": "Größe",
"backup.protection": "Schutz",
"backup.files": "Dateien",
"backup.actions": "Aktionen",
"backup.fileCount": "{count} Dateien",
"backup.foreignLicense": "Fremde Lizenz",
"backup.unreadable": "Unlesbar",
"backup.licenseProtection": "Lizenz ({count} Zugangsdaten)",
"backup.passphraseProtection": "Passphrase ({count})",
"backup.unencryptedProtection": "Unverschlüsselt, ohne Zugangsdaten",
"backup.dialogTitle": "Neue Sicherung erstellen",
"backup.dialogHint": "Die Sicherung wird mit dem Lizenzschlüssel des Instanzmanagers verschlüsselt und enthält die Zugangsdaten. Ist ein FTP-Upload eingerichtet, wird sie anschließend hochgeladen.",
"backup.includeChats": "Chatverläufe sichern",
"backup.includeLogs": "Protokolldateien (Logs) einschließen",
"backup.createButton": "Sicherung erstellen",
"backup.creating": "Erstelle Sicherung…",
"backup.created": "Sicherung erstellt.",
"backup.createFailed": "Fehler beim Sichern: {error}",
"backup.restoreTitle": "Sicherung wiederherstellen: {file}",
"backup.overwriteWarningTitle": "Achtung: Überschreiben bestehender Daten",
"backup.overwriteWarningText": "Die Wiederherstellung überschreibt die aktuellen Konfigurationen und Daten der Instanz mit dem Stand vom {date}.",
"backup.instanceStopNotice": "Die Instanz wird dafür geordnet angehalten und danach wieder gestartet.",
"backup.passphraseLabel": "Passphrase für Zugangsdaten",
"backup.passphrasePlaceholder": "Passphrase der Sicherung…",
"backup.passphraseRequired": "Bitte gib die Passphrase an.",
"backup.restoreNow": "Jetzt wiederherstellen",
"backup.restoring": "Stelle wieder her…",
"backup.restoreSuccess": "Wiederherstellung abgeschlossen.",
"backup.restoreFailed": "Wiederherstellung fehlgeschlagen: {error}",
"backup.foreignLicenseTitle": "Lizenzschlüssel der Quelle erforderlich",
"backup.sourceLicenseLabel": "Lizenzschlüssel der Quelle",
"backup.sourceLicenseHint": "Groß- und Kleinschreibung sowie Leerzeichen spielen keine Rolle.",
"backup.sourceLicensePlaceholder": "Lizenzschlüssel der Installation, von der die Sicherung stammt…",
"backup.restoreWithKey": "Mit diesem Schlüssel wiederherstellen",
"backup.keyMismatch": "Dieser Lizenzschlüssel passt nicht zu der Sicherung.",
"backup.deleteTitle": "Sicherung löschen",
"backup.deleteConfirm": "Soll die Sicherungsdatei '{file}' wirklich unwiderruflich gelöscht werden?",
"backup.deleted": "Sicherung gelöscht.",
"backup.deleteFailed": "Löschen fehlgeschlagen: {error}",
"backup.ftpTitle": "FTP-Upload der Sicherungen",
"backup.ftpLoading": "Lade FTP-Einstellungen…",
"backup.ftpHint": "Die Sicherungen sind verschlüsselt — wer den Server liest, liest nichts Brauchbares. Das Kennwort des Servers geht ohne TLS aber im Klartext über die Leitung.",
"backup.ftpAutoUpload": "Fertige Sicherungen automatisch hochladen",
"backup.ftpServer": "Server",
"backup.ftpPort": "Port",
"backup.ftpUser": "Benutzer",
"backup.ftpPassword": "Kennwort",
"backup.ftpPasswordSaved": "(gespeichert — leer lassen für unverändert)",
"backup.ftpDirectory": "Zielordner",
"backup.ftpDirectoryHint": "Darunter bekommt jede Instanz einen eigenen Ordner.",
"backup.ftpKeepCount": "Sicherungen je Instanz behalten",
"backup.ftpKeepCountHint": "Ältere werden auf dem Server gelöscht.",
"backup.ftpRequireTls": "Nur mit TLS verbinden",
"backup.ftpTest": "Verbindung testen",
"backup.ftpTestFailed": "Test fehlgeschlagen: {error}",
"backup.ftpSaved": "Gespeichert.",
"backup.ftpSaveFailed": "Speichern fehlgeschlagen: {error}",
"logs.title": "Protokoll",
"logs.connecting": "Verbinde…",
"logs.allInstances": "Alle Instanzen",
"logs.allModules": "Alle Module",
"logs.clear": "Leeren",
"logs.pause": "Pausieren",
"logs.resume": "Fortsetzen",
"logs.paused": "Pausiert",
"logs.autoScroll": "Autoscroll",
"logs.empty": "Noch keine Protokolleinträge vorhanden.",
"settings.title": "Einstellungen & Systemarchitektur",
"settings.intro": "Übersicht der Konfiguration nach dem Instanzmanager-Konzept: Strikte Trennung zwischen globaler Manager-Ebene (Installation) und isolierter Instanz-Ebene.",
"settings.managerLevel": "Instanzmanager",
"settings.managerBadge": "Manager-Ebene · Global",
"settings.managerIntro": "Gilt für alle Instanzen und die Weboberfläche. Gespeichert in manager.json im Anwendungs-Hauptverzeichnis.",
"settings.webUiAndNet": "Weboberfläche & Netzwerk",
"settings.configFile": "Konfigurationsdatei",
"settings.webUiPort": "WebUI-Port",
"settings.webUiPortDefault": "7000 (Vorgabe, webUiPort)",
"settings.networkBinding": "Netzwerk-Bindung",
"settings.networkBindingValue": "loopback (127.0.0.1, webUiBinding)",
"settings.accessProtection": "Zugangsschutz",
"settings.tokenActive": "Token aktiv (≥ 20 Zeichen)",
"settings.licenseAndUpdates": "Lizenz & Updates",
"settings.licenseScope": "Lizenz-Geltung",
"settings.licenseScopeValue": "Installationsebene (E-M3: Beliebig viele Instanzen)",
"settings.licenseKey": "Lizenzschlüssel",
"settings.licenseEncrypted": "●●●●-●●●●-●●●●-●●●● (verschlüsselt)",
"settings.updateChannel": "Update-Kanal",
"settings.updateChannelValue": "prod (Offizielle Release-Versionen)",
"settings.updateCheck": "Update-Prüfung",
"settings.updateCheckValue": "Zentral auf Manager-Ebene",
"settings.dcAndOversight": "Deploymentcenter & Aufsicht",
"settings.dcMasterToken": "Master-Token",
"settings.dcMasterTokenValue": "●●●●●●●● (erzeugt Sub-Token je Instanz)",
"settings.desktopWindows": "Desktop-Fenster",
"settings.desktopWindowsValue": "Aktiv (jede Instanz hat ein eigenes Fenster)",
"settings.crashProtection": "Absturz-Schutz",
"settings.crashProtectionValue": "Max. 5 Neustarts / 10 Minuten",
"settings.instanceSectionTitle": "Aktive Instanz: {name}",
"settings.instanceSectionTitleNone": "Instanzbezogene Einstellungen",
"settings.instanceBadge": "Instanz-Ebene · Isoliert",
"settings.noInstanceActive": "Keine Instanz aktiv",
"settings.instanceIntro": "Gilt ausschließlich für die aktuell ausgewählte Instanz. Alle Pfade, Protokolle, Agenten und Budgets sind strikt von anderen Instanzen isoliert.",
"settings.noInstanceSelected": "Keine Instanz ausgewählt",
"settings.noInstancePrompt": "Bitte wähle oben im Kopfbereich eine aktive Instanz aus oder wechsle in den Bereich 'Instanzen', um eine Instanz zu starten oder auszuwählen.",
"settings.toInstancesOverview": "Zur Instanzen-Übersicht",
"settings.identityAndProcess": "Identität & Prozess",
"settings.instanceName": "Instanzname",
"settings.instanceId": "Instanz-ID",
"settings.autostartByManager": "Autostart durch Manager",
"settings.autostartActive": "Aktiv (Am Laufen halten)",
"settings.autostartInactive": "Inaktiv (Manueller Start)",
"settings.communication": "Kommunikation",
"settings.communicationValue": "HTTP über Named Pipe (Windows) / Socket (Linux)",
"settings.isolatedPaths": "Isolierte Verzeichnisse",
"settings.logsPath": "Protokolle (Logs)",
"settings.backupsPath": "Datensicherungen",
"settings.stateDbPath": "Zustandsdatenbank",
"settings.stateDbValue": "Instances/{name}/state.db (exklusiv)",
"settings.workspacePath": "Arbeitsbereich (Shared)",
"settings.openRouterCard": "Modellanbindung (OpenRouter)",
"settings.openRouterStatus": "OpenRouter-Status",
"settings.connected": "Verbunden",
"settings.offline": "Offline",
"settings.statusMessage": "Statusmeldung",
"settings.credits": "Guthaben / Credits",
"settings.apiKey": "API-Schlüssel",
"settings.apiKeyMasked": "In InstanceSettings.json dieser Instanz maskiert hinterlegt",
"settings.openRouterNotRunning": "Instanz läuft nicht. Daten werden nach dem Start geladen.",
"settings.openRouterNoKey": "Kein Schlüssel hinterlegt oder Dienst nicht erreichbar.",
"settings.runtimeAndSubsystems": "Laufzeit & Teilsysteme",
"settings.agentEngine": "Agent Engine",
"settings.scheduler": "Scanner / Scheduler",
"settings.stagingService": "Freigabestelle (Staging)",
"settings.dcSubToken": "Deploymentcenter Sub-Token",
"settings.subsystemsLoading": "Laufzeitdaten werden abgefragt…",
"settings.subsystemsStopped": "Instanz ist beendet — Teilsysteme ruhen.",
"settings.save": "Einstellungen speichern",
"settings.discard": "Verwerfen",
"settings.saved": "Einstellungen erfolgreich gespeichert.",
"settings.saveError": "Fehler beim Speichern der Einstellungen: {error}",
"info.title": "System & Status",
"info.noInstanceSelected": "Keine Instanz ausgewählt",
"info.noInstanceHint": "Wähle oben im Kopfbereich eine aktive Instanz aus oder wechsle in den Bereich 'Instanzen', um eine Instanz zu starten.",
"info.loading": "Lade Systemdaten…",
"info.instanceAndVersion": "Instanz & Version",
"info.instanceName": "Instanzname",
"info.instanceId": "Instanz-ID",
"info.version": "Version",
"info.build": "Build",
"info.environment": "Umgebung",
"info.dataDirectory": "Datenverzeichnis",
"info.subsystems": "Teilsysteme",
"info.openRouterStatus": "OpenRouter & Guthaben",
"instances.title": "Instanzverwaltung",
"instances.refresh": "Aktualisieren",
"instances.newInstance": "Neue Instanz",
"instances.activeBadge": "Aktiv im WebUI",
"instances.selectActive": "Als aktiv wählen",
"instances.start": "Starten",
"instances.stop": "Beenden",
"instances.bringToFront": "Fenster nach vorn",
"instances.createTitle": "Neue Instanz anlegen",
"instances.instanceOfflineError": "Die Instanz ist nicht erreichbar.",
"instances.noInstanceActiveError": "Keine Instanz aktiv. Unter 'Instanzen' starten oder auswählen.",
"instances.instanceNameLabel": "Instanz-Name",
"instances.instanceNamePlaceholder": "z.B. production-1",
"instances.dailyBudgetUsd": "Tagesbudget ($ USD)",
"instances.dailyBudgetTokens": "Tagesbudget (Tokens)",
"instances.autostart": "Autostart durch Manager",
"instances.created": "Instanz erfolgreich angelegt.",
"instances.createError": "Fehler beim Anlegen der Instanz: {error}",
"staging.title": "Freigabestelle",
"staging.refresh": "Aktualisieren",
"staging.loading": "Lade Freigaben…",
"staging.empty": "Keine offenen Freigaben",
"staging.emptyHint": "Aktuell warten keine Werkzeug-Aufrufe auf eine manuelle Bestätigung.",
"staging.approve": "Freigeben",
"staging.reject": "Ablehnen",
"staging.callId": "Aufruf-ID",
"staging.agent": "Agent",
"staging.tool": "Werkzeug",
"staging.time": "Zeitpunkt",
"staging.frozenArgs": "Eingefrorene Argumente:",
"staging.suggestHint": "Diese Operation von {agent} wurde in den letzten 14 Tagen schon {approvals}-mal freigegeben. Soll {tool}.{action} für diesen Agenten künftig ohne Rückfrage laufen?",
"staging.allowSimilar": "Gleichartiges künftig erlauben: {agent} darf {tool}.{action} ab jetzt ohne Rückfrage (widerrufbar unten unter „Dauerfreigaben“).",
"staging.notActive": "Freigabestelle nicht aktiv",
"staging.notActiveHint": "In dieser Instanz ist keine Freigabestelle eingerichtet.",
"staging.approved": "Aufruf freigegeben{similar}: {message}",
"staging.similarSuffix": " und künftig erlaubt",
"staging.executedSuccess": "Erfolgreich ausgeführt",
"staging.approveFailed": "Freigabe fehlgeschlagen: {error}",
"staging.standingTitle": "Dauerfreigaben",
"staging.standingEmpty": "Keine. Beim Freigeben lässt sich „Gleichartiges künftig erlauben“ wählen; dauerhafte Rechte stehen sonst in der Werkzeugkonfiguration des Agenten.",
"staging.granted": "Erteilt",
"staging.occasion": "Anlass",
"staging.revoke": "Widerrufen",
"staging.revokeConfirm": "Dauerfreigabe widerrufen? {agent} muss {tool}.{action} dann wieder einzeln vorlegen.",
"staging.revoked": "Widerrufen.",
"staging.revokeFailed": "Widerruf fehlgeschlagen: {error}",
"staging.rejectTitle": "Werkzeug-Aufruf ablehnen",
"staging.rejectReasonLabel": "Begründung (optional):",
"staging.rejectReasonPlaceholder": "Begründung für die Ablehnung an den Agenten…",
"staging.rejectButton": "Aufruf ablehnen",
"staging.rejected": "Aufruf wurde abgelehnt.",
"staging.rejectFailed": "Ablehnen fehlgeschlagen: {error}",
"agentChats.title": "Agenten-Kommunikation (A2A)",
"agentChats.allAgents": "Alle Agenten",
"agentChats.filterTooltip": "Nach beteiligtem Agenten filtern (Absender oder Empfänger)",
"agentChats.fromTooltip": "Nachrichten ab diesem Tag",
"agentChats.toTooltip": "Nachrichten bis einschließlich diesem Tag",
"agentChats.searchPlaceholder": "Volltext…",
"agentChats.searchTooltip": "Suche im Nachrichtentext und in den Agentennamen",
"agentChats.refresh": "Aktualisieren",
"agentChats.refreshTooltip": "Kommunikation neu laden",
"agentChats.from": "von",
"agentChats.to": "bis",
"agentChats.noInstance": "Keine Instanz ausgewählt",
"agentChats.selectInstancePrompt": "Bitte wähle oben im Kopfbereich eine Instanz aus, um deren Agenten-Kommunikation anzuzeigen.",
"agentChats.infoTitle": "Interne Kommunikation",
"agentChats.infoHint": "Hier wird der direkte Nachrichtenaustausch zwischen Agenten protokolliert, wenn Agenten über das Werkzeug AgentComm (Aktion send_message) miteinander sprechen.",
"agentChats.loading": "Lade Kommunikationsverlauf…",
"agentChats.matchCount": "{filtered} von {total} Nachrichten",
"agentChats.totalCount": "{total} Nachrichten",
"agentChats.empty": "Keine Nachrichten",
"agentChats.emptyFilter": "Für diese Filter liegt keine interne Kommunikation vor.",
"agentChats.emptyInstance": "In dieser Instanz wurde bisher keine interne Agent-zu-Agent-Kommunikation protokolliert.",
"agentChats.replyTo": "➔ Antwort an",
"agentChats.arrow": "➔",
"agentChats.loadFailed": "Kommunikation konnte nicht geladen werden: {error}",
"usage.title": "Token-Verbrauch & Analyse",
"usage.loading": "Lade Verbrauchsdaten…",
"usage.empty": "Keine Daten",
"usage.emptyHint": "Noch keine Token-Verbrauchsdaten aufgezeichnet.",
"usage.totalCost": "Gesamtkosten ({runs} Läufe)",
"usage.totalTokens": "Tokens gesamt",
"usage.inputTokens": "Eingabe-Tokens (Prompt)",
"usage.outputTokens": "Ausgabe-Tokens (Completion)",
"usage.unknownCostRuns": "{count} Lauf/Läufe ohne bekannten Preis — deren Kosten sind in der Summe nicht enthalten.",
"usage.tokensByAgent": "Tokens nach Agent",
"usage.tokensByModel": "Tokens nach Modell",
"usage.recentRuns": "Letzte Agenten-Läufe",
"usage.time": "Zeitpunkt",
"usage.agent": "Agent",
"usage.model": "Modell",
"usage.status": "Status",
"usage.prompt": "Prompt",
"usage.completion": "Completion",
"usage.total": "Gesamt",
"usage.cost": "Kosten",
"usage.unknownPrice": "(Preis unbekannt)",
"usage.notAvailable": "Verbrauchsdaten nicht verfügbar",
"usage.forecastTitle": "Kostenprognose",
"usage.forecastDay": "Prognose je Tag",
"usage.forecastMonth": "Prognose je Monat (30 Tage)",
"usage.tasksDay": "davon Aufgaben je Tag",
"usage.otherDay": "sonstige Läufe je Tag (Ø 7 Tage)",
"usage.budgetWarning": "{agent}: Die geplanten Aufgaben kosten laut Prognose {cost} am Tag, das Tagesbudget erlaubt {budget}. Die späten Läufe eines Tages werden abgelehnt.",
"usage.withoutBasis": "{count} Aufgabe(n) ohne Grundlage (kein Lauf, kein Modellpreis) – nicht in der Summe enthalten.",
"usage.oneOffOpen": "Offene einmalige Aufgaben kosten zusätzlich etwa {cost}.",
"usage.basisHint": "Grundlage je Aufgabe: Mittelwert ihrer letzten Läufe, sonst der des Agenten, sonst eine Schätzung aus Promptlänge und Listenpreis (eher zu hoch).",
"usage.task": "Aufgabe",
"usage.runsDay": "Läufe/Tag",
"usage.perRun": "je Lauf",
"usage.basis": "Grundlage",
"usage.perDay": "je Tag",
"usage.basisRuns": "Ø letzte {n} Läufe",
"usage.basisAgent": "Ø des Agenten ({n} Läufe)",
"usage.basisEstimate": "Schätzung – noch kein Lauf",
"usage.basisUnknown": "keine Grundlage",
"filter.range": "Zeitraum",
"filter.range.24h": "Letzte 24 Stunden",
"filter.range.7d": "Letzte 7 Tage",
"filter.range.30d": "Letzte 30 Tage",
"filter.range.90d": "Letzte 90 Tage",
"filter.range.custom": "Eigener…",
"filter.from": "Von",
"filter.to": "Bis",
"filter.agent": "Agent",
"filter.model": "Modell",
"filter.event": "Ereignis",
"filter.status": "Status",
"filter.all": "Alle",
"filter.minCost": "Kosten ab ($)",
"filter.search": "Suche",
"filter.search.placeholder": "Aufgabe, Ergebnis, Lauf-ID…",
"filter.apply": "Anwenden",
"filter.reset": "Zurücksetzen",
"source.task": "Aufgabe",
"source.direct": "Direkter Lauf",
"source.approval": "Freigabe",
"source.webview": "Chat (Fenster)",
"source.webui": "Chat (Web)",
"source.telegram": "Telegram",
"source.agentcomm": "Delegation",
"source.job": "Job",
"source.unknown": "Unbekannt",
"runs.title": "Tokennutzung › Läufe",
"runs.unavailable": "Keine Verbrauchsdaten",
"runs.totals": "Summen für diesen Filter",
"runs.total.runs": "Läufe",
"runs.total.prompt": "Prompt-Tokens",
"runs.total.completion": "Antwort-Tokens",
"runs.total.cached": "Aus Cache",
"runs.total.cost": "Kosten",
"runs.total.notRun": "Abgelehnt (Budget, Shutdown)",
"runs.unknownCost": "{n} Lauf/Läufe ohne bekannten Preis sind mit 0 $ gerechnet.",
"runs.empty.title": "Keine Läufe",
"runs.empty.text": "Kein Lauf passt auf diesen Filter.",
"runs.list": "Läufe",
"runs.page": "{from}–{to} von {total}",
"runs.col.time": "Zeitpunkt",
"runs.col.agent": "Agent",
"runs.col.model": "Modell",
"runs.col.event": "Ereignis",
"runs.col.status": "Status",
"runs.col.steps": "Schritte",
"runs.col.prompt": "Prompt",
"runs.col.completion": "Antwort",
"runs.col.cost": "Kosten",
"runs.col.duration": "Dauer",
"detail.back": "← Zurück",
"detail.title": "Lauf",
"detail.notFound": "Lauf nicht gefunden",
"detail.runId": "Lauf-ID",
"detail.tokens": "Tokens",
"detail.tokensValue": "{prompt} Prompt · {completion} Antwort · {cached} aus Cache",
"detail.result": "Ergebnis",
"detail.receipt": "Quittung",
"detail.transcript": "Prompt und Antwort",
"detail.transcript.disabled": "Prompt-Verlauf ist für diesen Agenten abgeschaltet (Aufbewahrung: nie).",
"detail.transcript.unavailable": "Diese Instanz zeichnet keinen Prompt-Verlauf auf.",
"detail.transcript.missing": "Kein Verlauf für diesen Lauf — er lief vor Beginn der Aufzeichnung oder ist älter als die Aufbewahrungsfrist.",
"detail.transcript.truncated": "Dieser Lauf hat die Größengrenze des Verlaufs überschritten; spätere Einträge sind gekürzt.",
"detail.transcript.size": "{n} Einträge, {chars} Zeichen",
"detail.systemPrompt": "System-Prompt ({n} Zeichen)",
"detail.entry.user": "Aufgabe / Nachricht",
"detail.entry.engine": "Nachfasslauf der Engine",
"detail.entry.event": "Ereignis",
"detail.entry.assistant": "Modellschritt {n}",
"detail.entry.usage": "{prompt} rein · {completion} raus",
"detail.entry.tool_result": "Ergebnis: {tool}",
"detail.entry.call": "Ruft {tool}",
"detail.entry.clipped": "gekürzt",
"detail.tool": "Werkzeug",
"detail.arguments": "Argumente",
"detail.toolCalls": "Werkzeugaufrufe",
"detail.toolCalls.hint": "Aus dem Audit-Log — auch ohne Verlauf vorhanden.",
"detail.approvals": "Zur Freigabe vorgelegt",
"timeline.title": "Tokennutzung › Zeitverlauf",
"timeline.chart": "Zeitverlauf",
"timeline.metric": "Messwert",
"timeline.metric.cost": "Kosten",
"timeline.metric.tokens": "Tokens",
"timeline.metric.runs": "Läufe",
"timeline.groupBy": "Nach",
"timeline.groupBy.agent": "Agent",
"timeline.groupBy.model": "Modell",
"timeline.groupBy.source": "Ereignis",
"timeline.bucket": "Je",
"timeline.bucket.hour": "Stunde",
"timeline.bucket.day": "Tag",
"timeline.tooltipRuns": "{n} Lauf/Läufe",
"timeline.event.budget_exceeded": "Budget erschöpft",
"timeline.event.model_changed": "Modell gewechselt",
"timeline.hint": "Klick auf einen Balken zeigt dessen Läufe.",
"history.title": "Prompt-Verlauf",
"history.intro": "Prompt und Antwort jedes Laufs, durchsuchbar über die gesamte Unterhaltung samt Werkzeugaufrufen und Ergebnissen.",
"history.unavailable": "Prompt-Verlauf nicht verfügbar",
"history.empty.title": "Nichts aufgezeichnet",
"history.empty.text": "Keine Verläufe in diesem Zeitraum. Die Aufzeichnung beginnt mit Version 0.1.12 und folgt den unten stehenden Fristen.",
"history.empty.search": "Kein Verlauf enthält diesen Text.",
"history.list": "Verläufe ({n})",
"history.prompt": "Prompt",
"history.response": "Antwort",
"history.truncated": "Größengrenze erreicht ({chars} Zeichen gespeichert).",
"history.settings.title": "Aufbewahrung",
"history.settings.intro": "Wie lange Prompts und Antworten aufgehoben werden. Die Vorgabe gilt für jeden Agenten ohne eigene Angabe; „nie“ löscht auch, was vorher aufgezeichnet war.",
"history.settings.default": "Vorgabe für alle Agenten:",
"history.settings.agent": "Agent",
"history.settings.retention": "Aufbewahrung",
"history.settings.effective": "Gilt",
"history.settings.mode": "Aufbewahrung",
"history.settings.mode.inherit": "Vorgabe",
"history.settings.mode.never": "Nie aufzeichnen",
"history.settings.mode.days": "Tage",
"history.settings.mode.forever": "Für immer aufheben",
"history.settings.days": "Tage",
"history.settings.daysUnit": "Tage",
"history.settings.effective.never": "wird nicht aufgezeichnet",
"history.settings.effective.forever": "bleibt für immer",
"history.settings.effective.days": "bleibt {n} Tage",
"history.settings.save": "Aufbewahrung speichern",
"history.settings.saved": "Aufbewahrung gespeichert.",
"history.settings.failed": "Speichern fehlgeschlagen: {error}",
"desktop.mainWindow.title": "ClawdDotNet",
"desktop.mainWindow.sidebarTooltip": "Seitenleiste ein-/ausklappen",
"desktop.mainWindow.switchInstance": "Instanz wechseln",
"desktop.mainWindow.instance": "INSTANZ",
"desktop.mainWindow.themeLight": "Hellmodus",
"desktop.mainWindow.themeDark": "Dunkelmodus",
"desktop.mainWindow.openInstanceFolder": "Instanz-Ordner öffnen",
"desktop.mainWindow.instanceManager": "Instanzmanager",
"desktop.mainWindow.exit": "Beenden",
"desktop.nav.work": "Arbeiten",
"desktop.nav.analytics": "Analyse",
"desktop.nav.system": "System",
"desktop.status.unknown": "unbekannt",
"desktop.status.design": "Entwurf",
"desktop.status.noApiKey": "kein API-Key",
"desktop.status.noUsageData": "keine Nutzungsdaten",
"desktop.settings.discard": "Verwerfen",
"desktop.settings.save": "Speichern",
"desktop.settings.instance": "INSTANZ",
"desktop.settings.instanceName": "Instanz-Name",
"desktop.settings.apiKey": "OpenRouter API-Key",
"desktop.settings.autostart": "Autostart durch Manager",
"desktop.settings.autostartHint": "Der Instanzmanager startet diese Instanz, wenn er hochkommt, und wieder, wenn sie abstürzt.",
"desktop.settings.logDir": "Protokoll-Verzeichnis",
"desktop.settings.logDirHint": "Gilt nur für diese Instanz. Leer heißt: Unterordner Logs im Instanzverzeichnis.",
"desktop.settings.dailyCost": "Tagesbudget ($ USD)",
"desktop.settings.dailyTokens": "Tagesbudget (Tokens)",
"desktop.settings.general": "ALLGEMEIN",
"desktop.settings.instancesDir": "Instanzen-Verzeichnis",
"desktop.settings.minLogLevel": "Minimaler Log-Level",
"desktop.settings.openRouterUrl": "OpenRouter Base-URL",
"desktop.settings.language": "Sprache",
"desktop.settings.dcAndLicense": "DEPLOYMENTCENTER & LIZENZ",
"desktop.settings.dcUrl": "Server-URL",
"desktop.settings.dcToken": "Master-Token",
"desktop.settings.dcEnv": "Umgebung",
"desktop.settings.errorReporting": "Fehler automatisch melden",
"desktop.settings.updateCheck": "Beim Start auf Updates prüfen",
"desktop.settings.updateChannel": "Update-Kanal",
"desktop.settings.licenseKey": "Lizenzschlüssel",
"desktop.chat.inputPlaceholder": "Nachricht eingeben (Enter zum Senden, Shift+Enter für neue Zeile)...",
"desktop.chat.send": "Senden",
"desktop.chat.statusReady": "Bereit",
"desktop.chat.statusSending": "Sende…",
"desktop.chat.statusDesign": "Entwurfsmodus",
"desktop.dialog.addAgent": "Agent hinzufügen",
"desktop.dialog.addJob": "Job hinzufügen",
"desktop.dialog.addService": "Dienst hinzufügen",
"desktop.dialog.restoreBackup": "Sicherung wiederherstellen",
"desktop.dialog.license": "Lizenz-Aktivierung",
"desktop.dialog.instancePicker": "Instanz auswählen"
}