export default {
    ops: {
      title: '运维监控',
      description: '运维监控与排障',
      // Dashboard
      systemHealth: '系统健康',
      overview: '概览',
      noSystemMetrics: '尚未收集系统指标。',
      collectedAt: '采集时间：',
      window: '窗口',
      memory: '内存',
      db: '数据库',
      goroutines: '协程',
      jobs: '后台任务',
      jobsHelp: '点击“明细”查看任务心跳与报错信息',
      active: '活跃',
      idle: '空闲',
      waiting: '等待',
      conns: '连接',
      queue: '队列',
      accountSwitches: '账号切换',
      ok: '正常',
      lastRun: '最近运行',
      lastSuccess: '最近成功',
      lastError: '最近错误',
      result: '结果',
      noData: '暂无数据',
      loadingText: '加载中...',
      ready: '就绪',
      autoRefreshRemaining: '剩余 {seconds}s',
      systemLogs: {
        title: '系统日志',
        description: '优先显示最新日志，可按条件筛选、搜索和清理。',
        queue: '队列',
        written: '已写入',
        dropped: '已丢弃',
        failed: '写入失败',
        runtimeConfig: '运行时日志配置（立即生效）',
        all: '全部',
        level: '级别',
        stacktraceThreshold: '堆栈阈值',
        samplingInitial: '采样初始条数',
        samplingThereafter: '后续采样间隔',
        retentionDays: '保留天数',
        caller: '调用方',
        sampling: '采样',
        saveAndApply: '保存并应用',
        resetDefaults: '重置默认值',
        latestWriteError: '最近写入错误：',
        timeRange: '时间范围',
        startTime: '开始时间（可选）',
        endTime: '结束时间（可选）',
        host: 'Host',
        component: '组件',
        componentPlaceholder: '例如 http.access',
        keyId: 'KEY ID',
        platform: '平台',
        model: '模型',
        keyword: '关键词',
        keywordPlaceholder: 'message/request_id',
        search: '搜索',
        cleanCurrentFilters: '清理当前筛选结果',
        refreshHealth: '刷新健康状态',
        empty: '暂无系统日志',
        time: '时间',
        logDetails: '日志详情',
        loadFailed: '加载系统日志失败',
        runtimeConfigActive: '运行时日志配置已生效',
        runtimeConfigSaveFailed: '保存日志配置失败',
        resetRuntimeConfigConfirm: '确定要重置为启动配置（env/yaml）并立即应用吗？',
        runtimeConfigReset: '已重置为启动日志配置',
        runtimeConfigResetFailed: '重置日志配置失败',
        cleanupConfirm: '确定要清理匹配当前筛选条件的系统日志吗？此操作不可撤销。',
        cleanupSuccess: '清理完成，已删除 {count} 条日志。',
        cleanupFilterRequired: '清理需要至少一个筛选条件（起止时间或其他字段）',
        cleanupFailed: '清理系统日志失败'
      },
      requestsTotal: '请求（总计）',
      slaScope: 'SLA 范围：',
      tokens: 'Token数',
      tps: 'TPS',
      current: '当前',
      peak: '峰值',
      average: '平均',
      totalRequests: '总请求',
      avgQps: '平均 QPS',
      avgTps: '平均 TPS',
      avgLatency: '平均请求时长',
      avgTtft: '平均首 Token 延迟',
      exceptions: '异常数',
      requestErrors: '请求错误',
      errorCount: '错误数',
      upstreamErrors: '上游错误',
      errorCountExcl429529: '错误数（排除429/529）',
      sla: 'SLA（排除业务限制）',
      businessLimited: '业务限制：',
      errors: '错误',
      errorRate: '错误率：',
      upstreamRate: '上游错误率：',
      latencyDuration: '请求时长',
      ttftLabel: '首 Token 延迟（毫秒）',
      p50: 'p50',
      p90: 'p90',
      p95: 'p95',
      p99: 'p99',
      avg: 'avg',
      max: 'max',
      requests: '请求数',
      requestsTitle: '请求',
      upstream: '上游',
      client: '客户端',
      system: '系统',
      other: '其他',
      errorsSla: '错误（SLA范围）',
      upstreamExcl429529: '上游（排除429/529）',
      failedToLoadData: '加载运维数据失败',
      failedToLoadOverview: '加载概览数据失败',
      failedToLoadThroughputTrend: '加载吞吐趋势失败',
      failedToLoadSwitchTrend: '加载平均账号切换趋势失败',
      failedToLoadLatencyHistogram: '加载请求时长分布失败',
      failedToLoadErrorTrend: '加载错误趋势失败',
      failedToLoadErrorDistribution: '加载错误分布失败',
      failedToLoadErrorDetail: '加载错误详情失败',
      retryFailed: '重试失败',
      tpsK: 'TPS（千）',
      top: '最高：',
      throughputTrend: '吞吐趋势',
      switchRateTrend: '平均账号切换趋势',
      latencyHistogram: '请求时长分布',
      errorTrend: '错误趋势',
      errorDistribution: '错误分布',
      switchRate: '平均账号切换',
      // Health Score & Diagnosis
      health: '健康',
      healthCondition: '健康状况',
      healthHelp: '基于 SLA、错误率和资源使用情况的系统整体健康评分',
      healthyStatus: '健康',
      riskyStatus: '风险',
      idleStatus: '待机',
      timeRange: {
        '5m': '近5分钟',
        '30m': '近30分钟',
        '1h': '近1小时',
        '1d': '近1天',
        '15d': '近15天',
        '6h': '近6小时',
        '24h': '近24小时',
        '7d': '近7天',
        '30d': '近30天',
        custom: '自定义'
      },
      openaiTokenStats: {
        title: 'OpenAI Token 请求统计',
        viewModeTopN: 'TopN',
        viewModePagination: '分页',
        prevPage: '上一页',
        nextPage: '下一页',
        pageInfo: '第 {page}/{total} 页',
        totalModels: '模型总数：{total}',
        failedToLoad: '加载 OpenAI Token 统计失败',
        empty: '当前筛选条件下暂无 OpenAI Token 请求统计数据',
        table: {
          model: '模型',
          requestCount: '请求数',
          avgTokensPerSec: '平均 Tokens/秒',
          avgFirstTokenMs: '平均首 Token 延迟(ms)',
          totalOutputTokens: '输出 Token 总数',
          avgDurationMs: '平均时长(ms)',
          requestsWithFirstToken: '首 Token 样本数'
        }
      },
      customTimeRange: {
        startTime: '开始时间',
        endTime: '结束时间'
      },
      fullscreen: {
        enter: '进入全屏'
      },
      diagnosis: {
        title: '智能诊断',
        footer: '基于当前指标的自动诊断建议',
        idle: '系统当前处于待机状态',
        idleImpact: '无活跃流量',
        // Resource diagnostics
        dbDown: '数据库连接失败',
        dbDownImpact: '所有数据库操作将失败',
        dbDownAction: '检查数据库服务状态、网络连接和连接配置',
        redisDown: 'Redis连接失败',
        redisDownImpact: '缓存功能降级，性能可能下降',
        redisDownAction: '检查Redis服务状态和网络连接',
        cpuCritical: 'CPU使用率严重过高 ({usage}%)',
        cpuCriticalImpact: '系统响应变慢，可能影响所有请求',
        cpuCriticalAction: '检查CPU密集型任务，考虑扩容或优化代码',
        cpuHigh: 'CPU使用率偏高 ({usage}%)',
        cpuHighImpact: '系统负载较高，需要关注',
        cpuHighAction: '监控CPU趋势，准备扩容方案',
        memoryCritical: '内存使用率严重过高 ({usage}%)',
        memoryCriticalImpact: '可能触发OOM，系统稳定性受威胁',
        memoryCriticalAction: '检查内存泄漏，考虑增加内存或优化内存使用',
        memoryHigh: '内存使用率偏高 ({usage}%)',
        memoryHighImpact: '内存压力较大，需要关注',
        memoryHighAction: '监控内存趋势，检查是否有内存泄漏',
        ttftHigh: '首 Token 时间偏高 ({ttft}ms)',
        ttftHighImpact: '用户感知时长增加',
        ttftHighAction: '优化请求处理流程，减少前置逻辑耗时',
        // Error rate diagnostics
        upstreamCritical: '上游错误率严重偏高 ({rate}%)',
        upstreamCriticalImpact: '可能影响大量用户请求',
        upstreamCriticalAction: '检查上游服务健康状态，启用降级策略',
        upstreamHigh: '上游错误率偏高 ({rate}%)',
        upstreamHighImpact: '建议检查上游服务状态',
        upstreamHighAction: '联系上游服务团队，准备降级方案',
        errorHigh: '错误率过高 ({rate}%)',
        errorHighImpact: '大量请求失败',
        errorHighAction: '查看错误日志，定位错误根因，紧急修复',
        errorElevated: '错误率偏高 ({rate}%)',
        errorElevatedImpact: '建议检查错误日志',
        errorElevatedAction: '分析错误类型和分布，制定修复计划',
        // SLA diagnostics
        slaCritical: 'SLA 严重低于目标 ({sla}%)',
        slaCriticalImpact: '用户体验严重受损',
        slaCriticalAction: '紧急排查错误原因，必要时采取限流保护',
        slaLow: 'SLA 低于目标 ({sla}%)',
        slaLowImpact: '需要关注服务质量',
        slaLowAction: '分析SLA下降原因，优化系统性能',
        // Health score diagnostics
        healthCritical: '综合健康评分过低 ({score})',
        healthCriticalImpact: '多个指标可能同时异常，建议优先排查错误与资源使用情况',
        healthCriticalAction: '全面检查系统状态，优先处理critical级别问题',
        healthLow: '综合健康评分偏低 ({score})',
        healthLowImpact: '可能存在轻度波动，建议关注 SLA 与错误率',
        healthLowAction: '监控指标趋势，预防问题恶化',
        healthy: '所有系统指标正常',
        healthyImpact: '服务运行稳定'
      },
      // Error Log
      errorLog: {
        timeId: '时间 / ID',
        commonErrors: {
          contextDeadlineExceeded: '请求超时',
          connectionRefused: '连接被拒绝',
          rateLimit: '触发限流'
        },
        time: '时间',
        type: '类型',
        context: '上下文',
        platform: '平台',
        model: '模型',
        group: '分组',
        user: '用户',
        userId: '用户 ID',
        apiKey: 'API Key',
        keyDeletedBadge: 'Key 已删除',
        account: '账号',
        accountId: '账号 ID',
        status: '状态码',
        message: '响应内容',
        ip: 'IP',
        latency: '请求时长',
        action: '操作',
        noErrors: '该窗口内暂无错误。',
        grp: 'GRP：',
        acc: 'ACC：',
        details: '详情',
        phase: '阶段',
        id: 'ID：',
        typeUpstream: '上游',
        typeRequest: '请求',
        typeAuth: '认证',
        typeAccountAuth: '账号认证',
        typeRouting: '路由',
        typeInternal: '内部',
        endpoint: '端点',
        requestType: '类型',
        requestTypeSync: '同步',
        requestTypeStream: '流式',
        requestTypeWs: 'WS'
      },
      // Error Details Modal
      errorDetails: {
        upstreamErrors: '上游错误',
        requestErrors: '请求错误',
        unresolved: '未解决',
        resolved: '已解决',
        viewErrors: '错误',
        viewExcluded: '排除项',
        statusCodeOther: '其他',
        owner: {
          provider: '服务商',
          client: '客户端',
          platform: '平台'
        },
        phase: {
          request: '请求',
          auth: '认证',
          account_auth: '账号认证',
          routing: '路由',
          upstream: '上游',
          network: '网络',
          internal: '内部'
        },
        total: '总计：',
        searchPlaceholder: '搜索 request_id / client_request_id / message'
      },
      // Error Detail Modal
      errorDetail: {
        title: '错误详情',
        titleWithId: '错误 #{id}',
        noErrorSelected: '未选择错误。',
        resolution: '已解决：',
        failedToUpdateResolvedStatus: '更新解决状态失败',
        classificationKeys: {
          phase: '阶段',
          owner: '归属方',
          source: '来源',
          resolvedAt: '解决时间',
          resolvedBy: '解决人'
        },
        source: {
          upstream_http: '上游 HTTP'
        },
        upstreamKeys: {
          status: '状态码',
          message: '消息',
          detail: '详情',
          upstreamErrors: '上游错误列表'
        },
        upstreamEvent: {
          account: '账号',
          status: '状态码',
          requestId: '请求ID'
        },
        responsePreview: {
          expand: '响应内容（点击展开）',
          collapse: '响应内容（点击收起）'
        },
        loading: '加载中…',
        requestId: '请求 ID',
        time: '时间',
        phase: '阶段',
        status: '状态码',
        message: '消息',
        basicInfo: '基本信息',
        platform: '平台',
        model: '模型',
        group: '分组',
        user: '用户',
        account: '账号',
        latency: '请求时长',
        businessLimited: '业务限制',
        requestPath: '请求路径',
        inboundEndpoint: '入站端点',
        upstreamEndpoint: '上游端点',
        requestedModel: '请求模型',
        upstreamModel: '上游模型',
        requestType: '请求类型',
        requestTypeUnknown: '未知',
        requestTypeSync: '同步',
        requestTypeStream: '流式',
        requestTypeWs: 'WebSocket',
        modelMapping: '模型映射',
        timings: '时序信息',
        auth: '认证',
        routing: '路由',
        upstream: '上游',
        response: '响应',
        classification: '错误分类',
        errorBody: '错误体',
        trimmed: '已截断',
        markResolved: '标记已解决',
        markUnresolved: '标记未解决',
        tabOverview: '概览',
        tabRequest: '请求详情',
        tabResponse: '响应详情',
        responseBody: '响应详情',
        compareA: '对比 A',
        compareB: '对比 B',
        suggestion: '处理建议',
        suggestUpstream: '⚠️ 上游服务不稳定，建议：检查上游账号状态 / 考虑切换账号',
        suggestRequest: '⚠️ 客户端请求错误，建议：联系客户修正请求参数 / 手动标记已解决',
        suggestAuth: '⚠️ 认证失败，建议：检查 API Key 是否有效 / 联系客户更新凭证',
        suggestPlatform: '🚨 平台错误，建议立即排查修复',
        suggestGeneric: '查看详情了解更多信息',
        apiKeyPrefix: 'Key 前缀',
        keyDeletedBadge: 'Key 已删除'
      },
      requestDetails: {
        title: '请求明细',
        details: '明细',
        rangeLabel: '窗口：{range}',
        rangeMinutes: '{n} 分钟',
        rangeHours: '{n} 小时',
        empty: '该窗口内暂无请求。',
        emptyHint: '可尝试调整时间范围或取消部分筛选。',
        failedToLoad: '加载请求明细失败',
        requestIdCopied: '请求ID已复制',
        copyFailed: '复制失败',
        copy: '复制',
        viewError: '查看错误',
        kind: {
          success: '成功',
          error: '失败'
        },
        table: {
          time: '时间',
          kind: '类型',
          platform: '平台',
          model: '模型',
          duration: '耗时',
          status: '状态码',
          requestId: '请求ID',
          actions: '操作'
        }
      },
      alertEvents: {
        title: '告警事件',
        description: '最近的告警触发/恢复记录（仅邮件通知）',
        loading: '加载中...',
        empty: '暂无告警事件',
        loadFailed: '加载告警事件失败',
        status: {
          firing: '告警中',
          resolved: '已恢复',
          manualResolved: '手动已解决'
        },
        detail: {
          title: '告警详情',
          loading: '加载详情中...',
          empty: '暂无详情',
          loadFailed: '加载告警详情失败',
          manualResolve: '标记为已解决',
          manualResolvedSuccess: '已标记为手动解决',
          manualResolvedFailed: '标记为手动解决失败',
          silence: '忽略此告警',
          silenceSuccess: '已静默该告警',
          silenceFailed: '静默失败',
          viewRule: '查看规则',
          viewLogs: '查看相关日志',
          firedAt: '触发时间',
          resolvedAt: '解决时间',
          ruleId: '规则 ID',
          dimensions: '维度信息',
          historyTitle: '历史记录',
          historyHint: '同一规则 + 相同维度的最近事件',
          historyLoading: '加载历史中...',
          historyEmpty: '暂无历史记录'
        },
        table: {
          time: '时间',
          status: '状态',
          severity: '级别',
          platform: '平台',
          ruleId: '规则ID',
          title: '标题',
          duration: '持续时间',
          metric: '指标 / 阈值',
          dimensions: '维度',
          email: '邮件已发送',
          emailSent: '已发送',
          emailIgnored: '已忽略'
        }
      },
      alertRules: {
        title: '告警规则',
        description: '创建与管理系统阈值告警（仅邮件通知）',
        loading: '加载中...',
        empty: '暂无告警规则',
        loadFailed: '加载告警规则失败',
        saveSuccess: '警报规则保存成功',
        saveFailed: '保存告警规则失败',
        deleteSuccess: '警报规则删除成功',
        deleteFailed: '删除告警规则失败',
        create: '新建规则',
        createTitle: '新建告警规则',
        editTitle: '编辑告警规则',
        deleteConfirmTitle: '确认删除该规则？',
        deleteConfirmMessage: '将删除该规则及其关联的告警事件，是否继续？',
        manage: '预警规则',
        metricGroups: {
          system: '系统指标',
          group: '分组级别指标（需 group_id）',
          account: '账号级别指标'
        },
        metrics: {
          successRate: '成功率 (%)',
          errorRate: '错误率 (%)',
          upstreamErrorRate: '上游错误率 (%)',
          p95: 'P95 请求时长 (ms)',
          p99: 'P99 请求时长 (ms)',
          cpu: 'CPU 使用率 (%)',
          memory: '内存使用率 (%)',
          queueDepth: '并发排队深度',
          groupAvailableAccounts: '分组可用账号数',
          groupAvailableRatio: '分组可用比例 (%)',
          groupRateLimitRatio: '分组限流比例 (%)',
          accountRateLimitedCount: '限流账号数',
          accountErrorCount: '错误账号数（不含临时不可调度）',
          accountErrorRatio: '错误账号比例 (%)',
          accountTempUnscheduledCount: '临时不可调度账号数',
          overloadAccountCount: '过载账号数'
        },
        metricDescriptions: {
          successRate: '统计窗口内成功请求占比（0~100）。',
          errorRate: '统计窗口内失败请求占比（0~100）。',
          upstreamErrorRate: '统计窗口内上游错误占比（0~100）。',
          p95: '统计窗口内 P95 请求耗时（毫秒）。',
          p99: '统计窗口内 P99 请求耗时（毫秒）。',
          cpu: '当前实例 CPU 使用率（0~100）。',
          memory: '当前实例内存使用率（0~100）。',
          queueDepth: '统计窗口内并发队列排队深度（等待中的请求数）。',
          groupAvailableAccounts: '指定分组中当前可用账号数量（需要 group_id 过滤）。',
          groupAvailableRatio: '指定分组中可用账号占比（0~100，需要 group_id 过滤）。',
          groupRateLimitRatio: '指定分组中账号被限流的比例（0~100，需要 group_id 过滤）。',
          accountRateLimitedCount: '统计窗口内被限流的账号数量。',
          accountErrorCount: '统计窗口内产生错误的账号数量（不含临时不可调度）。',
          accountErrorRatio: '统计窗口内错误账号占比（0~100）。',
          accountTempUnscheduledCount: '当前处于临时不可调度状态的账号数量（如代理/凭据故障被自动摘除）。',
          overloadAccountCount: '统计窗口内过载账号数量。'
        },
        hints: {
          recommended: '推荐：运算符 {operator}，阈值 {threshold}{unit}',
          groupRequired: '该指标为分组级别指标，必须选择分组（group_id）。',
          groupOptional: '可选：通过 group_id 将规则限定到某个分组。'
        },
        table: {
          name: '名称',
          metric: '指标',
          severity: '级别',
          enabled: '启用',
          actions: '操作'
        },
        form: {
          name: '名称',
          description: '描述',
          metric: '指标',
          operator: '运算符',
          groupId: '分组（group_id）',
          groupPlaceholder: '请选择分组',
          allGroups: '全部分组',
          threshold: '阈值',
          severity: '级别',
          window: '统计窗口（分钟）',
          sustained: '连续样本数（每分钟）',
          cooldown: '冷却期（分钟）',
          enabled: '启用',
          notifyEmail: '发送邮件通知'
        },
        validation: {
          title: '请先修正以下问题',
          invalid: '规则不合法',
          nameRequired: '名称不能为空',
          metricRequired: '指标不能为空',
          groupIdRequired: '分组级别指标必须指定 group_id',
          operatorRequired: '运算符不能为空',
          thresholdRequired: '阈值必须为数字',
          windowRange: '统计窗口必须为 1 / 5 / 60 分钟之一',
          sustainedRange: '连续样本数必须在 1 到 1440 之间',
          cooldownRange: '冷却期必须在 0 到 1440 分钟之间'
        }
      },
      runtime: {
        title: '运维监控运行设置',
        description: '配置存储在数据库中，无需修改 config 文件即可生效。',
        loading: '加载中...',
        noData: '暂无运行设置',
        loadFailed: '加载运行设置失败',
        saveSuccess: '运行设置已保存',
        saveFailed: '保存运行设置失败',
        alertTitle: '告警评估器',
        groupAvailabilityTitle: '分组可用性监控',
        evalIntervalSeconds: '评估间隔（秒）',
        silencing: {
          title: '告警静默（维护模式）',
          enabled: '启用静默',
          globalUntil: '静默截止时间（RFC3339）',
          untilHint: '建议填写截止时间，避免忘记关闭静默。',
          reason: '原因',
          reasonPlaceholder: '例如：计划维护',
          entries: {
            title: '高级：定向静默',
            hint: '可选：仅静默特定规则或特定级别。字段留空表示匹配全部。',
            add: '新增条目',
            empty: '暂无定向静默条目',
            entryTitle: '条目 #{n}',
            ruleId: '规则ID（可选）',
            ruleIdPlaceholder: '例如：1',
            severities: '级别（可选）',
            severitiesPlaceholder: '例如：P0,P1（留空=全部）',
            until: '截止时间（RFC3339）',
            reason: '原因',
            validation: {
              untilRequired: '条目截止时间不能为空',
              untilFormat: '条目截止时间必须为合法的 RFC3339 时间戳',
              ruleIdPositive: '条目 rule_id 必须为正整数',
              severitiesFormat: '条目级别必须为 P0..P3 的逗号分隔列表'
            }
          },
          validation: {
            timeFormat: '静默时间必须为合法的 RFC3339 时间戳'
          }
        },
        lockEnabled: '启用分布式锁',
        lockKey: '分布式锁 Key',
        lockTTLSeconds: '分布式锁 TTL（秒）',
        showAdvancedDeveloperSettings: '显示高级开发者设置 (Distributed Lock)',
        advancedSettingsSummary: '高级设置 (分布式锁)',
        evalIntervalHint: '检测任务的执行频率，建议保持默认。',
        validation: {
          title: '请先修正以下问题',
          invalid: '设置不合法',
          evalIntervalRange: '评估间隔必须在 1 到 86400 秒之间',
          lockKeyRequired: '启用分布式锁时必须填写 Lock Key',
          lockKeyPrefix: '分布式锁 Key 必须以「{prefix}」开头',
          lockKeyHint: '建议以「{prefix}」开头以避免冲突',
          lockTtlRange: '分布式锁 TTL 必须在 1 到 86400 秒之间',
          slaMinPercentRange: 'SLA 最低值必须在 0-100 之间',
          ttftP99MaxRange: 'TTFT P99 最大值必须大于或等于 0',
          requestErrorRateMaxRange: '请求错误率最大值必须在 0-100 之间',
          upstreamErrorRateMaxRange: '上游错误率最大值必须在 0-100 之间'
        }
      },
      email: {
        title: '邮件通知配置',
        description: '配置告警/报告邮件通知（存储在数据库中）。',
        loading: '加载中...',
        noData: '暂无邮件通知配置',
        loadFailed: '加载邮件通知配置失败',
        saveSuccess: '邮件通知配置已保存',
        saveFailed: '保存邮件通知配置失败',
        alertTitle: '告警邮件',
        reportTitle: '报告邮件',
        recipients: '收件人',
        recipientsHint: '若为空，系统可能会回退使用第一个管理员邮箱。',
        minSeverity: '最低级别',
        minSeverityAll: '全部级别',
        rateLimitPerHour: '每小时限额',
        batchWindowSeconds: '合并窗口（秒）',
        includeResolved: '包含恢复通知',
        dailySummary: '每日摘要',
        weeklySummary: '每周摘要',
        errorDigest: '错误摘要',
        errorDigestMinCount: '错误摘要最小数量',
        accountHealth: '账号健康报告',
        accountHealthThreshold: '错误率阈值（%）',
        cronPlaceholder: 'Cron 表达式',
        reportHint: '发送时间使用 Cron 语法；留空将使用默认值。',
        validation: {
          title: '请先修正以下问题',
          invalid: '邮件通知配置不合法',
          alertRecipientsRequired: '已启用告警邮件，但未配置任何收件人',
          reportRecipientsRequired: '已启用报告邮件，但未配置任何收件人',
          invalidRecipients: '存在不合法的收件人邮箱',
          rateLimitRange: '每小时限额必须为 ≥ 0 的数字',
          batchWindowRange: '合并窗口必须在 0 到 86400 秒之间',
          cronRequired: '启用定时任务时必须填写 Cron 表达式',
          cronFormat: 'Cron 表达式格式可能不正确（至少应包含 5 段）',
          digestMinCountRange: '错误摘要最小数量必须为 ≥ 0 的数字',
          accountHealthThresholdRange: '账号健康错误率阈值必须在 0 到 100 之间'
        }
      },
      settings: {
        title: '运维监控设置',
        loadFailed: '加载设置失败',
        saveSuccess: '运维监控设置保存成功',
        saveFailed: '保存设置失败',
        dataCollection: '数据采集',
        evaluationInterval: '评估间隔（秒）',
        evaluationIntervalHint: '检测任务的执行频率，建议保持默认',
        alertConfig: '预警配置',
        enableAlert: '开启预警',
        alertRecipients: '预警接收邮箱',
        emailPlaceholder: '输入邮箱地址',
        recipientsHint: '若为空，系统将使用第一个管理员邮箱作为默认收件人',
        minSeverity: '最低级别',
        reportConfig: '评估报告配置',
        enableReport: '开启评估报告',
        reportRecipients: '评估报告接收邮箱',
        dailySummary: '每日摘要',
        weeklySummary: '每周摘要',
        metricThresholds: '指标阈值配置',
        metricThresholdsHint: '配置各项指标的告警阈值，超出阈值时将以红色显示',
        slaMinPercent: 'SLA最低百分比',
        slaMinPercentHint: 'SLA低于此值时显示为红色（默认：99.5%）',
        ttftP99MaxMs: 'TTFT P99最大值（毫秒）',
        ttftP99MaxMsHint: 'TTFT P99高于此值时显示为红色（默认：500ms）',
        requestErrorRateMaxPercent: '请求错误率最大值（%）',
        requestErrorRateMaxPercentHint: '请求错误率高于此值时显示为红色（默认：5%）',
        upstreamErrorRateMaxPercent: '上游错误率最大值（%）',
        upstreamErrorRateMaxPercentHint: '上游错误率高于此值时显示为红色（默认：5%）',
        advancedSettings: '高级设置',
        dataRetention: '数据保留策略',
        enableCleanup: '启用数据清理',
        cleanupSchedule: '清理计划（Cron）',
        cleanupScheduleHint: '例如：0 2 * * * 表示每天凌晨2点',
        errorLogRetentionDays: '错误日志保留天数',
        minuteMetricsRetentionDays: '分钟指标保留天数',
        hourlyMetricsRetentionDays: '小时指标保留天数',
        retentionDaysHint: '建议保留 7-90 天，过长会占用存储空间；填 0 表示每次定时清理时清空所有历史',
        aggregation: '预聚合任务',
        enableAggregation: '启用预聚合任务',
        aggregationHint: '预聚合可提升长时间窗口查询性能',
        openaiQuotaAutoPause: 'OpenAI 账号配额自动暂停',
        openaiQuotaAutoPauseHint: '当 OpenAI 账号 5h / 7d 用量达到阈值时，调度会自动跳过该账号；窗口滚动后自动恢复。账号级阈值优先于此全局默认值。',
        openaiQuotaAutoPauseDefault5h: '默认 5h 用量阈值 (%)',
        openaiQuotaAutoPauseDefault7d: '默认 7d 用量阈值 (%)',
        openaiQuotaAutoPauseThresholdHint: '取值 0-100，留空或 0 表示不启用全局默认阈值。',
        errorFiltering: '错误过滤',
        ignoreCountTokensErrors: '忽略 count_tokens 错误',
        ignoreCountTokensErrorsHint: '启用后，count_tokens 请求的错误将不会写入错误日志。',
        ignoreContextCanceled: '忽略客户端断连错误',
        ignoreContextCanceledHint:
          '启用后，客户端主动断开连接（context canceled）的错误将不会写入错误日志。',
        ignoreNoAvailableAccounts: '忽略无可用账号错误',
        ignoreNoAvailableAccountsHint: '启用后，"No available accounts" 错误将不会写入错误日志（不推荐，这通常是配置问题）。',
        ignoreInsufficientBalanceErrors: '忽略余额不足错误',
        ignoreInsufficientBalanceErrorsHint: '启用后，账号余额不足（Insufficient balance）的错误将不会写入错误日志。',
        autoRefresh: '自动刷新',
        enableAutoRefresh: '启用自动刷新',
        enableAutoRefreshHint: '自动刷新仪表板数据，启用后会定期拉取最新数据。',
        refreshInterval: '刷新间隔',
        refreshInterval15s: '15 秒',
        refreshInterval30s: '30 秒',
        refreshInterval60s: '60 秒',
        dashboardCards: '仪表盘卡片',
        displayAlertEvents: '展示告警事件',
        displayAlertEventsHint: '控制运维监控仪表盘中告警事件卡片是否显示，默认开启。',
        displayOpenAITokenStats: '展示 OpenAI Token 请求统计',
        displayOpenAITokenStatsHint: '控制运维监控仪表盘中 OpenAI Token 请求统计卡片是否显示，默认关闭。',
        autoRefreshCountdown: '自动刷新：{seconds}s',
        validation: {
          title: '请先修正以下问题',
          retentionDaysRange: '保留天数必须在 0-365 天之间（0 = 每次清理时清空所有）',
          slaMinPercentRange: 'SLA最低百分比必须在0-100之间',
          ttftP99MaxRange: 'TTFT P99最大值必须大于等于0',
          requestErrorRateMaxRange: '请求错误率最大值必须在0-100之间',
          upstreamErrorRateMaxRange: '上游错误率最大值必须在0-100之间',
          openaiQuotaAutoPauseRange: 'OpenAI 配额自动暂停阈值必须在 0-100 之间'
        }
      },
      concurrency: {
        title: '并发 / 排队',
        byPlatform: '按平台',
        byGroup: '按分组',
        byAccount: '按账号',
        byUser: '按用户',
        showByUserTooltip: '切换用户视图，显示每个用户的并发使用情况',
        switchToUser: '切换到用户视图',
        switchToPlatform: '切换回平台视图',
        totalRows: '共 {count} 项',
        disabledHint: '已在设置中关闭实时监控。',
        empty: '暂无数据',
        queued: '队列 {count}',
        rateLimited: '限流 {count}',
        errorAccounts: '异常 {count}',
        loadFailed: '加载并发数据失败'
      },
      realtime: {
        title: '实时信息',
        connected: '实时已连接',
        connecting: '实时连接中',
        reconnecting: '实时重连中',
        offline: '实时离线',
        closed: '实时已关闭',
        reconnectIn: '重连 {seconds}s'
      },
      queryMode: {
        auto: 'Auto（自动）',
        raw: 'Raw（不聚合）',
        preagg: 'Preagg（聚合）'
      },
      accountAvailability: {
        available: '可用',
        unavailable: '不可用',
        accountError: '异常'
      },
      tooltips: {
        totalRequests: '当前时间窗口内的总请求数和Token消耗量。',
        throughputTrend: '当前窗口内的请求/QPS 与 token/TPS 趋势。',
        switchRateTrend: '近5小时内账号切换次数 / 请求总数的趋势（平均切换次数）。',
        latencyHistogram: '成功请求的请求时长分布（毫秒）。',
        errorTrend: '错误趋势（SLA 口径排除业务限制；上游错误率排除 429/529）。',
        errorDistribution: '按状态码统计的错误分布（SLA 口径，排除业务限制）。',
        upstreamErrors: '上游服务返回的错误，包括API提供商的错误响应（排除429/529限流错误）。',
        goroutines:
          'Go 运行时的协程数量（轻量级线程）。没有绝对"安全值"，建议以历史基线为准。经验参考：<2000 常见；2000-8000 需关注；>8000 且伴随队列上升时，优先排查阻塞/泄漏。',
        cpu: 'CPU 使用率，显示系统处理器的负载情况。',
        memory: '内存使用率，包括已使用和总可用内存。',
        db: '数据库连接池状态，包括活跃连接、空闲连接和等待连接数。',
        redis: 'Redis 连接池状态，显示活跃和空闲的连接数。',
        jobs: '后台任务执行状态，包括最近运行时间、成功时间和错误信息。',
        qps: '每秒查询数（QPS）和每秒Token数（TPS），实时显示系统吞吐量。',
        tokens: '当前时间窗口内处理的总Token数量。',
        sla: '服务等级协议达成率，排除业务限制（如余额不足、配额超限）的成功请求占比。',
        errors: '错误统计，包括总错误数、错误率和上游错误率。',
        latency: '请求时长统计，包括 p50、p90、p95、p99 等百分位数。',
        ttft: '首 Token 延迟（Time To First Token），衡量流式响应的首 Token 返回速度。',
        health: '系统健康评分（0-100），综合考虑 SLA、错误率和资源使用情况。'
      },
      charts: {
        emptyRequest: '该时间窗口内暂无请求。',
        emptyError: '该时间窗口内暂无错误。',
        resetZoom: '重置',
        resetZoomHint: '重置缩放（若启用）',
        downloadChart: '下载',
        downloadChartHint: '下载图表图片'
      }
    },

    // Settings
}
