{ "app": { "eyebrow": "ocswitch desktop", "brand": "ocswitch desktop", "title": "桌面控制台", "subtitle": "{{version}} · {{shell}} shell · {{path}}", "loadingConfig": "正在读取配置", "dev": "dev" }, "tray": { "appTitle": "ocswitch", "appTooltip": "ocswitch desktop", "proxyChecking": "代理:检查中...", "proxyStatusHint": "当前代理状态", "proxyUnavailable": "代理:不可用", "proxyRunning": "代理:运行中(%s)", "proxyStopped": "代理:已停止(%s)", "openWindow": "打开主面板", "openWindowHint": "显示桌面主窗口", "hideWindow": "隐藏窗口", "hideWindowHint": "隐藏桌面主窗口", "startProxy": "启动代理", "startProxyHint": "启动本地代理", "stopProxy": "停止代理", "stopProxyHint": "停止本地代理", "quit": "退出", "quitHint": "退出应用" }, "nav": { "overview": { "title": "概览", "description": "状态、操作与环境信息" }, "providers": { "title": "提供商", "description": "管理上游端点" }, "aliases": { "title": "别名路由", "description": "管理别名与目标绑定" }, "log": { "title": "日志", "description": "查看业务路由、alias 决策与 failover 链路" }, "network": { "title": "网络", "description": "查看除 LLM 输入输出内容外的全部请求元数据" }, "sync": { "title": "同步与体检", "description": "OpenCode 同步与 Doctor" }, "settings": { "title": "设置", "description": "主题、语言与桌面偏好" } }, "actions": { "refresh": "刷新", "runDoctor": "运行 Doctor", "startProxy": "启动代理", "stopProxy": "停止代理", "save": "保存", "reset": "重置", "preview": "预览", "apply": "应用同步", "edit": "编辑", "delete": "删除", "enable": "启用", "disable": "禁用", "import": "导入提供商", "bind": "绑定目标", "unbind": "解绑", "newProvider": "新建提供商", "newAlias": "新建别名", "close": "关闭", "cancel": "取消", "confirm": "确认", "exportConfig": "导出配置", "importConfig": "导入配置" }, "confirm": { "deleteProviderTitle": "确认删除提供商", "deleteAliasTitle": "确认删除别名", "unbindTargetTitle": "确认解绑目标" }, "status": { "proxyRunning": "代理运行中", "proxyIdle": "代理未运行", "enabled": "已启用", "disabled": "已禁用", "yes": "是", "no": "否" }, "messages": { "refreshing": "正在刷新...", "fresh": "已刷新", "saving": "正在保存...", "saved": "已保存", "running": "正在执行...", "applying": "正在应用...", "previewing": "正在预览...", "importing": "正在导入提供商...", "loading": "正在加载...", "noData": "暂无数据。", "warningsSuffix": "警告:{{warnings}}", "proxyStarted": "代理已启动", "proxyStopped": "代理已停止", "doctorOk": "Doctor 通过", "previewChanges": "预览显示有变更", "previewNoChanges": "预览显示无变更", "syncApplied": "同步已应用", "syncUpToDate": "已经是最新状态", "confirmDeleteProvider": "确认删除提供商 {{id}}?此操作不可撤销。", "confirmDeleteAlias": "确认删除别名 {{alias}}?此操作不可撤销。", "confirmUnbindTarget": "确认从 {{alias}} 解绑 {{provider}}/{{model}}?" }, "overview": { "title": "概览", "subtitle": "在一个页面里快速查看当前桌面状态,并完成常用操作。", "actionsTitle": "快捷操作", "statsTitle": "系统快照", "environmentTitle": "环境信息", "environmentSubtitle": "仅保留当前运行态和桌面应用相关信息。", "doctorTitle": "Doctor 摘要", "debugTitle": "调试详情", "debugSummary": "查看原始 overview JSON", "providers": "提供商", "aliases": "别名", "routableAliases": "可路由别名", "proxy": "代理", "version": "版本", "shell": "Shell", "configPath": "配置路径", "startedAt": "启动时间", "lastError": "最近错误", "doctorReady": "尚未运行 Doctor,可用来检查配置与 OpenCode 接线情况。", "doctorIssues": "发现 {{count}} 个问题", "doctorHealthy": "当前未发现问题" }, "providers": { "title": "提供商", "subtitle": "左侧滚动列表,右侧固定编辑区,减少整页来回滚动。", "listTitle": "提供商列表", "formCreateTitle": "新建提供商", "formEditTitle": "编辑提供商 {{id}}", "importTitle": "从 OpenCode 导入", "search": "搜索提供商", "searchPlaceholder": "按 id、名称或 URL 过滤", "filter": "状态筛选", "filterAll": "全部", "filterEnabled": "已启用", "filterDisabled": "已禁用", "listCount": "显示 {{shown}} / 共 {{total}}", "detailHint": "左侧选中一行后,在右侧查看并编辑详情。", "selectTitle": "选择一个提供商", "selectHint": "左侧列表已压缩为高密度模式,适合首屏浏览更多条目;选中一行后在这里查看或编辑详情。", "empty": "还没有配置任何提供商。", "emptyHint": "你可以手动新建提供商,或从 OpenCode 配置中批量导入。", "noMatches": "当前筛选条件下没有匹配的提供商。", "noMatchesHint": "尝试放宽搜索词或切换状态筛选。", "id": "提供商 id", "name": "显示名称", "baseUrl": "Base URL", "apiKey": "API key", "headers": "Headers", "models": "Models", "sourcePath": "导入路径", "saveDisabled": "保存为禁用状态", "skipModels": "跳过 /v1/models 发现", "clearHeaders": "更新前清空已保存 headers", "overwrite": "覆盖现有提供商", "apiKeyMasked": "API key", "apiKeyNotSet": "未设置", "cardBaseUrl": "地址", "cardModels": "模型", "cardApiKey": "密钥", "detailBasicsTitle": "基础信息", "detailTogglesTitle": "行为选项", "headersNone": "无", "modelsNone": "无", "modelsCount": "{{count}} 个模型", "sourceLabel": "来源", "placeholderId": "su8", "placeholderName": "SU8", "placeholderBaseUrl": "https://example.com/v1", "placeholderApiKey": "编辑时留空表示保留现有 key", "placeholderHeaders": "X-Token=abc\nX-Workspace=my-team", "placeholderSourcePath": "留空则使用全局 OpenCode 配置", "statusSaved": "已保存提供商 {{id}}", "statusEditing": "正在编辑提供商 {{id}},API key 留空会保留当前值。", "statusEnabling": "正在启用提供商 {{id}}...", "statusDisabling": "正在禁用提供商 {{id}}...", "statusEnabled": "已启用提供商 {{id}}", "statusDisabled": "已禁用提供商 {{id}}", "statusDeleting": "正在删除提供商 {{id}}...", "statusDeleted": "已删除提供商 {{id}}", "statusImportDone": "导入完成:imported={{imported}}, skipped={{skipped}}" }, "aliases": { "title": "别名路由", "subtitle": "把别名编辑和目标绑定拆开,路由关系更清晰。", "listTitle": "别名列表", "formCreateTitle": "新建别名", "formEditTitle": "编辑别名 {{alias}}", "bindTitle": "绑定目标", "search": "搜索别名", "searchPlaceholder": "按别名、显示名、provider 或 model 过滤", "listCount": "显示 {{shown}} / 共 {{total}}", "detailHint": "左侧选中一行后,在右侧查看别名设置和目标详情。", "selectTitle": "选择一个别名", "selectHint": "左侧列表保持紧凑,方便一屏浏览更多路由;选中一行后在这里查看或编辑详情。", "empty": "还没有配置任何别名。", "emptyHint": "先新建别名,再把上游 provider/model 绑定到它。", "noMatches": "当前筛选条件下没有匹配的别名。", "noMatchesHint": "尝试修改搜索词,或直接新建一个新的别名路由。", "alias": "别名", "displayName": "显示名称", "aliasForBinding": "用于绑定的别名", "providerId": "提供商 id", "model": "模型", "createDisabled": "创建或保持为禁用", "targetDisabled": "新增目标时设为禁用", "placeholderAlias": "gpt-5.4", "placeholderDisplayName": "GPT 5.4", "placeholderAliasBinding": "已有别名或新别名", "placeholderProviderId": "su8", "placeholderModel": "gpt-5.4", "targets": "目标", "targetsCount": "{{count}} 个目标", "routable": "可路由 {{available}}/{{total}}", "cardRoute": "路由", "cardTargets": "目标数", "cardPrimary": "主目标", "detailBasicsTitle": "别名信息", "detailTargetsHint": "为当前别名维护可路由的 provider/model 目标。", "statusSaved": "已保存别名 {{alias}}", "statusEditing": "正在编辑别名 {{alias}}", "statusDeleting": "正在删除别名 {{alias}}...", "statusDeleted": "已删除别名 {{alias}}", "statusBinding": "正在绑定目标...", "statusBound": "已将 {{provider}}/{{model}} 绑定到 {{alias}}", "statusRemoving": "正在从 {{alias}} 移除 {{provider}}/{{model}}...", "statusRemoved": "已从 {{alias}} 移除 {{provider}}/{{model}}", "statusEnabling": "正在启用 {{alias}} 上的 {{provider}}/{{model}}...", "statusDisabling": "正在禁用 {{alias}} 上的 {{provider}}/{{model}}...", "statusEnabled": "已启用 {{alias}} 上的 {{provider}}/{{model}}", "statusDisabled": "已禁用 {{alias}} 上的 {{provider}}/{{model}}", "noTargets": "还没有绑定目标。" }, "sync": { "title": "同步与体检", "subtitle": "不离开桌面应用即可预览、应用 OpenCode 同步并运行 Doctor。", "syncTitle": "OpenCode 同步", "doctorTitle": "Doctor 报告", "targetPath": "目标路径", "model": "model", "smallModel": "small_model", "placeholderTargetPath": "使用默认 OpenCode 配置", "placeholderModel": "ocswitch/", "outputTitle": "最近输出", "doctorHint": "运行 Doctor 以检查配置与 OpenCode 接线。", "issuesTitle": "问题列表", "noIssues": "未报告问题。", "debugTitle": "原始 Doctor JSON", "debugSummary": "查看 Doctor 输出" }, "log": { "title": "请求日志", "subtitle": "按请求查看 alias 路由、最终目标与 failover 链路。", "count": "共 {{count}} 条请求", "empty": "还没有代理请求。", "emptyHint": "先启动代理并发起一次请求,时间线才会出现内容。", "success": "成功", "failed": "失败", "failover": "发生切换", "detailTitle": "业务详情", "detailSubtitle": "这里聚焦 alias 级别的业务路由语义。", "alias": "Alias", "finalRoute": "最终路由", "status": "状态码", "totalTime": "总耗时", "startedAt": "开始时间", "firstByte": "首字节时间", "stream": "流式", "chainTitle": "尝试链路", "attemptLabel": "第 {{attempt}} 次尝试", "provider": "提供商", "model": "模型" }, "network": { "title": "网络详情", "subtitle": "查看 URL、时延、状态码、请求头与参数,同时避免暴露模型输入输出正文。", "detailTitle": "网络检查器", "detailSubtitle": "每次尝试都会展示调用上游时采集到的技术元数据。", "url": "URL", "firstByte": "TTFB", "totalTime": "总耗时", "statusCode": "状态码", "requestHeaders": "客户端请求头", "requestParams": "客户端请求参数", "responseHeaders": "上游响应头", "responseBody": "上游响应体", "attemptTitle": "第 {{attempt}} 次尝试 · {{provider}} / {{model}}" }, "settings": { "title": "设置", "subtitle": "持久化桌面行为、主题偏好和语言偏好。", "appearanceTitle": "外观", "languageTitle": "语言", "behaviorTitle": "桌面行为", "timeoutTitle": "代理超时", "configTitle": "配置文件", "importTitle": "导入方式", "importModeText": "文本导入", "importModeFile": "文件导入", "importText": "配置文本", "importFile": "配置文件", "importPlaceholder": "粘贴完整 ocswitch 配置 JSON", "fileEmpty": "尚未选择文件。", "exportDone": "已导出配置 {{path}}", "importDone": "已导入配置 {{path}}", "fileLoaded": "已读取文件 {{name}}", "importEmpty": "请先提供配置内容。", "aboutTitle": "关于", "aboutSubtitle": "显示当前桌面壳环境信息,仅用于查看。", "theme": "主题", "language": "语言", "languageLabel": "首选语言", "themeSystem": "跟随系统", "themeLight": "浅色", "themeDark": "深色", "languageSystem": "跟随系统", "languageEnglish": "English", "languageChinese": "简体中文", "resolvedTheme": "实际主题", "resolvedLanguage": "实际语言", "launchAtLogin": "开机启动", "autoStartProxy": "启动应用时自动开启代理", "connectTimeout": "连接超时(毫秒)", "responseHeaderTimeout": "响应头超时(毫秒)", "firstByteTimeout": "首字节超时(毫秒)", "requestReadTimeout": "客户端请求读取超时(毫秒)", "streamIdleTimeout": "流空闲超时(毫秒)", "timeoutHint": "保存后会在下一次启动代理时生效。", "timeoutRunningHint": "代理当前正在运行,保存后的值要在重启代理后才会生效。", "saveTimeouts": "保存代理超时", "minimizeToTray": "最小化到托盘 / 关闭时转入后台", "notifications": "系统通知" }, "errors": { "invalidHeaderFormat": "Header \"{{line}}\" 格式无效,请使用 KEY=VALUE。", "invalidHeaderName": "Header \"{{line}}\" 无效,名称不能为空。" } }