/** Channel Monitor V2 (user + admin passive monitor UI) */
export default {
  channelMonitorV2: {
    title: '渠道监控',
    updating: '正在更新数据',
    updatedTo: '更新至 {time}',
    partialCoverage: '部分历史覆盖',
    bootstrap: {
      title: '正在补齐历史监控数据',
      description:
        '首次启用被动监控时，系统会在后台静默聚合 90 分钟、24 小时、7 天与 30 天窗口；完成后可切换全部时间范围。',
      progress: '进度 {percent}%',
      working: '后台聚合中…',
    },
    timeRange: '时间范围',
    clearFilters: '重置',
    refreshingFilters: '筛选条件已变化，正在刷新矩阵、趋势和明细…',
    switchingData: '正在切换筛选数据…',
    summaryAria: '筛选范围整体汇总',
    loadFailed: '渠道监控加载失败',
    detailLoadFailed: '渠道监控明细加载失败',
    otherModels: '其他模型',
    ignored: '忽略',
    currentUser: '当前用户',
    ranges: { '90m': '90m', '24h': '24h', '7d': '7d', '30d': '30d' },
    filters: {
      platform: '平台', allPlatforms: '全部', group: '分组', allGroups: '全部', model: '模型', allModels: '全部',
      empty: '暂无可选项', selectedCount: '{count} 项', labelValue: '{label}：{value}'
    },
    groupBy: {
      label: '展示维度', platform: '平台', platformGroup: '平台 / 分组', platformModel: '平台 / 模型', platformGroupModel: '平台 / 分组 / 模型'
    },
    trendView: { label: '趋势视图', pulse: '色块矩阵', line: '折线图' },
    healthMode: { label: '健康显示', overall: '综合', success: '错误率', ttft: '首 Token', cache: '缓存率' },
    tabs: { aria: '明细维度', models: '模型', errors: '错误原因', users: '用户排行' },
    metrics: {
      rpm: 'RPM',
      tpm: 'TPM',
      tps: '每秒 Token',
      rpmDetail: '每分钟请求数',
      tpmDetail: '每分钟 Token 数',
      tpsDetail: '由 TPM ÷ 60 换算',
      errorRate: '错误率',
      ttft: '首 Token',
      ttftP50: '首 Token P50',
      durationP50: '请求时长 P50',
      cacheRate: '缓存率',
      cacheDetail: '读缓存占比',
      successRate: '成功率',
      successRateValue: '成功率 {value}',
      errorRateValue: '错误率 {value}',
      rpmValue: 'RPM {value}',
      tpmValue: 'TPM {value}',
      tpsValue: '每秒 Token {value}',
      ttftValue: '首 Token {value}',
      durationValue: '请求时长 {value}',
      cacheRateValue: '缓存率 {value}',
    },
    table: { platformModel: '平台 / 模型', rank: '排名', user: '用户' },
    empty: { title: '没有可展示的数据', description: '尝试调整时间范围或筛选条件' },
    bucket: { minutes: '{count} 分钟粒度', hours: '{count} 小时粒度', days: '{count} 天粒度' },
    matrix: {
      title: '可用性趋势', description: '每行是一种渠道组合，每个色块代表一个统计区间；悬停查看明细', wheelZoom: '在色块上滚轮放大（区间变窄、色块变宽）', wheelZoomX: '在色块上滚轮放大（区间变窄、色块变宽）', dimension: '渠道维度', emptyTitle: '当前筛选窗口没有矩阵数据', legendAria: '健康分数图例', bad: '差', good: '好', healthyLegend: '健康 (≥80)', warningLegend: '需关注 (50–79)', criticalLegend: '异常 (<50)', unknownLegend: '无流量 / 样本不足', noTraffic: '该区间无流量', noTrafficAt: '{time} · 无流量', scoreLine: '健康分 {score}', resetZoom: '重置缩放'
    },
    chart: {
      title: '可用性趋势', description: '平滑趋势：错误率 · 首 Token P50 · 缓存率', emptyTitle: '当前筛选窗口没有趋势数据', errorLegend: '错误率（左轴 %）', cacheLegend: '缓存率（左轴 %）', ttftLegend: '首 Token P50（右轴）', errorDataset: '错误率趋势 %', cacheDataset: '缓存率趋势 %', ttftDataset: '首 Token 趋势 P50 (ms)', percentAxis: '比率 %', resetZoom: '重置缩放'
    },
    errorDetail: { http: 'HTTP {code}', upstream: '上游 {code}', noMessage: '无错误消息', empty: '仅展示分类占比（样本消息仅管理员可见）' },
    errorCategories: {
      content_policy: '内容策略', authentication: '认证失败', context_limit: '上下文超限', invalid_request: '请求格式', model_unsupported: '模型不支持', group_access: '分组权限', quota_or_balance: '额度或余额', account_pool_unavailable: '账号池不可用', rate_or_capacity: '限流或容量', timeout: '超时', transport_or_stream: '传输或流', upstream_forbidden: '上游拒绝', not_found: '资源不存在', client_cancelled: '客户端取消', upstream_5xx: '上游 5xx', internal: '内部错误', other: '其他'
    },
    rank: {
      gold: '第 1 名 金',
      silver: '第 2 名 银',
      bronze: '第 3 名 铜',
      place: '第 {n} 名',
      unranked: '未上榜',
    },
    settings: {
      title: 'V2 数据监控配置',
      description:
        '配置被动用量汇总维度（平台 / 模型 / 分组）与刷新频率。健康色与明细在用户端 /monitor 以比例、RPM/TPM 展示，不暴露绝对请求量。',
      save: '保存',
      loading: '加载中...',
      loadFailed: 'V2 配置加载失败',
      saveSuccess: 'V2 监控配置已保存',
      saveFailed: 'V2 配置保存失败',
      modeBanner:
        '当前系统设置为 {mode}。V2 分钟聚合不会运行；此处配置可预先保存，切换到 {modeV2} 后立即生效。可在系统设置 → 功能开关调整。',
      modeClosed: '渠道监控已关闭',
      modeV1: 'V1 主动探测',
      modeV2: 'V2 被动监控',
      enableTitle: '启用 V2 汇总',
      enableHint: '在系统模式为 V2 时生效；关闭后仅停止本配置的汇总，系统模式开关仍在「功能开关」',
      refreshTitle: '汇总频率',
      refreshHint: '影响矩阵时间粒度与刷新节奏',
      refreshAria: '汇总频率',
      platformsTitle: '平台与模型',
      platformsHint: '留空 = 展示全部真实模型名；填写后仅名单内单独成行，其余归入「其他」',
      modelsPlaceholder: '留空=全部真实模型；或填写主流模型名单（其余归其他）',
      badgeAllModels: '全部模型',
      badgeOther: '+ 其他',
      groupsTitle: '监控分组',
      groupsSelected: '已选择 {count} 个分组',
      groupsAll: '全部分组',
      groupsEmpty: '没有可选择的分组',
      errorsTitle: '错误分类与忽略',
      errorsHint:
        '勾选「忽略」的类别不计入错误率与健康分，仍在错误原因列表中以灰色显示并标记忽略。未匹配的错误归入「其他」。',
      ignoredSummary: '已忽略 {ignored} 类 · 计入错误率 {counted} 类',
      healthTitle: '健康阈值',
      healthHint: '控制用户端色块和整体评分。默认阈值较宽松，避免少量错误或低缓存率立即显示异常。',
      fields: {
        minimumSample: '最小样本数',
        warningError: '错误率关注 %',
        criticalError: '错误率异常 %',
        targetTtft: 'TTFT 目标 ms',
        warningTtft: 'TTFT 关注 ms',
        criticalTtft: 'TTFT 异常 ms',
        warningCache: '缓存率关注 %',
        criticalCache: '缓存率异常 %',
      },
      namedModelsEmpty: '各平台模型列表为空：将展示全部真实模型名（不归入「其他」）。',
      namedModelsCount: '将展示 {count} 个命名模型维度；名单外模型归入各平台「其他」。',
      userContractTitle: '用户端展示约定',
      userContract: {
        health: '健康色三指标：错误率 60% + 首 Token P50 20% + 缓存率 20%（阈值可在上方配置）',
        trend: '趋势可切换色块矩阵 / 折线图（错误率 · 缓存率 · 首 Token）',
        latency: '延迟展示 AVG · P50 · P90；不展示绝对请求数 / 错误数',
        models: '模型列表留空时展示真实模型名，不会全部归入「其他」',
      },
    },
    admin: {
      descriptionV1: '当前系统设置为 V1 主动探测：可管理监控项并立即检测；V2 聚合不会运行。',
      descriptionV2: '当前系统设置为 V2 被动监控：配置聚合维度；V1 主动探测不会运行。',
      tabAria: '监控管理',
      tabV2: 'V2 数据监控配置',
      tabV1Active: 'V1 主动探测',
      tabV1History: 'V1 历史（当前模式未启用探测）',
    },
  },
}
