337 lines
14 KiB
JSON
337 lines
14 KiB
JSON
{
|
||
"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/<alias>",
|
||
"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、时延、状态码、请求头与参数,同时避免暴露模型输入输出正文。",
|
||
"count": "共 {{count}} 条请求",
|
||
"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}}\" 无效,名称不能为空。"
|
||
}
|
||
}
|