Files
flutterApp/assets/languages/en-US.json

2129 lines
88 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"app_name": "Maibu Mowing Robot",
"device_control_mode": {
"title": "Confirm control mode",
"unknown_mode": "The current mode has not been reported. Press OK to request %s.",
"current": "Current live mode",
"target": "Mode required by this page",
"waiting": "Waiting for the device to report its control mode…",
"submitting": "Sending the mode change…",
"awaiting_report": "Request sent. Waiting for the device to confirm…",
"matched": "The current mode is correct. Press OK to enter.",
"mismatch": "The current mode does not match this page. Press OK to switch to %s.",
"retry": "Refresh live mode",
"invalid_device": "Device code is empty. Go back and select a device.",
"no_report": "No valid live control mode received. Check the device connection and retry.",
"request_timeout": "The mode change request timed out. Check the live mode before retrying.",
"switch_unconfirmed": "The request was accepted, but the device has not reported the requested mode. Check its status before retrying."
},
"common": {
"confirm": "Confirm",
"cancel": "Cancel",
"ok": "OK",
"back": "Back",
"close": "Close",
"loading": "Loading...",
"error": "Error",
"success": "Success",
"unknown": "Unknown"
},
"login": {
"title": "Login",
"username": "Username",
"password": "Password",
"login_button": "Login",
"logout": "Logout",
"confirm_logout": "Are you sure to logout?",
"username_hint": "Enter username",
"password_hint": "Enter password",
"login_success": "Login Success",
"login_failed": "Login Failed",
"token_expired_title": "Login Expired",
"token_expired_content": "Your login session has expired, please log in again",
"kicked_out_title": "Logged In Elsewhere",
"kicked_out_content": "Your account has logged in on another device, signing out...",
"reconnect_failed_title": "Connection Error",
"reconnect_failed_content": "TCP reconnection authentication failed, please log in again",
"reconnecting": "TCP reconnecting...",
"reconnect_success": "Connection successful",
"account_login_title": "Account Login",
"subtitle": "Please fill in the following to verify your identity",
"cert_text": "Certified by Huawei Cloud ecosystem, safe to use. Certificate No. C202605301",
"login_submit": "Log In",
"logging_in": "Logging in...",
"no_account": "No account?",
"register_now": "Sign up",
"agree_first": "Please read and agree to the user agreement first",
"agree_prefix": "I have read and agree to the ",
"agree_and": " and ",
"user_agreement_link": "User Agreement",
"privacy_policy_link": "Privacy Policy",
"understood": "Got it",
"protocol_detail_text": "Your %s details will appear here..."
},
"register": {
"title": "Sign Up",
"subtitle": "Fill in the following information to sign up",
"username": "Username",
"username_hint": "Set your username",
"password": "Password",
"password_hint": "Set your password",
"confirm_password": "Confirm Password",
"confirm_password_hint": "Enter your password again",
"submit": "Sign Up",
"has_account": "Already have an account?",
"login_now": "Log in now",
"incomplete": "Please complete all the required information",
"password_mismatch": "The two passwords do not match",
"developing": "Registration is under development...",
"agree_hint": "Please check and agree before creating a new account"
},
"home": {
"title": "Home",
"devices": "My Devices",
"no_devices": "No devices",
"add_device": "Add Device",
"device_online": "Online",
"device_offline": "Offline",
"remote_control": "Remote Control",
"route_plan": "Route Plan",
"machine_status": "Machine Status",
"switch_device": "Switch Device",
"loading": "Loading...",
"no_history": "No records",
"work_params": "Work Params",
"view_details": "Details",
"work_area": "Area",
"work_distance": "Distance",
"work_duration": "Duration",
"history_details": "History",
"start_time": "Start",
"end_time": "End",
"working_area": "Area",
"working_distance": "Distance",
"time_spent": "Time",
"click_to_view": "View details",
"in_use": "In Use",
"switch": "Switch",
"details": "Details",
"unknown_device": "Unknown Device",
"no_device_bound": "No device bound"
},
"running_status": {
"title": "Device Data Monitor",
"motor_params": "Motor Parameters",
"other_params": "Other Parameters",
"left_wheel": "Left Wheel",
"right_wheel": "Right Wheel",
"target_speed": "Target Speed",
"measure_speed": "Measure Speed",
"current": "Current",
"motor_temp": "Motor Temp",
"pitch_angle": "Pitch",
"roll_angle": "Roll",
"heading_angle": "Heading",
"battery": "Battery",
"chip_temp": "Chip Temp",
"knife_speed": "Knife Speed",
"linear_speed": "Linear Speed",
"angular_speed": "Angular Speed",
"control_mode": "Control Mode",
"longitude": "Longitude",
"latitude": "Latitude",
"altitude": "Altitude",
"satellite_count": "Satellites",
"heading_status": "Heading Status",
"position_quality": "Position Quality",
"not_initialized": "Not Initialized",
"invalid": "Invalid",
"valid": "Valid",
"local_control": "Local Control",
"remote_control": "Remote Control",
"autonomous_task": "Autonomous Task",
"data_refresh_success": "Data refreshed!",
"no_device": "No device available",
"left_right_measure_speed": "Left/Right Measure Speed",
"left_right_target_speed": "Left/Right Target Speed",
"current_compare": "Current Compare",
"motor_temp_compare": "Motor Temp Compare",
"heading_angle_chart": "Heading Angle",
"card": "Card",
"chart": "Chart",
"name": "Name",
"value": "Value",
"initialized": "Initialized",
"no_data": "No Data",
"voltage": "Voltage",
"tcp_reconnected": "TCP connection restored",
"tcp_reconnect_failed": "TCP reconnection failed, please check network"
},
"machine_details": {
"title": "Device Details",
"real_time_status": "Real-time Status",
"control_mode": "Control Mode",
"battery_voltage": "Battery Voltage",
"remaining_battery": "Remaining Battery",
"basic_info": "Basic Info",
"device_name": "Device Name",
"device_id": "Device ID",
"resource_center": "Resource Center",
"user_manual": "User Manual",
"product_manual": "Product Manual",
"unbind": "Unbind Device",
"unbind_confirm_title": "Confirm Unbind",
"unbind_confirm_content": "Are you sure to unbind [%s]? You will not be able to manage this device after unbinding.",
"edit_name_title": "Edit Device Name",
"edit_name_hint": "Enter device name",
"name_empty_error": "Name cannot be empty",
"name_updated_success": "Device name updated to: %s",
"unbind_success": "Device '%s' unbound successfully",
"unbind_failed": "Unbind failed: %s",
"update_failed": "Update failed: %s",
"device_info_error": "Device information error, cannot unbind",
"unbind_exception": "Unbind exception: %s",
"update_exception": "Update exception: %s",
"updating_name": "Updating name...",
"unbinding_device": "Unbinding device...",
"edit_name": "Edit Name",
"name_updated": "Name updated",
"remote_mode": "Remote Mode",
"local_mode": "Local Mode",
"copied": "Copied"
},
"ai": {
"title": "New Energy PV Agent",
"new_session": "New Session",
"history": "History",
"deep_thinking": "Deep Thinking",
"final_conclusion": "Final Conclusion",
"thinking_hint": "AI is thinking...",
"input_hint": "Enter your thoughts...",
"album": "Album",
"camera": "Camera"
},
"my": {
"title": "Profile",
"language": "Language",
"chinese": "中文",
"english": "English",
"settings": "Settings",
"about": "About",
"version": "Version",
"feedback": "Feedback",
"privacy_policy": "Privacy Policy",
"user_agreement": "User Agreement",
"operation_video": "Operation Video",
"rental_service": "Rental Service",
"help_support": "Help & Support",
"after_sales_policy": "After-sales Policy"
},
"manual": {
"title": "User Manual",
"detail": "Details",
"no_content": "No content available",
"menu_titles": [
"Safety Warnings and Precautions",
"Machine Operation Instructions",
"Maintenance and Repair",
"Troubleshooting",
"Transportation Guidelines",
"Warranty and After-sales Service"
],
"submenus": {
"alert": "Special Warnings",
"alertinstruction": "Warning Label Instructions",
"safety": "Safety Operation Guidelines",
"safetywork": "Safe Driving and Working Practices",
"prepare": "Pre-start Preparation",
"startmethod": "Starting Method",
"work": "Mowing Method",
"stop": "Parking Method",
"controluse": "Remote Control Usage",
"check1": "Regular Inspection Checklist",
"check2": "Walking and Mowing Parts Inspection",
"supply": "Fuel, Water, Lubricant and Grease Schedule",
"check4": "Consumable Parts Replacement List",
"check5": "Engine",
"check6": "Walking Device",
"check7": "Post-use Maintenance",
"breakdown1": "Problem Diagnosis Table",
"starpoint": "Transportation Guidelines",
"about1": "About Warranty",
"about2": "About After-sales Service",
"supplyyear": "Parts Supply Period"
},
"tables": {
"supply_title": "Fuel, Water, Lubricant and Grease Schedule",
"item": "Item",
"period": "Replenishment/Replacement Period",
"recommend": "Recommended Type",
"capacity": "Capacity",
"problem": "Problem Description",
"reason": "Cause",
"solution": "Solution",
"generator": "Generator",
"walking_device": "Walking Device",
"mowing_device": "Mowing Device"
}
},
"remote_control": {
"controlling": "Controlling",
"not_controlling": "Not Controlling",
"permission_request_title": "Permission Change",
"permission_request_content": "Web is requesting control permission. Do you agree to release?",
"refuse": "Refuse",
"agree": "Agree",
"device_disconnected": "Device Disconnected",
"back": "Back",
"switch_view_hint": "Double-tap blank area to switch view",
"chassis": "Chassis",
"mower": "Mower",
"fire_skill": "Fire Skill",
"mode_none": "No Mode",
"remote_mode": "Remote Mode",
"local_mode": "Local Mode",
"forward_backward": "Forward/Backward",
"left_right": "Left/Right",
"emergency_stop": "E-Stop",
"emergency_stopping": "Stopping",
"perm_unknown_device": "Unknown device",
"perm_unknown_platform": "Unknown platform",
"permission_request_body": "{platform} is requesting control\n\nDevice ID: {deviceId}\n\nRelease control?",
"toast_released": "Remote control permission released",
"toast_release_failed": "Failed to release control permission",
"mode_picker_title": "Select control mode",
"mode_minimal": "Minimal mode",
"mode_minimal_sub": "Classic remote control screen",
"mode_full": "Full mode",
"mode_full_sub": "Landscape dashboard control",
"video_load_failed": "Video failed to load. Check the device is online or retry.",
"video_loading": "Loading video...",
"joystick_no_data": "No telemetry from this machine yet; control unavailable"
},
"pv_control": {
"manual_control": "Manual",
"pause_task": "Pause",
"screenshot": "Snapshot",
"view_map": "Map",
"emergency_stop": "E-Stop",
"emergency_stopping": "Stopping",
"sheet_mower_title": "Mower Lift",
"sheet_mower_hint": "Left: raise · Right: lower · Release: stop",
"sheet_chassis_title": "Chassis Lift",
"sheet_chassis_hint": "Left: up · Right: down · Release: stop",
"sheet_fire_title": "Ignition",
"sheet_fire_hint": "Left: ignite · Right: extinguish · Center: stop",
"seg_mower_up": "Raise",
"seg_mower_down": "Lower",
"seg_chassis_up": "Up",
"seg_chassis_down": "Down",
"seg_fire_up": "Ignite",
"seg_fire_down": "Extinguish",
"seg_stop": "Stop",
"scrub_hint": "Press & hold \"{label}\", then slide",
"toast_paused": "Task paused",
"toast_emergency_sent": "Emergency stop sent",
"toast_emergency_released": "Emergency stop released",
"toast_screenshot_failed": "Screenshot failed",
"toast_screenshot_saved": "Screenshot saved",
"toast_permission_released": "Remote control released",
"toast_permission_release_failed": "Failed to release control",
"remote_mode": "Remote Mode",
"online": "Online",
"offline": "Offline",
"unknown": "Unknown",
"nav_task": "Task",
"nav_map": "Map",
"nav_video": "Video",
"nav_settings": "Settings",
"mode_remote": "Remote",
"mode_local": "Local",
"qual_none": "No Fix",
"qual_single": "Single",
"qual_differential": "DGPS",
"qual_ins": "Dead Reckoning",
"qual_rtk_fixed": "RTK Fixed",
"qual_rtk_float": "RTK Float",
"qual_rtk_fixed_nh": "RTK Fixed (no heading)",
"qual_rtk_float_nh": "RTK Float (no heading)",
"obstacle_ahead": "Obstacle Ahead",
"view_left_pip": "Left View",
"view_right_pip": "Right View",
"rear_view": "Rear View",
"reverse_camera": "Reverse Cam",
"map_current_task": "Task: Auto Mowing - Zone 1",
"map_switch": "Switch ›",
"work_progress": "Progress",
"work_area_size": "Area",
"work_duration": "Duration",
"vehicle_status": "Vehicle",
"status_normal": "Normal",
"status_abnormal": "Abnormal",
"drive_speed": "Speed",
"gear": "Gear",
"gear_low": "Low",
"chassis_height": "Height",
"position_quality": "Position Quality",
"mower_status": "Mower",
"mower_running": "Running",
"battery_label": "Battery",
"current_speed": "Speed",
"patrol_mileage": "Mileage",
"network_status": "Network",
"device_temperature": "Temp",
"battery_unknown": "Battery N/A",
"battery_percent": "Battery {n}%",
"auto_driving": "Auto Driving",
"manual_controlling": "Manual Control",
"switch_mode": "Switch Mode",
"rtsp_searching": "Searching local camera…",
"rtsp_connecting": "Connecting stream…",
"rtsp_reconnecting": "Signal lost, reconnecting…",
"rtsp_not_found": "No camera found, retrying…",
"rtsp_failed": "Stream failed, retrying…",
"rtsp_no_ethernet": "No Ethernet, check the cable",
"map_waiting_push": "Waiting for location…",
"task_current": "Current Task",
"task_none_running": "No running task",
"task_field_no": "Task No.",
"task_field_device": "Device No.",
"task_field_status": "Status",
"task_field_route": "Route No.",
"task_field_site": "Plot No.",
"task_field_create_time": "Created",
"task_none_value": "None",
"task_new": "New",
"task_executing": "Running",
"task_paused": "Paused",
"set_video_source": "Source",
"set_source_rtsp": "Ethernet RTSP",
"set_source_hdmi": "HDMI",
"set_source_webrtc": "WebRTC",
"set_video_fit": "Display",
"set_fit_contain": "Fit",
"set_fit_cover": "Fill",
"set_fit_contain_hint": "No crop; letterbox if ratios differ",
"set_fit_cover_hint": "Fill with no bars; edges cropped",
"set_sim_obstacle": "Simulate Obstacle",
"set_sim_obstacle_sub": "Alert: banner + box + red flash",
"set_sim_reverse": "Reverse Camera",
"set_sim_reverse_sub": "Overlay reverse guide lines on the main view",
"set_show_joysticks": "Joysticks",
"set_show_joysticks_sub": "Hide both direction joysticks and recenter",
"perm_unknown_device": "Unknown device",
"perm_unknown_platform": "Unknown platform",
"perm_request_body": "{platform} is requesting control\n\nDevice ID: {deviceId}\n\nRelease control?",
"realtime_video": "Live Video",
"pv_robot_remote_control": "PV Robot Remote Control",
"screenshot_saved_path": "Saved: {path}",
"close": "Close",
"rail_return_home": "Return Home",
"rail_find_vehicle": "Find Vehicle",
"rail_pause_work": "Pause Work",
"rail_light": "Lights",
"rail_horn": "Horn",
"rail_record_shot": "Record/Snapshot",
"speed_high": "High",
"speed_low": "Low",
"axis_forward": "Forward",
"axis_backward": "Backward",
"axis_left": "Turn Left",
"axis_right": "Turn Right",
"network_good": "Network good",
"network_bad": "Network issue",
"video_not_loaded": "Video not loaded",
"obstacle_alert": "Obstacle alert",
"no_device": "No device selected",
"unit_m": "m",
"unit_km": "km",
"task_patrol_running": "Patrol task in progress"
},
"route_planning": {
"title": "Route Planning",
"save_plot": "Save Plot",
"plot_name_hint": "Enter plot name (e.g., North Field, Field 1)",
"plot_name_label": "Plot Name",
"save": "Save",
"cancel": "Cancel",
"plot_name_empty": "Plot name cannot be empty!",
"plot_name_too_long": "Plot name cannot exceed 20 characters!",
"saving": "Saving plot",
"save_success": "Saved successfully",
"save_failed": "Save failed",
"user_id_empty": "User ID is empty, cannot save!",
"no_work_points": "No work points to undo",
"no_obstacles": "No obstacles to delete",
"clear_work_area": "Cleared all work area points and paths",
"clear_obstacles": "Cleared all obstacles",
"work_mode": "Work Mode",
"start_work": "Start Work",
"no_plot_data": "No plot data",
"heading_not_init": "Heading angle not initialized, cannot start work",
"switch_remote_mode": "Please switch to remote mode before starting work",
"my_location": "My Location",
"location_permission_denied": "Location permission denied, cannot get current location",
"location_permanently_denied": "Location permission permanently denied, please enable in settings",
"go_to_settings": "Settings",
"location_service_disabled": "Location service disabled, please enable it",
"location_failed": "Location failed",
"retry": "Retry",
"plot_list_title": "Plot List (%d items)",
"route_direction": "Route Direction",
"optimal_heading": "Optimal Heading",
"land": "Land",
"route": "Route",
"crosshair": "Crosshair",
"robot_mode": "Robot Mode",
"work_area": "Work Area",
"obstacle_area": "Obstacle Area",
"delete": "Delete",
"undo": "Undo",
"complete": "Complete",
"work_distance": "Work Distance (m)",
"monitoring": "Monitoring",
"mark_land": "Mark Land",
"list": "List",
"station": "Station",
"location": "Location",
"refresh": "Refresh",
"select_work_mode": "Select Work Mode",
"bow_mode": "Coverage Mode",
"bow_mode_subtitle": "Standard full coverage path planning",
"custom_mode": "Custom Mode",
"custom_mode_subtitle": "Manually set work area",
"station_1": "Station 1",
"station_2": "Station 2",
"station_3": "Station 3",
"crosshair": "Crosshair",
"robot_mode": "Robot Mode",
"work_area": "Work Area",
"obstacle_area": "Obstacle Area",
"delete": "Delete",
"undo": "Undo",
"complete": "Complete",
"land": "Land",
"route": "Route",
"route_direction": "Route Direction",
"optimal_heading": "Optimal Heading",
"settings": "Settings",
"clear_cache_success": "Cleared all cache, restored to initial state",
"refresh_failed": "Refresh failed"
},
"home_v2": {
"select_site": "Select Site",
"no_sites": "No available sites",
"site_code": "Code: %s",
"weather": "Cloudy 28°C",
"emergency_alarm": "Emergency Alarm",
"real_time_power": "Real-time Power",
"today_generation": "Today's Generation",
"equivalent_hours": "Equivalent Hours",
"alarm_count": "Alarm Count",
"pending_work_order": "Pending Orders",
"quick_entry": "Quick Entry",
"device_report": "Device Report",
"scan_qr": "Scan QR",
"work_order": "Work Order",
"alarm_center": "Alarm Center",
"power_plant_map": "Plant Map",
"device_list": "Device List",
"power_trend": "Power Trend",
"day": "Day",
"month": "Month",
"year": "Year",
"plant_overview": "Plant Overview",
"installed_capacity": "Installed Capacity",
"commission_date": "Commission Date",
"work_order_stats": "Work Order Stats",
"work_order_pending": "Pending",
"work_order_processing": "Processing",
"work_order_pending_acceptance": "Pending Acceptance",
"power_trend": "Power Trend (Today)",
"day": "Day",
"month": "Month"
},
"device_list_v2": {
"title": "Device Status",
"search_hint": "Search device name/ID",
"search": "Search",
"all": "All",
"robot": "Robot",
"drone_station": "Drone Station",
"inverter": "Inverter",
"combiner_box": "Combiner Box",
"module": "Module",
"monitor": "Monitor",
"total_devices": "All Devices",
"online": "Online",
"alarm": "Alarm",
"offline": "Offline",
"no_data": "No data",
"select_site_first": "Please select a site first",
"no_drone_stations": "No drone stations at this site",
"view_details_from_tab": "Please view details from the 'Drone Station' tab",
"device_type_not_supported": "Device type not supported: %s",
"battery_level": "Battery",
"current_task": "Current Task",
"task": "Task",
"power": "Power",
"today_energy": "Today Energy",
"current": "Current",
"temperature": "Temperature",
"radiation": "Radiation",
"data": "Data",
"inspection_robot": "Inspection Robot",
"cleaning_robot": "Cleaning Robot",
"weeding_robot": "Weeding Robot",
"device_not_found_title": "Device Not Found",
"device_not_found_content": "Device not matched yet, please retry later",
"no_alias": "No alias",
"task_standby": "Standby",
"task_charging": "Charging",
"control_panel": "Control Panel",
"speed_gear": "Speed",
"speed_low": "Low",
"speed_mid": "Medium",
"speed_high": "High",
"status_speed": "Speed",
"status_mode": "Mode",
"status_signal": "Signal",
"action_start": "Start",
"action_pause": "Pause",
"action_return": "Return",
"task_in_progress": "In Progress",
"task_default": "Inverter area patrol",
"checklist_title": "Checklist",
"signal_strong": "Strong",
"view_front": "Front",
"view_back": "Back",
"view_left": "Left",
"view_right": "Right",
"view_panorama": "Panorama",
"no_video": "No Video",
"play": "Play",
"path_planning": "Path Planning",
"path_planning_desc": "View and edit the robot patrol path",
"release_permission_success": "Remote control permission released",
"release_permission_failed": "Failed to release control permission",
"open_bluetooth_first": "Please turn on Bluetooth first",
"searching_bluetooth": "Searching for Bluetooth devices...",
"stat_online_devices": "Online Devices",
"stat_working": "Working",
"stat_standby": "Standby",
"stat_offline": "Offline",
"no_matching_device": "No matching devices",
"feature_todo": "Feature not available yet",
"rename_failed": "Failed to rename device",
"rename_failed_code": "Failed to rename device: status code %s",
"rename_success": "Device renamed to \"%s\"",
"no_site_selected": "No site selected",
"site_suffix": " (%s)",
"site_suffix_personal": " (%s) · Personal account",
"personal_single_site": "Personal accounts are bound to a single site",
"no_site_data": "No site data",
"select_site": "Select site",
"my_robots": "My robots",
"my_robots_desc": "Unified multi-model management · Features loaded by device SN",
"view_card": "Card view",
"view_overview": "Overview",
"search_hint_full": "Search device name, model or SN",
"overview_title": "Device overview",
"overview_desc": "Built for centralized multi-robot management",
"stat_total": "Total devices",
"stat_alarm_offline": "Alarm/Offline",
"device_distribution": "Device distribution",
"total_devices_count": "%s devices in total",
"th_device_info": "Device",
"th_status": "Status",
"th_location_task": "Location / Task",
"add_robot": "Add robot",
"scan_action": "Scan",
"add_device": "Add device",
"local_video": "Local video",
"usb_camera": "USB camera",
"drone_station_model": "Drone dock · %s",
"no_device_title": "No robots added yet",
"no_device_desc": "You can explore the app first,\nand bind your robot once it arrives.",
"guide_title": "Getting started",
"guide1_title": "Product guide",
"guide1_desc": "Learn the basic features and workflow",
"guide2_title": "Watch product videos",
"guide2_desc": "Get started with control, video and work features",
"guide3_title": "Help & after-sales",
"guide3_desc": "FAQ, repair requests and customer support",
"work_text_working": "Autonomous work in progress",
"work_text_online": "Standby",
"work_text_offline": "Unable to connect",
"sn_copied": "SN copied to clipboard",
"edition_plus": "PLUS Smart",
"edition_std": "STD Standard",
"edition_pro": "PRO Flagship",
"location_plant_1": "Plant 1",
"location_plant_2": "Plant 2",
"location_raw_material": "Raw material area",
"location_office_building": "Office building",
"rename_title": "Rename device",
"rename_label": "Device name",
"rename_empty": "Name cannot be empty",
"rename_hint": "Chinese, English, digits and common symbols are supported; 1-%s characters recommended",
"rename_quick": "Quick naming",
"rename_field_hint": "Enter device name",
"rename_footer": "Only the display name changes; SN, binding and permissions stay unchanged",
"preset_1": "Unit 1",
"preset_2": "Unit 2",
"preset_north": "North area",
"preset_south": "South area",
"preset_test": "Test robot",
"preset_custom": "Custom",
"action_cancel": "Cancel",
"action_confirm": "Confirm",
"action_save": "Save",
"fr_title": "Find robot",
"fr_gnss_valid": "GNSS fix valid",
"fr_gnss_invalid": "GNSS fix invalid",
"fr_model_std": "%s Standard",
"fr_map_entry": "View robot on map",
"fr_map_entry_sub": "Location and last update time",
"fr_sound_title": "Sound & light locating",
"fr_sound_desc": "Triggers buzzer and indicator lights so on-site staff can find the device; stops automatically.",
"fr_auto_stop": "Auto stop",
"fr_auto_stop_value": "10s (demo)",
"fr_start": "Start locating alert",
"fr_stop": "Stop locating",
"fr_note": "Sound & light locating is unavailable while the device is offline; only the last known location can be viewed.",
"fr_toast_offline": "Device is offline, cannot trigger locating alert",
"fr_toast_start_todo": "Locating command is not connected yet",
"fr_toast_start_sent": "Locating command sent, watch for the device sound & light alert",
"fr_toast_start_failed": "Failed to send locating command, please retry",
"fr_toast_stop_todo": "Stop-locating command is not connected yet",
"fr_toast_map_todo": "Map location entry is not connected yet",
"unknown": "Unknown"
},
"device_detail_v2": {
"title": "Device details",
"tab_overview": "Overview",
"tab_monitor": "Monitor",
"tab_control": "Control",
"tab_record": "Records",
"tab_settings": "Settings",
"footer_settings": "Settings opened by model (%s)",
"footer_demo": "Sample data; quick actions are navigation entries only",
"overview_title": "Robot status overview",
"view_detail": "View details",
"stat_energy": "Energy",
"stat_control_mode": "Control mode",
"stat_chip_temp": "Chip temperature",
"stat_blade_speed": "Blade speed",
"stat_voltage": "Battery voltage",
"stat_gnss": "GNSS fix",
"mode_remote": "Remote",
"mode_local": "Local",
"location_task_title": "Position & current task",
"view_map": "View map",
"current_location": "Current location: %s",
"location_hint": "Current position only; tasks follow the control page",
"live_monitor": "Live monitoring",
"data_update_sec": "Updated %ss ago",
"unknown_version": "Unknown",
"sensor_status": "Sensor status",
"sensor_status_trailing": "Configured for this SN",
"st_valid": "Valid",
"st_normal": "Normal",
"st_not_established": "Not established",
"st_no_fault": "No fault",
"m_gnss_title": "GNSS basic positioning",
"m_gnss_sub": "Position valid · Basic positioning (non-RTK)",
"m_ultrasonic_title": "Ultrasonic obstacle detection",
"m_ultrasonic_sub": "4 sensors · No obstacle alert currently",
"m_imu_title": "Chassis IMU",
"m_imu_sub": "Attitude reporting normal · Monitoring only",
"comm_link": "Communication links",
"comm_link_hint": "Data and video links shown separately",
"m_cloud_title": "Cloud data connection",
"m_cloud_sub": "Lightweight channel for status and alerts",
"m_rc_title": "Physical remote controller link",
"m_rc_sub": "Receiver online · Control not taken over",
"m_video_title": "Video streaming session",
"m_video_sub": "Video page not opened, no stream",
"m_mcu_title": "Lower controller & relay board",
"m_mcu_sub": "Key control communication status",
"actuator_title": "Actuators & current faults",
"fault_detail": "Fault details",
"m_blade_title": "Blade feedback",
"m_blade_sub": "Stopped · Safety interlock normal",
"m_active_fault_title": "Active faults",
"m_active_fault_sub": "0 items · No active alert detected",
"grid_title": "Sensor & communication monitoring",
"g_camera_title": "Perception camera",
"g_camera_sub": "4 channels · Image normal",
"g_ultrasonic_sub": "Detection normal · No obstacle",
"g_gnss_title": "GNSS/RTK",
"g_gnss_sub": "Fixed solution · Error <2cm",
"g_motion_title": "Motion state",
"g_motion_sub": "Attitude and speed normal",
"g_mcu_title": "MCU communication",
"g_mcu_sub": "Controller connected",
"g_cloud_sub": "Data reporting normal",
"g_ai_title": "Basic person/vehicle recognition",
"g_ai_sub": "Recognition module working",
"g_rc_title": "Remote control link",
"g_rc_sub": "Video and control channels normal",
"g_heartbeat_title": "Device heartbeat",
"g_heartbeat_sub": "Last report: 2s ago",
"quick_diag": "Quick diagnostics",
"self_check": "Device self-check",
"self_check_sub": "Last check OK · 2024-10-19 09:32",
"check_now": "Check now",
"ctrl_video_remote": "Video & remote control",
"ctrl_on_demand": "Connect on demand",
"ctrl_realtime_video": "Open live video",
"ctrl_realtime_video_sub": "View live footage",
"ctrl_need_permission": "Enter manually and request permission",
"ctrl_remote": "Open remote control",
"ctrl_remote_sub": "Operate the robot remotely",
"ctrl_note": "Live video and remote control start only on their dedicated pages; they never start automatically.",
"ctrl_task": "Task & operation control",
"ctrl_route": "Open path planning",
"ctrl_route_sub": "Set operation routes",
"ctrl_route_hint": "Auto planning and editing supported",
"ctrl_task_mgr": "Task management",
"ctrl_task_mgr_sub": "Create and run mowing tasks",
"ctrl_task_mgr_hint": "Scheduled tasks supported",
"ctrl_ops": "Quick controls",
"op_task_start": "Start task",
"op_task_start_sub": "Begin operation",
"op_task_pause": "Pause task",
"op_task_pause_sub": "Pause current task",
"op_return_home": "Return home",
"op_return_home_sub": "Back to charging station",
"op_find": "Find robot",
"op_find_sub": "Locate the robot quickly",
"op_manual_switch": "Manual/Auto switch",
"op_manual_switch_sub": "Switch control mode",
"op_robot_info": "Robot info",
"op_robot_info_sub": "View detailed configuration",
"op_app_power": "APP power",
"op_app_power_sub": "Remote power control",
"op_voice": "Voice broadcast",
"op_voice_sub": "Remote voice announcement",
"op_light": "Lights & sound",
"op_light_sub": "Control lights and warnings",
"rec_fault_title": "Fault & alert records",
"rec_work_title": "Operation records",
"view_all": "View all",
"rec_7d": "Faults/alerts in 7 days",
"rec_7d_sub": "3 records (1 fault, 2 alerts)",
"rec_count": "%s items",
"rec_today": "Today's operation",
"rec_date": "%s/%s",
"rec_area": "Area",
"rec_duration": "Duration",
"rec_efficiency": "Efficiency",
"fault_state": "Fault status",
"fault_none": "No faults",
"fault_none_sub": "Device running normally, no anomaly detected",
"fn_title": "Quick actions",
"fn_edit_order": "Edit order",
"fn_realtime_video": "Live video",
"fn_remote": "Remote control",
"fn_find": "Find robot",
"fn_app_power": "APP power",
"fn_fault": "Fault diagnosis",
"fn_sensor": "Sensor monitoring",
"all_functions": "View all functions",
"set_group_device": "Device settings & upgrade",
"set_param": "Device parameters",
"set_param_sub": "Operation, chassis and blade parameters",
"set_firmware": "Firmware & OTA upgrade",
"set_firmware_sub": "Current version V1.1.2 · Check for updates",
"set_firmware_sub_old": "Current version V0.9.7 · Requires downtime",
"set_check_update": "Check update",
"set_group_blade": "Operation & blade strategy",
"set_manage_perm": "Admin permission",
"set_obstacle_stop": "Blade stop on obstacle",
"set_obstacle_stop_sub": "Enabled · Stop blade by strategy on obstacle",
"set_enabled": "Enabled",
"set_blade_resume": "Blade resume strategy",
"set_blade_resume_sub": "Manual confirmation (recommended)",
"set_manual_confirm": "Manual confirm",
"set_chassis": "Chassis lift parameters",
"set_chassis_sub": "Configured by model and limit signals",
"set_view": "View",
"set_cancel": "Cancel",
"set_group_comm": "Communication & video settings",
"set_network": "Network & communication",
"set_network_sub": "4G/5G/Wi-Fi and GNSS communication",
"set_video": "Video transmission",
"set_video_sub": "Quality, channel and lane guide lines",
"set_group_map": "Positioning & map settings",
"set_map": "Positioning & map parameters",
"set_map_sub": "GNSS parameters, map and work areas",
"set_group_safety": "Safety settings",
"set_auto_stop": "Auto blade stop on obstacle",
"set_auto_stop_sub": "Stop the blade automatically when an obstacle is detected",
"set_auto_resume": "Auto blade resume after clearing",
"set_auto_resume_sub": "Resume mowing once the obstacle is removed",
"set_alarm": "Alarm & light settings",
"set_alarm_sub": "Volume, light prompts and alert methods",
"set_group_control": "Control & video preferences",
"set_rc_pref": "Remote control preferences",
"set_rc_pref_sub": "Layout and speed level limit",
"set_config": "Configure",
"set_video_pref": "Video display preferences",
"set_light_pref": "Light & sound preferences",
"set_light_pref_sub": "Only non-critical prompts can be adjusted",
"set_group_advanced": "Advanced capabilities",
"set_ai": "AI recognition",
"set_ai_sub": "Person/vehicle recognition, sensitivity and areas",
"set_follow": "Person following",
"set_follow_sub": "Target lock, follow mode and distance",
"set_remote_ctrl": "Remote control settings",
"set_remote_ctrl_sub": "Preferences, layout and video latency",
"set_group_maintain": "Network & system maintenance",
"set_net_loc": "Network & positioning",
"set_net_loc_sub": "4G/Wi-Fi and GNSS communication",
"unbind": "Unbind device",
"unbinding": "Unbinding…",
"unbind_confirm_body": "After unbinding you can no longer monitor or control \"%s\". Rebinding is required. Unbind now?",
"unbind_confirm_ok": "Unbind",
"unbind_success": "Unbound %s",
"unbind_error": "Unbind failed: %s"
},
"device_pages_v2": {
"title": "All functions",
"empty": "No matching function",
"search_hint": "Search functions",
"notice_prefix": "Current device: ",
"notice_suffix": ". Only functions supported by this device are shown; this version does not provide auto planning, task dispatch or return-home.",
"group_video": "Video & actions",
"group_info": "Device info",
"group_monitor": "Device monitoring",
"live_video": "Live video",
"remote": "Remote control",
"find": "Find robot",
"voice": "Voice broadcast",
"app_power": "APP power",
"follow": "Person following",
"return_home": "Return home",
"robot_info": "Robot info",
"location_map": "Location & map",
"voice_preset": "Voice presets",
"run_record": "Operation records",
"sensor": "Sensor monitoring",
"fault": "Fault diagnosis",
"step_scan": "Scan device",
"step_confirm": "Confirm info",
"step_bind": "Bind & activate",
"bind_title": "Confirm device info",
"bind_banner": "Device recognized, please confirm its info and ownership",
"bind_sn": "Device serial number",
"bind_status": "Binding status",
"bind_conn": "Connection",
"bind_area": "Service region",
"bind_verify_title": "Ownership verification",
"bind_verify_desc": "Scanning the SN does not grant control. Activation credentials or local confirmation on the device are required before binding.",
"bind_next": "Verify ownership and continue",
"qr_title": "Add robot",
"qr_scan_title": "Scan device QR code",
"qr_scan_desc": "Place the QR code on the robot inside the frame",
"qr_flash": "Flash",
"qr_album": "From album",
"qr_manual": "Or enter SN manually",
"qr_sn_hint": "Enter device SN, e.g. SA260002",
"qr_confirm": "Recognize",
"qr_not_arrived": "Robot not delivered yet?",
"qr_not_arrived_desc": "Try the APP first and add the device once it arrives",
"qr_skip_later": "Skip for now, add later →",
"qr_skip": "Skip for now",
"qr_err_no_code": "No QR code recognized, try a clearer image",
"qr_err_sn_empty": "Please enter the device SN"
},
"device_ownership_v2": {
"title": "Ownership & Security",
"card_basic": "Device Basics",
"basic_name": "Device Name",
"basic_org": "Organization",
"basic_site": "Site",
"basic_owner": "Owner",
"unknown": "Unknown",
"owner": "Owner",
"unsynced": "Not synced",
"type": "Ownership Type",
"type_org": "Enterprise",
"bound_active": "Bound · Online",
"bound_offline": "Bound · Offline",
"sn": "Device SN",
"first_claim": "First Claim",
"admin": "Administrator",
"member_enter": "Sharing",
"card_permission": "My Permissions",
"role_current": "Role: %s",
"perm_desc": "Ownership follows Organization → Site → Owner. Your role can only act on the level within its scope.",
"perm_level_org": "Organization",
"perm_level_site": "Site",
"perm_level_user": "Owner",
"perm_self_short": "Self only",
"perm_self_only": "Self only (cannot transfer to others)",
"perm_transfer_to": "Can transfer to",
"perm_unbind_to": "Can unbind up to",
"card_actions": "Ownership Actions",
"risky_transfer": "Transfer Device",
"risky_transfer_sub": "Re-attach to an organization, site or owner",
"risky_unbind": "Unbind Device",
"risky_unbind_sub": "Remove the device from its current level (irreversible)",
"tag_locked": "No access",
"action_locked": "Your role has no permission for this action",
"footer": "Administrator is not the device owner. The SN is only an identifier and cannot complete an unbind. Real ownership data appears once the ownership API is connected.",
"toast_member_todo": "Member sharing management is not connected yet",
"transfer_device_title": "Transfer Device",
"transfer_device_msg": "Transferring re-attaches the device to the selected level and replaces the current ownership link. Continue?",
"transfer_device_note": "The device identity must be verified by scanning first. Regular users can only transfer to themselves.",
"transfer_device_ok": "Start Transfer",
"unbind_device_title": "Unbind Device",
"unbind_device_msg": "After unbinding, your link to this device expires immediately and re-binding is required. Continue?",
"unbind_device_note": "The device identity must be verified by scanning first; the SN cannot replace identity verification.",
"unbind_device_ok": "Start Unbind"
},
"device_ownership_action_v2": {
"title_transfer": "Transfer Device",
"title_unbind": "Unbind Device",
"card_scan": "Scan Verification",
"scan_device_code": "Device Code",
"scan_result": "Scanned Value",
"scan_state": "Verification",
"scan_unscanned": "Not scanned · using current device",
"scan_matched": "Matches current device",
"scan_mismatch": "Does not match current device",
"scan_mismatch_hint": "The scanned value differs from the current device code. Submitting will act on the scanned device instead; make sure you did not scan the wrong one.",
"card_scope_transfer": "Level to Attach To",
"card_scope_unbind": "Ownership Level to Remove",
"scope_org": "Organization",
"scope_site": "Site",
"scope_user": "Owner",
"scope_opt_user": "Individual",
"scope_opt_site": "Site",
"scope_opt_org": "Organization",
"scope_opt_user_sub": "Only removes the owner's link to the device",
"scope_opt_site_sub": "Removes the site and everything below it",
"scope_opt_org_sub": "Removes the whole organization link, widest impact",
"scope_locked_hint": "Out of your role's permission, cannot be selected",
"tag_locked": "No access",
"scope_select_tip": "Unbinding only does one thing: detach the device from the selected level. Re-binding is required to restore the link.",
"unassigned_org": "No organization selected",
"unassigned_site": "No site selected",
"unassigned_user": "No owner selected",
"role_current": "Role: %s",
"role_admin": "Administrator",
"role_manager": "Organization Manager",
"role_site_manager": "Site Manager",
"role_personal": "Personal Account",
"role_user": "Regular User",
"scope_tip_transfer": "Select level by level (Organization → Site → Owner); the device is attached to the deepest level you pick. Leaving the owner empty attaches it to the organization or site only.",
"scope_tip_unbind": "Select level by level (Organization → Site → Owner). Locked levels are only used for context and are never removed. To remove an upper level, pick \"Not specified\" in the picker.",
"scope_max_transfer": "Your role can attach up to: %s",
"scope_max_unbind": "Your role can remove up to: %s",
"picker_clear_transfer": "Not specified (skip this level)",
"picker_clear_unbind": "Not specified (remove one level up)",
"preview_transfer": "Will be attached to:",
"preview_unbind": "This will remove:",
"picker_empty": "No options available",
"submit_transfer": "Confirm Transfer",
"submit_unbind": "Confirm Unbind",
"toast_transfer": "Device transferred",
"toast_unbind": "Device unbound",
"mismatch_title": "Scanned Device Differs",
"mismatch_msg": "Scanned value %s does not match the current device %s. Continuing will act on the scanned device. Continue?",
"mismatch_note": "This action changes device ownership. Make sure the scanned device is the one you selected.",
"mismatch_ok": "Proceed Anyway",
"footer_transfer": "Transfer equals binding: the device is attached to the selected level and the previous ownership link is replaced.",
"footer_unbind": "Unbinding is irreversible: the device is detached from the selected level and must be bound again to restore access."
},
"robot_power_v2": {
"title": "APP Power & Linkage Control",
"state_on": "Powered on",
"state_off": "Powered off",
"state_off_short": "Off",
"sec_remote_power": "Remote Power",
"power_help": "Power Help",
"sec_linkage": "Linkage Actions",
"unlocked": "Unlocked, ready to use",
"locked_hint": "Power on first",
"sec_unlock": "Controls Unlocked After Power On",
"unlock_hint": "Unlocked automatically after remote power on",
"cur_state": "Current Status",
"powered_desc": "Linkage actions are unlocked: blade, chassis, lights and horn are available.",
"unpowered_desc": "Power on remotely first to use blade, chassis, E-stop, lights and horn.",
"btn_power_on": "Power On",
"btn_power_off": "Power Off",
"lk_blade": "Blade",
"lk_chassis": "Chassis Lift",
"lk_estop": "Emergency Stop",
"lk_light": "Lights",
"lk_horn": "Horn / Voice",
"act_start": "Start",
"act_stop": "Stop",
"act_raise": "Raise",
"act_lower": "Lower",
"act_estop": "E-Stop",
"act_on": "On",
"act_off": "Off",
"act_horn": "Horn",
"act_voice": "Voice",
"tile_device_off": "Device is off",
"tile_operable": "Ready",
"find_tile": "Find Robot",
"find_locked": "Needs power on",
"find_start": "Start Finding",
"more": "More",
"footer": "Remote power and motion control require safety authentication. Ensure the area is clear first.",
"toast_channel_tip": "The %s channel is not connected yet (requires remote control authority and ignition command). The state shown is a preview only.",
"toast_channel_short": "The %s channel is not connected yet",
"toast_already_on": "Device is already powered on",
"toast_already_off": "Device is currently powered off",
"toast_offline_on": "Device is offline; the power-on command was not sent",
"toast_offline_off": "Device is offline; the power-off command was not sent",
"toast_need_power": "Power on remotely first to run %s",
"toast_need_power_voice": "Power on remotely first to broadcast voice",
"toast_more_unlock": "More unlocked features will be released in later versions",
"toast_power_help": "Blade, chassis, E-stop, lights and horn are available only after remote power on",
"toast_safety_help": "Remote power and motion control require device-side safety authentication. Make sure nobody is nearby.",
"power_on_title": "Confirm Remote Power On",
"power_on_msg": "Send a remote power-on command to the robot? Blade, chassis lift and E-stop become available only after power on.",
"power_on_note": "Make sure the surrounding area is safe and the network is stable.",
"power_on_ok": "Power On",
"power_off_title": "Confirm Remote Power Off",
"power_off_msg": "Send a remote power-off command to the robot? Blade, chassis, lights and horn will stop working immediately.",
"power_off_note": "Make sure the device has stopped working and is in a safe position.",
"power_off_ok": "Power Off"
},
"robot_sensor_v2": {
"title": "Sensors & Connectivity",
"todo": "This feature is not available yet",
"tab_ultrasonic": "Ultrasonic",
"tab_position": "Position",
"tab_comm": "Network",
"tab_mechanism": "Mechanism",
"sec_ultrasonic": "Ultrasonic Live Status",
"us_card_title": "Ultrasonic Obstacle Detection",
"us_ok_count": "6/6 normal",
"us_note": "Distances below are demo data; real sensor layout is loaded per device SN.",
"sec_distance": "Sensor Ranging",
"dir_front_left": "Front-left",
"dir_front_mid": "Front-center",
"dir_front_right": "Front-right",
"dir_left": "Left",
"dir_right": "Right",
"dir_rear": "Rear",
"dist_normal": "%s · normal",
"sonar_front": "Front: 1.8m",
"sonar_rear": "Rear: 2.1m",
"sec_position": "Position & Satellites",
"row_lng": "Longitude",
"row_lat": "Latitude",
"row_fix": "Fix Type",
"row_fix_value": "Built-in GNSS",
"row_fix_state": "Fix Status",
"fix_loading": "Loading…",
"fix_valid": "Valid · meter level",
"fix_none": "Not reported",
"row_sats": "Satellites",
"row_sats_value": "Example: 18",
"row_rtk": "RTK Correction",
"row_rtk_value": "Example: disabled",
"sec_comm": "Network Link",
"row_online": "Device Online",
"online": "Online",
"offline": "Offline",
"row_comm_mode": "Connection",
"row_comm_mode_value": "Example: MQTT long connection",
"row_net_type": "Network Type",
"row_net_type_value": "Example: 4G",
"row_signal": "Signal Strength",
"row_signal_value": "Example: -68 dBm",
"row_latency": "Link Latency",
"row_latency_value": "Example: 120 ms",
"row_last_report": "Last Report",
"row_last_report_value": "Example: 2026-10-20 09:41",
"sec_mechanism": "Working Mechanism",
"row_blade_lift": "Blade Deck Lift",
"row_blade_lift_value": "Example: stopped",
"row_blade_rpm": "Blade Speed",
"row_blade_rpm_value": "Example: 0 r/min",
"row_tilt": "Chassis Tilt",
"row_tilt_value": "Example: normal",
"row_obstacle": "Obstacle Detection",
"row_obstacle_value": "Example: not triggered",
"row_drive": "Drive System",
"row_drive_value": "Example: normal",
"row_estop": "E-Stop Switch",
"row_estop_value": "Example: not pressed",
"sample_note": "Fields marked \"Example\" are not reported by the backend yet and will update automatically once connected"
},
"robot_fault_v2": {
"title": "Fault Diagnosis Center",
"todo": "This feature is not available yet",
"sec_current": "Current Faults & Alerts",
"sec_filter": "Fault Filter",
"sec_support": "Diagnosis Support",
"cur_none": "No unresolved faults",
"cur_unknown": "Current fault status unknown",
"cur_sub_online": "Latest valid report · %s",
"cur_sub_offline": "Device offline, telemetry interrupted · checked at %s",
"st_normal": "Normal",
"st_unknown": "Unknown",
"filter_current": "Current (0)",
"filter_recovered": "Recovered (%s)",
"filter_all": "All Records",
"list_recovered": "Recovered Events",
"list_all": "All Records",
"list_recent_recovered": "Recently Recovered",
"empty_offline": "Device offline, no records available",
"empty": "No records",
"recovered_suffix": "%s · recovered",
"badge_recovered": "Recovered",
"support_codes": "View Fault Codes",
"support_codes_sub": "Description, impact and troubleshooting",
"support_sensor": "Sensor & Network Live Status",
"support_sensor_sub": "Check current link and hardware feedback",
"note": "When offline or telemetry is stale, never show \"No faults\"; label it as \"status unknown\" instead. Recovered events are demo data and will update once the fault record API is connected.",
"sheet_codes_title": "Fault Codes",
"sheet_codes_hint": "Tap any code to see description, impact and troubleshooting",
"sheet_problem": "Description",
"sheet_impact": "Impact & Advice",
"sheet_ok": "Got it",
"fc_c201_name": "Brief 4G signal loss",
"fc_c201_desc": "The 4G link between the device and the cloud dropped for a short time and recovered automatically after reconnecting.",
"fc_c201_impact": "Impact: remote commands and status reports are delayed; work itself is not affected.",
"fc_c201_advice": "Action: check 4G coverage in the work area, inspect the antenna connection, and replace the SIM if it happens often.",
"fc_u108_name": "Brief ultrasonic comms error",
"fc_u108_desc": "The ultrasonic sensor serial link briefly lost packets and recovered once the link was restored.",
"fc_u108_impact": "Impact: obstacle distance refresh lags; low-speed work can continue meanwhile.",
"fc_u108_advice": "Action: check the sensor harness and connectors, clean the sensor surface, replace the sensor if needed.",
"ev_time_1": "Oct 19, 18:23",
"ev_time_2": "Oct 17, 15:42"
},
"robot_light_v2": {
"title": "Lights & Sound",
"info_tip": "Lights and horn require a control channel on the device; currently a UI preview only",
"sec_light": "Light Control",
"sec_sound": "Sound & Light Alerts",
"sec_auto": "Automation",
"pill_on": "Lights on",
"pill_off": "All lights off",
"headlight": "Headlight",
"headlight_sub": "Work and night lighting for the travel direction",
"warning_light": "Warning Light",
"warning_light_sub": "Amber strobe to alert people nearby during work",
"marker_light": "Marker Light",
"marker_light_sub": "Body outline hint so others can see the machine at night",
"act_on_headlight": "Turn on headlight",
"act_off_headlight": "Turn off headlight",
"act_on_warning": "Turn on warning light",
"act_off_warning": "Turn off warning light",
"act_on_marker": "Turn on marker light",
"act_off_marker": "Turn off marker light",
"act_horn": "Horn",
"volume": "Alarm Volume",
"vol_low": "Low",
"vol_mid": "Medium",
"vol_high": "High",
"volume_set": "Volume set to \"%s\" (local preference, not sent to the device)",
"horn_dur": "Horn Duration",
"dur_3": "3 s",
"dur_5": "5 s",
"dur_10": "10 s",
"horn_set": "Horn duration set to \"%s\" (local preference, not sent to the device)",
"test_horn": "Test horn %s",
"auto_night": "Auto Light at Night",
"auto_night_sub": "Turn on headlight and marker light automatically in low light",
"auto_night_on": "Auto light at night enabled (local policy, not sent to the device)",
"auto_night_off": "Auto light at night disabled (local policy, not sent to the device)",
"auto_work": "Warning Light During Work",
"auto_work_sub": "Turn on the warning light when a task starts and off when it ends",
"auto_work_on": "Warning light during work enabled (local policy, not sent to the device)",
"auto_work_off": "Warning light during work disabled (local policy, not sent to the device)",
"auto_battery": "Low Battery Alert",
"auto_battery_sub": "Sound the horn and strobe the warning light below 20% battery",
"auto_battery_on": "Low battery alert enabled (local policy, not sent to the device)",
"auto_battery_off": "Low battery alert disabled (local policy, not sent to the device)",
"offline_tip": "Device is offline; the %s command was not sent",
"channel_tip": "The %s channel is not connected yet (no light control on the device); the state shown is a preview only",
"footer": "The remote protocol does not expose light or horn commands yet: switches here only reflect the UI state, and volume, horn duration and automation are local preferences. Real control requires the device side to expose these channels."
},
"robot_firmware_v2": {
"title": "Software & Firmware Update",
"info_tip": "Updating requires the device to be online, powered stably and safely stopped",
"sec_version": "Current Versions",
"sec_check": "Update Check",
"sec_prereq": "Before You Update",
"sec_history": "Update History",
"row_mcu": "Controller MCU",
"row_comm": "Comms Module",
"row_video": "Video Module",
"row_cfg": "Config Version",
"check_title": "System Update Check",
"check_sub": "Device must be online, powered and safely stopped",
"check_idle": "Not checked",
"check_checking": "Checking…",
"check_btn": "Check for Updates",
"prereq_1": "Robot is safely stopped or idle",
"prereq_2": "Blade and chassis actuators have stopped",
"prereq_3": "Power is sufficient and the link is stable",
"prereq_4": "Current account has update permission",
"rec_success": "Success",
"rec_done": "Completed",
"mod_mcu": "MCU v1.0.3",
"mod_comm": "Comms Module v1.1.2",
"mod_video": "Video Module v1.0.8",
"record_open_tip": "Update details for %s are not available yet",
"toast_offline": "Device is offline; cannot check for updates",
"toast_ota_todo": "The OTA service is not connected yet, so no version result is returned",
"footer": "Version numbers and history are demo data; real values appear once the device version API and OTA channel are connected. Update actions always ask for confirmation first."
},
"robot_network_v2": {
"title": "Network & Location",
"info_tip": "Network configuration depends on the device; this page only shows read-only info",
"todo": "The configuration channel is not connected yet",
"tab_network": "Network",
"tab_gnss": "GNSS",
"sec_net_current": "Current Network",
"sec_net_cfg": "Network Configuration",
"sec_gnss_state": "Fix Status",
"sec_coord": "Coordinates",
"sec_gnss_cfg": "Location Settings & Map",
"row_conn_mode": "Connection Mode",
"val_cellular": "4G cellular",
"val_disconnected": "Not connected",
"row_net_state": "Network Status",
"val_online_good": "Online · good signal",
"val_offline": "Offline",
"row_cloud": "Cloud Connection",
"val_normal": "Normal",
"val_broken": "Disconnected",
"row_heartbeat": "Last Heartbeat",
"val_just_now": "Just now",
"val_no_heartbeat": "No heartbeat",
"row_video_session": "Video Session",
"val_no_session": "No viewing session",
"entry_4g": "4G Module Info",
"entry_4g_sub": "Carrier, signal strength and module state",
"entry_wifi": "Wi-Fi Settings",
"entry_wifi_sub": "Available if the device has Wi-Fi hardware",
"entry_cloud": "Cloud Access",
"entry_cloud_sub": "Server and heartbeat read-only / limited settings",
"note_net": "Connection mode and cloud status come from the device online state; carrier and signal strength appear once the device reports them.",
"row_fix_module": "GPS Module",
"val_builtin_gnss": "Built-in GNSS",
"row_cur_fix": "Current Fix",
"fix_loading": "Loading…",
"fix_valid": "Valid · meter level",
"fix_none": "No fix",
"row_sat": "Satellite Info",
"val_sat_only": "Only real device reports",
"row_fix_time": "Last Fix Time",
"row_lat": "Latitude",
"row_lng": "Longitude",
"entry_map": "View on Map",
"entry_map_sub": "Pin, track and last update time",
"entry_gnss_param": "Location Parameters",
"entry_gnss_param_sub": "Coordinate system, report rate (device side)",
"note_loading": "Getting the device location…",
"note_from_device": "Coordinates come from real GNSS reports and are synced to Location & Map",
"note_error": "Failed to get location: %s",
"note_no_fix": "The device has not reported a valid fix yet"
},
"robot_run_v2": {
"title": "Run Records & Health",
"todo": "This feature is not available yet",
"custom_todo": "Custom time ranges are not available yet",
"sec_overview": "Run Overview",
"sec_events": "History & Events",
"footer": "Run statistics and history are demo data and will update once the statistics API is connected",
"range_7": "7 days",
"range_30": "30 days",
"range_90": "90 days",
"range_custom": "Custom",
"chart_7": "Run Trend (Last 7 Days)",
"chart_30": "Run Trend (Last 30 Days)",
"chart_90": "Run Trend (Last 90 Days)",
"axis_mon": "Mon",
"axis_tue": "Tue",
"axis_wed": "Wed",
"axis_thu": "Thu",
"axis_fri": "Fri",
"axis_sat": "Sat",
"axis_sun": "Sun",
"axis_week_1": "W1",
"axis_week_2": "W2",
"axis_week_3": "W3",
"axis_week_4": "W4",
"axis_week_5": "W5",
"axis_month_7": "Jul",
"axis_month_8": "Aug",
"axis_month_9": "Sep",
"stat_runtime": "Total Runtime",
"stat_runtime_value": "128.5h",
"stat_starts": "Start Count",
"stat_starts_value": "86 times",
"stat_mileage": "Mileage",
"stat_mileage_value": "12.8km",
"chart_daily": "Daily Runtime",
"chart_unit": "Unit: hours",
"ev_1_title": "Robot powered on",
"ev_1_time": "Today 08:41",
"ev_1_tag": "Status",
"ev_2_title": "APP remote session released",
"ev_2_time": "Yesterday 17:06",
"ev_2_tag": "Control",
"ev_3_title": "Ultrasonic blade-stop triggered",
"ev_3_time": "Oct 18, 15:42",
"ev_3_tag": "Cleared",
"ev_4_title": "Cloud connection restored",
"ev_4_time": "Oct 18, 15:40",
"ev_4_tag": "Network"
},
"robot_full_info_v2": {
"title": "Robot Full Info",
"todo": "This feature is not available yet",
"sec_profile": "Basic Profile",
"sec_runtime": "Runtime & Control",
"footer": "Power type, last report, control session and fault count are demo values; they will be replaced once connected",
"model_suffix": "%s · STD",
"tagline": "Dedicated video · Ultrasonic & light · Basic GNSS",
"pill_online": "Online · %s",
"pill_offline": "Offline · %s",
"mode_idle": "Standby",
"sn_masked": "%s · · · · %s (masked)",
"row_name": "Device Name",
"row_sn": "Device SN",
"row_bind": "Binding",
"row_type": "Category",
"row_power": "Power Type",
"row_report": "Last Report",
"val_bound": "Authorized",
"val_unbound": "Unbound",
"val_type": "Tracked mowing robot",
"val_power": "Demo: Electric",
"val_report": "Demo: 2026-10-20 09:41",
"stat_energy": "Energy",
"stat_mode": "Run Mode",
"stat_session": "Control Session",
"val_none": "None",
"row_gnss": "GNSS Fix",
"val_gnss_ok": "Fix valid",
"val_gnss_none": "No fix",
"row_fault": "Active Faults",
"val_fault_count": "0"
},
"robot_voice_v2": {
"title": "Voice Presets",
"todo": "This feature is not available yet",
"sec_list": "Preset Voices",
"add": "+ New",
"sec_edit": "Edit Voice Content",
"sec_realtime": "Live Broadcast (Phase 2)",
"footer": "Presets are stored on this device; speech synthesis is a device capability and plays only when supported",
"name_label": "Voice Name",
"name_hint": "e.g. Safety warning",
"text_label": "Voice Text (editable)",
"text_hint": "Enter the text to broadcast",
"language": "Language: Simplified Chinese",
"sync_note": "Synthesis/sync requires device support",
"save": "Save Preset",
"toast_name_required": "Please enter a voice name",
"toast_text_required": "Please enter the voice text",
"toast_saved": "Preset saved",
"toast_preview": "Preview requires on-device speech synthesis, not yet available",
"toast_realtime": "Live broadcast will be available in phase 2",
"realtime_title": "Live broadcast via APP microphone",
"realtime_sub": "Capture voice with the APP microphone and play it on the device in real time",
"badge_todo": "Coming soon",
"def_safety_name": "Safety warning",
"def_safety_text": "Caution: the robot is working, please keep a safe distance.",
"def_start_name": "Start reminder",
"def_start_text": "The device is about to start, please stay away from the work area.",
"def_polite_name": "Polite notice",
"def_polite_text": "Please keep clear, thank you for your cooperation.",
"sheet_title": "Voice Broadcast",
"sheet_manage": "Manage/Edit Presets",
"sheet_note": "Hold-to-talk live broadcast will be available later; presets are always kept. This mode does not open the mic automatically or require video monitoring.",
"tab_preset": "Presets · Phase 1",
"tab_realtime": "Live · Later",
"toast_realtime_later": "Live broadcast will be available later",
"hold_title": "Hold the microphone to talk",
"hold_sub": "Coming later: hold to talk, release to broadcast on the device"
},
"robot_location_v2": {
"title": "Location & Map",
"todo": "This feature is not available yet",
"sec_current": "Current Location & Map",
"trailing_loc": "Location Info",
"sec_data": "Location Data",
"map_title": "Device Location",
"map_sub": "Map is illustrative; the marker comes from the device's actual GNSS data",
"pill_fix": "GNSS fix",
"pill_no_fix": "No fix",
"row_lng": "Longitude",
"row_lat": "Latitude",
"row_mode": "Positioning",
"val_mode": "Built-in GNSS",
"row_fix": "Fix Status",
"val_fix_ok": "Valid · meter level",
"val_fix_none": "Not reported",
"row_sat": "Satellite Info",
"val_sat": "Only device-reported data",
"note_loading": "Getting device location…",
"note_from_device": "Coordinates come from the device's actual GNSS report",
"note_error": "Failed to get location: %s",
"note_no_fix": "The device has not reported a valid fix yet"
},
"robot_bind_v2": {
"title": "Bind & Activate",
"step_identify": "Identify",
"step_confirm": "Confirm",
"step_bind": "Activate",
"equip_id": "Selected Equipment ID",
"org": "Organization",
"site": "Site",
"owner": "Owner",
"role_current": "Role: %s (%s)",
"role_admin": "Administrator",
"role_manager": "Org Administrator",
"role_site_manager": "Site Administrator",
"role_user": "Standard User",
"unassigned_org": "No organization assigned",
"unassigned_site": "No site assigned",
"unassigned_owner": "No owner assigned",
"please_select": "Please select",
"select_org_first": "Select an organization first",
"select_site_first": "Select a site first",
"submit": "Confirm Binding",
"bind_success": "Bound successfully"
},
"ble_detail_v2": {
"title": "Device Details",
"dlg_occupied_title": "Another device connected",
"dlg_occupied_msg": "Currently connected: %s\n\nDisconnect it before connecting a new device.",
"dlg_ok": "Got it",
"err_no_name": "Unable to get the Bluetooth device name",
"err_no_match": "No device found whose name contains \"%s\"",
"err_no_device_id": "Matched device is missing a device ID",
"err_bind_failed": "Failed to bind device: %s",
"unknown_device": "Unknown device",
"cmd_remote": "Remote control",
"cmd_path": "Path planning",
"cmd_status": "Status info",
"cmd_get_id": "Query ID",
"cmd_get_auth": "Get authorization",
"cmd_read_cfg": "Read config",
"cmd_write_cfg": "Write config",
"cmd_obstacle": "Obstacle avoidance",
"cmd_heartbeat": "Heartbeat",
"cmd_unknown": "Unknown (0x%s)",
"row_name": "Device Name",
"row_rssi": "Signal Strength",
"row_adv_name": "Advertising Name",
"row_conn": "Connection",
"state_connected": "Connected",
"state_connecting": "Connecting %s...",
"state_connecting_short": "Connecting %s",
"state_disconnected": "Disconnected",
"sec_actions": "Actions",
"btn_disconnect": "Disconnect",
"btn_connect": "Connect",
"btn_bind": "Bind Device",
"btn_read_cfg": "Read Config",
"sec_services": "Services",
"sec_commands": "Send Command",
"sec_push": "Data Pushes",
"clear": "Clear",
"waiting": "Waiting for data...",
"sec_config": "Device Config",
"writing": "Writing...",
"write_cfg": "Write Config",
"toast_not_editable": "Editing this field is not supported",
"edit_title": "Edit %s",
"edit_hint": "Enter a new value",
"edit_current": "Current: %s",
"cancel": "Cancel",
"confirm": "OK",
"err_no_chip": "Device serial number not available, read the config first",
"err_no_permission": "Permission check failed, cannot write config",
"err_readback_timeout": "Read-back timed out, please read the config manually",
"err_mismatch": "Verification mismatch: %s, values restored to the device's actual values",
"write_ok": "Config written and confirmed by read-back",
"write_error": "Failed to write config: %s",
"list_sep": ", "
},
"alarm_center": {
"title": "Alarm Center",
"retry": "Retry",
"filter_title": "Filter",
"alarm_level": "Alarm Level",
"time_range": "Time Range",
"area": "Area",
"device": "Device",
"high_risk": "High Risk",
"medium_risk": "Medium Risk",
"low_risk": "Low Risk",
"hint": "Hint",
"today": "Today",
"this_week": "This Week",
"this_month": "This Month",
"all": "All",
"apply_filter": "Apply Filter",
"ai_diagnosis": "AI Diagnosis",
"view_details": "View Details",
"unprocessed": "Unprocessed",
"processing": "Processing",
"confirmed": "Confirmed",
"recovered": "Recovered",
"unconfirmed": "Unconfirmed",
"today_new": "Today's New"
},
"work_order_v2": {
"title": "Work Orders",
"retry": "Retry",
"add": "Add",
"pending": "Pending",
"executing": "Executing",
"completed": "Completed",
"all": "All",
"today_completed": "Today Completed",
"order_no": "Order No.",
"priority": "Priority",
"create_time": "Create Time",
"complete_time": "Complete Time",
"location": "Location",
"executor": "Executor",
"high": "High",
"medium": "Medium",
"low": "Low",
"progress": "Progress",
"no_data": "No data"
},
"my_v2": {
"title": "Profile",
"clear_cache": "Clear Cache",
"confirm_clear_cache": "Are you sure to clear all cache data?",
"cancel": "Cancel",
"confirm": "Confirm",
"night_mode": "Night Mode",
"system_settings": "System Settings",
"personal_info": "Personal Info",
"offline_cache": "Offline Cache",
"message": "My Messages",
"message_settings": "Message Settings",
"favorite": "My Favorites",
"work_order": "My Orders",
"help_feedback": "Help & Feedback",
"about_us": "About Us",
"suspend_bar": "Float Bar",
"suspend_bar_desc": "Show device status float bar at the bottom",
"tab_settings": "Tab Settings",
"default_user_name": "SATA User",
"todo_developing": "This feature is not available yet",
"service_support": "Support",
"account_settings": "Account & Settings",
"after_sales_center": "After-sales Service",
"after_sales_center_desc": "Repairs, work orders and warranty",
"maintenance": "Maintenance",
"maintenance_desc": "Plans, reminders and records",
"help_guide": "Help & Guide",
"help_guide_desc": "Manuals, tutorials and FAQ",
"account_security": "Account & Security",
"account_security_desc": "Email/phone, password and devices",
"message_notice": "Notifications",
"message_notice_desc": "Device, work, service and auth messages",
"general_settings": "General Settings",
"general_settings_desc": "Language, units, region and app preferences",
"about_legal": "About & Legal",
"about_legal_desc": "App version, terms and privacy policy",
"stat_processing_order": "Open Orders",
"stat_maintenance_reminder": "Maintenance",
"stat_tutorial": "Guides",
"stat_usage_help": "Help",
"unknown": "N/A",
"unread_unknown": "Unread N/A",
"personal_account": "Personal account",
"contact_not_set": "No contact info",
"edit_profile": "Edit Profile",
"footer_note": "Design prototype · Demo data only · Not linked to real devices or accounts",
"note_card": "Device sharing, member authorization, admin transfer and unbinding reuse the existing flows in the Device module; they are not re-implemented here.",
"logout": "Log Out",
"logout_confirm": "Are you sure you want to log out?",
"profile_title": "Personal Info",
"not_logged_in": "Not signed in",
"user_id": "User ID",
"username": "Username",
"nickname": "Nickname",
"email": "Email",
"phone": "Phone",
"edit_profile_action": "Edit Profile",
"edit_in_progress": "Editing is under development...",
"version_update": "Version Update",
"up_to_date": "You are on the latest version",
"current_version": "Current version: %s",
"checking_update": "Checking for updates...",
"tap_to_check": "Tap to check for a new version",
"check_update": "Check for Updates"
},
"work_v2": {
"title": "Work",
"tag": "SATA · Smart O&M",
"overview": "Work Overview",
"all_work_robots": "All work robots",
"no_site_selected": "No site selected",
"site_prefix": "Site: ",
"site_summary_area": "%s work zones",
"site_summary_robot": "%s robots ready",
"switch": "Switch",
"no_site_data": "No site data",
"select_site": "Select Site",
"stat_running": "Running",
"stat_pending": "Pending",
"stat_done_today": "Done Today",
"tag_normal": "Normal",
"tag_to_schedule": "To schedule",
"tag_task": "Tasks",
"section_current": "Current Work",
"all_tasks": "All Tasks",
"section_features": "Work Features",
"toast_todo": "This feature is not available yet",
"toast_loading_devices": "Loading the device list, please try again shortly",
"demo_zone_a_task": "Zone A · Autonomous mowing",
"demo_zone_b_task": "Zone B · Morning mowing",
"demo_robot_1": "Shandong Unit 01",
"demo_robot_2": "Shandong Unit 02",
"demo_robot_3": "Shandong Unit 03",
"demo_route_a1": "Zone A Route 01",
"demo_route_b1": "Zone B Route 01",
"demo_task_zone_a": "Zone A · Autonomous mowing",
"demo_task_c_trim": "Zone C · Nursery trimming",
"demo_task_c_retry": "Zone C · After-rain touch-up",
"demo_task_all_edge": "Whole site · Edge trimming",
"demo_task_a_inspect": "Zone A · Spot inspection",
"demo_task_d_edge": "Zone D · Boundary trimming",
"demo_tomorrow": "Tomorrow 08:00",
"done_progress": "Completed %s",
"demo_done_value": "1.7 / 2.5 mu",
"demo_remain": "About 40 min left",
"enter_work_center": "Open Work Center",
"view_work_plan": "View Work Plan",
"feature_map": "Work Map",
"feature_area": "Zones",
"feature_route_library": "Route Library",
"feature_plan": "Dispatch Work Plans",
"feature_record": "Work Records",
"feature_autonomous": "Autonomous",
"create_task": "New Route",
"no_current_task": "No current work",
"no_current_task_sub": "You can switch the site",
"task_pool": {
"no_user": "Sign in to view work tasks",
"no_site": "Select a site first",
"load_failed": "Unable to load tasks",
"retry": "Retry",
"refresh": "Refresh tasks",
"task_title": "Task #%s",
"device": "Device: %s",
"route": "Work route #%s",
"created": "Created: %s",
"paused": "Paused",
"failed": "Failed",
"canceling": "Canceling",
"unknown_status": "Unknown status",
"view_task": "View task",
"device_load_failed": "Unable to load devices. Please retry.",
"device_missing": "The device was not found in the current site"
},
"area": {
"title": "Zones",
"new": "New",
"page_title": "Work Zone Management",
"page_subtitle": "Draw work zones, no-go zones and obstacle zones in the map editor",
"filter_all": "All zones",
"kind_work": "Work zone",
"kind_forbidden": "No-go zone",
"kind_obstacle": "Obstacle zone",
"empty": "No zones in this category yet",
"disabled": "Disabled",
"view": "View",
"edit": "Edit",
"boundary_points": "%s boundary points",
"applies_to": "Applies to: %s",
"detail_todo": "Zone detail API not connected (demo)",
"demo_zone_a": "Zone A · Main lawn",
"demo_zone_b": "Zone B · East lawn",
"demo_zone_c": "Zone C · Nursery",
"demo_zone_all": "Whole site",
"demo_area_pool": "Pool no-go zone",
"demo_area_toolshed": "Tool shed obstacle",
"demo_all_devices": "All devices"
},
"map": {
"title": "Work Map",
"subtitle": "Robots, zones and tasks on one site map",
"online_count": "%s online",
"layer_all": "All layers",
"layer_area": "Work zones",
"layer_robot": "Robots",
"layer_forbidden": "No-go zones",
"layer_route": "Routes",
"basemap_label": "Orthophoto · Shandong site",
"toast_record_todo": "Work record entry not connected (demo)",
"toast_layer_todo": "Layer settings follow the top filter (demo)",
"toast_center_reset": "Back to site center (demo)",
"task_device": "Device: %s · task running",
"manage_area": "Manage zones",
"toast_work_center_todo": "Open the Work Center from device details (demo)"
},
"plan": {
"title": "Dispatch Work Plans",
"new": "New",
"page_title": "Task List & Schedule",
"page_subtitle": "Tasks arranged by date; running tasks update progress in real time",
"filter_all": "All",
"status_running": "Running",
"status_pending": "Pending",
"status_done": "Completed",
"status_aborted": "Aborted",
"empty": "No plans with this status",
"day_today": "Today",
"day_tomorrow": "Tomorrow",
"day_yesterday": "Yesterday",
"weekday_mon": "Mon",
"weekday_tue": "Tue",
"weekday_wed": "Wed",
"weekday_thu": "Thu",
"weekday_fri": "Fri",
"weekday_sat": "Sat",
"weekday_sun": "Sun",
"task_count": "%s tasks",
"start": "Start",
"detail": "Details",
"toast_calendar_todo": "Calendar view API not connected (demo)",
"toast_new_todo": "Task scheduling API not connected (demo)",
"toast_detail_todo": "Plan detail API not connected (demo)"
},
"plan_create": {
"title": "New Work Task",
"dispatch_route": "Routes",
"dispatch_area": "Areas",
"execution_timing": "Execution Mode",
"timing_immediate": "Immediate",
"timing_scheduled": "Scheduled",
"scheduled_hint": "Set a cycle and date range. The device will run at the scheduled time.",
"immediate_hint": "Open the work center with the selected device and route, then tap Start Work to begin.",
"area_immediate_hint": "Select the device and area, then confirm the work details.",
"selection_changed": "The station or device assignment changed. Reopen this page to select the device and route again.",
"task_info": "Task Details",
"schedule_settings": "Schedule Settings",
"area_label": "Work Area",
"area_pick": "Coming soon",
"area_pending": "Area dispatch is coming soon. Choose Routes to schedule a task or open the work center.",
"immediate_pending": "Immediate dispatch is coming soon. Choose Scheduled to create a work plan.",
"coming_soon": "Coming soon",
"submit_now": "Dispatch Now",
"subtitle": "Pick device and route, set the cycle, work starts automatically on time",
"name_label": "Plan Name",
"name_hint": "e.g. Zone A daily morning mowing",
"device_label": "Device",
"device_pick": "Select a device",
"device_empty": "No devices under this station",
"device_sheet_title": "Select Device",
"route_label": "Work Route",
"route_pick": "Select a route",
"route_loading": "Routes are loading, please wait",
"route_sheet_title": "Select Work Route",
"route_unsupported": "This route does not support scheduled tasks",
"no_site": "Please select a station on the home page first",
"cycle_label": "Cycle Type",
"type_day": "Daily",
"type_week": "Weekly",
"type_month": "Monthly",
"week_hint": "Choose one or more weekdays",
"month_hint": "Choose days of month (1-31; skipped if the month has no such day)",
"time_label": "Execution Time",
"valid_label": "Valid Range",
"start_date": "Start Date",
"end_date": "End Date",
"submit": "Create Scheduled Task",
"success": "Work plan created",
"failed": "Create failed, please try again later"
},
"record": {
"title": "Work Records",
"page_subtitle": "Every job archived by month; open one to see its report",
"filter_all": "All",
"filter_done": "Completed",
"filter_aborted": "Aborted",
"filter_week": "This week",
"empty": "No records match this filter",
"summary_title": "This Month",
"summary_count": "Jobs",
"summary_area": "Total area (mu)",
"summary_hours": "Working hours",
"report": "Report",
"toast_export_todo": "Bulk export API not connected (demo)"
},
"report": {
"title": "Work Report",
"toast_share_todo": "Share API not connected (demo)",
"time_subtitle": "2026-10-26 08:00 — 10:42 · %s",
"trace_badge": "Actual work route",
"trace_replay": "Route playback",
"metric_area": "Work area",
"metric_duration": "Duration",
"metric_coverage": "Coverage",
"metric_power": "Power used",
"info_title": "Job Info",
"info_zone": "Work zone",
"info_route": "Work route",
"info_device": "Device",
"info_start": "Start time",
"info_end": "End time",
"demo_route_pattern": "%s · Back-and-forth",
"event_title": "Process Log",
"event1_title": "Task dispatched",
"event1_desc": "Device accepted the task and ran a self-check",
"event2_title": "Entered Zone B and started",
"event2_desc": "Advancing back and forth along %s",
"event3_title": "Mowing height adjusted",
"event3_desc": "Manual intervention: mowing height 45 → 50 mm",
"event4_title": "Job finished and returned",
"event4_desc": "Back at the charging dock, 66% battery left",
"back_to_records": "Back to records",
"export": "Export report",
"toast_export_todo": "Report export API not connected (demo)"
},
"route_lib": {
"title": "Route Library",
"new": "New",
"page_subtitle": "Coverage routes grouped by zone, ready to apply to a new task",
"filter_all": "All routes",
"kind_coverage": "Coverage",
"kind_return": "Return",
"kind_edge": "Edge",
"kind_custom": "Custom",
"loading": "Loading routes…",
"reload": "Reload",
"empty_site": "No routes under this station yet",
"no_site": "Please select a station on the home page first",
"empty": "No routes in this category yet",
"recent": "Recent %s",
"used_today": "today",
"used_yesterday": "yesterday",
"edit": "Edit",
"apply_to_task": "Apply to task",
"apply_todo": "Task scheduling API not connected (demo)",
"demo_route_a1": "Zone A Route 01",
"demo_route_b1": "Zone B Route 01",
"demo_route_b_edge": "Zone B Edge 01",
"demo_route_c_cov": "Zone C Coverage 01",
"demo_route_all_return": "Whole-site Return Route"
}
},
"ble_v2": {
"already_connected_title": "Device already connected",
"already_connected_msg": "Currently connected: %s\n\nPlease disconnect it before connecting a new device.",
"got_it": "Got it",
"connected_toast": "Connected to %s",
"title": "Bluetooth Devices",
"connected_current": "Connected: %s",
"scanning_nearby": "Scanning nearby devices...",
"turn_on_bt_first": "Please turn on Bluetooth",
"bt_on": "Bluetooth is on",
"bt_off": "Bluetooth is off",
"connected_device": "Connected device",
"scanning_nearby_short": "Scanning nearby devices",
"turn_on_bt_to_scan": "Turn on Bluetooth to scan nearby devices",
"go_turn_on": "Turn on",
"nearby_devices": "Nearby Devices",
"search_hint": "Search device name or MAC",
"bt_off_cannot_scan": "Bluetooth is off, cannot scan",
"no_match": "No matching devices",
"scanning_dots": "Scanning nearby devices...",
"connected": "Connected",
"disconnect": "Disconnect",
"connect": "Connect",
"tip": "Choose the on-site device to avoid connecting to unrelated devices"
},
"help_feedback": {
"tab_faq": "FAQ",
"tab_feedback": "Feedback",
"type_feature": "Feature Suggestion",
"type_bug": "Bug Report",
"type_experience": "Experience Issue",
"type_other": "Other",
"cat_bind": "Device Binding",
"cat_path": "Path Planning",
"cat_remote": "Remote Control",
"cat_order": "Work Order System",
"cat_account": "Account Issues",
"q_bind_fail": "What should I do if QR-code binding fails?",
"a_bind_fail": "Check that the device is powered on and in pending-binding state, and make sure Bluetooth and the network are working on your phone. If it still fails, restart the device and scan again.",
"q_bt_notfound": "Can't find the device's Bluetooth signal?",
"a_bt_notfound": "Make sure the device is on and its Bluetooth indicator is blinking. Move closer to the device (within 1 meter) and search again. When binding multiple devices, do them one by one.",
"q_path_none": "Unable to generate a path?",
"a_path_none": "Ensure a complete work area is drawn (at least 3 points) and the GPS signal is good. If using auto-planning, make sure the area boundary does not self-intersect.",
"q_map_issue": "Map not displaying or location drifting?",
"a_map_issue": "Check that phone GPS is enabled and location permission is granted. Drifting may occur indoors or in weak-signal areas; use it in open areas.",
"q_video_stutter": "Remote video lagging or connection timeout?",
"a_video_stutter": "Check that the network connection on both phone and device is stable. Use remote control under good 4G/Wi-Fi. If lag persists, try lowering the video resolution.",
"q_estop": "How do I use the emergency stop?",
"a_estop": "On the remote control page, tap the red emergency-stop button at the center to stop the device immediately. You must manually release it to resume.",
"q_order_submit": "How do I submit a work order?",
"a_order_submit": "On the Work Order page, tap \"New Order\" at the bottom right, choose a type, fill in the description, upload images, then submit.",
"q_order_status": "How do I check work order status?",
"a_order_status": "On the Work Order page you can view all submitted orders and their status (Pending/Processing/Completed). Tap an order for details and replies.",
"q_pwd_forget": "What if I forgot my password?",
"a_pwd_forget": "Tap \"Forgot Password\" on the login page and verify with your registered phone number to reset it.",
"q_rebind_device": "Do I need to rebind after switching devices?",
"a_rebind_device": "Device bindings are not lost when logging into the same account on a new phone, but you need to search and connect the devices again on the new phone.",
"contact_title": "Contact Support",
"hotline": "Service Hotline",
"wechat_work": "WeCom",
"wechat_hint": "Scan to add support on WeChat",
"feedback_type": "Feedback Type",
"problem_desc": "Description",
"problem_hint": "Please describe your problem or suggestion in detail...",
"add_screenshot": "Add Screenshot",
"contact_label": "Contact (optional)",
"contact_hint": "Phone/WeChat number for follow-up",
"submit_feedback": "Submit Feedback",
"close": "Close",
"copy_number": "Copy Number",
"number_copied": "Number copied",
"please_input_desc": "Please enter a description",
"submit_success": "Feedback submitted. Thank you for your support!"
},
"report": {
"title": "Field Report",
"submit": "Submit",
"select_location": "Select Location",
"report_type": "Report Type",
"device_fault": "Device Fault",
"patrol_record": "Patrol Record",
"hidden_danger": "Hidden Danger",
"defect_report": "Defect Report",
"select_device": "Select Device",
"please_select_device": "Please select device",
"problem_description": "Problem Description",
"description_hint": "Please describe the problem in detail...",
"upload_media": "Upload Image/Video",
"take_photo": "Take Photo",
"record_video": "Record Video",
"problem_level": "Problem Level",
"normal": "Normal",
"important": "Important",
"urgent": "Urgent",
"cancel": "Cancel",
"select": "Select",
"submit_success": "Submitted",
"submit_success_message": "Your report has been submitted successfully",
"submit_failed": "Submission Failed",
"confirm": "OK",
"main_building_a": "Main Building A",
"main_building_b": "Main Building B",
"boiler_room": "Boiler Room",
"turbine_room": "Turbine Room",
"control_room": "Control Room",
"power_distribution_room": "Power Distribution Room",
"boiler_1": "Boiler #1",
"boiler_2": "Boiler #2",
"turbine_1": "Turbine #1",
"generator_1": "Generator #1",
"transformer_1": "Transformer #1",
"water_pump_1": "Water Pump #1",
"select_image": "Select Image",
"select_video": "Select Video"
},
"product": {
"intro": "Product Introduction",
"highlights": "Product Highlights",
"functions": "Features",
"parameters": "Specifications",
"scenes": "Application Scenarios",
"star_points": {
"design": {
"title": "Overall Design",
"content": "Load-bearing body, high-power walking system, tank-type tracks, oil-electric hybrid, anti-slope system, active/passive floating mower deck, air-assisted lifting mechanism, adaptive mowing device."
},
"control": {
"title": "Control System",
"content": "Automotive-grade control and electrical system, industrial-grade anti-interference remote control, speed control and detection, traction control, manual and automatic driving modes, LCD display for machine status."
},
"power": {
"title": "Power System",
"content": "Adaptive range extender system, top-tier Honda engine, high-power AC/DC discharge function."
},
"safety": {
"title": "Safety Features",
"content": "Vehicle stability system, ABS brakes, electronic rollover protection, tilt protection, rapid stop on fall/rollover, auto shutdown when idle."
},
"smart": {
"title": "Smart Functions",
"content": "Straight-line hold, collision avoidance, collision shutdown."
},
"expand": {
"title": "Extended Functions",
"content": "Path planning, inspection detection, IoT control."
}
},
"scenes": {
"orchard": "Orchard & Forestry",
"photovoltaic": "Photovoltaic Energy Storage",
"highway": "Highway Administration",
"agriculture": "Agricultural Production",
"municipal": "Municipal & Riverbank",
"airport": "Airport Facilities"
}
}
}