06e06126ca
选点、对准、加载与录像分散在两个面板,状态靠隐藏相位判断。现改由不依赖 Qt 的采集控制器驱动,并加入录像选项、汇总平铺副本、保持到时自动结束、会话结束回到空闲,以及无设备时的模拟采集。已运行 Autocal 非 Qt 测试并通过范围内门禁;界面测试待 Windows 复核,未做实机验收。
916 lines
47 KiB
JSON
916 lines
47 KiB
JSON
{
|
||
"app": {
|
||
"title": "Orisys AutoCal 标定台控制",
|
||
"about_title": "关于 Orisys AutoCal",
|
||
"about_body": "Orisys AutoCal — 五轴标定台内部控制器\n版本: {app_version}\n共享库: {shared_version} (API {api_version})\n\nQt 绑定: {binding}\n控制器库: {dll_dir}\n偏好文件: {prefs_path}\n\n仅供内部使用。",
|
||
"internal_notice": "内部工具:不随客户安装包发布。"
|
||
},
|
||
"brand": {
|
||
"name": "ORISYS",
|
||
"detail": "叠动科技"
|
||
},
|
||
"menu": {
|
||
"file": "文件",
|
||
"device_setup": "设备设置…",
|
||
"open_bas": "下载 BAS 初始化程序…",
|
||
"reveal_config": "在资源管理器中显示配置…",
|
||
"quit": "退出",
|
||
"view": "视图",
|
||
"theme": "主题",
|
||
"theme_dark": "深色",
|
||
"theme_light": "浅色",
|
||
"language": "语言",
|
||
"lang_zh": "简体中文",
|
||
"lang_en": "English",
|
||
"show_diagnostics": "诊断信息",
|
||
"tabs": "工作区",
|
||
"outputs": "输出目录",
|
||
"help": "帮助",
|
||
"about": "关于 AutoCal"
|
||
},
|
||
"setup": {
|
||
"open": "设备设置",
|
||
"title": "设备设置",
|
||
"hint": "连接与总线初始化每次开机只需确认一次,因此收进这里;顶栏状态条持续显示结果,设置窗口可以一直开着。",
|
||
"tab_connection": "连接",
|
||
"tab_bus": "总线初始化",
|
||
"tab_axes": "轴映射",
|
||
"axes_hint": "总线只报告轴号,不报告它推的是哪个方向。这里的对应关系来自实际接线,运动前必须完整且不重复。",
|
||
"role_x": "X(工作台)",
|
||
"role_y": "Y(工作台)",
|
||
"role_z": "Z(压轴)",
|
||
"role_yaw": "yaw(回转)",
|
||
"role_pitch": "pitch(俯仰)",
|
||
"role_axis": "驱动器",
|
||
"axes_duplicate": "同一驱动器被分配给多个方向:{detail}",
|
||
"tab_press": "压轴零位",
|
||
"press_hint": "解算给出的是接触点在台面原点平面之上的几何高度(mm);驱动器收到的是它自己的坐标,从它自己的机械零位算起。两者只差一个实机测量值。没有标定之前,执行动作会保持压轴不动,而不会把几何高度当成控制器目标直接下发。",
|
||
"press_zero": "零点(压头触到台面原点平面时的读数)",
|
||
"press_rising": "坐标增大时压头上升",
|
||
"press_calibrated": "已在本机测量并确认",
|
||
"press_set": "已标定:压轴目标 = 零点 ± 接触高度。",
|
||
"press_unset": "未标定:执行动作会保持压轴不动。",
|
||
"close": "关闭",
|
||
"chip_hint": "点击打开设备设置 — {name}"
|
||
},
|
||
"move": {
|
||
"execute": "执行动作",
|
||
"execute_hint": "把选中点解算出的位姿送到平台:回转、俯仰、工作台 X/Y、压轴 Z 同时移动。",
|
||
"stop": "停止",
|
||
"stop_hint": "立即停止所有轴(与顶栏「全部停止」相同)。",
|
||
"return_initial": "回初始位",
|
||
"return_hint": "回转、俯仰、压轴 Z 回到 0。工作台停在初始位置:X 为 0 mm,Y 为 0 mm。",
|
||
"confirm_title": "确认运动",
|
||
"confirm_execute": "将同时移动:\n\n{steps}\n\n请确认仿真与机床一致。",
|
||
"confirm_return": "将同时移回零点:\n\n{steps}\n\n请确认机床上没有干涉。",
|
||
"hold_note": "不动作:{roles}(这些轴保持现状,不参与本次动作)",
|
||
"cancelled": "已取消,未发出任何运动",
|
||
"confirm_check": "移动前确认",
|
||
"confirm_hint": "取消勾选后,执行动作与回初始位将直接发出(停止不受影响)。",
|
||
"no_point": "未选中标定点,无法执行",
|
||
"busy": "已有运动在执行",
|
||
"refused": "运动被拒绝",
|
||
"done": "运动完成",
|
||
"failed": "运动失败",
|
||
"stopped": "已停止,后续动作已取消"
|
||
},
|
||
"connection": {
|
||
"title": "连接控制器",
|
||
"mode": "连接方式",
|
||
"mode_eth": "以太网",
|
||
"mode_com": "串口",
|
||
"mode_pci": "PCI 卡",
|
||
"mode_local": "本地/仿真",
|
||
"mode_demo": "演示 (无硬件)",
|
||
"ip": "IP",
|
||
"scan": "IP 扫描",
|
||
"com": "串口号",
|
||
"card": "卡号",
|
||
"local_string": "连接参数",
|
||
"open": "连接",
|
||
"close": "断开连接",
|
||
"status": "状态",
|
||
"state_open": "已连接",
|
||
"state_closed": "未连接",
|
||
"state_connecting": "连接中…",
|
||
"source": "库路径",
|
||
"no_more": "连接方式『{mode}』暂未提供。"
|
||
},
|
||
"bus": {
|
||
"title": "总线初始化",
|
||
"bas_path": "BAS 文件",
|
||
"choose": "选择 BAS…",
|
||
"download": "下载并初始化",
|
||
"reinit": "重新初始化",
|
||
"type": "总线类型",
|
||
"type_ecat": "EtherCAT",
|
||
"type_rtex": "RTEX",
|
||
"type_unknown": "未知",
|
||
"state": "初始化状态",
|
||
"state_pending": "未完成",
|
||
"state_running": "正在初始化…",
|
||
"state_ok": "初始化成功",
|
||
"state_unverified": "未确认初始化",
|
||
"unverified_hint": "控制器保留了上次的总线初始化标志,本次开机尚未重新扫描;如无法运动,请先下载 BAS 文件并重新初始化。",
|
||
"state_failed": "初始化失败",
|
||
"state_timeout": "初始化超时",
|
||
"nodes": "节点数量",
|
||
"axes": "轴数量",
|
||
"downloaded": "文件已下载,控制器将延时扫描总线",
|
||
"dialog_title": "选择 BAS 文件"
|
||
},
|
||
"axes": {
|
||
"title": "轴运动",
|
||
"axis": "轴号",
|
||
"enable": "使能",
|
||
"enable_on": "已使能",
|
||
"enable_off": "未使能",
|
||
"atype": "轴类型",
|
||
"units": "脉冲当量",
|
||
"speed": "速度",
|
||
"accel": "加速度",
|
||
"dpos": "命令位置",
|
||
"mpos": "反馈位置",
|
||
"dpos_mm": "命令位置 (mm)",
|
||
"mpos_mm": "反馈位置 (mm)",
|
||
"status": "轴状态",
|
||
"motion": "运动状态",
|
||
"motion_word": "运动",
|
||
"idle": "停止",
|
||
"moving": "运动中",
|
||
"position_pair": "{value} ({mm} mm)",
|
||
"enable_all": "全部使能",
|
||
"disable_all": "全部关闭使能",
|
||
"clear_alarm_all": "清除全部报警",
|
||
"detail": "选中轴 {axis}: 轴类型 {atype} · 加速度 {accel} · 反馈 {mpos} ({mpos_mm} mm) · 轴状态 {status} · {home}",
|
||
"detail_none": "选中轴 {axis}: 尚无数据(未连接或未初始化)",
|
||
"home_status": "回零状态",
|
||
"home_ok": "回零完成",
|
||
"home_pending": "回零未完成",
|
||
"home_running": "回零中",
|
||
"jog_fwd": "正转",
|
||
"jog_rev": "反转",
|
||
"stop_all": "全部停止",
|
||
"stop": "停止",
|
||
"target": "目标位置",
|
||
"move_abs": "绝对定位",
|
||
"move_rel": "相对运动",
|
||
"home_mode": "回零模式",
|
||
"home_high": "回零高速",
|
||
"home_low": "回零低速",
|
||
"home_offset": "回零偏移",
|
||
"clear_alarm": "清除报警",
|
||
"apply": "应用参数",
|
||
"home": "启动回零",
|
||
"controls": "操作",
|
||
"mm_derived_tip": "毫米值由脉冲当量换算得出,是显示值,不是标定长度。",
|
||
"enabled_count": "已使能 {on}/{total} 轴"
|
||
},
|
||
"busdata": {
|
||
"title": "总线数据交互",
|
||
"group": "总线数据 (SDO / RTEX)",
|
||
"ecat": "EtherCAT (SDO)",
|
||
"rtex": "RTEX",
|
||
"node": "节点号",
|
||
"index": "对象字典",
|
||
"subindex": "子编号",
|
||
"type": "数据类型",
|
||
"value": "数据",
|
||
"read": "读",
|
||
"write": "写",
|
||
"axis": "轴号",
|
||
"parameter": "参数地址",
|
||
"last_result": "最近一次: {text}",
|
||
"not_available": "当前总线不支持该操作",
|
||
"read_ok": "读取成功: {value}",
|
||
"write_ok": "写入成功"
|
||
},
|
||
"status": {
|
||
"motion": "运动控制",
|
||
"ready": "就绪",
|
||
"poll_ok": "状态刷新正常",
|
||
"poll_paused": "状态刷新已暂停",
|
||
"poll_stalled": "状态刷新中断",
|
||
"last_error": "最近错误",
|
||
"none": "无",
|
||
"refused": "操作被拒绝",
|
||
"done": "完成",
|
||
"failed": "失败",
|
||
"pause": "暂停刷新",
|
||
"resume": "继续刷新",
|
||
"paused": "已暂停状态刷新",
|
||
"alarm_short": "报警",
|
||
"axes_enabled": "已使能 {on}/{total} 轴",
|
||
"health_none": "刷新 —",
|
||
"health_age": "刷新 {ms} ms 前",
|
||
"health_paused": "刷新已暂停",
|
||
"poll_every": "刷新间隔 {ms} ms"
|
||
},
|
||
"run": {
|
||
"title": "运行",
|
||
"phase_idle": "空闲",
|
||
"phase_dry_run": "干跑中",
|
||
"phase_running": "运行中",
|
||
"phase_paused": "已暂停",
|
||
"phase_done": "已完成",
|
||
"phase_failed": "失败",
|
||
"step_of": "第 {done}/{total} 点",
|
||
"no_steps": "尚未生成标定点",
|
||
"elapsed_only": "已用 {elapsed}",
|
||
"elapsed_remaining": "已用 {elapsed} · 预计剩余 {remaining}",
|
||
"run": "运行",
|
||
"pause": "暂停",
|
||
"abort": "中止",
|
||
"abort_stopped": "已中止运行并停止全部轴。",
|
||
"not_implemented": "运行器属于 P7 阶段,尚未实现;中止随时可用。"
|
||
},
|
||
"readout": {
|
||
"title": "轴状态"
|
||
},
|
||
"workspace": {
|
||
"tab_axes": "轴调试",
|
||
"tab_sequence": "测试序列",
|
||
"tab_finger": "几何与安装",
|
||
"tab_sensor": "标定采集",
|
||
"tab_records": "标定记录",
|
||
"not_built": "尚未实现",
|
||
"reserved_sensor": "传感器连接、实时图像与力曲线将在此显示:设备与信号源选择、预览、以及和 Studio 类似的曲线视图(占用空间更小)。"
|
||
},
|
||
"source": {
|
||
"kind": "输入来源",
|
||
"kind_video": "视频文件",
|
||
"kind_camera": "实时相机",
|
||
"video": "Finger 视频",
|
||
"camera_index": "相机编号",
|
||
"config": "传感器配置",
|
||
"browse": "选择…",
|
||
"start": "启动输入",
|
||
"stop": "停止",
|
||
"idle": "请选择输入来源和 sensor.json",
|
||
"no_frame": "等待处理后的画面",
|
||
"preview_only": "先在选择测点页确定 U/V,再在此检查实时二维 UV 图像并开始试验记录。",
|
||
"choose_video": "选择 Finger 视频",
|
||
"choose_config": "选择 sensor.json",
|
||
"video_filter": "视频文件 (*.mp4 *.avi *.mov *.mkv);;所有文件 (*)",
|
||
"missing_input": "请选择存在的 sensor.json;视频模式还需选择视频文件",
|
||
"opening": "正在打开输入…",
|
||
"running": "正在处理画面",
|
||
"stopping": "正在停止…",
|
||
"stopped": "已停止",
|
||
"finished": "视频播放完毕",
|
||
"disconnected": "相机连接中断",
|
||
"failed": "采集失败,请检查输入来源",
|
||
"error": "采集或处理失败:{detail}",
|
||
"basis_replay": "本次解码",
|
||
"basis_camera": "相机接收",
|
||
"basis_unknown": "读取时间(来源未确认)",
|
||
"frame": "帧 {frame} · 源帧 {source_frame} · {basis} {time} · 丢帧 {dropped}"
|
||
},
|
||
"calibration": {
|
||
"sensor_model": "产品型号",
|
||
"sensor_sn": "传感器 SN",
|
||
"output": "保存目录",
|
||
"site_view": "选择测点",
|
||
"live_view": "实时二维 UV 图像",
|
||
"uv": "U / V (px)",
|
||
"position": "网格坐标",
|
||
"levels": "加载档位 (N)",
|
||
"hold": "每档保持时间",
|
||
"hold_tip": "到达目标力并确认后倒计时;到时结束该档保持窗口并提示下一档,录像持续。计时不代表已验证稳定。",
|
||
"reference": "人工参考力 (N)",
|
||
"start": "开始本次试验",
|
||
"start_tip": "在本场标定下新建一次测点试验,连续记录初始零载、加载、卸载和恢复。不会移动平台。",
|
||
"confirm": "已到目标力,开始保持",
|
||
"confirm_tip": "达到当前目标并填写实际参考力后点击。保持期间不要换档;倒计时结束后再按提示调整。",
|
||
"finish": "完成本次试验",
|
||
"finish_tip": "初始零载及全部加载、卸载保持完成后停止录像,检查并保存本次结果。",
|
||
"abort": "提前结束(保留未完成数据)",
|
||
"abort_tip": "立即结束本次试验并保留未完成数据。重试创建新的 trial,仍归入本场标定。",
|
||
"load": "加载",
|
||
"unload": "卸载",
|
||
"next_step": "当前目标:{branch} {load:g} N;到达后填写实际参考力并开始保持",
|
||
"before_start": "先选测点并启动输入,再开始试验;先记录初始零载",
|
||
"ready_to_finish": "所有保持窗口已完成,请完成本次试验",
|
||
"no_step": "无待确认档位",
|
||
"progress": "进度 {done}/{total} · {status}",
|
||
"source_state": "输入:{status} · 帧 {frame} · 采集丢帧 {dropped}",
|
||
"replay_note": "视频重放仅用于调试;本次人工参考力不能与原实验时间同步。",
|
||
"idle": "未开始",
|
||
"recording": "录制中",
|
||
"closing": "正在写盘",
|
||
"complete": "已完成",
|
||
"incomplete": "未完成",
|
||
"result": "{status}:{path}",
|
||
"incomplete_result": "本次录制未完成;已写入的数据在:{path}",
|
||
"error": "操作失败:{detail}",
|
||
"invalid_site": "请先选择有效的 UV 测点",
|
||
"start_input": "请先启动相机或视频输入",
|
||
"reference_required": "请输入实际参考力",
|
||
"output_required": "请选择保存目录",
|
||
"zero": "初始零载",
|
||
"holding": "正在保持:{branch} {load:g} N · 剩余 {seconds:.1f} s;请勿换档",
|
||
"close_session": "结束本场标定",
|
||
"close_session_tip": "关闭包含多个测点和重复试验的会话;有未完成试验则保留未完成状态。之后开始试验会新建一场。",
|
||
"session_none": "尚未建立本场标定;首次开始试验时创建。",
|
||
"session_active": "本场标定:{sites} 个测点 · {trials} 次试验\n{path}",
|
||
"session_closed": "本场标定已结束({status}):{path}",
|
||
"close_before_mapping": "请先结束本场标定,再更换 UV 映射或导出包",
|
||
"path": "本次路径 (N):{path}",
|
||
"invalid_levels": "请输入严格递增的加载档位,每档大于 0 且不超过 30 N"
|
||
},
|
||
"multipoint": {
|
||
"tab": "02 多点采集",
|
||
"hint": "测点直接用标定采集「选择测点」里点中的位置。添加时会用法向解出平台姿态,使该点法向朝上。点「对齐法向」会先询问再移动五个轴;未连接控制器时不会动,原因写在本页下方。模拟采集不移动平台。砝码参考由人工填写。六维力参考记录三个分量,再按你填写的旋转投影到刀具轴,不会把某一轴直接当成法向。换点前确认压头已脱离。",
|
||
"site_id": "测点编号",
|
||
"coordinates": "位置 X / Y / Z",
|
||
"levels": "该点加载档位 (N),不含空载",
|
||
"hold": "保持时间",
|
||
"repeats": "重复次数",
|
||
"frame": "坐标所在坐标系",
|
||
"frame_placeholder": "填写坐标系名称,程序不解释、不换算",
|
||
"min_force": "最小力 (N)",
|
||
"min_placeholder": "空着表示 0;空载基线总会记录",
|
||
"max_force": "最大力 (N)",
|
||
"force_placeholder": "必须填写,程序不预设",
|
||
"force_required": "请填写最大力,程序不会替你假设",
|
||
"add": "添加测点",
|
||
"update": "更新所选",
|
||
"remove": "删除所选",
|
||
"up": "上移",
|
||
"down": "下移",
|
||
"align": "对齐法向",
|
||
"reacquire": "补采所选",
|
||
"source": "参考力来源",
|
||
"source_weight": "砝码",
|
||
"source_wrench": "六维力",
|
||
"fx": "Fx",
|
||
"fy": "Fy",
|
||
"fz": "Fz",
|
||
"rotation": "力传感器到刀具的旋转",
|
||
"rotation_placeholder": "9 个数,行优先。不填不能计算法向力",
|
||
"reference": "实测参考力 (N)",
|
||
"simulate": "模拟采集",
|
||
"start": "开始采集",
|
||
"confirm": "已到目标力,开始保持",
|
||
"liftoff": "确认压头已脱离传感器",
|
||
"remeasure": "重测本档",
|
||
"remeasure_ready": "这一档已作废,进度停在同一档。接上传感器,等曲线回到断线前靠近零的位置,人工参考力填这一档的力,再点「已到目标力,开始保持」。",
|
||
"stop": "停止并保留数据",
|
||
"stopped_reason": "操作员停止",
|
||
"finger_busy": "单点试验进行中,请先结束再开始多点采集",
|
||
"camera_required": "开始采集前请先启动相机或视频输入。没有图像时用模拟采集,模拟不会打开相机,也不会移动平台。",
|
||
"liftoff_wait": "上一点已卸载。下一点是 {site}。先抬起接触头,再点「对齐法向」并确认,平台才移到这个点、法向朝上。到位后再点「确认压头已脱离传感器」。程序不会自动移动。总进度 {done}/{total}",
|
||
"progress": "测点 {site}({site_index}/{site_count})· {branch} {load:g} N · 重复 {repeat}/{repeats} · 总进度 {done}/{total} · 剩余 {seconds:.1f} s",
|
||
"idle": "尚未开始。先在「选择测点」里点一个位置,再添加测点,然后模拟采集或开始采集。",
|
||
"pose": "求解姿态:工作台 X {x:.3f} mm,Y {y:.3f} mm,yaw {yaw:.3f}°,pitch {pitch:.3f}°,Z {z:.3f} mm,残差 {residual:.3f}°。点「对齐法向」后才会询问并移动平台。",
|
||
"no_pose": "这个测点还没有法向。请在「选择测点」里点一个有效位置,再点「添加测点」或「更新所选」。",
|
||
"no_map": "请先载入传感器导出包,让「选择测点」出现曲面。",
|
||
"no_solver": "姿态求解还没有接上。",
|
||
"align_select": "请先在左边表里点中要去的测点,再点「对齐法向」。",
|
||
"align_busy": "这一轮还在采集:等它结束再对准其它测点,中途移动平台会让这次记录作废。",
|
||
"pose_refused": "这个点的姿态不能执行:{reason}",
|
||
"point_moved": "这个点记录的坐标与当前映射不符(相差 {mm} mm)。请重新在「选择测点」里取这个点并确认,不要用旧记录移动平台。",
|
||
"normal_moved": "这个点记录的法向与当前映射不符(相差 {deg}°)。请重新在「选择测点」里取这个点并确认。",
|
||
"point_unmapped": "这个点没有可用的来源坐标(既没有 UV 映射,也不是传感器坐标)。请重新在「选择测点」里取这个点。",
|
||
"no_finger": "手指调试页面还没有接上。",
|
||
"no_finger_points": "手指调试里还没有选点。",
|
||
"branch_baseline": "空载",
|
||
"branch_load": "加载",
|
||
"branch_unload": "卸载",
|
||
"mesh_required": "请先在右侧用 U/V 选出测点,出现网格坐标后再添加。",
|
||
"right_confirm": "这一档用右侧:砝码填写人工参考力;六维力填写左侧 Fx、Fy、Fz。然后点「已到目标力,开始保持」。",
|
||
"save": "保存状态:{status}\n{path}",
|
||
"save_idle": "尚未保存",
|
||
"save_writing": "正在写入",
|
||
"save_kept": "已停止,已经采集的数据保留在目录中",
|
||
"save_done": "本场已完成",
|
||
"col_id": "编号",
|
||
"col_x": "X",
|
||
"col_y": "Y",
|
||
"col_z": "Z",
|
||
"col_levels": "档位 (N)",
|
||
"col_hold": "保持 (s)",
|
||
"col_repeats": "重复",
|
||
"col_done": "完成",
|
||
"capture": "录像:{status} · 帧 {frames} · 丢帧 {dropped} · {reason}",
|
||
"capture_idle": "未就绪",
|
||
"capture_recording": "录制中",
|
||
"capture_closing": "收尾中",
|
||
"capture_complete": "完整",
|
||
"capture_incomplete": "证据不完整",
|
||
"capture_reason_restarted": "图像来源已重启",
|
||
"capture_reason_zero_frames": "没有写入任何帧",
|
||
"capture_reason_write_error": "写盘失败",
|
||
"capture_reason_video_missing": "没有录像帧",
|
||
"capture_reason_video_undecodable": "录像无法解码",
|
||
"capture_reason_dropped": "队列丢帧",
|
||
"capture_reason_segments": "录像分段数不符",
|
||
"capture_reason_timeout": "收尾超时",
|
||
"capture_wait": "录像未就绪,暂时不能确认保持"
|
||
},
|
||
"finger": {
|
||
"title": "几何与安装",
|
||
"bundle_path": "导出包",
|
||
"load": "载入导出包…",
|
||
"reset_view": "复位视角",
|
||
"initial_view": "初始视角",
|
||
"textured": "UV 贴图:{name}",
|
||
"untextured": "无 UV 贴图:当前显示的是着色布局图。",
|
||
"texture_missing": "未找到贴图 {path}:当前显示的是着色布局图。",
|
||
"flat_title": "展开平面图(点击选点)",
|
||
"readout_title": "读数",
|
||
"preview_title": "三维预览",
|
||
"select_hint": "在展开图上点击一点以试算该点的姿态。",
|
||
"no_bundle": "尚未载入导出包。",
|
||
"no_surface": "像素 ({x}, {y}) 不在传感面上(UV 空隙)。",
|
||
"row_sensor_point": "传感器坐标 (mm)",
|
||
"row_sensor_normal": "曲面法向",
|
||
"row_platform_point": "平台坐标 (mm)",
|
||
"row_pose": "位姿 X / Y / yaw / pitch",
|
||
"row_branch": "所选姿态与理由",
|
||
"row_table_move": "工作台移动 X / Y",
|
||
"row_press": "压轴目标",
|
||
"row_residual": "对齐残差",
|
||
"row_match": "点位匹配",
|
||
"match_none": "先在展开图上选一个点",
|
||
"match_offline": "未连接平台",
|
||
"match_value": "选择 X {sx} Y {sy} mm,回转 {syaw}°,俯仰 {spitch}°。实际 X {ax} Y {ay} mm,回转 {ayaw}°,俯仰 {apitch}°。差 X {dx} Y {dy} mm,回转 {dyaw}°,俯仰 {dpitch}°",
|
||
"row_frames": "坐标映射",
|
||
"branch_none": "—",
|
||
"branch_value": "{reason}(本解合计 {travel}°,另一精确解 {other}°)",
|
||
"branch_only": "唯一精确解",
|
||
"branch_alignment": "残差最小",
|
||
"branch_in_range": "行程内",
|
||
"branch_upright": "传感面仍朝上",
|
||
"branch_smallest": "转动量最小",
|
||
"branch_crown": "已朝上,只平移",
|
||
"press_unset": "未标定零位:本动作保持压轴不动(在 设备设置 → 压轴零位 填入实测零位)",
|
||
"press_target": "{target} mm(几何接触高度 {height} mm)",
|
||
"tool_xy": "刀具 X / Y",
|
||
"tool_hint": "刀具在工作台坐标系中的位置。每个测点的工作台移动都相对这个位置计算。",
|
||
"sensor_xy": "传感器 X / Y",
|
||
"sensor_zy": "传感器 Z / yaw",
|
||
"setup_hint": "传感器在转台零位时相对工作台原点的实际安装位姿:X/Y/Z 平移与绕 Z 的偏摆。Z 为安装板厚度,当前安装台是 8 mm。",
|
||
"edit_not_a_number": "该单元格需要数字,已保留原值。",
|
||
"residual_value": "{residual}° — {verdict}",
|
||
"reachable": "该点法向可与 Z 轴对齐",
|
||
"unreachable": "该点法向无法与 Z 轴对齐(受 yaw 行程限制)",
|
||
"reach_summary": "曲面可对齐顶点 {aligned}/{vertices}({share}%),最差 {worst}°",
|
||
"preview_legend": "颜色含义:绿→红=表面对齐残差;红/绿/蓝三色轴=工作台 X/Y/Z(位于原点);黄色直线=刀具轴(+Z 目标方向,位置即刀具 X/Y);橙色圆点=工作台原点;黄色方框=传感器安装基面(高度=传感器 Z,含安装板);青色线=规划路径(先转台圆弧、后工作台直线);紫圈=转台当前姿态,浅紫圈=动作结束时的姿态,与不动的方格网对比即可看出整个变换;红点=表中选中点;白点+蓝线=取点接触点及其法向。",
|
||
"preview_legend_short": "绿→红=对齐残差 · 红/绿/蓝=工作台 X/Y/Z · 黄线=刀具轴(+Z) · 橙点=原点 · 黄框=安装基面 · 青线=规划路径 · 紫圈=转台姿态 · 白点=接触点",
|
||
"show_axes": "显示运动轴",
|
||
"show_table": "显示转台原点平面",
|
||
"show_trajectory": "显示刀具路径",
|
||
"path_summary": "规划路径:行程 {reach} mm;绕转台原点的圆弧半径 {radius} mm。",
|
||
"landing": "落点 X/Y {x} {y} mm",
|
||
"tool_at": "刀具 X/Y {x} {y} mm",
|
||
"landing_on_tool": "✓ 已对准",
|
||
"landing_off_tool": "✗ 未对准(差 {gap} mm)",
|
||
"preview_legend_table": "灰细线=两个旋转轴(穿过同一个原点);转台坐标系固定不动,传感器随动作相对它移动。",
|
||
"sim_play": "播放动作",
|
||
"sim_stop": "停止",
|
||
"sim_hint": "播放该点的求解动作:先由转台把法向转到工具轴上,再由 XY 工作台移动。请先取点。",
|
||
"preview_no_gl": "无 OpenGL 上下文:{error}",
|
||
"preview_draw_failed": "绘制失败:{error}",
|
||
"preview_solve_failed": "求解失败:{error}",
|
||
"loaded": "已载入导出包:{vertices} 顶点 · {triangles} 三角面 · {extent} mm · 每单位 {scale} mm",
|
||
"load_failed": "载入失败: {error}",
|
||
"picked": "已选点:残差 {residual}° · yaw {yaw}° · pitch {pitch}°"
|
||
},
|
||
"sequence": {
|
||
"title": "测试序列设计",
|
||
"profile_title": "标定点生成",
|
||
"preview_title": "预览",
|
||
"validation_title": "校验",
|
||
"points_title": "标定点列表",
|
||
"field_mode": "曲面模式",
|
||
"field_name": "序列名称",
|
||
"field_note": "备注",
|
||
"field_pitch": "点距 (mm)",
|
||
"field_margin": "边界余量 (mm)",
|
||
"field_radius": "曲面半径 (mm)",
|
||
"field_clear_height": "安全高度 (mm)",
|
||
"field_approach_speed": "进给速度 (mm/s)",
|
||
"field_press_speed": "下压速度 (mm/s)",
|
||
"field_press_depth": "下压深度 (mm)",
|
||
"field_dwell": "保压 (s)",
|
||
"field_settle": "稳定窗口 (s)",
|
||
"field_repeats": "重复次数",
|
||
"field_order": "遍历顺序",
|
||
"mode_flat": "平面",
|
||
"mode_curved": "曲面",
|
||
"order_row": "按行",
|
||
"order_serpentine": "蛇形",
|
||
"order_distance": "按距离",
|
||
"preview_placeholder": "三维预览:传感器表面 · 标定点 · 遍历顺序\n(仿真阶段实现)",
|
||
"preview_hint": "生成后可在此检查点是否落在曲面上、是否在行程内、接触能否被确认。",
|
||
"validation_pending": "尚未生成标定点。",
|
||
"check_on_surface": "在曲面范围内",
|
||
"check_within_travel": "在行程内",
|
||
"check_contact_confirmable": "接触可确认",
|
||
"btn_generate": "生成标定点",
|
||
"btn_simulate": "仿真",
|
||
"btn_dry_run": "干跑(不接触)",
|
||
"btn_export": "导出序列…",
|
||
"btn_import": "导入序列…",
|
||
"import_export_tip": "序列以 JSON 文档保存(.oryseq),可跨机器复用;导入前会校验格式版本。",
|
||
"export_failed": "导出失败: {error}",
|
||
"import_failed": "导入失败: {error}",
|
||
"pending_tooltip": "该功能属于 {phase} 阶段,尚未实现。",
|
||
"col_index": "#",
|
||
"col_x": "X (mm)",
|
||
"col_y": "Y (mm)",
|
||
"col_z": "Z (mm)",
|
||
"col_status": "状态",
|
||
"col_sensitivity": "灵敏度(上次)",
|
||
"col_samples": "样本",
|
||
"col_actions": "操作",
|
||
"not_generated": "—",
|
||
"status_pending": "待测",
|
||
"status_skipped": "已跳过",
|
||
"summary": "{count} 点({enabled} 启用) · {spans} · 预计 {duration}(估计值)",
|
||
"summary_empty": "尚无标定点:生成或导入后显示点数与行程范围。",
|
||
"dialog_export": "导出序列",
|
||
"dialog_import": "导入序列",
|
||
"filter_sequence": "标定序列 (*.oryseq *.json)",
|
||
"exported": "已导出序列: {name}",
|
||
"imported": "已导入序列: {name}({count} 点)",
|
||
"import_warnings": "导入有 {count} 项提示",
|
||
"confirm_discard": "当前序列尚未导出,导入将替换它。是否继续?",
|
||
"points_hint": "坐标由网格生成并逐点校验,不接受手工输入:手工输入的坐标没有任何检查,一个错数字会毁掉整条序列。"
|
||
},
|
||
"action": {
|
||
"ok": "完成",
|
||
"refused": "已拒绝",
|
||
"failed": "失败"
|
||
},
|
||
"diagnostics": {
|
||
"title": "诊断信息",
|
||
"binding": "Qt 绑定",
|
||
"dll_dir": "控制器库",
|
||
"prefs": "偏好文件",
|
||
"outputs": "输出目录",
|
||
"bas_loaded": "BAS 已加载",
|
||
"yes": "是",
|
||
"no": "否"
|
||
},
|
||
"feedback": {
|
||
"waiting": "等待力信号",
|
||
"uncalibrated": "无 N 值",
|
||
"stopped": "输入已停止;显示最后一帧,数值不再更新。",
|
||
"stale": "尚无新帧或超过 1 秒未更新,请检查输入。",
|
||
"invalid": "当前力信号无效:{reason}",
|
||
"raw_note": "实时原始力信号(最近 60 秒);raw 不能直接当作 N。人工参考力由操作者另行填写。",
|
||
"overflow": "预览漏显 {count} 帧;请检查采集记录的丢帧状态",
|
||
"raw_axis": "原始力信号 (raw)",
|
||
"time_axis": "采集时间 (s)",
|
||
"background": "真实背景",
|
||
"background_tip": "勾选显示真实 UV 图像;取消显示纯色背景。深度颜色可叠加在两种背景上。",
|
||
"arrows": "位移箭头",
|
||
"depth": "深度",
|
||
"depth_tip": "显示算法深度/形变信号的伪彩色,不表示已标定的毫米深度。",
|
||
"depth_scale": "形变色阶自动适应本帧:{low:.4g}–{high:.4g}(算法单位,非 mm)",
|
||
"depth_missing": "本帧无有效深度/形变信号",
|
||
"flow_missing": "本帧无有效位移信号"
|
||
},
|
||
"overview": {
|
||
"capture_in_progress": "采集中",
|
||
"saved": "分析结果已保存;保存位置见提示。",
|
||
"saved_summary": "已保存复核并发布汇总:{path} → {summary}",
|
||
"open_session": "打开标定会话…",
|
||
"empty": "请选择包含 session.json 的会话文件夹,查看已采集测点、法向响应和灵敏度;也可从标定采集页打开本场数据。",
|
||
"title": "标定记录总览",
|
||
"notice": "查看实际采集覆盖与法向响应;点击 UV 点或表格联动。圆点为已确认窗口,方点为候选窗口;各 trial 用不同明暗度。拟合线为本测点全部符合条件的加载数据,筛选 trial 不会重新拟合。",
|
||
"coverage": "采集状态",
|
||
"sensitivity": "法向灵敏度",
|
||
"import_plan": "导入计划测点 CSV…",
|
||
"clear_plan": "清除计划对照",
|
||
"load": "载入历史分析…",
|
||
"save": "保存分析结果",
|
||
"summary": "已采 {collected} 点/计划 {planned} 点;漏采 {missing};有未完成试验 {incomplete};待检查 {pending};已检查 {reviewed};计划外 {extra}。",
|
||
"no_plan": "未导入计划,暂不能判断漏采点。",
|
||
"uncollected": "尚未采集",
|
||
"incomplete": "有未完成试验",
|
||
"pending": "待检查",
|
||
"reviewed": "稳定段已检查",
|
||
"confirmed": "已检查",
|
||
"candidate": "待检查",
|
||
"coverage_map": "红:有未完成试验;橙:待检查;绿:已检查;灰:未采",
|
||
"sensitivity_map": "已确认灵敏度:蓝→红 {low:.4g}→{high:.4g} raw/N<br/>灰:无已确认拟合",
|
||
"details": "检查保持段…",
|
||
"trial_filter": "显示试验",
|
||
"all_trials": "全部 trial",
|
||
"site_fit": "测点加载拟合(全部符合条件的 trial)",
|
||
"response_title": "法向响应:参考力 → 原始信号",
|
||
"selected_fit": "灵敏度 {sensitivity} raw/N · {basis}。拟合按本点全部合格加载窗口计算;范围及试验数见测点提示。",
|
||
"no_windows": "所选试验没有可分析的完整窗口;可查看已有原始信号和结束原因。",
|
||
"col_order": "计划序号",
|
||
"col_site": "采集测点",
|
||
"col_uv": "U / V (px)",
|
||
"col_xyz": "传感器 XYZ (mm)",
|
||
"col_status": "分析准备状态",
|
||
"col_trials": "完成/全部 trial",
|
||
"col_windows": "确认/完整窗口",
|
||
"col_levels": "已确认加载档位 (N)",
|
||
"col_sensitivity": "灵敏度 (raw/N)/依据",
|
||
"col_range": "拟合范围 (N)",
|
||
"col_fit_trials": "拟合 trial 数",
|
||
"tools": "计划/历史分析",
|
||
"identity": "型号:{model} SN:{sn} 采集时间:{date} 来源:{source} 采集:{status}",
|
||
"source_video": "视频重放(仅调试)",
|
||
"source_camera": "相机",
|
||
"timeline": "时间曲线/记录诊断",
|
||
"response": "加载/卸载响应",
|
||
"time_axis": "距各试验首个有效样本 (s)",
|
||
"reference_axis": "人工参考力 (N)",
|
||
"timeline_title": "蓝:FN_raw;橙:人工保持参考力(不是实时 FT)",
|
||
"no_trace": "没有可读的有效信号;请查看下方记录诊断",
|
||
"outline_snapshot": "灰:传感面轮廓;蓝:彩色 patch 区域轮廓(采集快照)",
|
||
"outline_surface_only": "传感面映射已核对;未保存彩色 patch 轮廓,无法恢复。",
|
||
"outline_unavailable": "找不到记录对应的 UV 轮廓;仅显示测点。",
|
||
"outline_mismatch": "UV 轮廓与记录映射不一致,已停用叠加。",
|
||
"analysis_reviewed": "稳定段已检查",
|
||
"analysis_pending": "待检查稳定段",
|
||
"analysis_no_analysis": "无可分析窗口",
|
||
"site_details": "XYZ (mm):{xyz}\n完成/全部试验:{attempts}\n拟合范围 (N):{range};拟合试验数:{trials}",
|
||
"inspect_incomplete": "查看中止记录",
|
||
"diagnostic": "{trial} · {status}|有效样本 {samples};无效/未关联 {invalid};录像丢帧 {dropped};最大帧间隔 {gap} s\n结束原因:{reason}",
|
||
"read_errors": "缺失或无法读取:{detail}",
|
||
"choose_trial": "请选择单次试验查看完整性、丢帧及结束原因;全部试验曲线按各自起点对齐。",
|
||
"unsaved": "窗口或计划已修改,尚未保存。",
|
||
"save_hint": "确认稳定只表示检查过信号,不代表标定精度合格。",
|
||
"guide_missing": "① 核对身份 → ② 选测点/试验 → ③ 检查稳定段 → ④ 保存\n下一步:此点尚未采集,请选择已采点或安排补采。",
|
||
"guide_incomplete": "① 核对身份 → ② 选测点/试验 → ③ 检查稳定段 → ④ 保存\n下一步:查看结束原因及已录曲线,决定补采;未完成试验不参与拟合。",
|
||
"guide_check": "① 核对身份 → ② 选测点/试验 → ③ 检查稳定段 → ④ 保存\n下一步:选择单次试验,点击“检查保持段…”;必要时调整时间区间。",
|
||
"guide_save": "① 核对身份 → ② 选测点/试验 → ③ 检查稳定段 → ④ 保存\n下一步:继续检查剩余保持段,或保存当前分析结果。",
|
||
"video": "查看录像",
|
||
"video_not_recorded": "按设置未录视频"
|
||
},
|
||
"quality": {
|
||
"open": "重复性与验证…",
|
||
"title": "测点质量分析",
|
||
"notice": "仅使用人工已确认的有效窗口;结果仍为初步分析。视频调试、人工稳定确认及 trial 留出验证均不能证明实物准确度或参考力同步。",
|
||
"repeatability": "重复性",
|
||
"repeatability_note": "相同分支、相同人工参考力下,先计算各 trial 的均值,再计算 trial 间极差和样本标准差。至少两次 trial 才有重复性统计;这不同于保持段内波动。",
|
||
"hysteresis": "加载/卸载差异",
|
||
"hysteresis_note": "只配对同一 trial 内人工参考力完全相同的非零加载与卸载窗口,不插值。差值为卸载减加载,单位 raw;缺少匹配档位时不生成结果。",
|
||
"zero_return": "零载恢复",
|
||
"zero_return_note": "同一 trial 的最终卸载零载减初始零载,单位 raw;只配对人工参考力为 0 N 的已确认窗口。",
|
||
"validation": "独立 trial 验证",
|
||
"validation_note": "逐次留出一个完整 trial,用其余 trial 的零载/加载窗口拟合,再预测留出 trial 的全部已确认窗口。每窗口等权;这是交叉验证,不能代替另一场独立实验。",
|
||
"validation_summary": "验证窗口 {count} 个;RMSE {rmse} N;MAE {mae} N;最大绝对误差 {maximum} N;超出训练 raw 范围 {outside} 个。",
|
||
"no_data": "尚无可用数据,请先复核所需窗口。",
|
||
"insufficient_training": "其余 trial 的训练数据不足",
|
||
"outside_range": "超出训练 raw 范围",
|
||
"in_range": "训练 raw 范围内",
|
||
"col_branch": "阶段",
|
||
"col_load": "人工参考力 (N)",
|
||
"col_trials": "trial 数",
|
||
"col_range": "trial 间极差 (raw)",
|
||
"col_std": "trial 间样本标准差 (raw)",
|
||
"col_trial": "trial",
|
||
"col_load_raw": "加载均值 (raw)",
|
||
"col_unload_raw": "卸载均值 (raw)",
|
||
"col_delta_raw": "差值 (raw)",
|
||
"col_initial_zero": "初始零载 (raw)",
|
||
"col_final_zero": "最终零载 (raw)",
|
||
"col_held_out": "留出验证 trial",
|
||
"col_training": "训练 trial",
|
||
"col_predicted": "预测力 (N)",
|
||
"col_error": "预测减参考 (N)",
|
||
"col_range_status": "范围/状态"
|
||
},
|
||
"review": {
|
||
"checking": "正在后台读取并校验记录,请稍候…",
|
||
"load_selection": "载入历史分析…",
|
||
"confirm_stable": "此时间段已检查稳定",
|
||
"apply_window": "确认选中时间段并重算",
|
||
"start_offset": "起点",
|
||
"end_offset": "终点",
|
||
"verified": "人工已确认稳定",
|
||
"confirmed_fit": "拟合使用人工确认窗口;仍需独立验证。",
|
||
"candidate_fit": "拟合使用候选窗口;人工确认数据尚不足。",
|
||
"valid_samples": "有效原始样本",
|
||
"hold_time_axis": "距保持开始 (s)",
|
||
"trace_title": "选中保持段原始信号;竖线为分析窗口边界",
|
||
"selection_unsaved": "窗口已应用;请另存分析结果以保留复核。",
|
||
"open": "查看标定数据…",
|
||
"title": "保持段检查",
|
||
"notice": "选择保持段 → 检查曲线、标准差及漂移 → 调整起止时间 → 确认稳定并重算 → 保存。人工确认不是精度验收。",
|
||
"save": "保存分析结果",
|
||
"no_sites": "会话没有测点",
|
||
"candidate": "候选窗口",
|
||
"insufficient_samples": "有效样本不足",
|
||
"no_frame_source": "本次循环没有录像帧来源:参考窗口已记录,但没有可用于计算的原始法向信号",
|
||
"time_basis_not_comparable": "时间基准与保持窗口不可比(录像不是本机实时采集),未参与计算",
|
||
"replay": "视频调试",
|
||
"unverified": "稳定性未复核",
|
||
"fit": "加载分支初步拟合:灵敏度 {sensitivity_raw_per_n:.6g} raw/N;增益 {gain_n_per_raw:.6g} N/raw;偏置 {offset_n:.6g} N;拟合 RMSE {rmse_n:.4g} N(不是独立验证误差)",
|
||
"no_fit": "有效载荷或原始信号变化不足,无法拟合。",
|
||
"fit_line": "加载初步拟合",
|
||
"raw_axis": "原始法向信号 (raw)",
|
||
"force_axis": "人工参考力 (N)",
|
||
"chart_title": "各保持窗口均值:加载/卸载对照",
|
||
"uv_title": "测点初步灵敏度:蓝→红 {low:.4g}→{high:.4g} raw/N;灰色无拟合",
|
||
"issues": "{count} 次未完成试验不参与拟合;请按原始曲线检查稳定性。",
|
||
"saved": "已另存:{path}",
|
||
"saved_summary": "已保存复核并发布汇总:{path} → {summary}",
|
||
"col_trial": "试验",
|
||
"col_branch": "阶段",
|
||
"col_load": "参考力 (N)",
|
||
"col_samples": "有效样本",
|
||
"col_mean": "原始均值",
|
||
"col_std": "原始标准差",
|
||
"col_duration": "保持 (s)",
|
||
"col_quality": "质量说明",
|
||
"col_drift": "漂移 (raw/s)"
|
||
},
|
||
"video": {
|
||
"title": "录像复核",
|
||
"header": "{trial} · 第 {step} 步({branch} {load} N)· 复核状态 {status} · 有效样本 {samples}",
|
||
"position": "第 {index}/{total} 帧 · 帧号 {frame} · 分段 {segment} 第 {segment_frame} 帧 · 时间基准 {basis}",
|
||
"play": "播放",
|
||
"pause": "暂停",
|
||
"previous": "上一帧",
|
||
"next": "下一帧",
|
||
"frame_missing": "该帧没有写入录像(队列丢帧)",
|
||
"reason_missing": "无法打开录像:{detail}",
|
||
"reason_no_frame_source": "这段录像没有可用的视频证据(未接相机或没有写入帧)",
|
||
"reason_no_video_frame": "该保持窗口内没有已写入视频的有效帧",
|
||
"reason_trial_not_found": "记录中找不到这次试验",
|
||
"reason_window_not_found": "在该试验中找不到这个保持窗口",
|
||
"reason_video_undecodable": "录像文件无法解码",
|
||
"reason_decode": "解码这一帧失败",
|
||
"cursor": "当前帧",
|
||
"reference": "实际参考",
|
||
"curve_title": "原始力曲线与该保持窗口",
|
||
"basis_unknown": "未记录",
|
||
"open": "查看录像"
|
||
},
|
||
"summary": {
|
||
"failed": "汇总导出失败:{detail}。采集结果没有改变,可以重试。",
|
||
"published": "汇总已发布:{path}",
|
||
"retry": "重新导出汇总",
|
||
"done": "汇总已重新发布:{path}",
|
||
"reason_hold_not_found": "记录中找不到这个保持尝试",
|
||
"reason_hold_not_complete": "这个保持尝试已被重测废弃,没有可复核的画面",
|
||
"copy_failed": "汇总已发布,但可读副本没有写成:{detail}。指针仍指向已发布的汇总,采集结果未改变。"
|
||
},
|
||
"cap": {
|
||
"check": {
|
||
"bundle": "标定包",
|
||
"frames": "输入出帧",
|
||
"bus": "总线与轴映射",
|
||
"output": "输出目录可写",
|
||
"sn": "传感器 SN",
|
||
"max_force": "最大力"
|
||
},
|
||
"action": {
|
||
"start": "开始采集",
|
||
"align": "对准当前点",
|
||
"confirm_target": "已到目标力,开始保持",
|
||
"confirm_hold": "保持完成,记录本档",
|
||
"confirm_liftoff": "确认压头已脱离",
|
||
"finish": "结束会话",
|
||
"remeasure": "重测本档",
|
||
"skip": "跳过本点",
|
||
"stop": "停止并保留数据",
|
||
"open_session": "打开会话文件夹",
|
||
"open_summary": "打开汇总",
|
||
"copy_path": "复制路径",
|
||
"settings": "更改输入/标定包…"
|
||
},
|
||
"block": {
|
||
"closing": "正在写盘,等待收尾完成",
|
||
"align_while_recording": "正在录制,不能移动平台去对准其它点",
|
||
"skip_live": "这一档已经开始录制,不能跳过",
|
||
"no_directory": "还没有会话目录",
|
||
"no_summary": "还没有汇总;结束本场标定后自动发布",
|
||
"not_ready": "还有未满足的检查项,见上方 Ready 列表",
|
||
"no_sites": "队列里还没有测点",
|
||
"no_session": "还没有配置会话参数(输出目录、型号、SN 等)",
|
||
"no_solver": "没有接上姿态求解器,不能对准",
|
||
"no_pose": "这个点还没有解出可用的姿态",
|
||
"hold_running": "保持时间还没到",
|
||
"remeasure_unavailable": "当前没有可重测的档位",
|
||
"stop_unavailable": "没有进行中的会话可停止",
|
||
"finish_unavailable": "会话还没有结束,不能点结束",
|
||
"skip_unavailable": "程序没有提供跳过当前点的推进接口,本版不能跳过",
|
||
"busy": "当前阶段不能执行这个动作",
|
||
"no_bundle": "还没有载入标定包(导出包)",
|
||
"no_uv": "先在 UV 图上点选位置",
|
||
"no_output": "先选择保存目录",
|
||
"no_sn": "先填写传感器 SN",
|
||
"no_max_force": "先填写最大力 (N)",
|
||
"queue_busy": "会话进行中,不能修改测点队列",
|
||
"bundle_busy": "会话进行中,不能更换标定包",
|
||
"no_worker": "输入没有运行,无法开始录像",
|
||
"bad_levels": "加载档位需要严格递增、每档大于 0 且不超过最大力",
|
||
"bad_reference": "人工参考力不是有效数字",
|
||
"align_running": "对准移动还在进行,请等它完成",
|
||
"pose_unreachable": "当前安装或行程下这个点不可达,已禁止对准"
|
||
},
|
||
"session": {
|
||
"active": "本场标定:{sites} 个测点 · 进度 {done}/{total} 档\n{path}",
|
||
"none": "尚未建立本场标定;对准第一点后点「开始采集」创建。",
|
||
"settings_hint": "输入源、标定包、会话参数与录像选项都在「更改输入/标定包…」里;开始试验不会切换页面。"
|
||
},
|
||
"queue": {
|
||
"title": "测点队列",
|
||
"empty": "队列里还没有测点:在 UV 图上点选位置,填好档位后点「添加当前点」。",
|
||
"add": "添加当前点",
|
||
"update": "更新选中",
|
||
"remove": "删除选中",
|
||
"up": "上移",
|
||
"down": "下移",
|
||
"site_id": "测点编号",
|
||
"repeats": "重复次数",
|
||
"current_uv": "当前 UV",
|
||
"col_id": "测点",
|
||
"col_position": "传感器位置 (mm)",
|
||
"col_repeats": "重复进度",
|
||
"col_reachable": "可达性",
|
||
"col_state": "状态",
|
||
"reachable": "可达",
|
||
"unreachable": "不可达",
|
||
"state_pending": "待采",
|
||
"state_partial": "进行中",
|
||
"state_complete": "已完成",
|
||
"state_skipped": "已跳过",
|
||
"selected": "当前选中:{site}",
|
||
"update_short": "更新",
|
||
"remove_short": "删除",
|
||
"export": "导出测点操作表…",
|
||
"export_tip": "按当前队列顺序导出 U/V、传感器坐标、平台目标与映射身份;坐标与映射不符时拒绝导出。",
|
||
"export_saved": "已导出操作表:{path}",
|
||
"export_no_points": "队列里还没有测点",
|
||
"export_no_map": "还没有载入 UV 映射,无法导出操作表",
|
||
"export_missing_uv": "第 {order} 点没有 UV 坐标,无法导出操作表",
|
||
"export_no_pose": "第 {order} 点还没有解出姿态,无法导出操作表",
|
||
"export_edited_point": "第 {order} 点的传感器坐标与当前 UV 映射不符;请重新取点后再导出。"
|
||
},
|
||
"card": {
|
||
"title": "当前点",
|
||
"no_point": "队列是空的:先添加测点。",
|
||
"no_progress": "开始后显示进度。",
|
||
"next_site": "下一测点:{site}"
|
||
},
|
||
"step": {
|
||
"align_point": "① 对准当前点",
|
||
"start_session": "② 开始采集",
|
||
"confirm_target": "③ 到达目标力,开始保持",
|
||
"confirm_hold": "④ 保持完成,记录本档",
|
||
"confirm_liftoff": "⑤ 确认离开,换到下一个点",
|
||
"finish_session": "⑥ 结束会话",
|
||
"closing": "正在写盘"
|
||
},
|
||
"hint": {
|
||
"align_point": "先对准:点主按钮确认移动计划,平台到位并确认后才会出现「开始采集」。",
|
||
"start_session": "本点已对准。点主按钮建立本场标定,并从第一个点开始逐档记录。",
|
||
"not_ready": "标记 ✗ 的检查项满足后才能开始;鼠标停在标记上可看原因。",
|
||
"confirm_target": "按当前档位加载到目标力,填写人工参考力(或六维力分量)后点主按钮。",
|
||
"confirm_hold": "保持中:剩余 {seconds:.1f} s;请勿换档。",
|
||
"confirm_liftoff": "这一轮记录完成。抬起接触头、确认压头已脱离传感器,再点主按钮换到下一个点。",
|
||
"finish_session": "全部记录已写入。点主按钮结束本场标定并发布汇总。",
|
||
"closing": "正在写盘并检查录像;收尾完成前不能继续。"
|
||
},
|
||
"message": {
|
||
"aligning": "已发出对准请求:{site}。移动完成并确认后才会允许开始采集。",
|
||
"aligned": "已确认对准:{site}",
|
||
"align_failed": "对准未完成:{detail}。平台没有确认到位,请重新对准。",
|
||
"started": "已开始本场标定:{path}",
|
||
"attach_failed": "无法开始录像:{detail}",
|
||
"queue_added": "已添加测点 {site}",
|
||
"queue_removed": "已删除测点 {site}",
|
||
"skipped": "已跳过测点 {site}",
|
||
"stopped": "已停止,已写入的数据保留。",
|
||
"done": "本场标定已结束:{path}"
|
||
},
|
||
"recording": {
|
||
"title": "录像",
|
||
"video": "录制视频",
|
||
"codec": "视频编码",
|
||
"lossless": "同时保存无损帧",
|
||
"unavailable": "{codec}:本机不可用,已禁用",
|
||
"probe_failed": "编码探测没有运行:{detail}",
|
||
"off": "按设置不录视频",
|
||
"estimate": "预计占用 {size}({seconds});磁盘剩余 {free}",
|
||
"disk_short": "磁盘剩余不足估算体积的两倍",
|
||
"no_plan": "队列为空,暂时无法估算体积",
|
||
"locked": "会话建立后录像选项锁定",
|
||
"summary": "录像:{codec}"
|
||
},
|
||
"settings": {
|
||
"title": "采集设置",
|
||
"input": "输入源",
|
||
"bundle": "标定包(导出包)",
|
||
"bundle_none": "未载入",
|
||
"bundle_load": "载入导出包…",
|
||
"session": "会话参数",
|
||
"simulate": "模拟运行(不接相机、不移动平台)",
|
||
"close": "关闭",
|
||
"max_required": "必须填写,程序不预设"
|
||
}
|
||
}
|
||
}
|