Eigene inhaltsadressierte Ablage (Agents/.history/objects, SHA-256) statt Git, Journal FileHistory in state.db. Jeder Schreibweg - FileRW write/append/copy/ delete/stock_add, FTP- und RocketChat-Downloads - legt die alte Fassung ab und verbucht die Aenderung mit RunId. Externe Aenderungen findet ein Abgleich beim Start und stuendlich. Aufbewahrung nach Tagen und Fassungen, verwaiste Objekte werden entfernt. WebUI: Dateiverlauf mit Filter, Diff und Wiederherstellen nur durch den Menschen mit Grund. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1035 lines
50 KiB
JSON
1035 lines
50 KiB
JSON
{
|
||
"nav.usage.runs": "Runs",
|
||
"nav.usage.timeline": "Timeline",
|
||
"nav.promptHistory": "Prompt History",
|
||
|
||
"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.team": "Team overview",
|
||
"common.saved": "Saved.",
|
||
"common.create": "Create",
|
||
"nav.organisation": "Organisation",
|
||
"org.title": "Organisation",
|
||
"org.subtitle": "Units, leads and members. Every agent only reaches its unit and its lead — the structure is the address book.",
|
||
"org.problems": "Problems in the structure",
|
||
"org.structure": "Structure",
|
||
"org.newUnit": "New unit",
|
||
"org.newSubUnit": "New sub-unit",
|
||
"org.topLevel": "Top level",
|
||
"org.leadShort": "lead",
|
||
"org.unitId": "Id (letters, digits, - and _)",
|
||
"org.unitName": "Name",
|
||
"org.parent": "Parent unit",
|
||
"org.goal": "Goal of the unit",
|
||
"org.reason": "Reason for the change (goes into the audit log)",
|
||
"org.reasonPlaceholder": "e.g. marketplaces get their own team",
|
||
"org.selectHint": "Select a unit or an agent on the left.",
|
||
"org.lead": "Lead",
|
||
"org.noLead": "— no lead (the lead above takes over) —",
|
||
"org.leadHint": "The lead must be a member of the unit.",
|
||
"org.position": "Position in the tree",
|
||
"org.move": "Move",
|
||
"org.moveUnitHint": "The members stay in the unit; what changes is what lies above it. Not possible while an affected agent is running.",
|
||
"org.ceiling": "Tool ceiling",
|
||
"org.ceilingHint": "What the unit may not have, a member cannot be granted. Lowering it removes tools from the members — after a confirmation.",
|
||
"org.ceilingLimit": "Limit the tools of this unit",
|
||
"org.ceilingInherited": "Limited from above to: {tools}",
|
||
"org.settings": "Unit-wide values",
|
||
"org.settingsHint": "Written into the agents after a preview. The unit keeps the value only as a default for new members — nothing overrides an agent at run time.",
|
||
"org.setting.DailyCostUsd": "Daily budget (USD)",
|
||
"org.setting.DailyTokens": "Daily budget (tokens)",
|
||
"org.setting.Model": "Model",
|
||
"org.setting.WhenExhausted": "When the budget is exhausted",
|
||
"org.modePerAgent": "each agent gets the value",
|
||
"org.modeDistribute": "value is a total, distributed",
|
||
"org.preview": "Preview",
|
||
"org.apply": "Write the selected values",
|
||
"org.agent": "Agent",
|
||
"org.current": "Current",
|
||
"org.proposed": "New",
|
||
"org.outlier": "outlier",
|
||
"org.outlierHint": "Outliers differ strongly from their colleagues — often a specialist with a deliberately different value. They are not selected by default.",
|
||
"org.rememberDefault": "Remember as default for new members",
|
||
"org.settingInvalid": "That value is not valid for this setting.",
|
||
"org.members": "Members",
|
||
"org.noMembers": "No members yet.",
|
||
"org.deleteUnit": "Delete unit",
|
||
"org.unit": "Unit",
|
||
"org.answersTo": "Answers to",
|
||
"org.human": "a human",
|
||
"org.since": "In this unit since {time}",
|
||
"org.tools": "Tools",
|
||
"org.moveAgent": "Move agent",
|
||
"org.moveAgentHint": "Its address book, its lead and possibly its tools change. The agent and both leads are told in their next run.",
|
||
"org.toolsLostTitle": "Tools would be removed",
|
||
"org.toolsLostIntro": "The new position has a tool ceiling. These agents would lose tools:",
|
||
"org.toolsLostConfirm": "Remove the tools and apply",
|
||
"org.runningRefusal": "Not while {agents} is running — an agent must not get different rights in the middle of a run.",
|
||
"org.workspaces": "Workspaces",
|
||
"org.workspacesHint": "Shared folders with a member list. Whoever is not on the list does not see the workspace.",
|
||
"org.noWorkspaces": "No workspaces yet — a unit gets one when it is created.",
|
||
"org.newWorkspace": "New workspace",
|
||
"org.newWorkspaceHint": "For something several units share on purpose, like an article master. The owning unit manages it; add readers afterwards.",
|
||
"org.workspaceId": "Id (folder name)",
|
||
"org.workspaceName": "Name",
|
||
"org.purpose": "Purpose",
|
||
"org.owner": "Owner",
|
||
"org.noOwner": "— instance (human) —",
|
||
"org.fileCount": "{n} files",
|
||
"org.unitOwnWorkspace": "the unit's own workspace",
|
||
"org.unitWorkspace": "Workspace",
|
||
"org.unitWorkspaceMissing": "This unit has no workspace of its own yet.",
|
||
"org.createUnitWorkspace": "Create its workspace",
|
||
"org.editWorkspace": "Edit workspace",
|
||
"org.protectedPaths": "Protected folders",
|
||
"org.protectedHint": "Comma separated. Files there can be added, but only members who manage the workspace change or delete them.",
|
||
"org.memberEntries": "Member list",
|
||
"org.membersHint": "The right stands at the workspace. A unit entry includes the units below it unless switched off. Deleting files needs Manage.",
|
||
"org.noWorkspaceMembers": "nobody",
|
||
"org.memberKind": "Kind",
|
||
"org.memberWho": "Who",
|
||
"org.memberUnit": "Unit",
|
||
"org.memberAgent": "Agent",
|
||
"org.accessLevel": "Level",
|
||
"org.access.Read": "read",
|
||
"org.access.Write": "write",
|
||
"org.access.Manage": "manage",
|
||
"org.includeSubUnits": "incl. sub-units",
|
||
"org.addMember": "Add member",
|
||
"org.removeMember": "Remove member",
|
||
"org.whoGetsIn": "Who gets in",
|
||
"org.nobodyHasAccess": "Nobody — only a human reaches it.",
|
||
"org.deleteWorkspace": "Delete workspace",
|
||
"org.deleteWorkspaceHint": "Only an empty workspace can be deleted. Nothing filed is deleted from here.",
|
||
"org.unitWorkspaceStays": "A unit's own workspace goes with its unit. If it still holds files then, it stays without owner.",
|
||
"team.title": "Team overview",
|
||
"team.subtitle": "Every unit is a card, connected as the organisation. A line takes the colour of the most urgent state below it, so a red line leads to the problem. Click a card or an agent for details.",
|
||
"team.noInstance": "No instance selected. Choose an active instance in the header.",
|
||
"team.empty": "No agents in this instance.",
|
||
"team.legendLink": "live link (fades after 30 s)",
|
||
"team.state.Idle": "idle",
|
||
"team.state.Working": "working",
|
||
"team.state.Stuck": "stuck",
|
||
"team.state.WaitingForApproval": "waiting for approval",
|
||
"team.state.Problem": "problem",
|
||
"team.state.BudgetExhausted": "budget exhausted",
|
||
"team.running": "Running now",
|
||
"team.since": "since {time}",
|
||
"team.task": "task {id}",
|
||
"team.calledBy": "called by {agent}",
|
||
"team.stuckHint": "Runs of this agent usually take about {minutes} min.",
|
||
"team.approvals": "{n} tool call(s) waiting for approval",
|
||
"team.lastRun": "Last run",
|
||
"team.openApprovals": "Open approvals",
|
||
"team.openChat": "Open chat",
|
||
"team.openRuns": "Show runs",
|
||
"team.unitAgentsOne": "1 agent",
|
||
"team.unitAgents": "{n} agents",
|
||
"team.legendLead": "lead of the unit",
|
||
"team.leads": "Leads",
|
||
"team.memberOf": "Member of",
|
||
"team.members": "Members",
|
||
"team.subUnits": "Sub-units",
|
||
"team.openOrganisation": "Edit organisation",
|
||
"team.rootSubtitle": "Instance · top level",
|
||
"team.structure": "Structure",
|
||
"team.searchPlaceholder": "Search agents, units, models…",
|
||
"team.filterLabel": "Filter by state",
|
||
"team.filter.all": "All",
|
||
"team.filter.problems": "Problems",
|
||
"team.filter.waiting": "Approvals",
|
||
"team.filter.working": "Working",
|
||
"team.filter.budget": "Budget",
|
||
"team.needsAttention": "{n} need attention",
|
||
"team.matches": "{n} matches",
|
||
"team.matchesOne": "1 match",
|
||
"team.noMatches": "No matches",
|
||
"team.moreMembers": "+{n} more",
|
||
"team.showFewer": "Show fewer",
|
||
"team.showAllMembers": "Show all members",
|
||
"team.zoomIn": "Zoom in",
|
||
"team.zoomOut": "Zoom out",
|
||
"team.fit": "Fit",
|
||
"team.liveLinks": "Live links",
|
||
"team.subtreeHint": "Counts include all units below.",
|
||
"team.legendLine": "line = most urgent state below",
|
||
"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.cases": "Cases",
|
||
"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}",
|
||
"agents.readsForeign": "reads outside content",
|
||
"agents.reportingLine": "Reporting line",
|
||
"agents.tierStandard": "Standard tier. May comment on its lead's tasks, but not change them. When it finishes a task its lead gave it, the lead is told.",
|
||
"agents.tierForeign": "Reads outside content ({sources}). Writes no free text to its lead: it reports through its own tasks (done, blocked or canceled), and the system tells the lead. What it writes to colleagues arrives marked as data.",
|
||
"agents.settingSource": "setting",
|
||
"agents.treatAsForeignReader": "Always treat as reading outside content",
|
||
"agents.treatAsForeignReaderHint": "Can only tighten. The tools decide the tier; this adds it for an agent whose input comes from outside some other way.",
|
||
"agents.foreignReaderSaved": "Reporting line of {name} saved.",
|
||
|
||
"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.",
|
||
"tasks.nextRun": "Next",
|
||
"tasks.lastRun": "Last",
|
||
"tasks.budgetMissed": "Budget exhausted: {n} run(s) refused",
|
||
"tasks.budgetMissedLast": "last at {time}",
|
||
"tasks.budgetCarriedOver": "carried over, due again from {time}",
|
||
"tasks.budgetCatchUp": "one catch-up run from {time}",
|
||
"tasks.board": "Board",
|
||
"tasks.boardAll": "All boards",
|
||
"tasks.boardTopLevel": "Top level",
|
||
"tasks.parent": "Serves task (parent)",
|
||
"tasks.serves": "serves {id}",
|
||
"tasks.origin": "Arose from",
|
||
"tasks.originTask": "while working on {id}",
|
||
"tasks.originRun": "open run",
|
||
"tasks.fillWork": "Fill work: runs when the budget has room, at the latest by {time}",
|
||
"tasks.fillAlerted": "no room found so far, a human was asked on {time}",
|
||
"tasks.estimate": "Author's estimate: {usd} per run (not measured)",
|
||
"tasks.fillBy": "Fill work, at the latest by",
|
||
"tasks.fillByHint": "Leave empty for regular work. Fill work runs on budget the day leaves unused; a date means the end of that day.",
|
||
"tasks.estimateUsd": "Estimate per run (USD)",
|
||
"tasks.specialBudget": "Special budget for this task and its parts: {spent} of {amount} used",
|
||
|
||
"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",
|
||
"filter.range.7d": "Last 7 days",
|
||
"filter.range.30d": "Last 30 days",
|
||
"filter.range.90d": "Last 90 days",
|
||
"filter.range.custom": "Custom…",
|
||
"filter.from": "From",
|
||
"filter.to": "To",
|
||
"filter.agent": "Agent",
|
||
"filter.model": "Model",
|
||
"filter.event": "Event",
|
||
"filter.status": "Status",
|
||
"filter.all": "All",
|
||
"filter.minCost": "Cost from ($)",
|
||
"filter.search": "Search",
|
||
"filter.search.placeholder": "Task, result, run id…",
|
||
"filter.apply": "Apply",
|
||
"filter.reset": "Reset",
|
||
|
||
"source.task": "Task",
|
||
"source.direct": "Direct run",
|
||
"source.approval": "Approval",
|
||
"source.webview": "Chat (window)",
|
||
"source.webui": "Chat (web)",
|
||
"source.telegram": "Telegram",
|
||
"source.agentcomm": "Delegation",
|
||
"source.job": "Job",
|
||
"source.unknown": "Unknown",
|
||
|
||
"runs.title": "Token usage › Runs",
|
||
"runs.unavailable": "No usage data",
|
||
"runs.totals": "Totals for this filter",
|
||
"runs.total.runs": "Runs",
|
||
"runs.total.prompt": "Prompt tokens",
|
||
"runs.total.completion": "Completion tokens",
|
||
"runs.total.cached": "From cache",
|
||
"runs.total.cost": "Cost",
|
||
"runs.total.notRun": "Refused (budget, shutdown)",
|
||
"runs.unknownCost": "{n} run(s) without a known price are counted with 0 $.",
|
||
"runs.empty.title": "No runs",
|
||
"runs.empty.text": "No run matches this filter.",
|
||
"runs.list": "Runs",
|
||
"runs.page": "{from}–{to} of {total}",
|
||
"runs.col.time": "Time",
|
||
"runs.col.agent": "Agent",
|
||
"runs.col.model": "Model",
|
||
"runs.col.event": "Event",
|
||
"runs.col.status": "Status",
|
||
"runs.col.steps": "Steps",
|
||
"runs.col.prompt": "Prompt",
|
||
"runs.col.completion": "Response",
|
||
"runs.col.cost": "Cost",
|
||
"runs.col.duration": "Duration",
|
||
|
||
"detail.back": "← Back",
|
||
"detail.title": "Run",
|
||
"detail.notFound": "Run not found",
|
||
"detail.runId": "Run id",
|
||
"detail.tokens": "Tokens",
|
||
"detail.tokensValue": "{prompt} prompt · {completion} response · {cached} from cache",
|
||
"detail.result": "Result",
|
||
"detail.receipt": "Receipt",
|
||
"detail.transcript": "Prompt and response",
|
||
"detail.transcript.disabled": "Prompt history is switched off for this agent (retention: never).",
|
||
"detail.transcript.unavailable": "This instance does not record a prompt history.",
|
||
"detail.transcript.missing": "No transcript for this run - it ran before recording started or is past its retention.",
|
||
"detail.transcript.truncated": "This run exceeded the size limit of the prompt history; later entries are shortened.",
|
||
"detail.transcript.size": "{n} entries, {chars} characters",
|
||
"detail.systemPrompt": "System prompt ({n} characters)",
|
||
"detail.entry.user": "Task / message",
|
||
"detail.entry.engine": "Follow-up by the engine",
|
||
"detail.entry.event": "Event",
|
||
"detail.entry.assistant": "Model step {n}",
|
||
"detail.entry.usage": "{prompt} in · {completion} out",
|
||
"detail.entry.tool_result": "Result: {tool}",
|
||
"detail.entry.call": "Calls {tool}",
|
||
"detail.entry.clipped": "shortened",
|
||
"detail.tool": "Tool",
|
||
"detail.arguments": "Arguments",
|
||
"detail.toolCalls": "Tool calls",
|
||
"detail.toolCalls.hint": "From the audit log - available even without a transcript.",
|
||
"detail.approvals": "Proposed for approval",
|
||
"detail.calledBy": "Delegated from",
|
||
"detail.calledRuns": "Delegated to",
|
||
|
||
"timeline.title": "Token usage › Timeline",
|
||
"timeline.chart": "Timeline",
|
||
"timeline.metric": "Measure",
|
||
"timeline.metric.cost": "Cost",
|
||
"timeline.metric.tokens": "Tokens",
|
||
"timeline.metric.runs": "Runs",
|
||
"timeline.groupBy": "By",
|
||
"timeline.groupBy.agent": "Agent",
|
||
"timeline.groupBy.model": "Model",
|
||
"timeline.groupBy.source": "Event",
|
||
"timeline.groupBy.budget": "Budget",
|
||
"timeline.budget.daily": "Daily budget",
|
||
"timeline.budget.special": "Special budget {id}",
|
||
"timeline.bucket": "Per",
|
||
"timeline.bucket.hour": "Hour",
|
||
"timeline.bucket.day": "Day",
|
||
"timeline.tooltipRuns": "{n} run(s)",
|
||
"timeline.event.budget_exceeded": "Budget exhausted",
|
||
"timeline.event.model_changed": "Model changed",
|
||
"timeline.hint": "Click a bar to see its runs.",
|
||
|
||
"history.title": "Prompt History",
|
||
"history.intro": "Prompt and response of every run, searchable over the whole conversation including tool calls and results.",
|
||
"history.unavailable": "Prompt history not available",
|
||
"history.empty.title": "Nothing recorded",
|
||
"history.empty.text": "No transcripts in this period. Recording starts with version 0.1.12 and follows the retention below.",
|
||
"history.empty.search": "No transcript contains this text.",
|
||
"history.list": "Transcripts ({n})",
|
||
"history.prompt": "Prompt",
|
||
"history.response": "Response",
|
||
"history.truncated": "Size limit reached ({chars} characters stored).",
|
||
|
||
"history.settings.title": "Retention",
|
||
"history.settings.intro": "How long prompts and responses are kept. The default applies to every agent without its own setting; \"never\" also deletes what was recorded before.",
|
||
"history.settings.default": "Default for all agents:",
|
||
"history.settings.agent": "Agent",
|
||
"history.settings.retention": "Retention",
|
||
"history.settings.effective": "Applies",
|
||
"history.settings.mode": "Retention",
|
||
"history.settings.mode.inherit": "Default",
|
||
"history.settings.mode.never": "Never record",
|
||
"history.settings.mode.days": "Days",
|
||
"history.settings.mode.forever": "Keep forever",
|
||
"history.settings.days": "Days",
|
||
"history.settings.daysUnit": "days",
|
||
"history.settings.effective.never": "not recorded",
|
||
"history.settings.effective.forever": "kept forever",
|
||
"history.settings.effective.days": "kept {n} days",
|
||
"history.settings.save": "Save retention",
|
||
"history.settings.saved": "Retention saved.",
|
||
"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",
|
||
|
||
"cases.title": "Cases",
|
||
"cases.refresh": "Refresh",
|
||
"cases.intro": "Escalations and conflicts the agents could not solve among themselves, and the decisions that closed them. A case nobody solves by its deadline comes here.",
|
||
"cases.tabOpen": "Open",
|
||
"cases.tabAll": "All",
|
||
"cases.tabDecisions": "Decisions",
|
||
"cases.none": "No open cases",
|
||
"cases.noneHint": "Nothing waits for a decision.",
|
||
"cases.noDecisions": "No decisions yet",
|
||
"cases.noDecisionsHint": "Every decided case leaves a decision here. It binds the area it was made for and is shown before anyone asks the same again.",
|
||
"cases.loadFailed": "Cases could not be loaded",
|
||
"cases.kindEscalation": "Escalation",
|
||
"cases.kindConflict": "Conflict",
|
||
"cases.status.open": "open",
|
||
"cases.status.decided": "decided",
|
||
"cases.status.handled": "handled",
|
||
"cases.overdue": "past deadline",
|
||
"cases.called": "human called",
|
||
"cases.id": "ID",
|
||
"cases.openedBy": "Opened by",
|
||
"cases.holder": "With",
|
||
"cases.human": "you (human)",
|
||
"cases.humanAuthor": "human",
|
||
"cases.deadline": "Deadline",
|
||
"cases.level": "Passed on",
|
||
"cases.parties": "Sides",
|
||
"cases.informed": "Told, not asked",
|
||
"cases.waitingFor": "Waiting for",
|
||
"cases.origin": "Arose from",
|
||
"cases.trail": "What each level said",
|
||
"cases.entry.opened": "opened",
|
||
"cases.entry.joined": "joined",
|
||
"cases.entry.forwarded": "passed on",
|
||
"cases.entry.position": "position",
|
||
"cases.entry.statement": "statement",
|
||
"cases.entry.statement-requested": "statement requested",
|
||
"cases.entry.called": "human called",
|
||
"cases.entry.decided": "decided",
|
||
"cases.entry.handled": "handled",
|
||
"cases.entry.note": "note",
|
||
"cases.decide": "Decide",
|
||
"cases.decideTitle": "Decide case {id}",
|
||
"cases.decideHint": "Your decision binds the whole instance and is shown to every agent that raises the same question. Everyone who raised it or is a side of it hears it.",
|
||
"cases.answer": "Decision",
|
||
"cases.answerPlaceholder": "What holds from now on",
|
||
"cases.reasoning": "Reasoning",
|
||
"cases.reasoningPlaceholder": "Why — without reasons a decision cannot be applied below",
|
||
"cases.decided": "Decision recorded.",
|
||
"cases.requestStatement": "Request statement",
|
||
"cases.statementTitle": "Request a statement for case {id}",
|
||
"cases.statementFrom": "From",
|
||
"cases.question": "Question",
|
||
"cases.questionPlaceholder": "What do you need to know?",
|
||
"cases.statementHint": "The agent gets a task with exactly this question and its own deadline. The case stays with you.",
|
||
"cases.statementRequested": "Statement requested.",
|
||
"cases.scope": "Binds",
|
||
"cases.scopeAll": "the whole instance",
|
||
"cases.decidedBy": "Decided by",
|
||
"cases.failed": "Failed: {error}",
|
||
"mcp.title": "External access (MCP)",
|
||
"mcp.hint": "A personal token lets your own client, such as Claude Code, work as this agent: with exactly its tools and rights. Every call is audited, and what needs approval is put to you as usual.",
|
||
"mcp.label": "Name",
|
||
"mcp.labelPlaceholder": "e.g. my laptop",
|
||
"mcp.days": "Valid for",
|
||
"mcp.daysOption": "{n} days",
|
||
"mcp.issue": "Issue token",
|
||
"mcp.none": "No tokens yet.",
|
||
"mcp.unnamed": "(unnamed)",
|
||
"mcp.activeUntil": "valid until {time}",
|
||
"mcp.revoked": "revoked {time}",
|
||
"mcp.expired": "expired {time}",
|
||
"mcp.revoke": "Revoke",
|
||
"mcp.revokedMessage": "Token revoked.",
|
||
"mcp.failed": "Failed: {error}",
|
||
"mcp.issuedTitle": "Token for {agent}",
|
||
"mcp.shownOnce": "This token is shown only now. The instance keeps just a fingerprint of it; if it is lost, issue a new one.",
|
||
"mcp.token": "Token",
|
||
"mcp.config": "Configuration for Claude Code",
|
||
"mcp.configHint": "Put this into the .mcp.json of the project you work in. It contains the token: keep the file out of version control.",
|
||
"mcp.copy": "Copy",
|
||
"mcp.copied": "Copied.",
|
||
"mcp.copyFailed": "Copying is not allowed here — select the text and copy it by hand.",
|
||
|
||
"runtime.title": "Runtime",
|
||
"runtime.hint": "Native runs use our engine with OpenRouter. A foreign runtime works in the sandbox on a copy of the workspace: what it changes comes back as a proposal and is never applied by itself. It reaches the taskboard and colleagues only through this instance's MCP server.",
|
||
"runtime.kind": "Runtime",
|
||
"runtime.kind.native": "Native (OpenRouter)",
|
||
"runtime.kind.claude-code": "Claude Code",
|
||
"runtime.kind.command": "Command",
|
||
"runtime.allowedTools": "Allowed tools",
|
||
"runtime.allowedToolsHint": "Comma-separated. Empty: Read, Edit, Write, Glob, Grep and the MCP server. Anything not listed is denied; web access is always denied.",
|
||
"runtime.maxTurns": "Turns per run",
|
||
"runtime.timeoutMinutes": "Time limit (minutes)",
|
||
"runtime.command": "Command",
|
||
"runtime.commandHint": "Absolute, on the sandbox's PATH, or relative to the workspace. The message arrives on stdin; what the command prints is the result.",
|
||
"runtime.arguments": "Arguments",
|
||
"runtime.argumentsHint": "One per line.",
|
||
"runtime.egress": "Reachable hosts",
|
||
"runtime.egressHint": "One per line, e.g. api.example.com or *.example.com:8443. Only HTTPS, only public addresses. Claude Code's API is always included.",
|
||
"runtime.saved": "Runtime of {name} saved.",
|
||
"runtime.failed": "Failed: {error}",
|
||
"runtime.sandboxReady": "The sandbox is ready.",
|
||
"runtime.sandboxMissing": "No sandbox on this machine — foreign runtimes do not run: {reason}",
|
||
"runtime.account": "Claude Code account",
|
||
"runtime.accountHint": "One account for the whole instance. The API key is the default; a subscription shares its quota with you, and whether it may run an agent system is up to its terms. Keys are stored encrypted and never shown again.",
|
||
"runtime.installedAt": "installed at {path}",
|
||
"runtime.notInstalled": "not installed",
|
||
"runtime.authApiKey": "API key",
|
||
"runtime.authSubscription": "Subscription",
|
||
"runtime.keyStored": "key stored",
|
||
"runtime.keyMissing": "no key yet",
|
||
"runtime.editAccount": "Edit",
|
||
"runtime.executable": "Program",
|
||
"runtime.auth": "Sign-in",
|
||
"runtime.apiKey": "API key",
|
||
"runtime.oauthToken": "Subscription token",
|
||
"runtime.oauthTokenHint": "Created with 'claude setup-token' on a machine where you are signed in.",
|
||
"runtime.keepStored": "stored — leave empty to keep",
|
||
"runtime.accountSaved": "Claude Code account saved.",
|
||
|
||
"team.conflicts.title": "Files agents keep overwriting each other in",
|
||
"team.conflicts.hint": "Writes were refused here because they would have lost another agent's change. If it keeps happening, change how the file is kept: one file per agent or day, appending instead of replacing, or a table.",
|
||
"team.conflicts.count": "{n} conflicts in 7 days, between {agents}; last {time}",
|
||
|
||
"nav.fileHistory": "File History",
|
||
"fileHistory.title": "File History",
|
||
"fileHistory.intro": "Every change in the workspaces: who created, replaced, appended to or deleted which file, in which run, and what was in it before. Changes made outside the tools are found and listed as external. A version can be put back — with a reason, as an entry of its own.",
|
||
"fileHistory.workspace": "Workspace",
|
||
"fileHistory.allWorkspaces": "All workspaces",
|
||
"fileHistory.agent": "Agent",
|
||
"fileHistory.path": "File path (exact)",
|
||
"fileHistory.run": "Run",
|
||
"fileHistory.apply": "Filter",
|
||
"fileHistory.reset": "Reset",
|
||
"fileHistory.more": "Older entries",
|
||
"fileHistory.unavailable": "File history unavailable",
|
||
"fileHistory.empty.title": "No changes",
|
||
"fileHistory.empty.text": "Nothing matches — or nothing has been changed since the history started.",
|
||
"fileHistory.external": "outside the tools",
|
||
"fileHistory.toRun": "run",
|
||
"fileHistory.onlyThisFile": "Show only this file",
|
||
"fileHistory.show": "Show",
|
||
"fileHistory.action.create": "created",
|
||
"fileHistory.action.replace": "replaced",
|
||
"fileHistory.action.append": "appended",
|
||
"fileHistory.action.copy": "copied",
|
||
"fileHistory.action.delete": "deleted",
|
||
"fileHistory.action.restore": "restored",
|
||
"fileHistory.action.external": "external",
|
||
"fileHistory.before": "Before",
|
||
"fileHistory.after": "After",
|
||
"fileHistory.text": "text",
|
||
"fileHistory.absent": "no file",
|
||
"fileHistory.notKept": "not kept",
|
||
"fileHistory.tooLarge": "too large to show ({bytes} bytes)",
|
||
"fileHistory.binary": "binary ({bytes} bytes)",
|
||
"fileHistory.restoreBefore": "Restore version before",
|
||
"fileHistory.restoreAfter": "Restore version after",
|
||
"fileHistory.restore": "Restore",
|
||
"fileHistory.restoreTitle": "Restore {path}",
|
||
"fileHistory.restoreBeforeHint": "The file gets the content it had before this change. What it holds now is kept in the history.",
|
||
"fileHistory.restoreAfterHint": "The file gets the content this change gave it. What it holds now is kept in the history.",
|
||
"fileHistory.reason": "Reason",
|
||
"fileHistory.reasonPlaceholder": "Why is this version put back?",
|
||
"fileHistory.reasonMissing": "A restore needs a reason.",
|
||
"fileHistory.restored": "{path} restored.",
|
||
"fileHistory.failed": "Failed: {error}"
|
||
}
|