设置窗口多语言处理

This commit is contained in:
xintaofei
2026-03-07 11:07:06 +08:00
parent 28babff52c
commit 5ca9fd0b2e
8 changed files with 1861 additions and 453 deletions

View File

@@ -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..."
}