{
  "admin": {
    "nav": {
      "dashboard": "仪表盘",
      "providers": "模型供应商",
      "adapters": "适配器",
      "logs": "日志",
      "capture": "协议抓包",
      "settings": "设置"
    },
    "sidebar": {
      "running": "运行中",
      "offline": "未连接",
      "loading": "加载中",
      "switchLang": "切换语言",
      "port": "端口",
      "portPlaceholder": "留空使用默认 9000",
      "portSetSuccess": "端口已保存并已生效",
      "portSetSuccessWithRestart": "端口已保存，请重启服务生效",
      "portRestartHint": "重启后生效"
    },
    "general": {
      "title": "通用",
      "desc": "语言、主题、端口与配置重载",
      "clientTitle": "浏览器偏好",
      "clientDesc": "仅影响当前浏览器，不修改服务端配置",
      "serviceTitle": "当前服务运行配置",
      "serviceDesc": "这些操作会直接修改当前连接的服务",
      "portChangeConfirm": "修改监听端口可能导致当前页面断开连接，确定继续吗？",
      "language": "语言",
      "theme": "主题",
      "themeSystem": "跟随系统",
      "themeLight": "浅色",
      "themeDark": "深色"
    },
    "managementKey": {
      "title": "管理 API Key",
      "desc": "用于访问服务端 admin_key 保护的管理接口，与代理 API Key 相互独立。密钥仅保存在当前浏览器。",
      "placeholder": "输入与服务端 admin_key 相同的密钥",
      "set": "当前浏览器已保存管理密钥",
      "notSet": "当前浏览器未保存管理密钥",
      "currentService": "当前服务",
      "sessionOnly": "浏览器禁止持久化存储，密钥仅在本次页面会话中有效",
      "saved": "管理 API Key 已保存",
      "removed": "管理 API Key 已移除"
    },
    "common": {
      "save": "保存",
      "cancel": "取消",
      "delete": "删除",
      "edit": "编辑",
      "add": "添加",
      "test": "测试",
      "run": "运行",
      "close": "关闭",
      "confirm": "确定",
      "search": "搜索",
      "refresh": "刷新",
      "expand": "展开",
      "collapse": "收起",
      "copy": "复制",
      "clear": "清除",
      "saving": "保存中...",
      "testing": "测试中",
      "none": "暂无数据",
      "noMatch": "没有匹配的{{name}}",
      "normal": "正常",
      "error": "异常",
      "remove": "移除",
      "hide": "隐藏",
      "view": "查看",
      "reloadConfig": "重载配置",
      "configReloaded": "配置已重载",
      "reloadFailed": "重载失败",
      "requestFailed": "请求失败",
      "copyFailed": "复制失败",
      "parseFailed": "数据解析失败"
    },
    "dashboard": {
      "status": "运行状态",
      "providerCount": "供应商数",
      "modelCount": "模型总数",
      "adapterCount": "适配器数",
      "requests": "请求数",
      "inputTokens": "输入 Token",
      "cacheHits": "缓存命中",
      "cacheCreation": "缓存创建",
      "today": "今日",
      "output": "输出",
      "total": "总计",
      "hitRate": "缓存命中率 {{rate}}",
      "newCacheTokens": "新写入缓存 token",
      "proxyKey": "代理 API Key",
      "proxyKeyPlaceholder": "不设置则无需鉴权",
      "proxyKeySet": "已设置 (请求需带 Authorization: Bearer <key> 或 x-api-key 头)",
      "proxyKeyNotSet": "未设置 — 所有请求可直接访问",
      "proxyKeySetSuccess": "代理 Key 已设置",
      "proxyKeyRemoveSuccess": "代理 Key 已移除",
      "loadMore": "加载更多",
      "usage": {
        "trendTitle": "Token 用量趋势",
        "trendDesc": "输入/输出/缓存命中/缓存创建 按日聚合",
        "breakdownTitle": "分维度对比",
        "dimProvider": "供应商",
        "dimAdapter": "适配器",
        "dimModel": "供应商模型",
        "dimAdapterModel": "适配器模型",
        "days1": "今日",
        "days7": "7 天",
        "days30": "30 天",
        "days90": "90 天",
        "daysUnit": "天",
        "emptyTitle": "暂无用量数据",
        "emptyDesc": "在 {{range}} 范围内没有代理请求记录。发起一次请求即可看到趋势。",
        "storageTitle": "用量数据存储",
        "storageDesc": "{{events}} 条事件 · {{aggregates}} 条预聚合 · {{size}}",
        "cleanupBtn": "清理",
        "cleanupAllBtn": "清空全部",
        "cleanupAllConfirm": "确定要清空全部用量数据吗？此操作不可恢复。",
        "cleanupConfirm": "确定要清理 {{days}} 天前的所有历史用量数据吗？此操作不可恢复。",
        "cleanupDone": "已清理 {{events}} 条事件 / {{aggregates}} 条预聚合",
        "cleanupFailed": "清理失败"
      },
      "chart": {
        "input": "输入",
        "output": "输出",
        "cacheRead": "缓存读取",
        "cacheCreate": "缓存创建",
        "total": "总计",
        "requests": "请求数"
      }
    },
    "logs": {
      "title": "日志",
      "matchCount": "共 {{count}} 条匹配 · 第 {{page}}/{{totalPages}} 页",
      "filterAll": "全部",
      "filterRequest": "请求",
      "filterSystem": "系统",
      "filterError": "error",
      "filterWarn": "warn",
      "filterInfo": "info",
      "filterDebug": "debug",
      "logLevel": "记录级别",
      "searchPlaceholder": "搜索…",
      "time": "时间",
      "level": "级别",
      "message": "消息",
      "detail": "详情",
      "empty": "暂无日志",
      "noMatch": "没有匹配的日志",
      "pagePrev": "◀",
      "pageNext": "▶",
      "pageFirst": "⏮",
      "pageLast": "⏭"
    },
    "providers": {
      "title": "模型供应商",
      "searchPlaceholder": "搜索模型供应商...",
      "add": "+ 添加",
      "name": "名称",
      "type": "类型",
      "modelCount": "模型数",
      "status": "状态",
      "actions": "操作",
      "empty": "暂无数据",
      "noMatch": "没有匹配的供应商",
      "editTitle": "编辑模型供应商",
      "addTitle": "添加模型供应商",
      "formName": "名称",
      "formNamePlaceholder": "my-provider",
      "formType": "类型",
      "formProtocols": "协议配置",
      "formProtocolsHint": "可多选协议；每个已选协议都可以单独设置 Base URL。",
      "formProtocol": "协议",
      "addProtocol": "添加协议",
      "removeProtocol": "移除协议",
      "formApiKey": "API Key",
      "formApiKeyPlaceholder": "sk-...",
      "formApiBase": "API Base（可选）",
      "formApiBasePlaceholder": "https://api.openai.com",
      "formModels": "模型列表",
      "formModelId": "模型 ID",
      "formModelIdPlaceholder": "如 gpt-4o",
      "addModel": "添加模型",
      "thinkingBudget": "思考预算",
      "reasoningEffort": "推理力度",
      "defaultEffort": "默认",
      "lowEffort": "低",
      "mediumEffort": "中",
      "highEffort": "高",
      "xhighEffort": "超高",
      "maxEffort": "最大",
      "thinkingType": "模式",
      "defaultType": "无",
      "hideKey": "隐藏",
      "showKey": "查看",
      "keepEmptyHint": "留空则保留原值",
      "pullModels": "拉取远程模型",
      "pullModelsTitle": "远程模型列表",
      "pullModelsCount": "共 {{count}} 个模型，{{existing}} 个已存在",
      "pullModelsLoading": "加载中...",
      "pullModelsNone": "未找到可用模型",
      "pullModelsError": "请求失败",
      "pullModelsImport": "导入选中",
      "importedModels": "已导入 {{added}} 个模型",
      "importedModelsSkip": "（跳过 {{skipped}} 个已存在）",
      "deleteConfirm": "确定删除模型供应商 \"{{name}}\" 吗？",
      "saveFailed": "保存失败",
      "deleteFailed": "删除失败",
      "notFound": "供应商未找到",
      "updated": "模型供应商已更新",
      "created": "模型供应商已创建",
      "deleted": "模型供应商已删除",
      "validationName": "请填写名称",
      "validationModels": "请填写至少一个模型",
      "validationApiKey": "请填写 API Key",
      "validationProtocols": "请至少配置一个协议",
      "inputModalities": "输入模态",
      "inputModalitiesHint": "勾选模型支持的输入模态。未勾选 image 时，请求中的图片会走外挂识图。",
      "visionBadgeTitle": "支持图片输入的模型：",
      "validationProviderName": "请先填写供应商名称",
      "keepOriginal": "留空则保留原值",
      "pullModelsSearch": "搜索模型 ID 或描述…",
      "pullModelsSelectAll": "全选",
      "pullModelsInvert": "反选",
      "pullModelsClear": "清空"
    },
    "vision": {
      "title": "外挂识图",
      "desc": "为不支持图片输入的模型提供自动识图能力：请求含图片时，自动调用下方配置的识图模型生成文字描述，再转发给原模型。",
      "enable": "启用外挂识图",
      "selectProvider": "选择 Provider",
      "selectModel": "选择模型",
      "promptPlaceholder": "可选：自定义识图提示词（留空使用默认）",
      "noVisionModel": "暂无可用识图模型：请先在 Providers 中为模型勾选“图片”模态",
      "modelNotImageWarning": "该模型未声明支持图片输入，保存将被拒绝。请先在 Providers 中为该模型勾选“图片”模态。",
      "saved": "外挂识图已启用",
      "removed": "外挂识图已禁用",
      "saveFailed": "保存失败",
      "cache": {
        "title": "识图结果缓存",
        "desc": "按图片内容缓存识图描述：相同图片再次请求时直接复用，避免重复调用识图模型。",
        "stats": "命中 {{hits}} / 未命中 {{misses}} · 命中率 {{rate}} · 已缓存 {{size}}/{{max}}",
        "disabled": "服务未启用缓存",
        "clear": "清空缓存",
        "clearConfirm": "确定要清空所有识图缓存吗？清空后相同图片会重新识图。",
        "cleared": "识图缓存已清空",
        "clearFailed": "清空失败"
      }
    },
    "adapters": {
      "title": "工具适配器映射",
      "searchPlaceholder": "搜索适配器...",
      "add": "+ 添加",
      "adapter": "适配器",
      "baseUrl": "Base URL",
      "modelMapping": "模型映射",
      "status": "状态",
      "actions": "操作",
      "empty": "暂无适配器",
      "noMatch": "没有匹配的适配器",
      "editTitle": "编辑适配器",
      "addTitle": "添加适配器",
      "formName": "名称",
      "formNamePlaceholder": "my-tool",
      "formDefaultMaxTokens": "默认 Max Tokens",
      "defaultMaxTokensHint": "留空使用上游 API 的默认值",
      "formRequestDefaults": "默认请求参数",
      "formStreamDefault": "stream 默认",
      "streamFollow": "默认（跟随）",
      "streamOn": "流式",
      "streamOff": "非流式",
      "requestDefaultsHint": "下游未传该参数时生效；stream 选“默认（跟随）”时不注入，原样透传",
      "formModelMapping": "模型映射",
      "sourceModelId": "适配前模型 ID",
      "targetModelId": "适配后模型 ID",
      "sourcePlaceholder": "工具发出的模型名",
      "provider": "供应商",
      "addMapping": "添加映射",
      "bulkImport": "一键导入全部",
      "selectProviderFirst": "-- 选择供应商 --",
      "noModelsInProvider": "供应商 \"{{provider}}\" 没有配置模型",
      "importedModels": "已导入 {{added}} 个模型",
      "importedModelsSkip": "，跳过 {{skipped}} 个已存在",
      "selectProvider": "-- 选择供应商 --",
      "selectModel": "-- 选择模型 --",
      "deleteConfirm": "确定删除适配器 \"{{name}}\" 吗？",
      "saveFailed": "保存失败",
      "deleteFailed": "删除失败",
      "updated": "适配器已更新",
      "created": "适配器已创建",
      "deleted": "适配器已删除",
      "testTitle": "测试适配器 — {{name}}",
      "runTest": "运行",
      "clearResults": "清除结果",
      "noResults": "点击 \"运行\" 测试所选映射模型",
      "reachable": "不可达"
    },
    "capture": {
      "title": "协议数据包捕获",
      "start": "▶ 开始抓包",
      "pause": "⏸ 暂停",
      "stop": "■ 结束",
      "entryCount": "{{count}} 条",
      "source": "来源",
      "sourceProxy": "代理",
      "filterAll": "全部",
      "time": "时间",
      "duration": "耗时",
      "sourceCol": "来源",
      "adapter": "适配器",
      "inboundProtocol": "入站协议",
      "inboundModel": "入站模型",
      "upstreamProvider": "上游供应商",
      "upstreamProtocol": "上游协议",
      "upstreamModel": "上游模型",
      "requestSize": "请求大小",
      "responseSize": "响应大小",
      "empty": "暂无数据包 — 发起一次代理请求即可捕获",
      "copyRaw": "复制原始内容"
    },
    "test": {
      "title": "测试 — {{name}}",
      "run": "运行",
      "testing": "测试中",
      "clearResults": "清除结果",
      "close": "关闭",
      "noResults": "点击 \"运行\" 测试所选模型",
      "unreachable": "不可达",
      "requestFailed": "请求失败"
    },
    "confirm": {
      "cancel": "取消",
      "confirm": "确定"
    }
  },
  "cli": {
    "start": {
      "configNotFound": "错误: 配置文件不存在: {{path}}",
      "alreadyRunning": "错误: 代理已在运行 (PID: {{pid}})",
      "configLoaded": "配置加载成功",
      "configLoadFailed": "配置加载失败: {{error}}",
      "started": "代理已启动: http://{{host}}:{{port}}",
      "adminApi": "  管理 API:  http://{{host}}:{{port}}/admin/",
      "aiApi": "  AI API:    http://{{host}}:{{port}}/v1/",
      "pid": "PID: {{pid}}",
      "configFile": "配置文件: {{configPath}}",
      "sigterm": "\n收到 SIGTERM，正在关闭...",
      "language": "当前语言: {{lang}}"
    },
    "stop": {
      "notRunning": "未找到运行中的代理",
      "stalePid": "发现残留 PID 文件，清理中...",
      "stopping": "正在停止代理 (PID: {{pid}})...",
      "forceKill": "进程未在限时内退出，已强制终止 (PID: {{pid}})",
      "recovered": "已通过端口 {{port}} 找到代理进程 (PID: {{pid}})，继续停止..."
    },
    "status": {
      "notRunning": "代理未运行",
      "running": "代理正在运行 (PID: {{pid}})",
      "port": "端口: {{port}}"
    },
    "restart": {
      "stopping": "正在停止代理 (PID: {{pid}})...",
      "restarting": "代理已停止，正在重启...",
      "stalePid": "发现残留 PID 文件，清理中..."
    },
    "reload": {
      "success": "配置重载成功 (版本: {{version}})",
      "failed": "配置重载失败: {{error}}",
      "errorItem": "  - {{message}}",
      "connectionFailed": "无法连接到代理: {{error}}"
    }
  },
  "backend": {
    "config": {
      "reloadSuccess": "配置重载成功",
      "reloadFailed": "配置重载失败",
      "validationFailed": "配置校验失败",
      "validationErrors": "配置校验失败:\n{{errors}}",
      "duplicateModelId": "模型 ID \"{{modelId}}\" 在模型供应商 \"{{provider}}\" 中重复",
      "duplicateSourceModelId": "适配前模型 ID \"{{sourceModelId}}\" 在适配器 \"{{adapter}}\" 中重复"
    },
    "provider": {
      "validationFailed": "校验失败",
      "referencedByAdapter": "模型供应商 \"{{name}}\" 被适配器 \"{{adapter}}\" 引用，无法删除",
      "deleteRequest": "收到删除 Provider 请求",
      "deleted": "Provider 已删除",
      "createRequest": "收到创建 Provider 请求",
      "created": "Provider 已创建",
      "updateRequest": "收到更新 Provider 请求",
      "updated": "Provider 已更新",
      "notFound": "模型未找到: {{model}}"
    },
    "adapter": {
      "validationFailed": "校验失败",
      "serverError": "服务器状态异常",
      "deleteRequest": "收到删除适配器请求",
      "deleted": "适配器已删除",
      "createRequest": "收到创建适配器请求",
      "created": "适配器已创建"
    },
    "model": {
      "testRequest": "收到模型测试请求",
      "testResult": "模型测试",
      "testFailed": "模型测试失败",
      "testReachable": "可达",
      "testUnreachable": "不可达",
      "adapterTestRouteFailed": "适配器测试路由解析失败",
      "adapterTestResult": "适配器测试",
      "adapterTestFailed": "适配器测试失败",
      "pullModelsFailed": "远程模型拉取失败"
    },
    "proxy": {
      "requestError": "处理异常",
      "modelNotFound": "模型未找到: {{model}}"
    },
    "errors": {
      "readBodyFailed": "读取请求体失败",
      "invalidJson": "请求体不是有效的 JSON"
    }
  }
}
