{
  "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"
  },
  "WelcomePage": {
    "title": "Welcome to Codeg",
    "openSettings": "Open Settings",
    "searchPlaceholder": "Search folders...",
    "loading": "Loading...",
    "emptyFolders": "No folders yet",
    "removeFromHistory": "Remove from history",
    "openFolder": "Open Folder",
    "cloneRepository": "Clone Repository",
    "softwareVersion": "version {version}",
    "toasts": {
      "loadFolderHistoryFailed": "Failed to load folder history",
      "openFolderFailed": "Failed to open folder",
      "removeFromHistoryFailed": "Failed to remove folder",
      "openSettingsFailed": "Failed to open settings",
      "cloneFailed": "Failed to clone repository"
    },
    "errors": {
      "unknown": "Unexpected error",
      "invalidInput": "Invalid input.",
      "notFound": "Resource not found.",
      "alreadyExists": "Resource already exists.",
      "dependencyMissing": "Required dependency is missing.",
      "databaseError": "Database operation failed.",
      "ioError": "File operation failed.",
      "externalCommandFailed": "External command failed.",
      "windowOperationFailed": "Window operation failed.",
      "gitNotInstalled": "Git is not installed. Please install Git first.",
      "targetDirectoryNotEmpty": "Target directory already exists and is not empty.",
      "repositoryNotFound": "Repository not found. Check URL and access permissions.",
      "networkUnavailable": "Network is unavailable. Check your connection and try again.",
      "authenticationFailed": "Authentication failed. Check credentials or SSH key.",
      "permissionDenied": "Permission denied. Check directory permissions."
    },
    "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"
    }
  },
  "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",
      "web_service": "Web Service"
    }
  },
  "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": "--"
    }
  },
  "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}",
    "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...",
    "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.",
    "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`.",
      "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",
      "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",
      "configSavedHint": "Existing sessions need to be reopened to take effect",
      "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..."
  },
  "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": {
    "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}"
      }
    },
    "conversation": {
      "reloadFailed": "Failed to reload conversation: {message}",
      "reloaded": "Conversation reloaded",
      "reload": "Reload",
      "newConversation": "New Conversation",
      "closeConversation": "Close Conversation",
      "forkSession": "Fork Session",
      "forkSessionSuccess": "Session forked successfully",
      "forkSessionFailed": "Failed to fork session: {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",
      "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...",
        "downloading": "Downloading...",
        "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"
      }
    },
    "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})"
    },
    "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",
      "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}",
        "deleteBranch": "Delete branch {branchName}",
        "initGitRepo": "Initialize Git repository",
        "pullCode": "Pull code",
        "fetchInfo": "Fetch info",
        "pushCode": "Push code",
        "stashChanges": "Stash changes",
        "stashPop": "Pop stash"
      },
      "confirm": {
        "mergeTitle": "Merge branch",
        "rebaseTitle": "Rebase branch",
        "deleteTitle": "Delete branch",
        "mergeDescription": "Merge {branchName} into current branch {currentBranch}?",
        "rebaseDescription": "Rebase current branch {currentBranch} onto {branchName}?",
        "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}",
      "deleteBranch": "Delete branch",
      "versionControl": "Version Control",
      "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",
      "parentBranchHint": "Current branch was created from {parentBranch}. Click to merge {parentBranch} into current branch.",
      "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"
      }
    },
    "commitDialog": {
      "toasts": {
        "commitCompleted": "Code commit completed",
        "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})",
      "head": "HEAD",
      "workingTree": "Working Tree",
      "clickFileToDiff": "Click a file name to view diff",
      "loadingDiff": "Loading diff..."
    },
    "pushWindow": {
      "title": "Push Code",
      "noUnpushedCommits": "No unpushed commits",
      "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",
      "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...",
      "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"
      },
      "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"
      }
    },
    "gitChangesTab": {
      "workspace": "workspace",
      "noChanges": "No local changes",
      "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": "Attach to current 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"
        },
        "unableReadAgentConfig": "Unable to read Agent config: {message}",
        "autoLinkFailedTitle": "{agent} auto-link failed",
        "preflightCheckFailedDefault": "Preflight checks failed. Check Agent settings.",
        "preflightFailedTitle": "{agent} preflight failed",
        "autoLinkPreflightFailed": "Auto-link preflight failed: {message}",
        "connectFailedTitle": "{agent} connection failed",
        "toolFallbackTitle": "Tool",
        "eventErrorTitle": "Agent Error",
        "notificationTurnComplete": "{agent} has finished responding"
      },
      "connectionLifecycle": {
        "tasks": {
          "connectingTitle": "Connecting to {agent}",
          "connectingDescription": "Establishing connection",
          "loadingSelectorsTitle": "Loading {agent} selectors",
          "loadingSelectorsDescription": "Fetching mode and session config options"
        },
        "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",
        "dropFilesToAttach": "Drop files to attach",
        "loadingSettings": "Loading settings...",
        "loadingMode": "Loading mode...",
        "cancel": "Cancel",
        "send": "Send",
        "forkAndSend": "Fork & Send"
      },
      "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"
      },
      "messageList": {
        "attachedResources": "Attached resources",
        "loading": "Loading...",
        "error": "Error: {message}",
        "emptyConversation": "No messages in this conversation.",
        "systemMessage": "System message"
      },
      "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",
        "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:",
        "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"
    }
  }
}
