Files
clawpanel/src/locales/en.json
晴天 31dcf64426 fix(ws): friendlier error when Gateway kernel does not support v3 handshake (#272)
- Detect 'device signature invalid' / 'protocol mismatch' on WebSocket close (code 1008)
- Detect DEVICE_AUTH_SIGNATURE_INVALID/PROTOCOL_VERSION_MISMATCH on connect failure after auto-pair
- Replace cryptic English reason with kernel.tooOldForProtocol message (zh-CN + en)
- Suggest upgrading Gateway kernel to recommended version (2026.5.x)
- Stop auto-reconnect loop in these unrecoverable cases
2026-05-14 01:16:33 +08:00

2260 lines
112 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"save": "Save",
"cancel": "Cancel",
"confirm": "Confirm",
"delete": "Delete",
"edit": "Edit",
"add": "Add",
"close": "Close",
"loading": "Loading...",
"retry": "Retry",
"copy": "Copy",
"copied": "Copied",
"search": "Search",
"refresh": "Refresh",
"back": "Back",
"submit": "Submit",
"reset": "Reset",
"enabled": "Enabled",
"disabled": "Disabled",
"unknown": "Unknown",
"none": "None",
"yes": "Yes",
"no": "No",
"online": "Online",
"offline": "Offline",
"running": "Running",
"stopped": "Stopped",
"error": "Error",
"success": "Success",
"warning": "Warning",
"info": "Info",
"loadFailed": "Load failed",
"saveFailed": "Save failed",
"saveSuccess": "Saved successfully",
"operationFailed": "Operation failed",
"operationSuccess": "Operation succeeded",
"noData": "No data",
"unit": "",
"survivalRate": "Uptime",
"settings": "Settings",
"update": "Update"
},
"sidebar": {
"collapse": "Collapse / Expand",
"closeMenu": "Close menu",
"themeLight": "Light Mode",
"themeDark": "Dark Mode",
"sectionMonitor": "Monitor",
"sectionConfig": "Config",
"sectionData": "Data",
"sectionExtension": "Extensions",
"dashboard": "Dashboard",
"assistant": "Assistant",
"chat": "Live Chat",
"services": "Services",
"logs": "Logs",
"models": "Models",
"agents": "Agents",
"gateway": "Gateway",
"channels": "Channels",
"communication": "Communication",
"security": "Security",
"memory": "Memory",
"cron": "Cron Jobs",
"usage": "Usage",
"skills": "Skills",
"settings": "Settings",
"chatDebug": "Diagnostics",
"about": "About",
"setup": "Setup"
},
"instance": {
"local": "Local",
"remote": "Remote",
"docker": "Docker",
"switchHint": "After switching, Models, Agents and other pages will manage the selected instance",
"addInstance": "Add Instance",
"addRemote": "Add Remote Instance",
"namePlaceholder": "Remote Server",
"endpointPlaceholder": "http://192.168.1.100:1420",
"nameLabel": "Name",
"endpointLabel": "Panel Address",
"gwPortLabel": "Gateway Port (optional)",
"nameRequired": "Please fill in name and endpoint",
"endpointExists": "This endpoint already exists",
"adding": "Adding...",
"switchedTo": "Switched to {name} — Models, Agents, etc. will manage this instance",
"current": "Active",
"remoteHint": "The remote server must be running ClawPanel (serve.js).",
"example": "Example"
},
"engine": {
"switchedTo": "Switched to {name} mode",
"hermesSetupDesc": "Install and configure Hermes Agent",
"hermesSetupIntro": "Hermes Agent is an AI assistant with tool-calling capabilities.<br>This engine is coming soon. Stay tuned!"
},
"dashboard": {
"title": "Dashboard",
"desc": "OpenClaw runtime status overview",
"gateway": "Gateway",
"portDetect": "Port detection",
"notStarted": "Not started",
"versionLabel": "Version",
"versionOfficial": "Official",
"versionChinese": "Chinese",
"versionUnknown": "Version info unavailable",
"versionAhead": "Current version is ahead of recommended stable {version}, may be unstable",
"versionStable": "Stable {version}",
"versionRecommend": "Recommended stable {version}",
"versionLatest": "Latest upstream {version}",
"agentFleet": "Agent Fleet",
"defaultAgent": "Default",
"modelPool": "Model Pool",
"basedOnProviders": "From {count} providers",
"baseServices": "Services",
"controlUI": "Control UI",
"controlUIDesc": "OpenClaw native panel",
"controlUIClick": "Click to open in browser",
"controlUINotRunning": "Gateway not running",
"restartGw": "Restart Gateway",
"checkUpdate": "Check Updates",
"createBackup": "Create Backup",
"recentLogs": "Recent Logs",
"cliPath": "CLI Path",
"cliSource": "Install Source",
"cliSourceStandalone": "Standalone",
"cliSourceNpmZh": "npm (Chinese)",
"cliSourceNpmOfficial": "npm (Official)",
"cliSourceNpmGlobal": "npm (Global)",
"cliSourceUnknown": "Unknown",
"multiInstall": "Multiple installations detected",
"multiInstallHint": "Choose which one to use in Settings",
"installCount": "{count} installations",
"retry": "Retry",
"servicesLoadFail": "Failed to load service status",
"versionLoadFail": "Failed to load version info",
"notSet": "Not set",
"port": "Port",
"startBtn": "Start",
"stopBtn": "Stop",
"restartBtn": "Restart",
"primaryModel": "Primary Model",
"maxConcurrent": "Max concurrent",
"mcpTools": "MCP Tools",
"mountedExtensions": "Mounted extensions",
"recentBackup": "Recent Backup",
"noBackup": "No backups",
"backupCount": "{count} backup files",
"workspaceCount": "{count} independent workspaces",
"runtimeVersion": "Runtime Version",
"remaining": "Remaining",
"activeSessions": "Active Sessions",
"defaultModel": "Default model",
"context": "Context",
"noLogs": "No logs",
"openControlUIFail": "Failed to open Control UI",
"starting": "Starting...",
"gwStartSent": "Gateway start command sent",
"startFail": "Start failed",
"stopping": "Stopping...",
"gwStopped": "Gateway stopped",
"stopFail": "Stop failed",
"restarting": "Restarting...",
"gwRestartSent": "Gateway restart command sent",
"restartFail": "Restart failed",
"gwRestarted": "Gateway restarted (PID: {pid})",
"restartTimeout": "Restart timed out, Gateway may still be starting",
"checking": "Checking...",
"versionAheadWarn": "Local version {current} is ahead of recommended stable {recommended}, may have compatibility risks",
"updateAvailable": "Recommended stable version available: {version}",
"alignedWithLatest": "Aligned with recommended stable, latest upstream is {version}",
"upToDate": "Aligned with recommended stable version",
"checkUpdateFail": "Update check failed",
"backingUp": "Backing up...",
"backupDone": "Backed up: {name}",
"backupFail": "Backup failed"
},
"services": {
"title": "Services",
"desc": "Manage OpenClaw services, check updates, config backups",
"start": "Start",
"stop": "Stop",
"restart": "Restart",
"install": "Install",
"uninstall": "Uninstall",
"installing": "Installing...",
"uninstalling": "Uninstalling...",
"refreshStatus": "Refresh",
"cliNotInstalled": "OpenClaw CLI not installed",
"installCliHint": "Please install OpenClaw CLI first:",
"gwNotInstalled": "Gateway service not installed",
"gwInstalled": "Gateway service installed",
"gwUninstalled": "Gateway service uninstalled",
"installFailed": "Install failed",
"uninstallFailed": "Uninstall failed",
"uninstallConfirm": "Uninstall Gateway service?\nThis will stop the service and remove the LaunchAgent.",
"actionProgress": "{action} in progress...",
"actionProgressSec": "{action} in progress... {sec}s",
"actionTimeout": "{action} timed out, Gateway may still be starting",
"actionCmdFailed": "{action} command failed: {error}",
"actionDone": "{label} {action} complete",
"cancelWait": "Cancel wait",
"cancelled": "Cancelled waiting. Refresh later to check status.",
"currentVersion": "Current Version",
"dockerDeploy": "Docker Deploy",
"chineseEdition": "Chinese Edition",
"officialEdition": "Official Edition",
"switchToChinese": "Switch to Chinese Edition",
"switchToOfficial": "Switch to Official Edition",
"aheadOfRecommended": "Current version is ahead of recommended stable: {version}",
"alignedRecommended": "Aligned with recommended stable: {version}",
"recommendedStable": "Recommended stable: {version}",
"noRecommended": "Recommended stable version unavailable",
"latestUpstream": "Latest upstream: {version}",
"pullNewImage": "Pull new image to update",
"currentImageVer": "Already on current image version",
"rollbackToRecommended": "Rollback to recommended",
"switchToRecommended": "Switch to recommended",
"versionLoadFailed": "Failed to load version info",
"serviceLoadFailed": "Failed to load service list",
"policyAhead": "Local version {ver} is ahead of panel recommended stable {recommended}. Continued use may have compatibility or stability risks. Consider rolling back.",
"policyDefault": "Only the panel-verified recommended stable version is suggested by default. To try other versions or latest features, manually switch in the About page and verify compatibility yourself. To request newer version support, file an issue.",
"configEditor": "Config Editor",
"configEditorHint": "Edit the openclaw.json config file directly. A backup is auto-created before saving. Changes may require a Gateway restart.",
"saveAndRestart": "Save & Restart",
"saveOnly": "Save Only",
"reloadConfig": "Reload",
"configLoaded": "Loaded",
"configUnsaved": "Unsaved changes",
"configNoChange": "No changes",
"configJsonError": "JSON syntax error",
"configSaveJsonError": "Invalid JSON, cannot save",
"autoBackingUp": "Auto-backing up...",
"autoBackupFailed": "Auto-backup failed",
"continueWithoutBackup": "Continue saving anyway?",
"saving": "Saving...",
"configSaved": "Config saved",
"configSavedRestarting": "Config saved, restarting Gateway...",
"gwRestarted": "Gateway restarted",
"configSavedGwFailed": "Config saved, but Gateway restart failed",
"configBackup": "Config Backups",
"configBackupHint": "Backup scope: openclaw.json main config (models, providers, Gateway settings). Agent data and memory files are not included.",
"createBackup": "Create Backup",
"backupCreated": "Backup created: {name}",
"noBackup": "No backups yet",
"restore": "Restore",
"restoreConfirm": "Restore backup \"{name}\"?\nCurrent config will be auto-backed up first.",
"restored": "Config restored",
"deleteConfirm": "Delete backup \"{name}\"? This cannot be undone.",
"backupDeleted": "Backup deleted",
"backupLoadFailed": "Failed to load backup list",
"upgradeTitle": "Upgrade / Switch Version",
"upgradeConfirm": "Switch OpenClaw to the panel-recommended stable {source}{version}?\nGateway will be briefly interrupted.\nTo try the latest version, manually switch in the About page.",
"switchSourceConfirm": "Switch to {target}{version}?\nThis installs the corresponding npm package. Config data is not affected.\nTo try the latest, manually switch in the About page.",
"taskStarted": "Background task started, please wait...",
"webModeNoLog": "Web mode: Upgrade logs unavailable, please wait...",
"taskDone": "Operation complete",
"upgradeDone": "Upgrade complete",
"upgradeScene": "Upgrade OpenClaw",
"invalidConfigTitle": "OpenClaw config issue detected",
"invalidConfigPrompt": "Action \"{action}\" failed:\n\n{error}\n\nThis usually means the config schema is outdated. Run doctor to fix automatically?",
"runDoctorFix": "Run doctor --fix",
"runningDoctorFix": "Running doctor --fix...",
"doctorFixSuccess": "Config fixed. Please retry",
"doctorFixFailed": "doctor fix failed"
},
"settings": {
"title": "Settings",
"desc": "Manage ClawPanel network, proxy and download source settings",
"networkProxy": "Network Proxy",
"modelProxy": "Model Request Proxy",
"npmRegistry": "npm Registry",
"openclawDir": "OpenClaw Install Path",
"openclawCli": "OpenClaw CLI Binding",
"cliAutoDetect": "Auto-detect (Recommended)",
"cliBindHint": "Select which OpenClaw CLI the panel should use, useful when multiple versions coexist",
"cliCurrent": "Currently used",
"cliBound": "Bound",
"cliActive": "Active",
"cliVersion": "Version",
"cliSwitchConfirm": "Switch to this CLI? The panel will use this installation for all operations.",
"language": "Language",
"languageHint": "Switch the interface language. Some content may remain in the original language.",
"testProxy": "Test Connection",
"clearProxy": "Disable Proxy",
"proxyHint": "Once set, npm install/upgrade, version checks, GitHub/Gitee update checks, ClawHub Skills downloads will use this proxy. Localhost and LAN addresses are auto-bypassed. Takes effect immediately; if Gateway is running, consider restarting the service.",
"modelProxyToggle": "Route model test and model list requests through proxy",
"modelProxyHint": "Off by default. Some model API endpoints are already domestic or LAN addresses — proxying them may cause connection failures. Only enable if your model provider requires a proxy.",
"modelProxyNoProxy": "Please set up a network proxy above before enabling this option.",
"registryTaobao": "Taobao Mirror (Recommended for China)",
"registryNpm": "npm Official",
"registryHuawei": "Huawei Cloud Mirror",
"registryCustom": "Custom",
"registryHint": "npm registry used for upgrades and version checks. Taobao mirror recommended for users in China.",
"registryEmpty": "Please enter a registry URL",
"registrySaved": "npm registry saved",
"configExists": "Config file exists",
"configMissing": "Config file not found",
"currentPath": "Current path",
"customBadge": "Custom",
"dirPlaceholder": "Leave empty for default path ~/.openclaw",
"resetDefault": "Reset Default",
"dirHint": "Custom OpenClaw config directory path. Restart required after changes. Target directory must exist and contain openclaw.json.",
"customPathSaved": "Custom path saved",
"defaultRestored": "Default path restored",
"restartConfirm": "Restart required for changes to take effect. Restart now?",
"restarting": "Restarting...",
"restartFailed": "Auto-restart failed, please close and reopen manually",
"effectNextLaunch": "will take effect on next launch",
"proxyUrlInvalid": "Proxy URL must start with http:// or https://",
"testingProxy": "Testing proxy connectivity...",
"proxyOk": "Proxy connected (HTTP {status}, {ms}ms) → {target}",
"proxyWarn": "Proxy reachable but returned abnormal response (HTTP {status}, {ms}ms)",
"proxyUrlEmpty": "Please enter a proxy URL, or click \"Disable Proxy\"",
"proxySaved": "Network proxy saved; if Gateway is running, consider restarting the service",
"proxyCleared": "Network proxy disabled",
"modelProxyOn": "Model requests will use proxy",
"modelProxyOff": "Model requests proxy disabled"
},
"models": {
"title": "Models",
"desc": "Add AI model providers, configure available models",
"addProvider": "+ Add Provider",
"undo": "↩ Undo",
"undoN": "↩ Undo ({n})",
"undone": "Undone",
"providerHint": "Providers are sources of models (e.g. OpenAI, DeepSeek). Each provider can have multiple models. The \"primary\" model is used first; others serve as fallbacks. Changes are auto-saved.",
"qtcoolName": "QingChen Cloud",
"qtcoolRecommend": "Recommended",
"qtcoolDesc": "Daily check-in for free model credits, invite friends for bonus. Paid plans as low as 20-30% of official price. Refund anytime.",
"qtcoolMore": "Learn more →",
"qtcoolCheckin": "Daily check-in for credits",
"qtcoolKeyPlaceholder": "Paste API Key (get from dashboard after check-in)",
"qtcoolFetchModels": "Fetch Model List",
"qtcoolFetching": "Fetching...",
"qtcoolNoKey": "No key? Go to",
"qtcoolCheckinPage": "check-in page",
"qtcoolCheckinHint": "for free daily credits, copy your Key from",
"qtcoolDashboard": "dashboard",
"qtcoolCopyKey": "Copy your Key",
"qtcoolSelectTitle": "Select models to add",
"qtcoolSelectHint": "Fetched {count} available models from QingChen Cloud. Select and add.",
"qtcoolKeyLabel": "API Key",
"qtcoolKeyCheckinLink": "Daily check-in for free credits →",
"qtcoolKeyPlaceholder2": "Paste your API Key",
"qtcoolNoKeyWarn": "Please enter an API Key (get free credits via daily check-in)",
"qtcoolAddSelected": "Add Selected Models",
"qtcoolNoneSelected": "No models selected",
"qtcoolAllExist": "All selected models already exist",
"qtcoolAdded": "Added {count} models",
"qtcoolProviderAdded": "Added QingChen Cloud ({count} models)",
"already": "Exists",
"alreadyAdded": "Added",
"searchPlaceholder": "Search models (by ID or name)",
"currentConfig": "Current Configuration",
"primaryModel": "Primary",
"primaryModelLabel": "Primary: ",
"notConfigured": "Not configured",
"fallbackModels": "Fallbacks: ",
"fallbackNone": "None",
"fallbackHint": "When the primary model is unavailable, the system auto-switches to fallbacks",
"primaryAutoSwitch": "Primary model auto-switched to {model}",
"noProvider": "No providers. Click \"+ Add Provider\" to get started.",
"noModel": "No models. Click \"+ Model\" to add.",
"nModels": "{count} models",
"hiddenModels": "{count} non-matching models hidden",
"editProvider": "Edit",
"addModel": "+ Model",
"fetchList": "Fetch List",
"deleteProvider": "Delete",
"batchTest": "Batch Test",
"selectAll": "Select All",
"selectNone": "Deselect All",
"batchDelete": "Batch Delete",
"sort": "Sort:",
"sortDefault": "Default order (drag to reorder)",
"sortNameAsc": "Name A-Z (persist)",
"sortNameDesc": "Name Z-A (persist)",
"sortLatencyAsc": "Latency low→high (persist)",
"sortLatencyDesc": "Latency high→low (persist)",
"sortContextAsc": "Context small→large (persist)",
"sortContextDesc": "Context large→small (persist)",
"applySortBtn": "Save current sort",
"sortSaved": "Sort order saved",
"reasoning": "Reasoning",
"unavailable": "Unavailable",
"testBtn": "Test",
"setPrimary": "Set Primary",
"setPrimaryDone": "Set as primary model",
"editModel": "Edit",
"deleteModel": "Delete",
"context": "context",
"justTested": "Just tested",
"minAgoTest": "{n} min ago",
"hourAgoTest": "{n} hr ago",
"dayAgoTest": "{n} day ago",
"confirmDeleteProvider": "Delete \"{name}\" and all its models?",
"providerDeleted": "Deleted {name}",
"confirmDeleteModel": "Delete model \"{name}\"?",
"modelDeleted": "Deleted {name}",
"confirmBatchDelete": "Delete {count} selected models?\n{ids}",
"batchDeleted": "Deleted {count} models",
"batchSelectHint": "Please select models to delete first",
"addProviderTitle": "Add Provider",
"quickSelect": "Quick Select",
"quickSelectHint": "Choose a preset to auto-fill, or fill manually below",
"providerName": "Provider Name",
"providerNamePlaceholder": "e.g. openai, newapi",
"providerNameHint": "Custom identifier to distinguish different sources",
"baseUrl": "Base URL",
"baseUrlPlaceholder": "https://api.openai.com/v1",
"baseUrlHint": "API endpoint URL, usually ends with /v1; Ollama: http://127.0.0.1:11434",
"apiKey": "API Key",
"apiKeyPlaceholder": "sk-...",
"apiKeyHint": "Required key for the service. Leave empty if not needed.",
"apiType": "API Type",
"apiTypeHint": "Most proxies and Ollama use \"OpenAI Compatible\"",
"providerNameRequired": "Provider name is required",
"providerAdded": "Provider added: {name}",
"editProviderTitle": "Edit Provider: {name}",
"apiKeyEditHint": "Changes are auto-saved",
"providerUpdated": "Provider updated",
"addModelTitle": "Add Model to {provider}",
"quickAdd": "Quick Add",
"quickAddHint": "Click to add a common model, or fill in manually below",
"manualAdd": "Manual Add",
"modelId": "Model ID",
"modelIdPlaceholder": "e.g. gpt-4o",
"modelIdHint": "Must match the model name supported by the provider",
"modelIdRequired": "Model ID is required",
"displayName": "Display Name (optional)",
"displayNamePlaceholder": "e.g. GPT-4o",
"displayNameHint": "A friendly name for identification",
"contextLength": "Context Length (optional)",
"contextLengthPlaceholder": "e.g. 128000",
"contextLengthHint": "Maximum token count supported by the model",
"isReasoning": "This is a reasoning model (e.g. o3, R1, QwQ)",
"reasoningHint": "Reasoning models use special invocation methods",
"modelAdded": "Model added: {name}",
"editModelTitle": "Edit Model: {name}",
"displayNameLabel": "Display Name",
"contextLengthLabel": "Context Length",
"isReasoningLabel": "Reasoning model",
"modelUpdated": "Model updated",
"stopBatchTest": "Stop Test",
"stoppingBatchTest": "Stopping batch test...",
"noTestModels": "No models to test",
"batchTestDone": "Batch test done: {ok} passed, {fail} failed",
"batchTestAborted": "Batch test aborted: {ok} passed, {fail} failed, {skip} skipped",
"testing": "Testing...",
"testOk": "{model} OK ({time}s): \"{reply}\"",
"testFail": "{model} unavailable ({time}s): {error}",
"remoteListTitle": "Remote Models — {provider} ({count})",
"remoteSearch": "Search models...",
"remoteSelected": "{count} selected",
"addSelected": "Add Selected",
"selectAtLeast": "Please select at least one model",
"fetchFailed": "Failed to fetch model list: {error}",
"configNotReady": "Config not loaded yet, please wait",
"fetchRemoteFailed": "Cannot fetch model list. Check network or try later.",
"configLoadFailed": "Failed to load config",
"autoFixUrl": "Auto-fixed model API URLs (e.g. Ollama /v1)",
"saveFailed": "Save failed",
"autoSaveFailed": "Auto-save failed",
"configSavedRestarting": "Config saved, restarting Gateway...",
"configEffective": "Config applied, Gateway restarted",
"retryRestart": "Retry",
"restarting": "Restarting Gateway...",
"restartOk": "Gateway restarted",
"restartFailed": "Restart failed",
"configSavedGwFailed": "Config saved, but Gateway restart failed",
"visitSite": "Visit {name} website",
"configure": "Configure",
"configSavedGwNotRunning": "Config saved. Gateway is not running — settings will take effect once it starts."
},
"agents": {
"title": "Agents",
"desc": "Create and manage OpenClaw Agents, configure identity, model and workspace",
"addAgent": "+ New Agent",
"noAgents": "No agents",
"loadFailed": "Load failed",
"loadListFailed": "Failed to load agent list",
"noDesc": "No description",
"default": "Default",
"backup": "Backup",
"detail": "Details",
"edit": "Edit",
"delete": "Delete",
"labelName": "Name:",
"labelModel": "Model:",
"labelWorkspace": "Workspace:",
"labelBindings": "Bindings:",
"notSet": "Not set",
"noBinding": "No channel bound",
"addModelsFirst": "Please add models in the Models page first",
"addTitle": "New Agent",
"agentId": "Agent ID",
"agentIdPlaceholder": "e.g. translator (lowercase, digits, underscore, hyphen)",
"agentName": "Name",
"agentNamePlaceholder": "e.g. Translation Assistant",
"agentEmoji": "Emoji",
"agentEmojiPlaceholder": "e.g. 🌐 (optional)",
"agentModel": "Model",
"agentWorkspace": "Workspace Path",
"agentWorkspacePlaceholder": "Leave empty to auto-create (optional, absolute path)",
"idRequired": "Please enter an Agent ID",
"idInvalid": "Agent ID can only contain lowercase letters, digits, underscores and hyphens",
"created": "Agent created",
"createdNameFailed": "Agent created, but name setting failed. You can edit it later.",
"createFailed": "Creation failed",
"editTitle": "Edit Agent — {id}",
"workspaceReadonly": "Set at creation, cannot be changed",
"updated": "Updated",
"updateFailed": "Update failed",
"confirmDelete": "Delete Agent \"{id}\"?\n\nThis will delete all data and conversations for this agent.",
"deleted": "Deleted",
"deleteFailed": "Delete failed",
"backingUp": "Backing up Agent \"{id}\"...",
"backupDone": "Backup done: {file}",
"backupFailed": "Backup failed",
"detailHint": "Click a card or the Details button to open the new Agent detail page.",
"labelRuntime": "Runtime:"
},
"agentDetail": {
"back": "← Back to Agents",
"tabOverview": "Overview",
"tabFiles": "Files",
"tabChannels": "Channels",
"tabTools": "Tools",
"tabSkills": "Skills",
"defaultAgent": "Default Agent",
"basicInfo": "Basic Info",
"agentId": "Agent ID",
"name": "Name",
"emoji": "Emoji",
"workspace": "Workspace",
"notSet": "Not set",
"modelConfig": "Model Config",
"primaryModel": "Primary Model",
"fallbackModels": "Fallback Models",
"addFallback": "+ Add Fallback",
"noFallback": "No fallback models configured.",
"removeFallback": "Remove",
"thinkingLevel": "Thinking Level",
"thinkingOff": "Off",
"thinkingMinimal": "Minimal",
"thinkingLow": "Low",
"thinkingMedium": "Medium",
"thinkingHigh": "High",
"thinkingXhigh": "Very High",
"thinkingAdaptive": "Adaptive",
"saveOverview": "Save Config",
"saving": "Saving...",
"saveSuccess": "Config saved",
"saveFailed": "Save failed",
"filesTitle": "Bootstrap Files",
"filesDesc": "Core files in the Agent directory that define behavior, identity and memory.",
"fileAgents": "Agent Rules",
"fileAgentsDesc": "Session rules, constraints and operating instructions.",
"fileSoul": "Soul / Persona",
"fileSoulDesc": "Persona, background and behavioral guidelines.",
"fileTools": "Tool Allowlist",
"fileToolsDesc": "Allowed tools for this Agent.",
"fileIdentity": "Identity",
"fileIdentityDesc": "Name, emoji and avatar-related identity settings.",
"fileUser": "User Context",
"fileUserDesc": "User background information supplied to the Agent.",
"fileHeartbeat": "Heartbeat",
"fileHeartbeatDesc": "Periodic inspection or background task instructions.",
"fileBootstrap": "Bootstrap",
"fileBootstrapDesc": "Initialization guidance for first startup.",
"fileMemory": "Memory",
"fileMemoryDesc": "Persistent Agent memory data.",
"fileExists": "Created",
"fileMissing": "Missing",
"fileEdit": "Edit",
"fileView": "View",
"fileCreate": "Create",
"fileSize": "Size",
"fileUpdated": "Updated",
"editFileTitle": "Edit {name}",
"fileSaved": "File saved",
"fileSaveFailed": "Failed to save file",
"fileCreated": "File created",
"channelsTitle": "Channel Bindings",
"channelsDesc": "Manage message channels bound to this Agent.",
"addBinding": "+ Add Binding",
"noBindings": "This Agent has no bindings yet.",
"removeBinding": "Unbind",
"bindingChannel": "Channel",
"bindingAccount": "Account",
"bindingType": "Type",
"bindingRemoved": "Binding removed",
"bindingAdded": "Binding added",
"bindingFailed": "Binding action failed",
"selectChannel": "Select Channel",
"accountOptional": "Account ID (optional)",
"loadFailed": "Load failed",
"toolsTitle": "Tool Permissions",
"toolsDesc": "Configure the base tool profile and extra allow / deny rules for this Agent.",
"toolProfile": "Tool Profile",
"toolAllow": "Explicit Allow",
"toolAllowHint": "Comma or newline separated. Acts as the base allowlist when set.",
"toolAlsoAllow": "Also Allow",
"toolAlsoAllowHint": "Extra tools allowed on top of the selected profile.",
"toolDeny": "Explicit Deny",
"toolDenyHint": "Higher priority than allow/profile.",
"saveTools": "Save Tool Config",
"toolsSaved": "Tool config saved",
"skillsTitle": "Skill Allowlist",
"skillsDesc": "Choose which Skills this Agent may use. Empty means no skill allowlist is enforced.",
"saveSkills": "Save Skill Config",
"skillsSaved": "Skill config saved",
"noSkills": "No Skills available",
"skillDisabled": "Disabled",
"skillUnavailable": "Unavailable"
},
"gateway": {
"title": "Gateway Config",
"desc": "Gateway is the unified entry for AI models. All apps call model services through it.",
"saveApply": "Save & Apply",
"saveHint": "Click save after changes, Gateway will auto-reload",
"saving": "Saving...",
"loadFailed": "Failed to load config",
"portTitle": "Service Port",
"portLabel": "Port",
"portHint": "Apps connect to Gateway via this port. Default 18789, usually no need to change.",
"accessTitle": "Access Control",
"localOnly": "Local Only",
"localOnlyDesc": "Only apps on this machine can access, most secure",
"lanShare": "LAN Sharing",
"lanShareDesc": "Phones, tablets and other devices on the same network can also use it",
"authTitle": "Authentication",
"authMode": "Auth Mode",
"authToken": "Token",
"authTokenDesc": "Standard auth, suitable for local and LAN use",
"authPassword": "Password",
"authPasswordDesc": "Required for Tailscale Funnel or other public exposure scenarios",
"tokenLabel": "Access Token",
"tokenPlaceholder": "Leave empty for no auth",
"tokenHintRef": "Current token is configured via env variable/reference. Clear to enter plaintext.",
"tokenHintNormal": "Apps must include this token to authenticate. Strongly recommended if LAN sharing is enabled.",
"passwordLabel": "Password",
"passwordPlaceholder": "Set Gateway access password",
"passwordHint": "Password auth is required when exposing Gateway via Tailscale Funnel",
"show": "Show",
"hide": "Hide",
"toolsTitle": "Agent Tool Permissions",
"toolsPermission": "Tool Access",
"toolsFull": "Full Access",
"toolsFullDesc": "Agent can use all tools (recommended)",
"toolsLimited": "Limited Mode",
"toolsLimitedDesc": "Only safe tools allowed, file/command ops disabled",
"toolsNone": "Disabled",
"toolsNoneDesc": "Agent can only chat, cannot use any tools",
"sessionsLabel": "Session Visibility",
"sessionsAll": "All sessions visible",
"sessionsOwn": "Own sessions only",
"sessionsNone": "Not visible",
"sessionsHint": "Controls whether Agent can see context from other sessions",
"advancedToggle": "Advanced Options",
"tailscaleTitle": "Tailscale Network",
"tailscaleLabel": "Tailscale Address",
"tailscalePlaceholder": "e.g. 100.x.x.x:18789",
"tailscaleHint": "If using Tailscale VPN, fill in the address so remote devices can access Gateway through it. Leave empty if not used.",
"configSaved": "Config saved, reloading Gateway...",
"reloaded": "Gateway reloaded, new config is active",
"savedButReloadFailed": "Config saved, but reload failed",
"saveFailed": "Save failed"
},
"security": {
"title": "Security Settings",
"loadFailed": "Load failed",
"passwordStatus": "Password Status",
"stateDefault": "Using default password (change required)",
"stateCustom": "Custom password set",
"stateIgnoreRisk": "Ignore risk mode (no password)",
"stateNone": "No password set",
"tauriHasPassword": "Password required each time the app is opened",
"webHasPassword": "Password required for remote access to the panel",
"tauriNoPassword": "Anyone who opens the app can use it",
"webNoPassword": "Anyone can access the panel directly",
"changePassword": "Change Password",
"setPassword": "Set Password",
"currentPassword": "Current Password",
"currentPasswordPlaceholder": "Enter current password",
"defaultFilled": "Default password auto-filled. Just set a new password.",
"newPassword": "New Password",
"newPasswordPlaceholder": "At least 6 chars, not all digits",
"confirmPassword": "Confirm New Password",
"confirmPasswordPlaceholder": "Enter new password again",
"confirmChange": "Confirm Change",
"submitting": "Submitting...",
"passwordMismatch": "Passwords do not match",
"passwordChanged": "Password changed successfully",
"passwordUpdated": "Password updated",
"wrongPassword": "Current password is incorrect",
"pwMin6": "Password must be at least 6 characters",
"pwMax64": "Password cannot exceed 64 characters",
"pwNoDigitOnly": "Password cannot be all digits",
"pwTooCommon": "Password is too common, please choose a more secure one",
"pwSameAsOld": "New password cannot be the same as the old one",
"strengthTooShort": "Too short",
"strengthDigitOnly": "All digits, too weak",
"strengthFair": "Fair",
"strengthGood": "Good",
"strengthStrong": "Strong",
"ignoreRiskTitle": "Ignore Risk Mode",
"ignoreRiskLabel": "Disable Password Protection",
"ignoreRiskDesc": "When enabled, anyone can access the panel without a password.",
"ignoreRiskWarn": "Only recommended in trusted network environments.",
"ignoreRiskConfirmTitle": "Disable password protection?",
"ignoreRiskConfirmDesc": "Once disabled, <strong>anyone who can reach this server's IP and port</strong> can directly access the admin panel and modify your AI config.",
"ignoreRiskConfirmBtn": "I understand the risk, confirm",
"ignoreRiskEnabled": "Ignore risk mode enabled, password protection disabled",
"ignoreRiskDisabled": "Ignore risk mode disabled, please set a new password",
"operationFailed": "Operation failed"
},
"communication": {
"title": "Communication & Automation",
"desc": "Manage how AI behaves in messaging channels: reply style, commands, external notifications, etc.",
"tabMessages": "Messages",
"tabBroadcast": "Broadcast",
"tabCommands": "Commands",
"tabHooks": "Webhook",
"tabApprovals": "Approvals",
"save": "Save",
"saving": "Saving...",
"loadFailed": "Failed to load config",
"configSaved": "Config saved, reloading Gateway...",
"gwReloaded": "Gateway reloaded",
"saveFailed": "Save failed",
"replySettings": "Reply Settings",
"replyPrefix": "Reply Prefix",
"replyPrefixPlaceholder": "e.g. [{model}] or auto",
"replyPrefixHint": "Auto-prepended prefix for each AI reply. Supports {model}, {provider}, {thinkingLevel} variables. Set to auto for Agent name.",
"ackReaction": "Ack Reaction Emoji",
"ackReactionPlaceholder": "e.g. 👀 or leave empty to disable",
"ackReactionHint": "Emoji reaction auto-added when a message is received (acknowledgement)",
"ackScope": "Ack Reaction Scope",
"ackScopeGroupMentions": "Group @mentions",
"ackScopeGroupAll": "All group messages",
"ackScopeDirect": "Direct messages only",
"ackScopeAll": "All messages",
"ackScopeOff": "Off",
"removeAckAfterReply": "Remove ack after reply",
"removeAckAfterReplyHint": "Auto-remove the ack emoji after the reply is sent",
"suppressToolErrors": "Hide tool errors",
"suppressToolErrorsHint": "Don't show ⚠️ tool execution errors to users",
"statusReactions": "Status Reaction Emoji",
"enableStatusReactions": "Enable status reactions",
"enableStatusReactionsHint": "Show AI status via emoji in channels (thinking, executing tools, done, etc.)",
"messageQueue": "Message Queue",
"debounceMs": "Debounce Delay (ms)",
"debounceMsHint": "Wait time to merge rapid consecutive messages (ms), prevents AI from replying to each one",
"queueCap": "Queue Capacity",
"queueCapHint": "Max length of pending message queue",
"groupChat": "Group Chat",
"groupHistoryLimit": "Group History Limit",
"groupHistoryLimitHint": "Number of history messages to include as context in group chats",
"broadcastStrategy": "Broadcast Strategy",
"broadcastMode": "Broadcast Mode",
"broadcastParallel": "Parallel — send to all targets simultaneously",
"broadcastSequential": "Sequential — send one by one, strictly ordered",
"broadcastHint": "Strategy for broadcasting to multiple Agents. Parallel is faster, sequential is more controlled.",
"slashCommands": "Slash Commands",
"cmdText": "Text Command Parsing",
"cmdTextHint": "Allow executing commands via / prefix in chat",
"cmdBash": "Bash Commands",
"cmdBashHint": "Allow ! prefix or /bash to execute shell commands in chat (dangerous)",
"cmdConfig": "/config Command",
"cmdConfigHint": "Allow viewing/modifying config in chat",
"cmdDebug": "/debug Command",
"cmdDebugHint": "Allow viewing debug info in chat",
"cmdRestart": "Restart Command",
"cmdRestartHint": "Allow restarting Gateway via command",
"nativeCommands": "Native Command Registration",
"nativeLabel": "Native Commands",
"nativeAuto": "Auto",
"nativeEnabled": "Enabled",
"nativeDisabled": "Disabled",
"nativeHint": "Auto-register native command menus in supported channels (Telegram, Discord)",
"webhookSettings": "Webhook Settings",
"webhookEnabled": "Enable Webhook",
"webhookEnabledHint": "Allow external services to trigger AI execution via HTTP",
"webhookPath": "Webhook Path",
"webhookPathHint": "Webhook receive path exposed on Gateway",
"webhookToken": "Auth Token",
"webhookTokenHint": "External requests must include this token in header to trigger Webhook",
"webhookSessionKey": "Default Session Key",
"webhookSessionKeyHint": "Session identifier for Webhook-triggered Agent. Leave empty for auto-generated.",
"webhookMaxBody": "Max Body Size (bytes)",
"approvalsTitle": "Execution Approval Forwarding",
"approvalsDesc": "Forward approval requests to messaging channels when AI requests command execution, for mobile approval",
"approvalsEnabled": "Enable Approval Forwarding",
"approvalsEnabledHint": "Forward execution approval requests to configured channels",
"approvalsMode": "Forward Mode",
"approvalsModeSession": "Session — forward to the originating session",
"approvalsModeTargets": "Targets — forward to configured target channels",
"approvalsModeBoth": "Both",
"approvalsForwardExec": "Forward Exec Requests",
"approvalsForwardExecHint": "Forward exec approval requests to channels (off by default, enable for low-risk scenarios)"
},
"channels": {
"title": "Channels",
"desc": "Manage channel integrations; bind multiple channel routes per Agent with independent configs and connectivity testing",
"tabChannels": "Channel List",
"tabAgents": "Agent Binding",
"configured": "Connected",
"available": "Available Platforms",
"accountCount": "{count} accounts",
"editAccount": "Edit",
"addAccount": "Add Account",
"editDefault": "Edit Default",
"noGuide": "No guide",
"disable": "Disable",
"enable": "Enable",
"loadFailed": "Failed to load platform list",
"agentBindHint": "Each Agent can have multiple route bindings (e.g. different accounts or match conditions). Bindings are independent. Complete channel setup in \"Channel List\" first.",
"createAgentFirst": "Please create an Agent in \"Agent Management\" first",
"qqbotLabel": "QQ Bot",
"qqbotDesc": "Connect via QQ Open Platform, supports DM and group chat",
"qqbotGuide1": "前往 <a href=\"https://q.qq.com\" target=\"_blank\" rel=\"noopener\">QQ 开放平台</a> 创建机器人",
"qqbotGuide2": "在「开发 → 开发设置」中获取 <strong>AppID</strong> 和 <strong>ClientSecret</strong>",
"qqbotGuide3": "You can skip review and test directly in sandbox mode",
"qqbotGuide4": "Add the bot to your QQ group (sandbox channel also works)",
"qqbotGuide5": "Fill in credentials and save; the panel will auto-install the plugin, write config, and restart Gateway",
"qqbotGuide6": "@mention the bot in the group to start chatting",
"qqbotGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">遇到问题?参考 <a href=\"https://q.qq.com/qqbot/openclaw/faq.html\" target=\"_blank\" rel=\"noopener\">OpenClaw × QQ 常见问题</a></div>",
"qqbotAppIdPh": "QQ Open Platform AppID",
"qqbotSecretPh": "QQ Open Platform ClientSecret",
"dingtalkLabel": "DingTalk",
"dingtalkDesc": "Connect via DingTalk enterprise internal app, supports DM and group chat",
"dingtalkGuide1": "前往 <a href=\"https://open-dev.dingtalk.com\" target=\"_blank\" rel=\"noopener\">钉钉开放平台</a>,创建「企业内部应用」",
"dingtalkGuide2": "Enable Robot capability under \"App Features → Robot\"",
"dingtalkGuide3": "Set message receive mode to <strong>Stream Mode</strong> (recommended)",
"dingtalkGuide4": "Get <strong>Client ID (AppKey)</strong> and <strong>Client Secret (AppSecret)</strong> from credentials page",
"dingtalkGuide5": "权限管理中添加 <code>qyapi_robot_sendmsg</code>、<code>Card.Streaming.Write</code>、<code>Card.Instance.Write</code>",
"dingtalkGuide6": "Publish the app version, then add the bot to the target group",
"dingtalkGuide7": "Fill in credentials and save; the panel will auto-install the plugin and restart Gateway",
"dingtalkGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">注意Stream 模式需要钉钉服务端主动推送,确保网络可达</div>",
"dingtalkClientIdPh": "AppKey / Client ID",
"dingtalkClientSecretPh": "AppSecret / Client Secret",
"feishuLabel": "Feishu",
"feishuDesc": "Connect via Feishu custom enterprise app, supports DM and group chat",
"feishuGuide1": "前往 <a href=\"https://open.feishu.cn/app\" target=\"_blank\" rel=\"noopener\">飞书开放平台</a> 创建企业自建应用",
"feishuGuide2": "Add \"Bot\" capability under \"Add App Capabilities\"",
"feishuGuide3": "Get <strong>App ID</strong> and <strong>App Secret</strong> from credentials page",
"feishuGuide4": "Select \"Long Connection\" for event callback (no public IP needed)",
"feishuGuide5": "权限管理中搜索并开通 <code>im:message</code>、<code>im:message.group_at_msg</code> 等消息权限",
"feishuGuide6": "Create a version, publish, then add the bot to the target group",
"feishuGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">推荐使用长连接方式,无需公网地址即可接收消息</div>",
"feishuAppIdPh": "Feishu App ID",
"feishuAppSecretPh": "Feishu App Secret",
"feishuDomainLabel": "Platform Domain",
"feishuDomainFeishu": "Feishu (feishu.cn)",
"feishuDomainLark": "Lark (larksuite.com)",
"telegramDesc": "Connect a Telegram Bot, supports DM and groups",
"telegramGuide1": "在 Telegram 中搜索 <a href=\"https://t.me/BotFather\" target=\"_blank\" rel=\"noopener\">@BotFather</a> 并发送 <code>/newbot</code>",
"telegramGuide2": "Follow prompts to set bot name and username",
"telegramGuide3": "Copy the <strong>Bot Token</strong> returned by BotFather",
"telegramGuide4": "Fill in credentials below and save",
"telegramGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">需要公网可达的服务器或使用 polling 模式</div>",
"discordDesc": "Connect a Discord Bot, supports server channels and DMs",
"discordGuide1": "前往 <a href=\"https://discord.com/developers/applications\" target=\"_blank\" rel=\"noopener\">Discord Developer Portal</a> 创建 Application",
"discordGuide2": "Click \"Reset Token\" on the Bot page to get the <strong>Bot Token</strong>",
"discordGuide3": "Enable <strong>MESSAGE CONTENT INTENT</strong>",
"discordGuide4": "Use OAuth2 URL Generator to invite the Bot to your server",
"discordGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">确保开启 Message Content Intent 以接收消息内容</div>",
"slackDesc": "Connect a Slack App, supports channels and DMs",
"slackGuide1": "前往 <a href=\"https://api.slack.com/apps\" target=\"_blank\" rel=\"noopener\">Slack API</a> 创建 App推荐 From a manifest",
"slackGuide2": "Add Bot Token Scopes in OAuth & Permissions: <code>chat:write</code>, <code>app_mentions:read</code>, etc.",
"slackGuide3": "Install the App to your workspace and get the <strong>Bot Token</strong> (xoxb-)",
"slackGuide4": "Socket Mode: Enable Socket Mode in Basic Information and get the <strong>App-Level Token</strong> (xapp-)",
"slackGuide5": "HTTP Mode: Fill in the Request URL under Event Subscriptions",
"slackGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">Socket Mode 无需公网地址HTTP Mode 需要配置事件回调 URL</div>",
"modeLabel": "Connection Mode",
"slackSocketMode": "Socket Mode (recommended)",
"slackHttpMode": "HTTP Mode",
"slackAppTokenHint": "Socket Mode requires App-Level Token (xapp-)",
"slackSigningSecretPh": "Signing Secret",
"slackSigningSecretHint": "Used to verify request signatures in HTTP Mode",
"slackTeamIdPh": "Optional, e.g. T01234567",
"slackWebhookPathPh": "Optional, e.g. /slack/events",
"dmPolicy": "DM Policy",
"policyDefault": "Default",
"dmAllow": "Allow DMs",
"dmDeny": "Deny DMs",
"groupPolicy": "Group Policy",
"groupAllChannels": "All channels",
"groupMentionOnly": "Only when @mentioned",
"groupAllowlist": "Allowlist",
"allowFromPh": "Optional, comma-separated user/channel IDs",
"allowFromHint": "Restrict to specific user or channel IDs; leave empty for no restriction",
"weixinLabel": "WeChat",
"weixinDesc": "Connect personal WeChat via the openclaw-weixin plugin",
"weixinGuide1": "This feature is powered by the <strong>openclaw-weixin</strong> plugin",
"weixinGuide2": "Click \"Install Plugin\" below to auto-install",
"weixinGuide3": "After installation, click \"Scan to Login\" and scan the QR code with your phone",
"weixinGuide4": "Once logged in, Gateway will automatically handle messages",
"weixinGuide5": "Re-scan is needed if disconnected",
"weixinGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">注意:个人微信接入存在风控风险,建议使用小号</div>",
"weixinInstall": "Install Plugin",
"weixinInstallHint": "Auto-download and install the openclaw-weixin plugin",
"weixinLogin": "Scan to Login",
"weixinLoginHint": "Start the WeChat login flow; messages are handled after scanning",
"weixinScanQr": "Scan this QR code with WeChat on your phone",
"msteamsDesc": "Connect a Microsoft Teams Bot",
"msteamsGuide1": "在 <a href=\"https://portal.azure.com\" target=\"_blank\" rel=\"noopener\">Azure Portal</a> 注册 Bot Channel Registration",
"msteamsGuide2": "Get the <strong>App ID</strong> and <strong>App Password</strong>",
"msteamsGuide3": "Install the custom App in Teams",
"msteamsGuide4": "Configure the messaging endpoint URL",
"msteamsGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">需要 Azure AD 应用注册和 Teams 管理员权限</div>",
"msteamsTenantIdPh": "Optional, fill for single-tenant",
"msteamsAllowFromPh": "Optional, comma-separated",
"signalDesc": "Connect to Signal Messenger",
"signalGuide1": "安装 <a href=\"https://github.com/AsamK/signal-cli\" target=\"_blank\" rel=\"noopener\">signal-cli</a> 并注册/链接账号",
"signalGuide2": "Ensure signal-cli can send and receive messages",
"signalGuide3": "Fill in account info and signal-cli path",
"signalGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">需要本地安装 signal-cli 并完成账号注册</div>",
"signalAccountLabel": "Signal Account",
"signalAccountPh": "+1234567890",
"signalCliPathLabel": "signal-cli Path",
"signalCliPathPh": "Optional, defaults to PATH lookup",
"signalAllowFromPh": "Optional, comma-separated",
"matrixDesc": "Connect via Matrix protocol (Element and other clients)",
"matrixGuide1": "Register a Bot account on a Matrix server",
"matrixGuide2": "Get an <strong>Access Token</strong> (or use username & password)",
"matrixGuide3": "Invite the Bot to the target room",
"matrixGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">支持任何兼容 Matrix 协议的服务器</div>",
"matrixAccessTokenHint": "Use either Access Token or User ID + Password",
"matrixPasswordPh": "Leave empty when using Access Token",
"matrixAllowFromPh": "Optional, comma-separated user IDs",
"matrixAuthRequired": "Matrix requires an Access Token, or User ID + Password",
"groupAllGroups": "All groups",
"groupAllRooms": "All rooms",
"groupAllTeams": "All teams",
"groupMentionBot": "Only when @bot",
"optionalEg": "Optional, e.g.",
"editAccountLabel": "Edit {id}",
"bound": "Bound",
"notBoundAgent": "No Agent bound",
"addAgentBindingForAccount": "Add Agent Binding",
"addAgentBindingSub": "Add a new Agent route for this account",
"editConfig": "Edit Config",
"addAgentBinding": "Add Agent Binding",
"routeToAgent": "Route incoming messages to a specific Agent",
"addNewAccount": "Add New Account",
"addNewAccountSub": "Create a new bot account configuration",
"actions": "Actions",
"bindAgentTitle": "Bind Agent",
"targetAgent": "Target Agent",
"targetAgentHint": "Select the Agent to receive messages",
"peerScope": "Match Scope",
"peerAll": "All (DM + Group)",
"peerAllHint": "Receive all messages from this channel",
"peerDirect": "DM Only",
"peerDirectHint": "Only receive one-on-one direct messages",
"peerDirectLabel": "DM",
"peerGroup": "Group Only",
"peerGroupHint": "Only receive group/channel messages",
"peerGroupLabel": "Group",
"peerIdHint": "Target ID",
"peerIdHintDetailed": "Restrict to a specific group/user ID; leave empty to match all",
"targetId": "Target ID",
"saveBinding": "Save Binding",
"duplicateBinding": "A binding with the same configuration already exists",
"saving": "Saving...",
"bindingSaved": "Binding saved",
"saveFailed": "Save failed",
"accountLabel": "Account",
"defaultAccount": "Default Account",
"accountShort": "Acct",
"peerDm": "DM",
"peerGroupShort": "Group",
"peerChannelShort": "Channel",
"noAgents": "No Agents",
"orphanAgent": "Binding exists in config but Agent ID not found in current list",
"diagnose": "Diagnose",
"remove": "Remove",
"noBindings": "No channel bindings yet",
"addChannelBinding": "Add Channel Binding",
"enableChannelFirst": "Please connect and enable at least one channel in \"Channel List\" first",
"confirmRemoveBinding": "Remove this binding?",
"bindingRemoved": "Binding removed",
"addBindingForAgent": "Add channel binding for {agent}",
"channel": "Channel",
"bindingIndependentHint": "Each binding works independently; you can add multiple rules for the same channel",
"subAccount": "Sub-account",
"noMultiAccount": "This channel does not support multiple accounts",
"noMultiAccountHint": "Add multiple accounts in the channel list first",
"confirmRemoveAccount": "Remove this account and all its config?",
"removed": "Removed",
"removeFailed": "Remove failed",
"disabled": "Disabled",
"enabled": "Enabled",
"operationFailed": "Operation failed",
"confirmRemovePlatform": "Remove this platform and all its config?",
"supportsActions": "Supports actions",
"connectedClickEdit": "Connected, click to edit",
"qqDiagAllPassed": "All checks passed ✓",
"qqDiagHasFailed": "Some checks failed",
"qqRepairHint": "Try one-click repair: reinstall plugin and restart Gateway",
"qqRepairBtn": "One-Click Repair",
"qqFaqBtn": "Open QQ OpenClaw FAQ",
"qqDiagTitle": "QQ Connectivity Diagnosis",
"notes": "Notes",
"processing": "Processing...",
"repairDone": "Repair complete",
"repairFailed": "Repair failed",
"unknownChannelType": "Unrecognized channel type",
"diagnosing": "Diagnosing...",
"testing": "Testing...",
"noCredentialsFound": "No credentials found for this channel in config",
"testPassed": "Channel test passed",
"verifyFailed": "Verification failed",
"testFailed": "Channel test failed",
"diagFailed": "Diagnosis failed",
"connectingGateway": "Connecting Gateway...",
"gatewayNotConnected": "Gateway not connected",
"generatingQr": "Generating QR code...",
"generatingQrShort": "Generating QR...",
"whatsappScanQr": "Scan this QR code with WhatsApp on your phone",
"whatsappScanPath": "WhatsApp → Linked Devices → Link a Device",
"waitingScan": "Waiting for scan...",
"whatsappLinked": "WhatsApp linked successfully!",
"whatsappAlreadyLinked": "WhatsApp is already linked, no need to re-scan",
"linkedSuccess": "Linked successfully!",
"scanTimeout": "Scan timed out",
"scanTimeoutRetry": "Scan timed out or not completed, please retry",
"whatsappNotAvailableHint": "WhatsApp plugin not loaded",
"scanLoginFailed": "Scan login failed",
"unknownPlatform": "Unknown platform",
"setupSteps": "Setup Steps",
"clickToExpand": "click to expand",
"docsOnlyTitle": "Configuration wizard for this channel is not yet available",
"docsOnlyDefault": "Please complete setup via upstream docs or CLI first",
"setupGuide": "Setup Guide",
"gotIt": "Got It",
"detectingPlugin": "Detecting plugin status...",
"operations": "Operations",
"setup": "Setup",
"close": "Close",
"pluginStatusFailed": "Failed to get plugin status",
"pluginInstalled": "Installed",
"version": "Version",
"unknown": "Unknown",
"newVersionAvailable": "New version {version} available, click \"Upgrade Plugin\" to update",
"upgradePlugin": "Upgrade Plugin",
"upToDate": "Up to date",
"pluginNotInstalled": "Not installed",
"latestVersion": "Latest version",
"clickInstallBelow": "Click \"Install Plugin\" below to get started",
"executing": "Executing",
"executingShort": "Executing...",
"executingAction": "Executing channel action",
"executionDone": "Execution complete",
"executionFailed": "Execution failed",
"unknownError": "Unknown error",
"execute": "Execute",
"channelConnected": "🎉 Channel connected! Refreshing list...",
"reDetecting": "Re-detecting...",
"actionDone": "Channel action completed",
"actionFailed": "Channel action failed",
"accountIdentifier": "Account Identifier",
"accountIdPlaceholder": "Leave empty for default account; changing creates a new account",
"accountIdHint": "Each account corresponds to an independent bot. Different accounts can bind to different Agents.",
"bindAgent": "Bind Agent",
"bindAgentHint": "Which Agent receives messages for this account (add more bindings in \"Agent Binding\" tab).",
"show": "Show",
"hide": "Hide",
"pairingApproval": "Pairing Approval",
"pairingApprovalHint": "When the bot shows <code>access not configured</code>, <code>Pairing code</code>, or asks to run <code>openclaw pairing approve</code>, you can approve directly here.",
"pairingCodePlaceholder": "e.g. R3ZFPWZP",
"viewPending": "View Pending",
"approvePairingCode": "Approve Pairing Code",
"preActions": "Pre-run Actions",
"preActionsHint": "For channels that require CLI login, scanning, or initialization commands first.",
"gatewayAuthAutoFilled": "Auto-filled {type} from current Gateway auth config; usually no need to fill manually",
"existingConfigHint": "Existing config found; edit and click Save to overwrite",
"fullDiagnose": "Full Connectivity Diagnosis",
"qqDiagHint": "检查<strong>已保存到配置文件</strong>的凭证、本机 Gateway 端口、<code>/__api/health</code>、QQ 插件与 chatCompletions。QQ 提示「灵魂不在线」时优先看此处,并参考 <a href=\"https://q.qq.com/qqbot/openclaw/faq.html\" target=\"_blank\" rel=\"noopener\">OpenClaw × QQ 常见问题</a>。",
"edit": "Edit",
"connect": "Connect",
"verifyCredentials": "Verify Credentials",
"save": "Save",
"connectAndSave": "Connect & Save",
"reading": "Reading...",
"pendingRequests": "Pending Requests",
"noPendingRequests": "No pending requests",
"readFailed": "Read failed",
"enterPairingCode": "Please enter pairing code",
"approving": "Approving...",
"pairingApproved": "Pairing approved",
"operationComplete": "Operation complete",
"approveFailed": "Approve failed",
"pleaseFill": "Please fill in \"{field}\"",
"verifying": "Verifying...",
"credentialsValid": "Credentials valid",
"qqVerifyNote": "此项只验证 AppID/Secret 能否向腾讯换 token。<strong>不能</strong>代表 QQ 里机器人已在线;若提示「灵魂不在线」,请使用下方 <strong>完整联通诊断</strong> 并对照 <a href=\"https://q.qq.com/qqbot/openclaw/faq.html\" target=\"_blank\" rel=\"noopener\">QQ OpenClaw 常见问题</a>。",
"verifyRequestFailed": "Verification request failed",
"installingPlugin": "Installing plugin...",
"installPlugin": "Install Plugin",
"pluginInstallFailed": "Plugin installation failed",
"pluginDetected": "Plugin detected, no need to reinstall; only updating config",
"writingConfig": "Writing config...",
"configSaved": "{platform} config saved, Gateway is reloading"
},
"memory": {
"title": "Memory Files",
"agentLabel": "Agent:",
"newFile": "+ New",
"deleteFile": "Delete",
"exportZip": "Export All as ZIP",
"selectFile": "Select a file to view",
"download": "Download",
"preview": "Preview",
"save": "Save",
"edit": "Edit",
"editorPlaceholder": "Select a file on the left to edit...",
"catMemory": "Working Memory",
"catMemoryDesc": "Active working context, decision records and progress tracking",
"catArchive": "Memory Archive",
"catArchiveDesc": "Archived historical memory files, organized by time period",
"catCore": "Core Files",
"catCoreDesc": "Agent core configuration files like AGENTS.md, CLAUDE.md, etc.",
"newFileTitle": "New Memory File",
"newFileLabel": "Filename",
"newFilePlaceholder": "e.g. notes.md",
"newFileHint": "Recommended .md format. File will be saved to the current category directory",
"created": "Created {name}",
"createFailed": "Failed to create",
"confirmDelete": "Delete {name}?",
"deleted": "Deleted {name}",
"deleteFailed": "Failed to delete",
"noFiles": "No files",
"loadFailed": "Load failed",
"loadListFailed": "Failed to load file list",
"loading": "Loading...",
"readFailed": "Read failed",
"readFileFailed": "Failed to read file",
"fileSaved": "File saved",
"saveFailed": "Save failed",
"downloaded": "Downloaded {name}",
"downloadFailed": "Download failed",
"exported": "Exported: {label} → {path}",
"exportFailed": "Export failed"
},
"cron": {
"title": "Scheduled Tasks",
"desc": "Create scheduled tasks to let AI execute commands at set times",
"gwHint": "Scheduled tasks are managed via Gateway. Please start Gateway first.",
"goServices": "Services",
"newTask": "+ New Task",
"refresh": "Refresh",
"totalTasks": "Total Tasks",
"running": "Running",
"paused": "Paused",
"recentFailed": "Recent Failures",
"noTasks": "No scheduled tasks",
"noTasksHint": "Click \"+ New Task\" to create your first scheduled task",
"statusRunning": "Running",
"statusPaused": "Paused",
"triggerSuccess": "Task triggered",
"triggerFailed": "Trigger failed",
"togglePaused": "Paused",
"toggleEnabled": "Enabled",
"toggleFailed": "Operation failed",
"confirmDelete": "Delete task \"{name}\"?",
"deleted": "Deleted",
"deleteFailed": "Delete failed",
"fetchFailed": "Failed to fetch task list",
"gwNotConnected": "Gateway not connected. Please start Gateway first to manage scheduled tasks",
"taskName": "Task Name *",
"taskNamePlaceholder": "e.g. Daily summary push",
"taskMessage": "Command *",
"taskMessagePlaceholder": "AI will execute this command when triggered",
"taskAgent": "Agent",
"taskAgentDefault": "Default Agent",
"taskAgentHint": "Uses default Agent if not specified",
"taskDelivery": "Delivery Channel",
"taskDeliveryNone": "None (main session)",
"taskDeliveryHint": "Must be specified when multiple messaging channels are configured",
"taskSchedule": "Schedule",
"taskSchedulePlaceholder": "Cron expression, e.g. 0 9 * * *",
"taskEnableNow": "Enable immediately after creation",
"editTitle": "Edit Task",
"createTitle": "Create Scheduled Task",
"saveEdit": "Save Changes",
"saveCreate": "Create",
"saving": "Saving...",
"nameRequired": "Please enter a task name",
"messageRequired": "Please enter a command",
"scheduleRequired": "Please set a schedule",
"updated": "Task updated",
"created": "Task created",
"saveFailed": "Save failed",
"fixedConfig": "Auto-fixed config (removed invalid cron.jobs)",
"cronEvery5min": "Every 5 min",
"cronEvery15min": "Every 15 min",
"cronHourly": "Every hour",
"cronDaily9": "Daily 9:00",
"cronDaily18": "Daily 18:00",
"cronMonday9": "Mon 9:00",
"cronMonthly1": "1st of month 9:00",
"unknown": "Unknown",
"unknownPeriod": "Unknown schedule",
"everyMinute": "Every minute",
"everyNMin": "Every {n} min",
"hourlyOnTheHour": "Every hour on the hour",
"everyNSec": "Every {n} sec",
"everyNHour": "Every {n} hour",
"oneTime": "One-time",
"justNow": "Just now",
"minutesAgo": "{n} min ago",
"hoursAgo": "{n} hr ago",
"daysAgo": "{n} days ago"
},
"usage": {
"title": "Usage",
"desc": "View token consumption, API costs and model usage statistics",
"today": "Today",
"days7": "7 Days",
"days30": "30 Days",
"refresh": "Refresh",
"gwConnecting": "Connecting to Gateway...",
"gwWait": "Will auto-load once Gateway is connected",
"loadFailed": "Load failed",
"loadFailedHint": "You may need to update OpenClaw to 2026.3.11+ for Usage API support",
"retry": "Retry",
"noData": "No data",
"messages": "Messages",
"userMsgs": "user",
"assistantMsgs": "assistant",
"toolCalls": "Tool Calls",
"toolKinds": "{count} tools",
"errors": "Errors",
"errorRate": "Error rate",
"totalTokens": "Total Tokens",
"input": "input",
"output": "output",
"cost": "Cost",
"sessions": "Sessions",
"topModels": "Top Models",
"topProviders": "Top Providers",
"topTools": "Top Tools",
"topAgents": "Top Agents",
"topChannels": "Top Channels",
"tokenBreakdown": "Token Breakdown",
"outputTokens": "Output",
"inputTokens": "Input",
"cacheRead": "Cache Read",
"cacheWrite": "Cache Write",
"dailyUsage": "Daily Usage",
"sessionDetail": "Session Details",
"recentN": "Recent {count}",
"times": "{count} times",
"timesCall": "{count} calls",
"unknownModel": "Unknown",
"unknownProvider": "Unknown"
},
"skills": {
"title": "Skills",
"desc": "Manage installed Skills or search and install new ones from the community",
"tabInstalled": "Installed",
"tabStore": "Search & Install",
"filterPlaceholder": "Filter Skills...",
"refresh": "Refresh",
"loading": "Loading Skills...",
"loadFailed": "Load failed",
"loadFailedHint": "Please confirm OpenClaw is installed and available",
"retry": "Retry",
"eligible": "Available",
"missingDeps": "Missing Deps",
"disabled": "Disabled",
"blocked": "Blocked",
"eligibleGroup": "✓ Available",
"missingGroup": "✗ Missing Dependencies",
"disabledGroup": "⏸ Disabled",
"blockedGroup": "🚫 Blocked by Allowlist",
"aiFixBtn": "Let AI assistant help install",
"summary": "{total} Skills: {detail}",
"summaryDetail": "{eligible} available / {missing} missing deps / {disabled} disabled",
"noSkills": "No Skills detected",
"noSkillsHint": "Please confirm OpenClaw is properly installed. Skills are bundled with OpenClaw; custom Skills may be in <code>~/.openclaw/skills/</code> or <code>~/.claude/skills/</code>.",
"bundled": "Bundled",
"custom": "Custom",
"missingCmd": "Missing commands",
"missingEnv": "Missing env vars",
"missingEnvHint": "— must be set in system environment",
"missingConfig": "Missing config",
"missingConfigHint": "— must be set in openclaw.json",
"noAutoInstall": "No auto-install option, please install manually",
"detail": "Details",
"uninstall": "Uninstall",
"loadingDetail": "Loading details...",
"detailSource": "Source",
"detailPath": "Path",
"reqBins": "Required commands",
"reqEnv": "Environment variables",
"installOptions": "Install options",
"detailLoadFailed": "Failed to load details",
"installing": "Installing...",
"depInstalled": "{name} dependency installed",
"installFailed": "Install failed",
"searchPlaceholder": "Search skills, e.g. weather / github / tavily",
"search": "Search",
"installCLI": "Install CLI",
"browse": "Browse",
"searchEmpty": "Enter keywords to search community Skills, then install with one click",
"searchKeyword": "Enter keywords to search community Skills",
"searching": "Searching...",
"noResults": "No matching Skills found",
"install": "Install",
"installed": "Installed",
"searchFailed": "Search failed",
"rateLimited": "⚠️ Rate limited",
"rateLimitClawHub": "ClawHub rate limited, try switching to SkillHub (China accelerated)",
"rateLimitRetry": "Please try again later",
"skillhubNeedCLI": "⚠️ Please install SkillHub CLI first",
"skillhubNeedCLIHint": "Click \"Install CLI\" above, or switch to ClawHub source",
"skillhubSetup": "Install SkillHub CLI",
"skillhubInstalling": "Installing SkillHub CLI...",
"skillhubInstalled": "SkillHub CLI installed",
"skillhubInstallFailed": "SkillHub CLI installation failed",
"confirmUninstall": "Uninstall Skill \"{name}\"?",
"uninstalling": "Uninstalling...",
"uninstalled": "Uninstalled {name}",
"uninstallFailed": "Uninstall failed",
"skillInstalled": "Skill {name} installed",
"sourceSkillHub": "SkillHub (China accelerated)",
"sourceClawHub": "ClawHub (Original overseas)",
"sourceLocalScanTimeout": "CLI available but timed out, showing local scan results",
"sourceLocalScanParseFailed": "CLI available but output parse failed, showing local scan results",
"sourceLocalScanExecFailed": "CLI execution failed, showing local scan results",
"sourceLocalScan": "Showing local scan results",
"sourceLocalScanNoCli": "CLI not available, showing local scan results",
"sourceCLI": "Using OpenClaw CLI results"
},
"chat": {
"title": "Live Chat",
"desc": "Chat with AI Agents in real-time",
"sessionList": "Sessions",
"newSession": "New Session",
"chatTitle": "Chat",
"loadingModels": "Loading models...",
"shortcuts": "Shortcuts",
"resetSession": "Reset Session",
"inputPlaceholder": "Type a message, Enter to send, / for commands",
"uploadImage": "Upload Image",
"refreshModels": "Refresh Models",
"send": "Send",
"stopGeneration": "Stop Generation",
"doubleClickRename": "Double-click to rename",
"delete": "Delete",
"messagesCount": "{count} messages",
"justNow": "just now",
"minutesAgo": "{n} min ago",
"hoursAgo": "{n} hr ago",
"daysAgo": "{n} days ago",
"unknown": "Unknown",
"mainSession": "Main Session",
"mainDefault": "main (default)",
"newAgent": "+ New Agent",
"sessionName": "Session Name",
"sessionNamePlaceholder": "e.g. Translation Helper",
"enterSessionName": "Please enter a session name",
"createAgentHint": "Please create a new Agent in the Agent management page",
"sessionCreated": "Session created",
"cannotDeleteMain": "Cannot delete the main session",
"confirmDeleteSession": "Delete session \"{label}\"?",
"sessionDeleted": "Session deleted",
"deleteFailed": "Delete failed: ",
"confirmResetSession": "Reset session \"{label}\"?\n\nThis will clear all chat history for this session. This action cannot be undone.",
"sessionResetDone": "Session has been reset",
"resetFailed": "Reset failed: ",
"sessionRenamed": "Session renamed",
"gatewayNotReadySend": "Gateway not ready, will send after connection",
"sendFailed": "Send failed: ",
"usingTool": "Using tool: {name}",
"streamTimeout": "Output timed out, auto-ended",
"generationStopped": "Generation stopped",
"errorPrefix": "Error: ",
"connectionRejected": "Connection rejected by Gateway, click \"Fix & Reconnect\"",
"noMessages": "No messages yet, start chatting!",
"imageHistoryHint": "Some history images cannot be displayed (Gateway does not retain original image data, only visible in current session)",
"loadHistoryFailed": "Failed to load history: ",
"toolSuccess": "Success",
"toolFailed": "Failed",
"toolParams": "Parameters",
"toolResult": "Result",
"noParams": "No parameters",
"noResult": "No result",
"tool": "Tool",
"file": "File",
"compacting": "Compacting context…",
"remaining": "Remaining",
"connectFailed": "Connection failed",
"fixDoneReconnecting": "Fix done, reconnecting...",
"fixing": "Fixing...",
"writingConfig": "Writing config...",
"fixFailed": "Fix failed: ",
"imageOnly": "Only images are supported",
"readFileFailed": "Failed to read file",
"noSessions": "No sessions",
"disconnected": "Disconnected, reconnecting...",
"gatewayNotReady": "Gateway Connection Not Ready",
"connectingGateway": "Connecting to Gateway...",
"fixAndReconnect": "Fix & Reconnect",
"gatewaySettings": "Gateway Settings",
"firstUseHint": "First time? Make sure Gateway is running, or click \"Fix & Reconnect\" to auto-fix",
"guideTitle": "You are using Live Chat",
"guideDesc": "This page connects to your OpenClaw AI Agent via <b>Gateway</b>. Conversations are processed by your deployed OpenClaw service.",
"guideHint": "To use ClawPanel's built-in AI Assistant (independent of OpenClaw), go to \"AI Assistant\" in the left menu.",
"guideClose": "Got it",
"defaultSuffix": "(default)",
"cmdSession": "Session",
"cmdModel": "Model",
"cmdThinkMode": "Think Mode",
"cmdFastMode": "Fast Mode",
"cmdVerbose": "Verbose/Reasoning",
"cmdInfo": "Info",
"cmdNewSession": "New session",
"cmdResetSession": "Reset current session",
"cmdStopGen": "Stop generation",
"cmdSwitchModel": "Switch model (enter name)",
"cmdListModels": "List available models",
"cmdModelStatus": "Current model status",
"cmdThinkOff": "Disable deep thinking",
"cmdThinkLow": "Light thinking",
"cmdThinkMedium": "Medium thinking",
"cmdThinkHigh": "Deep thinking",
"cmdFastToggle": "Toggle fast mode (on/off)",
"cmdFastOn": "Enable fast mode (low latency)",
"cmdFastOff": "Disable fast mode",
"cmdVerboseOff": "Disable verbose mode",
"cmdVerboseLow": "Low verbosity",
"cmdVerboseHigh": "High verbosity",
"cmdReasoningOff": "Disable reasoning mode",
"cmdReasoningLow": "Light reasoning",
"cmdReasoningMedium": "Medium reasoning",
"cmdReasoningHigh": "Deep reasoning",
"cmdHelp": "Help",
"cmdStatus": "System status",
"cmdContext": "Context info",
"hostedAgent": "Hosted Agent",
"hostedBadge": "Hosted",
"taskGoal": "Task Goal",
"taskGoalPlaceholder": "e.g. Continuously optimize code quality until no improvements remain",
"hostedHint": "Hosted Agent will continuously guide OpenClaw to complete this goal. Uses <a href=\"#/assistant\" class=\"hosted-agent-link\">AI Assistant</a> model config.",
"maxReplies": "Max Replies",
"timerAutoStop": "Auto-stop Timer",
"startHosted": "Start Hosted",
"stopHosted": "Stop Hosted",
"ready": "Ready",
"hostedNotEnabled": "Not Enabled",
"hostedRunning": "Running",
"hostedWaiting": "Waiting for Reply",
"hostedPaused": "Paused",
"hostedErrorStatus": "Error",
"hostedStandby": "Standby",
"hostedStatusError": "Error: {msg}",
"hostedStatusRunning": "Running · {n} steps remaining",
"hostedRemaining": "{time} remaining",
"enterTaskGoal": "Please enter a task goal",
"hostedGatewayNotReady": "Gateway not ready, cannot start",
"hostedStarted": "Hosted Agent started",
"hostedStopped": "Hosted Agent stopped",
"hostedAutoStopSignal": "OpenClaw reply contains completion signal, auto-stopping",
"hostedTimerExpired": "Timer expired ({min} min), auto-stopping",
"hostedNeedIntervention": "Manual intervention needed: {reason}",
"hostedGwNotReady": "Gateway not ready",
"hostedErrorThreshold": "Consecutive errors exceeded threshold",
"hostedModelNotConfigured": "Hosted Agent model not configured (please configure in AI Assistant page)",
"hostedApiError": "API Error {code}",
"hostedPrefix": "[Hosted Agent] ",
"hostedContextSummary": "[Context Summary - compressed {n} history entries]"
},
"chatDebug": {
"title": "System Diagnostics",
"desc": "Comprehensive system status check, quickly locate issues",
"sectionAppState": "App State",
"sectionWs": "WebSocket Connection",
"sectionNode": "Node.js Environment",
"sectionVersion": "Version Info",
"sectionConfig": "Config File",
"sectionService": "Service Status",
"sectionDevice": "Device Key & Handshake Signature",
"sectionDiagnosis": "Diagnostic Suggestions",
"sectionDoctorOutput": "Config Diagnosis Output",
"wsTestTitle": "WebSocket Connection Test",
"btnRefresh": "Refresh Status",
"btnDiagConfig": "Diagnose Config",
"btnAutoFix": "Auto Fix",
"btnTestWs": "Test WebSocket",
"btnNetworkLog": "Network Log",
"btnFixPairing": "Fix Pairing",
"btnClear": "Clear",
"systemOk": "System OK",
"issuesFound": "Issues Found",
"allFunctionsOk": "All core functions running normally",
"someFunctionsError": "Some functions abnormal, see details below",
"openclawReady": "OpenClaw Ready",
"gatewayRunning": "Gateway Running",
"connStatus": "Connection Status",
"connected": "Connected",
"notConnected": "Not Connected",
"handshakeStatus": "Handshake Status",
"completed": "Completed",
"notCompleted": "Not Completed",
"sessionKey": "Session Key",
"installStatus": "Install Status",
"installed": "Installed",
"notInstalled": "Not Installed",
"version": "Version",
"unknownLabel": "(unknown)",
"currentVersion": "Current Version",
"recommendedVersion": "Recommended Stable",
"panelVersion": "Panel Version",
"latestUpstream": "Latest Upstream",
"notDetected": "(not detected)",
"deviationFromRecommended": "Deviation from Recommended",
"versionTooHigh": "Version too high, consider downgrade",
"versionAligned": "Aligned",
"versionNeedSwitch": "Needs switch",
"latestAvailable": "Latest Upstream Available",
"hasUpdate": "Update available",
"noUpdate": "No update",
"notSet": "(not set)",
"set": "Set",
"running": "Running",
"stopped": "Stopped",
"none": "(none)",
"empty": "(empty)",
"cliInstall": "CLI Install",
"runStatus": "Run Status",
"processPid": "Process PID",
"serviceLabel": "Service Label",
"deviceId": "Device ID",
"publicKey": "Public Key",
"signTime": "Sign Time",
"deviceKeySuccess": "Device key generated successfully",
"viewConnectFrame": "View full Connect Frame",
"diagNodeNotInstalled": "Node.js not installed. Please install Node.js first (<a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"noopener\">Download</a>)",
"diagConfigMissing": "Config file missing or corrupted, please go to Setup page to complete configuration",
"diagCliNotInstalled": "OpenClaw CLI not installed, please go to Setup page to install",
"diagGatewayNotRunning": "Gateway not running, please go to Services page to start",
"diagTokenNotSet": "Gateway token not set (optional for local dev, recommended for production)",
"diagTokenSecretRef": "Gateway token via environment variable/SecretRef",
"diagDeviceKeyFailed": "Device key generation failed, check Rust backend logs",
"diagWsNotConnected": "Gateway running but WebSocket not connected. Common cause: <strong>origin not allowed</strong> (Tauri origin not whitelisted) or port {port} occupied. Click \"Fix Pairing\" to auto-fix origin issues",
"diagWsHandshakeFailed": "WebSocket connected but handshake incomplete, check if token is correct",
"diagAllOk": "All checks passed, system running normally",
"checkTime": "Check time: {time}",
"fixing": "Fixing...",
"diagnosing": "Diagnosing...",
"runningDoctorFix": "Running openclaw doctor --fix ...",
"runningDoctor": "Running openclaw doctor ...",
"noIssues": "✓ No issues found",
"diagDone": "Diagnosis complete",
"installCorrupt": "OpenClaw installation may be corrupted",
"installCorruptHint": "Module files missing. Go to <a href=\"#\" data-nav=\"about\" style=\"color:var(--primary);text-decoration:underline;font-weight:500\">About page</a> to switch version or reinstall OpenClaw CLI.",
"installCorruptToast": "OpenClaw installation corrupted, recommend reinstalling from About page",
"configFixDone": "Config fix complete",
"configFixPartial": "Fix complete, some issues may need manual handling",
"execFailed": "Execution failed: ",
"cliUnavailable": "OpenClaw CLI unavailable",
"cliUnavailableHint": "Please go to <a href=\"#\" data-nav=\"about\" style=\"color:var(--primary);text-decoration:underline;font-weight:500\">About page</a> to install or reinstall OpenClaw.",
"wsTestStart": "Starting WebSocket connection test...",
"wsAddress": "Address: {url}",
"wsToken": "Token: {token}",
"wsConnecting": "Connecting...",
"wsConnected": "WebSocket connected",
"wsWaitChallenge": "Waiting for Gateway connect.challenge...",
"wsReceivedMsg": "Received message",
"wsReceivedChallenge": "Received challenge, nonce",
"wsGeneratingFrame": "Generating connect frame...",
"wsFrameGenerated": "Connect frame generated",
"wsSendingFrame": "Sending connect frame",
"wsFrameFailed": "Connect frame generation failed",
"wsHandshakeOk": "Handshake successful!",
"wsHandshakeFailed": "Handshake failed",
"wsParseFailed": "Message parse failed",
"wsRawData": "Raw data",
"wsError": "WebSocket error",
"wsClosed": "Connection closed",
"wsOriginRejected": "origin not allowed (1008) - Gateway rejected current app origin",
"wsOriginFix": "Solution: Click \"Fix Pairing\" to auto-add tauri://localhost to whitelist and restart Gateway",
"wsAuthFailed": "Auth failed (4001) - Token may be incorrect",
"wsAbnormalClose": "Abnormal close (1006) - May be network issue or Gateway disconnect",
"wsCreateFailed": "WebSocket creation failed",
"wsConfigReadFailed": "Config read failed",
"networkLogTitle": "Network Request Log (last 100)",
"noRequests": "No request logs",
"totalRequests": "Total Requests",
"cacheHit": "Cache Hit",
"avgDuration": "Avg Duration",
"colTime": "Time",
"colCommand": "Command",
"colArgs": "Args",
"colDuration": "Duration",
"colCache": "Cache",
"fixStarting": "Starting pairing fix...",
"fixWritingPair": "Writing device pairing info + Gateway origin whitelist...",
"fixOriginAdded": "Added tauri://localhost to gateway.controlUi.allowedOrigins",
"fixStoppingGw": "Stopping Gateway service...",
"fixWaitExit": "Waiting for process exit (3s)...",
"fixStartingGw": "Starting Gateway service...",
"fixGwStartSent": "Gateway start command sent",
"fixWaitReady": "Waiting for Gateway ready (5s)...",
"fixCheckStatus": "Checking Gateway status...",
"fixGwStarted": "Gateway started",
"fixGwMaybeStarting": "Gateway may still be starting, please test manually later",
"fixTestingWs": "Testing WebSocket connection...",
"fixReceivedChallenge": "Received connect.challenge",
"fixFrameSent": "Connect frame sent",
"fixPairSuccess": "Handshake successful! Pairing issue fixed!",
"fixReconnecting": "Re-establishing main app WebSocket connection...",
"fixOriginStillRejected": "Reason: Gateway rejected current app origin, need to restart Gateway",
"fixSuggestManualRestart": "Suggestion: Manually restart Gateway from Services page",
"fixWsConnFailed": "WebSocket connection failed, please confirm Gateway is running",
"fixOriginRejected1008": "Connection rejected (1008) - Gateway rejected current origin",
"fixRetryHint": "This issue should have been fixed, please click \"Fix Pairing\" again",
"fixFailed": "Fix failed"
},
"setup": {
"title": "Setup",
"desc": "Install and configure OpenClaw",
"headerTitle": "Welcome to ClawPanel",
"headerDesc": "Desktop management panel for OpenClaw AI Agent framework",
"recheck": "Re-detect",
"stepNode": "Node.js Environment",
"installed": "Installed",
"stepNodeHint": "OpenClaw requires Node.js, please install it first.",
"downloadNode": "Download Node.js",
"recheckAfterInstall": "Click \"Re-detect\" after installation",
"nodeInstalledButNotDetected": "Already installed but not detected?",
"macNodeHint": "On macOS, launching from Finder may not find Node.js. Try closing ClawPanel and launching from terminal:",
"winNodeHint": "After installing Node.js, click \"Re-detect\" or use \"Auto Scan\" below, no restart needed.",
"scanNodeBtn": "Auto Scan",
"orManualPath": "Or specify path manually:",
"checkPathBtn": "Check",
"stepGit": "Git Version Control",
"gitHttpsConfigured": "Auto-configured Git to use HTTPS (avoids SSH connection issues)",
"stepGitHint": "Some dependencies require Git to download source code. Click the button below to auto-install, or install manually if it fails.",
"autoInstallGitBtn": "Auto Install Git",
"manualDownload": "Manual Download",
"gitOptionalHint": "<strong>Can I install without Git?</strong> Usually yes, but some dependencies may require Git. Recommended to install to avoid issues.",
"cliAvailable": "CLI available",
"cliAheadWarning": "Detected local OpenClaw {current} is ahead of the panel's recommended stable version {recommended}. There may be compatibility or stability risks. Consider rolling back to the recommended version on the About page.",
"stepConfig": "Config File",
"configAt": "Config file at {path}",
"configMissing": "Config file not found. Click the button below to create default config.",
"initConfigLabel": "Initialize Config",
"customDirTitle": "Custom OpenClaw Install Path",
"customDirHint": "If OpenClaw is installed in a non-default directory, specify it here. Leave empty to use the default path.",
"customDirPlaceholder": "e.g. E:\\\\Data\\\\AI\\\\.openclaw",
"saveBtn": "Save",
"resetDefaultBtn": "Reset Default",
"aiAssistant": "AI Assistant",
"aiAssistantDesc": "Having installation issues? AI Assistant can help diagnose and solve them. After configuring a model, click the button below",
"aiAssistantDescProblem": ", current issues will be auto-sent to AI for analysis",
"openAiAssistant": "Open AI Assistant",
"askAiHelp": "Ask AI for Help",
"nextStepsTitle": "Next Steps",
"nextStepsDesc": "Environment is ready, but you still need to complete the following steps before chatting:",
"nextStep1": "Go to \"Model Config\" to add at least one model and confirm primary model is set",
"nextStep2": "Go to \"Gateway\" to confirm service is running",
"nextStep3": "For messaging channels (Feishu, DingTalk, QQ etc.), go to \"Channels\" to set up",
"configModels": "Configure Models",
"gatewaySetup": "Gateway Setup",
"messageChannels": "Message Channels",
"enterPanel": "Enter Panel",
"installHint": "Installation will use the recommended stable version bound to this ClawPanel release. To change versions later, go to the About page.",
"installHint2": "To try latest features, install the recommended stable version first then switch manually. To request latest version support, submit an issue.",
"sourceChineseLabel": "Chinese Optimized (Recommended)",
"sourceOfficialLabel": "Official Version",
"installMethodLabel": "Install Method",
"methodAuto": "Auto Select (Recommended)",
"methodStandaloneR2": "Standalone Package · CDN (Recommended for China, includes Node.js, no npm needed)",
"methodStandaloneGithub": "Standalone Package · GitHub (Fallback when CDN unavailable)",
"methodNpm": "npm Install (Traditional, requires Node.js + npm + network)",
"registryLabel": "npm Registry",
"registryTaobao": "Taobao Mirror (Recommended for China)",
"registryNpm": "npm Official",
"registryHuawei": "Huawei Cloud Mirror",
"installBtn": "Install",
"methodHintAuto": "Auto-selects best method: prefers standalone package (zero deps, fastest), falls back to npm on failure.",
"methodHintR2": "Downloads standalone package from CDN with bundled Node.js runtime, no npm needed. Fastest for China.",
"methodHintGithub": "Downloads standalone package from GitHub Releases. Fallback when CDN is unavailable.",
"methodHintNpm": "Traditional npm install, requires local Node.js, npm, and network access to npm registry.",
"envHintTitle": "Can't find installed OpenClaw?",
"envHintDesc": "ClawPanel desktop can only manage <strong>locally</strong> installed OpenClaw. Installations in these environments cannot be detected:",
"envHintWsl": "WSL (Windows Subsystem for Linux)",
"envHintWslDesc": "OpenClaw in WSL is not accessible from Windows side",
"envHintDocker": "Docker Container",
"envHintDockerDesc": "Container installations are isolated from host",
"envHintRemote": "Remote Server",
"envHintRemoteDesc": "Installed on another machine",
"envHintInstallManage": "Install management panel in the corresponding environment",
"envHintLocalReinstall": "Or, reinstall OpenClaw locally using the install button below.",
"wslWebHint": "Use Web version in WSL:",
"wslWebDesc": "Open WSL terminal, one-click deploy ClawPanel Web version:",
"wslWebPostDeploy": "After deployment, access via WSL IP in your browser.",
"dockerHint": "Use in Docker container:",
"dockerDesc": "Install OpenClaw + ClawPanel Web in container:",
"remoteHint": "Remote server:",
"remoteDesc": "SSH into server and run:",
"domesticMirror": "For users in China who cannot access GitHub:",
"domesticMirrorShort": "China mirror:",
"promptNodeMissing": "Node.js not installed or not detected",
"promptNodeOk": "Node.js installed: {version}",
"promptGitMissing": "Git not installed",
"promptGitOk": "Git installed: {version}",
"promptCliMissing": "OpenClaw CLI not installed",
"promptCliOk": "OpenClaw CLI installed",
"promptConfigMissing": "Config file not found",
"promptConfigOk": "Config file OK: {path}",
"promptIntro": "I'm having issues installing OpenClaw. Here is the current detection status:",
"promptOutro": "Please help me analyze the issues and provide solution steps. Use tools to check the system environment if needed.",
"installOpenclaw": "Install OpenClaw",
"installingGit": "Installing...",
"gitInstallingHint": "Installing Git, please wait...",
"gitInstallSuccess": "Git installed successfully",
"gitAutoInstallFailed": "Auto install failed: {err}",
"gitManualHint": "Please install Git manually:",
"gitManualInstallHtml": "<strong>Windows:</strong> Download from <a href=\"https://git-scm.com/downloads\" target=\"_blank\" style=\"color:var(--accent)\">git-scm.com</a><br><strong>macOS:</strong> Run <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">xcode-select --install</code> or <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">brew install git</code><br><strong>Linux:</strong> <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">sudo apt install git</code> or <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">sudo yum install git</code>",
"gitAutoInstallFailedToast": "Git auto install failed, please install manually",
"enterPath": "Please enter a path",
"saving": "Saving...",
"pathSaved": "Path saved, re-detecting...",
"customPathSaved": "Custom path saved",
"saveFailed": "Save failed: {err}",
"defaultRestored": "Default path restored, re-detecting...",
"defaultRestoredToast": "Default path restored",
"restoreFailed": "Restore failed: {err}",
"initializing": "Initializing...",
"configCreated": "Config file created",
"configExists": "Config file already exists",
"initFailed": "Init failed: {err}",
"scanning": "Scanning...",
"scanningPaths": "Scanning common install paths...",
"scanNotFound": "Node.js not found, please specify path manually or download.",
"scanUseBtn": "Use",
"scanFailed": "Scan failed: {err}",
"nodeSaved": "Node.js path saved, re-detecting...",
"detecting2": "Detecting...",
"nodeFoundSaved": "Found Node.js {version}, path saved",
"nodeNotFoundAtPath": "Node executable not found in this directory, please verify the path.",
"enterNodeDir": "Please enter Node.js install directory",
"checkFailed": "Detection failed: {err}",
"installComplete": "Installation complete",
"installingGateway": "Installing Gateway service...",
"gatewayInstalled": "Gateway service installed",
"gatewayInstallFailed": "Gateway install failed: {err}",
"gwModeSet": "Gateway mode set to local",
"toolsFullEnabled": "Agent tools full permissions enabled",
"autoConfigFailed": "Auto config failed: {err}",
"installSuccess": "OpenClaw installed successfully",
"setRegistry": "Setting npm registry: {url}",
"bgTaskStarted": "Background install task started, please wait...",
"webModeLogHint": "Web mode: Install logs unavailable, please wait...",
"installScene": "Initial OpenClaw installation"
},
"about": {
"title": "About",
"desc": "ClawPanel version and project info",
"subtitle": "OpenClaw Visual Management Panel",
"sectionCommunity": "Community",
"sectionProjects": "Related Projects",
"sectionContribute": "Contribute",
"sectionLinks": "Quick Links",
"sectionAboutUs": "About Us",
"techStack": "ClawPanel is built with Tauri v2, Vanilla JS + Vite frontend, Rust backend.",
"copyright": "MIT License © 2026 Wuhan Qingchen Tianxia Network Technology Co., Ltd.",
"checkingUpdate": "Checking for updates...",
"official": "Official",
"chinese": "Chinese",
"policyAhead": "Your local installation {current} is ahead of the recommended stable version. There may be API, event, or config compatibility issues. Consider rolling back to {recommended}; if you want to keep the newer version, verify compatibility yourself and watch issues/releases.",
"policyDefault": "This panel only guarantees compatibility with the recommended stable version. If you want to try other versions or previews, verify compatibility yourself. Submit an issue if you want us to support the latest version sooner.",
"notInstalled": "Not installed",
"aheadOfRecommended": "Current version is ahead of recommended stable: {ver}",
"rollbackToRecommended": "Rollback to recommended",
"recommendedStable": "Recommended stable: {ver}",
"switchToRecommended": "Switch to recommended",
"isRecommended": "Already on recommended stable",
"latestUpstream": "Latest upstream: {ver}",
"switchVersion": "Switch Version",
"installOpenclaw": "Install OpenClaw",
"uninstall": "Uninstall",
"installPath": "Install Path",
"configExists": "Config file exists",
"configNotFound": "Config file not found",
"rollbackToRecommendedStable": "Rollback to recommended stable",
"switchToRecommendedStable": "Switch to recommended stable",
"confirmUninstall": "Are you sure you want to uninstall OpenClaw?\n\nThis will stop the Gateway service and uninstall the npm global package.\nConfig files (~/.openclaw/) are kept by default and can be deleted manually later.",
"uninstallTitle": "Uninstall OpenClaw",
"uninstallStarting": "Starting OpenClaw uninstall...",
"uninstallDone": "Uninstall complete",
"uninstallFailed": "Uninstall failed: ",
"uninstallTaskStarted": "Background uninstall task started...",
"uninstallStopping": "Stopping services...",
"uninstallRemoving": "Removing components...",
"uninstallCleaning": "Cleaning up files...",
"versionLabel": "Version",
"selectVersion": "Select Version",
"versionPickerHint": "Recommended to use the stable version bound to this panel. Switching to other versions (especially preview/latest) requires manual compatibility verification. Submit an issue if you want latest version support.",
"btnSwitch": "Switch",
"btnInstall": "Install",
"tagRecommended": " (Recommended Stable)",
"tagNeedTest": " (Verify compatibility)",
"hintInstall": "Will install {source} {ver}{tag}",
"hintCurrent": "Current",
"hintAlreadyVersion": "Already on {ver}{tag}",
"btnReinstall": "Reinstall",
"btnUpgrade": "Upgrade",
"btnDowngrade": "Downgrade",
"noVersions": "No versions found",
"recommended": "Recommended",
"current": "Current",
"hidePreview": "Hide preview ({count})",
"showPreview": "Show preview ({count})",
"operationDone": "Operation complete",
"taskStarted": "Background task started, please wait...",
"webModeNoLog": "Web mode: Install logs unavailable, please wait...",
"updateReady": "ready",
"reloadApp": "Reload App",
"rollback": "Rollback",
"rollbackSuccess": "Rolled back to embedded version, reloading...",
"rollbackFailed": "Rollback failed: ",
"newVersion": "New version",
"hotUpdate": "Hot Update",
"fullInstaller": "Full Installer",
"downloading": "Downloading...",
"downloadDone": "Update downloaded, click \"Reload App\" to apply",
"downloadFailed": "Download failed: ",
"retry": "Retry",
"needFullUpdate": "Full install package update required",
"goToWebsite": "Go to Website",
"upToDate": "Up to date",
"checkUpdateFailed": "Unable to check for updates",
"qqGroup": "QQ Group",
"wechatGroup": "WeChat Group",
"douyinGroup": "Douyin Group",
"feishuGroup": "Feishu Group",
"communityDesc": "Scan QR code or click link to join, report issues and get help",
"joinQQ": "Join QQ Group",
"joinWechat": "Join WeChat Group",
"joinDouyin": "Join Douyin Group",
"joinFeishu": "Join Feishu Group",
"joinYuanbao": "Yuanbao Community",
"joinDiscord": "Join Discord",
"discordDesc": "International Community",
"communityWelcome": "Welcome to the OpenClaw community! Report issues anytime, let's make AI Agents better together.",
"communityWelcomeIntl": "Welcome to the OpenClaw community! Share ideas, get help, and build amazing AI agents together.",
"communityNote": "2000+ members, auto-switch when full · Report issues directly in group",
"projectOpenClaw": "AI Agent framework with multi-model collaboration, tool calling, memory management",
"projectOpenClawZh": "Our maintained Chinese translation of OpenClaw, 3000+ Stars, Chinese UI + domestic mirror optimization",
"projectClawPanel": "OpenClaw visual management panel, Tauri v2 desktop app",
"projectClawApp": "Cross-platform mobile chat client, H5 + proxy server architecture, offline and streaming support",
"projectCftunnel": "Full-protocol tunnel tool, Cloud mode free HTTP/WS + Relay mode self-hosted",
"domesticMirror": "China Mirror",
"linkWebsite": "Claw Project Website",
"linkOpenClawZh": "OpenClaw Chinese Translation",
"linkClawApp": "ClawApp Mobile Client",
"linkCftunnel": "cftunnel Tunnel Tool",
"contributeDesc": "ClawPanel is open source! Report bugs via Issues, submit feature requests and code improvements via PRs.",
"submitIssue": "Submit Issue",
"submitPR": "Submit PR",
"contributeGuide": "Contributing Guide",
"viewIssues": "View Issues",
"domesticMirrorHint": "China mirror: <a href=\"https://gitee.com/QtCodeCreators/clawpanel\" target=\"_blank\" rel=\"noopener\" style=\"color:var(--accent)\">Gitee</a> (use when GitHub is inaccessible)",
"companyName": "Wuhan Qingchen Tianxia Network Technology Co., Ltd.",
"officialWebsite": "Official Website",
"productWebsite": "Product Website",
"openSourceRepo": "Open Source Repo",
"businessCoop": "Business Contact",
"contactViaWebsite": "Please contact us via our website",
"companyDesc": "We are the team behind OpenClaw Chinese Translation (3000+ Stars) and ClawPanel. We build AI Agent products and open source tools, and offer enterprise deployment and custom development services."
},
"ext": {
"title": "Extensions",
"desc": "Manage cftunnel tunneling and ClawApp mobile client",
"cftunnelTitle": "cftunnel Tunneling",
"cftunnelDesc": "Expose local services to the internet via Cloudflare Tunnel, no public IP or port mapping needed.",
"clawappTitle": "ClawApp Mobile Client",
"clawappDesc": "H5 mobile chat client connecting to Gateway via proxy server. Supports local and public access.",
"cftunnelNotInstalled": "cftunnel not installed",
"clawappNotInstalled": "ClawApp not installed",
"installBtn": "Install",
"viewDocs": "View Docs",
"status": "Status",
"running": "Running",
"stopped": "Stopped",
"version": "Version",
"unknown": "Unknown",
"routes": "routes",
"noRoutes": "No routes",
"active": "Active",
"localService": "Local service",
"startTunnel": "Start Tunnel",
"stopTunnel": "Stop Tunnel",
"viewLogs": "View Logs",
"refresh": "Refresh",
"port": "Port",
"accessUrl": "Access URL",
"publicUrl": "Public",
"openClawapp": "Open ClawApp",
"openPublicUrl": "Open Public URL",
"start": "Start",
"stop": "Stop",
"tunnelActionDone": "Tunnel {action}d",
"tunnelActionFail": "{action} failed",
"recentLogs": "Recent Logs",
"collapse": "Collapse",
"noLogs": "No logs",
"readLogsFailed": "Failed to read logs",
"preparing": "Preparing...",
"installing": "Installing...",
"installDone": "Installation complete",
"installSuccess": "{name} installed successfully",
"installFailed": "Installation failed",
"installFailedTitle": "Failed to install {name}",
"installScene": "Installing {name}",
"error": "Error",
"webModeNoLogs": "Web mode: install logs unavailable, please wait..."
},
"logs": {
"title": "Logs",
"desc": "View OpenClaw service logs",
"tabGateway": "Gateway Logs",
"tabGatewayErr": "Gateway Errors",
"tabGuardian": "Guardian",
"tabBackup": "Backup Logs",
"tabAudit": "Audit Logs",
"searchPlaceholder": "Search logs...",
"refresh": "Refresh",
"autoScroll": "Auto scroll",
"loading": "Loading logs...",
"empty": "No logs",
"loadFailed": "Failed to load logs",
"noResults": "No matching results",
"searchFailed": "Search failed"
},
"assistant": {
"modeChat": "Chat",
"modeChatDesc": "Pure conversation, no tools",
"modePlan": "Plan",
"modePlanDesc": "AI read-only analysis, tools view-only",
"modeExecute": "Execute",
"modeExecuteDesc": "Allow running commands and modifying files",
"modeUnlimited": "Unlimited",
"modeUnlimitedDesc": "Skip danger confirmations, fully automated",
"apiHintOpenai": "OpenAI compatible API (most proxies, Ollama, etc.)",
"apiHintAnthropic": "Anthropic Claude native API",
"apiHintGemini": "Google Gemini native API",
"apiBasePlaceholderOpenai": "https://api.openai.com/v1 or proxy URL",
"apiKeyPlaceholderOpenai": "sk-... or proxy key",
"defaultName": "Assistant",
"defaultPersonality": "Professional, friendly, and helpful",
"skillCheckConfig": "Check Config",
"skillCheckConfigDesc": "Check if OpenClaw config files are correct",
"skillDiagnoseGateway": "Diagnose Gateway",
"skillDiagnoseGatewayDesc": "Diagnose Gateway running status",
"skillBrowseDir": "Browse Directory",
"skillBrowseDirDesc": "Browse OpenClaw config directory structure",
"skillCheckEnv": "Check Environment",
"skillCheckEnvDesc": "Check if system meets requirements",
"skillAnalyzeLogs": "Analyze Logs",
"skillAnalyzeLogsDesc": "Analyze recent logs to find issues",
"skillFixCommon": "Auto Fix",
"skillFixCommonDesc": "Auto-detect and fix common issues",
"skillReportBug": "Report Bug",
"skillReportBugDesc": "Format as a standard GitHub Issue",
"skillPrAssistant": "PR Assistant",
"skillPrAssistantDesc": "Walk through the PR process",
"skillSkillsManager": "Skills Manager",
"skillSkillsManagerDesc": "Manage OpenClaw Skills",
"soulFileSoul": "Core persona",
"soulFileIdentity": "Identity info",
"soulFileUser": "User preferences",
"soulFileAgents": "Agent info",
"soulFileTools": "Tool descriptions",
"soulFileMemory": "Memory files",
"soulLoaded": "Loaded {loaded}/{total} files ({size})",
"soulMemoryDaily": "Daily memory",
"soulMemoryCount": "{count} entries",
"sendQueue": "Send Queue",
"clickToEdit": "Click to edit",
"edit": "Edit",
"sendNow": "Send Now",
"imageTooLarge": "Image too large, please select one under 10MB",
"imageMessage": "(image message)",
"image": "Image",
"newSession": "New Session",
"deleteSession": "Delete Session",
"noSessions": "No sessions",
"confirmDeleteSession": "Delete this session?",
"sessionList": "Sessions",
"errConfigFirst": "Please configure the API in Settings first",
"errTimeout": "Request timed out",
"errStreamTimeout": "Streaming response timed out ({seconds}s no data), connection may be lost",
"toolRunCmd": "Run command",
"toolReadFile": "Read file",
"toolWriteFile": "Write file",
"toolListDir": "List directory",
"toolSysInfo": "System info",
"toolCheckPort": "Check port",
"toolProcessList": "Process list",
"toolWebSearch": "Web search",
"toolWebSearchDesc": "Search the web for information",
"toolClawHubSearch": "Search ClawHub",
"toolClawHubInstall": "Install Skill",
"toolInstallDep": "Install dependency",
"toolFileOps": "File Operations",
"toolFileOpsDesc": "Read/write files and directories",
"toolTerminal": "Terminal",
"toolTerminalDesc": "Execute system commands",
"toolSkillsList": "Skills list",
"toolSkillsCheck": "Skills check",
"toolSkillInfo": "Skill details",
"toolFilterAll": "All",
"toolNoDesc": "No description",
"toolsAlwaysAvailable": "Always available",
"toolsHint": "Check the tool categories to enable",
"toolExecuting": "Executing...",
"toolDone": "Done",
"toolDenied": "User denied execution",
"toolExecFail": "Execution failed",
"toolInstallSuccess": "Installed successfully",
"toolInstallFail": "Installation failed",
"toolNoSkillFound": "Skill not found",
"toolUnknown": "Unknown tool",
"toolRejected": "User rejected this operation",
"toolRejectedDanger": "User rejected dangerous operation",
"askConfirm": "Confirm",
"askSkip": "Skip",
"askSkipped": "(Skipped)",
"askPlaceholder": "Select an option",
"askCustomPlaceholder": "Enter custom answer...",
"askNotSelected": "Please select an option or enter a custom answer",
"confirmRunCmd": "Will execute the following command",
"confirmCwd": "Working directory",
"confirmWriteFile": "Will write to the following file",
"confirmPreview": "Content preview",
"confirmTruncated": "(Content truncated)",
"confirmCritical": "⚠️ This is a dangerous operation, please review carefully",
"confirmAllow": "Allow",
"confirmAiRequest": "AI requests to perform the following operation",
"aiThinking": "Thinking...",
"aiProcessingRound": "Processing round {round}...",
"toolLoopQuestion": "AI has executed {round} rounds of tool calls. How to proceed?",
"toolLoopContinue": "Continue auto-executing {rounds} rounds",
"toolLoopNoBreak": "Don't ask again, keep executing",
"toolLoopRethink": "Let AI rethink",
"toolLoopStop": "Stop execution",
"autoRoundsLabel": "Auto-execution rounds",
"autoRoundsDesc": "Number of auto-execution rounds before asking",
"autoRoundsHint": "Set to 0 to ask every time",
"autoRoundsUnit": "rounds",
"autoRoundsDefault": "Default",
"autoRoundsUnlimited": "Unlimited",
"errorAnalyze": "Let AI analyze",
"errorDismiss": "Dismiss",
"errorShowLog": "Show log",
"errorHideLog": "Hide log",
"welcomeText": "Hello! I'm your AI assistant. How can I help you?",
"loading": "Loading...",
"testConnTitle": "Connection Test",
"testSuccess": "Connection successful",
"testFailed": "Connection failed",
"testNoReply": "(No reply content)",
"settingsTitle": "Assistant Settings",
"settings": "Settings",
"settingsSaved": "Settings saved",
"settingsTabApi": "API Config",
"settingsTabTools": "Tools",
"settingsTabPersona": "Persona",
"settingsTabKnowledge": "Knowledge Base",
"apiType": "API Type",
"model": "Model",
"temperature": "Temperature",
"quickSelect": "Quick Select",
"visitSite": "Visit Website",
"notConfigured": "Not configured",
"qtcoolName": "QingChen Cloud",
"qtcoolDesc": "Daily check-in for free credits, premium models as low as 20-30% of official price",
"qtcoolRecommend": "Recommended",
"qtcoolCheckin": "Daily check-in for credits",
"qtcoolLearnMore": "Learn more →",
"qtcoolKeyPlaceholder": "Paste your API Key",
"qtcoolInstructions": "No key? Go to <a>check-in page</a> to get one for free",
"qtcoolEnterKey": "Please enter API Key",
"qtcoolFillFirst": "Please fill in API Key first",
"qtcoolConnecting": "Connecting...",
"qtcoolLoadingModels": "Fetching model list...",
"qtcoolConnectFail": "Connection failed",
"qtcoolSelectModel": "Select model",
"qtcoolApply": "One-Click Config",
"qtcoolConfigured": "Configured",
"qtcoolAssistantOnly": "Configure assistant only",
"qtcoolSetMain": "Set as primary",
"qtcoolSetMainDone": "Set as primary model",
"qtcoolMainSwitched": "Primary model switched to {model}",
"qtcoolTestPass": "Connection test passed",
"qtcoolTestFail": "Connection test failed",
"qtcoolSyncTitle": "Sync to OpenClaw",
"qtcoolSyncDesc": "Sync current QingChen Cloud config to OpenClaw global config",
"qtcoolSyncTo": "Sync to OpenClaw",
"qtcoolSyncToDesc": "Write QingChen Cloud API config to OpenClaw global config file",
"qtcoolSyncToTitle": "Confirm sync to OpenClaw",
"qtcoolConfirmSync": "This will overwrite the same-name Provider in OpenClaw. Continue?",
"qtcoolSyncToDone": "Synced to OpenClaw",
"qtcoolSyncFail": "Sync failed",
"qtcoolWriteFail": "Failed to write config",
"qtcoolGatewayFail": "Gateway restart failed",
"qtcoolAllDone": "All done",
"qtcoolSyncFrom": "Read from OpenClaw",
"qtcoolSyncFromTitle": "Confirm read from OpenClaw",
"qtcoolSyncFromDesc": "Will read config from OpenClaw:\nBase URL: {baseUrl}\nAPI Key: {apiKey}\nModel: {model}",
"qtcoolConfirmRead": "Confirm Read",
"qtcoolSyncFromDone": "Read config from OpenClaw",
"qtcoolReadFail": "Read failed",
"qtcoolNoProvider": "QingChen Cloud config not found in OpenClaw",
"testFillUrlKey": "Please fill in Base URL and API Key first",
"testFillUrl": "Please fill in Base URL first",
"testFillModel": "Please fill in model name first",
"testing": "Testing...",
"testSending": "Sending test request...",
"testBtn": "Test Connection",
"fetching": "Fetching...",
"fetchingModels": "Fetching model list...",
"fetchModelsTitle": "Fetch Model List",
"fetchBtn": "Fetch List",
"noModelsFound": "No available models found",
"modelsFound": "Found {count} models",
"personaSource": "Persona Source",
"personaDefault": "Default",
"personaOpenClaw": "OpenClaw Agent",
"personaOpenClawHint": "Inherit identity and workspace from OpenClaw Agent",
"personaName": "Assistant Name",
"personaPersonality": "Personality",
"personaPersonalityHint": "Describe the assistant's personality traits",
"personaSelectAgent": "Select Agent",
"personaSelectFirst": "Please select an Agent first",
"personaSoulInherit": "Inherit Soul files",
"personaSoulHint": "Use Agent's Soul files as part of the system prompt",
"personaLoadSoul": "Load Soul",
"personaLoadingAgent": "Loading Agent info...",
"personaNoAgent": "Agent not found",
"personaNoWorkspace": "This Agent has no workspace",
"personaLoadFailed": "Load failed",
"personaLoadFailedDetail": "Failed to load Soul files",
"personaRefreshTitle": "Refresh Agent List",
"personaScanning": "Scanning...",
"kbDesc": "Custom knowledge base, AI will reference these when answering",
"kbEmpty": "No knowledge base entries",
"kbNamePlaceholder": "Knowledge base name",
"kbContentPlaceholder": "Knowledge base content...",
"kbNameRequired": "Please fill in name",
"kbContentRequired": "Please fill in content",
"kbSave": "Save",
"kbSummary": "Summary",
"kbLines": "{count} lines",
"kbClickEnable": "Click to enable",
"kbClickDisable": "Click to disable",
"importTitle": "Import Config",
"importBtn": "Import OpenClaw Config",
"importScanning": "Scanning local OpenClaw config...",
"importNoConfig": "No importable config found",
"importNoModels": "No models",
"importGlobal": "Global Config",
"importFound": "Found {count} importable configs",
"importDone": "Imported {name} ({count} models)",
"importFail": "Import failed",
"stopped": "Stopped",
"requestInterrupted": "Request interrupted",
"retry": "Retry",
"continueInput": "Continue Input",
"retryHint": "Request failed (auto-retried 3 times)",
"retrying": "Retrying...",
"waitForReply": "Please wait for AI reply before sending images",
"waitForReplyShort": "Please wait for reply",
"copyText": "Copy Text",
"copyMd": "Copy Markdown",
"viewRaw": "View Raw Data",
"viewDebug": "View Request/Response",
"copiedText": "Text copied",
"copiedMd": "Markdown copied",
"rawData": "Raw Message Data",
"debugInfo": "Request/Response Debug",
"guideTag": "Built-in AI",
"guideTitle": "This is ClawPanel's built-in AI assistant",
"guideDesc": ", independent of OpenClaw, using the API configured in Settings.",
"guideHint": "To chat with OpenClaw Agents, go to the Live Chat page.",
"uploadImage": "Upload Image",
"inputPlaceholder": "Describe your issue, paste logs, screenshots or error messages...",
"send": "Send",
"inputHint": "Enter to send · Shift+Enter for newline · Paste/drag images · Independent of OpenClaw",
"autoSwitchExecute": "Auto-switched to Execute mode"
},
"toast": {
"copySuccess": "Copied to clipboard",
"copyFailed": "Copy failed"
},
"modal": {
"confirmTitle": "Confirm",
"confirmOk": "OK",
"confirmCancel": "Cancel"
},
"kernel": {
"floorBlocker": {
"title": "Kernel version too old",
"message": "OpenClaw kernel {current} is below the minimum supported version {floor}. Some features may not work.",
"targetHint": "Upgrading to {target} is recommended for the best experience.",
"goUpgrade": "Upgrade now",
"continueReadonly": "Continue (read-only)",
"readonlyHint": "In read-only mode, write operations are blocked client-side to avoid corrupting older kernel configs."
},
"badge": {
"currentKernel": "Kernel",
"featuresEnabled": "{enabled}/{total} features enabled",
"belowTarget": "Below recommended",
"latest": "Latest",
"unknown": "Unknown"
},
"upgrade": {
"title": "Upgrade OpenClaw kernel",
"confirmMessage": "Upgrading from {from} to {to}.\nThis takes about 2 minutes; Gateway will restart automatically. Continue?",
"starting": "Upgrading to {version}...",
"successMessage": "Kernel upgrade complete",
"successToast": "Kernel upgraded successfully",
"failurePrefix": "Kernel upgrade failed:"
},
"upgradeHint": {
"title": "New kernel available",
"subtitle": "{from} → {to}, click to upgrade",
"dismissTooltip": "Don't remind me this session"
},
"tooOldForProtocol": "Gateway kernel is too old and does not support the handshake protocol used by this ClawPanel. Please upgrade the OpenClaw kernel to the recommended version ({recommended}) and retry. You can upgrade from \"Services → OpenClaw → Upgrade\"."
},
"cliConflict": {
"title": "Detected {count} possibly conflicting OpenClaw installation(s)",
"desc": "Your PATH has OpenClaw installations not managed by ClawPanel (e.g. Cherry Studio bundled, legacy npm global). They can cause terminal commands to pick up old versions, triggering schema mismatches and doctor --fix hangs.",
"viewDetails": "View details",
"hideDetails": "Hide details",
"quarantineAll": "Quarantine all",
"quarantining": "Quarantining…",
"quarantineOne": "Quarantine",
"dismiss": "Dismiss",
"dismissedHint": "Dismissed for this session. Next launch will scan again.",
"quarantineOk": "Quarantined {count} item(s)",
"quarantinePartial": "{count} item(s) failed",
"quarantineFail": "Quarantine failed: {error}",
"quarantineOneOk": "Quarantined",
"footnote": "Quarantine = rename to .disabled-by-clawpanel-<timestamp>.bak (not deleted). To restore, rename the .bak back to its original name in the same directory."
}
}