export default {
  common: {
    confirm: '确认',
    cancel: '取消',
    save: '保存',
    delete: '删除',
    edit: '编辑',
    create: '创建',
    submit: '提交',
    refresh: '刷新',
    clear: '清除',
    ok: '确定',
    close: '关闭',
    add: '添加',
    saved: '已保存',
    saving: '保存中',
    deleted: '已删除',
    updated: '已更新',
    added: '已添加',
    success: '成功',
    failed: '失败',
    unknownError: '未知错误',
    empty: '暂无数据',
    optional: '可选',
    notSet: '未设置',
    none: '无',
    yes: '是',
    no: '否',
    actions: '操作',
    status: '状态',
    name: '名称',
    notes: '备注',
    date: '日期',
    time: '时间',
    code: '代码',
    ticker: '股票代码',
    assetType: '资产类型',
    stock: '股票',
    crypto: '加密货币',
    detail: '详情',
    view: '查看',
    createdAt: '创建时间',
    completedAt: '完成时间',
    leftEmpty: '留空',
  },

  app: {
    themeRed: '当前: 红涨绿跌 (A股)',
    themeGreen: '当前: 绿涨红跌 (美股)',
    switchLanguage: '切换语言',
    languageZh: '中文',
    languageEn: 'English',
  },

  menu: {
    dashboard: '仪表盘',
    analyze: '新建分析',
    screener: '选股',
    holdings: '持仓追踪',
    schedule: '定时分析',
    paper: '模拟交易',
    backtest: '回测',
    quality: '决策质量',
    history: '历史记录',
    settings: '设置',
  },

  screener: {
    title: '选股',
    subtitle: '用一句话描述目标，AI 帮你从全市场筛选候选股',
    goalPlaceholder: '例如：低估值、主力在流入的消费股',
    useLlm: '启用 AI 策略与理由（关闭则纯量化因子选股）',
    topN: '返回数量',
    start: '开始选股',
    running: '选股中…',
    strategy: '选股策略',
    matched: '粗筛命中',
    candidates: '候选股票',
    advanced: '高级过滤（可选，覆盖 AI 推断）',
    peMax: 'PE 上限',
    pbMax: 'PB 上限',
    mcMin: '市值下限(亿)',
    mcMax: '市值上限(亿)',
    sector: '板块/概念',
    momentumPeriod: '动量周期',
    momentumDirection: '动量方向',
    periodToday: '当日',
    period5d: '近一周(5日)',
    period20d: '近一月(20日)',
    period60d: '近60日',
    periodYtd: '年初至今',
    directionUp: '强势↑（追涨）',
    directionDown: '超跌↓（抄底反弹）',
    degradedTitle: '当前为降级数据源',
    degradedBody: '东方财富行情暂不可用，已切换到 {source}。该源缺少 PE/PB/市值/换手，本次仅按动量/资金流选股，估值类条件已忽略。请稍后重试以恢复完整数据。',
    history: '选股历史',
    historyEmpty: '暂无历史记录',
    reload: '载入',
    columns: {
      rank: '排名',
      name: '名称',
      price: '现价',
      changePct: '涨跌%(当日)',
      pe: 'PE',
      pb: 'PB',
      marketCap: '市值(亿)',
      turnover: '换手%',
      score: '综合分',
      reason: 'AI 入选理由',
    },
    factorBreakdown: '因子拆解',
    value: '估值',
    momentum: '动量',
    capitalFlow: '资金流',
    risk: '风险',
    reasonSourceLlm: 'AI',
    reasonSourceRule: '规则',
    selected: '已选 {n} 只',
    addToPaper: '加入模拟交易',
    batchAnalyze: '批量深度分析',
    sizingTitle: '建仓方式',
    sizingEqualCash: '等额现金平分',
    sizingFixedCash: '每只固定金额',
    sizingFixedShares: '每只固定股数',
    sizingEqualCashHint: '账户现金的比例（0~1），在所选股票间平分',
    sizingFixedCashHint: '每只投入的金额（元）',
    sizingFixedSharesHint: '每只买入的股数（A股按100股取整）',
    confirmBuy: '确认买入',
    toPaperDone: '已成交 {filled}/{total} 笔，前往模拟交易查看',
    toAnalyzeDone: '已发起 {n} 个深度分析',
    goPaper: '查看模拟交易',
    emptySelect: '请先勾选股票',
    noData: '暂无候选，先发起一次选股',
    dataSource: '数据来源',
  },

  dashboard: {
    title: '仪表盘',
    subtitle: '系统概览',
    sysStatus: '系统状态',
    apiConnected: 'API 已连接',
    quickNew: '+ 新建分析',
    recent: '最近分析',
    noRecent: '暂无分析记录',
    signalDist: '信号分布',
  },

  analyze: {
    title: '新建分析',
    subtitle: '配置并启动交易分析',
    smartParse: '智能解析',
    smartParsePlaceholder: '例：研究茅台短期 / 宁德时代中期 / 600519 长线 / AAPL 30 天',
    runParse: '解析并填充',
    useLlmFallback: '规则失败时调用 LLM 兜底',
    parseHint: '解析成功后自动填入下方表单，可继续手动调整再开始分析',
    confidence: '置信度',
    parseSuccessTip: '已填入表单',
    parseEmpty: '未识别到股票，请手动填写或勾选 LLM 兜底重试',
    parseFailPrefix: '解析失败：',
    parseFailedTitle: '解析失败：未识别到股票',
    parsedAs: '解析为：',
    tickerPlaceholder: '如 AAPL, 300750.SZ, 600519.SS, 0700.HK',
    tradeDate: '分析日期',
    analystTeam: '分析师团队',
    analysts: {
      market: '技术面',
      marketDesc: 'K 线 / 均线 / MACD / RSI / 布林等技术指标（最多挑 8 个）',
      social: '海外舆情',
      socialDesc: '美股舆情：Yahoo 新闻 + StockTwits + Reddit (wsb / stocks / investing)',
      news: '新闻面',
      newsDesc: '个股新闻 + 全球宏观新闻',
      fundamentals: '基本面',
      fundamentalsDesc: '财报：资产负债表 / 现金流 / 利润表 / 内部人交易',
      cnSocial: 'A股舆情',
      cnSocialDesc: 'A 股舆情：东方财富股吧 + 微博 / 小红书 / 抖音（中文情绪 + 打板/龙头等术语）',
      event: '事件驱动',
      eventDesc: '从新闻推理「事件 → 直接影响 → 供应链 → 板块情绪」因果链',
      capitalFlow: '主力资金',
      capitalFlowDesc: 'A 股资金动向：主力净流入 / 北向资金 / 融资融券 / 龙虎榜',
      macro: '宏观面',
      macroDesc: '中美宏观指标：CPI / PPI / M2 / PMI / LPR / 美元兑人民币 / 美 10 年期国债',
    },
    analystHint: '已按「{cls}」自动勾选；可手动增减。',
    tickerClass: { cn: 'A 股', us: '美股', hk: '港股', crypto: '加密货币', unknown: '通用' },
    debateDepth: '研究深度',
    debateMarks: { fast: '快速', standard: '标准', deep: '深度' },
    riskRounds: '风控轮次',
    provider: 'LLM Provider',
    providerPlaceholder: '使用默认',
    deepModel: 'Deep Think 模型',
    deepModelPlaceholder: '使用默认 / 请选择 Deep Think 模型',
    quickModel: 'Quick Think 模型',
    quickModelPlaceholder: '使用默认 / 请选择 Quick Think 模型',
    defaultPlaceholder: '使用默认',
    outputLanguage: '输出语言',
    checkpoint: 'Checkpoint',
    startAnalysis: '开始分析',
  },

  progress: {
    title: '分析进度',
    agents: 'Agent 状态',
    waitingStart: '等待启动...',
    stats: '统计',
    events: '事件数',
    debateTurns: '辩论轮次',
    elapsed: '耗时',
    liveDebate: '实时辩论',
    waitingDebate: '尚未进入辩论阶段...',
    waitingBullBear: '等待 Bull / Bear 进入辩论...',
    liveOutput: '实时输出',
    finalDecision: '最终决策',
    viewReport: '查看完整报告',
    analysisCompleted: '分析完成',
    analysisFailed: '分析失败',
  },

  history: {
    title: '历史记录',
    subtitle: '所有分析记录',
    newAnalysis: '+ 新建分析',
    tickerPlaceholder: '股票代码',
    signal: '信号',
    dateFrom: '开始日期',
    dateTo: '结束日期',
    cols: {
      ticker: '股票',
      date: '日期',
      signal: '信号',
      confidence: '置信度',
      createdAt: '创建时间',
      actions: '操作',
    },
    detail: '详情',
    delete: '删除',
    confirmDeleteTitle: '确认删除',
    confirmDeleteContent: '删除后不可恢复',
  },

  holdings: {
    title: '持仓追踪',
    subtitle: '持仓 / 成本 / 盈亏 / 最新分析信号',
    addToSchedule: '加入定时分析',
    importCsv: '导入 CSV',
    addHolding: '添加持仓',
    stat: {
      count: '持仓股票数',
      marketValue: '总市值',
      cumulativePnl: '累计盈亏',
      avgPnlPct: '平均盈亏%',
    },
    empty: '暂无持仓，点击右上角「添加持仓」开始',
    editTitle: '编辑持仓',
    addTitle: '添加持仓',
    fields: {
      ticker: '股票代码',
      tickerPlaceholder: '如 600519 / AAPL / 0700.HK',
      assetType: '资产类型',
      shares: '持仓数量',
      costPrice: '成本价',
      openDate: '持仓日期',
      notes: '备注',
    },
    schedule: {
      title: '把持仓加入定时分析',
      info: '为每只持仓创建一个定时任务，已有任务的标的会自动跳过。任务可在「定时分析」页编辑或停用。',
      type: '触发方式',
      daily: '每日',
      weekly: '每周',
      interval: '间隔',
      intervalMinutes: '间隔(分钟)',
      timeOfDay: '触发时间',
      dayOfWeek: '星期',
      enableAnalysts: '启用分析师',
      analystMarket: '市场',
      analystNews: '新闻',
      analystFundamentals: '基本面',
      analystCnSocial: '中文舆情',
      analystEvent: '事件',
      analystSocial: '舆情',
      createBtn: '创建',
      createdNew: '已为 {n} 只持仓创建定时任务',
      createdMixed: '新增 {created} 条，已存在跳过 {skipped} 条',
      createFailed: '创建失败：',
    },
    klineTitle: 'K 线 — {ticker}',
    csv: {
      title: '批量导入持仓',
      info: '粘贴 CSV，支持中文表头（代码/股数/成本价/持仓日期/备注）或英文（ticker/shares/cost_price/open_date/notes）。',
      placeholder: 'ticker,shares,cost_price,open_date,notes\n600519,100,1500,2024-01-15,核心持仓',
      submit: '导入',
      okMsg: '已导入 {n} 条',
      partialMsg: '导入 {created} 条，跳过 {skipped} 条',
      failed: '导入失败：',
    },
    cols: {
      ticker: '代码',
      sharesCost: '持仓 × 成本',
      last: '现价',
      marketValue: '市值',
      pnl: '盈亏',
      latestSignal: '最新分析',
      openDate: '持仓日期',
      notes: '备注',
      actions: '操作',
    },
    btn: {
      analyze: '分析',
      kline: 'K 线',
      edit: '编辑',
      delete: '删除',
    },
    confirmDeleteTitle: '删除持仓',
    confirmDeleteContent: '确定删除 {ticker}？历史分析记录不受影响。',
    saveValidation: '请填写代码、持仓数量、成本价',
    saveFailed: '保存失败：',
  },

  schedule: {
    title: '定时分析',
    subtitle: '按周期 / 每日 / 每周自动跑分析，连续失败自动停用',
    newTask: '新建任务',
    info: '时间为服务器本地时间。任务命中时会创建一个新的分析记录，结果可在「历史记录」与「持仓追踪」中查看。连续失败 3 次的任务会自动停用。',
    empty: '还没有定时任务。点击右上「新建任务」或在「持仓追踪」一键加入。',
    editTitle: '编辑任务',
    createTitle: '新建任务',
    fields: {
      name: '名称',
      namePlaceholder: '可选，默认用 ticker',
      tickerPlaceholder: '如 600519 / AAPL / 0700.HK',
      assetType: '资产类型',
      triggerType: '触发方式',
      intervalMinutes: '间隔(分钟)',
      intervalPlaceholder: '≥5',
      timeOfDay: '触发时间',
      dayOfWeek: '星期',
      dowPlaceholder: '选择星期',
      enableAnalysts: '启用分析师',
      debateRounds: '辩论轮数',
      researchDebate: '研究辩论',
      riskDebate: '风险讨论',
    },
    triggerTypes: { interval: '间隔', daily: '每日', weekly: '每周' },
    days: { mon: '周一', tue: '周二', wed: '周三', thu: '周四', fri: '周五', sat: '周六', sun: '周日' },
    status: { active: '运行中', paused: '暂停', disabled: '已停用' },
    pattern: {
      interval: '每 {n} 分钟',
      daily: '每日 {time}',
      weekly: '每{dow} {time}',
    },
    failCount: '失败 {n}',
    cols: {
      name: '名称',
      ticker: '代码',
      trigger: '触发',
      analysts: '分析师',
      status: '状态',
      nextRun: '下次运行',
      lastRun: '上次运行',
      actions: '操作',
    },
    btn: {
      runNow: '立即运行',
      viewLatest: '查看最新',
      pause: '暂停',
      enable: '启用',
      delete: '删除',
    },
    validation: {
      ticker: '请填写股票代码',
      intervalMin: '间隔需 ≥ 5 分钟',
      timeOfDay: '请选择触发时间',
    },
    msg: {
      created: '已创建',
      saveFailed: '保存失败：',
      started: '已开始运行',
      triggerFailed: '触发失败：',
      enabled: '已启用',
      paused: '已暂停',
      actionFailed: '操作失败：',
    },
    confirmDeleteTitle: '删除任务',
    confirmDeleteContent: '确定删除 {name} 的定时任务？已生成的分析记录不受影响。',
  },

  paper: {
    title: '模拟交易',
    subtitle: '虚拟账户 / 按决策一键下单 / 净值曲线追踪',
    snapshotBtn: '记录净值快照',
    manualOrder: '手动下单',
    resetAccount: '重置账户',
    warning: '模拟交易仅用于评估"如果按 Agent 给出的决策操作"会发生什么 — 订单按指定价格瞬时成交,不模拟滑点/手续费/涨跌停。任何由此推断出的盈亏均不构成投资建议。',
    stats: {
      cash: '可用现金',
      positionsValue: '持仓市值',
      totalValue: '总资产',
      vsInitial: '相对初始 {n}',
    },
    tabs: {
      positions: '持仓',
      orders: '订单历史',
      nav: '净值曲线',
    },
    noPositions: '暂无持仓',
    noOrders: '暂无订单',
    noNav: '还没有净值快照。点击右上「记录净值快照」生成第一条。',
    klineTitle: 'K 线 — {ticker}',
    sellTitle: '卖出 {ticker}',
    sellAShareWarning: 'A 股 T+1 制度:**今日买入的股票当日不可卖出**,需到下一个交易日。如果该股票是今天买的,后端会拒绝该卖出操作。',
    sellFields: {
      current: '当前持仓',
      currentDesc: '{shares} 股 × 成本 {cost}',
      sellShares: '卖出数量',
      price: '价格',
      pricePlaceholder: '留空使用最新收盘',
      estimated: '预计成交金额:{amount}',
      empty: '',
      confirm: '确认卖出',
    },
    sellValidation: {
      shares: '请填写卖出数量',
      notEnough: '持仓不足:最多卖出 {max}',
    },
    msg: {
      sold: '已卖出',
      sellFailed: '卖出失败:',
      flattened: '已平仓 {ticker}',
      flattenFailed: '平仓失败:',
      placed: '已成交',
      placeFailed: '下单失败：',
      snapshotted: '已记录净值快照',
      snapshotFailed: '记录失败：',
      reset: '账户已重置',
      resetFailed: '重置失败：',
    },
    flattenTitle: '一键平仓',
    flattenContent: '按当前现价卖出全部 {shares} 股 {ticker}?',
    flattenConfirm: '确认平仓',
    flattenNotes: '一键平仓',
    sellNote: '手动卖出',
    manualOrderTitle: '手动下单',
    orderFields: {
      ticker: '代码',
      tickerPlaceholder: '如 600519 / AAPL',
      action: '方向',
      buy: '买入',
      sell: '卖出',
      shares: '数量',
      price: '价格',
      pricePlaceholder: '留空则用最新收盘',
      notes: '备注',
    },
    orderValidation: '请填写代码与数量',
    resetTitle: '重置账户',
    resetContent: '将清空所有持仓、订单与净值快照，并把现金恢复到初始金额。该操作不可撤销。',
    resetConfirm: '确认重置',
    posCols: {
      ticker: '代码',
      sharesCost: '持仓 × 成本',
      last: '现价',
      marketValue: '市值',
      pnl: '盈亏',
      actions: '操作',
    },
    posBtn: {
      sell: '卖出',
      flatten: '一键平仓',
      kline: 'K 线',
    },
    orderCols: {
      time: '时间',
      ticker: '代码',
      action: '方向',
      shares: '数量',
      price: '价格',
      amount: '金额',
      source: '来源',
      notes: '备注',
    },
    source: {
      decision: '按决策下单',
      manual: '手动',
    },
    navChart: {
      total: '总资产',
      initial: '初始资金',
    },
  },

  backtest: {
    title: '回测',
    subtitle: '决策回放 · 净值曲线 · 夏普 / 最大回撤 / 胜率',
    newBtn: '新建回测',
    intro: {
      header: '什么是「决策回放(Decision Replay)」?',
      principleLabel: '原理:',
      principle: '把你已经跑过的每次 Agent 分析,按时间顺序当作一笔虚拟下单回放 — 如果 Agent 当天说「买」,引擎就在次日开盘以真实历史价成交;说「卖」就清仓。然后把模拟出来的净值曲线和基准对比,看 Agent 的判断到底准不准。',
      whyLabel: '为什么这样做?',
      why: '传统回测会让 Agent 在历史日期上重新推理 — 但 Agent 拿到的不是当时的实时新闻和舆情,而是「今天能查到的当时附近的信息」,这会带来',
      whyEmph: '未来信息泄漏',
      whySuffix: '(look-ahead bias)。决策回放只用「当时真的产生的决策」做信号,严格按时间顺序,没有泄漏。',
      howLabel: '怎么开始?',
      how: '先在「新建分析」或「定时分析」里跑几次,产出一些 BUY/SELL 决策之后再回测才有信号可放。',
      holdEmph: 'HOLD 决策不会下单',
      howSuffix: ' — 如果你只跑过几次都是 HOLD,回测就是一条 100 万的直线。',
      cards: {
        liveBadge: '已上线',
        liveTitle: '决策回放',
        liveDesc: '复盘已有 Agent 决策,零 LLM 成本,严格无泄漏。回答「Agent 准不准」。',
        planBadge: '规划中',
        planTitle: '规则回测',
        planDesc: 'MA / MACD / RSI / 突破等技术规则,作 Agent 的对照基准。Phase 2。',
        rerunBadge: '待评估',
        rerunTitle: 'Agent 重跑',
        rerunDesc: '历史日期上重新调用 Agent。高成本 + 信息泄漏风险,可能不实现。',
      },
    },
    disclaimer: '回测仅用于复盘已有的 Agent 历史决策,瞬时成交,不模拟手续费滑点之外的微观结构。回测结果不构成投资建议;过去的表现不预示未来收益。',
    tabs: { list: '运行历史', detail: '详情 · {name}' },
    empty: '还没有回测。点击右上「新建回测」开始。',
    createTitle: '新建回测',
    fields: {
      name: '名称',
      namePlaceholder: '可选,默认按日期范围生成',
      dateRange: '时间范围',
      source: '信号源',
      universe: '标的筛选',
      universePlaceholder: '留空 = 决策日志里出现的全部标的',
      benchmark: '基准对比',
      benchmarkPlaceholder: '如 000300.SH(沪深 300)/ SPY(美股)',
      initialCash: '初始资金',
      sizingMode: '仓位模式',
      equalWeight: '等权',
      fixedCash: '固定金额',
      signalStrength: '按置信度',
      fixedCashPerSignal: '每次仓位',
      fixedCashPlaceholder: '留空 = 初始资金 10%',
      confidenceFloor: '置信度过滤',
      confidenceMarks: { none: '不过滤', med: '≥0.5', high: '≥0.8' },
    },
    sources: {
      memoryLog: 'Agent 历史决策',
      rule: '规则策略',
      liveAgent: '实时 Agent',
    },
    cols: {
      name: '名称',
      source: '信号源',
      range: '时间范围',
      status: '状态',
      totalReturn: '总收益',
      benchmark: '基准',
      mdd: '最大回撤',
      sharpe: '夏普',
      winRate: '胜率',
      actions: '操作',
    },
    btn: {
      view: '查看',
      delete: '删除',
      run: '开始回测',
    },
    statusMap: {
      complete: '完成',
      running: '运行中',
      pending: '等待',
      failed: '失败',
    },
    validation: {
      dateRange: '请选择时间范围',
    },
    msg: {
      done: '回测完成',
      failed: '回测失败:',
    },
    confirmDeleteTitle: '删除回测',
    confirmDeleteContent: '确定删除「{name}」?该回测的全部数据(净值/订单/指标)将一同删除。',
  },

  backtestDetail: {
    metrics: {
      totalReturn: '总收益',
      annualised: '年化收益',
      vsBench: 'vs 基准',
      benchSuffix: '基准 {v}',
      mdd: '最大回撤',
      sharpe: '夏普比率',
      sortino: 'Sortino',
      winRate: '胜率',
      roundTrips: '{n} 次完整交易',
      profitFactor: '盈亏比',
      avgWinLoss: '平均盈 {win} / 亏 {loss}',
    },
    navTitle: '净值曲线',
    navEmpty: '本次回测没有产生净值快照',
    tradesTitle: '逐笔交易',
    noTradesAlert: '本次回测的时间窗内,没有任何',
    noTradesAlertEmph: 'BUY 或 SELL',
    noTradesAlertSuffix: '信号 — 所以引擎没产生任何虚拟下单,净值就停留在初始资金。这通常是因为:',
    noTradesReasons: {
      r1: '历史 Agent 决策全是 HOLD(决策回放只对 BUY/SELL 下单)',
      r2: '勾选的「标的筛选」与有信号的标的不匹配 — 留空试试',
      r3: '时间范围里没跑过 Agent 分析 — 先去「新建分析」或「定时分析」积累几条',
    },
    warningsTitle: '提示',
    chart: {
      strategy: '策略净值',
      benchmark: '基准 {b}',
    },
    cols: {
      date: '日期',
      ticker: '标的',
      action: '方向',
      shares: '数量',
      price: '价格',
      fee: '手续费',
      realisedPnl: '已实现盈亏',
      relatedAnalysis: '关联分析',
    },
    actions: { buy: '买入', sell: '卖出' },
  },

  report: {
    titlePrefix: '报告: {ticker}',
    exportMd: '导出 Markdown',
    paperOrderBtn: '按此决策模拟下单',
    reAnalyze: '重新分析',
    summary: {
      ticker: '股票',
      date: '日期',
      signal: '信号',
      confidence: '置信度',
      status: '状态',
      createdAt: '创建时间',
      completedAt: '完成时间',
      assetType: '资产类型',
    },
    investDebateEmpty: '本次分析未启用 / 未产生研究辩论',
    riskDebateEmpty: '本次分析未启用 / 未产生风险讨论',
    noReports: '暂无报告数据',
    timelineTitle: '执行时间线',
    tabs: {
      macro: '宏观环境',
      market: '市场分析',
      sentiment: '舆情分析',
      cnSentiment: '中文舆情',
      news: '新闻分析',
      fundamentals: '基本面分析',
      capitalFlow: '主力资金',
      event: '事件影响',
      investDebate: '研究辩论',
      researchPlan: '研究总结',
      traderProposal: '交易方案',
      riskDebate: '风险讨论',
      finalDecision: '最终决策',
    },
    paperOrder: {
      title: '按此决策模拟下单',
      warning: '将按本次分析的 Action + Entry Price 在模拟账户下单。仅用于演练，不构成任何投资建议。',
      mode: '下单方式',
      modeShares: '指定数量',
      modeFraction: '现金比例',
      shares: '数量',
      fraction: '资金占比',
      fractionMarks: { q: '25%', h: '50%', f: '满仓' },
      priceOverride: '价格覆盖',
      priceOverridePlaceholder: '留空使用决策的 Entry Price',
      validation: '请填写下单数量',
      placed: '已下单：{action} {shares} @ {price}',
      buy: '买入',
      sell: '卖出',
      failed: '下单失败：',
    },
  },

  settings: {
    title: '设置',
    subtitle: '系统配置管理',
    llmCard: 'LLM 配置',
    provider: 'Provider',
    deepModel: 'Deep Think 模型',
    deepPlaceholder: '请选择 Deep Think 模型',
    quickModel: 'Quick Think 模型',
    quickPlaceholder: '请选择 Quick Think 模型',
    apiKeysCard: 'API Keys',
    apiKeysHeaderExtra: '保存到项目根目录',
    apiKeysHeaderSuffix: '，CLI 与 Web 共享',
    apiKeysInfo: '只在「需要修改的 provider」上填入 key 后保存即可。留空保存不会清除已存在的值；要清除请点行尾的「清除」按钮。',
    keyNoNeed: '无需 key',
    keySet: '已设置',
    keyUnset: '未设置',
    placeholderNoNeed: '该 provider 无需 API key',
    placeholderSet: '已设置 ({masked})，输入新值覆盖',
    placeholderUnset: '未设置，输入以填写',
    clearKey: '清除',
    saveKeys: '保存 API Keys',
    keyMsg: {
      nothing: '没有可保存的输入',
      updated: '已更新: {names}',
      updatedNone: '无',
      saveFailed: '保存失败: ',
      cleared: '已清除 {provider}',
      clearFailed: '清除失败: ',
    },
    debateCard: '辩论参数',
    maxDebateRounds: 'Max Debate Rounds',
    maxRiskRounds: 'Max Risk Rounds',
    miscCard: '其他',
    outputLanguage: '输出语言',
    checkpoint: 'Checkpoint',
    benchmarkTicker: 'Benchmark Ticker',
    benchmarkPlaceholder: '留空使用自动检测',
    dirCard: '数据目录（只读）',
    dirCache: '缓存目录',
    dirResults: '结果目录',
    dirMemory: '内存日志',
    saveBtn: '保存设置',
    saved: '设置已保存',
  },

  debate: {
    empty: '暂无辩论内容',
    round: '第 {n} 轮',
    justArrived: '刚刚送达',
    rawTitle: '查看原始辩论文本',
    roles: {
      bull: '多方 · Bull',
      bear: '空方 · Bear',
      aggressive: '激进 · Aggressive',
      conservative: '保守 · Conservative',
      neutral: '中性 · Neutral',
    },
  },

  event: {
    empty: '无事件报告',
    eventsTitle: '关键事件 · 因果链',
    fallbackEventName: '事件 {n}',
    confidence: '置信度: {v}',
    directlyRelated: '直接相关：',
    stockMatrix: '股票影响矩阵',
    sectorMatrix: '板块影响',
    sectorStrength: '强度：{v}',
    indexMatrix: '指数影响',
    riskTitle: 'A 股交易风险',
    conclusionTitle: '综合结论',
    rawTitle: '查看原始 Markdown',
  },

  causal: {
    tiers: { event: '事件', direct: '直接影响', supply: '供应链', sector: '板块情绪', followup: '后续' },
    fallback: '影响',
  },

  model: {
    selectPlaceholder: '请选择模型',
    customPlaceholder: '请输入自定义模型 ID',
    freeTextPlaceholder: '请输入模型 ID',
  },

  kline: {
    daily: '日',
    days30: '30 日',
    days60: '60 日',
    days120: '120 日',
    year1: '1 年',
    autoRefresh: '自动刷新',
    manualRefresh: '手动',
    refresh: '刷新',
    fullscreen: '全屏',
    exitFullscreen: '退出全屏',
    minuteHint: 'A 股分钟线 · AKShare · 延迟 ~30-60 秒 · 自动刷新间隔 30 秒',
    dailyHint: '日线 · 盘中实时刷新现价 / 收盘后停止',
    latestBar: '最新 bar:{label}',
    noData: '没有数据',
    loadFailed: '加载失败',
  },

  quality: {
    title: '决策质量',
    subtitle: '把过去的 Agent 决策对齐到真实历史价格,回答「Agent 准不准」',
    empty: '还没有 complete 状态的分析。先去「新建分析」或「定时分析」积累几条记录,质量看板才会有数据。',
    horizon: {
      d5: '5 日',
      d30: '30 日',
      d60: '60 日',
    },
    intro: {
      header: '什么是「决策质量」?',
      whatLabel: '是什么:',
      what: '对每一次已经跑完的 Agent 分析,用「分析当日」和「N 个交易日后」的真实历史收盘价计算实际收益,再减去同时段的基准指数收益得到 alpha。Alpha 为正 = Agent 的判断在这段时间里跑赢了大盘,反之则跑输。',
      howLabel: '怎么读这一页:',
      how: '上方 KPI 看「整体表现」;中部「置信度校准」看 Agent 给的高分决策是否真的更准;「按维度切分」回答哪只票/哪个分析师组合/哪个 LLM 模型胜率最高;下方按日热力图按日颜色显示当日决策的平均 alpha。',
      benchHint: '基准自动按市场选择:A 股用沪深 300(000300.SS),港股用恒生指数,美股用 SPY,日股用日经 225 等。HOLD 决策不计入胜率(因为不构成多空仓位),但会出现在决策清单里。',
    },
    kpi: {
      totalDecisions: '决策总数',
      evaluableSuffix: '其中 {n} 条已完成 N 日观察',
      winRate: '方向胜率',
      directionalSuffix: '基于 {n} 次方向性决策',
      avgAlpha: '平均 Alpha',
      medianSuffix: '中位数 {v}',
      alphaSharpe: 'Alpha Sharpe',
      sharpeHint: '决策维度: mean(alpha) / stdev(alpha)',
      avgRaw: '平均原始收益',
      bestAlpha: '最佳 Alpha',
      worstAlpha: '最差 Alpha',
      signalCount: '信号分布',
    },
    calibration: {
      title: '置信度校准曲线',
      hint: '理想情况下,Agent 报告的置信度应与实际胜率一致(例:置信度 0.8 的决策应有 ~80% 胜率)。如果实际胜率显著低于置信度,说明 Agent 过度自信;反之则过度保守。',
      actualWinRate: '实际胜率',
      ideal: '完美校准线',
      cols: {
        bucket: '置信度区间',
        count: '样本',
        winRate: '实际胜率',
        avgAlpha: '平均 Alpha',
      },
    },
    dim: {
      title: '按维度切分',
      empty: '当前维度没有可评估的样本',
      ticker: '按股票',
      signal: '按信号',
      analyst: '按分析师',
      combo: '按分析师组合',
      llm: '按 LLM 模型',
      cols: {
        key: '分组',
        total: '总数',
        evaluable: '已观察',
        directional: '方向性',
        winRate: '胜率',
        avgAlpha: '平均 Alpha',
        medianAlpha: '中位 Alpha',
        sharpe: 'Sharpe',
      },
    },
    heatmap: {
      title: '决策日历热力图',
      hint: '每个色块表示一天内全部决策的平均 alpha。红色 = 正 alpha,绿色 = 负 alpha,灰色 = 当日没有可评估决策。颜色饱和度按 ±10% alpha 截断。',
      cellCount: '次',
      legendNeg: '更负 ←',
      legendPos: '→ 更正',
    },
    decisions: {
      title: '决策清单',
      filterTicker: '股票代码搜索',
      filterSignal: '信号',
      onlyEvaluable: '仅显示已观察',
      pending: '观察中',
      win: '✓ 赢',
      loss: '✗ 输',
      openReport: '查看报告',
      cols: {
        tradeDate: '决策日',
        ticker: '代码',
        signal: '信号',
        confidence: '置信度',
        rawReturn: 'N 日收益',
        alpha: 'N 日 Alpha',
        win: '结果',
        actions: '操作',
      },
    },
  },
}
