{
 "扫描设备": "Scan Devices",
 "按 UID 指派": "Assign by UID",
 "点「扫描设备」发现总线设备；点设备打开控制页。": "Click \"Scan Devices\" to discover bus devices; click a device to open its control page.",
 "状态监视": "Status Monitor",
 "清除错误": "Clear Errors",
 "报警码表": "Alarm Codes",
 "报警码对照表": "Alarm Code Reference",
 "运动控制": "Motion Control",
 "使能": "Enable",
 "下发": "Send",
 "停止": "Stop",
 "编码器调零": "Zero Encoder",
 "应用速率": "Apply Rate",
 "读取全部": "Read All",
 "写入改动": "Write Changes",
 "保存到设备": "Save to Device",
 "恢复出厂设置": "Factory Reset",
 "读取全部 → 编辑可写项 → 写入改动（改设备内存）→ 保存到设备（持久化，须先停机到 IDLE）。灰色=只读（辨识结果/出厂参数——铭牌与增益由产线配置，CAN 通道不可写）。恢复出厂设置只重置用户旋钮，标定与出厂调优不受影响。": "Read All -> edit writable items -> Write Changes (device RAM) -> Save to Device (persist; device must be stopped/IDLE). Grey = read-only (identification results / factory parameters: nameplate and gains are factory-configured, not writable over CAN). Factory Reset only resets user knobs; calibration and factory tuning are untouched.",
 "固件升级": "Firmware Upgrade",
 "Release .img 路径（mkimage 产物）": "Release .img path (mkimage output)",
 "★ 升级本设备": "* Upgrade This Device",
 "升级中勿断电/断线。完成后设备跳入 App。": "Do not power off / disconnect during upgrade. The device jumps to App when done.",
 "选择镜像": "Select Image",
 "镜像 (*.img);;所有 (*)": "Image (*.img);;All (*)",
 "刷新": "Refresh",
 "连接": "Connect",
 "操作日志：连接/扫描/运动/MCP 操作在此滚动": "Operation log: connect/scan/motion/MCP operations scroll here",
 "操作日志": "Operation Log",
 "未连接": "Not connected",
 "扫描中…": "Scanning...",
 "新号": "New ID",
 "先在列表选一台设备": "Select a device in the list first",
 "控制": "Control",
 "参数": "Parameters",
 "<p>报警码是<b>位掩码</b>：多个故障可同时锁存，显示值为各位相加。排除原因后点「清除错误」恢复（故障源仍在会被设备拒绝）。</p>": "<p>The alarm code is a <b>bitmask</b>: multiple faults can latch simultaneously and the displayed value is the sum of set bits. After fixing the cause, click \"Clear Errors\" to recover (refused while the fault source persists).</p>",
 "模式": "Mode",
 "数据段速率": "Data Rate",
 "镜像": "Image",
 "升级": "Upgrade",
 "镜像路径无效": "Invalid image path",
 " 串口: ": " Port: ",
 "错误：": "Error: ",
 "已断开": "Disconnected",
 "先选串口": "Select a serial port first",
 "断开": "Disconnect",
 "先连接串口": "Connect the serial port first",
 "MCP 已暂停（端口本会话保持）": "MCP paused (port kept for this session)",
 "节点 {n}   UID {u}…   [{k}]": "Node {n}   UID {u}...   [{k}]",
 "升级 node={n} ({b}B) ...": "Upgrading node={n} ({b}B) ...",
 " 模式: ": " Mode: ",
 "用户模式": "User mode",
 "MCP 模式": "MCP mode",
 "连接失败": "Connection failed",
 "，无撞车": ", no ID conflicts",
 "节点{n}": "Node {n}",
 "⚠ 节点 {ns} 撞车：选中撞车行、填新号、按 UID 指派，逐个解冲突。": "(!) Node {ns} ID conflict: select the conflicting row, enter a new ID, click Assign by UID; resolve one by one.",
 "{n} 台设备。点设备打开控制页。": "{n} device(s). Click a device to open its control page.",
 "[节点{n}] 读取 {c} 个参数": "[Node {n}] read {c} parameter(s)",
 "把节点 {n} 的用户旋钮（限流/限速/刚度等）恢复为出厂默认并落盘？\n标定数据与出厂调优不受影响。需设备处于停机状态。": "Reset node {n}'s user knobs (current/velocity limits, stiffness, ...) to factory defaults and persist?\nCalibration data and factory tuning are untouched. The device must be stopped.",
 "★ 升级完成，已跳入 App": "* Upgrade complete, jumped to App",
 "擦除 {t} 页完成": "Erased {t} page(s)",
 "已连接 {p}（{c} 协议）": "Connected {p} ({c} protocol)",
 "扫描到 {n} 台设备": "Found {n} device(s)",
 "  ⚠撞车": "  (!) ID conflict",
 "[节点{n}] 写入 {c} 个参数（未保存，重启失效——记得保存到设备）": "[Node {n}] wrote {c} parameter(s) (not saved, lost on reboot; remember Save to Device)",
 "[节点{n}] 已保存到设备 NVM": "[Node {n}] saved to device NVM",
 "✗ 失败：": "x Failed: ",
 "，撞车 {ns}": ", ID conflicts {ns}",
 "节点 {n} [{tag}]": "Node {n} [{tag}]",
 "[节点{n}] ": "[Node {n}] ",
 "写入 {p}%": "Writing {p}%",
 "位置模式": "Position mode",
 "目标位置": "Target position",
 "位置前馈": "Position feedforward",
 "目标速度": "Target velocity",
 "目标加速度": "Target accel",
 "目标减速度": "Target decel",
 "速度模式": "Velocity mode",
 "转矩模式": "Torque mode",
 "目标转矩": "Target torque",
 "最大速度": "Max velocity",
 "运行模式": "Run mode",
 "报警码": "Alarm code",
 "位置反馈": "Position",
 "速度反馈": "Velocity",
 "转矩反馈": "Torque",
 "温度": "Temperature",
 "CAN Rx 错误": "CAN Rx errors",
 "CAN Tx 错误": "CAN Tx errors",
 "额定电流": "Rated current",
 "铭牌(出厂)": "Nameplate (factory)",
 "极对数提示": "Pole pairs hint",
 "最高转速提示": "Max speed hint",
 "刚度": "Stiffness",
 "用户旋钮": "User knobs",
 "阻尼": "Damping",
 "电流限幅": "Current limit",
 "速度限幅": "Velocity limit",
 "加速度限幅": "Accel limit",
 "减速比": "Gear ratio",
 "抗齿槽开关": "Anti-cogging",
 "dither 幅值": "Dither amplitude",
 "破转助推": "Breakaway boost",
 "电流环 Kp": "Current loop Kp",
 "控制增益(出厂)": "Control gains (factory)",
 "电流环 Ki": "Current loop Ki",
 "速度环 Kp": "Velocity loop Kp",
 "速度环 Ki": "Velocity loop Ki",
 "位置环 Kp": "Position loop Kp",
 "高速带宽倍率": "HS bandwidth scale",
 "换向频率系数": "Commutation freq factor",
 "相电阻": "Phase resistance",
 "电机辨识(只读)": "Motor ID (read-only)",
 "相电感": "Phase inductance",
 "极对数": "Pole pairs",
 "磁链": "Flux linkage",
 "转动惯量": "Inertia",
 "库仑摩擦": "Coulomb friction",
 "粘滞摩擦": "Viscous friction",
 "破转转矩": "Breakaway torque",
 "包络最大速度": "Envelope max velocity",
 "包络最大加速度": "Envelope max accel",
 "电流环时序超差": "Current-loop timing violation",
 "固件电流环调用周期抖动超差。偶发可清除错误重试；频发说明固件负载异常，联系厂家。": "Current-loop period jitter out of spec. If occasional, clear errors and retry; if frequent, firmware load is abnormal, contact the manufacturer.",
 "外环时序超差": "Outer-loop timing violation",
 "速度/位置外环调用周期超差。同上，偶发可清错重试。": "Velocity/position outer-loop period out of spec. Same as above; clear and retry if occasional.",
 "瞬时过流": "Instantaneous overcurrent",
 "相电流超过硬件保护阈值（板级满量程 95%）。常见原因：负载/速度突变、超出可控转速区、参数异常。排除负载问题后清除错误；反复出现请降低速度/加速度。": "Phase current exceeded the hardware protection threshold (95% of board full scale). Common causes: load/speed transients, running beyond the controllable speed range, abnormal parameters. Clear errors after removing the cause; if recurring, reduce speed/acceleration.",
 "母线电压越窗": "Bus voltage out of window",
 "母线电压持续超出工作窗（9~28V）。检查供电（跌落/限流）；急减速回泵能量也可能推高母线。恢复供电后清除错误。": "Bus voltage stayed outside the operating window (9-28V). Check the supply (sag/current limiting); hard braking can also pump the bus up. Clear errors after power is restored.",
 "编码器失效": "Encoder failure",
 "编码器读取失败/掉线。检查编码器接线与磁铁安装，排除后清除错误；无法恢复需检修。": "Encoder read failure / offline. Check encoder wiring and magnet mounting, then clear errors; if unrecoverable, service is required.",
 "过温": "Overtemperature",
 "温度超限。停机散热，冷却后清除错误。": "Temperature over limit. Stop and cool down, then clear errors.",
 "板级配置异常": "Board configuration error",
 "板级能力描述不满足契约（出厂问题），联系厂家。": "Board capability description violates the contract (factory issue), contact the manufacturer.",
 "未标定": "Not calibrated",
 "电机未完成标定，闭环被拒。执行一键标定后使用。": "Motor is not calibrated; closed loop refused. Run one-click calibration first.",
 "功率级故障": "Power stage fault",
 "驱动芯片报故障（过流/欠压/过温保护）。断电检查电机接线是否短路，重新上电。": "Gate driver reports a fault (overcurrent/undervoltage/overtemperature protection). Power off, check motor wiring for shorts, then power on again.",
 "铭牌未配置": "Nameplate not configured",
 "电机额定电流未配置，拒绝出力。出厂配置项，联系厂家。": "Motor rated current not configured; output refused. Factory-configured item, contact the manufacturer.",
 "健康检查未通过": "Health check failed",
 "开机自检有失败项（供电/电流零点/编码器等）。排除硬件问题后清除错误或重新上电。": "Power-on self-check has failing items (supply/current zero/encoder/...). Fix the hardware issue, then clear errors or power cycle.",
 "超速跳闸": "Overspeed trip",
 "转速超过限速 2 倍（软限速失效硬跳闸）。检查负载是否倒拖电机，清除错误后降速使用。": "Speed exceeded 2x the velocity limit (hard trip after soft limiting failed). Check whether the load back-drives the motor; clear errors and run slower.",
 "CAN 驱动器上位机": "CAN Drive Commander",
 "OTA 升级": "OTA Upgrade",
 "流程：数据速率回 1M → 进入 Boot → 刷写校验 → 自动回 App。升级中勿断电/断线。": "Flow: data rate back to 1M -> enter Boot -> flash & verify -> auto-return to App. Do not power off / disconnect during upgrade.",
 "数据速率回 1M，发送进 Boot 指令…": "Data rate back to 1M, sending enter-Boot command...",
 "进 Boot 后未探测到设备（可断电重启后在 boot 列表重试）": "Device not detected after entering Boot (power-cycle and retry from the boot device list)",
 "Boot 在位，开始刷写…": "Boot present, flashing...",
 "镜像版本 {v}（构建 {t}）": "Image version {v} (built {t})",
 "⚠ 无效镜像（缺 FOCB 镜像头）": "(!) Invalid image (missing FOCB header)",
 "本设备 {a} → 镜像 {b}（{d}）": "Device {a} -> image {b} ({d})",
 "降级": "downgrade",
 "重刷": "reflash",
 "MIT 阻抗模式": "MIT Impedance Mode",
 "刚度 Kp": "Stiffness Kp",
 "阻尼 Kd": "Damping Kd",
 "前馈转矩": "Feed-forward Torque"
}