diff --git a/iqpilot/ui/layouts/settings/iq_panels.py b/iqpilot/ui/layouts/settings/iq_panels.py index 5808f05..0f023af 100644 --- a/iqpilot/ui/layouts/settings/iq_panels.py +++ b/iqpilot/ui/layouts/settings/iq_panels.py @@ -116,9 +116,9 @@ def _fmt_seconds(value) -> str: def onroad_brightness_label(val) -> str: if val == OnroadBrightness.AUTO: - return tr("Auto (Default)") + return tr("Auto") if val == OnroadBrightness.AUTO_DARK: - return tr("Auto (Dark)") + return tr("Auto — Dim") return f"{(val - 1) * 5} %" @@ -140,17 +140,17 @@ class DisplayLayout(Widget): label_callback=lambda v: tr("Default") if v == 0 else f"{v} %", inline=True, ) self._onroad_brightness_row = option_item( - param="OnroadScreenOffBrightness", title=lambda: tr("Onroad Brightness"), description="", + param="OnroadScreenOffBrightness", title=lambda: tr("Driving Brightness"), description="", min_value=0, max_value=21, value_change_step=1, label_callback=onroad_brightness_label, inline=True, ) self._dim_delay_row = option_item( - param="OnroadScreenOffTimer", title=lambda: tr("Onroad Brightness Delay"), description="", + param="OnroadScreenOffTimer", title=lambda: tr("Dim Delay"), description="", min_value=0, max_value=11, value_change_step=1, value_map=ONROAD_BRIGHTNESS_TIMER_VALUES, label_callback=_fmt_seconds, inline=True, ) self._idle_close_row = option_item( - param="InteractivityTimeout", title=lambda: tr("Interactivity Timeout"), + param="InteractivityTimeout", title=lambda: tr("Auto-Close Settings"), description=lambda: tr("How long the settings screen may sit untouched before it closes itself."), min_value=0, max_value=120, value_change_step=10, label_callback=lambda v: tr("Default") if not v else _fmt_seconds(v), inline=True, @@ -195,7 +195,7 @@ CHEVRON_INFO_DESCRIPTION = { # param key -> (title fn, description fn) _HUD_TOGGLES = { "BlindSpot": ( - lambda: tr("Show Blind Spot Warnings"), + lambda: tr("Blind Spot Alerts"), lambda: tr("Flashes a side warning whenever the car reports something sitting in your blind spot (BSM-equipped cars only)."), ), "IQExpandedStatus": ( @@ -203,20 +203,20 @@ _HUD_TOGGLES = { lambda: tr("Bring back the classic UI's wide offroad status strip: temperature, vehicle, and Konn3kt state at a glance."), ), "TorqueBar": ( - lambda: tr("Steering Arc"), + lambda: tr("Steering Effort Arc"), lambda: tr("Trace an arc over the road view showing how much steering IQ.Pilot is applying while lateral control runs."), ), "RoadNameToggle": ( - lambda: tr("Display Road Name"), + lambda: tr("Road Name Overlay"), lambda: tr("Show the current road's name over the driving view." "
Requires offline map data for your region to be installed."), ), "ShowTurnSignals": ( - lambda: tr("Display Turn Signals"), + lambda: tr("Blinker Indicators"), lambda: tr("Mirror the car's blinkers as arrows on the driving screen."), ), "RocketFuel": ( - lambda: tr("Real-time Acceleration Bar"), + lambda: tr("Acceleration Meter"), lambda: tr("Draw a bar along the left edge tracking measured acceleration and braking — what the car is actually " "doing right now, not the planner's request."), ), @@ -240,7 +240,7 @@ class VisualsLayout(Widget): } self._chevron_info = multiple_button_item( - title=lambda: tr("Display Metrics Below Chevron"), + title=lambda: tr("Lead Vehicle Readouts"), description="", buttons=[lambda: tr("Off"), lambda: tr("Distance"), lambda: tr("Speed"), lambda: tr("Time"), lambda: tr("All")], param="ChevronInfo", @@ -319,7 +319,7 @@ class IQNetworkUI(NetworkUI): def _set_phase(self, phase: ScanPhase): self._phase = phase running = phase == ScanPhase.RUNNING - self.scan_button.set_text(tr("Scanning...") if running else tr("Scan")) + self.scan_button.set_text(tr("Searching...") if running else tr("Scan")) self.scan_button.set_enabled(not running) # keep the manager's spinner in step with the button, not just the quick scan call self._wifi_manager._scanning = running @@ -397,7 +397,7 @@ class IQMapsLayout(Widget): self._scroller = Scroller(self.items, line_separator=True, spacing=0) def _build_rows(self): - self._mapd_version = text_item(tr("Mapd Version"), lambda: ui_state.params.get("MapdVersion") or "Loading...") + self._mapd_version = text_item(tr("Routing Engine Version"), lambda: ui_state.params.get("MapdVersion") or "Loading...") self._online_maps_toggle = toggle_item( tr("Online On-Screen Maps"), tr("Pull live Mapbox tiles for the on-screen map whenever the device has internet."), @@ -409,11 +409,11 @@ class IQMapsLayout(Widget): "take over the moment connectivity drops. Tiles come down with your selected region."), param="OfflineOSMaps", ) - self._delete_maps_btn = IQListItem(tr("Downloaded Maps"), action_item=WideButtonAction(tr("DELETE"), enabled=True), + self._delete_maps_btn = IQListItem(tr("Stored Maps"), action_item=WideButtonAction(tr("DELETE"), enabled=True), callback=self._confirm_wipe) - self._progress = progress_item(tr("Downloading Map")) + self._progress = progress_item(tr("Fetching Map")) self._tile_progress = progress_item(tr("Downloading Map Tiles")) - self._update_btn = IQListItem(tr("Database Update"), action_item=WideButtonAction(tr("CHECK"), enabled=True), + self._update_btn = IQListItem(tr("Map Database"), action_item=WideButtonAction(tr("CHECK"), enabled=True), callback=self._confirm_db_refresh) self._country_btn = IQListItem(tr("Country"), action_item=WideButtonAction(tr("SELECT"), enabled=True), callback=lambda: self._open_region_picker("Country")) @@ -436,7 +436,7 @@ class IQMapsLayout(Widget): def _start_wipe(self): self._delete_maps_btn.action_item.set_enabled(False) - self._delete_maps_btn.action_item.set_text(tr("DELETING...")) + self._delete_maps_btn.action_item.set_text(tr("REMOVING...")) threading.Thread(target=self._wipe_worker, daemon=True).start() def _wipe_worker(self): @@ -475,7 +475,7 @@ class IQMapsLayout(Widget): def _open_region_picker(self, region_type): btn = self._country_btn if region_type == "Country" else self._state_btn btn.action_item.set_enabled(False) - btn.action_item.set_text(tr("FETCHING...")) + btn.action_item.set_text(tr("LOADING...")) threading.Thread(target=self._region_picker_worker, args=(region_type, btn), daemon=True).start() @staticmethod @@ -554,14 +554,14 @@ class IQMapsLayout(Widget): if failed: self._current_percent = 0.0 - bar_text, btn_text = "0% - Downloading Maps", tr("Error: Invalid download. Retry.") + bar_text, btn_text = "0% - Downloading Maps", tr("Download failed — try again.") elif total > 0 and downloading: self._current_percent = max(0.0, min(100.0, done / total * 100.0)) pct = int(self._current_percent) bar_text, btn_text = f"{pct}% - Downloading Maps", f"{done}/{total} ({pct}%)" else: self._current_percent = 0.0 - bar_text, btn_text = "0% - Downloading Maps", tr("Downloading Maps...") + bar_text, btn_text = "0% - Downloading Maps", tr("Fetching Maps...") self._progress.action_item.update(self._current_percent, bar_text, show_progress=total > 0 and downloading and not failed) @@ -599,7 +599,7 @@ class IQMapsLayout(Widget): dt = datetime.datetime.fromtimestamp(float(ts), tz=datetime.UTC) except (ValueError, TypeError): dt = None - self._update_btn.action_item.set_value(tr("Last checked {}").format(time_ago(dt))) + self._update_btn.action_item.set_value(tr("Checked {}").format(time_ago(dt))) def _update_state(self): now = monotonic() @@ -618,7 +618,7 @@ class IQMapsLayout(Widget): _TIMER_LABELS = { -1: lambda: tr("Off"), 0: lambda: tr("Nudge"), - 1: lambda: tr("Nudgeless"), + 1: lambda: tr("No Nudge"), 2: lambda: f"0.5 {tr('s')}", 3: lambda: f"1 {tr('s')}", 4: lambda: f"2 {tr('s')}", @@ -635,7 +635,7 @@ class LaneChangeSettingsLayout(Widget): def _build_rows(self): self._lane_change_timer = option_item( - title=lambda: tr("Auto Lane Change by Blinker"), + title=lambda: tr("Blinker-Initiated Lane Change"), param="IQLaneChangeTimer", description=lambda: tr("Delay before a blinker-triggered lane change starts on its own — no wheel nudge " "needed once a delay is set (default is Nudge).
Use the blinker for this only " @@ -645,7 +645,7 @@ class LaneChangeSettingsLayout(Widget): ) self._bsm_delay = toggle_item( param="IQLaneChangeBsmDelay", - title=lambda: tr("Auto Lane Change: Delay with Blind Spot"), + title=lambda: tr("Hold Lane Change for Blind Spot"), description=lambda: tr("Hold the automatic lane change while blind spot monitoring reports a car in the " "target lane, releasing it once the lane is clear."), ) @@ -685,7 +685,7 @@ class LaneChangeSettingsLayout(Widget): # (segment label, explanation) — order matches the AolSteeringMode param values SAB_BRAKE_RESPONSE_OPTIONS = [ - (tr("Remain Active"), tr_noop("Remain Active: braking never interrupts steering assistance.")), + (tr("Stay Engaged"), tr_noop("Remain Active: braking never interrupts steering assistance.")), (tr("Standby"), tr_noop("Standby: braking parks steering assistance; it rejoins once you're off the pedal.")), (tr("Disengage"), tr_noop("Disengage: braking shuts steering assistance off entirely.")), ] @@ -849,7 +849,7 @@ class SteeringLayout(Widget): callback=lambda: self._set_current_panel(PanelType.SAB) ) self._lane_change_settings_button = simple_button_item( - button_text=lambda: tr("Customize Lane Change"), + button_text=lambda: tr("Lane Change Options"), button_width=800, callback=lambda: self._set_current_panel(PanelType.LANE_CHANGE) ) @@ -859,7 +859,7 @@ class SteeringLayout(Widget): description="" ) self._lane_turn_desire_toggle = toggle_item( - tr("Use Lane Turn Desires"), + tr("Low-Speed Turn Planning"), tr("If you're driving at 20 mph (32 km/h) or below and have your blinker on," " the car will plan a turn in that direction at the nearest drivable path." " This prevents situations (like at red lights) where the car might plan the wrong turn direction."), @@ -1177,7 +1177,7 @@ class IQDeveloperLayout(DeveloperLayout): self._scroller.add_widget(item) def _initialize_items(self): - self.error_log_btn = button_item(tr("Error Log"), tr("VIEW"), tr("View the error log for IQ.Pilot crashes."), callback=self._on_error_log_clicked) + self.error_log_btn = button_item(tr("Crash Log"), tr("VIEW"), tr("View the error log for IQ.Pilot crashes."), callback=self._on_error_log_clicked) self.items: list = [self.error_log_btn] @@ -1188,7 +1188,7 @@ class IQDeveloperLayout(DeveloperLayout): def _on_error_log_closed(self, result, log_exists): if result == DialogResult.CONFIRM and log_exists: - dialog2 = ConfirmDialog(tr("Would you like to delete this log?"), tr("Yes"), tr("No"), rich=False) + dialog2 = ConfirmDialog(tr("Delete this log?"), tr("Yes"), tr("No"), rich=False) gui_app.set_modal_overlay(dialog2, callback=self._on_delete_confirm) def _on_error_log_clicked(self): @@ -1240,7 +1240,7 @@ class IQSoftwareLayout(SoftwareLayout): def __init__(self): super().__init__() self.disable_updates_toggle = toggle_item( - lambda: tr("Disable Updates"), + lambda: tr("Pause Updates"), description="", initial_state=ui_state.params.get_bool("DisableUpdates"), callback=self._on_disable_updates_toggled, @@ -1273,7 +1273,7 @@ class IQSoftwareLayout(SoftwareLayout): self.disable_updates_toggle.action_item.set_state(ui_state.params.get_bool("DisableUpdates")) def _on_disable_updates_toggled(self, enabled): - dialog = ConfirmDialog(tr("System reboot required for changes to take effect. Reboot now?"), tr("Reboot")) + dialog = ConfirmDialog(tr("This needs a reboot to apply. Restart now?"), tr("Reboot")) gui_app.set_modal_overlay(dialog, callback=self._handle_reboot) def _on_change_install_mode(self): @@ -1388,11 +1388,11 @@ class IQDeviceLayout(DeviceLayout): DeviceLayout._initialize_items(self) # Using dual button with no right button for better alignment - self._always_offroad_btn = self._left_button(lambda: tr("Enable Always Offroad"), self._handle_always_offroad) + self._always_offroad_btn = self._left_button(lambda: tr("Force Offroad Mode"), self._handle_always_offroad) self._force_onroad_btn = self._left_button(lambda: tr("Force On-Road (10 min)"), self._handle_force_onroad) self._max_time_offroad = option_item( - title=lambda: tr("Max Time Offroad"), + title=lambda: tr("Offroad Shutdown Timer"), description=lambda: tr("Powers the device down once it has sat this long with the engine off.\n(30h by default)"), param="MaxTimeOffroad", min_value=0, @@ -1409,7 +1409,7 @@ class IQDeviceLayout(DeviceLayout): ) self._device_wake_mode = multiple_button_item( - title=lambda: tr("Wake Up Behavior"), + title=lambda: tr("Boot State"), description=self.wake_mode_description, param="DeviceBootMode", buttons=[lambda: tr("Default"), lambda: tr("Offroad")], @@ -1420,7 +1420,7 @@ class IQDeviceLayout(DeviceLayout): self._change_language_btn = button_item(lambda: tr("Change Language"), lambda: tr("CHANGE"), callback=self._show_language_dialog) # Silent Mode moved to the settings-hub top bar (bell bubble); this is just the dcam preview now. - self._driver_camera_btn = button_item(lambda: tr("Driver Camera Preview"), lambda: tr("PREVIEW"), + self._driver_camera_btn = button_item(lambda: tr("Driver Camera Check"), lambda: tr("PREVIEW"), callback=self._show_driver_camera) self._reg_and_training = dual_button_item( @@ -1432,9 +1432,9 @@ class IQDeviceLayout(DeviceLayout): self._reg_and_training.action_item.right_button.set_button_style(ButtonStyle.NORMAL) self._onroad_uploads_and_reset_settings = dual_button_item( - left_text=lambda: tr("Onroad Uploads"), + left_text=lambda: tr("Upload While Driving"), left_callback=lambda: ui_state.params.put_bool("OnroadUploads", not ui_state.params.get_bool("OnroadUploads")), - right_text=lambda: tr("Reset Settings"), + right_text=lambda: tr("Restore Defaults"), right_callback=self._reset_settings ) @@ -1535,7 +1535,7 @@ class IQDeviceLayout(DeviceLayout): @staticmethod def _handle_always_offroad(): if ui_state.engaged: - gui_app.set_modal_overlay(alert_dialog(tr("Disengage to Enter Always Offroad Mode"))) + gui_app.set_modal_overlay(alert_dialog(tr("Disengage before forcing offroad"))) return _offroad_mode_state = ui_state.params.get_bool("IQAlwaysOffroad") @@ -1578,7 +1578,7 @@ class IQDeviceLayout(DeviceLayout): @staticmethod def _update_max_time_offroad_label(value: int) -> str: - label = tr("Always On") if value == 0 else f"{value}" + tr("m") if value < 60 else f"{value // 60}" + tr("h") + label = tr("Never Sleep") if value == 0 else f"{value}" + tr("m") if value < 60 else f"{value // 60}" + tr("h") label += tr(" (Default)") if value == 1800 else "" return label @@ -1592,7 +1592,7 @@ class IQDeviceLayout(DeviceLayout): force_onroad_active = force_onroad_until > now # Text & Color - offroad_mode_btn_text = tr("Exit Always Offroad") if always_offroad else tr("Enable Always Offroad") + offroad_mode_btn_text = tr("Exit Offroad Mode") if always_offroad else tr("Force Offroad Mode") offroad_mode_btn_style = ButtonStyle.PRIMARY if always_offroad else ButtonStyle.DANGER self._always_offroad_btn.action_item.left_button.set_text(offroad_mode_btn_text) self._always_offroad_btn.action_item.left_button.set_button_style(offroad_mode_btn_style) @@ -1692,27 +1692,27 @@ class ModelsLayout(Widget): def _initialize_items(self): self.current_model_item = IQListItem( - title=tr("Current Model"), + title=tr("Active Model"), description="", action_item=WideButtonAction(tr("SELECT")), callback=self._handle_current_model_clicked ) - self.supercombo_label = progress_item(tr("Driving Model")) - self.vision_label = progress_item(tr("Vision Model")) - self.policy_label = progress_item(tr("Policy Model")) + self.supercombo_label = progress_item(tr("Combined Model")) + self.vision_label = progress_item(tr("Vision Weights")) + self.policy_label = progress_item(tr("Policy Weights")) - self.refresh_item = button_item(tr("Refresh Model List"), tr("REFRESH"), "", self._on_refresh_models) + self.refresh_item = button_item(tr("Reload Model List"), tr("REFRESH"), "", self._on_refresh_models) self.clear_cache_item = IQListItem( - title=tr("Clear Model Cache"), + title=tr("Purge Model Cache"), description="", action_item=WideButtonAction(tr("CLEAR")), callback=self._clear_cache ) self.redownload_item = button_item(tr("Redownload Current Model"), tr("REDOWNLOAD"), "", self._redownload_model) - self.cancel_download_item = button_item(tr("Cancel Download"), tr("Cancel"), "", self._cancel_model_request) + self.cancel_download_item = button_item(tr("Stop Download"), tr("Cancel"), "", self._cancel_model_request) self.items = [self.current_model_item, self.cancel_download_item, self.supercombo_label, self.vision_label, self.policy_label, self.redownload_item, self.refresh_item, self.clear_cache_item] @@ -1962,7 +1962,7 @@ class ModelsLayout(Widget): folders_list = self._get_folders(favorites) active_ref = self.model_manager.activeBundle.ref if self._has_active_bundle_param() and self.model_manager.activeBundle else "Default" - self.model_dialog = PickerDialog(tr("Select a Model"), folders_list, active_ref, "ModelManager_Favs", + self.model_dialog = PickerDialog(tr("Choose a Model"), folders_list, active_ref, "ModelManager_Favs", get_folders_fn=self._get_folders, on_exit=self._on_model_selected) gui_app.set_modal_overlay(self.model_dialog, callback=self._on_model_selected) @@ -2189,7 +2189,7 @@ class HyundaiSettings(BrandPanel): super().__init__() self.alpha_long_available = False self.longitudinal_tuning_item = multiple_button_item( - tr("Custom Longitudinal Tuning"), "", + tr("Longitudinal Tune Profile"), "", [tr("Off"), tr("Dynamic"), tr("Predictive")], button_width=300, param="HyundaiLongitudinalTuning", inline=False, callback=lambda index: ui_state.params.put("HyundaiLongitudinalTuning", index)) @@ -2231,10 +2231,10 @@ class SubaruSettings(BrandPanel): def __init__(self): super().__init__() self._supported = False - self.stop_and_go_toggle = toggle_item(tr("Stop and Go (Beta)"), "", param="SubaruStopAndGo", + self.stop_and_go_toggle = toggle_item(tr("Creep from Standstill (Beta)"), "", param="SubaruStopAndGo", callback=lambda _: self.update_settings()) self.stop_and_go_manual_parking_brake_toggle = toggle_item( - tr("Stop and Go for Manual Parking Brake (Beta)"), "", + tr("Creep from Standstill — Manual Handbrake (Beta)"), "", param="SubaruStopAndGoManualParkingBrake", callback=lambda _: self.update_settings()) self.items = [self.stop_and_go_toggle, self.stop_and_go_manual_parking_brake_toggle] @@ -2310,7 +2310,7 @@ class ToyotaSettings(BrandPanel): def __init__(self): super().__init__() self.enforce_stock_longitudinal = toggle_item( - lambda: tr("Enforce Factory Longitudinal Control"), + lambda: tr("Keep Factory Gas and Brake"), description=lambda: tr("Keeps gas and brakes with the factory Toyota system; IQ.Pilot steers only."), initial_state=ui_state.params.get_bool("ToyotaEnforceStockLongitudinal"), callback=self._on_toggled, @@ -2503,7 +2503,7 @@ class VehicleSelection: return bundle.get("name", "") if ui_state.CP and ui_state.CP.carFingerprint != "MOCK": return ui_state.CP.carFingerprint - return tr("No vehicle selected") + return tr("No vehicle set") def force(self, platform_name: str) -> bool: data = self.platforms.get(platform_name) @@ -2600,9 +2600,9 @@ class VehiclePicker(Button): _LEGEND = ( - (FingerprintStatus.AUTO, lambda: tr("Fingerprinted automatically")), - (FingerprintStatus.FORCED, lambda: tr("Manually selected fingerprint")), - (FingerprintStatus.NONE, lambda: tr("Not fingerprinted or manually selected")), + (FingerprintStatus.AUTO, lambda: tr("Detected automatically")), + (FingerprintStatus.FORCED, lambda: tr("Chosen manually")), + (FingerprintStatus.NONE, lambda: tr("Undetected and unset")), ) @@ -2619,9 +2619,9 @@ class LegendWidget(Widget): def _render(self, rect): x = rect.x + 20 y = rect.y + 20 - rl.draw_text_ex(self._font, tr("Select vehicle to force fingerprint manually."), rl.Vector2(x, y), 40, 0, ink.CAPTION) + rl.draw_text_ex(self._font, tr("Pin a vehicle to skip auto-detection."), rl.Vector2(x, y), 40, 0, ink.CAPTION) y += 80 - rl.draw_text_ex(self._font, tr("Colors represent vehicle fingerprint status:"), rl.Vector2(x, y), 40, 0, ink.CAPTION) + rl.draw_text_ex(self._font, tr("Colour key for fingerprint state:"), rl.Vector2(x, y), 40, 0, ink.CAPTION) y += 80 active = self._selector.status diff --git a/selfdrive/ui/layouts/settings_hub.py b/selfdrive/ui/layouts/settings_hub.py index bb9c52a..7142f49 100644 --- a/selfdrive/ui/layouts/settings_hub.py +++ b/selfdrive/ui/layouts/settings_hub.py @@ -544,10 +544,10 @@ class SettingsHubLayout(Widget): def _toggle_offroad_prompt(self): if ui_state.engaged: - gui_app.set_modal_overlay(alert_dialog(tr("Disengage to Enter Always Offroad Mode"))) + gui_app.set_modal_overlay(alert_dialog(tr("Disengage before forcing offroad"))) return active = ui_state.params.get_bool("IQAlwaysOffroad") - msg = tr("Are you sure you want to exit Always Offroad mode?") if active else tr("Are you sure you want to enter Always Offroad mode?") + msg = tr("Leave forced-offroad mode now?") if active else tr("Switch the device into forced-offroad mode?") def _confirm(result: int): if result == DialogResult.CONFIRM and not ui_state.engaged: diff --git a/selfdrive/ui/mici/layouts/settings/display.py b/selfdrive/ui/mici/layouts/settings/display.py index e2a16a6..8943605 100644 --- a/selfdrive/ui/mici/layouts/settings/display.py +++ b/selfdrive/ui/mici/layouts/settings/display.py @@ -27,7 +27,7 @@ class DisplayLayoutMici(NavScroller): self._force_mici = BigParamControl("force mici UI", "ForceSmallUI") self._display_bright = MappedParamToggle("display brightness", "Brightness", _DISPLAY_BRIGHT_OPTIONS, _DISPLAY_BRIGHT_VALUES) - self._onroad_bright = MappedParamToggle("onroad brightness", "OnroadScreenOffBrightness", + self._onroad_bright = MappedParamToggle("driving brightness", "OnroadScreenOffBrightness", _ONROAD_BRIGHT_OPTIONS, _ONROAD_BRIGHT_VALUES) self._delay = MappedParamToggle("brightness delay", "OnroadScreenOffTimer", _DELAY_OPTIONS, _DELAY_VALUES) diff --git a/selfdrive/ui/mici/layouts/settings/models.py b/selfdrive/ui/mici/layouts/settings/models.py index 1d24f1a..23fd338 100644 --- a/selfdrive/ui/mici/layouts/settings/models.py +++ b/selfdrive/ui/mici/layouts/settings/models.py @@ -96,10 +96,10 @@ class ModelsLayoutMici(NavScroller): self._redownload_icon = gui_app.texture("icons_mici/settings/device/update.png", 56, 56, keep_aspect_ratio=True) self._reset_icon = gui_app.texture("icons_mici/wheel.png", 56, 56) - self._current = BigButton("current model") + self._current = BigButton("active model") self._current.set_click_callback(self._show_folders) - self._cancel = BigButton("cancel download") + self._cancel = BigButton("stop download") self._cancel.set_click_callback(self._cancel_model_request) self._cancel.set_visible(self._is_downloading) @@ -107,17 +107,17 @@ class ModelsLayoutMici(NavScroller): self._redownload.set_click_callback(self._confirm_redownload_model) self._redownload.set_enabled(self._can_redownload) - self._refresh = BigButton("refresh model list") + self._refresh = BigButton("reload model list") self._refresh.set_click_callback(lambda: ui_state.params.put("ModelManager_LastSyncTime", 0)) - self._supercombo = GreyBigButton("driving model") + self._supercombo = GreyBigButton("combined model") self._supercombo.set_visible(False) - self._vision = GreyBigButton("vision model") + self._vision = GreyBigButton("vision weights") self._vision.set_visible(False) - self._policy = GreyBigButton("policy model") + self._policy = GreyBigButton("policy weights") self._policy.set_visible(False) - self._clear = BigButton("clear model cache") + self._clear = BigButton("purge model cache") self._clear.set_click_callback(self._confirm_clear_cache) self._clear.set_enabled(lambda: ui_state.is_offroad()) @@ -125,7 +125,7 @@ class ModelsLayoutMici(NavScroller): self._sw_delay = MappedParamToggle("manual delay offset", "IQSoftwareSteerDelay", _DELAY_OPTIONS, _DELAY_VALUES) self._sw_delay.set_visible(lambda: not self._steer_delay._checked) - self._lane_turn = BigParamControl("use lane turn desires", "IQLaneTurnDesire") + self._lane_turn = BigParamControl("low-speed turn planning", "IQLaneTurnDesire") self._lane_speed = MappedParamToggle("lane turn speed", "IQLaneTurnValue", _LANE_TURN_OPTIONS, _LANE_TURN_VALUES) self._lane_speed.set_visible(lambda: self._lane_turn._checked) diff --git a/selfdrive/ui/mici/layouts/settings/steering.py b/selfdrive/ui/mici/layouts/settings/steering.py index 2fa864f..70711d2 100644 --- a/selfdrive/ui/mici/layouts/settings/steering.py +++ b/selfdrive/ui/mici/layouts/settings/steering.py @@ -47,7 +47,7 @@ class SabSettingsPanel(NavScroller): self._main_cruise = BigParamControl("Availability While Cruise Changes", "AolMainCruiseAllowed") self._brake = SabBrakeToggle() self._mode = MappedParamToggle("Brake Response Mode", "AolSteeringMode", - ["remain active", "standby", "disengage"], [0, 1, 2]) + ["stay engaged", "standby", "disengage"], [0, 1, 2]) self._scroller.add_widgets([self._main_cruise, self._brake, self._mode]) def show_event(self): @@ -67,7 +67,7 @@ class LaneChangePanel(NavScroller): def __init__(self): super().__init__() self._timer = MappedParamToggle("Auto Lane Change", "IQLaneChangeTimer", - ["off", "nudge", "nudgeless", "0.5 s", "1 s", "2 s", "3 s"], + ["off", "nudge", "no nudge", "0.5 s", "1 s", "2 s", "3 s"], [-1, 0, 1, 2, 3, 4, 5]) self._bsm_delay = BigParamControl("Delay with Blind Spot", "IQLaneChangeBsmDelay") self._continuous = BigParamControl("Continuous Changes", "LaneChangeContinuous") @@ -87,7 +87,7 @@ class LaneChangePanel(NavScroller): class SteeringLayoutMici(NavScroller): - _AOL_MODES = ["remain active", "standby", "disengage"] + _AOL_MODES = ["stay engaged", "standby", "disengage"] def __init__(self): super().__init__() diff --git a/selfdrive/ui/mici/layouts/settings/vehicle.py b/selfdrive/ui/mici/layouts/settings/vehicle.py index 571c575..be0f29d 100644 --- a/selfdrive/ui/mici/layouts/settings/vehicle.py +++ b/selfdrive/ui/mici/layouts/settings/vehicle.py @@ -73,7 +73,7 @@ class VehicleLayoutMici(NavScroller): toggle_callback=self._on_toyota_long) self._hyundai_tuning = MappedParamToggle("hyundai long. tuning", "HyundaiLongitudinalTuning", ["off", "dynamic", "predictive"], [0, 1, 2]) - self._subaru_snag = BigParamControl("stop and go (beta)", "SubaruStopAndGo") + self._subaru_snag = BigParamControl("creep from standstill (beta)", "SubaruStopAndGo") self._subaru_manual = BigParamControl("stop and go manual brake", "SubaruStopAndGoManualParkingBrake") self._vw_pq_hca = BigParamControl("PQ HCA status 7 mode", "pqhca5or7Toggle") self._vw_lateral = BigParamControl("lateral when cruise faulted", "AllowLateralWhenLongUnavailable") diff --git a/selfdrive/ui/mici/layouts/settings/visuals.py b/selfdrive/ui/mici/layouts/settings/visuals.py index 1abbba9..67f7cce 100644 --- a/selfdrive/ui/mici/layouts/settings/visuals.py +++ b/selfdrive/ui/mici/layouts/settings/visuals.py @@ -10,7 +10,7 @@ class VisualsLayoutMici(NavScroller): def __init__(self): super().__init__() self._blind_spot = BigParamControl("Blind Spot Warnings", "BlindSpot") - self._steering_arc = BigParamControl("Steering Arc", "TorqueBar") + self._steering_arc = BigParamControl("Steering Effort Arc", "TorqueBar") self._road_name = BigParamControl("Road Name", "RoadNameToggle") self._turn_signals = BigParamControl("Turn Signals", "ShowTurnSignals") self._accel_bar = BigParamControl("Acceleration Bar", "RocketFuel") diff --git a/system/ui/iqwidgets/widgets/list_view.py b/system/ui/iqwidgets/widgets/list_view.py index 9e7ea55..3736934 100644 --- a/system/ui/iqwidgets/widgets/list_view.py +++ b/system/ui/iqwidgets/widgets/list_view.py @@ -1018,7 +1018,7 @@ class PickerDialog(MultiOptionDialog): self.on_exit = on_exit self.display_func = display_func or (lambda node: node.data.get('display_name', node.ref)) self.search_funcs = search_funcs or [lambda node: node.data.get('display_name', ''), lambda node: node.data.get('short_name', '')] - self.search_title = search_title or tr("Enter search query") + self.search_title = search_title or tr("Type to search") self.search_subtitle = search_subtitle self._search_rect: rl.Rectangle | None = None self._search_pressed = False