设置窗口多语言处理
This commit is contained in:
@@ -69,6 +69,402 @@
|
||||
"installSuccess": "Update installed. Relaunching app.",
|
||||
"installFailed": "Update failed: {message}"
|
||||
},
|
||||
"ShortcutSettings": {
|
||||
"sectionTitle": "Shortcuts",
|
||||
"resetDefault": "Reset defaults",
|
||||
"recordInstruction": "Click the right-side button, then press a key combination. Use Ctrl/Cmd, Alt, and Shift. Press Esc to cancel recording.",
|
||||
"recording": "Press shortcut...",
|
||||
"toasts": {
|
||||
"conflict": "Shortcut is already used by \"{title}\"",
|
||||
"updated": "Shortcut updated",
|
||||
"invalid": "Invalid shortcut, please try again",
|
||||
"reset": "Default shortcuts restored"
|
||||
},
|
||||
"actions": {
|
||||
"toggle_search": {
|
||||
"title": "Open Search",
|
||||
"description": "Show or hide the conversation search panel"
|
||||
},
|
||||
"toggle_sidebar": {
|
||||
"title": "Toggle Left Sidebar",
|
||||
"description": "Show or hide the conversation list sidebar"
|
||||
},
|
||||
"toggle_terminal": {
|
||||
"title": "Toggle Terminal",
|
||||
"description": "Show or hide the bottom terminal panel"
|
||||
},
|
||||
"new_terminal_tab": {
|
||||
"title": "New Terminal",
|
||||
"description": "Create a new terminal tab when focus is on terminal"
|
||||
},
|
||||
"close_current_terminal_tab": {
|
||||
"title": "Close Current Terminal",
|
||||
"description": "Close the current terminal tab when focus is on terminal"
|
||||
},
|
||||
"toggle_aux_panel": {
|
||||
"title": "Toggle Right Panel",
|
||||
"description": "Show or hide the auxiliary info panel"
|
||||
},
|
||||
"new_conversation": {
|
||||
"title": "New Conversation",
|
||||
"description": "Create a new conversation tab in current folder"
|
||||
},
|
||||
"open_folder": {
|
||||
"title": "Open Folder",
|
||||
"description": "Open folder picker and open in a new window"
|
||||
},
|
||||
"open_settings": {
|
||||
"title": "Open Settings",
|
||||
"description": "Open settings window"
|
||||
},
|
||||
"close_current_tab": {
|
||||
"title": "Close Current Tab",
|
||||
"description": "Close current conversation or file tab"
|
||||
},
|
||||
"close_all_file_tabs": {
|
||||
"title": "Close All File Tabs",
|
||||
"description": "Close all file tabs in file mode only"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SkillsSettings": {
|
||||
"title": "Skills",
|
||||
"description": "Select a skill on the left. The right side previews Markdown by default; switch to edit to modify and save.",
|
||||
"loadingAgents": "Loading agents that support Skills...",
|
||||
"emptyNoManageableAgents": "No agents available for Skills management.",
|
||||
"managedTarget": "Managed target",
|
||||
"selectAgentPlaceholder": "Select an agent",
|
||||
"searchPlaceholder": "Search by name / ID / path...",
|
||||
"skillsList": "Skills list",
|
||||
"loadingSkills": "Loading skills...",
|
||||
"agentNotSupported": "Current agent does not support Skills management.",
|
||||
"emptySkills": "No skills yet. Click \"New Skill\" to create one.",
|
||||
"newSkillTitle": "New Skill",
|
||||
"skillInfo": "Skill Info",
|
||||
"skillIdPlaceholder": "skill-id (letters/numbers/-/_/.)",
|
||||
"skillsDirectoryWithPath": "Skills directory: {path}",
|
||||
"skillsDirectoryNeedId": "Skills directory: enter Skill ID to generate full path",
|
||||
"markdownContent": "Markdown Content",
|
||||
"editingStatus": "Editing",
|
||||
"previewStatus": "Previewing",
|
||||
"contentPlaceholder": "Enter Skill markdown content...",
|
||||
"metadataTitle": "Skills Metadata",
|
||||
"onlyYamlMetadata": "This skill only contains YAML metadata.",
|
||||
"emptyContentHint": "No content yet. Click \"Edit\" to start.",
|
||||
"loadingSkill": "Loading skill...",
|
||||
"emptyNoAgents": "No available agent.",
|
||||
"actions": {
|
||||
"preview": "Preview",
|
||||
"edit": "Edit",
|
||||
"openInWindow": "Open in new window",
|
||||
"delete": "Delete",
|
||||
"deleting": "Deleting...",
|
||||
"refresh": "Refresh",
|
||||
"newSkill": "New Skill",
|
||||
"reset": "Reset",
|
||||
"save": "Save",
|
||||
"saving": "Saving...",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"deleteDialog": {
|
||||
"title": "Delete Skill",
|
||||
"confirm": "Delete current skill? This action cannot be undone.",
|
||||
"confirmWithNamePrefix": "Delete skill",
|
||||
"confirmWithNameSuffix": "? This action cannot be undone."
|
||||
},
|
||||
"toasts": {
|
||||
"loadFailed": "Failed to load skill",
|
||||
"openFolderFailed": "Failed to open folder",
|
||||
"noSkillDirectory": "No available Skills directory found for current agent",
|
||||
"nameRequired": "Skill name cannot be empty",
|
||||
"updated": "Skill updated",
|
||||
"created": "Skill created",
|
||||
"saveFailed": "Failed to save skill",
|
||||
"deleted": "Skill deleted",
|
||||
"deleteFailed": "Failed to delete skill"
|
||||
},
|
||||
"templates": {
|
||||
"gemini": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Skill Name\n\nInstructions for the agent when this skill is active.\n\n## Workflow\n\n1. Add actionable step one.\n2. Add actionable step two.\n",
|
||||
"openCode": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Steps\n\n1. Add actionable step one.\n2. Add actionable step two.\n",
|
||||
"openClaw": "---\nname: example-skill\ndescription: Describe when this skill should be used.\nuser-invocable: true\ndisable-model-invocation: false\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n",
|
||||
"default": "# Skill: example-skill\n\n## When to use\n\n- Describe trigger conditions.\n\n## Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n"
|
||||
}
|
||||
},
|
||||
"McpSettings": {
|
||||
"loading": "Loading...",
|
||||
"summary": {
|
||||
"missingCommand": "(missing command)",
|
||||
"missingUrl": "(missing url)"
|
||||
},
|
||||
"protocol": {
|
||||
"stdio": "Stdio"
|
||||
},
|
||||
"errors": {
|
||||
"selectInstallProtocol": "Please select an install protocol",
|
||||
"fieldRequired": "{field} is required",
|
||||
"fieldNeedsBoolean": "{field} must be true or false",
|
||||
"fieldNeedsNumber": "{field} must be a number",
|
||||
"fieldNeedsInteger": "{field} must be an integer",
|
||||
"fieldInvalidJson": "{field} has invalid JSON: {message}",
|
||||
"fieldOutOfRange": "{field} value is out of allowed range",
|
||||
"jsonEmpty": "{name} cannot be empty",
|
||||
"jsonInvalid": "{name} is not valid JSON: {message}",
|
||||
"jsonMustBeObject": "{name} must be a JSON object"
|
||||
},
|
||||
"jsonNames": {
|
||||
"localConfig": "MCP Config",
|
||||
"installConfig": "Install Config"
|
||||
},
|
||||
"toasts": {
|
||||
"uninstalled": "MCP uninstalled",
|
||||
"uninstallFailed": "Uninstall failed: {message}",
|
||||
"selectAtLeastOneApp": "Please select at least one target app",
|
||||
"saveSuccess": "Saved",
|
||||
"saveFailed": "Save failed: {message}",
|
||||
"installed": "{name} installed",
|
||||
"installFailed": "Install failed: {message}"
|
||||
},
|
||||
"installDialog": {
|
||||
"title": "Confirm MCP Installation",
|
||||
"descriptionWithName": "Install {name} to local configuration.",
|
||||
"description": "Select target apps for installation.",
|
||||
"protocol": "Protocol",
|
||||
"selectProtocol": "Select protocol",
|
||||
"parameters": "Configuration Parameters",
|
||||
"booleanPlaceholder": "Please select true/false",
|
||||
"selectOneValue": "Select a value",
|
||||
"targetApps": "Target Apps"
|
||||
},
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"confirmInstall": "Confirm Install",
|
||||
"installing": "Installing",
|
||||
"uninstall": "Uninstall",
|
||||
"uninstalling": "Uninstalling",
|
||||
"viewDetails": "View Details",
|
||||
"save": "Save",
|
||||
"saving": "Saving",
|
||||
"install": "Install"
|
||||
},
|
||||
"tabs": {
|
||||
"local": "Local MCP",
|
||||
"market": "MCP Marketplace"
|
||||
},
|
||||
"local": {
|
||||
"filterPlaceholder": "Filter local MCP...",
|
||||
"loadFailed": "Load failed: {message}",
|
||||
"empty": "No local MCP detected.",
|
||||
"description": "Local MCP configuration can be edited and saved directly.",
|
||||
"enabledApps": "Enabled Apps",
|
||||
"configJson": "MCP Config (JSON)"
|
||||
},
|
||||
"market": {
|
||||
"selectMarketplace": "Select marketplace",
|
||||
"searchPlaceholder": "Search MCP...",
|
||||
"searchFailed": "Search failed: {message}",
|
||||
"loadingList": "Loading MCP list...",
|
||||
"empty": "No MCP results.",
|
||||
"loadingDetail": "Loading marketplace details...",
|
||||
"detailLoadFailed": "Failed to load details: {message}",
|
||||
"owner": "Owner: {owner}",
|
||||
"namespace": "Namespace: {namespace}",
|
||||
"defaultInstallProtocol": "Default Install Protocol",
|
||||
"currentOptionParameterCount": "Current option parameter count: {count}",
|
||||
"installConfigDescription": "Install Config (JSON, editable before install; edits will override protocol/parameter form)",
|
||||
"selectLeftToView": "Select a marketplace MCP on the left to view details."
|
||||
},
|
||||
"badges": {
|
||||
"verified": "Verified",
|
||||
"remote": "Remote",
|
||||
"hasHomepage": "Has Homepage",
|
||||
"uses": "{count} uses",
|
||||
"deployed": "Deployed",
|
||||
"notDeployed": "Not Deployed"
|
||||
},
|
||||
"selectLeftMcp": "Select an MCP on the left."
|
||||
},
|
||||
"AcpAgentSettings": {
|
||||
"title": "Agent SDK Management",
|
||||
"description": "Manage Agent SDK connection, enabled state, environment variables, config management and version preflight info in one place.",
|
||||
"loadingAgents": "Loading agent list...",
|
||||
"agentList": "Agent List",
|
||||
"emptyNoAgent": "No available agent.",
|
||||
"configManagement": "Config Management",
|
||||
"envVars": "Environment Variables",
|
||||
"nativeJsonConfig": "Native JSON Config",
|
||||
"modelHintDefault": "Leave empty to use system default model.",
|
||||
"generalConfigDescriptionClaude": "Supports quick configuration for API URL, API Key and Claude models, and syncs with native JSON config.",
|
||||
"generalConfigDescriptionDefault": "Supports important config input (API URL, API Key, Model) and native JSON config management.",
|
||||
"actions": {
|
||||
"dragSort": "Drag to reorder",
|
||||
"dragSortAgent": "Drag to reorder {name}",
|
||||
"refreshCheck": "Refresh check",
|
||||
"refreshCheckAgent": "Refresh check {name}",
|
||||
"clickEnable": "Click to enable {name}",
|
||||
"clickDisable": "Click to disable {name}",
|
||||
"install": "Install",
|
||||
"upgrade": "Upgrade",
|
||||
"uninstall": "Uninstall",
|
||||
"uninstalling": "Uninstalling...",
|
||||
"saveEnvVars": "Save environment variables",
|
||||
"saving": "Saving...",
|
||||
"saveCodexConfig": "Save Codex Config",
|
||||
"saveGeminiConfig": "Save Gemini Config",
|
||||
"saveOpenCodeConfig": "Save OpenCode Config",
|
||||
"saveOpenClawConfig": "Save OpenClaw Config",
|
||||
"saveConfigManagement": "Save Config Management",
|
||||
"saveCurrentProvider": "Save Current Provider",
|
||||
"showApiKey": "Show API Key",
|
||||
"hideApiKey": "Hide API Key",
|
||||
"showKey": "Show Key",
|
||||
"hideKey": "Hide Key",
|
||||
"showToken": "Show Token",
|
||||
"hideToken": "Hide Token",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"deleting": "Deleting...",
|
||||
"confirmDelete": "Confirm Delete",
|
||||
"confirmUninstall": "Confirm Uninstall"
|
||||
},
|
||||
"status": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unchecked": "Unchecked",
|
||||
"agentEnabledAria": "{name} enabled",
|
||||
"agentEnabledSwitch": "{name} enable switch"
|
||||
},
|
||||
"preflight": {
|
||||
"count": "Preflight items: {count}",
|
||||
"notRun": "Checks have not run yet."
|
||||
},
|
||||
"codex": {
|
||||
"configDescription": "Supports quick configuration for API URL, API Key, model name and reasoning effort, and syncs with `auth.json` / `config.toml`.",
|
||||
"selectProvider": "Select Provider",
|
||||
"modelName": "Model Name",
|
||||
"selectReasoningEffort": "Select Reasoning Effort",
|
||||
"enableWebsocket": "Enable WebSocket",
|
||||
"enableWebsocketAria": "Enable WebSocket for Codex Provider",
|
||||
"authJsonNative": "auth.json (native)",
|
||||
"configTomlNative": "config.toml (native)"
|
||||
},
|
||||
"gemini": {
|
||||
"authConfig": "Gemini Auth Config",
|
||||
"authConfigDescription": "Aligned with Gemini CLI authentication docs, supporting custom endpoint, Google login, Gemini API Key and Vertex AI (ADC / service account / API Key).",
|
||||
"authMode": "Auth Mode",
|
||||
"selectAuthMode": "Select auth mode",
|
||||
"viewAuthDoc": "View auth docs",
|
||||
"mode": {
|
||||
"custom": "Custom Endpoint",
|
||||
"loginGoogle": "Google Login (OAuth)",
|
||||
"vertexServiceAccount": "Vertex AI (Service Account)"
|
||||
},
|
||||
"hint": {
|
||||
"custom": "Fill API URL, API Key and Model, mapped to GOOGLE_GEMINI_BASE_URL / GEMINI_API_KEY / GEMINI_MODEL.",
|
||||
"loginGoogle": "Run gemini in terminal and complete Google login first; API key is not required.",
|
||||
"geminiApiKey": "Fill GEMINI_API_KEY when using Gemini API.",
|
||||
"vertexAdc": "Use gcloud ADC; GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION are recommended.",
|
||||
"vertexServiceAccount": "Set service account JSON path to GOOGLE_APPLICATION_CREDENTIALS.",
|
||||
"vertexApiKey": "Fill GOOGLE_API_KEY when using Vertex AI API key."
|
||||
}
|
||||
},
|
||||
"openCode": {
|
||||
"configManagement": "OpenCode Config Management",
|
||||
"configDescription": "Aligned with OpenCode `provider` schema, supports multi-provider management and two-way sync with native JSON files.",
|
||||
"providerManagement": "Provider Management",
|
||||
"providerCount": "{count} providers",
|
||||
"addProvider": "Add Provider",
|
||||
"emptyProvider": "No provider yet. Enter an ID then click \"Add Provider\".",
|
||||
"providerEnabledState": "{providerId} enabled state",
|
||||
"selectProviderNpm": "Select provider.npm",
|
||||
"notSet": "Not set",
|
||||
"modelManagement": "Model Management",
|
||||
"modelCount": "{count} models",
|
||||
"modelDescription": "Aligned with OpenCode `provider.models`. Fast management currently supports `name` / `id`; other advanced fields are preserved and can be edited in native JSON below.",
|
||||
"addModel": "Add model",
|
||||
"emptyModel": "No model yet. Enter model id then click \"Add model\".",
|
||||
"modelId": "Model ID",
|
||||
"modelName": "Model Name",
|
||||
"deleteModel": "Delete model {modelId}",
|
||||
"nativeJsonConfig": "OpenCode Native JSON Config"
|
||||
},
|
||||
"openClaw": {
|
||||
"gatewayConfig": "Gateway Config",
|
||||
"gatewayDescription": "Configure OpenClaw Gateway connection. Supports local or remote gateway.",
|
||||
"gatewayUrlHint": "Leave empty to use gateway.remote.url from local openclaw config.",
|
||||
"gatewayTokenPlaceholder": "Gateway auth token",
|
||||
"gatewayTokenHint": "Use token-file instead of plain token when possible; configure via openclaw CLI.",
|
||||
"sessionKeyHint": "Optional. Specify gateway session key; leave empty to auto-assign isolated session."
|
||||
},
|
||||
"claude": {
|
||||
"mainModel": "Main Model",
|
||||
"reasoningModel": "Reasoning Model (thinking)",
|
||||
"haikuDefaultModel": "Default Haiku Model",
|
||||
"sonnetDefaultModel": "Default Sonnet Model",
|
||||
"opusDefaultModel": "Default Opus Model"
|
||||
},
|
||||
"dialogs": {
|
||||
"confirmDeleteProvider": "Delete Provider {providerId}?",
|
||||
"confirmDeleteProviderDescription": "OpenCode config and auth JSON will be updated together. This action cannot be undone.",
|
||||
"confirmUninstall": "Uninstall {name}?",
|
||||
"confirmUninstallDescription": "This removes local installed version. You can reinstall later."
|
||||
},
|
||||
"errors": {
|
||||
"nativeJsonMustBeObject": "Native JSON config must be an object",
|
||||
"nativeJsonInvalid": "Native JSON config format error: {message}",
|
||||
"openCodeAuthMustBeObject": "OpenCode auth.json must be a JSON object",
|
||||
"openCodeAuthInvalid": "OpenCode auth.json format error: {message}",
|
||||
"authMustBeObject": "auth.json must be a JSON object",
|
||||
"authInvalid": "auth.json format error: {message}",
|
||||
"providerIdPattern": "Provider ID only supports letters, numbers, underscore, dot and hyphen",
|
||||
"providerExists": "Provider '{providerId}' already exists",
|
||||
"modelIdPattern": "Model ID only supports letters, numbers, underscore, dot, colon and hyphen",
|
||||
"modelExists": "Model '{modelId}' already exists"
|
||||
},
|
||||
"warnings": {
|
||||
"nativeJsonRecoveredStructured": "Native JSON config is invalid; reset to structured config",
|
||||
"nativeJsonRecoveredOpenCode": "Native JSON config is invalid; reset to OpenCode structured config",
|
||||
"openCodeAuthRecovered": "OpenCode auth.json is invalid; reset to default config",
|
||||
"authRecoveredStructured": "auth.json is invalid; reset to structured config"
|
||||
},
|
||||
"toasts": {
|
||||
"agentActionCompleted": "{name} {action} completed",
|
||||
"agentActionFailed": "{name} {action} failed",
|
||||
"localVersion": "Local version: {version}",
|
||||
"installCompletedVersionLater": "Install completed, version will update on next check",
|
||||
"uninstallCompleted": "{name} uninstall completed",
|
||||
"uninstallFailed": "{name} uninstall failed",
|
||||
"localVersionRemoved": "Local version removed",
|
||||
"saveAgentOrderFailed": "Failed to save Agent order",
|
||||
"saveAgentSwitchFailed": "Failed to save Agent switch",
|
||||
"saveEnvFailed": "Failed to save environment variables",
|
||||
"codexSaved": "Codex config saved",
|
||||
"saveCodexNativeFailed": "Failed to save Codex native config",
|
||||
"geminiSaved": "Gemini config saved",
|
||||
"saveGeminiFailed": "Failed to save Gemini config",
|
||||
"providerDeleted": "Provider {providerId} deleted",
|
||||
"providerDeleteFailed": "Failed to delete Provider {providerId}",
|
||||
"providerSaved": "Provider {providerId} saved",
|
||||
"saveProviderFailed": "Failed to save Provider {providerId}",
|
||||
"openCodeConfigSynced": "OpenCode config and auth JSON have been synced.",
|
||||
"openCodeSaved": "OpenCode config saved",
|
||||
"saveOpenCodeFailed": "Failed to save OpenCode config",
|
||||
"openClawSaved": "OpenClaw config saved",
|
||||
"saveOpenClawFailed": "Failed to save OpenClaw config",
|
||||
"configSaved": "Config saved",
|
||||
"saveConfigManagementFailed": "Failed to save config management"
|
||||
},
|
||||
"version": {
|
||||
"statusLabel": "Version Status",
|
||||
"notInstalled": "Not installed",
|
||||
"remoteLocal": "Remote: {remoteVersion} · Local: {localVersion}",
|
||||
"platformUnsupported": "{versionText}. Current platform does not support this agent.",
|
||||
"clickInstall": "{versionText}. Click Install on the right.",
|
||||
"localUnrecognized": "{versionText}. Local version is not comparable; try upgrade to overwrite install.",
|
||||
"upgradeAvailable": "{versionText}. Upgrade available.",
|
||||
"remoteUnavailable": "{versionText}. Remote version is currently unavailable.",
|
||||
"latest": "{versionText}. Already latest."
|
||||
}
|
||||
},
|
||||
"SettingsPages": {
|
||||
"agentsLoading": "Loading agent settings..."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user