i18n: Englisch als Hauptsprache, Sprachpakete fuer Desktop und WebUI (#661)
Umbau durch Gemini Flash, Durchsicht und Nacharbeit durch Claude. Umfang: - Desktop: LocalizationManager (JSON-Pakete, Rueckfall auf Englisch, Umschalten zur Laufzeit), Localize-Markup-Erweiterung, Sprachwahl in den Einstellungen (AppSettings.Language, Vorgabe "en"); 317 Schluessel je Sprache - WebUI: alle Ansichten auf t()/data-i18n, 656 Schluessel je Sprache - Agenten-Werkzeuge: Beschreibungen, Schemata und Meldungen auf Englisch - Tests an die englischen Meldungen angepasst, keine Pruefung abgeschwaecht Nacharbeit bei der Durchsicht: - ~25 Kommentarbloecke mit Begruendungen waren ersatzlos entfallen, darunter sicherheitsrelevante (NTFS-Datenstrom beim shared:-Praefix, Bremse gegen Agentenschleifen, doppelter POST beim Anlegen einer Instanz). Wieder eingesetzt: auf Englisch, wo die Datei umgestellt ist, sonst im Wortlaut. - Drei WebUI-Schluessel fehlten (logs.paused, instances.instanceOfflineError, instances.noInstanceActiveError). Weil t() bei fehlendem Schluessel den Schluessel selbst liefert, griff der "|| err.message"-Rueckfall nie — die Oberflaeche haette den Schluesselnamen angezeigt. Geprueft: Schluesselgleichheit en/de, Platzhalter je Schluessel, jeder im Code benutzte Schluessel vorhanden, node --check fuer alle Module, 1.220 Tests gruen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
69718122f3
commit
ad71682c2d
@@ -6,6 +6,496 @@
|
||||
"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.",
|
||||
|
||||
"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",
|
||||
@@ -42,15 +532,15 @@
|
||||
"runs.total.runs": "Läufe",
|
||||
"runs.total.prompt": "Prompt-Tokens",
|
||||
"runs.total.completion": "Antwort-Tokens",
|
||||
"runs.total.cached": "Aus dem Cache",
|
||||
"runs.total.cached": "Aus Cache",
|
||||
"runs.total.cost": "Kosten",
|
||||
"runs.total.notRun": "Abgewiesen (Budget, Herunterfahren)",
|
||||
"runs.unknownCost": "{n} Lauf/Läufe ohne bekannten Preis sind mit 0 $ gezählt.",
|
||||
"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 zu diesem Filter.",
|
||||
"runs.empty.text": "Kein Lauf passt auf diesen Filter.",
|
||||
"runs.list": "Läufe",
|
||||
"runs.page": "{from}–{to} von {total}",
|
||||
"runs.col.time": "Zeit",
|
||||
"runs.col.time": "Zeitpunkt",
|
||||
"runs.col.agent": "Agent",
|
||||
"runs.col.model": "Modell",
|
||||
"runs.col.event": "Ereignis",
|
||||
@@ -66,33 +556,33 @@
|
||||
"detail.notFound": "Lauf nicht gefunden",
|
||||
"detail.runId": "Lauf-ID",
|
||||
"detail.tokens": "Tokens",
|
||||
"detail.tokensValue": "{prompt} Prompt · {completion} Antwort · {cached} aus dem Cache",
|
||||
"detail.tokensValue": "{prompt} Prompt · {completion} Antwort · {cached} aus Cache",
|
||||
"detail.result": "Ergebnis",
|
||||
"detail.receipt": "Beleg",
|
||||
"detail.receipt": "Quittung",
|
||||
"detail.transcript": "Prompt und Antwort",
|
||||
"detail.transcript.disabled": "Für diesen Agenten ist der Prompt-Verlauf abgeschaltet (Aufbewahrung: nie).",
|
||||
"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 Transkript zu diesem Lauf – er lief vor Beginn der Aufzeichnung oder ist über seine Aufbewahrungsfrist hinaus.",
|
||||
"detail.transcript.truncated": "Dieser Lauf hat die Größengrenze des Prompt-Verlaufs überschritten; spätere Einträge sind gekürzt.",
|
||||
"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": "Systemprompt ({n} Zeichen)",
|
||||
"detail.entry.user": "Auftrag / Nachricht",
|
||||
"detail.entry.engine": "Nachfrage der Engine",
|
||||
"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} auf",
|
||||
"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 Transkript vorhanden.",
|
||||
"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": "Maß",
|
||||
"timeline.metric": "Messwert",
|
||||
"timeline.metric.cost": "Kosten",
|
||||
"timeline.metric.tokens": "Tokens",
|
||||
"timeline.metric.runs": "Läufe",
|
||||
@@ -106,21 +596,21 @@
|
||||
"timeline.tooltipRuns": "{n} Lauf/Läufe",
|
||||
"timeline.event.budget_exceeded": "Budget erschöpft",
|
||||
"timeline.event.model_changed": "Modell gewechselt",
|
||||
"timeline.hint": "Ein Klick auf einen Balken zeigt dessen Läufe.",
|
||||
"timeline.hint": "Klick auf einen Balken zeigt dessen Läufe.",
|
||||
|
||||
"history.title": "Prompt-Verlauf",
|
||||
"history.intro": "Prompt und Antwort jedes Laufs, durchsuchbar über das ganze Gespräch samt Werkzeugaufrufen und Ergebnissen.",
|
||||
"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 Transkripte in diesem Zeitraum. Die Aufzeichnung beginnt mit Version 0.1.12 und folgt der Aufbewahrung unten.",
|
||||
"history.empty.search": "Kein Transkript enthält diesen Text.",
|
||||
"history.list": "Transkripte ({n})",
|
||||
"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 aufbewahrt werden. Die Vorgabe gilt für jeden Agenten ohne eigene Einstellung; „nie“ löscht auch, was vorher aufgezeichnet wurde.",
|
||||
"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",
|
||||
@@ -129,13 +619,65 @@
|
||||
"history.settings.mode.inherit": "Vorgabe",
|
||||
"history.settings.mode.never": "Nie aufzeichnen",
|
||||
"history.settings.mode.days": "Tage",
|
||||
"history.settings.mode.forever": "Unbegrenzt",
|
||||
"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": "unbegrenzt",
|
||||
"history.settings.effective.days": "{n} Tage",
|
||||
"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}"
|
||||
"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"
|
||||
}
|
||||
|
||||
@@ -6,6 +6,496 @@
|
||||
"common.loading": "Loading…",
|
||||
"common.previous": "Previous",
|
||||
"common.next": "Next",
|
||||
"common.save": "Save",
|
||||
"common.cancel": "Cancel",
|
||||
"common.delete": "Delete",
|
||||
"common.edit": "Edit",
|
||||
"common.refresh": "Refresh",
|
||||
"common.close": "Close",
|
||||
"common.discard": "Discard",
|
||||
"common.apply": "Apply",
|
||||
"common.reset": "Reset",
|
||||
"common.search": "Search",
|
||||
"common.actions": "Actions",
|
||||
"common.status": "Status",
|
||||
"common.name": "Name",
|
||||
"common.description": "Description",
|
||||
"common.ready": "Ready",
|
||||
"common.none": "None",
|
||||
"common.unknown": "Unknown",
|
||||
"common.all": "All",
|
||||
"common.details": "Details",
|
||||
"common.language": "Language",
|
||||
"common.logout": "Log Out",
|
||||
"common.confirm": "Confirm",
|
||||
"common.yes": "Yes",
|
||||
"common.no": "No",
|
||||
|
||||
"status.running": "Running",
|
||||
"status.stopped": "Stopped",
|
||||
"status.silent": "Silent",
|
||||
"status.crashed": "Crashed",
|
||||
"status.unknown": "Unknown",
|
||||
"status.ready": "Ready",
|
||||
"status.busy": "Busy",
|
||||
"status.paused": "Paused",
|
||||
"status.done": "Done",
|
||||
"status.failed": "Failed",
|
||||
"status.blocked": "Blocked",
|
||||
"status.inReview": "In Review",
|
||||
"status.canceled": "Canceled",
|
||||
"status.archived": "Archived",
|
||||
|
||||
"header.instanceLabel": "Instance:",
|
||||
"header.noInstance": "(No instance)",
|
||||
"header.switchInstance": "Switch active instance",
|
||||
"header.startInstance": "Start",
|
||||
"header.startInstanceTooltip": "Start selected instance now",
|
||||
"header.toggleTheme": "Toggle color theme",
|
||||
"header.eventStreamConnected": "Event stream: connected",
|
||||
"header.eventStreamDisconnected": "Event stream: disconnected",
|
||||
"header.multipleRunning": "{count} running",
|
||||
"header.noneActive": "None active",
|
||||
"header.starting": "Starting…",
|
||||
"header.noInstances": "No instances",
|
||||
"header.selectInstancePlaceholder": "— Select instance —",
|
||||
"header.instanceOffline": "Instance offline (502)",
|
||||
"header.selectInstancePrompt": "Select instance (409)",
|
||||
|
||||
"nav.toggleSidebar": "Toggle sidebar",
|
||||
"nav.group.work": "Work",
|
||||
"nav.chat": "Chat",
|
||||
"nav.agents": "Agents",
|
||||
"nav.tasks": "Tasks",
|
||||
"nav.services": "Services",
|
||||
"nav.group.analytics": "Analytics",
|
||||
"nav.usage": "Token Usage",
|
||||
"nav.agentChats": "Agent Chats",
|
||||
"nav.group.system": "System",
|
||||
"nav.instances": "Instances",
|
||||
"nav.staging": "Approvals",
|
||||
"nav.logs": "Logs",
|
||||
"nav.backup": "Backup",
|
||||
"nav.settings": "Settings",
|
||||
"nav.info": "Info",
|
||||
|
||||
"login.prompt": "Please enter the instance manager access token (webUiToken in manager.json).",
|
||||
"login.tokenPlaceholder": "Access token (at least 20 characters)",
|
||||
"login.submit": "Sign In",
|
||||
"login.invalidToken": "Token is invalid or shorter than 20 characters.",
|
||||
"login.error": "Sign in error: {error}",
|
||||
|
||||
"chat.agentLabel": "Agent: ",
|
||||
"chat.noAgents": "No agents available",
|
||||
"chat.wake": "Wake",
|
||||
"chat.wakeTooltip": "Manually trigger / wake agent",
|
||||
"chat.clearHistory": "Clear history",
|
||||
"chat.clearHistoryTooltip": "Clear chat history for this agent",
|
||||
"chat.cancel": "Cancel",
|
||||
"chat.cancelTooltip": "Cancel active run",
|
||||
"chat.placeholder": "Type message to agent (Enter to send, Shift+Enter for new line)…",
|
||||
"chat.send": "Send",
|
||||
"chat.sendTooltip": "Send message",
|
||||
"chat.loadingHistory": "Loading history…",
|
||||
"chat.emptyHistory": "No messages in history yet.",
|
||||
"chat.historyLoadError": "Failed to load history: {error}",
|
||||
"chat.sendError": "Failed to send message: {error}",
|
||||
"chat.cancelConfirm": "Run was canceled.",
|
||||
"chat.cancelError": "Cancellation failed: {error}",
|
||||
"chat.wakeSuccess": "Agent started manually.",
|
||||
"chat.wakeError": "Failed to start agent: {error}",
|
||||
"chat.clearConfirmPrompt": "Permanently clear the entire chat history for this agent?",
|
||||
"chat.cleared": "Chat history cleared.",
|
||||
"chat.clearError": "Failed to clear history: {error}",
|
||||
"chat.role.user": "User",
|
||||
"chat.role.system": "System",
|
||||
"chat.role.tool": "Tool",
|
||||
|
||||
"agents.title": "Agents",
|
||||
"agents.newAgent": "New Agent",
|
||||
"agents.loading": "Loading agents…",
|
||||
"agents.empty": "No agents configured in this instance yet.",
|
||||
"agents.createFirst": "Create first agent",
|
||||
"agents.id": "ID",
|
||||
"agents.model": "Model",
|
||||
"agents.toolsActive": "{count} tools active",
|
||||
"agents.details": "Agent Details",
|
||||
"agents.selectPrompt": "Select an agent on the left.",
|
||||
"agents.chat": "Chat",
|
||||
"agents.chatTooltip": "Chat with this agent",
|
||||
"agents.delete": "Delete",
|
||||
"agents.deleteTooltip": "Delete this agent",
|
||||
"agents.name": "Name",
|
||||
"agents.description": "Description",
|
||||
"agents.availableTools": "Available Tools",
|
||||
"agents.noTools": "No tools configured for this agent.",
|
||||
"agents.configuration": "Configuration",
|
||||
"agents.configTooltip": "View tool settings",
|
||||
"agents.toolToggled": "Tool '{tool}' {status}.",
|
||||
"agents.enabled": "enabled",
|
||||
"agents.disabled": "disabled",
|
||||
"agents.saveFailed": "Modification failed: {error}",
|
||||
"agents.newAgentTitle": "Create New Agent",
|
||||
"agents.idLabel": "Agent ID (unique key):",
|
||||
"agents.idPlaceholder": "e.g. scout",
|
||||
"agents.nameLabel": "Display Name:",
|
||||
"agents.namePlaceholder": "e.g. Scout Agent",
|
||||
"agents.modelLabel": "Model (OpenRouter):",
|
||||
"agents.descLabel": "Description:",
|
||||
"agents.descPlaceholder": "Optional description of the agent…",
|
||||
"agents.createButton": "Create Agent",
|
||||
"agents.createdSuccess": "Agent '{name}' created successfully.",
|
||||
"agents.createFailed": "Failed to create agent: {error}",
|
||||
"agents.deleteConfirm": "Really delete agent '{name}' ({id})?",
|
||||
"agents.deleted": "Agent '{name}' deleted.",
|
||||
"agents.deleteFailed": "Deletion failed: {error}",
|
||||
"agents.settingsTitle": "Settings: {tool} ({agent})",
|
||||
"agents.loadingSettings": "Loading configuration…",
|
||||
"agents.secretHint": "Secret values (passwords, keys) are masked by the server.",
|
||||
"agents.noSettings": "No custom settings configured.",
|
||||
"agents.loadFailed": "Loading failed: {error}",
|
||||
"agents.rights": "Permissions",
|
||||
"agents.noOperations": "This tool has no individual operations. Default rule applies.",
|
||||
"agents.configuredHint": "Allowed operations run without confirmation, others require single approval, forbidden are denied immediately.",
|
||||
"agents.notConfiguredHint": "No permissions configured: Tool defaults apply. Saving below will make these settings binding.",
|
||||
"agents.operation": "Operation",
|
||||
"agents.setting": "Setting",
|
||||
"agents.effect": "Effect",
|
||||
"agents.allowed": "allowed",
|
||||
"agents.singleApproval": "single approval",
|
||||
"agents.forbidden": "forbidden",
|
||||
"agents.alwaysApprovalReason": "Modifications to agents always require approval.",
|
||||
"agents.saveRights": "Save Permissions",
|
||||
"agents.rightsSaved": "Permissions saved.",
|
||||
"agents.effectAuto": "runs",
|
||||
"agents.effectApprove": "single approval",
|
||||
"agents.effectDeny": "denied",
|
||||
"agents.standingApproval": "Standing approval #{id}",
|
||||
|
||||
"tasks.title": "Tasks",
|
||||
"tasks.newTask": "New Task",
|
||||
"tasks.showCompleted": "Show completed",
|
||||
"tasks.empty": "No tasks found",
|
||||
"tasks.createTitle": "Create Task",
|
||||
"tasks.agent": "Agent",
|
||||
"tasks.taskMessage": "Task description / instruction",
|
||||
"tasks.schedule": "Schedule",
|
||||
"tasks.scheduleType": "Schedule Type",
|
||||
"tasks.scheduleNone": "None (Manual run only)",
|
||||
"tasks.scheduleCron": "Cron Expression",
|
||||
"tasks.scheduleInterval": "Interval",
|
||||
"tasks.scheduleAt": "Specific time",
|
||||
"tasks.runNow": "Run Now",
|
||||
"tasks.pause": "Pause",
|
||||
"tasks.resume": "Resume",
|
||||
"tasks.delete": "Delete",
|
||||
"tasks.saved": "Task saved.",
|
||||
"tasks.deleted": "Task deleted.",
|
||||
"tasks.runTriggered": "Run triggered.",
|
||||
|
||||
"services.title": "Services",
|
||||
"services.newService": "New Service",
|
||||
"services.empty": "No background services configured",
|
||||
"services.serviceName": "Service Name",
|
||||
"services.serviceType": "Type",
|
||||
"services.port": "Port",
|
||||
"services.active": "Active",
|
||||
"services.start": "Start",
|
||||
"services.stop": "Stop",
|
||||
"services.restart": "Restart",
|
||||
|
||||
"backup.title": "Backup & Restore",
|
||||
"backup.refresh": "Refresh",
|
||||
"backup.refreshTooltip": "Reload backups",
|
||||
"backup.newBackup": "New Backup",
|
||||
"backup.newBackupTooltip": "Create new backup",
|
||||
"backup.noInstance": "No instance selected",
|
||||
"backup.selectInstancePrompt": "Please select an instance in the header above to manage its backups.",
|
||||
"backup.loading": "Loading backups…",
|
||||
"backup.backupDir": "Backup Directory",
|
||||
"backup.backupDirHint": "Backups are fully encrypted with the instance manager's license key and contain credentials. They can be restored on another machine using the same license key.",
|
||||
"backup.existingBackups": "Existing Backups ({count})",
|
||||
"backup.noBackups": "No backups exist for this instance yet. Create one using the button above.",
|
||||
"backup.restore": "Restore",
|
||||
"backup.restoreTooltip": "Restore this backup",
|
||||
"backup.deleteTooltip": "Permanently delete backup file",
|
||||
"backup.archiveFile": "Archive File",
|
||||
"backup.createdAt": "Created At",
|
||||
"backup.size": "Size",
|
||||
"backup.protection": "Protection",
|
||||
"backup.files": "Files",
|
||||
"backup.actions": "Actions",
|
||||
"backup.fileCount": "{count} files",
|
||||
"backup.foreignLicense": "Foreign License",
|
||||
"backup.unreadable": "Unreadable",
|
||||
"backup.licenseProtection": "License ({count} credentials)",
|
||||
"backup.passphraseProtection": "Passphrase ({count})",
|
||||
"backup.unencryptedProtection": "Unencrypted, no credentials",
|
||||
"backup.dialogTitle": "Create New Backup",
|
||||
"backup.dialogHint": "The backup will be encrypted with the instance manager's license key and contains credentials. If FTP upload is configured, it will be uploaded afterwards.",
|
||||
"backup.includeChats": "Backup chat history",
|
||||
"backup.includeLogs": "Include log files",
|
||||
"backup.createButton": "Create Backup",
|
||||
"backup.creating": "Creating backup…",
|
||||
"backup.created": "Backup created.",
|
||||
"backup.createFailed": "Backup failed: {error}",
|
||||
"backup.restoreTitle": "Restore Backup: {file}",
|
||||
"backup.overwriteWarningTitle": "Caution: Overwriting Existing Data",
|
||||
"backup.overwriteWarningText": "Restoring will overwrite the instance's current configuration and data with the state from {date}.",
|
||||
"backup.instanceStopNotice": "The instance will be gracefully stopped and restarted afterwards.",
|
||||
"backup.passphraseLabel": "Passphrase for credentials",
|
||||
"backup.passphrasePlaceholder": "Backup passphrase…",
|
||||
"backup.passphraseRequired": "Please enter the passphrase.",
|
||||
"backup.restoreNow": "Restore Now",
|
||||
"backup.restoring": "Restoring…",
|
||||
"backup.restoreSuccess": "Restore completed.",
|
||||
"backup.restoreFailed": "Restore failed: {error}",
|
||||
"backup.foreignLicenseTitle": "Source License Key Required",
|
||||
"backup.sourceLicenseLabel": "Source License Key",
|
||||
"backup.sourceLicenseHint": "Case and spaces do not matter.",
|
||||
"backup.sourceLicensePlaceholder": "License key of the installation where the backup originated…",
|
||||
"backup.restoreWithKey": "Restore with this Key",
|
||||
"backup.keyMismatch": "This license key does not match the backup.",
|
||||
"backup.deleteTitle": "Delete Backup",
|
||||
"backup.deleteConfirm": "Really permanently delete backup file '{file}'?",
|
||||
"backup.deleted": "Backup deleted.",
|
||||
"backup.deleteFailed": "Deletion failed: {error}",
|
||||
"backup.ftpTitle": "Backup FTP Upload",
|
||||
"backup.ftpLoading": "Loading FTP settings…",
|
||||
"backup.ftpHint": "Backups are encrypted — anyone reading the server sees nothing usable. However, without TLS, the server password is sent in plain text.",
|
||||
"backup.ftpAutoUpload": "Automatically upload completed backups",
|
||||
"backup.ftpServer": "Server",
|
||||
"backup.ftpPort": "Port",
|
||||
"backup.ftpUser": "Username",
|
||||
"backup.ftpPassword": "Password",
|
||||
"backup.ftpPasswordSaved": "(saved — leave empty to keep unchanged)",
|
||||
"backup.ftpDirectory": "Target Directory",
|
||||
"backup.ftpDirectoryHint": "Each instance gets its own subfolder.",
|
||||
"backup.ftpKeepCount": "Backups to keep per instance",
|
||||
"backup.ftpKeepCountHint": "Older backups on the server will be deleted.",
|
||||
"backup.ftpRequireTls": "Connect with TLS only",
|
||||
"backup.ftpTest": "Test Connection",
|
||||
"backup.ftpTestFailed": "Test failed: {error}",
|
||||
"backup.ftpSaved": "Saved.",
|
||||
"backup.ftpSaveFailed": "Save failed: {error}",
|
||||
|
||||
"logs.title": "Logs",
|
||||
"logs.connecting": "Connecting…",
|
||||
"logs.allInstances": "All Instances",
|
||||
"logs.allModules": "All Modules",
|
||||
"logs.clear": "Clear",
|
||||
"logs.pause": "Pause",
|
||||
"logs.resume": "Resume",
|
||||
"logs.paused": "Paused",
|
||||
"logs.autoScroll": "Autoscroll",
|
||||
"logs.empty": "No log messages yet.",
|
||||
|
||||
"settings.title": "Settings & System Architecture",
|
||||
"settings.intro": "Configuration overview following the instance manager concept: Strict separation between global manager level (installation) and isolated instance level.",
|
||||
"settings.managerLevel": "Instance Manager",
|
||||
"settings.managerBadge": "Manager Level · Global",
|
||||
"settings.managerIntro": "Applies to all instances and the WebUI. Stored in manager.json in the application root directory.",
|
||||
"settings.webUiAndNet": "WebUI & Network",
|
||||
"settings.configFile": "Configuration File",
|
||||
"settings.webUiPort": "WebUI Port",
|
||||
"settings.webUiPortDefault": "7000 (default, webUiPort)",
|
||||
"settings.networkBinding": "Network Binding",
|
||||
"settings.networkBindingValue": "loopback (127.0.0.1, webUiBinding)",
|
||||
"settings.accessProtection": "Access Protection",
|
||||
"settings.tokenActive": "Token active (≥ 20 characters)",
|
||||
"settings.licenseAndUpdates": "License & Updates",
|
||||
"settings.licenseScope": "License Scope",
|
||||
"settings.licenseScopeValue": "Installation level (E-M3: Unlimited instances)",
|
||||
"settings.licenseKey": "License Key",
|
||||
"settings.licenseEncrypted": "●●●●-●●●●-●●●●-●●●● (encrypted)",
|
||||
"settings.updateChannel": "Update Channel",
|
||||
"settings.updateChannelValue": "prod (Official release versions)",
|
||||
"settings.updateCheck": "Update Check",
|
||||
"settings.updateCheckValue": "Central at manager level",
|
||||
"settings.dcAndOversight": "Deploymentcenter & Oversight",
|
||||
"settings.dcMasterToken": "Master Token",
|
||||
"settings.dcMasterTokenValue": "●●●●●●●● (generates sub-tokens per instance)",
|
||||
"settings.desktopWindows": "Desktop Windows",
|
||||
"settings.desktopWindowsValue": "Active (each instance has its own window)",
|
||||
"settings.crashProtection": "Crash Protection",
|
||||
"settings.crashProtectionValue": "Max 5 restarts / 10 minutes",
|
||||
"settings.instanceSectionTitle": "Active Instance: {name}",
|
||||
"settings.instanceSectionTitleNone": "Instance-Related Settings",
|
||||
"settings.instanceBadge": "Instance Level · Isolated",
|
||||
"settings.noInstanceActive": "No instance active",
|
||||
"settings.instanceIntro": "Applies exclusively to the currently selected instance. All paths, logs, agents and budgets are strictly isolated from other instances.",
|
||||
"settings.noInstanceSelected": "No instance selected",
|
||||
"settings.noInstancePrompt": "Please select an active instance in the header above or switch to 'Instances' to start or select an instance.",
|
||||
"settings.toInstancesOverview": "To Instances Overview",
|
||||
"settings.identityAndProcess": "Identity & Process",
|
||||
"settings.instanceName": "Instance Name",
|
||||
"settings.instanceId": "Instance ID",
|
||||
"settings.autostartByManager": "Autostart by Manager",
|
||||
"settings.autostartActive": "Active (keep running)",
|
||||
"settings.autostartInactive": "Inactive (manual start)",
|
||||
"settings.communication": "Communication",
|
||||
"settings.communicationValue": "HTTP over Named Pipe (Windows) / Socket (Linux)",
|
||||
"settings.isolatedPaths": "Isolated Directories",
|
||||
"settings.logsPath": "Logs",
|
||||
"settings.backupsPath": "Backups",
|
||||
"settings.stateDbPath": "State Database",
|
||||
"settings.stateDbValue": "Instances/{name}/state.db (exclusive)",
|
||||
"settings.workspacePath": "Shared Workspace",
|
||||
"settings.openRouterCard": "Model Integration (OpenRouter)",
|
||||
"settings.openRouterStatus": "OpenRouter Status",
|
||||
"settings.connected": "Connected",
|
||||
"settings.offline": "Offline",
|
||||
"settings.statusMessage": "Status Message",
|
||||
"settings.credits": "Credits",
|
||||
"settings.apiKey": "API Key",
|
||||
"settings.apiKeyMasked": "Masked in InstanceSettings.json of this instance",
|
||||
"settings.openRouterNotRunning": "Instance is not running. Data will be loaded after start.",
|
||||
"settings.openRouterNoKey": "No key configured or service unreachable.",
|
||||
"settings.runtimeAndSubsystems": "Runtime & Subsystems",
|
||||
"settings.agentEngine": "Agent Engine",
|
||||
"settings.scheduler": "Scanner / Scheduler",
|
||||
"settings.stagingService": "Approvals (Staging)",
|
||||
"settings.dcSubToken": "Deploymentcenter Sub-Token",
|
||||
"settings.subsystemsLoading": "Querying runtime data…",
|
||||
"settings.subsystemsStopped": "Instance stopped — subsystems idle.",
|
||||
"settings.save": "Save Settings",
|
||||
"settings.discard": "Discard Changes",
|
||||
"settings.saved": "Settings saved successfully.",
|
||||
"settings.saveError": "Failed to save settings: {error}",
|
||||
|
||||
"info.title": "System & Status",
|
||||
"info.noInstanceSelected": "No instance selected",
|
||||
"info.noInstanceHint": "Select an active instance in the header above or switch to 'Instances' to start one.",
|
||||
"info.loading": "Loading system data…",
|
||||
"info.instanceAndVersion": "Instance & Version",
|
||||
"info.instanceName": "Instance Name",
|
||||
"info.instanceId": "Instance ID",
|
||||
"info.version": "Version",
|
||||
"info.build": "Build",
|
||||
"info.environment": "Environment",
|
||||
"info.dataDirectory": "Data Directory",
|
||||
"info.subsystems": "Subsystems",
|
||||
"info.openRouterStatus": "OpenRouter & Credits",
|
||||
|
||||
"instances.title": "Instance Management",
|
||||
"instances.refresh": "Refresh",
|
||||
"instances.newInstance": "New Instance",
|
||||
"instances.activeBadge": "Active in WebUI",
|
||||
"instances.selectActive": "Select as active",
|
||||
"instances.start": "Start",
|
||||
"instances.stop": "Stop",
|
||||
"instances.bringToFront": "Bring window to front",
|
||||
"instances.createTitle": "Create New Instance",
|
||||
"instances.instanceOfflineError": "The instance is not reachable.",
|
||||
"instances.noInstanceActiveError": "No instance is active. Start or select one under 'Instances'.",
|
||||
"instances.instanceNameLabel": "Instance Name",
|
||||
"instances.instanceNamePlaceholder": "e.g. production-1",
|
||||
"instances.dailyBudgetUsd": "Daily Budget ($ USD)",
|
||||
"instances.dailyBudgetTokens": "Daily Budget (Tokens)",
|
||||
"instances.autostart": "Autostart with Manager",
|
||||
"instances.created": "Instance created.",
|
||||
"instances.createError": "Failed to create instance: {error}",
|
||||
|
||||
"staging.title": "Approvals",
|
||||
"staging.refresh": "Refresh",
|
||||
"staging.loading": "Loading approvals…",
|
||||
"staging.empty": "No open approvals",
|
||||
"staging.emptyHint": "Currently no tool calls are waiting for manual approval.",
|
||||
"staging.approve": "Approve",
|
||||
"staging.reject": "Reject",
|
||||
"staging.callId": "Call ID",
|
||||
"staging.agent": "Agent",
|
||||
"staging.tool": "Tool",
|
||||
"staging.time": "Timestamp",
|
||||
"staging.frozenArgs": "Frozen Arguments:",
|
||||
"staging.suggestHint": "This operation by {agent} was approved {approvals} times in the last 14 days. Should {tool}.{action} run without confirmation for this agent in the future?",
|
||||
"staging.allowSimilar": "Allow similar in future: {agent} may run {tool}.{action} without confirmation from now on (revocable below under 'Standing Approvals').",
|
||||
"staging.notActive": "Staging not active",
|
||||
"staging.notActiveHint": "No staging service configured in this instance.",
|
||||
"staging.approved": "Call approved{similar}: {message}",
|
||||
"staging.similarSuffix": " and allowed for the future",
|
||||
"staging.executedSuccess": "Executed successfully",
|
||||
"staging.approveFailed": "Approval failed: {error}",
|
||||
"staging.standingTitle": "Standing Approvals",
|
||||
"staging.standingEmpty": "None. When approving, 'Allow similar in future' can be selected; permanent permissions are in the agent's tool config.",
|
||||
"staging.granted": "Granted",
|
||||
"staging.occasion": "Occasion",
|
||||
"staging.revoke": "Revoke",
|
||||
"staging.revokeConfirm": "Revoke standing approval? {agent} will have to submit {tool}.{action} individually again.",
|
||||
"staging.revoked": "Revoked.",
|
||||
"staging.revokeFailed": "Revocation failed: {error}",
|
||||
"staging.rejectTitle": "Reject Tool Call",
|
||||
"staging.rejectReasonLabel": "Reason (optional):",
|
||||
"staging.rejectReasonPlaceholder": "Reason for rejection to the agent…",
|
||||
"staging.rejectButton": "Reject Call",
|
||||
"staging.rejected": "Call was rejected.",
|
||||
"staging.rejectFailed": "Rejection failed: {error}",
|
||||
|
||||
"agentChats.title": "Agent Communication (A2A)",
|
||||
"agentChats.allAgents": "All Agents",
|
||||
"agentChats.filterTooltip": "Filter by participating agent (sender or receiver)",
|
||||
"agentChats.fromTooltip": "Messages from this day",
|
||||
"agentChats.toTooltip": "Messages up to and including this day",
|
||||
"agentChats.searchPlaceholder": "Fulltext…",
|
||||
"agentChats.searchTooltip": "Search message text and agent names",
|
||||
"agentChats.refresh": "Refresh",
|
||||
"agentChats.refreshTooltip": "Reload communication",
|
||||
"agentChats.from": "from",
|
||||
"agentChats.to": "to",
|
||||
"agentChats.noInstance": "No instance selected",
|
||||
"agentChats.selectInstancePrompt": "Please select an instance in the header above to view its agent communication.",
|
||||
"agentChats.infoTitle": "Internal Communication",
|
||||
"agentChats.infoHint": "Direct message exchanges between agents are logged here when agents communicate via the AgentComm tool (action send_message).",
|
||||
"agentChats.loading": "Loading communication history…",
|
||||
"agentChats.matchCount": "{filtered} of {total} messages",
|
||||
"agentChats.totalCount": "{total} messages",
|
||||
"agentChats.empty": "No Messages",
|
||||
"agentChats.emptyFilter": "No internal communication matches these filters.",
|
||||
"agentChats.emptyInstance": "No internal agent-to-agent communication has been logged in this instance yet.",
|
||||
"agentChats.replyTo": "➔ Reply to",
|
||||
"agentChats.arrow": "➔",
|
||||
"agentChats.loadFailed": "Failed to load communication: {error}",
|
||||
|
||||
"usage.title": "Token Usage & Analysis",
|
||||
"usage.loading": "Loading usage data…",
|
||||
"usage.empty": "No Data",
|
||||
"usage.emptyHint": "No token usage data recorded yet.",
|
||||
"usage.totalCost": "Total Cost ({runs} runs)",
|
||||
"usage.totalTokens": "Total Tokens",
|
||||
"usage.inputTokens": "Input Tokens (Prompt)",
|
||||
"usage.outputTokens": "Output Tokens (Completion)",
|
||||
"usage.unknownCostRuns": "{count} run(s) without known price — their costs are not included in the total.",
|
||||
"usage.tokensByAgent": "Tokens by Agent",
|
||||
"usage.tokensByModel": "Tokens by Model",
|
||||
"usage.recentRuns": "Recent Agent Runs",
|
||||
"usage.time": "Timestamp",
|
||||
"usage.agent": "Agent",
|
||||
"usage.model": "Model",
|
||||
"usage.status": "Status",
|
||||
"usage.prompt": "Prompt",
|
||||
"usage.completion": "Completion",
|
||||
"usage.total": "Total",
|
||||
"usage.cost": "Cost",
|
||||
"usage.unknownPrice": "(price unknown)",
|
||||
"usage.notAvailable": "Usage data not available",
|
||||
"usage.forecastTitle": "Cost Forecast",
|
||||
"usage.forecastDay": "Forecast per day",
|
||||
"usage.forecastMonth": "Forecast per month (30 days)",
|
||||
"usage.tasksDay": "thereof tasks per day",
|
||||
"usage.otherDay": "other runs per day (Ø 7 days)",
|
||||
"usage.budgetWarning": "{agent}: Planned tasks are forecast to cost {cost} per day, daily budget allows {budget}. Later runs of a day will be rejected.",
|
||||
"usage.withoutBasis": "{count} task(s) without basis (no run, no model price) — not included in total.",
|
||||
"usage.oneOffOpen": "Open one-off tasks cost approximately an additional {cost}.",
|
||||
"usage.basisHint": "Basis per task: average of its recent runs, otherwise agent's average, otherwise an estimate from prompt length and list price (tends to be high).",
|
||||
"usage.task": "Task",
|
||||
"usage.runsDay": "Runs/Day",
|
||||
"usage.perRun": "per Run",
|
||||
"usage.basis": "Basis",
|
||||
"usage.perDay": "per Day",
|
||||
"usage.basisRuns": "Ø last {n} runs",
|
||||
"usage.basisAgent": "Ø of agent ({n} runs)",
|
||||
"usage.basisEstimate": "Estimate – no runs yet",
|
||||
"usage.basisUnknown": "no basis",
|
||||
|
||||
"filter.range": "Period",
|
||||
"filter.range.24h": "Last 24 hours",
|
||||
@@ -137,5 +627,57 @@
|
||||
"history.settings.effective.days": "kept {n} days",
|
||||
"history.settings.save": "Save retention",
|
||||
"history.settings.saved": "Retention saved.",
|
||||
"history.settings.failed": "Saving failed: {error}"
|
||||
"history.settings.failed": "Saving failed: {error}",
|
||||
|
||||
"desktop.mainWindow.title": "ClawdDotNet",
|
||||
"desktop.mainWindow.sidebarTooltip": "Toggle sidebar",
|
||||
"desktop.mainWindow.switchInstance": "Switch instance",
|
||||
"desktop.mainWindow.instance": "INSTANCE",
|
||||
"desktop.mainWindow.themeLight": "Light Mode",
|
||||
"desktop.mainWindow.themeDark": "Dark Mode",
|
||||
"desktop.mainWindow.openInstanceFolder": "Open Instance Folder",
|
||||
"desktop.mainWindow.instanceManager": "Instance Manager",
|
||||
"desktop.mainWindow.exit": "Exit",
|
||||
"desktop.nav.work": "Work",
|
||||
"desktop.nav.analytics": "Analytics",
|
||||
"desktop.nav.system": "System",
|
||||
"desktop.status.unknown": "unknown",
|
||||
"desktop.status.design": "Design",
|
||||
"desktop.status.noApiKey": "No API Key",
|
||||
"desktop.status.noUsageData": "No usage data",
|
||||
"desktop.settings.discard": "Discard",
|
||||
"desktop.settings.save": "Save",
|
||||
"desktop.settings.instance": "INSTANCE",
|
||||
"desktop.settings.instanceName": "Instance Name",
|
||||
"desktop.settings.apiKey": "OpenRouter API Key",
|
||||
"desktop.settings.autostart": "Autostart by Manager",
|
||||
"desktop.settings.autostartHint": "The instance manager starts this instance on launch and restarts it if it crashes.",
|
||||
"desktop.settings.logDir": "Log Directory",
|
||||
"desktop.settings.logDirHint": "Applies only to this instance. Empty means: Logs subfolder in instance directory.",
|
||||
"desktop.settings.dailyCost": "Daily Budget ($ USD)",
|
||||
"desktop.settings.dailyTokens": "Daily Budget (Tokens)",
|
||||
"desktop.settings.general": "GENERAL",
|
||||
"desktop.settings.instancesDir": "Instances Directory",
|
||||
"desktop.settings.minLogLevel": "Minimum Log Level",
|
||||
"desktop.settings.openRouterUrl": "OpenRouter Base URL",
|
||||
"desktop.settings.language": "Language",
|
||||
"desktop.settings.dcAndLicense": "DEPLOYMENTCENTER & LICENSE",
|
||||
"desktop.settings.dcUrl": "Server URL",
|
||||
"desktop.settings.dcToken": "Master Token",
|
||||
"desktop.settings.dcEnv": "Environment",
|
||||
"desktop.settings.errorReporting": "Automatically report errors",
|
||||
"desktop.settings.updateCheck": "Check for updates on startup",
|
||||
"desktop.settings.updateChannel": "Update Channel",
|
||||
"desktop.settings.licenseKey": "License Key",
|
||||
"desktop.chat.inputPlaceholder": "Type message... (Enter to send, Shift+Enter for new line)",
|
||||
"desktop.chat.send": "Send",
|
||||
"desktop.chat.statusReady": "Ready",
|
||||
"desktop.chat.statusSending": "Sending…",
|
||||
"desktop.chat.statusDesign": "Design Mode",
|
||||
"desktop.dialog.addAgent": "Add Agent",
|
||||
"desktop.dialog.addJob": "Add Job",
|
||||
"desktop.dialog.addService": "Add Service",
|
||||
"desktop.dialog.restoreBackup": "Restore Backup",
|
||||
"desktop.dialog.license": "License Activation",
|
||||
"desktop.dialog.instancePicker": "Choose Instance"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user