/** OTA UI copy — kept in one UTF-8 module to avoid editor/encoding corruption in templates. */
export const OTA_COPY = {
  searchPh: '搜索 ID / 名称 / IP',
  onlyMismatch: '仅显示不一致',
  latency: '网络延迟检测',
  refresh: '刷新',
  sync: '同步',
  syncAll: '同步全部组件',
  syncM: '仅 Medulla.exe',
  syncD: '仅 Detour.exe',
  syncC: '仅 Clumsy.exe',
  vehicle: '车辆',
  state: '状态',
  selectedPrefix: '已选',
  selectedSuffix: '台',
  batchPrefix: '批次约',
  startDeploy: '开始下发',
  loadFail: '加载车辆失败',
  latencySaveFail: '保存延迟开关失败',
  confirmTitle: '确认 OTA 下发',
  confirmOk: '开始下发',
  confirmCancel: '取消',
  confirmBody: (n: number, comps: string) => `将向 ${n} 台车下发${comps}。确认继续？`,
  compsAll: '全部组件',
  skipLatency: (n: number) => `已排除 ${n} 台延迟超限车辆`,
  noCars: '没有可下发的车辆',
  jobCreated: '任务已创建',
  jobFail: '创建任务失败',
  unsetTarget: '未设置目标版本',
  activateHint: '请先在版本库激活一个包',
  navVehicles: '车辆升级',
  navPackages: '版本库',
  navJobs: '任务进度',
  navConfig: '参数配置',
  navCustom: '自定义同步',
  navSettings: '设置',
  pullFromCar: '拉取选中车版本',
  pullNeedOne: '请先勾选恰好一台车辆再拉取',
  pullNeedIp: '该车无 IP，无法拉取',
  pullOk: '拉取完成，可到版本库设为目标',
  pullEmpty: '未收到文件：请把车上 WatchDog 的 serverIP 设为本机局域网 IP（回传端口 8000）',
  pullFail: '拉取失败',
  receiveHint:
    '拉包回传：WatchDog 固定 POST 到 http://{serverIP}:8000/upload-mdcs/*。请在各车 watch_dog.json 把 serverIP 设为运行迷毂的电脑局域网 IP；迷毂已同时监听 8000 接收。',
  jobsHint: '任务进度用于跟踪「同步升级 / 参数下发 / 自定义文件」的执行结果，支持查看明细、取消未开始批次、重试失败车辆。',
  vehiclesHint: '勾选车辆后可「拉取选中车版本」或「同步」；拉取请只选一台有 IP 的车。'
} as const
