{ "app": { "title": "Sensor Bench", "language": "Language", "lang_zh": "中文", "lang_en": "English" }, "labels": { "fixed_mode": "Fixed mode: {mode}", "fixed_mode_unset": "Fixed mode: set config path", "fixed_mode_invalid": "Fixed mode: invalid config ({error})", "no_preview": "No preview" }, "buttons": { "config": "Config…", "start_record": "Start Record", "stop_record": "Stop Record" }, "placeholders": { "config": "Select an installed Orisys config, or browse a JSON file" }, "dialogs": { "select_config": "Select config JSON", "orisys_title": "Orisys", "orisys_required": "orisys SDK is required for preview.\n\n{detail}", "config_title": "Config", "config_required": "Select a DDJX01 config JSON first.", "capture_title": "Capture", "recording_title": "Recording", "no_frame": "No frame yet." }, "status": { "ready": "Ready — Start Preview uses Orisys DDJX01 fixed format.", "orisys_ok": "orisys available (version {version})", "orisys_missing": "orisys not importable — add orisys-sdk/src to PYTHONPATH.", "opening": "Opening Orisys ({mode})…", "preview_stopped": "Preview stopped.", "capture_error": "Capture error: {message}", "frame_info": "{raw_w}x{raw_h} raw / {proc_w}x{proc_h} processed @ {fps:.1f} FPS", "saved": "Saved {count} frames → {path}" }, "exhibition": { "title": "Sensor Bench Exhibition", "btn_search": "Search", "btn_camera": "Camera", "btn_config": "Config", "btn_start": "Start", "btn_starting": "Starting…", "btn_stop": "Pause", "btn_reset": "Reset", "btn_start_record": "Start Record", "btn_stop_record": "Stop Record", "show_log": "Show log panel", "view": "View", "view_pure_color": "Arrows on solid bg", "view_captured": "Arrows on captured", "view_processed": "Processed image", "view_raw": "Raw image", "sensor_type": "Sensor", "sensor_orisys": "ORY-BOX/ORY-MINI", "sensor_dd06": "ORY-X", "sensor_switched": "Switched sensor type: {sensor}", "placeholder_camera": "Camera index or video path", "dialog_video": "Select video file", "camera_found": "Found {count} camera(s): {names}", "camera_none": "No usable camera found. Click Search to rescan, or use Camera to pick a video file.", "plot_fn": "Normal Force FN", "plot_fx": "Shear Force FX", "plot_fy": "Shear Force FY", "plot_with_unit": "{title} ({unit})", "force_calibrated": "FN={fn:.4f} {unit} (raw={fn_raw:.4f}) | FX={fx:.4f} {unit} | FY={fy:.4f} {unit}", "force_raw": "FN={fn:.4f} | FX={fx:.4f} | FY={fy:.4f} (raw)", "reset_done": "Tracker reset.", "reset_need_start": "Start the sensor before resetting the tracker.", "reset_failed": "Reset failed: {message}", "force_fn_n": "Normal force (N)={value:.6f}", "recording_started": "Recording started: {name}", "hints": "Keys: Q quit | R reset tracker | S start record | E stop record | ESC fullscreen", "menu_help": "Help", "menu_about": "About", "about_title": "About Sensor Bench", "about_body": "Sensor Bench Exhibition\nVersion: {app_version}\nOrisys: {orisys_version}\n\nOrisys-Tech", "config_dir_tip": "Installed configs dir: {path}\nSelected: {selected}", "config_dir_missing": "Installed Orisys configs directory not found. Use Config… to browse a local JSON." } }