{ "app": { "title": "Sensor Bench", "language": "Language", "lang_zh": "中文", "lang_en": "English" }, "panels": { "instructions": "Instructions", "options": "Sensor Component Types", "camera": "Camera (Orisys SDK)", "recording": "Recording", "raw": "Raw Image (sensor.frame)", "processed": "Processed Image (Sensor.get_img)", "force": "Force Curves" }, "labels": { "sensor_type": "Sensor type", "elastomer": "Elastomer", "cmos": "CMOS", "marker": "Marker", "indentor": "Indenter", "platform": "Platform", "camera_index": "Camera index", "backend": "Backend", "fixed_mode": "Fixed mode: {mode}", "fixed_mode_unset": "Fixed mode: set config path", "fixed_mode_invalid": "Fixed mode: invalid config ({error})", "requested": "Requested", "actual": "Actual", "capture_fps": "Capture FPS", "render_fps": "Render FPS", "proc_ms": "Proc ms", "fn": "FN", "fx": "FX", "fy": "FY", "no_preview": "No preview", "processed_placeholder": "Start Preview to show Orisys output", "not_recording": "Not recording", "force_plot": "Force", "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." }, "buttons": { "config": "Config…", "cal": "Cal…", "start_preview": "Start Preview", "stop_preview": "Stop Preview", "browse": "Browse…", "start_record": "Start Record", "stop_record": "Stop Record", "next": "Next", "revert": "Revert", "reset": "New Sample / Reset" }, "placeholders": { "config": "Select an installed Orisys config, or browse a JSON file", "cal": "Optional calibration .npy" }, "dialogs": { "select_config": "Select config JSON", "select_cal": "Select calibration", "select_recordings": "Select recordings folder", "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.", "config_invalid": "Config could not be loaded.", "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", "recording": "Recording… {name}\nOptions: sensor={sensor_type}, elastomer={elastomer}, cmos={cmos}, marker={marker}, indenter={indentor}, platform={platform}", "recording_frames": "Recording… {name}\nFrames: {count}", "saved": "Saved {count} frames → {path}", "workflow_done": "All steps completed. Click New Sample / Reset for the next unit." }, "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", "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." }, "workflow": { "title": "Sensor Bench Inspection Workflow", "current_marker": "Current", "done_marker": "Done", "steps": { "power_on": { "title": "Power on and connect", "body": "Connect the sensor USB cable and wait until Windows recognizes the device." }, "select_camera": { "title": "Start Orisys preview", "body": "Confirm camera index (usually 0) and DDJX01 config, then click Start Preview. Format is fixed by the Orisys config (1920x1080 @ 30)." }, "set_options": { "title": "Set sensor options", "body": "Choose elastomer type, CMOS type, and marker type that match the physical unit under test." }, "check_preview": { "title": "Check raw and processed preview", "body": "Confirm raw frame is ~1920x1080 and processed Orisys image is ~365x365. Inspect focus, lighting, and image cleanliness." }, "record": { "title": "Record raw data", "body": "Choose a storage folder, start recording, exercise the sensor, then stop recording." }, "review_curves": { "title": "Review performance curves", "body": "Watch capture/render FPS and force curves for drops or unstable exposure before signing off." }, "sensitivity": { "title": "Sensitivity test", "body": "Choose a small indenter and apply a 2g weight, then watch for a clear force-curve change." }, "max_load": { "title": "Maximum load test", "body": "Choose a flat plate indenter and apply weights from 10g to 500g to watch for curve changes. Use 10g to 500g for MINI and 2kg for BOX." } } } }