{ "app": { "title": "CC Switch", "description": "Claude Code & Codex Provider Switching Tool" }, "common": { "add": "Add", "edit": "Edit", "delete": "Delete", "save": "Save", "saving": "Saving...", "cancel": "Cancel", "confirm": "Confirm", "close": "Close", "settings": "Settings", "about": "About", "version": "Version", "loading": "Loading...", "success": "Success", "error": "Error", "unknown": "Unknown", "enterValidValue": "Please enter a valid value" }, "apiKeyInput": { "placeholder": "Enter API Key", "show": "Show API Key", "hide": "Hide API Key" }, "jsonEditor": { "mustBeObject": "Configuration must be a JSON object, not an array or other type", "invalidJson": "Invalid JSON format" }, "claudeConfig": { "configLabel": "Claude Code settings.json (JSON) *", "writeCommonConfig": "Write Common Config", "editCommonConfig": "Edit Common Config", "editCommonConfigTitle": "Edit Common Config Snippet", "commonConfigHint": "This snippet will be merged into settings.json when 'Write Common Config' is checked", "fullSettingsHint": "Full Claude Code settings.json content" }, "header": { "viewOnGithub": "View on GitHub", "toggleDarkMode": "Switch to Dark Mode", "toggleLightMode": "Switch to Light Mode", "addProvider": "Add Provider", "switchToChinese": "Switch to Chinese", "switchToEnglish": "Switch to English" }, "provider": { "noProviders": "No providers added yet", "noProvidersDescription": "Click the \"Add Provider\" button in the top right to configure your first API provider", "currentlyUsing": "Currently Using", "enable": "Enable", "inUse": "In Use", "editProvider": "Edit Provider", "deleteProvider": "Delete Provider", "addNewProvider": "Add New Provider", "configError": "Configuration Error", "notConfigured": "Not configured for official website", "applyToClaudePlugin": "Apply to Claude plugin", "removeFromClaudePlugin": "Remove from Claude plugin" }, "notifications": { "providerSaved": "Provider configuration saved", "providerDeleted": "Provider deleted successfully", "switchSuccess": "Switch successful! Please restart {{appName}} terminal to take effect", "switchFailed": "Switch failed, please check configuration", "autoImported": "Default provider created from existing configuration", "saveFailed": "Save failed: {{error}}", "saveFailedGeneric": "Save failed, please try again", "appliedToClaudePlugin": "Applied to Claude plugin", "removedFromClaudePlugin": "Removed from Claude plugin", "syncClaudePluginFailed": "Sync Claude plugin failed" }, "confirm": { "deleteProvider": "Delete Provider", "deleteProviderMessage": "Are you sure you want to delete provider \"{{name}}\"? This action cannot be undone." }, "settings": { "title": "Settings", "general": "General", "language": "Language", "importExport": "Import/Export Config", "exportConfig": "Export Config to File", "selectConfigFile": "Select Config File", "import": "Import", "importing": "Importing...", "importSuccess": "Import Successful!", "importFailed": "Import Failed", "configExported": "Config exported to:", "exportFailed": "Export failed", "selectFileFailed": "Failed to select file", "configCorrupted": "Config file may be corrupted or invalid", "backupId": "Backup ID", "autoReload": "Data will refresh automatically in 2 seconds...", "languageOptionChinese": "δΈ­ζ–‡", "languageOptionEnglish": "English", "windowBehavior": "Window Behavior", "minimizeToTray": "Minimize to tray on close", "minimizeToTrayDescription": "When checked, clicking the close button will hide to system tray, otherwise the app will exit directly.", "configFileLocation": "Configuration File Location", "openFolder": "Open Folder", "configDirectoryOverride": "Configuration Directory Override (Advanced)", "configDirectoryDescription": "When using Claude Code or Codex in environments like WSL, you can manually specify the configuration directory in WSL to keep provider data consistent with the main environment.", "claudeConfigDir": "Claude Code Configuration Directory", "codexConfigDir": "Codex Configuration Directory", "browsePlaceholderClaude": "e.g., /home//.claude", "browsePlaceholderCodex": "e.g., /home//.codex", "browseDirectory": "Browse Directory", "resetDefault": "Reset to default directory (takes effect after saving)", "checkForUpdates": "Check for Updates", "updateTo": "Update to v{{version}}", "updating": "Updating...", "checking": "Checking...", "upToDate": "Up to Date", "releaseNotes": "Release Notes", "viewReleaseNotes": "View release notes for this version", "viewCurrentReleaseNotes": "View current version release notes", "exportFailedError": "Export config failed:" }, "apps": { "claude": "Claude Code", "codex": "Codex" }, "console": { "providerSwitchReceived": "Received provider switch event:", "setupListenerFailed": "Failed to setup provider switch listener:", "updateProviderFailed": "Update provider failed:", "autoImportFailed": "Auto import default configuration failed:", "openLinkFailed": "Failed to open link:", "getVersionFailed": "Failed to get version info:", "loadSettingsFailed": "Failed to load settings:", "getConfigPathFailed": "Failed to get config path:", "getConfigDirFailed": "Failed to get config directory:", "detectPortableFailed": "Failed to detect portable mode:", "saveSettingsFailed": "Failed to save settings:", "updateFailed": "Update failed:", "checkUpdateFailed": "Check for updates failed:", "openConfigFolderFailed": "Failed to open config folder:", "selectConfigDirFailed": "Failed to select config directory:", "getDefaultConfigDirFailed": "Failed to get default config directory:", "openReleaseNotesFailed": "Failed to open release notes:" }, "providerForm": { "supplierName": "Provider Name", "supplierNameRequired": "Provider Name *", "supplierNamePlaceholder": "e.g., Anthropic Official", "websiteUrl": "Website URL", "websiteUrlPlaceholder": "https://example.com (optional)", "apiEndpoint": "API Endpoint", "apiEndpointPlaceholder": "https://your-api-endpoint.com", "codexApiEndpointPlaceholder": "https://your-api-endpoint.com/v1", "manageAndTest": "Manage & Test", "configContent": "Config Content", "useConfigWizard": "Use Configuration Wizard", "manualConfig": "Manually configure provider, requires complete configuration, or", "officialNoApiKey": "Official login does not require API Key, save directly", "codexOfficialNoApiKey": "Official does not require API Key, save directly", "kimiApiKeyHint": "Fill in to get model list", "apiKeyAutoFill": "Just fill in here, config below will be auto-filled", "codexApiKeyAutoFill": "Just fill in here, auth.json below will be auto-filled", "getApiKey": "Get API Key", "parameterConfig": "Parameter Config - {{name}} *", "mainModel": "Main Model (optional)", "mainModelPlaceholder": "e.g., GLM-4.5", "fastModel": "Fast Model (optional)", "fastModelPlaceholder": "e.g., GLM-4.5-Air", "modelHint": "πŸ’‘ Leave blank to use provider's default model", "apiHint": "πŸ’‘ Fill in Claude API compatible service endpoint", "fillSupplierName": "Please fill in provider name", "fillConfigContent": "Please fill in configuration content", "fillParameter": "Please fill in {{label}}", "configJsonError": "Config JSON format error, please check syntax", "authJsonRequired": "auth.json must be a JSON object", "authJsonError": "auth.json format error, please check JSON syntax", "fillAuthJson": "Please fill in auth.json configuration", "fillApiKey": "Please fill in OPENAI_API_KEY", "visitWebsite": "Visit {{url}}" }, "endpointTest": { "title": "API Endpoint Management", "endpoints": "endpoints", "autoSelect": "Auto Select", "testSpeed": "Test", "testing": "Testing", "addEndpointPlaceholder": "https://api.example.com", "done": "Done", "noEndpoints": "No endpoints", "failed": "Failed", "enterValidUrl": "Please enter a valid URL", "invalidUrlFormat": "Invalid URL format", "onlyHttps": "Only HTTP/HTTPS supported", "urlExists": "This URL already exists", "saveFailed": "Save failed, please try again", "loadEndpointsFailed": "Failed to load custom endpoints:", "addEndpointFailed": "Failed to add custom endpoint:", "removeEndpointFailed": "Failed to remove custom endpoint:", "pleaseAddEndpoint": "Please add an endpoint first", "testUnavailable": "Speed test unavailable", "noResult": "No result returned", "testFailed": "Speed test failed: {{error}}" }, "codexConfig": { "quickWizard": "Quick Configuration Wizard", "authJson": "auth.json (JSON) *", "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}", "authJsonHint": "Codex auth.json configuration content", "configToml": "config.toml (TOML)", "configTomlHint": "Codex config.toml configuration content", "writeCommonConfig": "Write Common Config", "editCommonConfig": "Edit Common Config", "editCommonConfigTitle": "Edit Codex Common Config Snippet", "commonConfigHint": "This snippet will be appended to the end of config.toml when 'Write Common Config' is checked", "wizardHint": "Enter key parameters, the system will automatically generate standard auth.json and config.toml configuration.", "apiKeyLabel": "API Key *", "apiKeyPlaceholder": "sk-your-api-key-here", "supplierNameLabel": "Provider Name *", "supplierNamePlaceholder": "e.g., Codex Official", "supplierNameHint": "Will be displayed in the provider list, can use Chinese", "supplierCodeLabel": "Provider Code (English)", "supplierCodePlaceholder": "custom (optional)", "supplierCodeHint": "Will be used as identifier in config file, defaults to custom", "apiUrlLabel": "API Request URL *", "apiUrlPlaceholder": "https://your-api-endpoint.com/v1", "websiteLabel": "Website URL", "websitePlaceholder": "https://example.com", "websiteHint": "Official website address (optional)", "modelNameLabel": "Model Name *", "modelNamePlaceholder": "gpt-5-codex", "configPreview": "Configuration Preview", "applyConfig": "Apply Configuration" }, "kimiSelector": { "modelConfig": "Model Configuration", "mainModel": "Main Model", "fastModel": "Fast Model", "refreshModels": "Refresh Model List", "pleaseSelectModel": "Please select a model", "noModels": "No models available", "fillApiKeyFirst": "Please fill in API Key first", "requestFailed": "Request failed: {{error}}", "invalidData": "Invalid response data format", "fetchModelsFailed": "Failed to fetch model list", "apiKeyHint": "πŸ’‘ Fill in API Key to automatically fetch available model list" }, "presetSelector": { "title": "Select Configuration Type", "custom": "Custom", "customDescription": "Manually configure provider, requires complete configuration", "officialDescription": "Official login, no API Key required", "presetDescription": "Use preset configuration, only API Key required" }, "mcp": { "title": "MCP Management", "userLevelPath": "User-level MCP path", "serverList": "Servers", "loading": "Loading...", "empty": "No MCP servers", "emptyDescription": "Click the button in the top right to add your first MCP server", "add": "Add MCP", "addServer": "Add MCP", "editServer": "Edit MCP", "configPath": "Config Path", "serverCount": "{{count}} MCP server(s) configured", "template": { "fetch": "Quick Template: mcp-fetch" }, "form": { "title": "MCP Title (Unique)", "titlePlaceholder": "my-mcp-server", "description": "Description", "descriptionPlaceholder": "Optional description", "jsonConfig": "JSON Configuration", "jsonPlaceholder": "{\n \"type\": \"stdio\",\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-fetch\"]\n}", "useWizard": "Config Wizard" }, "wizard": { "title": "MCP Configuration Wizard", "hint": "Quickly configure MCP server and auto-generate JSON configuration", "type": "Type", "command": "Command", "commandPlaceholder": "uvx", "args": "Arguments (one per line)", "argsPlaceholder": "mcp-server-fetch\n--config config.json", "cwd": "Working Directory", "cwdPlaceholder": "/path/to/project", "env": "Environment Variables", "envPlaceholder": "KEY=VALUE\n(one per line)", "url": "URL", "urlPlaceholder": "https://api.example.com/mcp", "urlRequired": "Please enter URL", "headers": "Headers (optional)", "headersPlaceholder": "Authorization: Bearer token\nContent-Type: application/json", "preview": "Configuration Preview", "apply": "Apply Configuration" }, "id": "Identifier (unique)", "type": "Type", "cwd": "Working Directory (optional)", "command": "Command", "validateCommand": "Validate Command", "args": "Args", "argsPlaceholder": "e.g., mcp-server-fetch --help", "env": "Environment (one per line, KEY=VALUE)", "envPlaceholder": "FOO=bar\nHELLO=world", "reset": "Reset", "notice": { "restartClaude": "Written. Restart Claude to take effect." }, "msg": { "saved": "Saved", "deleted": "Deleted", "enabled": "Enabled", "disabled": "Disabled", "templateAdded": "Template added" }, "error": { "idRequired": "Please enter identifier", "idExists": "Identifier already exists. Please choose another.", "jsonInvalid": "Invalid JSON format", "commandRequired": "Please enter command", "singleServerObjectRequired": "Please paste a single MCP server object (do not include top-level mcpServers)", "saveFailed": "Save failed", "deleteFailed": "Delete failed" }, "validation": { "ok": "Command available", "fail": "Command not found" }, "confirm": { "deleteTitle": "Delete MCP Server", "deleteMessage": "Are you sure you want to delete MCP server \"{{id}}\"? This action cannot be undone." }, "presets": { "title": "Presets", "enable": "Enable", "enabled": "Enabled", "installed": "Installed", "docs": "Docs", "requiresEnv": "Requires env" } } }