Files
codeg/src/i18n/messages/en.json

2167 lines
89 KiB
JSON

{
"Language": {
"followSystem": "Follow System",
"english": "English",
"simplifiedChinese": "Simplified Chinese",
"traditionalChinese": "Traditional Chinese",
"japanese": "Japanese",
"korean": "Korean",
"spanish": "Spanish",
"german": "German",
"french": "French",
"portuguese": "Portuguese",
"arabic": "Arabic"
},
"GitCredentialDialog": {
"title": "Authentication Required",
"description": "The remote server requires credentials. Enter your username and password (or personal access token).",
"username": "Username",
"usernamePlaceholder": "Username or email",
"password": "Password / Token",
"passwordPlaceholder": "Password or personal access token",
"passwordHint": "For non-GitHub servers, enter your username and password.",
"cancel": "Cancel",
"authenticate": "Authenticate",
"authenticating": "Authenticating...",
"invalidCredentials": "Invalid credentials. Please try again.",
"saveCredentials": "Save credentials for future operations",
"githubTitle": "GitHub Authentication",
"githubDescription": "Enter a personal access token to authenticate with GitHub. The token will be validated and saved to your accounts.",
"githubToken": "Personal Access Token",
"githubTokenPlaceholder": "ghp_xxxxxxxxxxxx",
"githubTokenHint": "Generate a token at GitHub → Settings → Developer settings → Personal access tokens.",
"githubAuthenticate": "Validate & Connect",
"generateToken": "Generate token"
},
"SettingsShell": {
"title": "Settings",
"preferences": "Preferences",
"nav": {
"appearance": "Appearance",
"agents": "Agents",
"mcp": "MCP",
"skills": "Skills",
"shortcuts": "Shortcuts",
"version_control": "Version Control",
"system": "System",
"chat_channels": "Chat Channels",
"web_service": "Web Service",
"model_providers": "Model Providers",
"experts": "Experts",
"quick_messages": "Quick Messages"
}
},
"AppearanceSettings": {
"sectionTitle": "Theme Appearance",
"sectionDescription": "Choose light, dark, or follow system. Settings are saved automatically.",
"themeMode": "Theme mode",
"placeholder": "Select theme mode",
"system": "Follow system",
"light": "Light",
"dark": "Dark",
"currentTheme": "Current effective theme: {theme}",
"resolvedTheme": {
"light": "Light",
"dark": "Dark",
"unknown": "--"
},
"themeColor": {
"sectionTitle": "Theme color",
"sectionDescription": "Pick a color palette for accents, buttons, and highlights.",
"current": "Current color: {color}",
"options": {
"neutral": "Neutral",
"zinc": "Zinc",
"slate": "Slate",
"stone": "Stone",
"gray": "Gray",
"red": "Red",
"rose": "Rose",
"orange": "Orange",
"green": "Green",
"blue": "Blue",
"yellow": "Yellow",
"violet": "Violet"
}
},
"zoomLevel": {
"sectionTitle": "Window zoom",
"sectionDescription": "Scale the entire interface. Applies immediately and persists per device.",
"placeholder": "Select zoom level",
"default": "Default",
"current": "Current zoom: {zoom}%"
},
"resetToDefaults": "Reset to defaults",
"resetHint": "Reset theme color and window zoom to defaults."
},
"SystemSettings": {
"loading": "Loading...",
"sectionTitle": "System Management",
"sectionDescription": "Manage network proxy, app updates and language preferences.",
"proxyTitle": "Network Proxy",
"proxyDescription": "When enabled, subsequent network requests prefer this proxy (including ACP chat, agent installation and Git remote operations).",
"loadFailed": "Load failed: {message}",
"enableProxy": "Enable system proxy",
"proxyAddress": "Proxy address",
"proxyHint": "Supports http(s)/socks5, example: {example}. Only effective when system proxy is enabled.",
"save": "Save",
"saving": "Saving...",
"proxyRequired": "Proxy URL is required when proxy is enabled",
"saveSuccess": "System proxy settings saved",
"saveFailed": "Save failed: {message}",
"languageTitle": "Language",
"languageDescription": "Set app language. When following system locale, unsupported languages fall back to English.",
"appLanguage": "App language",
"languageSaveSuccess": "Language settings saved",
"languageSaveFailed": "Failed to save language settings: {message}",
"renderingTitle": "Rendering",
"renderingDescription": "Disable hardware acceleration if the app shows a black screen or rendering glitches (common on certain AMD GPUs or Intel integrated GPUs). Only takes effect on the Windows desktop build.",
"disableHardwareAcceleration": "Disable hardware acceleration",
"renderingSaveFailed": "Failed to save rendering settings: {message}",
"restartRequired": "Saved. Restart the app for the change to take effect.",
"restartNow": "Restart now",
"restartFailed": "Failed to restart: {message}",
"updateTitle": "App Update",
"versionTitle": "Software Update",
"updateDescription": "Check the configured release source for newer versions and install directly when available.",
"currentVersion": "Current version",
"upgradableVersion": "Latest version",
"none": "None",
"lastChecked": "Last checked: {time}",
"updateError": "Update error: {message}",
"checking": "Checking...",
"checkUpdate": "Check for updates",
"updating": "Installing...",
"downloading": "Downloading...",
"upgradeTo": "Upgrade to v{version}",
"foundUpdate": "New version v{version} found",
"alreadyLatest": "You're on the latest version",
"checkUpdateFailed": "Failed to check for updates: {message}",
"installSuccess": "Update installed. Relaunching app.",
"installFailed": "Update failed: {message}",
"updateErrors": {
"sourceUnavailable": "Cannot reach the update source. Check your network or proxy and try again.",
"network": "Network connection failed. Check your network or proxy and try again.",
"downloadFailed": "Failed to download update package. Please try again later.",
"installFailed": "Failed to install update. Please close the app and try again.",
"unknown": "Update failed. Please try again later."
}
},
"VersionControlSettings": {
"loading": "Loading...",
"sectionTitle": "Version Control",
"sectionDescription": "Configure Git executable and manage GitHub accounts.",
"gitTitle": "Git Configuration",
"gitDescription": "Configure the Git executable used by the application.",
"gitDetected": "Git detected",
"gitNotFound": "Git not found on this system",
"gitVersion": "Version",
"gitPath": "Path",
"customGitPath": "Custom Git Path",
"customGitPathPlaceholder": "/usr/bin/git",
"customGitPathHint": "Leave empty to use the auto-detected path.",
"test": "Test",
"testing": "Testing...",
"testSuccess": "Git executable is valid.",
"testFailed": "Git test failed: {message}",
"save": "Save",
"saving": "Saving...",
"saveSuccess": "Git settings saved.",
"saveFailed": "Failed to save: {message}",
"githubTitle": "GitHub Accounts",
"githubDescription": "Manage GitHub accounts for authentication. Tokens are stored locally.",
"noAccounts": "No GitHub accounts configured.",
"addAccount": "Add Account",
"serverUrl": "Server URL",
"serverUrlPlaceholder": "https://github.com",
"token": "Personal Access Token",
"tokenPlaceholder": "ghp_xxxxxxxxxxxx",
"generateToken": "Generate token",
"tokenHint": "Generate a token at GitHub → Settings → Developer settings → Personal access tokens.",
"validateAndAdd": "Validate & Add",
"validating": "Validating...",
"addSuccess": "Account {username} added successfully.",
"addFailed": "Failed to add account: {message}",
"testConnection": "Test",
"connectionSuccess": "Connection successful.",
"connectionFailed": "Connection failed: {message}",
"setDefault": "Set Default",
"defaultLabel": "Default",
"defaultSet": "Default account updated.",
"removeAccount": "Remove",
"removeConfirmTitle": "Remove Account",
"removeConfirmMessage": "Are you sure you want to remove the account \"{username}\"?",
"removeConfirm": "Remove",
"removeCancel": "Cancel",
"removeSuccess": "Account removed.",
"scopes": "Scopes",
"loadFailed": "Failed to load settings: {message}",
"gitAccount": {
"sectionTitle": "Git Accounts",
"sectionDescription": "Manage credentials for non-GitHub Git servers (GitLab, Bitbucket, self-hosted, etc.).",
"noAccounts": "No Git server accounts configured.",
"addAccount": "Add Account",
"addTitle": "Add Git Account",
"addDescription": "Enter the server address, username, and password or access token.",
"serverUrl": "Server URL",
"serverUrlPlaceholder": "https://gitlab.example.com",
"username": "Username",
"usernamePlaceholder": "Username or email",
"password": "Password / Token",
"passwordPlaceholder": "Password or access token",
"passwordHint": "Enter your password or a personal access token for the server.",
"add": "Add",
"serverRequired": "Server URL is required.",
"usernameRequired": "Username is required.",
"passwordRequired": "Password is required."
}
},
"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"
},
"send_message": {
"title": "Send Message",
"description": "Send the current message in the input box"
},
"newline_in_message": {
"title": "Newline in Message",
"description": "Insert a newline in the message input box"
}
}
},
"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.",
"noSelectionHint": "Select a skill on the left, or click \"New Skill\" to create one.",
"systemBadge": "System",
"systemHint": "Built-in CLI skill · read-only",
"scope": {
"global": "Global",
"folder": "Folder",
"selectFolderPlaceholder": "Select a folder",
"noFolders": "No folders found",
"pickFolderHint": "Select a folder to view its skills."
},
"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",
"saveClineConfig": "Save Cline Config"
},
"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`.",
"authMode": "Auth Mode",
"chatgptSubscription": "Official Subscription",
"chatgptSubscriptionHint": "Log in with ChatGPT official subscription, no API Key required",
"apiKeyHint": "Connect using API Key to OpenAI or compatible API services",
"selectProvider": "Select Provider",
"modelName": "Model Name",
"selectReasoningEffort": "Select Reasoning Effort",
"enableWebsocket": "Enable WebSocket",
"enableWebsocketAria": "Enable WebSocket for Codex Provider",
"enableSkills": "Enable Skills",
"enableSkillsAria": "Enable Skills for Codex",
"enableFast": "Enable Fast",
"enableFastAria": "Enable Fast service tier for Codex",
"authJsonNative": "auth.json (native)",
"configTomlNative": "config.toml (native)",
"loginButton": "Log in with ChatGPT",
"loginRequesting": "Requesting login code...",
"loginStep1": "Open the following URL in your browser:",
"loginStep2": "Enter the code below:",
"loginPolling": "Waiting for authorization...",
"loginCancel": "Cancel",
"loginSuccess": "Logged in successfully, config saved!",
"loginFailed": "Login failed: {message}",
"loginRetry": "Retry",
"loginCodeCopied": "Code copied",
"loggedIn": "Account logged in",
"loginRelogin": "Re-login / Switch account",
"loginTimeout": "Login timed out, please try again",
"loginSaveFailed": "Login succeeded but failed to save config"
},
"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",
"mainModel": "Main Model",
"smallModel": "Small Model",
"noMatchingModels": "No matching models"
},
"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."
},
"authModeOfficialSubscription": "Official Subscription",
"authModeCustomEndpoint": "Custom Endpoint",
"authModeCustomEndpointHint": "Manually configure API URL and API Key for a custom endpoint.",
"authModeModelProvider": "Model Provider",
"modelProvider": "Model Provider",
"modelProviderHint": "Use API URL and API Key from a configured model provider.",
"selectModelProvider": "Select Model Provider",
"noModelProviderAvailable": "No model provider configured for this agent. Go to Model Provider Settings to add one.",
"claude": {
"authMode": "Auth Mode",
"officialSubscription": "Official Subscription",
"officialSubscriptionHint": "Use official Anthropic subscription, no API Key required.",
"mainModel": "Main Model",
"reasoningModel": "Reasoning Model (thinking)",
"haikuDefaultModel": "Default Haiku Model",
"sonnetDefaultModel": "Default Sonnet Model",
"opusDefaultModel": "Default Opus Model",
"effortLevel": "Reasoning Effort Level",
"effortLevelDefault": "Default Level",
"effortLevel_low": "Low",
"effortLevel_medium": "Medium",
"effortLevel_high": "High",
"effortLevel_xhigh": "Extra High"
},
"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",
"configSavedHint": "Existing sessions need to be reopened to take effect",
"saveConfigManagementFailed": "Failed to save config management",
"clineSaved": "Cline config saved",
"saveClineFailed": "Failed to save Cline config",
"modelProviderRequired": "Please select a model provider before saving."
},
"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."
},
"cline": {
"configDescription": "Configure Cline API provider and credentials. Settings are saved to ~/.cline/data/."
},
"opencodePlugins": {
"title": "OpenCode Plugins",
"declared": "Declared Plugins",
"noPlugins": "No plugins declared.",
"status": {
"installed": "Installed",
"missing": "Missing"
},
"installAll": "Install All Missing",
"pinVersions": "Pin @latest Versions",
"install": "Install",
"uninstall": "Uninstall",
"refresh": "Refresh",
"success": "All plugins installed successfully.",
"failed": "Installation failed"
}
},
"SettingsPages": {
"agentsLoading": "Loading agent settings..."
},
"CommitPage": {
"title": "Commit",
"invalidFolderId": "Invalid folder ID",
"loadingRepo": "Loading repository..."
},
"MergePage": {
"title": "Resolve Conflicts",
"invalidFolderId": "Invalid folder ID",
"loadingRepo": "Loading repository...",
"localVersion": "Local (Ours)",
"result": "Result",
"remoteVersion": "Remote (Theirs)",
"acceptLocal": "Accept Local",
"acceptRemote": "Accept Remote",
"markResolved": "Mark Resolved",
"abortMerge": "Abort",
"completeMerge": "Complete Merge",
"unresolvedConflicts": "There are still unresolved conflict markers in this file",
"fileResolved": "File resolved successfully",
"allResolved": "All conflicts resolved",
"conflictFiles": "Conflict Files",
"loadingFile": "Loading file...",
"preparingMerge": "Preparing merge...",
"selectFile": "Select a file to resolve",
"noConflicts": "No conflict files",
"skipFile": "Skip",
"abortSuccess": "Operation aborted",
"applyAllNonConflicting": "Apply All Non-Conflicting",
"applyLeftNonConflicting": "Apply Local",
"applyRightNonConflicting": "Apply Remote"
},
"Folder": {
"workspaceStatus": {
"degradedTitle": "Live updates unavailable",
"degradedHint": "Watcher failed to start (e.g. permission denied). Refresh manually to see changes.",
"retry": "Retry",
"retrying": "Retrying..."
},
"common": {
"all": "All",
"cancel": "Cancel",
"close": "Close",
"closeOthers": "Close Others",
"closeAll": "Close All",
"confirm": "Confirm",
"save": "Save",
"delete": "Delete",
"rename": "Rename",
"loading": "Loading...",
"refresh": "Refresh",
"refreshing": "Refreshing...",
"create": "Create",
"createAndSwitch": "Create and Switch",
"openFile": "Open File",
"viewDiff": "View Diff",
"push": "Push..."
},
"modes": {
"conversation": "Conversation Mode",
"fusion": "Fusion Mode",
"files": "Files Mode",
"workspaceModesAria": "Workspace modes"
},
"statusLabels": {
"in_progress": "In Progress",
"pending_review": "Review",
"completed": "Completed",
"cancelled": "Cancelled"
},
"sidebar": {
"title": "Conversations",
"locateActiveConversation": "Locate Active Conversation",
"expandAllGroups": "Expand All Groups",
"collapseAllGroups": "Collapse All Groups",
"newConversation": "New Conversation",
"noConversationsFound": "No conversations found.",
"importLocalSessions": "Import local sessions",
"importing": "Importing...",
"error": "Error: {message}",
"completeAllSessions": "Complete all sessions",
"completeAllReviewTitle": "Complete all review sessions?",
"completeAllReviewDescription": "This will mark all {count, plural, one {# session} other {# sessions}} in Review as completed.",
"completing": "Completing...",
"toasts": {
"importedSessions": "Imported {imported, plural, one {# session} other {# sessions}}, skipped {skipped}",
"noNewSessionsFound": "No new sessions found (skipped {skipped})",
"importFailed": "Import failed: {message}",
"reviewCompleted": "Marked {count, plural, one {# review session} other {# review sessions}} as completed",
"completeReviewFailed": "Failed to complete review sessions: {message}",
"folderOpened": "Opened folder {name}",
"folderRemoved": "Removed folder {name}",
"openFolderFailed": "Failed to open folder",
"removeFolderFailed": "Failed to remove folder: {message}",
"reorderFoldersFailed": "Failed to reorder folders: {message}",
"changeFolderColorFailed": "Failed to change folder color: {message}"
},
"statsLabel": "{folders} folders · {convos} conversations",
"reorderHandle": "Drag to reorder",
"openFolder": "Open Folder",
"searchPlaceholder": "Search conversations...",
"showCompleted": "Show completed conversations",
"moreOptions": "More options",
"sortBy": "Sort by",
"sortByCreatedAt": "Created time",
"sortByUpdatedAt": "Updated time",
"statusRunningBadge": "Running",
"statusFailedBadge": "Failed",
"conversationCountUnit": "{count, plural, one {# conversation} other {# conversations}}",
"emptyFolderHint": "No conversations",
"noMatchingConversations": "No matching conversations",
"noUnfinishedConversations": "No unfinished conversations. Enable \"Show completed\" from the top-right menu.",
"removeFolderConfirmTitle": "Remove folder from workspace?",
"removeFolderConfirmDescription": "Remove \"{name}\" from the workspace? Its tabs and terminals will close.",
"folderHeaderMenu": {
"manageConversations": "Manage conversations…",
"changeColor": "Change color",
"removeFromWorkspace": "Remove from workspace"
},
"manageConversations": {
"title": "Manage conversations — {name}",
"searchPlaceholder": "Search by title…",
"agentFilterAll": "All agents",
"statusFilterAll": "All statuses",
"selectAllVisible": "Select all",
"deselectAll": "Deselect all",
"selectedCount": "{count} selected",
"matchedCount": "{count} matched",
"messagesShort": "{count} msg",
"untitledConversation": "Untitled conversation",
"setStatus": "Set status…",
"deleteSelected": "Delete",
"noConversations": "No conversations in this folder.",
"noMatchingConversations": "No conversations match the filters.",
"confirmDeleteTitle": "Delete {count} conversation(s)?",
"confirmDeleteDescription": "This action cannot be undone.",
"toastDeleted": "Deleted {count} conversation(s)",
"toastStatusUpdated": "Updated status for {count} conversation(s)",
"toastOpFailed": "Operation failed: {message}"
}
},
"conversation": {
"reloadFailed": "Failed to reload conversation: {message}",
"reloaded": "Conversation reloaded",
"reload": "Reload",
"newConversation": "New Conversation",
"closeConversation": "Close Conversation",
"copyText": "Copy Text",
"copyTextSuccess": "Copied",
"copyTextFailed": "Copy failed",
"forkSession": "Fork Session",
"forkSessionSuccess": "Session forked successfully",
"forkSessionFailed": "Failed to fork session: {error}",
"exportConversation": "Export Conversation",
"exportImage": "Image",
"exportMarkdown": "Markdown",
"exportHtml": "HTML",
"exportSuccess": "Conversation exported",
"exportFailed": "Export failed",
"exportImageTooLong": "Conversation is too long to export as image",
"exportLabels": {
"untitledConversation": "Untitled Conversation",
"agent": "Agent",
"model": "Model",
"status": "Status",
"started": "Started",
"updated": "Updated",
"tokens": "Token Stats",
"duration": "Duration",
"inputTokens": "Input",
"outputTokens": "Output",
"cacheRead": "Cache Read",
"cacheWrite": "Cache Write",
"user": "User",
"assistant": "Assistant",
"system": "System",
"toolResult": "Result",
"toolError": "Error"
}
},
"conversationCard": {
"untitledConversation": "Untitled conversation",
"newConversation": "New Conversation",
"rename": "Rename",
"status": "Status",
"delete": "Delete",
"importLocalSessions": "Import local sessions",
"importing": "Importing...",
"renameConversation": "Rename conversation",
"deleteConversationTitle": "Delete conversation?",
"deleteConversationDescription": "This will delete \"{title}\". This action cannot be undone.",
"cancel": "Cancel",
"save": "Save"
},
"search": {
"dialogTitle": "Search",
"dialogTitleWithFolder": "Search — {name}",
"tabConversations": "Conversations",
"tabFiles": "Files",
"placeholder": "Search conversations...",
"filePlaceholder": "Search files or directories...",
"allAgents": "All",
"searching": "Searching...",
"typeToSearch": "Type to search conversations",
"typeToSearchFiles": "Type to search files or directories",
"noResults": "No results found.",
"untitledConversation": "Untitled conversation"
},
"folderTitleBar": {
"showSidebar": "Show Sidebar",
"hideSidebar": "Hide Sidebar",
"toggleTerminal": "Toggle Terminal",
"toggleAuxPanel": "Toggle Auxiliary Panel",
"search": "Search",
"openSettings": "Open Settings",
"withShortcut": "{label} ({shortcut})"
},
"statusBar": {
"connection": {
"connected": "Connected",
"connecting": "Connecting...",
"prompting": "Responding...",
"error": "Connection error",
"disconnected": "Disconnected",
"tooltip": "{agent} - {status}",
"tooltipError": "{agent} - {error}"
},
"tasks": {
"title": "Tasks"
},
"alerts": {
"title": "Alerts",
"empty": "No alerts"
},
"stats": {
"conversations": "{count} conversations",
"summary": "{conversations} conversations / {messages} messages"
},
"tokens": {
"contextWindowUsageAria": "Context window usage",
"contextWindow": "Context Window",
"usedMax": "Used / Max",
"tokenUsage": "Token Usage",
"input": "Input",
"output": "Output",
"cacheRead": "Cache Read",
"cacheWrite": "Cache Write",
"total": "Total"
}
},
"auxPanel": {
"tabs": {
"diff": "Diff",
"files": "Files",
"changes": "Changes",
"commits": "Commits"
},
"noFolderTitle": "No folder open",
"noFolderHint": "Open a folder to see its contents here"
},
"windowControls": {
"minimizeWindow": "Minimize window",
"minimize": "Minimize",
"maximizeWindow": "Maximize window",
"maximize": "Maximize",
"restoreWindow": "Restore window",
"restore": "Restore",
"closeWindow": "Close window",
"close": "Close"
},
"tabs": {
"closeConversationTab": "Close conversation tab",
"close": "Close",
"closeOthers": "Close Others",
"closeAll": "Close All",
"tileDisplay": "Tile Display",
"untileDisplay": "Exit Tile"
},
"fileWorkspace": {
"files": "Files",
"closeFileTab": "Close file tab",
"close": "Close",
"closeOthers": "Close Others",
"closeAll": "Close All",
"preview": "Preview",
"editSource": "Edit Source"
},
"terminal": {
"rename": "Rename",
"close": "Close",
"closeOthers": "Close Others",
"closeAll": "Close All",
"hideTerminal": "Hide Terminal ({shortcut})",
"openFolderFirst": "Open a folder first"
},
"sessionFiles": {
"currentResponse": "Current response",
"noDiffDataAvailable": "No diff data available for {filePath}",
"loading": "Loading...",
"noFileChangesInConversation": "No file changes found in this conversation",
"openConversationToSeeChanges": "Open a conversation to see its file changes",
"remove": "Remove",
"changeCount": "{count, plural, one {# change} other {# changes}}",
"fileCount": "{count, plural, one {# file} other {# files}}"
},
"folderNameDropdown": {
"fallbackFolderName": "Folder",
"openFolder": "Open Folder",
"cloneRepository": "Clone Repository",
"projectBoot": "Project Boot",
"opened": "Opened",
"recentOpen": "Recently Opened"
},
"fileWorkspacePanel": {
"viewDiff": "View Diff",
"openFile": "Open File",
"fileCount": "{count, plural, one {# file} other {# files}}",
"openFileOrDiff": "Open a file or diff from the right panel",
"disk": "Disk",
"head": "HEAD",
"unsaved": "Unsaved",
"workingTree": "Working Tree",
"loading": "Loading...",
"compareWithBranch": "{path} · compare with {branch}",
"hunkCount": "{count, plural, one {# hunk} other {# hunks}}",
"prev": "Prev",
"next": "Next",
"jumpToLine": "Jump to line {line}",
"noParsedDiffSections": "No parsed diff sections",
"loadingEditor": "Loading editor...",
"imageZoomIn": "Zoom in",
"imageZoomOut": "Zoom out",
"imageZoomReset": "Reset zoom"
},
"branchDropdown": {
"toasts": {
"commitCodeCompleted": "Code commit completed",
"pushCodeCompleted": "Code push completed",
"committedFiles": "Committed {count, plural, one {# file} other {# files}}",
"taskCompleted": "{label} completed",
"taskFailed": "{label} failed",
"mergeNoNewCommits": "{branchName} has no new commits",
"mergedCommits": "Merged {count, plural, one {# commit} other {# commits}}",
"allFilesUpToDate": "All files are up to date",
"updatedFiles": "Updated {count, plural, one {# file} other {# files}}",
"openCommitWindowFailed": "Failed to open commit window",
"openPushWindowFailed": "Failed to open push window",
"upstreamSet": "Upstream branch has been set",
"upstreamSetAndPushed": "Upstream branch set and pushed {count, plural, one {# commit} other {# commits}}",
"noCommitsToPush": "No commits to push",
"pushedCommits": "Pushed {count, plural, one {# commit} other {# commits}}"
},
"tasks": {
"newBranch": "Create branch {name}",
"newWorktree": "Create worktree {name}",
"checkoutTo": "Checkout to {branchName}",
"mergeBranch": "Merge {branchName}",
"rebaseTo": "Rebase to {branchName}",
"deleteRemoteBranch": "Delete remote branch {branchName}",
"initGitRepo": "Initialize Git repository",
"pullCode": "Pull code",
"fetchInfo": "Fetch info",
"pushCode": "Push code",
"stashChanges": "Stash changes",
"stashPop": "Pop stash",
"deleteBranch": "Delete branch {branchName}"
},
"confirm": {
"mergeTitle": "Merge branch",
"rebaseTitle": "Rebase branch",
"mergeDescription": "Merge {branchName} into current branch {currentBranch}?",
"rebaseDescription": "Rebase current branch {currentBranch} onto {branchName}?",
"deleteRemoteTitle": "Delete Remote Branch",
"deleteRemoteDescription": "Delete remote branch {branchName}? This will remove it from the remote repository and cannot be undone.",
"deleteTitle": "Delete branch",
"deleteDescription": "Delete branch {branchName}? This action cannot be undone.",
"forceDeleteTitle": "Force Delete Branch",
"forceDeleteDescription": "Branch {branchName} is not fully merged. Are you sure you want to force delete it? This action cannot be undone."
},
"current": "Current",
"switchToBranch": "Switch to this branch",
"mergeBranchIntoCurrent": "Merge {branchName} into {currentBranch}",
"rebaseCurrentToBranch": "Rebase {currentBranch} onto {branchName}",
"noBranch": "No branch",
"initGitRepo": "Initialize Git repository",
"pullCode": "Pull code",
"fetchRemoteBranches": "Fetch remote branches",
"openCommitWindow": "Commit code...",
"pushCode": "Push...",
"newBranch": "New branch...",
"newWorktree": "New worktree...",
"stashChanges": "Stash changes...",
"stashPop": "Unstash...",
"manageRemotes": "Manage Remotes...",
"localBranches": "Local branches ({count, plural, one {#} other {#}})",
"noLocalBranches": "No local branches",
"remoteBranches": "Remote branches ({count, plural, one {#} other {#}})",
"noRemoteBranches": "No remote branches",
"dialogs": {
"newBranchTitle": "New branch",
"newBranchDescription": "Create a new branch from current branch {branch}",
"branchNamePlaceholder": "Branch name",
"newWorktreeTitle": "New worktree",
"newWorktreeDescription": "Create a new worktree from current branch {branch}",
"branchNameLabel": "Branch name",
"worktreePathLabel": "Worktree path",
"worktreePathPlaceholder": "Worktree path",
"manageRemotesTitle": "Manage Remotes",
"manageRemotesEmpty": "No remotes configured",
"remoteNamePlaceholder": "Remote name",
"remoteUrlPlaceholder": "Remote URL",
"addRemote": "Add",
"savingRemotes": "Saving..."
},
"conflict": {
"title": "Merge Conflicts",
"description": "The following files have conflicts that need to be resolved:",
"abort": "Abort Merge",
"openMergeTool": "Open Merge Tool",
"completeMerge": "Complete Merge",
"abortSuccess": "Merge aborted successfully",
"completeSuccess": "Merge completed successfully"
},
"stashDialog": {
"title": "Stash Changes",
"description": "Save your current changes to a stash",
"messageLabel": "Message",
"messagePlaceholder": "Stash message (optional)",
"keepIndex": "Keep index (staged changes remain staged)",
"cancel": "Cancel",
"stash": "Stash",
"success": "Changes stashed successfully",
"error": "Failed to stash changes"
},
"unstashDialog": {
"title": "Unstash Changes",
"noStashes": "No stashes found",
"selectFile": "Select a file to view diff",
"viewDiff": "View Diff",
"original": "Original",
"modified": "Modified",
"apply": "Apply",
"drop": "Drop",
"applySuccess": "Stash applied successfully",
"dropSuccess": "Stash dropped",
"confirmApply": "Apply stash {ref} to working directory?",
"cancel": "Cancel"
},
"deleteBranch": "Delete branch"
},
"commitDialog": {
"toasts": {
"commitCompleted": "Code commit completed",
"pushFailed": "Push failed",
"committedFiles": "Committed {count, plural, one {# file} other {# files}}",
"addedToVcs": "Added to VCS",
"addToVcsFailed": "Failed to add to VCS",
"fileDeleted": "File deleted",
"deleteFailed": "Delete failed",
"fileRolledBack": "File rolled back",
"rollbackFailed": "Rollback failed",
"dirRolledBack": "Directory rolled back",
"dirDeleted": "Directory deleted"
},
"confirm": {
"deleteTitle": "Confirm deletion",
"deleteDescription": "Delete file \"{file}\"? This action cannot be undone.",
"rollbackTitle": "Confirm rollback",
"rollbackDescription": "Rollback file \"{file}\" to HEAD? Unsaved changes will be lost.",
"rollbackDirDescription": "Rollback directory \"{dir}\" to HEAD? Unsaved changes will be lost.",
"deleteDirDescription": "Delete directory \"{dir}\"? This action cannot be undone."
},
"actions": {
"select": "Select",
"unselect": "Unselect",
"rollback": "Rollback",
"addToVcs": "Add to VCS"
},
"aria": {
"selectFile": "{action} {path}",
"unselectAllFiles": "Unselect all files",
"selectAllFiles": "Select all files",
"unselectTracked": "Unselect tracked changes",
"selectTracked": "Select tracked changes",
"unselectUntracked": "Unselect untracked files",
"selectUntracked": "Select untracked files"
},
"loading": "Loading...",
"selectionCount": "{selected} / {total} files",
"emptyFiles": "No changed files",
"trackedChanges": "Tracked changes ({count})",
"untrackedFiles": "Untracked files ({count})",
"commitMessage": "Commit message",
"commitMessagePlaceholder": "Enter commit message...",
"commitButton": "Commit ({count})",
"commitAndPushButton": "Commit and Push ({count})",
"head": "HEAD",
"workingTree": "Working Tree",
"clickFileToDiff": "Click a file name to view diff",
"loadingDiff": "Loading diff..."
},
"pushWindow": {
"title": "Push Code",
"noUnpushedCommits": "No unpushed commits",
"noRemoteConfigured": "No Git remote configured\nAdd a remote in Manage Remotes",
"newBranchNoPushedCommits": "New branch — push to create remote tracking branch",
"unpushed": "Unpushed",
"selectFileToViewDiff": "Select a file to view diff",
"before": "Before",
"after": "After",
"push": "Push",
"toasts": {
"pushSuccess": "Push successful",
"pushFailed": "Push failed",
"upstreamSet": "Upstream branch has been set",
"upstreamSetAndPushed": "Upstream branch set and pushed {count, plural, one {# commit} other {# commits}}",
"noCommitsToPush": "No commits to push",
"pushedCommits": "Pushed {count, plural, one {# commit} other {# commits}}"
}
},
"gitLogTab": {
"filesTitle": "Files",
"expandAllFiles": "Expand all files",
"collapseAllFiles": "Collapse all files",
"workspace": "workspace",
"retry": "Retry",
"noCommitsFound": "No commits found",
"notAGitRepoTitle": "Not a Git repository",
"notAGitRepoHint": "Initialize Git from the branch menu above, or open a folder that is already tracked.",
"hash": "Hash",
"copyHash": "Copy hash",
"copyMessage": "Copy message",
"author": "Author",
"noFileChangeDetails": "No file change details available.",
"branchesTitle": "Branches",
"loadingBranches": "Loading branches...",
"noContainingBranches": "No containing branches found.",
"newBranch": "New branch...",
"resetToHere": "Reset to Here",
"resetDisabledReasonNotCurrentBranchView": "Available only when viewing current branch",
"viewCommitDiffAria": "View diff for commit {hash}",
"copyFullCommitHashAria": "Copy full commit hash {hash}",
"pushStatus": {
"pushed": "Pushed to remote",
"notPushed": "Not pushed to remote",
"unknown": "Push status unknown (no upstream configured)"
},
"time": {
"monthsAgo": "{count, plural, one {# month ago} other {# months ago}}",
"daysAgo": "{count, plural, one {# day ago} other {# days ago}}",
"hoursAgo": "{count, plural, one {# hour ago} other {# hours ago}}",
"minsAgo": "{count, plural, one {# min ago} other {# mins ago}}",
"justNow": "just now"
},
"toasts": {
"createdAndSwitchedNewBranch": "Created and switched to new branch",
"newBranchFromCommit": "{name} (from {shortHash})",
"createBranchFailed": "Failed to create branch",
"openPushWindowFailed": "Failed to open push window",
"resetSuccess": "Reset successful",
"resetSuccessDescription": "{branch} reset to {shortHash} with {mode}",
"resetFailed": "Reset failed"
},
"branchSelector": {
"selectBranchPlaceholder": "Select branch...",
"localBranches": "Local branches",
"current": "Current",
"remoteBranches": "Remote branches",
"refreshCommitHistory": "Refresh commit history"
},
"dialogs": {
"newBranchTitle": "New branch",
"newBranchDescription": "Create a new branch with commit {shortHash} as the latest commit.",
"branchNamePlaceholder": "Branch name",
"reset": {
"title": "Reset Current Branch to Here",
"branchLabel": "Branch",
"targetLabel": "Target",
"messageLabel": "Message",
"modeLabel": "Reset mode",
"confirmButton": "Reset",
"modes": {
"soft": {
"label": "--soft",
"description": "Move HEAD and the current branch pointer to the target commit.\nKeep Index and Working Tree unchanged.\nChanges from the removed commits stay staged."
},
"mixed": {
"label": "--mixed (default)",
"description": "Move HEAD to the target commit.\nReset Index to the target commit while keeping Working Tree changes.\nThose changes become unstaged."
},
"hard": {
"label": "--hard",
"description": "Move HEAD and reset both Index and Working Tree to the target commit.\nLocal tracked changes after the target commit are discarded.\nThis is a destructive operation."
},
"keep": {
"label": "--keep",
"description": "Move HEAD to the target commit and keep local changes when possible.\nOnly non-conflicting local changes are preserved.\nIf conflicts are detected, reset aborts to protect your work."
}
}
}
}
},
"gitChangesTab": {
"workspace": "workspace",
"noChanges": "No local changes",
"notAGitRepoTitle": "Not a Git repository",
"notAGitRepoHint": "Initialize Git from the branch menu above, or open a folder that is already tracked.",
"trackedChanges": "Tracked changes ({count})",
"untrackedFiles": "Untracked files ({count})",
"expandTracked": "Expand tracked changes",
"collapseTracked": "Collapse tracked changes",
"expandUntracked": "Expand untracked files",
"collapseUntracked": "Collapse untracked files",
"actions": {
"commitCode": "Commit code",
"rollback": "Rollback",
"addToVcs": "Add to VCS",
"delete": "Delete"
},
"toasts": {
"noAddableFilesInDir": "No changed files in this directory can be added to VCS",
"noRollbackFilesInDir": "No changed files in this directory can be rolled back",
"addedToVcs": "Added {name} to VCS",
"addToVcsFailed": "Failed to add to VCS",
"openCommitWindowFailed": "Failed to open commit window",
"rolledBack": "Rolled back {name}",
"rollbackFailed": "Rollback failed",
"addedFilesToVcs": "Added {count, plural, one {# file} other {# files}} to VCS",
"rolledBackFiles": "Rolled back {count, plural, one {# file} other {# files}}",
"deleted": "Deleted {name}",
"deleteFailed": "Delete failed",
"deletedFiles": "Deleted {count, plural, one {# file} other {# files}}",
"noDeletableFilesInDir": "No changed files in this directory can be deleted"
},
"directoryDialog": {
"descriptionAdd": "Select files under directory {path} to add to VCS.",
"descriptionRollback": "Select files under directory {path} to roll back.",
"descriptionDelete": "Select files under directory {path} to delete. This action cannot be undone.",
"descriptionFallback": "Select files to proceed.",
"selectionCount": "Selected {selected} / {total} files",
"selectAll": "Select all",
"unselectAll": "Unselect all",
"loadingCandidates": "Loading directory changes...",
"noOperableFiles": "No operable files"
},
"rollbackConfirm": {
"title": "Confirm rollback",
"descriptionWithTarget": "Roll back local changes for {kind} \"{name}\"?",
"descriptionFallback": "Roll back local changes?",
"kindDirectory": "directory",
"kindFile": "file"
},
"deleteConfirm": {
"title": "Confirm deletion",
"descriptionWithTarget": "Delete {kind} \"{name}\"? This action cannot be undone.",
"descriptionFallback": "This action cannot be undone.",
"kindDirectory": "directory",
"kindFile": "file"
}
},
"tabContext": {
"loadingConversation": "Loading...",
"untitledConversation": "Untitled conversation",
"newConversation": "New Conversation"
},
"fileTreeTab": {
"workspace": "Workspace",
"retry": "Retry",
"git": "Git",
"openInFileManager": "Open in file manager",
"openInFinder": "Open in Finder",
"openInExplorer": "Open in Explorer",
"attachToCurrentSession": "Add to session",
"compareWithBranch": "Compare with branch...",
"reloadFromDisk": "Reload from disk",
"new": "New",
"newFile": "File",
"newDirectory": "Directory",
"openIn": "Open in",
"openInTerminal": "Open in terminal",
"actions": {
"select": "Select",
"unselect": "Unselect",
"commitCode": "Commit code",
"rollback": "Rollback",
"addToVcs": "Add to VCS"
},
"aria": {
"selectPath": "{action} {path}"
},
"toasts": {
"openDirectoryFailed": "Failed to open directory",
"openBuiltinTerminalFailed": "Unable to open built-in terminal",
"openCommitWindowFailed": "Failed to open commit window",
"noAddableFilesInDir": "No changed files in this directory can be added to VCS",
"noRollbackFilesInDir": "No changed files in this directory can be rolled back",
"addedToVcs": "Added {name} to VCS",
"addToVcsFailed": "Failed to add to VCS",
"loadBranchesFailed": "Failed to load branches",
"renameFailed": "Rename failed",
"deleteFailed": "Delete failed",
"rolledBack": "Rolled back {name}",
"rollbackFailed": "Rollback failed",
"addedFilesToVcs": "Added {count, plural, one {# file} other {# files}} to VCS",
"rolledBackFiles": "Rolled back {count, plural, one {# file} other {# files}}",
"savedAsCopy": "Saved as a copy",
"saveCopyFailed": "Failed to save as copy",
"watchStartFailed": "Failed to start file watch",
"createFailed": "Failed to create"
},
"createDialog": {
"newFile": "New file",
"newDirectory": "New directory",
"description": "Enter a name for the new {kind}.",
"placeholderFile": "file-name.ext",
"placeholderDirectory": "folder-name"
},
"renameDialog": {
"renameDirectory": "Rename directory",
"renameFile": "Rename file",
"description": "Enter a new name (name only, no path).",
"placeholderDirectory": "new-folder-name",
"placeholderFile": "new-file-name.ext"
},
"directoryDialog": {
"descriptionAdd": "Select files under directory {path} to add to VCS.",
"descriptionRollback": "Select files under directory {path} to roll back.",
"descriptionFallback": "Select files to proceed.",
"selectionCount": "Selected {selected} / {total} files",
"selectAll": "Select all",
"unselectAll": "Unselect all",
"loadingCandidates": "Loading directory changes...",
"noOperableFiles": "No operable files"
},
"compareDialog": {
"title": "Compare with branch",
"descriptionWithTarget": "Select a branch and compare with {kind} {path}",
"descriptionFallback": "Select a branch to compare.",
"kindDirectory": "directory",
"kindFile": "file",
"filterPlaceholder": "Filter branches, e.g. main / origin/main",
"singleClickHint": "Click a branch to compare directly",
"loadingBranches": "Loading branches...",
"recentBranches": "Recent branches ({count})",
"noCurrentBranch": "No current branch",
"localBranches": "Local branches ({count})",
"remoteBranches": "Remote branches ({count})",
"noMatchingBranches": "No matching branches"
},
"externalConflictDialog": {
"title": "External file changes detected",
"descriptionWithPath": "File {path} has changed on disk, and current edits are unsaved.",
"descriptionFallback": "Current file has changed on disk, and current edits are unsaved.",
"compare": "Compare",
"savingCopy": "Saving copy...",
"saveAsCopy": "Save as copy",
"reload": "Reload"
},
"deleteConfirm": {
"title": "Confirm deletion",
"descriptionWithTarget": "Delete {kind} \"{name}\"? This action cannot be undone.",
"descriptionFallback": "This action cannot be undone.",
"kindDirectory": "directory",
"kindFile": "file"
},
"rollbackConfirm": {
"title": "Confirm rollback",
"descriptionWithTarget": "Rollback local changes for file \"{name}\"?",
"descriptionFallback": "Rollback local changes for this file?"
},
"terminalTitle": "Terminal · {name}"
},
"commandDropdown": {
"loading": "Loading...",
"addCommand": "Add Command",
"manageCommands": "Manage Commands...",
"runCommandTitle": "Run: {command}",
"stopCommandTitle": "Stop: {command}",
"manageDialog": {
"title": "Manage Commands",
"empty": "No commands yet",
"namePlaceholder": "Name",
"commandPlaceholder": "Command",
"add": "Add",
"saving": "Saving..."
}
},
"workspaceContext": {
"confirmCloseDirtyTab": "Close \"{title}\" without saving?",
"confirmCloseOtherDirtyTabs": "Close other tabs with unsaved changes?",
"confirmCloseAllDirtyTabs": "Close all tabs with unsaved changes?",
"unableLoadContent": "Unable to load content.\n\n{message}",
"previewRequestTimedOut": "Preview request timed out",
"diffRequestTimedOut": "Diff request timed out",
"branchCompareRequestTimedOut": "Branch compare request timed out",
"commitDiffRequestTimedOut": "Commit diff request timed out",
"saveRequestTimedOut": "Save request timed out",
"reloadRequestTimedOut": "Reload request timed out",
"noChanges": "No changes.",
"noDiffOutput": "No diff output.",
"diffTitleWorkspace": "Diff · Workspace",
"diffDescriptionWorkingTree": "Working tree (HEAD)",
"diffTitleFile": "Diff · {name}",
"compareTitleFile": "Compare · {name}",
"compareTitleBranch": "Compare · {branch}",
"compareDescriptionPath": "{path} · compare with {branch}",
"compareDescriptionBranch": "compare with {branch}",
"diffTitleCommitFile": "Diff · {name} @ {hash}",
"diffTitleCommit": "Diff · {hash}",
"diffDescriptionCommitPath": "{path} · commit {commit}",
"diffDescriptionCommit": "commit {commit}",
"diffTitleConflictFile": "Conflict · {name}",
"diffDescriptionConflict": "{path} · disk vs unsaved"
},
"chat": {
"acpConnections": {
"actions": {
"openAgentsSettings": "Open Agents settings",
"retry": "Retry"
},
"agentsSetupHint": "Open Settings > Agents to manage installation.",
"withSetupHint": "{message}\n{hint}",
"blocked": {
"missingConfig": "Unable to read current Agent configuration.",
"disabled": "{agent} is disabled in Agents settings. Enable it before connecting.",
"unavailable": "{agent} is unavailable on the current platform.",
"sdkMissing": "{agent} SDK is not installed"
},
"backendErrors": {
"initializeTimeout": "{agent} connection handshake timed out after 60 seconds. Please open Settings to check Agent configuration and network settings.",
"processExited": "{agent} process exited unexpectedly.",
"spawnFailed": "Failed to start {agent}: {message}",
"downloadFailed": "{agent} download failed: {message}"
},
"unableReadAgentConfig": "Unable to read Agent config: {message}",
"connectFailedTitle": "{agent} connection failed",
"toolFallbackTitle": "Tool",
"eventErrorTitle": "Agent Error",
"notificationTurnComplete": "{agent} has finished responding",
"notificationError": "{agent} error: {message}",
"claudeApiRetry": {
"fallbackError": "authentication_failed",
"retryingWithMax": "retrying {attempt}/{max}",
"retryingAttempt": "retrying attempt {attempt}",
"retrying": "retrying",
"nextRetryIn": "next in {seconds}s",
"line": "{error}{status} · {retry}",
"lineWithDelay": "{error}{status} · {retry}, {delay}",
"httpStatus": " (HTTP {status})"
}
},
"connectionLifecycle": {
"tasks": {
"connectingTitle": "Connecting to {agent}",
"connectingDescription": "Establishing connection",
"loadingSelectorsTitle": "Loading {agent} selectors",
"loadingSelectorsDescription": "Fetching mode and session config options",
"initSessionTitle": "Initializing {agent} session",
"initSessionDescription": "Creating session and loading configuration"
},
"errors": {
"connectionFailed": "Connection failed"
}
},
"shared": {
"attachedResources": "Attached resources",
"toolCallFailed": "Tool call failed"
},
"messageThread": {
"emptyTitle": "No messages yet",
"emptyDescription": "Start a conversation to see messages here"
},
"chatInput": {
"connecting": "Connecting...",
"agentResponding": "{agent} is responding...",
"sendMessage": "Send a message..."
},
"messageInput": {
"askAnything": "Ask anything...",
"removeAttachmentAria": "Remove {name}",
"attachFiles": "Attach files",
"addActions": "Add",
"quickMessages": "Quick messages",
"quickMessagesEmpty": "No quick messages yet",
"quickMessagesLoading": "Loading...",
"quickMessageUntitled": "Untitled",
"dropFilesToAttach": "Drop files to attach",
"loadingSettings": "Loading settings...",
"loadingMode": "Loading mode...",
"cancel": "Cancel",
"send": "Send",
"forkAndSend": "Fork & Send",
"slashCommands": "Slash commands",
"expertSkills": "Expert skills",
"expertsEmptyForAgent": "This agent has no enabled experts. Enable them in Settings > Experts.",
"slashSearchPlaceholder": "Search commands...",
"slashSearchEmpty": "No matching commands"
},
"messageQueue": {
"addToQueue": "Queue message",
"saveEdit": "Save",
"cancelEdit": "Cancel edit",
"editItem": "Edit",
"deleteItem": "Remove"
},
"welcomeInputPanel": {
"agentsSettingsPath": "Settings > Agents",
"autoConnectFallback": "Click to open {path} and manage installation.",
"autoConnectAppend": "{message}. Click to open {path} and manage installation.",
"enableAgentFirstPlaceholder": "Enable at least one agent before starting a session...",
"askAnythingPlaceholder": "Ask anything..."
},
"agentSelector": {
"noEnabledAgents": "No enabled agents",
"openAgentsSettings": "Open Agents settings"
},
"agentPlanOverlay": {
"title": "Agent Plan",
"collapsePlanAria": "Collapse plan",
"collapsedSummary": "Plan {completed}/{total}",
"status": {
"completed": "Completed",
"inProgress": "In Progress",
"pending": "Pending",
"unknown": "Unknown"
},
"priority": {
"high": "High",
"medium": "Medium",
"low": "Low",
"unknown": "Unknown"
}
},
"permissionDialog": {
"subtitle": "Agent requests permission to continue this turn.",
"kindFallbackTool": "tool",
"command": "Command",
"cwd": "CWD: {cwd}",
"filesSummary": "Files: {count}",
"moreFiles": "+{count} more files",
"plan": "Plan",
"allowedActions": "Allowed actions",
"targetMode": "Target mode: {mode}"
},
"questionDialog": {
"title": "Agent is asking a question",
"placeholder": "Type your answer...",
"send": "Send"
},
"messageBranch": {
"previousBranchAria": "Previous branch",
"nextBranchAria": "Next branch",
"pageOf": "{current} of {total}"
},
"terminal": {
"title": "Terminal",
"running": "Running"
},
"reasoning": {
"thinking": "Thinking…",
"thoughtForFewSeconds": "Thought",
"thoughtForSeconds": "Thought"
},
"linkSafety": {
"localFileTitle": "Open local file?",
"externalLinkTitle": "Open external link?",
"localFileDescription": "You're about to open a local file in the Files panel.",
"externalLinkDescription": "You're about to visit an external website.",
"cancel": "Cancel",
"opening": "Opening...",
"openFile": "Open file",
"openLink": "Open link",
"errorCannotOpen": "Cannot open local file",
"errorNoWorkspace": "No workspace folder is currently active.",
"errorOutsideWorkspace": "The file is outside the current workspace folder.",
"errorFailedOpen": "Failed to open local file",
"errorFailedLink": "Failed to open link"
},
"messageList": {
"attachedResources": "Attached resources",
"loading": "Loading...",
"error": "Error: {message}",
"emptyConversation": "No messages in this conversation.",
"systemMessage": "System message",
"copyMessage": "Copy",
"copied": "Copied"
},
"liveTurnStats": {
"thinking": "Thinking...",
"streaming": "Streaming",
"elapsedHours": "{value}h",
"elapsedMinutes": "{value}m",
"elapsedSeconds": "{value}s",
"toolUseCount": "{count} tool {count, plural, one {use} other {uses}}"
},
"tool": {
"parameters": "Parameters",
"error": "Error",
"result": "Result",
"status": {
"approvalRequested": "Awaiting Approval",
"approvalResponded": "Responded",
"inputAvailable": "Running",
"inputStreaming": "Pending",
"outputAvailable": "Completed",
"outputDenied": "Denied",
"outputError": "Error"
}
},
"toolCallBlock": {
"tool": "Tool",
"error": "Error",
"result": "Result"
},
"contentParts": {
"showingTailOutput": "Showing tail output while streaming for performance.",
"result": "Result",
"unknown": "unknown",
"inputTruncated": "Input was truncated — diff may be incomplete.",
"replaceAll": "REPLACE ALL",
"filesCount": "Files: {count}",
"update": "update",
"moreFiles": "+{count} more files",
"timeoutMs": "Timeout: {timeout}ms",
"backgroundTrue": "Background: true",
"offset": "Offset: {offset}",
"limit": "Limit: {limit}",
"pages": "Pages: {pages}",
"mode": "Mode: {mode}",
"cell": "Cell: {cell}",
"pathLabel": "Path:",
"globLabel": "Glob:",
"typeLabel": "Type:",
"outputLabel": "Output:",
"caseInsensitive": "Case insensitive",
"multiline": "Multiline",
"promptLabel": "Prompt",
"subjectLabel": "Subject",
"taskLabel": "Task",
"nameLabel": "Name:",
"agentPromptLabel": "Prompt",
"agentModelLabel": "Model",
"agentRunning": "Running...",
"agentStatsBash": "Commands",
"agentStatsRead": "Files read",
"agentStatsSearch": "Searches",
"agentStatsEdit": "Edits",
"agentStatsOther": "Other",
"field": {
"file": "File",
"notebook": "Notebook",
"command": "Command",
"old": "Old",
"new": "New",
"pattern": "Pattern",
"path": "Path",
"query": "Query",
"url": "URL",
"description": "Description",
"content": "Content",
"source": "Source",
"prompt": "Prompt",
"subject": "Subject",
"taskId": "Task ID",
"status": "Status",
"skill": "Skill",
"args": "Args",
"offset": "Offset",
"limit": "Limit",
"glob": "Glob",
"type": "Type",
"output": "Output",
"replaceAll": "Replace All",
"language": "Language",
"timeout": "Timeout",
"background": "Background",
"agentType": "Agent Type",
"library": "Library",
"libraryId": "Library ID"
},
"title": {
"edit": "Edit",
"command": "Command",
"todoWrite": "TodoWrite",
"read": "Read",
"write": "Write",
"notebookEdit": "NotebookEdit",
"editFiles": "Edit ({count} files)",
"editWithTarget": "Edit {target}",
"readWithTarget": "Read {target}",
"writeWithTarget": "Write {target}",
"notebookEditWithTarget": "NotebookEdit {target}",
"globWithPattern": "Glob {pattern}",
"grepWithPattern": "Grep {pattern}",
"taskCreateWithSubject": "TaskCreate: {subject}",
"taskUpdateWithStatus": "TaskUpdate #{id} -> {status}",
"taskUpdate": "TaskUpdate #{id}",
"webFetchWithUrl": "WebFetch {url}",
"webSearchWithQuery": "WebSearch: {query}",
"todosProgress": "Todos ({done}/{total})",
"skillWithName": "Skill: {name}",
"genericWithContext": "{tool}: {context}"
}
}
},
"diffPreview": {
"mode": {
"added": "Added",
"deleted": "Deleted",
"renamed": "Renamed",
"modified": "Modified"
},
"hunkLabel": "Hunk {index}",
"loadingHunk": "Loading hunk...",
"noDiffData": "No diff data"
},
"conversationContextBar": {
"folderTitle": "Working folder",
"branchTitle": "Working branch",
"searchFolder": "Search folder...",
"searchBranch": "Search branch...",
"noFolders": "No folders",
"noBranches": "No branches",
"noBranch": "(no branch)",
"commit": "Commit",
"push": "Push",
"merge": "Merge",
"toasts": {
"folderChanged": "Switched to {name}",
"openFolderFailed": "Failed to open folder",
"openStashFailed": "Failed to open stash window",
"openMergeFailed": "Failed to open merge window"
}
},
"cloneDialog": {
"title": "Clone Repository",
"repositoryUrl": "Repository URL",
"repositoryUrlPlaceholder": "https://github.com/user/repo.git",
"directory": "Directory",
"directoryPlaceholder": "Select target directory...",
"browseDirectory": "Browse directory",
"cancel": "Cancel",
"clone": "Clone",
"clonePath": "Clone path: {path}"
},
"toasts": {
"cloneFailed": "Failed to clone repository"
}
},
"ProjectBoot": {
"title": "Project Boot",
"tabs": {
"shadcn": "shadcn"
},
"config": {
"base": "Base",
"style": "Style",
"baseColor": "Base Color",
"theme": "Theme",
"chartColor": "Chart Color",
"iconLibrary": "Icon Library",
"font": "Font",
"fontHeading": "Heading Font",
"menuAccent": "Menu Accent",
"menuColor": "Menu Color",
"radius": "Radius",
"template": "Template",
"createProject": "Create Project",
"sectionStyle": "Style",
"sectionColors": "Colors",
"sectionTypography": "Typography",
"sectionInterface": "Interface"
},
"preview": {
"loading": "Loading preview..."
},
"createDialog": {
"title": "Create Project",
"projectName": "Project Name",
"projectNamePlaceholder": "my-app",
"frameworkTemplate": "Framework Template",
"packageManager": "Package Manager",
"saveDirectory": "Save Directory",
"saveDirectoryPlaceholder": "Select directory...",
"browseDirectory": "Browse",
"projectPath": "Project will be created at: {path}",
"advancedOptions": "Advanced Options",
"base": "Base Library",
"enableRtl": "Enable RTL Support",
"enableRtlDescription": "Enable layout support for right-to-left languages (e.g. Arabic, Hebrew)",
"pmChecking": "Checking...",
"pmNotInstalled": "Not installed",
"cancel": "Cancel",
"create": "Create",
"creating": "Creating project..."
},
"toasts": {
"createFailed": "Failed to create project",
"createSuccess": "Project created successfully"
},
"errors": {
"directoryExists": "Target directory already exists",
"commandFailed": "Project creation command failed."
}
},
"WebServiceSettings": {
"sectionTitle": "Web Service",
"sectionDescription": "Enable to access Codeg remotely via browser",
"port": "Port",
"status": "Status",
"running": "Running",
"stopped": "Stopped",
"processing": "Processing...",
"start": "Start",
"stop": "Stop",
"startFailed": "Failed to start",
"stopFailed": "Failed to stop",
"open": "Open",
"hide": "Hide",
"show": "Show",
"copy": "Copy",
"addressLabel": "Access Address",
"tokenLabel": "Access Token",
"tokenHint": "Enter this token when accessing the Web client for the first time",
"tokenPlaceholder": "Leave empty to auto-generate",
"regenerate": "Regenerate",
"errors": {
"alreadyRunning": "Web service is already running",
"invalidAddress": "Invalid host or port format",
"portInUse": "Port {port} is already in use. Close the process using it or choose another port.",
"permissionDenied": "Permission denied. Try a port above 1024 or run with higher privileges.",
"addressUnavailable": "The address is not available on this machine",
"bindFailed": "Failed to bind address"
}
},
"DirectoryBrowser": {
"title": "Browse Directory",
"pathPlaceholder": "Enter directory path...",
"goHome": "Go to home directory",
"navigateUp": "Go to parent directory",
"select": "Select",
"cancel": "Cancel",
"loading": "Loading...",
"emptyDirectory": "This directory is empty",
"errorLoadingDir": "Failed to load directory",
"permissionDenied": "Permission denied"
},
"ChatChannelSettings": {
"loading": "Loading...",
"sectionTitle": "Chat Channels",
"sectionDescription": "Configure IM bots to receive event notifications and query coding activity.",
"addChannel": "Add Channel",
"noChannels": "No chat channels configured yet.",
"channelName": "Name",
"channelNamePlaceholder": "My Telegram Bot",
"channelType": "Channel Type",
"lark": "Lark (Feishu)",
"weixin": "WeChat",
"dailyReport": "Daily Report",
"dailyReportTime": "Report Time",
"nameRequired": "Channel name is required.",
"tokenRequired": "Token is required.",
"chatIdRequired": "Chat ID is required.",
"loadFailed": "Failed to load channels.",
"saveFailed": "Failed to save changes.",
"connectSuccess": "Channel connected.",
"connectFailed": "Failed to connect",
"disconnectSuccess": "Channel disconnected.",
"disconnectFailed": "Failed to disconnect.",
"testSuccess": "Connection test passed.",
"testFailed": "Connection test failed",
"deleteSuccess": "Channel deleted.",
"deleteFailed": "Failed to delete channel.",
"deleteConfirmTitle": "Delete Channel",
"deleteConfirmMessage": "This will permanently delete the channel and its message logs. Are you sure?",
"cancel": "Cancel",
"delete": "Delete",
"create": "Create",
"save": "Save",
"channelListTitle": "Configured Channels",
"channelListDescription": "Enabled channels will auto-connect when the service starts.",
"editChannel": "Edit Channel",
"editSuccess": "Channel updated.",
"tokenPlaceholderKeep": "Leave blank to keep current",
"weixinScanTitle": "Scan QR Code",
"weixinScanDescription": "Open WeChat and scan the QR code to connect.",
"weixinQrcodeExpired": "QR code expired.",
"weixinRefreshQrcode": "Refresh",
"weixinWaitingScan": "Waiting for scan...",
"weixinPollError": "Connection unstable, retrying...",
"weixinReconnectNotice": "Due to iLink protocol limitations, after each reconnection you must send a message to the bot before event triggers take effect.",
"connect": "Connect",
"disconnect": "Disconnect",
"test": "Test Connection",
"tabs": {
"channels": "Channels",
"commands": "Commands",
"events": "Events",
"other": "Other"
},
"commands": {
"title": "Built-in Commands",
"description": "Bot commands available in chat channels. In group chats, @Bot is required to process messages.",
"prefixLabel": "Command Prefix",
"prefixDescription": "1-3 non-alphanumeric characters used to trigger bot commands (default /).",
"prefixSaved": "Command prefix saved.",
"prefixSaveFailed": "Failed to save command prefix.",
"prefixInvalid": "Prefix must be 1-3 non-alphanumeric characters.",
"save": "Save",
"folderDesc": "Select working folder",
"agentDesc": "Select AI agent",
"taskDesc": "Create session and run task",
"sessionsDesc": "List active sessions in folder",
"resumeDesc": "Recent conversations / resume a session",
"cancelDesc": "Cancel current task",
"approveDesc": "Approve agent permission request",
"denyDesc": "Deny agent permission request",
"searchDesc": "Search conversations by keyword",
"todayDesc": "Today's activity summary",
"statusDesc": "Channel connection status",
"helpDesc": "Show help message"
},
"events": {
"title": "Event Notifications",
"description": "When enabled, triggered events will be pushed to the channel.",
"turnComplete": "Turn Complete",
"turnCompleteDesc": "When an agent turn ends",
"error": "Agent Error",
"errorDesc": "When an agent encounters an error",
"saved": "Event filter updated.",
"saveFailed": "Failed to save event filter."
},
"language": {
"title": "Message Language",
"description": "Language used for event notifications, command responses, and daily reports sent to chat channels.",
"saved": "Message language saved.",
"saveFailed": "Failed to save message language.",
"en": "English",
"zh-cn": "Simplified Chinese",
"zh-tw": "Traditional Chinese",
"ja": "Japanese",
"ko": "Korean",
"es": "Spanish",
"de": "German",
"fr": "French",
"pt": "Portuguese",
"ar": "Arabic"
}
},
"ModelProviderSettings": {
"sectionTitle": "Model Providers",
"sectionDescription": "Manage API provider credentials for agents.",
"filterAll": "All",
"providerListTitle": "Configured Providers",
"addProvider": "Add Provider",
"editProvider": "Edit Provider",
"noProviders": "No model providers configured yet.",
"providerName": "Name",
"providerNamePlaceholder": "e.g. OpenAI, Anthropic",
"apiUrl": "API URL",
"apiUrlPlaceholder": "https://api.openai.com/v1",
"apiKey": "API Key",
"apiKeyPlaceholder": "sk-...",
"apiKeyKeepCurrent": "Leave blank to keep current",
"agentTypes": "Agent Types",
"agentTypesRequired": "At least one agent type is required.",
"nameRequired": "Provider name is required.",
"apiUrlRequired": "API URL is required.",
"apiKeyRequired": "API Key is required.",
"loadFailed": "Failed to load providers.",
"saveFailed": "Failed to save changes.",
"createSuccess": "Provider created.",
"editSuccess": "Provider updated.",
"deleteSuccess": "Provider deleted.",
"deleteConfirmTitle": "Delete Provider",
"deleteConfirmMessage": "This will permanently delete the provider \"{name}\". Are you sure?",
"deleteBlockedByAgent": "{agents} is currently using this provider. Please unlink before deleting.",
"cancel": "Cancel",
"delete": "Delete",
"create": "Create",
"save": "Save"
},
"ExpertsSettings": {
"title": "Expert Skills",
"description": "Enable curated, battle-tested skill workflows for your AI coding agents. Each expert is a standalone skill from the superpowers project — codeg manages the central copy and links it into the agents you choose.",
"loading": "Loading experts…",
"loadingContent": "Loading content…",
"emptyExperts": "No experts available. Check the application logs.",
"emptySelection": "Select an expert to see its content and manage activation.",
"emptySearch": "No experts match the current search.",
"searchPlaceholder": "Search experts by name, id, or description",
"enableForAgents": "Enable for agents",
"noAgents": "No ACP agents detected.",
"copyModeWarning": "Copied (not linked). Re-enable after codeg updates to get the latest version.",
"previewTitle": "SKILL.md preview",
"categories": {
"discovery": "Discovery & Design",
"planning": "Planning",
"execution": "Execution",
"quality": "Quality & Testing",
"debugging": "Debugging",
"review": "Review & Integration",
"meta": "Meta"
},
"states": {
"not_linked": "Not enabled",
"linked_to_codeg": "Enabled",
"linked_elsewhere": "Blocked — another link exists",
"blocked_by_real_directory": "Blocked — a custom skill occupies this name",
"broken": "Broken link"
},
"badges": {
"userModified": "User modified"
},
"actions": {
"openCentralDir": "Open central folder",
"refresh": "Refresh"
},
"toasts": {
"loadFailed": "Failed to load expert details",
"enabled": "Expert enabled for this agent",
"disabled": "Expert disabled for this agent",
"enableFailed": "Failed to enable expert",
"disableFailed": "Failed to disable expert",
"openFolderFailed": "Failed to open folder"
}
},
"QuickMessagesSettings": {
"title": "Quick Messages",
"description": "Manage reusable message snippets. Drag to reorder.",
"loading": "Loading quick messages…",
"emptyList": "No quick messages yet. Click \"New\" to create one.",
"emptySelection": "Select a quick message to edit.",
"searchPlaceholder": "Search by title or content",
"untitled": "Untitled",
"actions": {
"new": "New",
"save": "Save",
"delete": "Delete",
"dragSort": "Drag to reorder",
"dragSortMessage": "Drag to reorder quick message: {name}"
},
"fields": {
"title": "Title",
"titlePlaceholder": "Give this message a short title",
"content": "Content",
"contentPlaceholder": "Write the message content here"
},
"confirmDelete": {
"title": "Delete quick message?",
"message": "This will permanently delete \"{name}\". Are you sure?",
"cancel": "Cancel",
"confirm": "Delete"
},
"toasts": {
"loadFailed": "Failed to load quick messages",
"createFailed": "Failed to create quick message",
"saveFailed": "Failed to save quick message",
"deleteFailed": "Failed to delete quick message",
"saveOrderFailed": "Failed to save order",
"created": "Quick message created",
"saved": "Quick message saved",
"deleted": "Quick message deleted"
}
}
}