/**
 * 日志系统中文翻译
 * 模块: logging
 */
export const logsZh = {
  // 模块标题
  title: '日志中心',
  description: '系统日志查询与分析',
  techOps: '技术运维',

  // 导航菜单
  nav: {
    overview: '概览',
    query: '日志查询',
    errors: '错误日志',
    slowRequests: '慢请求',
    trace: '链路追踪',
    config: '配置管理',
    alerts: '告警管理',
    statistics: '统计分析',
  },

  // 概览页
  overview: {
    title: '日志概览',
    totalRequests: '总请求数',
    errorCount: '错误数',
    warnCount: '警告数',
    slowRequestCount: '慢请求数',
    avgDuration: '平均响应时间',
    p95Duration: 'P95 响应时间',
    p99Duration: 'P99 响应时间',
    errorRate: '错误率',
    recentErrors: '最近错误',
    recentSlowRequests: '最近慢请求',
    requestTrend: '请求趋势',
    levelDistribution: '日志级别分布',
    serviceDistribution: '服务分布',
    regionDistribution: '区域分布',
    diskUsage: '磁盘使用',
    total: '总容量',
    used: '已使用',
    free: '可用',
    usageRate: '使用率',
    performanceMetrics: '性能指标',
    viewMore: '查看更多',
    noErrorLogs: '暂无错误日志',
    noSlowRequests: '暂无慢请求',
    noDataAvailable: '暂无数据',
    noAccessPermission: '您没有访问日志系统的权限',
  },

  // 日志查询
  query: {
    title: '日志查询',
    description: '查询和搜索系统日志',
    searchPlaceholder: '搜索日志内容、用户名...',
    filters: {
      level: '日志级别',
      allLevels: '全部级别',
      service: '服务',
      region: '区域',
      allRegions: '全部区域',
      timeRange: '时间范围',
      userId: '用户 ID',
      userName: '用户名',
      traceId: '追踪 ID',
      requestId: '请求 ID',
      url: 'URL',
      statusCode: '状态码',
      hasError: '仅错误',
      minDuration: '最小响应时间',
      maxDuration: '最大响应时间',
    },
    columns: {
      timestamp: '时间',
      level: '级别',
      message: '消息',
      service: '服务',
      method: '方法',
      url: 'URL',
      statusCode: '状态码',
      duration: '响应时间',
      user: '用户',
      ip: 'IP',
      traceId: '追踪 ID',
      requestId: '请求 ID',
      actions: '操作',
    },
    actions: {
      viewTrace: '查看链路',
      viewDetails: '查看详情',
      copyTraceId: '复制追踪 ID',
      copyRequestId: '复制请求 ID',
    },
    empty: '暂无日志数据',
    timeRangeError: '时间范围不能超过 7 天',
    queryTooBoard: '查询范围过大，请添加过滤条件',
  },

  // 错误日志
  errors: {
    title: '错误日志',
    description: '查看和分析系统错误',
    summary: '错误摘要',
    byType: '按类型分布',
    byHour: '按小时分布',
    columns: {
      timestamp: '时间',
      type: '错误类型',
      message: '错误消息',
      code: '错误码',
      service: '服务',
      url: 'URL',
      user: '用户',
      stack: '堆栈信息',
    },
    empty: '暂无错误日志',
    viewStack: '查看堆栈',
    copyStack: '复制堆栈',
    searchPlaceholder: '搜索错误消息...',
    viewFullTrace: '查看完整链路',
  },

  // 慢请求
  slowRequests: {
    title: '慢请求',
    description: '分析响应时间过长的请求',
    threshold: '慢请求阈值',
    thresholdLabel: '阈值',
    thresholdMs: '阈值（毫秒）',
    summary: {
      total: '慢请求总数',
      avgDuration: '平均响应时间',
      maxDuration: '最大响应时间',
      p95Duration: 'P95 响应时间',
      p99Duration: 'P99 响应时间',
    },
    topPaths: '最慢路径 TOP',
    byService: '按服务分布',
    columns: {
      timestamp: '时间',
      method: '方法',
      url: 'URL',
      duration: '响应时间',
      service: '服务',
      region: '区域',
      user: '用户',
      traceId: '追踪 ID',
    },
    empty: '暂无慢请求',
  },

  // 链路追踪
  trace: {
    title: '链路追踪',
    description: '追踪跨服务请求链路',
    searchPlaceholder: '输入追踪 ID 或请求 ID',
    search: '搜索',
    traceId: '追踪 ID',
    totalDuration: '总耗时',
    spanCount: 'Span 数量',
    startTime: '开始时间',
    endTime: '结束时间',
    timeline: '时间线',
    waterfall: '瀑布图',
    spans: {
      title: 'Span 列表',
      spanId: 'Span ID',
      parentSpanId: '父 Span ID',
      service: '服务',
      operation: '操作',
      duration: '耗时',
      status: '状态',
    },
    notFound: '未找到追踪信息',
    enterTraceId: '请输入追踪 ID 进行搜索',
    copyTraceId: '复制追踪 ID',
    copySpanId: '复制 Span ID',
  },

  // 配置管理
  config: {
    title: '日志配置',
    description: '管理日志系统配置',
    general: {
      title: '基本配置',
      level: '日志级别',
      levelDesc: '控制记录的日志详细程度',
    },
    sampling: {
      title: '采样配置',
      enabled: '启用采样',
      enabledDesc: '高流量时自动采样日志',
      qpsThreshold: 'QPS 阈值',
      qpsThresholdDesc: '超过此值开始采样',
      minSampleRate: '最小采样率',
      minSampleRateDesc: '最低采样比例',
      maxSampleRate: '最大采样率',
      maxSampleRateDesc: '最高采样比例',
      alwaysLog: '始终记录',
      alwaysLogDesc: '这些级别和路径始终 100% 记录',
      neverLog: '从不记录',
      neverLogDesc: '这些路径永远不记录',
    },
    retention: {
      title: '保留策略',
      http: 'HTTP 日志',
      httpDesc: 'HTTP 请求/响应日志保留天数',
      application: '应用日志',
      applicationDesc: '应用运行日志保留天数',
      error: '错误日志',
      errorDesc: '错误日志保留天数',
      days: '天',
    },
    cleanup: {
      title: '日志清理',
      description: '手动清理过期日志文件',
      type: '日志类型',
      typeAll: '全部',
      olderThanDays: '清理天数',
      olderThanDaysDesc: '清理多少天前的日志',
      dryRun: '试运行',
      dryRunDesc: '仅预览，不实际删除',
      dryRunHint: '仅预览',
      execute: '执行清理',
      result: {
        title: '清理结果',
        deletedFiles: '删除文件数',
        freedSpace: '释放空间',
        dryRunNote: '（试运行，未实际删除）',
      },
    },
    save: '保存配置',
    saving: '保存中...',
    saved: '配置已保存',
    updatedAt: '更新时间',
    updatedBy: '更新人',
  },

  // 告警管理
  alerts: {
    title: '告警管理',
    description: '配置和查看告警',
    tabs: {
      history: '告警历史',
      config: '告警配置',
    },
    history: {
      title: '告警历史',
      empty: '暂无告警记录',
      columns: {
        time: '时间',
        type: '类型',
        severity: '严重级别',
        message: '消息',
        channels: '通知渠道',
        status: '状态',
        actions: '操作',
      },
      summary: {
        total: '总告警数',
        byType: '按类型',
        byStatus: '按状态',
      },
      viewDetails: '查看详情',
      acknowledge: '确认',
    },
    config: {
      title: '告警配置',
      slowRequest: {
        title: '慢请求告警',
        enabled: '启用',
        thresholdMs: '阈值（毫秒）',
        thresholdMsDesc: '响应时间超过此值触发告警',
        excludePaths: '排除路径',
        excludePathsDesc: '这些路径不触发告警（如文件上传）',
      },
      errorRate: {
        title: '高错误率告警',
        enabled: '启用',
        thresholdPercent: '阈值（%）',
        thresholdPercentDesc: '错误率超过此值触发告警',
        windowMinutes: '统计窗口（分钟）',
        windowMinutesDesc: '统计时间窗口',
        minRequests: '最小请求数',
        minRequestsDesc: '窗口内最小请求数才触发',
      },
      ipAnomaly: {
        title: 'IP 异常告警',
        enabled: '启用',
        maxRequestsPerMinute: '每分钟最大请求数',
        maxRequestsPerMinuteDesc: '单 IP 每分钟请求超过此值触发',
        blockDurationMinutes: '阻止时长（分钟）',
        blockDurationMinutesDesc: '触发后阻止时长',
      },
      diskSpace: {
        title: '磁盘空间告警',
        enabled: '启用',
        warningPercent: '警告阈值（%）',
        warningPercentDesc: '使用率超过此值发出警告',
        criticalPercent: '严重阈值（%）',
        criticalPercentDesc: '使用率超过此值发出严重告警',
      },
      notifications: {
        title: '通知渠道',
        slack: 'Slack',
        feishu: '飞书',
        email: '邮件',
        enabled: '启用',
        configured: '已配置',
        notConfigured: '未配置',
        webhookUrl: 'Webhook URL',
        recipients: '收件人',
        test: '测试',
        testing: '测试中...',
        testSuccess: '测试成功',
        testFailed: '测试失败',
      },
      save: '保存配置',
      saving: '保存中...',
      saved: '配置已保存',
    },
  },

  // 统计分析
  statistics: {
    title: '统计分析',
    description: '日志统计和趋势分析',
    period: '统计周期',
    groupBy: '分组方式',
    groupByOptions: {
      hour: '按小时',
      day: '按天',
      service: '按服务',
      level: '按级别',
      region: '按区域',
    },
    charts: {
      requestTrend: '请求趋势',
      errorTrend: '错误趋势',
      durationTrend: '响应时间趋势',
      levelDistribution: '级别分布',
      serviceDistribution: '服务分布',
      regionDistribution: '区域分布',
    },
  },

  // 日志级别
  level: {
    error: '错误',
    warn: '警告',
    info: '信息',
    debug: '调试',
  },

  // 告警类型
  alertType: {
    slowRequest: '慢请求',
    highErrorRate: '高错误率',
    diskSpace: '磁盘空间',
    ipAnomaly: 'IP 异常',
  },

  // 告警严重级别
  severity: {
    critical: '严重',
    warning: '警告',
    info: '信息',
  },

  // 告警状态
  alertStatus: {
    sent: '已发送',
    failed: '发送失败',
    acknowledged: '已确认',
  },

  // 区域
  region: {
    CN: '中国',
    US: '美国',
    UAE: '阿联酋',
  },

  // 通用
  common: {
    search: '搜索',
    filter: '筛选',
    reset: '重置',
    refresh: '刷新',
    export: '导出',
    loading: '加载中...',
    noData: '暂无数据',
    viewMore: '查看更多',
    copy: '复制',
    copied: '已复制',
    save: '保存',
    cancel: '取消',
    confirm: '确认',
    timeRange: {
      last1h: '最近 1 小时',
      last6h: '最近 6 小时',
      last24h: '最近 24 小时',
      last7d: '最近 7 天',
      last30d: '最近 30 天',
      custom: '自定义',
    },
  },

  // 错误消息
  error: {
    loadFailed: '加载失败',
    saveFailed: '保存失败',
    queryFailed: '查询失败',
    cleanupFailed: '清理失败',
    timeRangeTooLarge: '时间范围过大（最大 7 天）',
    queryTooBroad: '查询范围过大，请添加过滤条件',
    traceNotFound: '追踪 ID 未找到',
    permissionDenied: '权限不足',
  },

  // 权限提示
  permission: {
    noAccess: '您没有访问日志系统的权限',
    noConfigAccess: '您没有修改配置的权限',
    noCleanupAccess: '您没有清理日志的权限',
    noAlertAccess: '您没有管理告警的权限',
  },

  // 底部信息
  footer: {
    technicalOps: '技术运维',
  },

  // 使用说明
  help: {
    title: '使用说明',
    subtitle: '快速了解日志系统',
    nav: '使用说明',
    intro: {
      title: '这是什么系统',
      paragraph:
        '日志系统记录应用运行时的技术日志——HTTP 请求 / 错误堆栈 / 性能耗时 / Temporal 工作流。用于开发调试、运维监控、故障排查；不承担业务合规追溯（那是审计系统的职责）。',
      highlights: [
        { title: '自动埋点', desc: '所有 API 调用由拦截器自动记录 method / path / status / 耗时 / 用户 / IP' },
        { title: '链路追踪', desc: 'traceId / spanId 跨服务追踪一次请求经过的所有节点' },
        { title: '不丢错误', desc: 'Buffer 溢出时优先丢 DEBUG/INFO，ERROR/WARN 文件兜底永不丢' },
      ],
    },
    concepts: {
      title: '核心概念',
      description: '排查问题前先理解这几个词',
      items: [
        { term: 'SystemLog', desc: '主日志表，存储所有结构化日志条目（DEBUG / INFO / WARN / ERROR / FATAL）' },
        { term: 'requestId', desc: '单次 HTTP 请求唯一 ID，注入响应头 X-Request-Id；浏览器 F12 可看' },
        { term: 'traceId / spanId', desc: '跨服务分布式追踪 ID；traceId 全链路一致，spanId 标识链路上每个节点' },
        { term: '日志级别', desc: 'DEBUG < INFO < WARN < ERROR < FATAL；生产默认 INFO 起，可在配置页按模块调整' },
        { term: '采样', desc: '高 QPS 路径可单独配采样率（如 10%），降低存储压力' },
        { term: 'Buffer 溢出策略', desc: '内存 buffer 满时按级别优先丢 DEBUG/INFO；ERROR/WARN 走文件兜底，不会丢失' },
        { term: '脱敏', desc: 'password / token / Authorization 等敏感字段拦截器层强制脱敏，进 DB 前已脱敏' },
      ],
    },
    roles: {
      title: '角色与权限',
      description: '日志系统不对业务用户开放',
      columnHeaders: { role: '角色', scope: '可见范围', desc: '说明' },
      items: [
        { code: 'Administrator', name: '系统管理员', scope: '全部', desc: '查询 + 配置 + 告警管理 + 清理' },
        { code: 'Operations / SRE', name: '运维 / SRE', scope: '全部', desc: '查询 + 告警查看 + 配置只读' },
        { code: 'Engineer', name: '后端工程师', scope: '全部（开发 / staging）', desc: '查询 + trace 追踪' },
        { code: '一般业务用户', name: '业务用户', scope: '不可见', desc: '日志系统不对业务用户开放' },
      ],
    },
    tasks: {
      title: '常用任务',
      description: '点击卡片直接跳到对应功能页',
      cards: [
        { id: 'overview', name: '日志概览', desc: '近期错误率 / QPS / 慢请求 Top N' },
        { id: 'query', name: '日志查询', desc: '按时间 / 级别 / 模块 / 关键词全文检索' },
        { id: 'errors', name: '错误日志', desc: '只看 ERROR / FATAL，按错误指纹分组' },
        { id: 'slowRequests', name: '慢请求', desc: '超过阈值（默认 3s）的请求列表' },
        { id: 'trace', name: '链路追踪', desc: '输入 traceId 查全链路 span 调用关系' },
        { id: 'statistics', name: '统计分析', desc: '错误率 / 耗时分布 / 模块分布图表' },
        { id: 'config', name: '日志配置', desc: '日志级别、保留期、采样率、脱敏字段（需 logs:config 权限）' },
        { id: 'alerts', name: '告警管理', desc: '慢请求 / 错误率突增 / Buffer 溢出告警规则与历史' },
      ],
    },
  },
};

export type LogsTranslation = typeof logsZh;

