Files
CC-Switch/src/i18n/locales/zh.json
T
Jason 0be75668cc feat(hermes): align provider schema with Hermes Agent 0.10.0
Hermes 0.10.0 tightened custom_providers validation (commit 2cdae233):
invalid base_urls are rejected, unknown fields produce warnings, and
new fields (rate_limit_delay, bedrock_converse, key_env) landed.

- Add bedrock_converse to the api_mode selector (and i18n labels)
- Expose rate_limit_delay in a provider-level advanced panel
- Validate base_url client-side (URL shape, template-token friendly)
- Drop per-model max_tokens — not in _VALID_CUSTOM_PROVIDER_FIELDS
- Round-trip test asserts set_provider preserves rate_limit_delay /
  key_env / any unknown forward-compat field
2026-04-21 11:57:07 +08:00

2545 lines
120 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"app": {
"title": "CC Switch",
"description": "Claude Code / Codex / Gemini CLI 全方位辅助工具"
},
"common": {
"add": "添加",
"edit": "编辑",
"delete": "删除",
"save": "保存",
"saving": "保存中...",
"cancel": "取消",
"confirm": "确定",
"close": "关闭",
"done": "完成",
"settings": "设置",
"about": "关于",
"version": "版本",
"loading": "加载中...",
"notInstalled": "未安装",
"success": "成功",
"error": "错误",
"unknown": "未知",
"enterValidValue": "请输入有效的内容",
"clear": "清除",
"toggleTheme": "切换主题",
"format": "格式化",
"formatSuccess": "格式化成功",
"formatError": "格式化失败:{{error}}",
"copy": "复制",
"view": "查看",
"back": "返回",
"refresh": "刷新",
"refreshing": "刷新中...",
"import": "导入",
"all": "全部",
"search": "查询",
"reset": "重置",
"actions": "操作",
"deleting": "删除中...",
"auto": "自动",
"enabled": "已开启",
"notSet": "未设置"
},
"firstRunNotice": {
"title": "欢迎使用 CC Switch",
"bodyDefault": "CC Switch 可以帮你在 Claude Code / Codex / Gemini CLI 的多个供应商之间一键切换。如果你之前已经配置过这些工具,CC Switch 会自动把现有设置保存为名为 “default” 的供应商,保证你的配置不会丢失。",
"bodyOfficial": "列表里还预置了 “官方(Official)” 供应商,随时点一下即可切回官方默认配置。切换前 CC Switch 会自动把当前配置备份回 default,可以放心来回切。CC Switch 就是这样工作的 😊",
"confirm": "我知道了"
},
"apiKeyInput": {
"placeholder": "请输入API Key",
"show": "显示API Key",
"hide": "隐藏API Key"
},
"jsonEditor": {
"mustBeObject": "配置必须是JSON对象,不能是数组或其他类型",
"invalidJson": "JSON格式错误"
},
"commonConfig": {
"guideTitle": "什么是通用配置片段?",
"guidePurpose": "用来在不同供应商之间共享插件、环境变量等非敏感配置。切换供应商时不会丢失这些设置。",
"guideUsage": "用法:① 点击「从编辑内容提取」保存通用部分 ② 新建供应商时勾选「写入通用配置」",
"guideReExtract": "如果您新安装了插件或 Hook,请重新提取一次通用配置,以便同步到其他供应商。",
"guideReassurance": "放心:您的原始配置已保存在默认供应商中,不会丢失。",
"emptyTitle": "还没有通用配置片段",
"emptyHint": "点击下方「从编辑内容提取」按钮,从当前配置中提取可复用的部分"
},
"claudeConfig": {
"configLabel": "Claude Code 配置 (JSON) *",
"writeCommonConfig": "写入通用配置",
"editCommonConfig": "编辑通用配置",
"editCommonConfigTitle": "编辑通用配置片段",
"commonConfigHint": "该片段会在勾选\"写入通用配置\"时合并到 settings.json 中",
"fullSettingsHint": "完整的 Claude Code settings.json 配置内容",
"extractFromCurrent": "从编辑内容提取",
"extractNoCommonConfig": "当前编辑内容没有可提取的通用配置",
"extractFailed": "提取失败: {{error}}",
"saveFailed": "保存失败: {{error}}",
"hideAttribution": "隐藏 AI 署名",
"enableTeammates": "Teammates 模式",
"enableToolSearch": "启用 Tool Search",
"effortMax": "最大强度思考",
"disableAutoUpgrade": "禁用自动升级"
},
"header": {
"viewOnGithub": "在 GitHub 上查看",
"toggleDarkMode": "切换到暗色模式",
"toggleLightMode": "切换到亮色模式",
"addProvider": "添加供应商",
"switchToChinese": "切换到中文",
"switchToEnglish": "切换到英文",
"enterEditMode": "进入编辑模式",
"exitEditMode": "退出编辑模式",
"windowMinimize": "最小化窗口",
"windowMaximize": "最大化窗口",
"windowRestore": "还原窗口",
"windowClose": "关闭窗口"
},
"provider": {
"tabProvider": "供应商",
"tabUniversal": "统一供应商",
"noProviders": "还没有添加任何供应商",
"noProvidersDescription": "如果你已有配置,请点击\"导入当前配置\",所有数据将安全保存在 default 供应商中",
"noProvidersDescriptionSnippet": "除 Key 和请求地址外的数据(如插件配置)会被保存到通用配置片段,用于在不同供应商之间共享",
"importCurrent": "导入当前配置",
"importCurrentDescription": "将当前正在使用的配置导入为默认供应商",
"currentlyUsing": "当前使用",
"enable": "启用",
"inUse": "使用中",
"blockedByProxy": "已拦截",
"editProvider": "编辑供应商",
"editProviderHint": "更新配置后将立即应用到当前供应商。",
"deleteProvider": "删除供应商",
"addNewProvider": "添加新供应商",
"addClaudeProvider": "添加 Claude Code 供应商",
"addCodexProvider": "添加 Codex 供应商",
"addGeminiProvider": "添加 Gemini 供应商",
"addOpenCodeProvider": "添加 OpenCode 供应商",
"addToConfig": "添加",
"removeFromConfig": "移除",
"setAsDefault": "设为默认",
"isDefault": "当前默认",
"inConfig": "已添加",
"addProviderHint": "填写信息后即可在列表中快速切换供应商。",
"editClaudeProvider": "编辑 Claude Code 供应商",
"editCodexProvider": "编辑 Codex 供应商",
"configError": "配置错误",
"notConfigured": "未配置官网地址",
"applyToClaudePlugin": "应用到 Claude 插件",
"removeFromClaudePlugin": "从 Claude 插件移除",
"dragToReorder": "拖拽以重新排序",
"dragHandle": "拖拽排序",
"searchPlaceholder": "按名称/备注/网址搜索供应商...",
"searchAriaLabel": "搜索供应商",
"searchScopeHint": "根据名称、备注和官网链接匹配结果。",
"searchCloseHint": "按 Esc 关闭",
"searchCloseAriaLabel": "关闭供应商搜索",
"noSearchResults": "没有符合搜索条件的供应商。",
"duplicate": "复制",
"sortUpdateFailed": "排序更新失败",
"configureUsage": "配置用量查询",
"officialPartner": "官方合作伙伴",
"managedByHermes": "Hermes 托管",
"managedByHermesHint": "该条目定义在 Hermes 的 providers: dict,请在 Hermes Web UI 中编辑或删除。",
"openTerminal": "打开终端",
"terminalOpened": "终端已打开",
"terminalOpenFailed": "打开终端失败",
"name": "供应商名称",
"namePlaceholder": "例如:Claude 官方",
"websiteUrl": "官网链接",
"notes": "备注",
"notesPlaceholder": "例如:公司专用账号",
"configJson": "配置 JSON",
"writeCommonConfig": "写入通用配置",
"editCommonConfigButton": "编辑通用配置",
"configJsonHint": "请填写完整的 Claude Code 配置",
"editCommonConfigTitle": "编辑通用配置片段",
"editCommonConfigHint": "通用配置片段将合并到所有启用它的供应商配置中",
"addProvider": "添加供应商",
"sortUpdated": "排序已更新",
"usageSaved": "用量查询配置已保存",
"usageSaveFailed": "用量查询配置保存失败",
"geminiConfig": "Gemini 配置",
"geminiConfigHint": "使用 .env 格式配置 Gemini",
"form": {
"gemini": {
"model": "模型",
"oauthTitle": "OAuth 认证模式",
"oauthHint": "Google 官方使用 OAuth 个人认证,无需填写 API Key。首次使用时会自动打开浏览器进行登录。",
"apiKeyPlaceholder": "请输入 Gemini API Key"
}
}
},
"notifications": {
"providerAdded": "供应商已添加",
"providerSaved": "供应商配置已保存",
"providerDeleted": "供应商删除成功",
"switchSuccess": "切换成功!",
"addToConfigSuccess": "已添加到配置",
"removeFromConfigSuccess": "已从配置移除",
"switchFailedTitle": "切换失败",
"switchFailed": "切换失败:{{error}}",
"autoImported": "已从现有配置创建默认供应商",
"addFailed": "添加供应商失败:{{error}}",
"saveFailed": "保存失败:{{error}}",
"saveFailedGeneric": "保存失败,请重试",
"appliedToClaudePlugin": "已应用到 Claude 插件",
"removedFromClaudePlugin": "已从 Claude 插件移除",
"syncClaudePluginFailed": "同步 Claude 插件失败",
"skipClaudeOnboardingFailed": "跳过 Claude Code 初次安装确认失败",
"clearClaudeOnboardingSkipFailed": "恢复 Claude Code 初次安装确认失败",
"updateSuccess": "供应商更新成功",
"updateFailed": "更新供应商失败:{{error}}",
"deleteSuccess": "供应商已删除",
"deleteFailed": "删除供应商失败:{{error}}",
"settingsSaved": "设置已保存",
"settingsSaveFailed": "保存设置失败:{{error}}",
"proxyRequiredForSwitch": "此供应商{{reason}},需要路由服务才能正常使用,请先启动路由",
"proxyReasonCopilot": "使用 GitHub Copilot 作为 Claude 供应商",
"proxyReasonOpenAIChat": "使用 OpenAI Chat 接口格式",
"proxyReasonOpenAIResponses": "使用 OpenAI Responses 接口格式",
"proxyReasonFullUrl": "开启了完整 URL 连接模式",
"openAIFormatHint": "此供应商使用 OpenAI 兼容格式,需要开启路由服务才能正常使用",
"copilotProxyHint": "GitHub Copilot 作为 Claude 供应商时始终需要本地路由;路由会根据当前模型自动选择 Chat Completions 或 Responses。",
"openLinkFailed": "链接打开失败",
"openclawModelsRegistered": "模型已注册到 /model 列表",
"openclawDefaultModelSet": "已设为默认模型",
"openclawDefaultModelSetFailed": "设置默认模型失败",
"openclawNoModels": "该供应商没有配置模型",
"backfillWarning": "切换成功,但旧供应商配置回填失败,您手动修改的配置可能未保存",
"windowControlFailed": "窗口控制失败:{{error}}",
"officialBlockedByProxy": "本地路由模式下不能切换到官方供应商,使用路由访问官方 API 可能导致账号被封禁",
"proxyOfficialWarning": "当前供应商 {{name}} 是官方供应商,建议切换到第三方供应商后再使用本地路由"
},
"confirm": {
"deleteProvider": "删除供应商",
"deleteProviderMessage": "确定要删除供应商 \"{{name}}\" 吗?此操作无法撤销。",
"removeProvider": "移除供应商",
"removeProviderMessage": "确定要从配置中移除供应商 \"{{name}}\" 吗?\n\n移除后该供应商将不再生效,但配置数据会保留在 CC Switch 中,您可以随时重新添加。",
"proxy": {
"title": "启用本地路由服务",
"message": "本地路由是一项高级功能,启用前请确保您已了解其工作原理。\n\n建议先查阅相关文档或咨询您的供应商,以获取正确的配置方式。",
"confirm": "我已了解,继续启用"
},
"failover": {
"title": "启用故障转移功能",
"message": "故障转移是一项高级功能,启用前请确保您已了解其工作原理。\n\n建议先在故障转移队列中配置好供应商优先级。",
"confirm": "我已了解,继续启用"
},
"usage": {
"title": "配置用量查询",
"message": "用量查询需要配置专用的查询脚本或 API 参数,请确保您已从供应商处获取相关信息。\n\n如不确定如何配置,请先查阅供应商文档。",
"confirm": "我已了解,继续配置"
},
"streamCheck": {
"title": "模型健康检测",
"message": "健康检测通过直接发送 API 请求来测试供应商连通性,以下情况可能导致检测失败:\n\n• 官方供应商(使用 OAuth 登录,无独立 API Key)\n• 部分中转服务(会校验请求是否来自 Claude Code CLI\n• AWS Bedrock(使用 IAM 签名认证)\n\n检测失败不代表供应商不可用,仅表示无法通过独立请求验证。请以应用内的实际情况为准。",
"confirm": "我已了解,继续检测"
},
"autoSync": {
"title": "开启自动同步",
"message": "开启自动同步后,每次数据库变更都会自动上传到 WebDAV 服务器。\n\n这可能会产生较高的网络流量消耗,请确保您的网络环境和 WebDAV 服务支持频繁的数据传输。",
"confirm": "我已了解,继续开启"
},
"commonConfig": {
"title": "关于通用配置",
"message": "「通用配置片段」可以在不同供应商之间共享插件、环境变量等配置,避免切换供应商时丢失这些设置。\n\n使用方法:\n① 编辑供应商时点击「编辑通用配置」→「从编辑内容提取」\n② 新建供应商时勾选「写入通用配置」(默认已勾选)\n\n如果您新安装了插件或 Hook,请重新提取一次通用配置。",
"confirm": "我知道了"
}
},
"settings": {
"title": "设置",
"general": "通用",
"tabGeneral": "通用",
"tabAuth": "认证",
"tabAdvanced": "高级",
"tabProxy": "路由",
"authCenter": {
"title": "OAuth 认证中心",
"description": "在 Claude Code 中使用您的其他订阅,请注意合规风险。",
"beta": "Beta",
"copilotDescription": "管理 GitHub Copilot 账号",
"codexOauthDescription": "管理 ChatGPT 账号"
},
"advanced": {
"configDir": {
"title": "配置文件目录",
"description": "管理 Claude、Codex 和 Gemini 的配置存储路径"
},
"proxy": {
"title": "本地路由",
"description": "控制路由服务开关、查看状态与端口信息",
"enableFeature": "在主页面显示本地路由开关",
"enableFeatureDescription": "开启后,主页面顶部将显示路由和故障转移开关",
"enableFailoverToggle": "在主页面显示故障转移开关",
"enableFailoverToggleDescription": "开启后,主页面顶部将独立显示故障转移开关",
"running": "运行中",
"stopped": "已停止"
},
"modelTest": {
"title": "模型测试配置",
"description": "配置模型测试使用的默认模型和提示词"
},
"failover": {
"title": "自动故障转移",
"description": "配置故障转移队列和熔断策略"
},
"pricing": {
"title": "成本定价",
"description": "管理各模型 Token 计费规则"
},
"globalProxy": {
"title": "全局出站代理",
"description": "配置 CC Switch 访问外部 API 时使用的代理"
},
"data": {
"title": "数据管理",
"description": "导入和导出本地配置数据"
},
"backup": {
"title": "备份与恢复",
"description": "管理自动备份,查看和恢复数据库快照"
},
"cloudSync": {
"title": "云同步",
"description": "通过 WebDAV 在多设备间同步数据"
},
"rectifier": {
"title": "整流器",
"description": "自动修复 API 请求中的兼容性问题",
"enabled": "启用整流器",
"enabledDescription": "总开关,关闭后所有整流功能将被禁用",
"requestGroup": "请求整流",
"responseGroup": "响应整流",
"thinkingSignature": "Thinking 签名整流",
"thinkingSignatureDescription": "当 Anthropic 类型供应商返回 thinking 签名不兼容或非法请求等错误时,自动移除不兼容的 thinking 相关块并对同一供应商重试一次",
"thinkingBudget": "Thinking Budget 整流",
"thinkingBudgetDescription": "当 Anthropic 类型供应商返回 budget_tokens 约束错误(如至少 1024)时,自动将 thinking 规范为 enabled 并将 budget 设为 32000,同时在需要时将 max_tokens 设为 64000,然后重试一次"
},
"optimizer": {
"title": "Bedrock 请求优化器",
"description": "在请求发送前自动优化 Thinking 和 Cache 配置(仅 Bedrock 供应商生效)",
"enabled": "启用优化器",
"thinkingOptimizer": "Thinking 优化",
"thinkingOptimizerDescription": "自动为 Opus/Sonnet 启用 Adaptive Thinking,为旧模型注入 Extended Thinking",
"cacheInjection": "Cache 注入",
"cacheInjectionDescription": "自动在请求关键位置注入 Cache 断点,减少重复 token 计费",
"cacheTtl": "Cache TTL",
"cacheTtl5m": "5 分钟",
"cacheTtl1h": "1 小时"
},
"logConfig": {
"title": "日志管理",
"description": "控制日志输出级别",
"enabled": "启用日志",
"enabledDescription": "总开关,关闭后所有日志将被禁用",
"level": "日志级别",
"levelDescription": "设置输出的最低日志级别",
"levels": {
"error": "错误",
"warn": "警告",
"info": "信息",
"debug": "调试",
"trace": "跟踪"
},
"levelHint": "日志级别说明:",
"levelDesc": {
"error": "仅严重错误",
"warn": "错误 + 警告信息",
"info": "一般操作信息(默认)",
"debug": "详细信息,包含 SSE 流和请求/响应详情",
"trace": "全部日志,最详细"
}
}
},
"language": "界面语言",
"languageHint": "切换后立即预览界面语言,保存后永久生效。",
"theme": "外观主题",
"themeHint": "选择应用的外观主题,立即生效。",
"themeLight": "浅色",
"themeDark": "深色",
"themeSystem": "跟随系统",
"importExport": "SQL 导入导出",
"importExportHint": "导入/导出数据库 SQL 备份(仅支持导入由 CC Switch 导出的备份),便于备份或迁移。",
"exportConfig": "导出 SQL 备份",
"selectConfigFile": "选择 SQL 文件",
"noFileSelected": "尚未选择配置文件。",
"import": "导入",
"importing": "导入中...",
"importSuccess": "导入成功!",
"importFailed": "导入失败",
"syncLiveFailed": "已导入,但同步到当前供应商失败,请手动重新选择一次供应商。",
"importPartialSuccess": "配置已导入,但同步到当前供应商失败。",
"importPartialHint": "请手动重新选择一次供应商以刷新对应配置。",
"configExported": "配置已导出到:",
"exportFailed": "导出失败",
"selectFileFailed": "请选择有效的 SQL 备份文件",
"configCorrupted": "SQL 文件可能已损坏或格式不正确",
"backupId": "备份ID",
"backupManager": {
"title": "数据库备份",
"description": "自动备份的数据库快照,可用于恢复到之前的状态",
"empty": "暂无备份",
"restore": "恢复",
"restoring": "恢复中...",
"confirmTitle": "确认恢复备份",
"confirmMessage": "恢复到此备份将覆盖当前数据库。恢复前会自动创建安全备份。",
"restoreSuccess": "恢复成功!安全备份已创建",
"restoreFailed": "恢复失败",
"safetyBackupId": "安全备份ID",
"intervalLabel": "自动备份间隔",
"retainLabel": "备份保留数量",
"intervalDisabled": "禁用",
"intervalHours": "{{hours}} 小时",
"intervalDays": "{{days}} 天",
"rename": "重命名",
"renameSuccess": "备份重命名成功",
"renameFailed": "重命名失败",
"namePlaceholder": "输入新名称",
"createBackup": "立即备份",
"creating": "备份中...",
"createSuccess": "备份创建成功",
"createFailed": "备份创建失败",
"delete": "删除",
"deleting": "删除中...",
"deleteSuccess": "备份已删除",
"deleteFailed": "删除失败",
"deleteConfirmTitle": "确认删除备份",
"deleteConfirmMessage": "此备份将被永久删除,此操作无法撤消。"
},
"webdavSync": {
"title": "WebDAV 云同步",
"description": "通过 WebDAV 在多设备间同步数据库和技能配置。",
"baseUrl": "WebDAV 服务器地址",
"baseUrlPlaceholder": "https://dav.jianguoyun.com/dav/",
"username": "WebDAV 账户",
"usernamePlaceholder": "邮箱账号",
"password": "WebDAV 密码",
"passwordPlaceholder": "应用密码(坚果云请使用「第三方应用密码」)",
"remoteRoot": "远程根目录",
"profile": "同步配置名",
"autoSync": "自动同步",
"autoSyncHint": "开启后每次数据库变更都会自动上传到 WebDAV。",
"test": "测试连接",
"testing": "测试中...",
"testSuccess": "连接成功",
"testFailed": "连接失败:{{error}}",
"save": "保存配置",
"saving": "保存中...",
"saveFailed": "保存配置失败:{{error}}",
"upload": "上传到云端",
"uploading": "上传中...",
"uploadSuccess": "已上传到 WebDAV",
"uploadFailed": "上传失败:{{error}}",
"autoSyncFailedToast": "自动同步失败:{{error}}",
"download": "从云端下载",
"downloading": "下载中...",
"downloadSuccess": "已从 WebDAV 下载并恢复",
"downloadFailed": "下载失败:{{error}}",
"lastSync": "上次同步:{{time}}",
"autoSyncLastErrorTitle": "上次自动同步失败",
"autoSyncLastErrorHint": "请检查网络或 WebDAV 配置,系统会在后续变更时继续自动重试。",
"missingUrl": "请填写 WebDAV 服务器地址",
"presets": {
"label": "服务商",
"jianguoyun": "坚果云",
"jianguoyunHint": "请在坚果云「安全选项」中生成「第三方应用密码」,不要使用登录密码。",
"nextcloud": "Nextcloud",
"nextcloudHint": "请将 your-server 替换为你的 Nextcloud 服务器地址,USERNAME 替换为你的用户名。",
"synology": "群晖 NAS",
"synologyHint": "请先在群晖「套件中心」安装并启用 WebDAV Server 套件。",
"custom": "自定义"
},
"remoteRootDefault": "默认: cc-switch-sync",
"profileDefault": "默认: default",
"saveAndTestSuccess": "配置已保存,连接正常",
"saveAndTestFailed": "配置已保存,但连接测试失败:{{error}}",
"noRemoteData": "云端没有找到同步数据",
"incompatibleVersion": "远端数据版本不兼容(协议 v{{protocolVersion}},数据库 {{dbCompatVersion}}),当前支持协议 v2 / db-v6",
"unsaved": "未保存",
"saved": "已保存",
"unsavedChanges": "请先保存配置",
"saveBeforeSync": "请先保存配置,再使用上传/下载。",
"fetchingRemote": "获取远端信息...",
"fetchRemoteFailed": "获取远端信息失败,请检查配置和网络后重试。",
"confirmDownload": {
"title": "从云端恢复",
"deviceName": "上传设备",
"createdAt": "上传时间",
"path": "远端路径",
"dbCompat": "数据库兼容层",
"artifacts": "包含内容",
"legacyNotice": "检测到旧版云端路径。恢复完成后,下次上传将写入新路径 v2/db-v6。",
"warning": "恢复将覆盖本地所有数据和技能配置",
"confirm": "确认恢复"
},
"confirmUpload": {
"title": "上传到云端",
"content": "将同步以下内容到 WebDAV 服务器:",
"dbItem": "数据库(所有 Provider 配置和数据)",
"skillsItem": "技能包(所有自定义技能)",
"targetPath": "目标路径",
"existingData": "云端已有数据",
"deviceName": "上传设备",
"createdAt": "上传时间",
"path": "远端路径",
"dbCompat": "数据库兼容层",
"warning": "将覆盖云端已有的同步数据",
"legacyNotice": "检测到旧版云端路径数据。本次上传将写入新路径 v2/db-v6,不会覆盖旧路径。",
"confirm": "确认上传"
}
},
"autoReload": "数据已刷新",
"languageOptionChinese": "中文",
"languageOptionEnglish": "English",
"languageOptionJapanese": "日本語",
"windowBehavior": "窗口行为",
"windowBehaviorHint": "配置窗口最小化与 Claude 插件联动策略。",
"launchOnStartup": "开机自启",
"launchOnStartupDescription": "随系统启动自动运行 CC Switch",
"silentStartup": "静默启动",
"silentStartupDescription": "程序启动时不显示主窗口,仅在系统托盘运行",
"autoLaunchFailed": "设置开机自启失败",
"minimizeToTray": "关闭时最小化到托盘",
"minimizeToTrayDescription": "勾选后点击关闭按钮会隐藏到系统托盘,取消则直接退出应用。",
"useAppWindowControls": "启用应用级窗口按钮",
"useAppWindowControlsDescription": "开启后使用应用自建的最小化、最大化/还原、关闭按钮;关闭后沿用系统窗口模式。",
"enableClaudePluginIntegration": "应用到 Claude Code 插件",
"enableClaudePluginIntegrationDescription": "开启后 Vscode Claude Code 插件的供应商将随本软件切换",
"skipClaudeOnboarding": "跳过 Claude Code 初次安装确认",
"skipClaudeOnboardingDescription": "开启后跳过 Claude Code 初次安装确认",
"appVisibility": {
"title": "主页面显示",
"description": "选择在主页面显示的应用",
"claudeDesc": "Anthropic Claude Code CLI",
"codexDesc": "OpenAI Codex CLI",
"geminiDesc": "Google Gemini CLI",
"opencodeDesc": "OpenCode CLI"
},
"skillStorage": {
"title": "Skills 存储位置",
"description": "选择 CC Switch 存放 Skills 主副本的目录",
"ccSwitch": "CC Switch",
"unified": "~/.agents/skills",
"ccSwitchHint": "技能存储在 ~/.cc-switch/skills/,由 CC Switch 统一管理并同步到各应用。",
"unifiedHint": "技能存储在 ~/.agents/skills/,遵循 Agent Skills 开放标准。兼容的工具(Claude Code、Codex、Gemini CLI 等)可直接发现此目录中的技能。",
"confirmTitle": "迁移技能存储",
"confirmMessage": "将移动 {{count}} 个技能到新位置,是否继续?",
"migrationSuccess": "已成功迁移 {{count}} 个技能",
"migrationPartial": "迁移了 {{migrated}} 个技能,{{errors}} 个失败,请查看日志"
},
"skillSync": {
"title": "Skills 同步方式",
"description": "选择 Skills 的文件同步策略",
"symlink": "软连接",
"copy": "文件复制",
"symlinkHint": "软连接节省磁盘空间并支持实时同步。注意:Windows 可能需要管理员权限或开启开发者模式"
},
"terminal": {
"title": "首选终端",
"description": "选择点击终端按钮时使用的终端应用",
"fallbackHint": "如果选择的终端不可用,将自动使用系统默认终端",
"options": {
"macos": {
"terminal": "Terminal.app",
"iterm2": "iTerm2",
"alacritty": "Alacritty",
"kitty": "Kitty",
"ghostty": "Ghostty",
"wezterm": "WezTerm",
"kaku": "Kaku"
},
"windows": {
"cmd": "命令提示符",
"powershell": "PowerShell",
"wt": "Windows Terminal"
},
"linux": {
"gnomeTerminal": "GNOME Terminal",
"konsole": "Konsole",
"xfce4Terminal": "Xfce4 Terminal",
"alacritty": "Alacritty",
"kitty": "Kitty",
"ghostty": "Ghostty"
}
}
},
"configDirectoryOverride": "配置目录覆盖(高级)",
"configDirectoryDescription": "在 WSL 等环境使用 Claude Code 或 Codex 的时候,可手动指定为 WSL 里的配置目录,供应商数据与主环境保持一致。",
"appConfigDir": "CC Switch 配置目录",
"appConfigDirDescription": "自定义 CC Switch 的配置存储位置(指定到云同步文件夹即可云同步配置)",
"browsePlaceholderApp": "例如:C:\\Users\\Administrator\\.cc-switch",
"claudeConfigDir": "Claude Code 配置目录",
"claudeConfigDirDescription": "覆盖 Claude 配置目录 (settings.json),同时会在同级存放 Claude MCP 的 claude.json。",
"codexConfigDir": "Codex 配置目录",
"codexConfigDirDescription": "覆盖 Codex 配置目录。",
"geminiConfigDir": "Gemini 配置目录",
"geminiConfigDirDescription": "覆盖 Gemini 配置目录 (.env)。",
"opencodeConfigDir": "OpenCode 配置目录",
"opencodeConfigDirDescription": "覆盖 OpenCode 配置目录 (opencode.json)。",
"openclawConfigDir": "OpenClaw 配置目录",
"openclawConfigDirDescription": "覆盖 OpenClaw 配置目录 (openclaw.json)。",
"hermesConfigDir": "Hermes 配置目录",
"hermesConfigDirDescription": "覆盖 Hermes 配置目录 (config.yaml)。",
"browsePlaceholderClaude": "例如:/home/<你的用户名>/.claude",
"browsePlaceholderCodex": "例如:/home/<你的用户名>/.codex",
"browsePlaceholderGemini": "例如:/home/<你的用户名>/.gemini",
"browsePlaceholderOpencode": "例如:/home/<你的用户名>/.config/opencode",
"browsePlaceholderOpenclaw": "例如:/home/<你的用户名>/.openclaw",
"browsePlaceholderHermes": "例如:/home/<你的用户名>/.hermes",
"browseDirectory": "浏览目录",
"resetDefault": "恢复默认目录(需保存后生效)",
"checkForUpdates": "检查更新",
"updateTo": "更新到 v{{version}}",
"updating": "更新中...",
"checking": "检查中...",
"upToDate": "已是最新",
"aboutHint": "查看版本信息与更新状态。",
"portableMode": "当前为便携版,更新需手动下载。",
"updateAvailable": "检测到新版本:{{version}}",
"updateBadge": "有更新可用",
"updateFailed": "更新安装失败,已尝试打开下载页面。",
"checkUpdateFailed": "检查更新失败,请稍后重试。",
"openReleaseNotesFailed": "打开更新日志失败",
"releaseNotes": "更新日志",
"viewReleaseNotes": "查看该版本更新日志",
"viewCurrentReleaseNotes": "查看当前版本更新日志",
"oneClickInstall": "一键安装",
"oneClickInstallHint": "安装 Claude Code / Codex / Gemini CLI / OpenCode",
"localEnvCheck": "本地环境检查",
"envBadge": {
"wsl": "WSL",
"windows": "Win",
"macos": "macOS",
"linux": "Linux"
},
"wslShell": "Shell",
"wslShellFlag": "标志",
"installCommandsCopied": "安装命令已复制",
"installCommandsCopyFailed": "复制失败,请手动复制。",
"importFailedError": "导入配置失败:{{message}}",
"exportFailedError": "导出配置失败:",
"restartRequired": "需要重启应用",
"restartRequiredMessage": "修改 CC Switch 配置目录后需要重启应用才能生效,是否立即重启?",
"restartNow": "立即重启",
"restartLater": "稍后重启",
"restartFailed": "应用重启失败,请手动关闭后重新打开。",
"devModeRestartHint": "开发模式下不支持自动重启,请手动重新启动应用。",
"saving": "正在保存...",
"globalProxy": {
"label": "全局代理",
"hint": "代理所有请求(API、Skills 下载等)。开启本地路由时,应用的请求也会经过此代理。留空表示直连。",
"username": "用户名(可选)",
"password": "密码(可选)",
"test": "测试连接",
"scan": "扫描本地代理",
"clear": "清除",
"scanFailed": "扫描失败:{{error}}",
"saved": "代理设置已保存",
"saveFailed": "保存失败:{{error}}",
"testSuccess": "连接成功!延迟 {{latency}}ms",
"testFailed": "连接失败:{{error}}",
"pricingDefaultsTitle": "计费默认配置",
"pricingDefaultsDescription": "设置各应用的默认倍率与计费模式来源。",
"pricingAppLabel": "应用",
"defaultCostMultiplierLabel": "默认倍率",
"defaultCostMultiplierHint": "用于成本计算的倍率,支持小数。",
"pricingModelSourceLabel": "计费模式",
"pricingModelSourceRequest": "请求模型",
"pricingModelSourceResponse": "返回模型",
"pricingSave": "保存计费配置",
"pricingSaved": "计费配置已保存",
"pricingSaveFailed": "保存计费配置失败:{{error}}",
"pricingLoadFailed": "加载计费配置失败:{{error}}",
"defaultCostMultiplierRequired": "默认倍率不能为空",
"defaultCostMultiplierInvalid": "默认倍率格式不正确"
},
"saveFailedGeneric": "保存失败,请重试"
},
"apps": {
"claude": "Claude",
"codex": "Codex",
"gemini": "Gemini",
"opencode": "OpenCode",
"openclaw": "OpenClaw",
"hermes": "Hermes"
},
"sessionManager": {
"title": "会话管理",
"subtitle": "管理 Claude Code、Codex、OpenCode、OpenClaw、Hermes 与 Gemini CLI 会话记录",
"searchPlaceholder": "搜索会话内容、目录或 ID",
"searchSessions": "搜索会话",
"providerFilterAll": "全部",
"sessionList": "会话列表",
"manageBatchTooltip": "进入批量管理",
"exitBatchModeTooltip": "退出批量管理",
"batchModeHint": "勾选要删除的会话",
"selectForBatch": "选择会话",
"selectedCount": "已选 {{count}} 项",
"selectAllFiltered": "全选当前",
"clearFilteredSelection": "取消全选",
"clearSelection": "清空已选",
"deleteSelected": "批量删除",
"batchDeleting": "删除中...",
"loadingSessions": "加载会话中...",
"noSessions": "未发现会话",
"selectSession": "请选择会话查看详情",
"noSummary": "暂无摘要",
"lastActive": "最近活跃",
"projectDir": "项目目录",
"sourcePath": "原始文件",
"copyResumeCommand": "复制恢复命令",
"resumeCommandCopied": "恢复命令已复制",
"openInTerminal": "在终端恢复",
"terminalTargetTerminal": "Terminal",
"terminalTargetKitty": "kitty",
"terminalTargetCopy": "仅复制",
"terminalLaunched": "终端已启动",
"openFailed": "终端启动失败",
"resumeFallbackCopied": "已复制恢复命令,可手动粘贴到终端",
"copyProjectDir": "复制目录",
"projectDirCopied": "目录已复制",
"copySourcePath": "复制原始文件",
"sourcePathCopied": "原始文件已复制",
"delete": "删除会话",
"deleting": "删除中...",
"deleteTooltip": "永久删除此本地会话记录",
"deleteConfirmTitle": "删除会话",
"deleteConfirmMessage": "将永久删除本地会话“{{title}}”\nSession ID: {{sessionId}}\n\n此操作不可恢复。",
"deleteConfirmAction": "删除会话",
"sessionDeleted": "会话已删除",
"deleteFailed": "删除会话失败: {{error}}",
"batchDeleteConfirmTitle": "批量删除会话",
"batchDeleteConfirmMessage": "将永久删除已选中的 {{count}} 个本地会话记录。\n\n此操作不可恢复。",
"batchDeleteConfirmAction": "删除所选会话",
"batchDeleteSuccess": "已删除 {{count}} 个会话",
"batchDeleteFailed": "{{failed}} 个会话删除失败",
"batchDeleteRequestFailed": "批量删除失败,请稍后重试",
"loadingMessages": "加载会话内容中...",
"emptySession": "该会话暂无可展示内容",
"clickToCopyPath": "点击复制路径",
"tocTitle": "对话目录",
"justNow": "刚刚",
"minutesAgo": "{{count}} 分钟前",
"hoursAgo": "{{count}} 小时前",
"daysAgo": "{{count}} 天前",
"roleUser": "用户",
"roleSystem": "系统",
"roleTool": "工具",
"resume": "恢复会话",
"resumeTooltip": "在终端中恢复此会话",
"noResumeCommand": "此会话无法恢复",
"copyCommand": "复制命令",
"copyMessage": "复制消息",
"messageCopied": "已复制消息内容",
"conversationHistory": "对话记录",
"expandContent": "展开完整内容",
"collapseContent": "收起"
},
"console": {
"providerSwitchReceived": "收到供应商切换事件:",
"setupListenerFailed": "设置供应商切换监听器失败:",
"updateProviderFailed": "更新供应商失败:",
"autoImportFailed": "自动导入默认配置失败:",
"openLinkFailed": "打开链接失败:",
"getVersionFailed": "获取版本信息失败:",
"loadSettingsFailed": "加载设置失败:",
"getConfigPathFailed": "获取配置路径失败:",
"getConfigDirFailed": "获取配置目录失败:",
"detectPortableFailed": "检测便携模式失败:",
"saveSettingsFailed": "保存设置失败:",
"updateFailed": "更新失败:",
"checkUpdateFailed": "检查更新失败:",
"openConfigFolderFailed": "打开配置文件夹失败:",
"selectConfigDirFailed": "选择配置目录失败:",
"getDefaultConfigDirFailed": "获取默认配置目录失败:",
"openReleaseNotesFailed": "打开更新日志失败:"
},
"providerForm": {
"supplierName": "供应商名称",
"supplierNameRequired": "供应商名称 *",
"supplierNamePlaceholder": "例如:Anthropic 官方",
"websiteUrl": "官网地址",
"websiteUrlPlaceholder": "https://example.com(可选)",
"apiEndpoint": "请求地址",
"apiEndpointPlaceholder": "https://your-api-endpoint.com",
"codexApiEndpointPlaceholder": "https://your-api-endpoint.com/v1",
"manageAndTest": "管理与测速",
"configContent": "配置内容",
"officialNoApiKey": "官方登录无需填写 API Key,直接保存即可",
"codexOfficialNoApiKey": "官方无需填写 API Key,直接保存即可",
"codexApiKeyAutoFill": "只需要填这里,下方 auth.json 会自动填充",
"apiKeyAutoFill": "只需要填这里,下方配置会自动填充",
"cnOfficialApiKeyHint": "💡 只需填写 API Key,请求地址已预设",
"aggregatorApiKeyHint": "💡 只需填写 API Key,请求地址已预设",
"thirdPartyApiKeyHint": "💡 只需填写 API Key,请求地址已预设",
"customApiKeyHint": "💡 自定义配置需手动填写所有必要字段",
"omoHint": "💡 OMO 配置管理 Agent 模型分配,兼容 oh-my-openagent.jsonc / oh-my-opencode.jsonc",
"officialHint": "💡 官方供应商使用浏览器登录,无需配置 API Key",
"getApiKey": "获取 API Key",
"partnerPromotion": {
"packycode": "PackyCode 是 CC Switch 的官方合作伙伴,使用此链接注册并在充值时填写 \"cc-switch\" 优惠码,可以享受9折优惠",
"minimax_cn": "MiniMax Coding Plan 特惠,Starter 套餐 9.9 元起",
"minimax_en": "MiniMax Coding Plan 黑五特惠,Starter 套餐现仅 $2/月(2折优惠!)",
"dmxapi": "Claude Code 专属模型 3.4 折优惠进行中!",
"cubence": "Cubence 是 CC Switch 的官方合作伙伴,使用此链接注册并在充值时填写 \"CCSWITCH\" 优惠码,每次充值均可享受9折优惠",
"aigocode": "AIGoCode 是 CC Switch 的官方合作伙伴,使用此链接注册首次充值时可以获得10%额度奖励!",
"rightcode": "RightCode 是 CC Switch 的官方合作伙伴,使用此链接注册每次充值均可赠送5%额外额度!",
"aicodemirror": "AICodeMirror 是 CC Switch 的官方合作伙伴,使用此链接注册可享受8折优惠!",
"aicoding": "AI Coding 为 CC Switch 的用户提供了特殊优惠,首次充值可以享受 9 折优惠!",
"crazyrouter": "CrazyRouter 为 CC Switch 的用户提供了特殊优惠,首次充值赠予 30% 额外额度!",
"sssaicode": "SSAI Code 为 CC Switch 的用户提供了特殊优惠,每次充值赠予额外 $10 额度!",
"siliconflow": "硅基流动是 CC Switch 的官方合作伙伴",
"ucloud": "优云智算为CC Switch 的用户提供了特殊优惠,通过此链接注册,可以获得五元平台体验金!",
"micu": "Micu 是 CC Switch 的官方合作伙伴",
"ctok": "官网加入CTok社群,订阅套餐。",
"ddshub": "呆呆兽为CC Switch 的用户提供了特别福利,通过此链接注册后,首单充值可额外赠送 10% 额度(联系群主领取)!",
"lionccapi": "LionCCAPI 为 CC Switch 的用户提供了特别福利,注册后添加客服微信HSQBJ088888888,发暗号cc-switch备注即可送10美金额度!",
"shengsuanyun": "胜算云为 CC Switch 的用户提供了特别福利,使用此链接注册的新用户可获 10 元模力及首充 10% 赠送!"
},
"presets": {
"ucloud": "优云智算",
"shengsuanyun": "胜算云",
"openrouter": "OpenRouter",
"deepseek": "DeepSeek",
"together": "Together AI"
},
"parameterConfig": "参数配置 - {{name}} *",
"mainModel": "主模型 (可选)",
"mainModelPlaceholder": "例如: GLM-4.6",
"fastModel": "快速模型 (可选)",
"fastModelPlaceholder": "例如: GLM-4.5-Air",
"modelHint": "💡 留空将使用供应商的默认模型",
"apiHint": "💡 填写兼容 Claude API 的服务端点地址,不要以斜杠结尾",
"apiHintOAI": "💡 填写兼容 OpenAI Chat Completions 的服务端点地址,不要以斜杠结尾",
"apiHintGeminiNative": "💡 建议填写 Gemini Native 的 base URL,例如 https://generativelanguage.googleapis.com 或 https://generativelanguage.googleapis.com/v1beta;代理会自动补全 models/*:generateContent",
"codexApiHint": "💡 填写兼容 OpenAI Response 格式的服务端点地址",
"fillSupplierName": "请填写供应商名称",
"fillConfigContent": "请填写配置内容",
"fillParameter": "请填写 {{label}}",
"fillTemplateValue": "请填写 {{label}}",
"endpointRequired": "非官方供应商请填写 API 端点",
"apiKeyRequired": "非官方供应商请填写 API Key",
"configJsonError": "配置JSON格式错误,请检查语法",
"authJsonRequired": "auth.json 必须是 JSON 对象",
"authJsonError": "auth.json 格式错误,请检查JSON语法",
"fillAuthJson": "请填写 auth.json 配置",
"fillApiKey": "请填写 OPENAI_API_KEY",
"visitWebsite": "访问 {{url}}",
"anthropicModel": "主模型",
"anthropicSmallFastModel": "快速模型",
"apiFormat": "API 格式",
"apiFormatHint": "选择供应商 API 的输入格式",
"fullUrlLabel": "完整 URL",
"fullUrlEnabled": "完整 URL 模式",
"fullUrlDisabled": "标记为完整 URL",
"fullUrlHint": "💡 请填写完整请求 URL,并且必须开启路由后使用;路由将直接使用此 URL,不拼接路径",
"fullUrlHintGeminiNative": "💡 Gemini Native 下,完整 URL 模式同时兼容两类地址:1. 官方/标准 Gemini URL,代理会按模型和流式参数自动归一化;2. 自定义 relay 的完整 URL,代理会尽量原样使用,只补查询参数,不再强行追加 models 路径",
"apiFormatAnthropic": "Anthropic Messages (原生)",
"apiFormatOpenAIChat": "OpenAI Chat Completions (需开启路由)",
"apiFormatOpenAIResponses": "OpenAI Responses API (需开启路由)",
"apiFormatGeminiNative": "Gemini Native generateContent (需开启路由)",
"authField": "认证字段",
"authFieldAuthToken": "ANTHROPIC_AUTH_TOKEN(默认)",
"authFieldApiKey": "ANTHROPIC_API_KEY",
"authFieldHint": "选择写入配置的认证环境变量名",
"apiHintResponses": "💡 填写兼容 OpenAI Responses API 的服务端点地址,不要以斜杠结尾",
"anthropicDefaultHaikuModel": "Haiku 默认模型",
"anthropicDefaultSonnetModel": "Sonnet 默认模型",
"anthropicDefaultOpusModel": "Opus 默认模型",
"modelPlaceholder": "",
"smallModelPlaceholder": "",
"haikuModelPlaceholder": "",
"modelHelper": "可选:指定默认使用的 Claude 模型,留空则使用系统默认。",
"modelMappingLabel": "模型映射",
"modelMappingHint": "如果供应商原生提供 Claude 系列模型,通常无需配置。仅在需要将请求映射到不同模型名称时填写。",
"quickSetModels": "一键设置",
"quickSetSuccess": "已将模型名称应用到所有字段",
"advancedOptionsToggle": "高级选项",
"advancedOptionsHint": "包含 API 格式、认证字段、模型映射等配置。大多数场景下保持默认即可。",
"categoryOfficial": "官方",
"categoryCnOfficial": "开源官方",
"categoryAggregation": "聚合服务",
"categoryThirdParty": "第三方",
"fetchModels": "获取模型列表",
"fetchingModels": "正在获取...",
"fetchModelsSuccess": "获取到 {{count}} 个模型",
"fetchModelsFailed": "获取模型列表失败",
"fetchModelsEmpty": "未找到可用模型",
"fetchModelsNeedApiKey": "请先填写 API Key",
"fetchModelsNeedEndpoint": "请先填写 API 端点",
"fetchModelsNeedConfig": "请先填写 API 端点和 API Key",
"fetchModelsAuthFailed": "API Key 无效或无权限",
"fetchModelsNotSupported": "该供应商不支持获取模型列表",
"fetchModelsTimeout": "请求超时,请检查网络连接"
},
"copilot": {
"authSection": "GitHub Copilot 认证",
"authStatus": "认证状态",
"authenticated": "已认证: {{username}}",
"notAuthenticated": "未认证",
"loginWithGitHub": "使用 GitHub 登录",
"loginRequired": "请先登录 GitHub Copilot",
"waitingForAuth": "等待授权中...",
"enterCode": "请在浏览器中输入验证码:",
"logout": "注销",
"authSuccess": "GitHub Copilot 认证成功",
"authFailed": "认证失败: {{error}}",
"authTimeout": "认证超时,请重试",
"tokenExpired": "令牌已过期,请重新认证",
"accountCount": "{{count}} 个账号",
"selectAccount": "选择账号",
"selectAccountPlaceholder": "选择一个 GitHub 账号",
"useDefaultAccount": "使用默认账号",
"loggedInAccounts": "已登录账号",
"defaultAccount": "默认",
"selected": "已选中",
"removeAccount": "移除账号",
"setAsDefault": "设为默认",
"addAnotherAccount": "添加其他账号",
"logoutAll": "注销所有账号",
"retry": "重试",
"copyCode": "复制代码",
"migrationFailed": "旧认证数据迁移失败:{{error}}",
"loadModelsFailed": "加载 Copilot 模型列表失败",
"deploymentType": "GitHub 部署类型",
"deploymentGitHubCom": "GitHub.com",
"deploymentEnterprise": "GitHub Enterprise Server",
"enterpriseDomainPlaceholder": "例如:company.ghe.com"
},
"codexOauth": {
"authStatus": "认证状态",
"notAuthenticated": "未认证",
"loginWithChatGPT": "使用 ChatGPT 登录",
"loginRequired": "请先登录 ChatGPT 账号",
"waitingForAuth": "等待授权中...",
"enterCode": "请在浏览器中输入以下验证码:",
"accountCount": "{{count}} 个账号",
"selectAccount": "选择账号",
"selectAccountPlaceholder": "选择一个 ChatGPT 账号",
"useDefaultAccount": "使用默认账号",
"loggedInAccounts": "已登录账号",
"defaultAccount": "默认",
"selected": "已选中",
"removeAccount": "移除账号",
"setAsDefault": "设为默认",
"addAnotherAccount": "添加其他账号",
"logoutAll": "注销所有账号",
"retry": "重试",
"copyCode": "复制代码"
},
"endpointTest": {
"title": "请求地址管理",
"endpoints": "个端点",
"autoSelect": "自动选择",
"testSpeed": "测速",
"testing": "测速中",
"addEndpointPlaceholder": "https://api.example.com",
"done": "完成",
"noEndpoints": "暂无端点",
"failed": "失败",
"enterValidUrl": "请输入有效的 URL",
"invalidUrlFormat": "URL 格式不正确",
"onlyHttps": "仅支持 HTTP/HTTPS",
"urlExists": "该地址已存在",
"saveFailed": "保存失败,请重试",
"loadEndpointsFailed": "加载自定义端点失败:",
"addEndpointFailed": "添加自定义端点失败:",
"removeEndpointFailed": "删除自定义端点失败:",
"removeFailed": "删除失败: {{error}}",
"updateLastUsedFailed": "更新端点使用时间失败",
"pleaseAddEndpoint": "请先添加端点",
"testUnavailable": "测速功能不可用",
"noResult": "未返回结果",
"testFailed": "测速失败: {{error}}",
"empty": "暂无端点"
},
"providerAdvanced": {
"testConfig": "模型测试配置",
"useCustomConfig": "使用单独配置",
"testConfigDesc": "为此供应商配置单独的模型测试参数,不启用时使用全局配置。",
"testModel": "测试模型",
"testModelPlaceholder": "留空使用全局配置",
"timeoutSecs": "超时时间(秒)",
"testPrompt": "测试提示词",
"degradedThreshold": "降级阈值(毫秒)",
"maxRetries": "最大重试次数",
"pricingConfig": "计费配置",
"useCustomPricing": "使用单独配置",
"pricingConfigDesc": "为此供应商配置单独的计费参数,不启用时使用全局默认配置。",
"costMultiplier": "成本倍率",
"costMultiplierPlaceholder": "留空使用全局默认(1",
"costMultiplierHint": "实际成本 = 基础成本 × 倍率,支持小数如 1.5",
"pricingModelSourceLabel": "计费模式",
"pricingModelSourceInherit": "继承全局默认",
"pricingModelSourceRequest": "请求模型",
"pricingModelSourceResponse": "返回模型",
"pricingModelSourceHint": "选择按请求模型还是返回模型进行定价匹配"
},
"codexConfig": {
"authJson": "auth.json (JSON) *",
"authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",
"authJsonHint": "Codex auth.json 配置内容",
"configToml": "config.toml (TOML)",
"configTomlHint": "Codex config.toml 配置内容",
"writeCommonConfig": "写入通用配置",
"editCommonConfig": "编辑通用配置",
"editCommonConfigTitle": "编辑 Codex 通用配置片段",
"commonConfigHint": "该片段会在勾选'写入通用配置'时追加到 config.toml 末尾",
"apiUrlLabel": "API 请求地址",
"extractFromCurrent": "从编辑内容提取",
"extractNoCommonConfig": "当前编辑内容没有可提取的通用配置",
"extractFailed": "提取失败: {{error}}",
"saveFailed": "保存失败: {{error}}",
"modelNameHint": "指定使用的模型,将自动更新到 config.toml 中",
"modelName": "模型名称",
"modelNamePlaceholder": "例如: gpt-5-codex",
"contextWindow1M": "1M 上下文窗口",
"autoCompactLimit": "压缩阈值",
"autoCompactLimitHint": "上下文 token 数达到此阈值时自动压缩历史"
},
"geminiConfig": {
"envFile": "环境变量 (.env)",
"envFileHint": "使用 .env 格式配置 Gemini 环境变量",
"configJson": "配置文件 (config.json)",
"configJsonHint": "使用 JSON 格式配置 Gemini 扩展参数(可选)",
"writeCommonConfig": "写入通用配置",
"editCommonConfig": "编辑通用配置",
"editCommonConfigTitle": "编辑 Gemini 通用配置片段",
"commonConfigHint": "该片段会写入 Gemini 的 .env(不允许包含 GOOGLE_GEMINI_BASE_URL、GEMINI_API_KEY",
"extractFromCurrent": "从编辑内容提取",
"extractNoCommonConfig": "当前编辑内容没有可提取的通用配置",
"extractFailed": "提取失败: {{error}}",
"saveFailed": "保存失败: {{error}}",
"extractedConfigInvalid": "提取的配置格式错误",
"invalidJsonFormat": "通用配置片段格式错误(必须是有效的 JSON)",
"commonConfigInvalidKeys": "通用配置片段不能包含 GOOGLE_GEMINI_BASE_URL 或 GEMINI_API_KEY(发现:{{keys}}",
"commonConfigInvalidValues": "通用配置片段的值必须是字符串",
"noCommonConfigToApply": "通用配置片段为空或没有可写入的内容",
"configMergeFailed": "配置合并失败: {{error}}",
"configReplaceFailed": "配置替换失败: {{error}}"
},
"opencode": {
"npmPackage": "接口格式",
"selectPackage": "选择接口格式",
"npmPackageHint": "选择 AI 服务的 API 接口格式",
"baseUrl": "Base URL",
"baseUrlHint": "自定义 API 端点地址",
"models": "模型配置",
"modelsHint": "配置可用的模型及其显示名称",
"addModel": "添加模型",
"modelId": "模型 ID",
"modelName": "显示名称",
"noModels": "暂无模型配置",
"modelsRequired": "请至少添加一个模型配置",
"providerKey": "供应商标识",
"providerKeyPlaceholder": "my-provider",
"providerKeyHint": "配置文件中的唯一标识符,只能使用小写字母、数字和连字符",
"providerKeyLockedHint": "该供应商已添加到应用配置中,供应商标识不可修改",
"providerKeyRequired": "请填写供应商标识",
"providerKeyDuplicate": "此标识已被使用,请更换",
"providerKeyInvalid": "标识格式无效,只能使用小写字母、数字和连字符",
"extraOptions": "额外选项",
"extraOptionsHint": "配置额外的 SDK 选项,如 timeout、setCacheKey 等。值会自动解析类型(数字、布尔值等)。",
"addExtraOption": "添加",
"extraOptionKey": "键名",
"extraOptionValue": "值",
"extraOptionKeyPlaceholder": "timeout",
"extraOptionValuePlaceholder": "600000",
"noExtraOptions": "暂无额外选项",
"noModelOptions": "模型选项,点击 + 添加",
"modelExtraFields": "模型属性",
"noModelExtraFields": "模型属性 (variants, cost 等),点击 + 添加",
"modelExtraFieldKeyPlaceholder": "variants",
"sdkOptions": "SDK 选项",
"modelOptionKeyPlaceholder": "provider",
"modelOptionValuePlaceholder": "{\"order\": [\"baseten\"]}"
},
"providerPreset": {
"label": "预设供应商",
"custom": "自定义配置",
"other": "其他",
"hint": "选择预设后可继续调整下方字段。"
},
"usage": {
"title": "使用统计",
"subtitle": "查看 AI 模型的使用情况和成本统计",
"today": "24小时",
"last7days": "7天",
"last30days": "30天",
"presetToday": "当天",
"preset1d": "1d",
"preset7d": "7d",
"preset14d": "14d",
"preset30d": "30d",
"totalRequests": "总请求数",
"totalCost": "总成本",
"cost": "成本",
"perMillion": "(每百万)",
"trends": "使用趋势",
"rangeToday": "过去 24 小时 (按小时)",
"rangeLast7Days": "过去 7 天",
"rangeLast30Days": "过去 30 天",
"totalTokens": "总 Token 数",
"cacheTokens": "缓存 Token",
"requestLogs": "请求日志",
"providerStats": "Provider 统计",
"modelStats": "模型统计",
"time": "时间",
"provider": "供应商",
"billingModel": "计费模型",
"inputTokens": "输入",
"outputTokens": "输出",
"cacheReadTokens": "缓存命中",
"cacheCreationTokens": "缓存创建",
"timingInfo": "用时/首字",
"status": "状态",
"multiplier": "倍率",
"requestModel": "请求模型",
"responseModel": "返回模型",
"noData": "暂无数据",
"unknownProvider": "未知供应商",
"stream": "流",
"nonStream": "非流",
"source": "来源",
"requestsLabel": "次请求",
"costLabel": "总成本",
"appFilter": {
"all": "全部",
"claude": "Claude Code",
"codex": "Codex",
"gemini": "Gemini"
},
"dataSources": "数据来源",
"dataSource": {
"proxy": "路由",
"session_log": "会话日志",
"codex_db": "Codex 数据库",
"codex_session": "Codex 会话日志",
"gemini_session": "Gemini 会话日志"
},
"sessionSync": {
"trigger": "同步会话日志",
"import": "导入会话",
"resync": "同步",
"imported": "从会话日志导入了 {{count}} 条记录",
"upToDate": "会话日志已是最新",
"failed": "会话同步失败"
},
"totalRecords": "共 {{total}} 条记录",
"goToPage": "跳转",
"pageInputPlaceholder": "页码",
"modelPricing": "模型定价",
"loadPricingError": "加载定价数据失败",
"modelPricingDesc": "配置各模型的 Token 成本",
"noPricingData": "暂无定价数据。点击\"新增\"添加模型定价配置。",
"model": "模型",
"displayName": "显示名称",
"inputCost": "输入成本",
"outputCost": "输出成本",
"cacheReadCost": "缓存命中",
"cacheWriteCost": "缓存创建",
"deleteConfirmTitle": "确认删除",
"deleteConfirmDesc": "确定要删除此模型定价配置吗?此操作无法撤销。",
"queryFailed": "查询失败",
"refreshUsage": "刷新用量",
"planUsage": "套餐用量",
"invalid": "已失效",
"total": "总:",
"used": "已使用:",
"remaining": "剩余:",
"justNow": "刚刚",
"minutesAgo": "{{count}} 分钟前",
"hoursAgo": "{{count}} 小时前",
"daysAgo": "{{count}} 天前",
"multiplePlans": "{{count}} 个套餐",
"expand": "展开",
"collapse": "收起",
"modelIdPlaceholder": "例如: claude-3-5-sonnet-20241022",
"displayNamePlaceholder": "例如: Claude 3.5 Sonnet",
"appType": "应用类型",
"allApps": "全部应用",
"statusCode": "状态码",
"searchProviderPlaceholder": "搜索供应商...",
"searchModelPlaceholder": "搜索模型...",
"timeRange": "时间范围",
"customRange": "日历筛选",
"customRangeHint": "支持日期与时间",
"startTime": "开始时间",
"endTime": "结束时间",
"input": "Input",
"output": "Output",
"cacheWrite": "创建",
"cacheRead": "命中",
"baseCost": "基础",
"costMultiplier": "成本倍率",
"withMultiplier": "含倍率",
"requestDetail": "请求详情",
"requestNotFound": "请求未找到",
"basicInfo": "基本信息",
"tokenUsage": "Token 使用量",
"cacheCreationCost": "缓存写入成本",
"costBreakdown": "成本明细",
"performance": "性能信息",
"latency": "延迟",
"errorMessage": "错误信息",
"requests": "请求数",
"tokens": "Tokens",
"avgCost": "平均成本",
"avgLatency": "平均延迟",
"successRate": "成功率",
"requestId": "请求 ID",
"never": "从不",
"modelId": "模型 ID",
"modelIdRequired": "模型 ID 不能为空",
"inputCostPerMillion": "输入成本 (每百万 tokens, USD)",
"outputCostPerMillion": "输出成本 (每百万 tokens, USD)",
"invalidPrice": "价格必须为非负数",
"invalidTimeRange": "请选择完整的开始/结束时间",
"invalidTimeRangeOrder": "开始时间不能晚于结束时间",
"timeRangeTooLarge": "时间范围过大,请缩小范围",
"addPricing": "新增定价",
"editPricing": "编辑定价",
"pricingAdded": "定价已添加",
"pricingUpdated": "定价已更新",
"cacheReadCostPerMillion": "缓存读取成本 (每百万 tokens, USD)",
"cacheCreationCostPerMillion": "缓存写入成本 (每百万 tokens, USD)"
},
"usageScript": {
"title": "配置用量查询",
"enableUsageQuery": "启用用量查询",
"presetTemplate": "预设模板",
"requestUrl": "请求地址",
"requestUrlPlaceholder": "例如:https://api.example.com",
"method": "HTTP 方法",
"templateCustom": "自定义",
"templateGeneral": "通用模板",
"templateNewAPI": "NewAPI",
"templateCopilot": "GitHub Copilot",
"templateTokenPlan": "Token Plan",
"templateBalance": "官方",
"copilotAutoAuth": "自动使用 OAuth 认证,无需手动配置凭证",
"tokenPlanHint": "自动使用供应商的 API Key 和 Base URL 查询 Token Plan 额度",
"balanceHint": "自动使用供应商的 API Key 查询账户余额",
"resetDate": "重置日期",
"premiumRequests": "Premium 请求",
"credentialsConfig": "凭证配置",
"credentialsHint": "留空则自动使用供应商配置",
"optional": "可选",
"apiKeyPlaceholder": "留空则使用供应商的 API Key",
"baseUrlPlaceholder": "留空则使用供应商的请求地址",
"baseUrl": "请求地址",
"accessToken": "访问令牌(在个人安全设置里获取)",
"accessTokenPlaceholder": "在'安全设置'里生成",
"userId": "用户 ID",
"userIdPlaceholder": "例如:114514",
"defaultPlan": "默认套餐",
"queryFailedMessage": "查询失败",
"queryScript": "查询脚本(JavaScript",
"timeoutSeconds": "超时时间(秒)",
"headers": "请求头",
"body": "请求 Body",
"timeoutHint": "范围: 2-30 秒",
"timeoutMustBeInteger": "超时时间必须为整数,小数部分已忽略",
"timeoutCannotBeNegative": "超时时间不能为负数",
"autoIntervalMinutes": "自动查询间隔(分钟,0 表示不自动查询)",
"autoQueryInterval": "自动查询间隔(分钟)",
"autoQueryIntervalHint": "0 表示不自动查询,建议 5-60 分钟",
"intervalMustBeInteger": "自动查询间隔必须为整数,小数部分已忽略",
"intervalCannotBeNegative": "自动查询间隔不能为负数",
"intervalAdjusted": "自动查询间隔已调整为 {{value}} 分钟",
"scriptHelp": "脚本编写说明:",
"configFormat": "配置格式:",
"commentOptional": "可选",
"commentResponseIsJson": "response 是 API 返回的 JSON 数据",
"extractorFormat": "extractor 返回格式(所有字段均为可选):",
"tips": "💡 提示:",
"testing": "测试中...",
"testScript": "测试脚本",
"format": "格式化",
"saveConfig": "保存配置",
"scriptEmpty": "脚本配置不能为空",
"mustHaveReturn": "脚本必须包含 return 语句",
"testSuccess": "测试成功!",
"testFailed": "测试失败",
"formatSuccess": "格式化成功",
"formatFailed": "格式化失败",
"supportedVariables": "支持的变量",
"variablesHint": "支持变量: {{apiKey}}, {{baseUrl}} | extractor 函数接收 API 响应的 JSON 对象",
"scriptConfig": "请求配置",
"extractorCode": "提取器代码",
"extractorHint": "返回对象需包含剩余额度等字段",
"fieldIsValid": "• isValid: 布尔值,套餐是否有效",
"fieldInvalidMessage": "• invalidMessage: 字符串,失效原因说明(当 isValid 为 false 时显示)",
"fieldRemaining": "• remaining: 数字,剩余额度",
"fieldUnit": "• unit: 字符串,单位(如 \"USD\"",
"fieldPlanName": "• planName: 字符串,套餐名称",
"fieldTotal": "• total: 数字,总额度",
"fieldUsed": "• used: 数字,已用额度",
"fieldExtra": "• extra: 字符串,扩展字段,可自由补充需要展示的文本",
"tip1": "• 变量 {{apiKey}} 和 {{baseUrl}} 会自动替换",
"tip2": "• extractor 函数在沙箱环境中执行,支持 ES2020+ 语法",
"tip3": "• 整个配置必须用 () 包裹,形成对象字面量表达式"
},
"errors": {
"usage_query_failed": "用量查询失败",
"configLoadFailedTitle": "配置加载失败",
"configLoadFailedMessage": "无法读取配置文件:\n{{path}}\n\n错误详情:\n{{detail}}\n\n请手动检查 JSON 是否有效,或从同目录的备份文件(如 config.json.bak)恢复。\n\n应用将退出以便您进行修复。"
},
"presetSelector": {
"title": "选择配置类型",
"custom": "自定义",
"customDescription": "手动配置供应商,需要填写完整的配置信息",
"officialDescription": "官方登录,不需要填写 API Key",
"presetDescription": "使用预设配置,只需填写 API Key"
},
"mcp": {
"title": "MCP 管理",
"import": "导入",
"importExisting": "导入已有",
"addMcp": "添加MCP",
"claudeTitle": "Claude Code MCP 管理",
"codexTitle": "Codex MCP 管理",
"geminiTitle": "Gemini MCP 管理",
"unifiedPanel": {
"title": "MCP 服务器管理",
"addServer": "添加服务器",
"editServer": "编辑服务器",
"deleteServer": "删除服务器",
"deleteConfirm": "确定要删除服务器 \"{{id}}\" 吗?此操作无法撤销。",
"noServers": "暂无服务器",
"enabledApps": "启用的应用",
"noImportFound": "未发现需要导入的 MCP 服务器。所有服务器已在 CC Switch 统一管理中。",
"importSuccess": "成功导入 {{count}} 个 MCP 服务器",
"apps": {
"claude": "Claude",
"codex": "Codex",
"gemini": "Gemini",
"opencode": "OpenCode",
"openclaw": "OpenClaw",
"hermes": "Hermes"
}
},
"userLevelPath": "用户级 MCP 配置路径",
"serverList": "服务器列表",
"loading": "加载中...",
"empty": "暂无 MCP 服务器",
"emptyDescription": "点击右上角按钮添加第一个 MCP 服务器",
"add": "添加 MCP",
"addServer": "新增 MCP",
"editServer": "编辑 MCP",
"addClaudeServer": "新增 Claude Code MCP",
"editClaudeServer": "编辑 Claude Code MCP",
"addCodexServer": "新增 Codex MCP",
"editCodexServer": "编辑 Codex MCP",
"configPath": "配置路径",
"serverCount": "已配置 {{count}} 个 MCP 服务器",
"enabledCount": "已启用 {{count}} 个",
"template": {
"fetch": "快速模板:mcp-fetch"
},
"form": {
"title": "MCP 标题(唯一)",
"titlePlaceholder": "my-mcp-server",
"name": "显示名称",
"namePlaceholder": "例如 @modelcontextprotocol/server-time",
"enabledApps": "启用到应用",
"noAppsWarning": "至少选择一个应用",
"description": "描述",
"descriptionPlaceholder": "可选的描述信息",
"tags": "标签(逗号分隔)",
"tagsPlaceholder": "stdio, time, utility",
"homepage": "主页链接",
"homepagePlaceholder": "https://example.com",
"docs": "文档链接",
"docsPlaceholder": "https://example.com/docs",
"additionalInfo": "附加信息",
"jsonConfig": "完整的 JSON 配置",
"jsonConfigOrPrefix": "完整的 JSON 配置或者使用",
"tomlConfigOrPrefix": "完整的 TOML 配置或者使用",
"jsonPlaceholder": "{\n \"type\": \"stdio\",\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-fetch\"]\n}",
"tomlConfig": "完整的 TOML 配置",
"tomlPlaceholder": "type = \"stdio\"\ncommand = \"uvx\"\nargs = [\"mcp-server-fetch\"]",
"useWizard": "配置向导",
"syncOtherSide": "同步到 {{target}}",
"syncOtherSideHint": "勾选后会把当前配置同时写入 {{target}},若存在同名配置将被覆盖",
"willOverwriteWarning": "将覆盖 {{target}} 中的同名配置"
},
"wizard": {
"title": "MCP 配置向导",
"hint": "快速配置 MCP 服务器,自动生成 JSON 配置",
"type": "类型",
"typeStdio": "stdio",
"typeHttp": "http",
"typeSse": "sse",
"command": "命令",
"commandPlaceholder": "npx 或 uvx",
"args": "参数",
"argsPlaceholder": "arg1\narg2",
"env": "环境变量",
"envPlaceholder": "KEY1=value1\nKEY2=value2",
"url": "URL",
"urlPlaceholder": "https://api.example.com/mcp",
"urlRequired": "请输入 URL",
"headers": "请求头(可选)",
"headersPlaceholder": "Authorization: Bearer your_token_here\nContent-Type: application/json",
"preview": "配置预览",
"apply": "应用配置"
},
"id": "标识 (唯一)",
"type": "类型",
"command": "命令",
"validateCommand": "校验命令",
"args": "参数",
"argsPlaceholder": "例如:mcp-server-fetch --help",
"env": "环境变量 (一行一个,KEY=VALUE)",
"envPlaceholder": "FOO=bar\nHELLO=world",
"reset": "重置",
"msg": {
"saved": "已保存",
"deleted": "已删除",
"enabled": "已启用",
"disabled": "已禁用",
"templateAdded": "已添加模板"
},
"error": {
"idRequired": "请填写标识",
"idExists": "该标识已存在,请更换",
"jsonInvalid": "JSON 格式错误,请检查",
"tomlInvalid": "TOML 格式错误,请检查",
"commandRequired": "请填写命令",
"singleServerObjectRequired": "此处只需单个服务器对象,请不要粘贴包含 mcpServers 的整份配置",
"saveFailed": "保存失败",
"deleteFailed": "删除失败"
},
"validation": {
"ok": "命令可用",
"fail": "命令不可用"
},
"confirm": {
"deleteTitle": "删除 MCP 服务器",
"deleteMessage": "确定要删除 MCP 服务器 \"{{id}}\" 吗?此操作无法撤销。"
},
"presets": {
"title": "选择 MCP 类型",
"enable": "启用",
"enabled": "已启用",
"installed": "已安装",
"docs": "文档",
"requiresEnv": "需要环境变量",
"fetch": {
"name": "mcp-server-fetch",
"description": "通用 HTTP 请求工具,支持 GET/POST 等 HTTP 方法,适合快速请求接口/抓取网页数据"
},
"time": {
"name": "@modelcontextprotocol/server-time",
"description": "时间查询工具,提供当前时间、时区转换、日期计算等功能"
},
"memory": {
"name": "@modelcontextprotocol/server-memory",
"description": "知识图谱记忆系统,支持存储实体、关系和观察,让 AI 记住对话中的重要信息"
},
"sequential-thinking": {
"name": "@modelcontextprotocol/server-sequential-thinking",
"description": "顺序思考工具,帮助 AI 将复杂问题分解为多个步骤,逐步深入思考"
},
"context7": {
"name": "@upstash/context7-mcp",
"description": "Context7 文档搜索工具,提供最新的库文档和代码示例,配置 key 会有更高限额"
}
}
},
"prompts": {
"manage": "提示词",
"title": "{{appName}} 提示词管理",
"claudeTitle": "Claude 提示词管理",
"codexTitle": "Codex 提示词管理",
"add": "添加提示词",
"edit": "编辑提示词",
"addTitle": "添加 {{appName}} 提示词",
"editTitle": "编辑 {{appName}} 提示词",
"import": "导入现有",
"count": "共 {{count}} 个提示词",
"enabled": "已启用",
"enable": "启用",
"enabledName": "已启用: {{name}}",
"noneEnabled": "未启用任何提示词",
"currentFile": "当前 {{filename}} 内容",
"empty": "暂无提示词",
"emptyDescription": "点击右上角按钮添加或导入提示词",
"loading": "加载中...",
"name": "名称",
"namePlaceholder": "例如:项目默认提示词",
"description": "描述",
"descriptionPlaceholder": "可选的描述信息",
"content": "内容",
"contentPlaceholder": "# {{filename}}\n\n在此输入提示词内容...",
"loadFailed": "加载提示词失败",
"saveSuccess": "保存成功",
"saveFailed": "保存失败",
"deleteSuccess": "删除成功",
"deleteFailed": "删除失败",
"enableSuccess": "启用成功",
"enableFailed": "启用失败",
"disableSuccess": "禁用成功",
"disableFailed": "禁用失败",
"importSuccess": "导入成功",
"importFailed": "导入失败",
"confirm": {
"deleteTitle": "确认删除",
"deleteMessage": "确定要删除提示词 \"{{name}}\" 吗?"
}
},
"workspace": {
"title": "Workspace 文件管理",
"manage": "Workspace",
"files": {
"agents": "Agent 操作指令和规则",
"soul": "Agent 人格和沟通风格",
"user": "用户档案和偏好",
"identity": "Agent 名称和头像",
"tools": "本地工具文档",
"memory": "长期记忆和决策记录",
"heartbeat": "心跳运行清单",
"bootstrap": "首次运行仪式",
"boot": "网关重启清单"
},
"editing": "编辑 {{filename}}",
"saveSuccess": "保存成功",
"saveFailed": "保存失败",
"loadFailed": "读取失败",
"openDirectory": "在文件管理器中打开",
"dailyMemory": {
"title": "每日记忆",
"sectionTitle": "每日记忆",
"cardTitle": "每日记忆文件",
"cardDescription": "浏览管理每日记忆",
"createToday": "添加记忆",
"empty": "暂无每日记忆文件",
"loadFailed": "加载每日记忆文件失败",
"createFailed": "创建每日记忆文件失败",
"deleteSuccess": "每日记忆文件已删除",
"deleteFailed": "删除每日记忆文件失败",
"confirmDeleteTitle": "删除每日记忆",
"confirmDeleteMessage": "确定删除 {{date}} 的每日记忆吗?此操作不可撤销。",
"searchPlaceholder": "搜索全文内容...",
"searchScopeHint": "全文搜索所有每日记忆 ⌘F",
"searchCloseHint": "Esc 关闭",
"noSearchResults": "没有找到匹配的每日记忆。",
"searching": "搜索中...",
"searchFailed": "搜索失败",
"matchCount": "{{count}} 处匹配"
}
},
"openclaw": {
"backupCreated": "已创建备份:{{path}}",
"providerKey": "供应商标识",
"providerKeyPlaceholder": "my-provider",
"providerKeyHint": "配置文件中的唯一标识符,只能使用小写字母、数字和连字符",
"providerKeyLockedHint": "该供应商已添加到应用配置中,供应商标识不可修改",
"providerKeyRequired": "请填写供应商标识",
"providerKeyDuplicate": "此标识已被使用,请更换",
"providerKeyInvalid": "标识格式无效,只能使用小写字母、数字和连字符",
"apiProtocol": "API 协议",
"selectProtocol": "选择 API 协议",
"apiProtocolHint": "选择与供应商 API 兼容的协议类型。大多数供应商使用 OpenAI Completions 格式。",
"baseUrl": "API 端点",
"baseUrlHint": "供应商的 API 端点地址。",
"models": "模型列表",
"addModel": "添加模型",
"noModels": "暂无模型配置。点击添加模型来配置可用模型。",
"modelId": "模型 ID",
"modelIdPlaceholder": "claude-3-sonnet",
"modelName": "显示名称",
"modelNamePlaceholder": "Claude 3 Sonnet",
"contextWindow": "上下文窗口",
"maxTokens": "最大输出 Tokens",
"reasoning": "推理模式",
"reasoningOn": "启用",
"reasoningOff": "关闭",
"inputTypes": "输入类型",
"inputCost": "输入价格 ($/M tokens)",
"outputCost": "输出价格 ($/M tokens)",
"advancedOptions": "高级选项",
"cacheReadCost": "缓存读取价格 ($/M tokens)",
"cacheWriteCost": "缓存写入价格 ($/M tokens)",
"cacheCostHint": "缓存价格用于计算 Prompt Caching 的成本。如不使用缓存可留空。",
"modelsHint": "配置该供应商支持的模型。模型 ID 用于 API 调用,显示名称用于界面展示。",
"userAgent": "发送 User-Agent",
"userAgentHint": "部分供应商需要浏览器 User-Agent 才能正常访问。",
"env": {
"title": "环境变量",
"description": "管理 openclaw.json 中的环境变量配置(API Key、自定义变量等)",
"editorHint": "以 JSON 形式编辑整个 env 节点。支持 env.vars、env.shellEnv 等嵌套对象。",
"objectRequired": "OpenClaw 的 env 必须是 JSON 对象。",
"invalidJson": "OpenClaw 的 env 必须是合法 JSON。",
"empty": "OpenClaw 的 env 不能为空。空对象请使用 {}。",
"keyPlaceholder": "变量名",
"valuePlaceholder": "值",
"add": "添加变量",
"saveSuccess": "环境变量已保存",
"saveFailed": "保存环境变量失败",
"loadFailed": "读取环境变量失败",
"duplicateKey": "检测到重复的变量名: {{key}}"
},
"tools": {
"title": "工具权限",
"description": "管理 openclaw.json 中的工具权限配置(允许/拒绝列表)",
"profile": "权限模式",
"profileMinimal": "最小权限",
"profileCoding": "编码",
"profileMessaging": "对话",
"profileFull": "完全访问",
"profileUnset": "未设置",
"unsupportedProfileTitle": "检测到不受支持的工具配置",
"unsupportedProfileDescription": "当前 tools.profile 的值“{{value}}”不在 OpenClaw 支持列表内。在你手动选择新值之前,它会被保留。",
"unsupportedProfileLabel": "不受支持",
"allowList": "允许列表",
"denyList": "拒绝列表",
"patternPlaceholder": "工具名称或模式",
"addAllow": "添加允许",
"addDeny": "添加拒绝",
"saveSuccess": "工具权限已保存",
"saveFailed": "保存工具权限失败",
"loadFailed": "读取工具权限失败"
},
"agents": {
"title": "Agents 配置",
"description": "管理 openclaw.json 中的 agents.defaults 配置(默认模型、运行参数等)",
"modelSection": "模型配置",
"primaryModel": "默认模型",
"primaryModelHint": "从已配置供应商的模型中选择默认模型",
"notSet": "未设置",
"fallbackModels": "回退模型",
"fallbackModelsHint": "当主模型不可用时,按优先级依次尝试以下回退模型",
"addFallback": "添加回退模型",
"noModels": "暂无已配置的供应商模型。请先添加 OpenClaw 供应商。",
"notInList": "{{value}} (供应商未配置)",
"runtimeSection": "运行参数",
"workspace": "工作区路径",
"timeout": "超时时间(秒)",
"contextTokens": "上下文 Token 数",
"maxConcurrent": "最大并发数",
"legacyTimeoutTitle": "检测到旧版超时字段",
"legacyTimeoutDescription": "当前配置仍在使用 agents.defaults.timeout。保存本页面时会迁移为 timeoutSeconds。",
"saveSuccess": "Agents 配置已保存",
"saveFailed": "保存 Agents 配置失败",
"loadFailed": "读取 Agents 配置失败"
},
"health": {
"title": "检测到 OpenClaw 配置警告",
"invalidToolsProfile": "tools.profile 使用了不受支持的值。OpenClaw 当前只支持 minimal、coding、messaging、full。",
"legacyTimeout": "agents.defaults.timeout 已废弃。打开并保存 Agents 面板即可迁移到 timeoutSeconds。",
"stringifiedEnvVars": "env.vars 应为对象,但当前值看起来像被字符串化或已损坏。",
"stringifiedShellEnv": "env.shellEnv 应为对象,但当前值看起来像被字符串化或已损坏。",
"parseFailed": "openclaw.json 不是合法 JSON5。请先修复文件,再通过这里编辑。"
},
"primaryModel": "默认模型",
"fallbackModel": "回退模型"
},
"hermes": {
"form": {
"baseUrl": "API 端点",
"baseUrlHint": "供应商的 API 端点地址。",
"providerKey": "供应商标识",
"providerKeyPlaceholder": "my-provider",
"providerKeyHint": "只能使用小写字母、数字和连字符。用作 config.yaml 中的供应商名称。",
"providerKeyLockedHint": "该供应商已添加到 Hermes 配置中,标识不可修改。",
"providerKeyRequired": "供应商标识不能为空",
"providerKeyInvalid": "供应商标识只能包含小写字母、数字和连字符",
"providerKeyDuplicate": "该供应商标识已存在",
"apiMode": "API 模式",
"apiModeHint": "供应商 API 协议。请根据端点选择正确的协议。",
"apiModeChatCompletions": "OpenAI Chat Completions",
"apiModeAnthropicMessages": "Anthropic Messages",
"apiModeCodexResponses": "OpenAI Responses",
"apiModeBedrockConverse": "AWS Bedrock Converse",
"baseUrlRequired": "API 端点不能为空",
"baseUrlScheme": "请使用 http:// 或 https:// 开头的地址",
"baseUrlInvalid": "API 端点不是有效的 URL",
"models": "模型列表",
"addModel": "添加模型",
"noModels": "暂无模型配置。切换到此供应商时将不会更新默认模型。",
"modelId": "模型 ID",
"modelIdPlaceholder": "anthropic/claude-opus-4-7",
"modelName": "显示名称",
"modelNamePlaceholder": "Claude Opus 4.7",
"contextLength": "上下文长度",
"advancedOptions": "高级选项",
"modelsHint": "切换到此供应商时,第一个模型会写入顶层 model.default。",
"primaryModel": "默认模型",
"fallbackModel": "备选模型",
"providerAdvanced": "供应商高级选项",
"rateLimitDelay": "请求间隔(秒)",
"rateLimitDelayHint": "连续请求间的最小间隔秒数(可选)。留空表示无限制。"
},
"webui": {
"open": "打开 Hermes Web UI",
"offline": "Hermes Web UI 未启动,请先运行 `hermes web` 启动服务。",
"openFailed": "打开 Hermes Web UI 失败",
"fixInWebUI": "在 Hermes Web UI 修复"
},
"health": {
"title": "检测到 Hermes 配置警告",
"parseFailed": "config.yaml 无法解析为有效 YAML。请先修复文件再在此编辑。",
"configNotFound": "未找到 Hermes config.yaml。请在 ~/.hermes/config.yaml 创建或在设置中配置路径。",
"envParseFailed": ".env 文件无法解析。",
"modelNoDefault": "model 段未设置默认模型或供应商。",
"customProvidersNotList": "custom_providers 应为 YAML 列表(以 `-` 开头),而不是映射。",
"modelProviderUnknown": "model.provider 指向的供应商未在配置中找到。",
"modelDefaultNotInProvider": "model.default 指向的模型不在所选供应商的模型列表中。",
"duplicateProviderName": "custom_providers 中存在重复的供应商名,只会有一条生效。",
"duplicateProviderBaseUrl": "custom_providers 中存在重复的 base_url,可能是意外复制。",
"schemaMigratedV12": "Hermes 新版 schema 把部分供应商移到了 'providers:' dict。CC Switch 中以只读方式显示,编辑或删除请通过 Hermes Web UI 操作。"
},
"memory": {
"title": "记忆管理",
"agentTab": "Agent 记忆 (MEMORY.md)",
"userTab": "用户画像 (USER.md)",
"usage": "已用 {{current}} / {{limit}} 字符",
"overLimit": "已超过上限,Hermes 下次加载时会截断",
"enableOn": "已启用",
"enableOff": "已禁用",
"disabledHint": "在重新启用前 Hermes 会跳过此记忆",
"toggleFailed": "切换记忆状态失败",
"saveSuccess": "记忆已保存",
"saveFailed": "保存记忆失败",
"loadFailed": "读取记忆文件失败",
"openConfig": "在 Hermes Web UI 调整上限",
"runtimeNote": "更改将在 Hermes 下次启动或新建会话时生效。"
}
},
"env": {
"warning": {
"title": "检测到系统环境变量冲突",
"description": "发现 {{count}} 个环境变量可能会覆盖您的配置"
},
"actions": {
"expand": "查看详情",
"collapse": "收起",
"selectAll": "全选",
"clearSelection": "取消选择",
"deleteSelected": "删除选中 ({{count}})",
"deleting": "删除中..."
},
"field": {
"value": "值",
"source": "来源"
},
"source": {
"userRegistry": "用户环境变量 (注册表)",
"systemRegistry": "系统环境变量 (注册表)",
"systemEnv": "系统环境变量"
},
"delete": {
"success": "环境变量已成功删除",
"error": "删除环境变量失败"
},
"backup": {
"location": "备份位置: {{path}}"
},
"confirm": {
"title": "确认删除环境变量",
"message": "确定要删除 {{count}} 个环境变量吗?",
"backupNotice": "删除前将自动备份,您可以稍后恢复。删除后需要重启应用或终端才能生效。",
"confirm": "确认删除"
},
"error": {
"noSelection": "请选择要删除的环境变量"
}
},
"skills": {
"manage": "Skills",
"title": "Skills 管理",
"description": "从流行的仓库发现并安装技能,扩展 Claude Code/Codex/Gemini 的能力",
"refresh": "刷新",
"refreshing": "刷新中...",
"repoManager": "仓库管理",
"count": "共 {{count}} 个技能",
"empty": "暂无可用技能",
"emptyDescription": "添加技能仓库以发现可用的技能",
"addRepo": "添加技能仓库",
"loading": "加载中...",
"installed": "已安装",
"install": "安装",
"installing": "安装中...",
"uninstall": "卸载",
"uninstalling": "卸载中...",
"view": "查看",
"noDescription": "暂无描述",
"loadFailed": "加载失败",
"installSuccess": "技能 {{name}} 已安装",
"installFailed": "安装失败",
"uninstallSuccess": "技能 {{name}} 已卸载",
"uninstallFailed": "卸载失败",
"update": "更新",
"updating": "更新中...",
"updateAvailable": "可更新",
"updateSuccess": "技能 {{name}} 已更新到最新版本",
"updateFailed": "更新失败",
"checkUpdates": "检查更新",
"checkingUpdates": "检查中...",
"noUpdates": "所有技能已是最新版本",
"updatesFound": "发现 {{count}} 个技能有可用更新",
"updateAll": "全部更新 ({{count}})",
"updatingAll": "更新中...",
"updateAllSuccess": "已成功更新 {{count}} 个技能",
"error": {
"skillNotFound": "技能不存在:{{directory}}",
"missingRepoInfo": "缺少仓库信息(owner 或 name",
"downloadTimeout": "下载仓库 {{owner}}/{{name}} 超时({{timeout}}秒)",
"downloadTimeoutHint": "请检查网络连接或稍后重试",
"skillPathNotFound": "仓库 {{owner}}/{{name}} 中未找到技能路径 '{{path}}'",
"skillDirNotFound": "技能目录不存在:{{path}}",
"directoryConflict": "技能目录 '{{directory}}' 已被 {{existing_repo}} 占用,无法从 {{new_repo}} 安装",
"emptyArchive": "下载的压缩包为空",
"downloadFailed": "下载失败:HTTP {{status}}",
"allBranchesFailed": "所有分支下载失败,尝试了:{{branches}}",
"httpError": "HTTP 错误 {{status}}",
"http403": "GitHub 访问受限,可能是请求频率过高",
"http404": "仓库或分支不存在,请检查地址",
"http429": "请求过于频繁,请等待后重试",
"parseMetadataFailed": "解析技能元数据失败",
"getHomeDirFailed": "无法获取用户主目录",
"noSkillsInZip": "ZIP 文件中未找到技能(需包含 SKILL.md 文件)",
"networkError": "网络错误",
"fsError": "文件系统错误",
"unknownError": "未知错误",
"suggestion": {
"checkNetwork": "请检查网络连接",
"checkProxy": "建议配置 HTTP 代理",
"retryLater": "请稍后重试",
"checkRepoUrl": "请检查仓库地址和分支名称",
"checkDiskSpace": "请检查磁盘空间",
"checkPermission": "请检查目录权限",
"uninstallFirst": "请先卸载已安装的同名技能",
"checkZipContent": "请确认 ZIP 文件包含有效的技能目录(含 SKILL.md 文件)"
}
},
"repo": {
"title": "管理技能仓库",
"description": "添加或删除 GitHub 技能仓库源",
"url": "仓库 URL",
"urlPlaceholder": "owner/name 或 https://github.com/owner/name",
"branch": "分支",
"branchPlaceholder": "main",
"path": "技能路径",
"pathPlaceholder": "skills (可选,留空扫描根目录)",
"add": "添加仓库",
"list": "已添加的仓库",
"empty": "暂无仓库",
"invalidUrl": "无效的仓库 URL 格式",
"addSuccess": "仓库 {{owner}}/{{name}} 已添加,识别到 {{count}} 个技能",
"addFailed": "添加失败",
"removeSuccess": "仓库 {{owner}}/{{name}} 已删除",
"removeFailed": "删除失败",
"skillCount": "识别到 {{count}} 个技能"
},
"search": "搜索技能",
"searchPlaceholder": "搜索技能名称或仓库名称...",
"searchSource": {
"repos": "仓库",
"skillssh": "skills.sh"
},
"skillssh": {
"searchPlaceholder": "搜索 skills.sh(至少 2 个字符)...",
"installs": "{{count}} 次安装",
"loadMore": "加载更多",
"loading": "正在搜索 skills.sh...",
"noResults": "未找到 \"{{query}}\" 相关技能",
"error": "搜索 skills.sh 失败",
"poweredBy": "由 skills.sh 提供"
},
"filter": {
"placeholder": "状态筛选",
"all": "全部",
"installed": "已安装",
"uninstalled": "未安装",
"repo": "仓库筛选",
"allRepos": "全部仓库"
},
"noResults": "未找到匹配的技能",
"noInstalled": "暂无已安装的技能",
"noInstalledDescription": "从仓库发现并安装技能,或导入已有的技能",
"discover": "发现技能",
"import": "导入已有",
"importDescription": "选择要导入到 CC Switch 统一管理的技能",
"importSuccess": "成功导入 {{count}} 个技能",
"importSelected": "导入已选 ({{count}})",
"noUnmanagedFound": "未发现需要导入的技能。所有技能已在 CC Switch 统一管理中。",
"foundIn": "发现于",
"local": "本地",
"uninstallConfirm": "确定要卸载技能 \"{{name}}\" 吗?这将从所有应用中移除该技能,并在删除前自动创建本地备份。",
"uninstallInMainPanel": "请在主面板中卸载技能",
"notFound": "未找到技能",
"backup": {
"location": "备份位置: {{path}}"
},
"restoreFromBackup": {
"button": "从备份中恢复",
"title": "从备份中恢复",
"description": "选择一个 Skills 备份,将文件恢复到本地并重新加入当前列表。",
"empty": "暂无可恢复的 Skills 备份",
"createdAt": "备份时间",
"path": "备份路径",
"restore": "恢复",
"restoring": "恢复中...",
"delete": "删除",
"deleting": "删除中...",
"deleteSuccess": "技能备份 {{name}} 已删除",
"deleteFailed": "删除技能备份失败",
"deleteConfirmTitle": "确认删除备份",
"deleteConfirmMessage": "确定要删除技能备份 \"{{name}}\" 吗?此操作无法撤销。",
"success": "技能 {{name}} 已从备份恢复",
"failed": "从备份恢复失败"
},
"apps": {
"claude": "Claude",
"codex": "Codex",
"gemini": "Gemini",
"opencode": "OpenCode",
"openclaw": "OpenClaw"
},
"installFromZip": {
"button": "从 ZIP 安装",
"installing": "安装中...",
"successSingle": "技能 {{name}} 已安装",
"successMultiple": "成功安装 {{count}} 个技能",
"noSkillsFound": "ZIP 文件中未找到技能(需包含 SKILL.md 文件)"
}
},
"deeplink": {
"confirmImport": "确认导入供应商配置",
"confirmImportDescription": "以下配置将导入到 CC Switch",
"importPrompt": "导入提示词",
"importPromptDescription": "请确认是否导入此系统提示词",
"importMcp": "导入 MCP Servers",
"importMcpDescription": "请确认是否导入这些 MCP Servers",
"importSkill": "添加 Skill 仓库",
"importSkillDescription": "请确认是否添加此 Skill 仓库",
"promptImportSuccess": "提示词导入成功",
"promptImportSuccessDescription": "已导入提示词: {{name}}",
"mcpImportSuccess": "MCP Servers 导入成功",
"mcpImportSuccessDescription": "成功导入 {{count}} 个服务器",
"mcpPartialSuccess": "部分导入成功",
"mcpPartialSuccessDescription": "成功: {{success}}, 失败: {{failed}}",
"skillImportSuccess": "Skill 仓库添加成功",
"skillImportSuccessDescription": "已添加仓库: {{repo}}",
"app": "应用类型",
"providerName": "供应商名称",
"homepage": "官网地址",
"endpoint": "API 端点",
"apiKey": "API 密钥",
"icon": "图标",
"model": "模型",
"haikuModel": "Haiku 模型",
"sonnetModel": "Sonnet 模型",
"opusModel": "Opus 模型",
"multiModel": "多模态模型",
"notes": "备注",
"import": "导入",
"importing": "导入中...",
"warning": "请确认以上信息准确无误后再导入。导入后可在供应商列表中编辑或删除。",
"parseError": "深链接解析失败",
"importSuccess": "导入成功",
"importSuccessDescription": "供应商 \"{{name}}\" 已成功导入",
"importError": "导入失败",
"configSource": "配置来源",
"configEmbedded": "内嵌配置",
"configRemote": "远程配置",
"configDetails": "配置详情",
"configUrl": "配置文件 URL",
"configMergeError": "合并配置文件失败",
"primaryEndpoint": "主",
"mcp": {
"title": "批量导入 MCP Servers",
"targetApps": "目标应用",
"serverCount": "MCP Servers ({{count}} 个)",
"enabledWarning": "导入后将立即写入所有指定应用的配置文件"
},
"prompt": {
"title": "导入系统提示词",
"app": "应用",
"name": "名称",
"description": "描述",
"contentPreview": "内容预览",
"enabledWarning": "导入后将立即启用此提示词,其他提示词将被禁用"
},
"skill": {
"title": "添加 Claude Skill 仓库",
"repo": "GitHub 仓库",
"directory": "目标目录",
"branch": "分支",
"skillsPath": "Skills 路径",
"hint": "此操作将添加 Skill 仓库到列表。",
"hintDetail": "添加后,您可以在 Skills 管理界面中选择安装具体的 Skill。"
},
"usageScript": "用量查询",
"usageScriptEnabled": "已启用",
"usageScriptDisabled": "未启用",
"usageApiKey": "用量 API Key",
"usageBaseUrl": "用量查询地址",
"usageAutoInterval": "自动查询",
"usageAutoIntervalValue": "每 {{minutes}} 分钟"
},
"iconPicker": {
"search": "搜索图标",
"searchPlaceholder": "输入图标名称...",
"noResults": "未找到匹配的图标",
"category": {
"aiProvider": "AI 服务商",
"cloud": "云平台",
"tool": "开发工具",
"other": "其他"
}
},
"providerIcon": {
"label": "图标",
"colorLabel": "图标颜色",
"selectIcon": "选择图标",
"preview": "预览",
"clickToChange": "点击更换图标",
"clickToSelect": "点击选择图标",
"color": "图标颜色"
},
"migration": {
"success": "配置迁移成功",
"skillsSuccess": "已自动导入 {{count}} 个技能到统一管理",
"skillsFailed": "自动导入技能失败",
"skillsFailedDescription": "请打开 Skills 页面点击“导入已有”手动导入(或重启后再试)。"
},
"agents": {
"title": "智能体"
},
"modelTest": {
"testProvider": "测试模型"
},
"health": {
"operational": "正常",
"degraded": "降级",
"failed": "失败",
"circuitOpen": "熔断",
"consecutiveFailures": "连续失败 {{count}} 次"
},
"failover": {
"enabled": "{{app}} 故障转移已启用",
"disabled": "{{app}} 故障转移已关闭",
"toggleFailed": "操作失败: {{detail}}",
"inQueue": "已加入",
"addQueue": "加入",
"priority": {
"tooltip": "故障转移优先级 {{priority}}"
},
"tooltip": {
"enabled": "{{app}} 故障转移已启用\n按队列优先级(P1→P2→...)选择供应商",
"disabled": "启用 {{app}} 故障转移\n将立即切换到队列 P1,并在失败时自动切换到下一个"
}
},
"proxy": {
"panel": {
"serviceAddress": "服务地址",
"addressCopied": "地址已复制",
"currentProvider": "当前 Provider",
"waitingFirstRequest": "当前 Provider:等待首次请求…",
"stoppedTitle": "路由服务已停止",
"stoppedDescription": "使用上方开关即可启动服务",
"openSettings": "配置路由服务",
"stats": {
"activeConnections": "活跃连接",
"totalRequests": "总请求数",
"successRate": "成功率",
"uptime": "运行时间"
}
},
"settings": {
"title": "路由服务设置",
"description": "配置本地路由服务器的监听地址、端口和运行参数,保存后立即生效。",
"alert": {
"autoApply": "保存后将自动同步到正在运行的路由服务,无需手动重启。"
},
"basic": {
"title": "基础设置",
"description": "配置路由服务监听的地址与端口。"
},
"advanced": {
"title": "高级参数",
"description": "控制请求的稳定性和日志记录。"
},
"timeout": {
"title": "超时设置",
"description": "配置流式和非流式请求的超时时间。"
},
"fields": {
"listenAddress": {
"label": "监听地址",
"placeholder": "127.0.0.1",
"description": "路由服务器监听的 IP 地址(推荐 127.0.0.1"
},
"listenPort": {
"label": "监听端口",
"placeholder": "15721",
"description": "路由服务器监听的端口号(1024 ~ 65535"
},
"maxRetries": {
"label": "最大重试次数",
"placeholder": "3",
"description": "请求失败时的重试次数(0 ~ 10)"
},
"requestTimeout": {
"label": "请求超时(秒)",
"placeholder": "0(不限)或 300",
"description": "单个请求的最大等待时间(0 表示不限制,或设置 10 ~ 600 秒)"
},
"enableLogging": {
"label": "启用日志记录",
"description": "记录所有路由请求,便于排查问题"
},
"streamingFirstByteTimeout": {
"label": "流式首字超时(秒)",
"description": "等待首个数据块的最大时间"
},
"streamingIdleTimeout": {
"label": "流式静默超时(秒)",
"description": "数据块之间的最大间隔"
},
"nonStreamingTimeout": {
"label": "非流式超时(秒)",
"description": "非流式请求的总超时时间"
}
},
"validation": {
"addressInvalid": "请输入有效的IP地址",
"portMin": "端口必须大于1024",
"portMax": "端口必须小于65535",
"retryMin": "重试次数不能为负",
"retryMax": "重试次数不能超过10",
"timeoutNonNegative": "超时时间不能为负数",
"timeoutMax": "超时时间最多600秒",
"timeoutRange": "请输入 0 或 10-600 之间的数值",
"streamingTimeoutMin": "超时时间至少5秒",
"streamingTimeoutMax": "超时时间最多300秒"
},
"actions": {
"save": "保存配置"
},
"toast": {
"saved": "路由配置已保存",
"saveFailed": "保存失败: {{error}}"
},
"invalidPort": "端口无效,请输入 1024-65535 之间的数字",
"invalidAddress": "地址无效,请输入有效的 IP 地址(如 127.0.0.1)或 localhost",
"configSaved": "路由配置已保存",
"configSaveFailed": "保存配置失败",
"restartRequired": "修改地址或端口后需要重启路由服务才能生效"
},
"switchFailed": "切换失败: {{error}}",
"takeover": {
"hint": "选择要路由的应用,启用后该应用的请求将通过本地路由转发",
"enabled": "{{app}} 路由已启用",
"disabled": "{{app}} 路由已关闭",
"failed": "切换路由状态失败: {{detail}}",
"tooltip": {
"active": "{{appLabel}} 路由中 - {{address}}:{{port}}\n切换该应用供应商为热切换",
"broken": "{{appLabel}} 路由中,但路由服务未运行",
"inactive": "路由 {{appLabel}} 的请求,让该应用请求走本地路由"
}
},
"failover": {
"proxyRequired": "需要先启动路由服务才能配置故障转移",
"autoSwitch": "自动故障转移",
"autoSwitchDescription": "开启后将立即切换到队列 P1,并在请求失败时自动切换到队列中的下一个供应商"
},
"failoverQueue": {
"title": "故障转移队列",
"description": "管理各应用的供应商故障转移顺序",
"info": "启用自动故障转移后,将按队列优先级选择供应商(P1 优先)。当请求失败时,系统会按队列顺序依次尝试下一个供应商。",
"selectProvider": "选择供应商添加到队列",
"noAvailableProviders": "没有可添加的供应商",
"empty": "故障转移队列为空。添加供应商以启用自动故障转移。",
"orderHint": "队列顺序与首页供应商列表顺序一致,可在首页拖拽调整顺序。",
"dragHint": "拖拽供应商可调整故障转移顺序,序号越小优先级越高。",
"toggleEnabled": "启用/禁用",
"addSuccess": "已添加到故障转移队列",
"addFailed": "添加失败",
"removeSuccess": "已从故障转移队列移除",
"removeFailed": "移除失败",
"reorderSuccess": "队列顺序已更新",
"reorderFailed": "更新顺序失败",
"toggleFailed": "状态更新失败"
},
"autoFailover": {
"info": "当故障转移队列中配置了多个供应商时,系统会在请求失败时按优先级顺序依次尝试。当某个供应商连续失败达到阈值时,熔断器会打开并在一段时间内跳过该供应商。",
"configSaved": "自动故障转移配置已保存",
"configSaveFailed": "保存失败",
"validationFailed": "以下字段超出有效范围: {{fields}}",
"retrySettings": "重试与超时设置",
"failureThreshold": "失败阈值",
"failureThresholdHint": "连续失败多少次后打开熔断器(建议: 3-10)",
"timeout": "恢复等待时间(秒)",
"timeoutHint": "熔断器打开后,等待多久后尝试恢复(建议: 30-120)",
"circuitBreakerSettings": "熔断器设置",
"successThreshold": "恢复成功阈值",
"successThresholdHint": "半开状态下成功多少次后关闭熔断器",
"errorRate": "错误率阈值 (%)",
"errorRateHint": "错误率超过此值时打开熔断器",
"minRequests": "最小请求数",
"minRequestsHint": "计算错误率前的最小请求数",
"explanationTitle": "工作原理",
"failureThresholdLabel": "失败阈值",
"failureThresholdExplain": "连续失败达到此次数时,熔断器打开,该供应商暂时不可用",
"timeoutLabel": "恢复等待时间",
"timeoutExplain": "熔断器打开后,等待此时间后尝试半开状态",
"successThresholdLabel": "恢复成功阈值",
"successThresholdExplain": "半开状态下,成功达到此次数时关闭熔断器,供应商恢复可用",
"errorRateLabel": "错误率阈值",
"errorRateExplain": "错误率超过此值时,即使未达到失败阈值也会打开熔断器",
"maxRetries": "最大重试次数",
"timeoutSettings": "超时配置",
"streamingFirstByte": "流式首字节超时",
"streamingIdle": "流式静默超时",
"nonStreaming": "非流式超时",
"maxRetriesHint": "请求失败时的重试次数(0-10",
"streamingFirstByteHint": "等待首个数据块的最大时间,范围 1-120 秒,默认 60 秒",
"streamingIdleHint": "数据块之间的最大间隔,范围 60-600 秒,填 0 禁用(防止中途卡住)",
"nonStreamingHint": "非流式请求的总超时时间,范围 60-1200 秒,默认 600 秒(10 分钟)"
},
"logging": {
"enabled": "日志记录已启用",
"disabled": "日志记录已关闭",
"failed": "切换日志状态失败"
},
"server": {
"started": "路由服务已启动 - {{address}}:{{port}}",
"startFailed": "启动路由服务失败: {{detail}}"
},
"stoppedWithRestore": "路由服务已关闭,已恢复所有路由配置",
"stopWithRestoreFailed": "停止失败: {{detail}}"
},
"streamCheck": {
"configSaved": "健康检查配置已保存",
"configSaveFailed": "保存失败",
"testModels": "测试模型",
"claudeModel": "Claude 模型",
"codexModel": "Codex 模型",
"geminiModel": "Gemini 模型",
"checkParams": "检查参数",
"timeout": "超时时间(秒)",
"maxRetries": "最大重试次数",
"degradedThreshold": "降级阈值(毫秒)",
"testPrompt": "检查提示词",
"operational": "{{providerName}} 运行正常 ({{responseTimeMs}}ms)",
"degraded": "{{providerName}} 响应较慢 ({{responseTimeMs}}ms)",
"failed": "{{providerName}} 检查失败: {{message}}",
"rejected": "{{providerName}} 检查被拒: {{message}}",
"error": "{{providerName}} 检查出错: {{error}}",
"modelNotFound": "{{providerName}} 测试模型 {{model}} 不存在或已下架",
"modelNotFoundHint": "该模型可能已被供应商弃用。请在\"模型测试配置\"中更新默认测试模型。",
"httpHint": {
"400": "供应商拒绝了请求格式。健康检查的探测格式可能与实际使用不同。",
"401": "API Key 可能无效,或供应商使用 OAuth 等认证方式。检查失败不代表实际不可用。",
"402": "账户配额或计费问题。",
"403": "供应商拒绝了此请求。部分供应商会校验客户端身份,检查失败但实际使用可能正常。",
"404": "接口地址不存在,请检查 Base URL 和 API 路径。",
"429": "请求频率过高,请稍后重试。",
"5xx": "供应商内部错误,通常是临时问题。"
}
},
"proxyConfig": {
"proxyEnabled": "路由总开关",
"appTakeover": "路由启用",
"perAppConfig": "应用配置",
"circuitBreaker": "熔断器配置",
"circuitBreakerSettings": "熔断器设置",
"failureThreshold": "失败阈值",
"successThreshold": "恢复阈值",
"recoveryTimeout": "恢复等待时间",
"errorRateThreshold": "错误率阈值",
"minRequests": "最小请求数",
"timeoutConfig": "超时配置",
"streamingFirstByte": "流式首字节超时",
"streamingIdle": "流式静默超时",
"nonStreaming": "非流式超时"
},
"circuitBreaker": {
"failureThreshold": "失败阈值",
"successThreshold": "成功阈值",
"timeoutSeconds": "超时时间(秒)",
"errorRateThreshold": "错误率阈值 (%)",
"minRequests": "最小请求数",
"validationFailed": "以下字段超出有效范围: {{fields}}",
"configSaved": "熔断器配置已保存",
"saveFailed": "保存失败",
"loading": "加载中...",
"title": "熔断器配置",
"description": "调整熔断器参数以控制故障检测和恢复行为",
"failureThresholdHint": "连续失败多少次后打开熔断器",
"timeoutSecondsHint": "熔断器打开后多久尝试恢复(半开状态)",
"successThresholdHint": "半开状态下成功多少次后关闭熔断器",
"errorRateThresholdHint": "错误率超过此值时打开熔断器",
"minRequestsHint": "计算错误率前的最小请求数",
"saveConfig": "保存配置",
"instructionsTitle": "配置说明",
"instructions": {
"failureThreshold": "连续失败达到此次数时,熔断器打开",
"timeout": "熔断器打开后,等待此时间后尝试半开",
"successThreshold": "半开状态下,成功达到此次数时关闭熔断器",
"errorRate": "错误率超过此值时,熔断器打开",
"minRequests": "只有请求数达到此值后才计算错误率"
}
},
"universalProvider": {
"title": "统一供应商",
"description": "统一供应商可以同时管理 Claude、Codex 和 Gemini 的配置。修改后会自动同步到所有启用的应用。",
"add": "添加统一供应商",
"edit": "编辑统一供应商",
"empty": "还没有统一供应商",
"emptyHint": "点击下方「添加统一供应商」按钮创建一个",
"selectPreset": "选择预设类型",
"name": "名称",
"namePlaceholder": "例如:我的 NewAPI",
"baseUrl": "API 地址",
"apiKey": "API Key",
"websiteUrl": "官网地址",
"websiteUrlPlaceholder": "https://example.com(可选,用于在列表中显示)",
"notes": "备注",
"notesPlaceholder": "可选:添加备注信息",
"enabledApps": "启用的应用",
"modelConfig": "模型配置",
"model": "模型",
"sync": "同步到应用",
"synced": "已同步到所有应用",
"syncError": "同步失败",
"noAppsEnabled": "未启用任何应用",
"added": "统一供应商已添加",
"addedAndSynced": "统一供应商已添加并同步",
"updated": "统一供应商已更新",
"deleted": "统一供应商已删除",
"addSuccess": "统一供应商添加成功",
"addFailed": "统一供应商添加失败",
"hint": "跨应用统一配置,自动同步到 Claude/Codex/Gemini",
"manage": "管理",
"loadError": "加载统一供应商失败",
"saveError": "保存统一供应商失败",
"deleteError": "删除统一供应商失败",
"deleteConfirmTitle": "删除统一供应商",
"deleteConfirmDescription": "确定要删除 \"{{name}}\" 吗?这将同时删除它在各应用中生成的供应商配置。",
"syncConfirmTitle": "同步统一供应商",
"syncConfirmDescription": "同步 \"{{name}}\" 将会覆盖 Claude、Codex 和 Gemini 中关联的供应商配置。确定要继续吗?",
"syncConfirm": "同步",
"saveAndSync": "保存并同步",
"savedAndSynced": "已保存并同步到所有应用",
"saveAndSyncError": "保存并同步失败",
"configJsonPreview": "配置 JSON 预览",
"configJsonPreviewHint": "以下是将要同步到各应用的配置内容(仅覆盖显示的字段,保留其他自定义配置)"
},
"omo": {
"editProfile": "编辑 OMO 配置",
"newProfile": "新建 OMO 配置",
"profileName": "名称",
"mainAgents": "主 Agent",
"subAgents": "子 Agent",
"categories": "分类",
"customAgents": "自定义 Agent",
"noCustomAgents": "暂无自定义 Agent",
"otherFields": "其他配置",
"globalConfig": "OMO 全局配置",
"globalConfigShort": "OMO 配置",
"globalConfigSaved": "全局配置已保存",
"addProfile": "添加 OMO 配置",
"disabledItems": "禁用项设置",
"advanced": "高级设置",
"profileCreated": "OMO 配置已创建",
"profileUpdated": "OMO 配置已更新",
"invalidJson": "其他字段包含无效 JSON",
"confirmDelete": "删除配置",
"confirmDeleteMsg": "确定删除 \"{{name}}\" 吗?",
"profileDeleted": "配置已删除",
"imported": "已导入为 \"{{name}}\"",
"import": "导入",
"global": "全局",
"empty": "暂无配置。点击 + 添加或从本地导入。",
"applied": "已应用",
"apply": "应用",
"enable": "启用",
"enabled": "启用中",
"disabled": "OMO 已停用",
"disableFailed": "停用 OMO 失败: {{error}}",
"selectPlaceholder": "请选择...",
"clear": "清空",
"clearWrapped": "(清空)",
"defaultWrapped": "(默认)",
"variantPlaceholder": "思考等级",
"selectEnabledModel": "选择已配置模型",
"selectModel": "选择已配置模型",
"recommendedHint": "推荐: {{model}}",
"searchModel": "搜索模型...",
"selectModelFirst": "先选择模型",
"noEnabledModels": "暂无已配置模型",
"noVariantsForModel": "该模型无思考等级",
"currentValueNotEnabled": "{{value}}(当前值,未配置)",
"currentValueUnavailable": "{{value}}(当前值,不可用)",
"advancedLabel": "高级参数",
"advancedJsonInvalid": "高级参数 JSON 无效",
"advancedJsonHint": "temperature, top_p, budgetTokens, prompt_append, permission 等,留空使用默认值",
"noEnabledModelsWarning": "当前没有可用的已配置模型,请先配置 OpenCode 模型",
"modelSourcePartialWarning": "部分供应商模型配置无效,已自动跳过。",
"modelSourceFallbackWarning": "读取 live 供应商状态失败,已回退到已配置供应商列表。",
"importLocalReplaceSuccess": "已从本地文件导入并覆盖 Agent/Category/Other Fields",
"importLocalFailed": "读取本地文件失败: {{error}}",
"agentKeyPlaceholder": "agent 键名",
"categoryKeyPlaceholder": "分类键名",
"modelNamePlaceholder": "模型名",
"custom": "自定义",
"customCategories": "自定义分类",
"modelConfiguration": "模型配置",
"fillRecommended": "填充推荐",
"fillRecommendedSuccess": "已填充 {{count}} 个推荐模型",
"fillRecommendedPartial": "已填充 {{filled}} 个推荐模型,{{unmatched}} 个未匹配",
"fillRecommendedAllSet": "所有槽位已有模型配置",
"fillRecommendedNoMatch": "推荐模型在已配置的供应商中未找到匹配",
"configSummary": "已配置 {{agents}} 个 Agent{{categories}} 个 Category · 点击 ⚙ 展开高级参数",
"enabledModelsCount": "可选已配置模型 {{count}} 个",
"source": "来源:",
"otherFieldsJson": "其他字段 (JSON)",
"slimOtherFieldsHint": "OMO Slim 的 council、fallback、multiplexer、disabled_mcps、todoContinuation 等顶层配置请写在这里。",
"searchOrType": "搜索或输入自定义值...",
"noMatches": "无匹配项",
"jsonMustBeObject": "{{field}} 必须是 JSON 对象",
"jsonInvalid": "{{field}} 包含无效 JSON",
"importGlobalSuccess": "已从本地文件导入全局配置(未保存)",
"importGlobalFailed": "读取本地文件失败: {{error}}",
"importLocal": "从本地导入",
"saveGlobalConfig": "保存全局配置",
"schemaUrl": "$schema",
"resetDefault": "重置默认",
"sisyphusAgentConfig": "Sisyphus Agent 设置",
"disabledAgents": "Agents",
"disabledAgentsPlaceholder": "禁用的 Agents",
"disabledMcps": "MCPs",
"disabledMcpsPlaceholder": "禁用的 MCPs",
"disabledHooks": "Hooks",
"disabledHooksPlaceholder": "禁用的 Hooks",
"disabledSkills": "Skills",
"disabledSkillsPlaceholder": "禁用的 Skills",
"advancedLsp": "LSP 配置",
"advancedExperimental": "实验性功能",
"advancedBackgroundTask": "后台任务",
"advancedBrowserAutomation": "浏览器自动化",
"advancedClaudeCode": "Claude Code",
"agentDesc": {
"sisyphus": "主编排者",
"hephaestus": "自主深度工作者",
"prometheus": "战略规划者",
"atlas": "任务管理者",
"oracle": "战略顾问",
"librarian": "多仓库研究员",
"explore": "快速代码搜索",
"multimodalLooker": "媒体分析器",
"metis": "规划前分析顾问",
"momus": "计划审查者",
"sisyphusJunior": "委托任务执行器"
},
"agentTooltip": {
"sisyphus": "主编排器,负责任务规划、委派与并行执行,使用扩展思考(32k 预算),通过 TODO 驱动工作流确保任务完成。",
"atlas": "主编排器(持有 TODO 列表),负责执行阶段的任务分发与协调,不直接完成所有工作而是委派给专业代理。",
"prometheus": "战略规划师,通过访谈模式收集需求并制定详细工作计划,仅能在 .sisyphus/ 目录读写 Markdown 文件,从不直接写代码。",
"hephaestus": "自主深度工作者(「合法工匠」),受 AmpCode 深度模式启发,目标导向执行,行动前会并行启动 2-5 个探索/图书管理员代理进行研究。",
"oracle": "架构决策与调试顾问,只读咨询代理,提供出色的逻辑推理和深度分析,不能写文件或委派任务。",
"librarian": "多仓库分析与文档检索专家,深度理解代码库并提供基于证据的答案,擅长查找官方文档和开源实现示例。",
"explore": "快速代码库探索与上下文 grep 专家,使用轻量级模型进行高速搜索,是理解代码结构的先锋。",
"multimodalLooker": "视觉内容专家,分析 PDF、图片、图表等非文本媒体,提取其中的信息与洞察。",
"metis": "计划顾问,在规划前进行预分析,识别隐藏意图、模糊点和 AI 失败点,防止过度工程化。",
"momus": "计划评审员,高精度验证计划的清晰度、可验证性和完整性,拒绝并要求修订直到计划完美。",
"sisyphusJunior": "类别生成的执行器,由 category 参数自动生成,专注于执行分配的任务且不能再委派,防止无限委派循环。"
},
"categoryDesc": {
"visualEngineering": "视觉/前端工程",
"ultrabrain": "超级思考",
"deep": "深度工作",
"artistry": "创意/文艺",
"quick": "快速响应",
"unspecifiedLow": "通用低配",
"unspecifiedHigh": "通用高配",
"writing": "写作"
},
"categoryTooltip": {
"visualEngineering": "前端与视觉工程类别,专注于 UI/UX 设计、样式、动画和界面实现,默认使用 Gemini 3 Pro 模型。",
"ultrabrain": "深度逻辑推理类别,用于需要广泛分析的复杂架构决策,默认使用 GPT-5.3 Codex 的超高推理变体。",
"deep": "深度自主问题解决类别,目标导向执行,行动前进行彻底研究,适用于需要深度理解的棘手问题。",
"artistry": "高度创意与艺术性任务类别,激发新颖想法和创造性解决方案,默认使用 Gemini 3 Pro 的最大变体。",
"quick": "轻量任务类别,用于单文件修改、错别字修复、简单调整等琐碎工作,默认使用 Claude Haiku 4.5 快速模型。",
"unspecifiedLow": "未归类低工作量任务类别,适用于不适合其他类别且工作量较小的任务,默认使用 Claude Sonnet 4.5。",
"unspecifiedHigh": "未归类高工作量任务类别,适用于不适合其他类别且工作量较大的任务,默认使用 Claude Opus 4.7 的最大变体。",
"writing": "写作类别,专注于文档、散文和技术写作,默认使用 Gemini 3 Flash 快速生成模型。"
},
"slimAgentDesc": {
"orchestrator": "编排者",
"oracle": "神谕者",
"librarian": "图书管理员",
"explorer": "探索者",
"designer": "设计师",
"fixer": "修复者",
"council": "议会"
},
"slimAgentTooltip": {
"orchestrator": "编写执行代码,编排多代理工作流,召唤专家",
"oracle": "根本原因分析、架构审查、调试指导(只读)",
"librarian": "文档查询、GitHub 代码搜索(只读)",
"explorer": "正则搜索、AST 模式匹配、文件发现(只读)",
"designer": "现代响应式设计、CSS/Tailwind 精通",
"fixer": "代码实现、重构、测试、验证",
"council": "多模型共识代理,并行运行多个只读 councillor,再由 master 汇总最终答案。"
}
},
"openclawConfig": {
"defaultModel": {
"title": "默认模型",
"description": "配置 OpenClaw 的默认主模型和回退模型",
"primary": "主模型",
"primaryPlaceholder": "例如: deepseek/deepseek-chat",
"fallbacks": "回退模型",
"fallbacksPlaceholder": "例如: openrouter/anthropic/claude-sonnet-4.5",
"addFallback": "添加回退模型",
"saved": "默认模型配置已保存",
"saveFailed": "保存默认模型失败"
},
"modelCatalog": {
"title": "模型目录",
"description": "配置可用模型的别名和允许列表",
"modelId": "模型 ID",
"modelIdPlaceholder": "例如: deepseek/deepseek-chat",
"alias": "别名",
"aliasPlaceholder": "例如: DeepSeek",
"addEntry": "添加模型",
"removeEntry": "移除",
"saved": "模型目录已保存",
"saveFailed": "保存模型目录失败",
"empty": "暂无模型目录配置",
"emptyHint": "添加模型到目录以配置别名"
},
"suggestedDefaults": "应用建议默认配置",
"suggestedDefaultsHint": "使用此预设推荐的默认模型配置"
},
"subscription": {
"title": "订阅额度",
"fiveHour": "5小时",
"sevenDay": "7天",
"sevenDayOpus": "7天(Opus)",
"sevenDaySonnet": "7天(Sonnet)",
"geminiPro": "Pro",
"geminiFlash": "Flash",
"geminiFlashLite": "Flash Lite",
"weeklyLimit": "每周",
"copilotPremium": "高级请求",
"utilization": "{{value}}%",
"resetsIn": "{{time}}后重置",
"extraUsage": "超额用量",
"expired": "会话已过期",
"expiredHint": "请运行 {{tool}} 命令刷新登录",
"queryFailed": "查询失败",
"refresh": "刷新"
}
}