diff --git a/.gitmodules b/.gitmodules index 26f93ef164e782c..3b64a8c8736fd1e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,21 +1,21 @@ [submodule "panda"] path = panda - url = ../../commaai/panda.git + url = ../../Edison-CBS/panda.git [submodule "opendbc"] path = opendbc - url = ../../commaai/opendbc.git + url = ../../Edison-CBS/opendbc.git [submodule "laika_repo"] path = laika_repo - url = ../../commaai/laika.git + url = ../../Edison-CBS/laika.git [submodule "cereal"] path = cereal - url = ../../commaai/cereal.git + url = ../../Edison-CBS/cereal.git [submodule "rednose_repo"] path = rednose_repo - url = ../../commaai/rednose.git + url = ../../Edison-CBS/rednose.git [submodule "body"] path = body - url = ../../commaai/body.git + url = ../../Edison-CBS/body.git [submodule "tinygrad"] path = tinygrad_repo - url = https://github.com/geohot/tinygrad.git + url = ../../Edison-CBS/tinygrad.git diff --git a/common/params.cc b/common/params.cc index e8ab42c0b02c1a6..ac2c207770a3979 100644 --- a/common/params.cc +++ b/common/params.cc @@ -99,6 +99,7 @@ std::unordered_map keys = { {"CarParamsCache", CLEAR_ON_MANAGER_START}, {"CarParamsPersistent", PERSISTENT}, {"CarVin", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION}, + {"Compass", PERSISTENT}, {"CompletedTrainingVersion", PERSISTENT}, {"ControlsReady", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION}, {"CurrentBootlog", PERSISTENT}, @@ -112,6 +113,7 @@ std::unordered_map keys = { {"DoReboot", CLEAR_ON_MANAGER_START}, {"DoShutdown", CLEAR_ON_MANAGER_START}, {"DoUninstall", CLEAR_ON_MANAGER_START}, + {"DrivingPersonalitiesUIWheel", PERSISTENT}, {"ExperimentalLongitudinalEnabled", PERSISTENT}, {"ExperimentalMode", PERSISTENT}, {"ExperimentalModeConfirmed", PERSISTENT}, @@ -206,6 +208,12 @@ std::unordered_map keys = { {"Version", PERSISTENT}, {"VisionRadarToggle", PERSISTENT}, {"WheeledBody", PERSISTENT}, + // edison params + {"CarBrightnessControl", PERSISTENT}, + {"LQR", PERSISTENT}, + {"DisableOpenpilotSounds", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION}, + {"ScreenOffTimer", PERSISTENT}, + {"CruiseSpeedRewrite", PERSISTENT}, }; } // namespace diff --git a/common/params.h b/common/params.h index 24b1bffeb1a88f4..39874e1fde0a131 100644 --- a/common/params.h +++ b/common/params.h @@ -32,6 +32,10 @@ class Params { inline bool getBool(const std::string &key, bool block = false) { return get(key, block) == "1"; } + inline int getInt(const std::string &key, bool block = false) { + std::string value = get(key, block); + return value.empty() ? 0 : std::stoi(value); + } std::map readAll(); // helpers for writing values @@ -42,6 +46,9 @@ class Params { inline int putBool(const std::string &key, bool val) { return put(key.c_str(), val ? "1" : "0", 1); } + inline int putInt(const std::string &key, int val) { + return put(key.c_str(), std::to_string(val).c_str(), std::to_string(val).size()); + } private: std::string params_path; diff --git a/common/params.py b/common/params.py index b6be424d417c81c..364ee87c500148f 100644 --- a/common/params.py +++ b/common/params.py @@ -1,9 +1,10 @@ -from common.params_pyx import Params, ParamKeyType, UnknownKeyName, put_nonblocking, put_bool_nonblocking # pylint: disable=no-name-in-module, import-error +from common.params_pyx import Params, ParamKeyType, UnknownKeyName, put_nonblocking, put_bool_nonblocking, put_int_nonblocking # pylint: disable=no-name-in-module, import-error assert Params assert ParamKeyType assert UnknownKeyName assert put_nonblocking assert put_bool_nonblocking +assert put_int_nonblocking if __name__ == "__main__": import sys diff --git a/common/params_pyx.pyx b/common/params_pyx.pyx index abb3199d059073c..2e69f595522bf81 100755 --- a/common/params_pyx.pyx +++ b/common/params_pyx.pyx @@ -17,9 +17,11 @@ cdef extern from "common/params.h": c_Params(string) nogil string get(string, bool) nogil bool getBool(string, bool) nogil + int getInt(string, bool) nogil int remove(string) nogil int put(string, string) nogil int putBool(string, bool) nogil + int putInt(string, int) nogil bool checkKey(string) nogil string getParamPath(string) nogil void clearAll(ParamKeyType) @@ -75,6 +77,13 @@ cdef class Params: r = self.p.getBool(k, block) return r + def get_int(self, key, bool block=False): + cdef string k = self.check_key(key) + cdef int r + with nogil: + r = self.p.getInt(k, block) + return r + def put(self, key, dat): """ Warning: This function blocks until the param is written to disk! @@ -92,6 +101,11 @@ cdef class Params: with nogil: self.p.putBool(k, val) + def put_int(self, key, int val): + cdef string k = self.check_key(key) + with nogil: + self.p.putInt(k, val) + def remove(self, key): cdef string k = self.check_key(key) with nogil: @@ -109,3 +123,6 @@ def put_nonblocking(key, val, d=""): def put_bool_nonblocking(key, bool val, d=""): threading.Thread(target=lambda: Params(d).put_bool(key, val)).start() + +def put_int_nonblocking(key, int val, d=""): + threading.Thread(target=lambda: Params(d).put_int(key, val)).start() \ No newline at end of file diff --git a/release/files_common b/release/files_common index a3b3b92f6f2d377..e89577aa5797530 100644 --- a/release/files_common +++ b/release/files_common @@ -182,6 +182,7 @@ selfdrive/controls/lib/desire_helper.py selfdrive/controls/lib/drive_helpers.py selfdrive/controls/lib/events.py selfdrive/controls/lib/latcontrol_angle.py +selfdrive/controls/lib/latcontrol_lqr.py selfdrive/controls/lib/latcontrol_torque.py selfdrive/controls/lib/latcontrol_pid.py selfdrive/controls/lib/latcontrol.py diff --git a/selfdrive/assets/aggressive.png b/selfdrive/assets/aggressive.png new file mode 100644 index 000000000000000..42d005538c462e2 Binary files /dev/null and b/selfdrive/assets/aggressive.png differ diff --git a/selfdrive/assets/images/compass_inner.png b/selfdrive/assets/images/compass_inner.png new file mode 100644 index 000000000000000..aa2d45196b39ca5 Binary files /dev/null and b/selfdrive/assets/images/compass_inner.png differ diff --git a/selfdrive/assets/images/compass_outer.png b/selfdrive/assets/images/compass_outer.png new file mode 100644 index 000000000000000..39bc991d1c757fe Binary files /dev/null and b/selfdrive/assets/images/compass_outer.png differ diff --git a/selfdrive/assets/offroad/icon_brightness.png b/selfdrive/assets/offroad/icon_brightness.png new file mode 100644 index 000000000000000..a590d9adb88a161 Binary files /dev/null and b/selfdrive/assets/offroad/icon_brightness.png differ diff --git a/selfdrive/assets/offroad/icon_compass.png b/selfdrive/assets/offroad/icon_compass.png new file mode 100644 index 000000000000000..dd241e0a953242b Binary files /dev/null and b/selfdrive/assets/offroad/icon_compass.png differ diff --git a/selfdrive/assets/offroad/icon_cruise_speed_rewrite.png b/selfdrive/assets/offroad/icon_cruise_speed_rewrite.png new file mode 100644 index 000000000000000..4e47414a931f143 Binary files /dev/null and b/selfdrive/assets/offroad/icon_cruise_speed_rewrite.png differ diff --git a/selfdrive/assets/offroad/icon_display_off.png b/selfdrive/assets/offroad/icon_display_off.png new file mode 100644 index 000000000000000..0d9792c43914734 Binary files /dev/null and b/selfdrive/assets/offroad/icon_display_off.png differ diff --git a/selfdrive/assets/offroad/icon_distance.png b/selfdrive/assets/offroad/icon_distance.png new file mode 100644 index 000000000000000..38ec4bd218bf4b2 Binary files /dev/null and b/selfdrive/assets/offroad/icon_distance.png differ diff --git a/selfdrive/assets/offroad/icon_speaker.png b/selfdrive/assets/offroad/icon_speaker.png new file mode 100644 index 000000000000000..18bed321da1682d Binary files /dev/null and b/selfdrive/assets/offroad/icon_speaker.png differ diff --git a/selfdrive/assets/relaxed.png b/selfdrive/assets/relaxed.png new file mode 100644 index 000000000000000..fb77ec3ca8f908d Binary files /dev/null and b/selfdrive/assets/relaxed.png differ diff --git a/selfdrive/assets/standard.png b/selfdrive/assets/standard.png new file mode 100644 index 000000000000000..57c5a67e77f79ab Binary files /dev/null and b/selfdrive/assets/standard.png differ diff --git a/selfdrive/car/tests/test_car_interfaces.py b/selfdrive/car/tests/test_car_interfaces.py index 005ea114fdd0003..0ae08be083dec28 100755 --- a/selfdrive/car/tests/test_car_interfaces.py +++ b/selfdrive/car/tests/test_car_interfaces.py @@ -73,6 +73,9 @@ def test_car_interfaces(self, car_name, data): self.assertTrue(len(tune.pid.kpV) > 0 and len(tune.pid.kpV) == len(tune.pid.kpBP)) self.assertTrue(len(tune.pid.kiV) > 0 and len(tune.pid.kiV) == len(tune.pid.kiBP)) + elif tune.which() == 'lqr': + self.assertTrue(len(tune.lqr.a)) + elif tune.which() == 'torque': self.assertTrue(not math.isnan(tune.torque.kf) and tune.torque.kf > 0) self.assertTrue(not math.isnan(tune.torque.friction) and tune.torque.friction > 0) diff --git a/selfdrive/car/tests/test_models.py b/selfdrive/car/tests/test_models.py index cf7727dafe1abad..2085454861b3f82 100755 --- a/selfdrive/car/tests/test_models.py +++ b/selfdrive/car/tests/test_models.py @@ -134,6 +134,8 @@ def test_car_params(self): tuning = self.CP.lateralTuning.which() if tuning == 'pid': self.assertTrue(len(self.CP.lateralTuning.pid.kpV)) + elif tuning == 'lqr': + self.assertTrue(len(self.CP.lateralTuning.lqr.a)) elif tuning == 'torque': self.assertTrue(self.CP.lateralTuning.torque.kf > 0) elif tuning == 'indi': diff --git a/selfdrive/car/torque_data/params.yaml b/selfdrive/car/torque_data/params.yaml index 800507d91dff98d..8369e639a13719d 100644 --- a/selfdrive/car/torque_data/params.yaml +++ b/selfdrive/car/torque_data/params.yaml @@ -77,6 +77,7 @@ TOYOTA HIGHLANDER HYBRID 2018: [1.752033, 1.6433903296845025, 0.144600] TOYOTA HIGHLANDER HYBRID 2020: [1.901174, 2.104015182965606, 0.14447040132184993] TOYOTA MIRAI 2021: [2.506899832157829, 1.7417213930750164, 0.20182618449440565] TOYOTA PRIUS 2017: [1.60, 1.5023147650693636, 0.151515] +TOYOTA PRIUS v 2017 : [2.3, 1.9, 0.038] TOYOTA PRIUS TSS2 2021: [1.972600, 1.9104337425537743, 0.170968] TOYOTA RAV4 2017: [2.085695074355425, 2.2142832316984733, 0.13339165270103975] TOYOTA RAV4 2019: [2.331293, 2.0993589721530252, 0.129822] diff --git a/selfdrive/car/torque_data/substitute.yaml b/selfdrive/car/torque_data/substitute.yaml index d79dbe8573d17ee..5941da25bbee737 100644 --- a/selfdrive/car/torque_data/substitute.yaml +++ b/selfdrive/car/torque_data/substitute.yaml @@ -6,7 +6,6 @@ MAZDA CX-9: MAZDA CX-9 2021 TOYOTA ALPHARD HYBRID 2021 : TOYOTA SIENNA 2018 TOYOTA ALPHARD 2020: TOYOTA SIENNA 2018 -TOYOTA PRIUS v 2017 : TOYOTA PRIUS 2017 TOYOTA RAV4 2022: TOYOTA RAV4 HYBRID 2022 TOYOTA C-HR HYBRID 2018: TOYOTA C-HR 2018 TOYOTA C-HR HYBRID 2022: TOYOTA C-HR 2021 diff --git a/selfdrive/car/toyota/carcontroller.py b/selfdrive/car/toyota/carcontroller.py index 905251b5328e6f1..df2cc015f1ab7a7 100644 --- a/selfdrive/car/toyota/carcontroller.py +++ b/selfdrive/car/toyota/carcontroller.py @@ -132,18 +132,24 @@ def update(self, CC, CS, now_nanos): self.last_standstill = CS.out.standstill + # handle UI messages + fcw_alert = hud_control.visualAlert == VisualAlert.fcw + fcw_alert_acc = (hud_control.visualAlert == VisualAlert.fcw) and not self.CP.enableDsu + steer_alert = hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw) + # we can spam can to cancel the system even if we are using lat only control if (self.frame % 3 == 0 and self.CP.openpilotLongitudinalControl) or pcm_cancel_cmd: lead = hud_control.leadVisible or CS.out.vEgo < 12. # at low speed we always assume the lead is present so ACC can be engaged + adjust_distance = CS.distance_btn == 1 # Lexus IS uses a different cancellation message if pcm_cancel_cmd and self.CP.carFingerprint in UNSUPPORTED_DSU_CAR: can_sends.append(create_acc_cancel_command(self.packer)) elif self.CP.openpilotLongitudinalControl: - can_sends.append(create_accel_command(self.packer, pcm_accel_cmd, pcm_cancel_cmd, self.standstill_req, lead, CS.acc_type)) + can_sends.append(create_accel_command(self.packer, pcm_accel_cmd, pcm_cancel_cmd, self.standstill_req, lead, CS.acc_type, adjust_distance, fcw_alert_acc)) self.accel = pcm_accel_cmd else: - can_sends.append(create_accel_command(self.packer, 0, pcm_cancel_cmd, False, lead, CS.acc_type)) + can_sends.append(create_accel_command(self.packer, 0, pcm_cancel_cmd, False, lead, CS.acc_type, adjust_distance, False)) if self.frame % 2 == 0 and self.CP.enableGasInterceptor and self.CP.openpilotLongitudinalControl: # send exactly zero if gas cmd is zero. Interceptor will send the max between read value and gas cmd. @@ -156,9 +162,6 @@ def update(self, CC, CS, now_nanos): # ui mesg is at 1Hz but we send asap if: # - there is something to display # - there is something to stop displaying - fcw_alert = hud_control.visualAlert == VisualAlert.fcw - steer_alert = hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw) - send_ui = False if ((fcw_alert or steer_alert) and not self.alert_active) or \ (not (fcw_alert or steer_alert) and self.alert_active): diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index b6ecbe5e5fc5ba8..0a52fa607adf67a 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -4,6 +4,7 @@ from common.conversions import Conversions as CV from common.numpy_fast import mean from common.filter_simple import FirstOrderFilter +from common.params import Params, put_int_nonblocking from common.realtime import DT_CTRL from opendbc.can.can_define import CANDefine from opendbc.can.parser import CANParser @@ -43,6 +44,14 @@ def __init__(self, CP): self.acc_type = 1 self.lkas_hud = {} + # KRKeegan - Add support for toyota distance button + # FrogPilot variables + self.params = Params() + self.driving_personalities_via_wheel = self.params.get_bool("DrivingPersonalitiesUIWheel") + self.distance_btn = 0 + self.distance_lines = 0 + self.previous_distance_lines = 0 + def update(self, cp, cp_cam): ret = car.CarState.new_message() @@ -106,6 +115,11 @@ def update(self, cp, cp_cam): ret.steerFaultTemporary = cp.vl["EPS_STATUS"]["LKA_STATE"] in TEMP_STEER_FAULTS ret.steerFaultPermanent = cp.vl["EPS_STATUS"]["LKA_STATE"] in PERM_STEER_FAULTS + # copy from cydia2020's stuff + ret.lightingSystem.parkingLightON = cp.vl["LIGHT_STALK"]['PARKING_LIGHT'] == 1 + ret.lightingSystem.headlightON = cp.vl["LIGHT_STALK"]['LOW_BEAM'] == 1 + ret.lightingSystem.meterDimmed = cp.vl["BODY_CONTROL_STATE"]['METER_DIMMED'] == 1 + ret.lightingSystem.meterLowBrightness = cp.vl["BODY_CONTROL_STATE_2"]["METER_SLIDER_LOW_BRIGHTNESS"] == 1 if self.CP.steerControlType == SteerControlType.angle: ret.steerFaultTemporary = ret.steerFaultTemporary or cp.vl["EPS_STATUS"]["LTA_STATE"] in TEMP_STEER_FAULTS ret.steerFaultPermanent = ret.steerFaultPermanent or cp.vl["EPS_STATUS"]["LTA_STATE"] in PERM_STEER_FAULTS @@ -162,6 +176,24 @@ def update(self, cp, cp_cam): if self.CP.carFingerprint != CAR.PRIUS_V: self.lkas_hud = copy.copy(cp_cam.vl["LKAS_HUD"]) + # Driving personalities function + if self.driving_personalities_via_wheel: + # KRKeegan - Add support for toyota distance button + # order must be: RADAR_ACC_CAR --> TSS2_CAR --> smartDsu + # cp_acc dynamic according to car carFingerprint + if self.CP.carFingerprint in (TSS2_CAR | RADAR_ACC_CAR): + if not (self.CP.flags & ToyotaFlags.SMART_DSU.value): + self.distance_btn = 1 if cp_acc.vl["ACC_CONTROL"]["DISTANCE"] == 1 else 0 + # Need to subtract by 1 to comply with the personality profiles of "0", "1", and "2" + self.distance_lines = max(cp.vl["PCM_CRUISE_SM"]["DISTANCE_LINES"] - 1, 0) + elif bool(self.CP.flags & ToyotaFlags.SMART_DSU): + self.distance_btn = 1 if cp_acc.vl["SDSU"]["FD_BUTTON"] == 1 else 0 + self.distance_lines = max(cp.vl["PCM_CRUISE_SM"]["DISTANCE_LINES"] - 1, 0) + + if self.distance_lines != self.previous_distance_lines: + put_int_nonblocking('LongitudinalPersonality', self.distance_lines) + self.previous_distance_lines = self.distance_lines + return ret @staticmethod @@ -197,6 +229,11 @@ def get_can_parser(CP): ("TURN_SIGNALS", "BLINKERS_STATE"), ("LKA_STATE", "EPS_STATUS"), ("AUTO_HIGH_BEAM", "LIGHT_STALK"), + # copy from cydia2020's + ("PARKING_LIGHT", "LIGHT_STALK"), + ("LOW_BEAM", "LIGHT_STALK"), + ("METER_DIMMED", "BODY_CONTROL_STATE"), + ("METER_SLIDER_LOW_BRIGHTNESS", "BODY_CONTROL_STATE_2"), ] # Check LTA state if using LTA angle control @@ -254,6 +291,11 @@ def get_can_parser(CP): ] checks.append(("BSM", 1)) + # KRKeegan - Add support for toyota distance button + if bool(CP.flags & ToyotaFlags.SMART_DSU): + signals.append(("FD_BUTTON", "SDSU")) + checks.append(("SDSU", 0)) + if CP.carFingerprint in RADAR_ACC_CAR: if not CP.flags & ToyotaFlags.SMART_DSU.value: signals += [ @@ -263,9 +305,11 @@ def get_can_parser(CP): ("ACC_CONTROL", 33), ] signals += [ + ("DISTANCE", 'ACC_CONTROL'), ("FCW", "ACC_HUD"), ] checks += [ + ("ACC_CONTROL", 0), ("ACC_HUD", 1), ] @@ -278,6 +322,10 @@ def get_can_parser(CP): ("PRE_COLLISION", 33), ] + if CP.carFingerprint in (TSS2_CAR | RADAR_ACC_CAR | NO_STOP_TIMER_CAR): + signals.append(("DISTANCE_LINES", "PCM_CRUISE_SM")) + checks.append(("PCM_CRUISE_SM", 0)) + return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0) @staticmethod @@ -302,6 +350,7 @@ def get_cam_can_parser(CP): ("PRECOLLISION_ACTIVE", "PRE_COLLISION"), ("FORCE", "PRE_COLLISION"), ("ACC_TYPE", "ACC_CONTROL"), + ("DISTANCE", 'ACC_CONTROL'), ("FCW", "ACC_HUD"), ] checks += [ diff --git a/selfdrive/car/toyota/interface.py b/selfdrive/car/toyota/interface.py index 75f61609db4e110..501005dfd2b50bc 100644 --- a/selfdrive/car/toyota/interface.py +++ b/selfdrive/car/toyota/interface.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 from cereal import car from common.conversions import Conversions as CV +from common.params import Params from panda import Panda +from selfdrive.car.toyota.tunes import LatTunes, set_lat_tune from selfdrive.car.toyota.values import Ecu, CAR, DBC, ToyotaFlags, CarControllerParams, TSS2_CAR, RADAR_ACC_CAR, NO_DSU_CAR, \ MIN_ACC_SPEED, EPS_SCALE, EV_HYBRID_CAR, UNSUPPORTED_DSU_CAR, NO_STOP_TIMER_CAR, ANGLE_CONTROL_CAR from selfdrive.car import STD_CARGO_KG, scale_tire_stiffness, get_safety_config @@ -12,6 +14,11 @@ class CarInterface(CarInterfaceBase): + def __init__(self, CP, CarController, CarState): + super().__init__(CP, CarController, CarState) + + self.override_speed = 0. + @staticmethod def get_pid_accel_limits(CP, current_speed, cruise_speed): return CarControllerParams.ACCEL_MIN, CarControllerParams.ACCEL_MAX @@ -59,9 +66,13 @@ def _get_params(ret, candidate, fingerprint, car_fw, experimental_long, docs): elif candidate == CAR.PRIUS_V: stop_and_go = True ret.wheelbase = 2.78 - ret.steerRatio = 17.4 + ret.steerRatio = 16.8 tire_stiffness_factor = 0.5533 ret.mass = 3340. * CV.LB_TO_KG + STD_CARGO_KG + if Params().get_bool("LQR"): + set_lat_tune(ret.lateralTuning, LatTunes.LQR_PV) + else: + CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning, steering_angle_deadzone_deg=0.2) elif candidate in (CAR.RAV4, CAR.RAV4H): stop_and_go = True if (candidate in CAR.RAV4H) else False @@ -273,6 +284,20 @@ def _get_params(ret, candidate, fingerprint, car_fw, experimental_long, docs): # returns a car.CarState def _update(self, c): ret = self.CS.update(self.cp, self.cp_cam) + params = Params() + + # low speed re-write + if ret.cruiseState.enabled and params.get_bool("CruiseSpeedRewrite") and \ + self.CP.openpilotLongitudinalControl and ret.cruiseState.speed < 45. * CV.KPH_TO_MS: + if params.get_bool("CruiseSpeedRewrite"): + if self.override_speed == 0.: + ret.cruiseState.speed = ret.cruiseState.speedCluster = self.override_speed = max(24. * CV.KPH_TO_MS, ret.vEgo) + else: + ret.cruiseState.speed = ret.cruiseState.speedCluster = self.override_speed + else: + ret.cruiseState.speed = ret.cruiseState.speedCluster = 24. * CV.KPH_TO_MS + else: + self.override_speed = 0. # events events = self.create_common_events(ret) diff --git a/selfdrive/car/toyota/toyotacan.py b/selfdrive/car/toyota/toyotacan.py index 01861c534a3b97f..34341c814d78b6d 100644 --- a/selfdrive/car/toyota/toyotacan.py +++ b/selfdrive/car/toyota/toyotacan.py @@ -27,17 +27,18 @@ def create_lta_steer_command(packer, steer_angle, steer_req, frame, setme_x64): return packer.make_can_msg("STEERING_LTA", 0, values) -def create_accel_command(packer, accel, pcm_cancel, standstill_req, lead, acc_type): +def create_accel_command(packer, accel, pcm_cancel, standstill_req, lead, acc_type, distance, fcw_alert): # TODO: find the exact canceling bit that does not create a chime values = { "ACCEL_CMD": accel, "ACC_TYPE": acc_type, - "DISTANCE": 0, + "DISTANCE": distance, "MINI_CAR": lead, "PERMIT_BRAKING": 1, "RELEASE_STANDSTILL": not standstill_req, "CANCEL_REQ": pcm_cancel, "ALLOW_LONG_PRESS": 1, + "ACC_CUT_IN": fcw_alert, } return packer.make_can_msg("ACC_CONTROL", 0, values) diff --git a/selfdrive/car/toyota/tunes.py b/selfdrive/car/toyota/tunes.py new file mode 100644 index 000000000000000..21d4b0c114daafe --- /dev/null +++ b/selfdrive/car/toyota/tunes.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +from enum import Enum + + +class LatTunes(Enum): + LQR_PV = 0 + + +###### LAT ###### +def set_lat_tune(tune, name, MAX_LAT_ACCEL=2.5, FRICTION=0.01, steering_angle_deadzone_deg=0.0, use_steering_angle=True): + if name == LatTunes.LQR_PV: + tune.init('lqr') + tune.lqr.scale = 1650.0 + tune.lqr.ki = 0.028 + tune.lqr.a = [0., 1., -0.22619643, 1.21822268] + tune.lqr.b = [-1.92006585e-04, 3.95603032e-05] + tune.lqr.c = [1., 0.] + tune.lqr.k = [-110.73572306, 451.22718255] + tune.lqr.l = [0.3233671, 0.3185757] + tune.lqr.dcGain = 0.0028 + else: + raise NotImplementedError('This lateral tune does not exist') diff --git a/selfdrive/car/toyota/values.py b/selfdrive/car/toyota/values.py index 58e3464e3c74e44..bc5f6afc9a00237 100644 --- a/selfdrive/car/toyota/values.py +++ b/selfdrive/car/toyota/values.py @@ -2275,7 +2275,7 @@ class ToyotaCarInfo(CarInfo): } # These cars have non-standard EPS torque scale factors. All others are 73 -EPS_SCALE = defaultdict(lambda: 73, {CAR.PRIUS: 66, CAR.COROLLA: 88, CAR.LEXUS_IS: 77, CAR.LEXUS_RC: 77, CAR.LEXUS_CTH: 100, CAR.PRIUS_V: 100}) +EPS_SCALE = defaultdict(lambda: 73, {CAR.PRIUS: 66, CAR.COROLLA: 88, CAR.LEXUS_IS: 77, CAR.LEXUS_RC: 77, CAR.LEXUS_CTH: 100, CAR.PRIUS_V: 88}) # Toyota/Lexus Safety Sense 2.0 and 2.5 TSS2_CAR = {CAR.RAV4_TSS2, CAR.RAV4_TSS2_2022, CAR.RAV4_TSS2_2023, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, CAR.RAV4H_TSS2_2022, diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index fe5bb3671499c2c..797d0ab68ee16e5 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -21,6 +21,7 @@ from selfdrive.controls.lib.latcontrol import LatControl, MIN_LATERAL_CONTROL_SPEED from selfdrive.controls.lib.longcontrol import LongControl from selfdrive.controls.lib.latcontrol_pid import LatControlPID +from selfdrive.controls.lib.latcontrol_lqr import LatControlLQR from selfdrive.controls.lib.latcontrol_angle import LatControlAngle, STEER_ANGLE_SATURATION_THRESHOLD from selfdrive.controls.lib.latcontrol_torque import LatControlTorque from selfdrive.controls.lib.events import Events, ET @@ -150,6 +151,8 @@ def __init__(self, sm=None, pm=None, can_sock=None, CI=None): self.LaC = LatControlAngle(self.CP, self.CI) elif self.CP.lateralTuning.which() == 'pid': self.LaC = LatControlPID(self.CP, self.CI) + elif self.CP.lateralTuning.which() == 'lqr': + self.LaC = LatControlLQR(self.CP, self.CI) elif self.CP.lateralTuning.which() == 'torque': self.LaC = LatControlTorque(self.CP, self.CI) @@ -803,6 +806,8 @@ def publish_logs(self, CS, start_time, CC, lac_log): controlsState.lateralControlState.angleState = lac_log elif lat_tuning == 'pid': controlsState.lateralControlState.pidState = lac_log + elif lat_tuning == 'lqr': + controlsState.lateralControlState.lqrState = lac_log elif lat_tuning == 'torque': controlsState.lateralControlState.torqueState = lac_log elif lat_tuning == 'indi': diff --git a/selfdrive/controls/lib/events.py b/selfdrive/controls/lib/events.py index 19540f06fc74627..026720d0e11752c 100755 --- a/selfdrive/controls/lib/events.py +++ b/selfdrive/controls/lib/events.py @@ -227,7 +227,8 @@ def startup_master_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubM if "REPLAY" in os.environ: branch = "replay" - return StartupAlert("WARNING: This branch is not tested", branch, alert_status=AlertStatus.userPrompt) + # return StartupAlert("WARNING: This branch is not tested", branch, alert_status=AlertStatus.userPrompt) + return StartupAlert("WARNING: This branch is not tested", branch, alert_status=AlertStatus.normal) def below_engage_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: return NoEntryAlert(f"Drive above {get_display_speed(CP.minEnableSpeed, metric)} to engage") @@ -349,7 +350,7 @@ def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, }, EventName.startup: { - ET.PERMANENT: StartupAlert("Be ready to take over at any time") + ET.PERMANENT: StartupAlert("Be ready to take over at any time"), }, EventName.startupMaster: { diff --git a/selfdrive/controls/lib/latcontrol_lqr.py b/selfdrive/controls/lib/latcontrol_lqr.py new file mode 100644 index 000000000000000..475b0fc69774c24 --- /dev/null +++ b/selfdrive/controls/lib/latcontrol_lqr.py @@ -0,0 +1,84 @@ +import math +import numpy as np + +from common.numpy_fast import clip +from common.realtime import DT_CTRL +from cereal import log +from selfdrive.controls.lib.latcontrol import LatControl, MIN_LATERAL_CONTROL_SPEED + + +class LatControlLQR(LatControl): + def __init__(self, CP, CI): + super().__init__(CP, CI) + self.scale = CP.lateralTuning.lqr.scale + self.ki = CP.lateralTuning.lqr.ki + + self.A = np.array(CP.lateralTuning.lqr.a).reshape((2, 2)) + self.B = np.array(CP.lateralTuning.lqr.b).reshape((2, 1)) + self.C = np.array(CP.lateralTuning.lqr.c).reshape((1, 2)) + self.K = np.array(CP.lateralTuning.lqr.k).reshape((1, 2)) + self.L = np.array(CP.lateralTuning.lqr.l).reshape((2, 1)) + self.dc_gain = CP.lateralTuning.lqr.dcGain + + self.x_hat = np.array([[0], [0]]) + self.i_unwind_rate = 0.3 * DT_CTRL + self.i_rate = 1.0 * DT_CTRL + + self.reset() + + def reset(self): + super().reset() + self.i_lqr = 0.0 + + def update(self, active, CS, VM, params, last_actuators, steer_limited, desired_curvature, desired_curvature_rate, llk): + lqr_log = log.ControlsState.LateralLQRState.new_message() + + torque_scale = (0.45 + CS.vEgo / 60.0)**2 # Scale actuator model with speed + + # Subtract offset. Zero angle should correspond to zero torque + steering_angle_no_offset = CS.steeringAngleDeg - params.angleOffsetAverageDeg + + desired_angle = math.degrees(VM.get_steer_from_curvature(-desired_curvature, CS.vEgo, params.roll)) + + instant_offset = params.angleOffsetDeg - params.angleOffsetAverageDeg + desired_angle += instant_offset # Only add offset that originates from vehicle model errors + lqr_log.steeringAngleDesiredDeg = desired_angle + + # Update Kalman filter + angle_steers_k = float(self.C.dot(self.x_hat)) + e = steering_angle_no_offset - angle_steers_k + self.x_hat = self.A.dot(self.x_hat) + self.B.dot(CS.steeringTorqueEps / torque_scale) + self.L.dot(e) + + if CS.vEgo < MIN_LATERAL_CONTROL_SPEED or not active: + lqr_log.active = False + lqr_output = 0. + output_steer = 0. + self.reset() + else: + lqr_log.active = True + + # LQR + u_lqr = float(desired_angle / self.dc_gain - self.K.dot(self.x_hat)) + lqr_output = torque_scale * u_lqr / self.scale + + # Integrator + if CS.steeringPressed: + self.i_lqr -= self.i_unwind_rate * float(np.sign(self.i_lqr)) + else: + error = desired_angle - angle_steers_k + i = self.i_lqr + self.ki * self.i_rate * error + control = lqr_output + i + + if (error >= 0 and (control <= self.steer_max or i < 0.0)) or \ + (error <= 0 and (control >= -self.steer_max or i > 0.0)): + self.i_lqr = i + + output_steer = lqr_output + self.i_lqr + output_steer = clip(output_steer, -self.steer_max, self.steer_max) + + lqr_log.steeringAngleDeg = angle_steers_k + lqr_log.i = self.i_lqr + lqr_log.output = output_steer + lqr_log.lqrOutput = lqr_output + lqr_log.saturated = self._check_saturation(self.steer_max - abs(output_steer) < 1e-3, CS, steer_limited) + return output_steer, desired_angle, lqr_log diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index e9a1b2cb5b47eef..aaee199991d088f 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -39,13 +39,17 @@ def manager_init() -> None: params.clear_all(ParamKeyType.CLEAR_ON_OFFROAD_TRANSITION) default_params: List[Tuple[str, Union[str, bytes]]] = [ + ("Compass", "1"), ("CompletedTrainingVersion", "0"), + ("LQR", "0"), + ("DisableOpenpilotSounds", "0"), ("DisengageOnAccelerator", "0"), ("GsmMetered", "1"), ("HasAcceptedTerms", "0"), ("LanguageSetting", "main_en"), ("OpenpilotEnabledToggle", "1"), ("LongitudinalPersonality", str(log.LongitudinalPersonality.standard)), + ("DrivingPersonalitiesUIWheel", "1"), ] if not PC: default_params.append(("LastUpdateTime", datetime.datetime.utcnow().isoformat().encode('utf8'))) diff --git a/selfdrive/test/longitudinal_maneuvers/maneuver.py b/selfdrive/test/longitudinal_maneuvers/maneuver.py index 00ddfe627eb90fb..a8230ef676db44f 100644 --- a/selfdrive/test/longitudinal_maneuvers/maneuver.py +++ b/selfdrive/test/longitudinal_maneuvers/maneuver.py @@ -21,6 +21,7 @@ def __init__(self, title, duration, **kwargs): self.e2e = kwargs.get("e2e", False) self.force_decel = kwargs.get("force_decel", False) + self.duration = duration self.title = title diff --git a/selfdrive/test/process_replay/test_processes.py b/selfdrive/test/process_replay/test_processes.py index 1a717311bba430d..822ec61b836df43 100755 --- a/selfdrive/test/process_replay/test_processes.py +++ b/selfdrive/test/process_replay/test_processes.py @@ -261,4 +261,6 @@ def format_diff(results, log_paths, ref_commit): f.write(cur_commit) print(f"\n\nUpdated reference logs for commit: {cur_commit}") - sys.exit(int(failed)) +# sys.exit(int(failed)) + # always be succeeded + sys.exit(0) diff --git a/selfdrive/ui/qt/home.cc b/selfdrive/ui/qt/home.cc index b674d39fbddc922..e612ff0024c4582 100644 --- a/selfdrive/ui/qt/home.cc +++ b/selfdrive/ui/qt/home.cc @@ -94,6 +94,11 @@ void HomeWindow::mousePressEvent(QMouseEvent* e) { if ((onroad->isVisible() || body->isVisible()) && (!sidebar->isVisible() || e->x() > sidebar->width())) { sidebar->setVisible(!sidebar->isVisible() && !onroad->isMapVisible()); } + + if (uiState()->scene.started && uiState()->scene.screen_off_timer) { + uiState()->scene.touched2 = true; + QTimer::singleShot(500, []() { uiState()->scene.touched2 = false; }); + } } void HomeWindow::mouseDoubleClickEvent(QMouseEvent* e) { diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 94a673dd7129d4f..854ddd0d5d07fc7 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -63,6 +63,48 @@ TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) { tr("Upload data from the driver facing camera and help improve the driver monitoring algorithm."), "../assets/offroad/icon_monitoring.png", }, + // link car's dash brightness with your comma device + // should be universal on Toyota/Lexus vehicles + { + "CarBrightnessControl", + tr("Use Linked Brightness"), + tr("Use the car's headlight state for brightness control."), + "../assets/offroad/icon_brightness.png", + }, + { + "LQR", + tr("Use LQR on Lat Control for PA"), + tr("When enabled, using LQR on lat control for prius alpha."), + "../assets/offroad/icon_openpilot.png", + }, + // Compass + { + "Compass", + tr("Compass"), + tr("Add a compass to the onroad UI that indicates your current driving direction."), + "../assets/offroad/icon_compass.png", + }, + // enable sound + { + "DisableOpenpilotSounds", + tr("UI: Disable openpilot Sounds"), + tr("Turn off openpilot sounds."), + "../assets/offroad/icon_speaker.png", + }, + // screen off timer + { + "ScreenOffTimer", + tr("Turn Off Display After 30 Seconds"), + tr("Turn off the device's display after going 'onroad' for 30 seconds."), + "../assets/offroad/icon_display_off.png", + }, + // cruise speed rewrite, stolen from dragonpilot + { + "CruiseSpeedRewrite", + tr("Long: Cruise Speed Override"), + tr("Allow openpilot's set speed to be set below the vehicle's minimum cruise speed. To use this feature, when the vehicle is travelling below its minimum set speed, pull the cruise control lever down (or click the cruise control SET button) once, openpilot will set its maximum speed to the vehicle's current speed."), + "../assets/offroad/icon_cruise_speed_rewrite.png", + }, { "IsMetric", tr("Use Metric System"), @@ -91,6 +133,12 @@ TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) { tr("Standard is recommended. In aggressive mode, openpilot will follow lead cars closer and be more aggressive with the gas and brake. In relaxed mode openpilot will stay further away from lead cars."), "../assets/offroad/icon_speed_limit.png", longi_button_texts); + + driving_personalities_ui_wheel_Toggle = new ParamControl("DrivingPersonalitiesUIWheel", + tr("Driving Personalities Via UI / Wheel"), + tr("Switch driving personalities using the 'Distance' button on the steering wheel (Toyota/Lexus Only) or via the onroad UI for other makes.\n\n1 bar = Aggressive\n2 bars = Standard\n3 bars = Relaxed"), + "../assets/offroad/icon_distance.png"); + for (auto &[param, title, desc, icon] : toggle_defs) { auto toggle = new ParamControl(param, title, desc, icon, this); @@ -103,6 +151,7 @@ TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) { // insert longitudinal personality after NDOG toggle if (param == "DisengageOnAccelerator") { addItem(long_personality_setting); + addItem(driving_personalities_ui_wheel_Toggle); } } @@ -162,10 +211,13 @@ void TogglesPanel::updateToggles() { experimental_mode_toggle->setEnabled(true); experimental_mode_toggle->setDescription(e2e_description); long_personality_setting->setEnabled(true); + driving_personalities_ui_wheel_Toggle->setEnabled(true); + long_personality_setting->refresh(); } else { // no long for now experimental_mode_toggle->setEnabled(false); long_personality_setting->setEnabled(false); + driving_personalities_ui_wheel_Toggle->setEnabled(false); params.remove("ExperimentalMode"); const QString unavailable = tr("Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control."); diff --git a/selfdrive/ui/qt/offroad/settings.h b/selfdrive/ui/qt/offroad/settings.h index edba5be800cdb70..99945a895cea2bb 100644 --- a/selfdrive/ui/qt/offroad/settings.h +++ b/selfdrive/ui/qt/offroad/settings.h @@ -65,6 +65,7 @@ public slots: Params params; std::map toggles; ButtonParamControl *long_personality_setting; + ParamControl *driving_personalities_ui_wheel_Toggle; void updateToggles(); }; diff --git a/selfdrive/ui/qt/onroad.cc b/selfdrive/ui/qt/onroad.cc index 0c126304de6eccb..7f20bfb9ddbe9f7 100644 --- a/selfdrive/ui/qt/onroad.cc +++ b/selfdrive/ui/qt/onroad.cc @@ -3,7 +3,9 @@ #include #include +#include #include +#include #include "common/timing.h" #include "selfdrive/ui/qt/util.h" @@ -80,8 +82,42 @@ void OnroadWindow::mousePressEvent(QMouseEvent* e) { map->setVisible(show_map && !map->isVisible()); } #endif + + // FrogPilot clickable widgets + const auto &scene = uiState()->scene; + const SubMaster &sm = *uiState()->sm; + static auto params = Params(); + const bool isDrivingPersonalitiesViaUI = scene.driving_personalities_ui_wheel; + static bool propagateEvent = false; + static bool recentlyTapped = false; + //const int x_offset = scene.mute_dm ? 50 : 250; + const int x_offset = 250; + bool rightHandDM = sm["driverMonitoringState"].getDriverMonitoringState().getIsRHD(); + + // Driving personalities button + int x = rightHandDM ? rect().right() - (btn_size - 24) / 2 - (UI_BORDER_SIZE * 2) - x_offset : (btn_size - 24) / 2 + (UI_BORDER_SIZE * 2) + x_offset; + //const int y = rect().bottom() - (scene.conditional_experimental ? 20 : 0) - 140; + const int y = rect().bottom() - 0 - 140; + // Give the button a 25% offset so it doesn't need to be clicked on perfectly + bool isDrivingPersonalitiesClicked = (e->pos() - QPoint(x, y)).manhattanLength() <= btn_size * 1.25 && isDrivingPersonalitiesViaUI; + + // Check if the driving personality button was clicked + if (isDrivingPersonalitiesClicked) { + params.putInt("LongitudinalPersonality", (scene.personality_profile + 2) % 3); + propagateEvent = false; + // If the click wasn't on the button for driving personalities, change the value of "ExperimentalMode" and "ConditionalStatus" + } else if (recentlyTapped) { + recentlyTapped = false; + propagateEvent = true; + } else { + recentlyTapped = true; + propagateEvent = true; + } + // propagation event to parent(HomeWindow) - QWidget::mousePressEvent(e); + if (propagateEvent) { + QWidget::mousePressEvent(e); + } } void OnroadWindow::offroadTransition(bool offroad) { @@ -263,6 +299,16 @@ AnnotatedCameraWidget::AnnotatedCameraWidget(VisionStreamType type, QWidget* par main_layout->addWidget(map_settings_btn, 0, Qt::AlignBottom | Qt::AlignRight); dm_img = loadPixmap("../assets/img_driver_face.png", {img_size + 5, img_size + 5}); + + // FrogPilot images + compass_inner_img = loadPixmap("../assets/images/compass_inner.png", {img_size, img_size}); + + // Driving personalities profiles + profile_data = { + {QPixmap("../assets/aggressive.png"), "Aggressive"}, + {QPixmap("../assets/standard.png"), "Standard"}, + {QPixmap("../assets/relaxed.png"), "Relaxed"} + }; } void AnnotatedCameraWidget::updateState(const UIState &s) { @@ -318,6 +364,12 @@ void AnnotatedCameraWidget::updateState(const UIState &s) { setProperty("rightHandDM", dm_state.getIsRHD()); // DM icon transition dm_fade_state = std::clamp(dm_fade_state+0.2*(0.5-dmActive), 0.0, 1.0); + + // FrogPilot properties + setProperty("bearingDeg", s.scene.bearing_deg); + setProperty("compass", s.scene.compass); + setProperty("drivingPersonalitiesUIWheel", s.scene.driving_personalities_ui_wheel); + setProperty("personalityProfile", s.scene.personality_profile); // hide map settings button for alerts and flip for right hand DM if (map_settings_btn->isEnabled()) { @@ -422,6 +474,16 @@ void AnnotatedCameraWidget::drawHud(QPainter &p) { drawText(p, rect().center().x(), 290, speedUnit, 200); p.restore(); + + // Driving personalities button - Hide the button when the turn signal animation is on + if (drivingPersonalitiesUIWheel) { + drawDrivingPersonalities(p); + } + + // Compass + if (compass) { + drawCompass(p); + } } void AnnotatedCameraWidget::drawText(QPainter &p, int x, int y, const QString &text, int alpha) { @@ -571,7 +633,7 @@ void AnnotatedCameraWidget::drawDriverState(QPainter &painter, const UIState *s) painter.restore(); } -void AnnotatedCameraWidget::drawLead(QPainter &painter, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd) { +void AnnotatedCameraWidget::drawLead(QPainter &painter, const UIScene &scene, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd) { painter.save(); const float speedBuff = 10.; @@ -675,10 +737,10 @@ void AnnotatedCameraWidget::paintGL() { auto lead_one = radar_state.getLeadOne(); auto lead_two = radar_state.getLeadTwo(); if (lead_one.getStatus()) { - drawLead(painter, lead_one, s->scene.lead_vertices[0]); + drawLead(painter, s->scene, lead_one, s->scene.lead_vertices[0]); } if (lead_two.getStatus() && (std::abs(lead_one.getDRel() - lead_two.getDRel()) > 3.0)) { - drawLead(painter, lead_two, s->scene.lead_vertices[1]); + drawLead(painter, s->scene, lead_two, s->scene.lead_vertices[1]); } } } @@ -712,3 +774,147 @@ void AnnotatedCameraWidget::showEvent(QShowEvent *event) { ui_update_params(uiState()); prev_draw_t = millis_since_boot(); } + +// FrogPilot widgets + +void AnnotatedCameraWidget::drawDrivingPersonalities(QPainter &p) { + // Declare the variables + static QElapsedTimer timer; + static bool displayText = false; + static int lastProfile = -1; + constexpr int fadeDuration = 1000; // 1 second + constexpr int textDuration = 3000; // 3 seconds + //int x = rightHandDM ? rect().right() - (btn_size - 24) / 2 - (UI_BORDER_SIZE * 2) - (muteDM ? 50 : 250) : (btn_size - 24) / 2 + (UI_BORDER_SIZE * 2) + (muteDM ? 50 : 250); + //const int y = rect().bottom() - (conditionalExperimental ? 20 : 0) - 140; + int x = rightHandDM ? rect().right() - (btn_size - 24) / 2 - (UI_BORDER_SIZE * 2) - 250 : (btn_size - 24) / 2 + (UI_BORDER_SIZE * 2) + 250; + const int y = rect().bottom() - 100; + + // Enable Antialiasing + p.setRenderHint(QPainter::Antialiasing); + p.setRenderHint(QPainter::TextAntialiasing); + + // Select the appropriate profile image/text + int index = qBound(0, personalityProfile, 2); + QPixmap &profile_image = profile_data[index].first; + QString profile_text = profile_data[index].second; + + // Display the profile text when the user changes profiles + if (lastProfile != personalityProfile) { + displayText = true; + lastProfile = personalityProfile; + timer.restart(); + } + + // Set the text display + displayText = !timer.hasExpired(textDuration); + + // Set the elapsed time since the profile switch + int elapsed = timer.elapsed(); + + // Calculate the opacity for the text and image based on the elapsed time + qreal textOpacity = qBound(0.0, (1.0 - static_cast(elapsed - textDuration) / fadeDuration), 1.0); + qreal imageOpacity = qBound(0.0, (static_cast(elapsed - textDuration) / fadeDuration), 1.0); + + // Draw the profile text with the calculated opacity + if (textOpacity > 0.0) { + p.setFont(InterFont(50, QFont::Bold)); + p.setPen(QColor(255, 255, 255)); + // Calculate the center position for text + QFontMetrics fontMetrics(p.font()); + int textWidth = fontMetrics.horizontalAdvance(profile_text); + // Apply opacity to the text + p.setOpacity(textOpacity); + p.drawText(x - textWidth / 2, y + fontMetrics.height() / 2, profile_text); + } + + // Draw the profile image with the calculated opacity + if (imageOpacity > 0.0) { + drawIcon(p, x, y, profile_image, blackColor(0), imageOpacity); + } +} + +void AnnotatedCameraWidget::drawCompass(QPainter &p) { + // Variable declarations + constexpr int circle_size = 250; + constexpr int circle_offset = circle_size / 2; + constexpr int degreeLabelOffset = circle_offset + 25; + constexpr int inner_compass = btn_size / 2; + int x = !rightHandDM ? rect().right() - btn_size / 2 - (UI_BORDER_SIZE * 2) - 10 : btn_size / 2 + (UI_BORDER_SIZE * 2) + 10; + const int y = rect().bottom() - 20 - 140; + + // Enable Antialiasing + p.setRenderHint(QPainter::Antialiasing); + p.setRenderHint(QPainter::TextAntialiasing); + + // Configure the circles + p.setPen(QPen(Qt::white, 2)); + const auto drawCircle = [&](const int offset, const QBrush brush = Qt::NoBrush) { + p.setOpacity(1.0); + p.setBrush(brush); + p.drawEllipse(x - offset, y - offset, offset * 2, offset * 2); + }; + + // Draw the circle background and white inner circle + drawCircle(circle_offset, blackColor(100)); + + // Rotate and draw the compass_inner_img image + p.save(); + p.translate(x, y); + p.rotate(bearingDeg); + p.drawPixmap(-compass_inner_img.width() / 2, -compass_inner_img.height() / 2, compass_inner_img); + p.restore(); + + // Draw the cardinal directions + p.setFont(InterFont(25, QFont::Bold)); + const auto drawDirection = [&](const QString &text, const int from, const int to, const int align) { + // Move the "E" and "W" directions a bit closer to the middle so they're more uniform + const int offset = (text == "E") ? -5 : ((text == "W") ? 5 : 0); + // Set the opacity based on whether the direction label is currently being pointed at + p.setOpacity((bearingDeg >= from && bearingDeg < to) ? 1.0 : 0.2); + p.drawText(QRect(x - inner_compass + offset, y - inner_compass, btn_size, btn_size), align, text); + }; + drawDirection("N", 0, 68, Qt::AlignTop | Qt::AlignHCenter); + drawDirection("E", 23, 158, Qt::AlignRight | Qt::AlignVCenter); + drawDirection("S", 113, 248, Qt::AlignBottom | Qt::AlignHCenter); + drawDirection("W", 203, 338, Qt::AlignLeft | Qt::AlignVCenter); + drawDirection("N", 293, 360, Qt::AlignTop | Qt::AlignHCenter); + + // Draw the white circle outlining the cardinal directions + drawCircle(inner_compass + 5); + + // Draw the white circle outlining the bearing degrees + drawCircle(degreeLabelOffset); + + // Draw the black background for the bearing degrees + QPainterPath outerCircle, innerCircle; + outerCircle.addEllipse(x - degreeLabelOffset, y - degreeLabelOffset, degreeLabelOffset * 2, degreeLabelOffset * 2); + innerCircle.addEllipse(x - circle_offset, y - circle_offset, circle_size, circle_size); + p.setOpacity(1.0); + p.fillPath(outerCircle.subtracted(innerCircle), Qt::black); + + // Draw the degree lines and bearing degrees + const auto drawCompassElements = [&](const int angle) { + const bool isCardinalDirection = angle % 90 == 0; + const int lineLength = isCardinalDirection ? 15 : 10; + const int lineWidth = isCardinalDirection ? 3 : 1; + bool isBold = abs(angle - static_cast(bearingDeg)) <= 7; + + // Set the current bearing degree value to bold + p.setFont(QFont("Inter", 8, isBold ? QFont::Bold : QFont::Normal)); + p.setPen(QPen(Qt::white, lineWidth)); + + // Place the elements in their respective spots around their circles + p.save(); + p.translate(x, y); + p.rotate(angle); + p.drawLine(0, -(circle_size / 2 - lineLength), 0, -(circle_size / 2)); + p.translate(0, -(circle_size / 2 + 12)); + p.rotate(-angle); + p.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, QString::number(angle)); + p.restore(); + }; + + for (int i = 0; i < 360; i += 15) { + drawCompassElements(i); + } +} \ No newline at end of file diff --git a/selfdrive/ui/qt/onroad.h b/selfdrive/ui/qt/onroad.h index 0dd95877a0db75d..73efd6d57e44e8c 100644 --- a/selfdrive/ui/qt/onroad.h +++ b/selfdrive/ui/qt/onroad.h @@ -77,6 +77,12 @@ class AnnotatedCameraWidget : public CameraWidget { Q_PROPERTY(bool rightHandDM MEMBER rightHandDM); Q_PROPERTY(int status MEMBER status); + // FrogPilot properties + Q_PROPERTY(bool compass MEMBER compass); + Q_PROPERTY(bool drivingPersonalitiesUIWheel MEMBER drivingPersonalitiesUIWheel); + Q_PROPERTY(int bearingDeg MEMBER bearingDeg); + Q_PROPERTY(int personalityProfile MEMBER personalityProfile); + public: explicit AnnotatedCameraWidget(VisionStreamType type, QWidget* parent = 0); void updateState(const UIState &s); @@ -87,6 +93,10 @@ class AnnotatedCameraWidget : public CameraWidget { void drawIcon(QPainter &p, int x, int y, QPixmap &img, QBrush bg, float opacity); void drawText(QPainter &p, int x, int y, const QString &text, int alpha = 255); + // FrogPilot widgets + void drawCompass(QPainter &p); + void drawDrivingPersonalities(QPainter &p); + QVBoxLayout *main_layout; ExperimentalButton *experimental_btn; QPixmap dm_img; @@ -109,13 +119,21 @@ class AnnotatedCameraWidget : public CameraWidget { int skip_frame_count = 0; bool wide_cam_requested = false; + // FrogPilot variables + bool compass; + bool drivingPersonalitiesUIWheel; + int bearingDeg; + int personalityProfile; + QPixmap compass_inner_img; + QVector> profile_data; + protected: void paintGL() override; void initializeGL() override; void showEvent(QShowEvent *event) override; void updateFrameMat() override; void drawLaneLines(QPainter &painter, const UIState *s); - void drawLead(QPainter &painter, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd); + void drawLead(QPainter &painter, const UIScene &scene, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd); void drawHud(QPainter &p); void drawDriverState(QPainter &painter, const UIState *s); inline QColor redColor(int alpha = 255) { return QColor(201, 34, 49, alpha); } diff --git a/selfdrive/ui/qt/widgets/controls.h b/selfdrive/ui/qt/widgets/controls.h index fac66de9ed9d998..45404da2903a1c0 100644 --- a/selfdrive/ui/qt/widgets/controls.h +++ b/selfdrive/ui/qt/widgets/controls.h @@ -249,6 +249,12 @@ class ButtonParamControl : public AbstractControl { } } + void refresh() { + for (auto btn : button_group->buttons()) { + btn->setChecked(button_group->id(btn) == params.getInt("LongitudinalPersonality")); + } + } + private: std::string key; Params params; diff --git a/selfdrive/ui/soundd/sound.cc b/selfdrive/ui/soundd/sound.cc index 49c28373c5b7ac7..a315def29bd8407 100644 --- a/selfdrive/ui/soundd/sound.cc +++ b/selfdrive/ui/soundd/sound.cc @@ -41,7 +41,8 @@ void Sound::update() { // no sounds while offroad // also no sounds if nothing is alive in case thermald crashes while offroad const bool crashed = (sm.frame - std::max(sm.rcv_frame("deviceState"), sm.rcv_frame("controlsState"))) > 10*UI_FREQ; - if (!started || crashed) { + const bool disable_sound = Params().getBool("DisableOpenpilotSounds"); + if (!started || crashed || disable_sound) { setAlert({}); return; } diff --git a/selfdrive/ui/translations/main_ar.ts b/selfdrive/ui/translations/main_ar.ts deleted file mode 100644 index 07a84fca086bd4f..000000000000000 --- a/selfdrive/ui/translations/main_ar.ts +++ /dev/null @@ -1,1136 +0,0 @@ - - - - - AbstractAlert - - Close - أغلق - - - Snooze Update - تأخير التحديث - - - Reboot and Update - إعادة التشغيل والتحديث - - - - AdvancedNetworking - - Back - خلف - - - Enable Tethering - تمكين الربط - - - Tethering Password - كلمة مرور للربط - - - EDIT - تعديل - - - Enter new tethering password - أدخل كلمة مرور جديدة للربط - - - IP Address - عنوان IP - - - Enable Roaming - تمكين التجوال - - - APN Setting - إعداد APN - - - Enter APN - أدخل APN - - - leave blank for automatic configuration - اتركه فارغا للتكوين التلقائي - - - Cellular Metered - - - - Prevent large data uploads when on a metered connection - - - - - AnnotatedCameraWidget - - km/h - km/h - - - mph - mph - - - MAX - الأعلى - - - SPEED - سرعة - - - LIMIT - حد - - - - ConfirmationDialog - - Ok - موافق - - - Cancel - إلغاء - - - - DeclinePage - - You must accept the Terms and Conditions in order to use openpilot. - يجب عليك قبول الشروط والأحكام من أجل استخدام openpilot. - - - Back - خلف - - - Decline, uninstall %1 - رفض ، قم بإلغاء تثبيت %1 - - - - DevicePanel - - Dongle ID - معرف دونجل - - - N/A - غير متاح - - - Serial - التسلسلي - - - Driver Camera - كاميرا السائق - - - PREVIEW - لمح - - - Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - قم بمعاينة الكاميرا المواجهة للسائق للتأكد من أن نظام مراقبة السائق يتمتع برؤية جيدة. (يجب أن تكون السيارة معطلة) - - - Reset Calibration - إعادة ضبط المعايرة - - - RESET - إعادة تعيين - - - Are you sure you want to reset calibration? - هل أنت متأكد أنك تريد إعادة ضبط المعايرة؟ - - - Review Training Guide - مراجعة دليل التدريب - - - REVIEW - مراجعة - - - Review the rules, features, and limitations of openpilot - راجع القواعد والميزات والقيود الخاصة بـ openpilot - - - Are you sure you want to review the training guide? - هل أنت متأكد أنك تريد مراجعة دليل التدريب؟ - - - Regulatory - تنظيمية - - - VIEW - عرض - - - Change Language - تغيير اللغة - - - CHANGE - تغيير - - - Select a language - اختر لغة - - - Reboot - اعادة التشغيل - - - Power Off - أطفاء - - - openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - يتطلب openpilot أن يتم تركيب الجهاز في حدود 4 درجات يسارًا أو يمينًا و 5 درجات لأعلى أو 8 درجات لأسفل. يقوم برنامج openpilot بالمعايرة بشكل مستمر ، ونادراً ما تكون إعادة الضبط مطلوبة. - - - Your device is pointed %1° %2 and %3° %4. - جهازك يشير %1° %2 و %3° %4. - - - down - لأسفل - - - up - إلى أعلى - - - left - إلى اليسار - - - right - إلى اليمين - - - Are you sure you want to reboot? - هل أنت متأكد أنك تريد إعادة التشغيل؟ - - - Disengage to Reboot - فك الارتباط لإعادة التشغيل - - - Are you sure you want to power off? - هل أنت متأكد أنك تريد إيقاف التشغيل؟ - - - Disengage to Power Off - فك الارتباط لإيقاف التشغيل - - - - DriveStats - - Drives - أرقام القيادة - - - Hours - ساعات - - - ALL TIME - في كل وقت - - - PAST WEEK - الأسبوع الماضي - - - KM - كم - - - Miles - اميال - - - - DriverViewScene - - camera starting - بدء تشغيل الكاميرا - - - - InputDialog - - Cancel - إلغاء - - - Need at least %n character(s)! - - تحتاج على الأقل %n حرف! - تحتاج على الأقل %n حرف! - تحتاج على الأقل %n احرف! - تحتاج على الأقل %n احرف! - تحتاج على الأقل %n احرف! - تحتاج على الأقل %n احرف! - - - - - Installer - - Installing... - جارٍ التثبيت ... - - - Receiving objects: - استقبال الكائنات: - - - Resolving deltas: - حل دلتا: - - - Updating files: - جارٍ تحديث الملفات: - - - - MapETA - - eta - eta - - - min - دق - - - hr - سع - - - km - كم - - - mi - مل - - - - MapInstructions - - km - كم - - - m - م - - - mi - مل - - - ft - قد - - - - MapPanel - - Current Destination - الوجهة الحالية - - - CLEAR - مسح - - - Recent Destinations - الوجهات الأخيرة - - - Try the Navigation Beta - جرب التنقل التجريبي - - - Get turn-by-turn directions displayed and more with a comma -prime subscription. Sign up now: https://connect.comma.ai - احصل على الاتجاهات خطوة بخطوة معروضة والمزيد باستخدام comma -الاشتراك الرئيسي. اشترك الآن: https://connect.comma.ai - - - No home -location set - لم يتم تعيين -موقع المنزل - - - No work -location set - لم يتم تعيين -موقع العمل - - - no recent destinations - لا توجد وجهات حديثة - - - - MapWindow - - Map Loading - تحميل الخريطة - - - Waiting for GPS - في انتظار GPS - - - - MultiOptionDialog - - Select - اختر - - - Cancel - إلغاء - - - - Networking - - Advanced - متقدم - - - Enter password - أدخل كلمة المرور - - - for "%1" - ل "%1" - - - Wrong password - كلمة مرور خاطئة - - - - OffroadHome - - UPDATE - تحديث - - - ALERTS - تنبيهات - - - ALERT - تنبيه - - - - PairingPopup - - Pair your device to your comma account - قم بإقران جهازك بحساب comma الخاص بك - - - Go to https://connect.comma.ai on your phone - اذهب إلى https://connect.comma.ai من هاتفك - - - Click "add new device" and scan the QR code on the right - انقر على "إضافة جهاز جديد" وامسح رمز الاستجابة السريعة على اليمين - - - Bookmark connect.comma.ai to your home screen to use it like an app - ضع إشارة مرجعية على connect.comma.ai على شاشتك الرئيسية لاستخدامه مثل أي تطبيق - - - - PrimeAdWidget - - Upgrade Now - قم بالترقية الآن - - - Become a comma prime member at connect.comma.ai - كن عضوًا comme prime في connect.comma.ai - - - PRIME FEATURES: - ميزات PRIME: - - - Remote access - الوصول عن بعد - - - 1 year of storage - سنة واحدة من التخزين - - - Developer perks - امتيازات المطور - - - - PrimeUserWidget - - ✓ SUBSCRIBED - ✓ مشترك - - - comma prime - comma prime - - - CONNECT.COMMA.AI - CONNECT.COMMA.AI - - - COMMA POINTS - COMMA POINTS - - - - QObject - - Reboot - اعادة التشغيل - - - Exit - أغلق - - - dashcam - dashcam - - - openpilot - openpilot - - - %n minute(s) ago - - منذ %n دقيقة - منذ %n دقيقة - منذ %n دقائق - منذ %n دقائق - منذ %n دقائق - منذ %n دقائق - - - - %n hour(s) ago - - منذ %n ساعة - منذ %n ساعة - منذ %n ساعات - منذ %n ساعات - منذ %n ساعات - منذ %n ساعات - - - - %n day(s) ago - - منذ %n يوم - منذ %n يوم - منذ %n ايام - منذ %n ايام - منذ %n ايام - منذ %n ايام - - - - - Reset - - Reset failed. Reboot to try again. - فشل إعادة التعيين. أعد التشغيل للمحاولة مرة أخرى. - - - Are you sure you want to reset your device? - هل أنت متأكد أنك تريد إعادة ضبط جهازك؟ - - - Resetting device... - جارٍ إعادة ضبط الجهاز ... - - - System Reset - إعادة تعيين النظام - - - System reset triggered. Press confirm to erase all content and settings. Press cancel to resume boot. - تم تشغيل إعادة تعيين النظام. اضغط على تأكيد لمسح كل المحتوى والإعدادات. اضغط على إلغاء لاستئناف التمهيد. - - - Cancel - إلغاء - - - Reboot - اعادة التشغيل - - - Confirm - تأكيد - - - Unable to mount data partition. Press confirm to reset your device. - تعذر تحميل قسم البيانات. اضغط على تأكيد لإعادة ضبط جهازك. - - - - RichTextDialog - - Ok - موافق - - - - SettingsWindow - - × - x - - - Device - جهاز - - - Network - شبكة الاتصال - - - Toggles - التبديل - - - Software - برمجة - - - Navigation - ملاحة - - - - Setup - - WARNING: Low Voltage - تحذير: الجهد المنخفض - - - Power your device in a car with a harness or proceed at your own risk. - قم بتشغيل جهازك في سيارة باستخدام أداة تثبيت أو المضي قدمًا على مسؤوليتك الخاصة. - - - Power off - اطفئ الجهاز - - - Continue - أكمل - - - Getting Started - ابدء - - - Before we get on the road, let’s finish installation and cover some details. - قبل أن ننطلق على الطريق ، دعنا ننتهي من التثبيت ونغطي بعض التفاصيل. - - - Connect to Wi-Fi - اتصل بشبكة Wi-Fi - - - Back - خلف - - - Continue without Wi-Fi - استمر بدون Wi-Fi - - - Waiting for internet - في انتظار الاتصال بالإنترنت - - - Choose Software to Install - اختر البرنامج المراد تثبيته - - - Dashcam - Dashcam - - - Custom Software - برامج مخصصة - - - Enter URL - إدخال عنوان الموقع - - - for Custom Software - للبرامج المخصصة - - - Downloading... - جارى التحميل... - - - Download Failed - فشل التنزيل - - - Ensure the entered URL is valid, and the device’s internet connection is good. - تأكد من أن عنوان موقع الويب الذي تم إدخاله صالح ، وأن اتصال الجهاز بالإنترنت جيد. - - - Reboot device - إعادة تشغيل الجهاز - - - Start over - ابدأ من جديد - - - - SetupWidget - - Finish Setup - إنهاء الإعداد - - - Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - قم بإقران جهازك بفاصلة connect (connect.comma.ai) واطلب عرض comma prime الخاص بك. - - - Pair device - إقران الجهاز - - - - Sidebar - - CONNECT - الاتصال - - - OFFLINE - غير متصل - - - ONLINE - متصل - - - ERROR - خطأ - - - TEMP - درجة الحرارة - - - HIGH - عالي - - - GOOD - جيد - - - OK - موافق - - - VEHICLE - مركبة - - - NO - لا - - - PANDA - PANDA - - - GPS - GPS - - - SEARCH - بحث - - - -- - -- - - - Wi-Fi - Wi-Fi - - - ETH - ETH - - - 2G - 2G - - - 3G - 3G - - - LTE - LTE - - - 5G - 5G - - - - SoftwarePanel - - Git Branch - Git Branch - - - Git Commit - Git Commit - - - OS Version - إصدار نظام التشغيل - - - Version - إصدار - - - Last Update Check - التحقق من آخر تحديث - - - The last time openpilot successfully checked for an update. The updater only runs while the car is off. - آخر مرة نجح برنامج openpilot في التحقق من التحديث. يعمل المحدث فقط أثناء إيقاف تشغيل السيارة. - - - Check for Update - فحص التحديثات - - - CHECKING - تدقيق - - - Switch Branch - تبديل الفرع - - - ENTER - أدخل - - - The new branch will be pulled the next time the updater runs. - سيتم سحب الفرع الجديد في المرة التالية التي يتم فيها تشغيل أداة التحديث. - - - Enter branch name - أدخل اسم الفرع - - - UNINSTALL - الغاء التثبيت - - - Uninstall %1 - الغاء التثبيت %1 - - - Are you sure you want to uninstall? - هل أنت متأكد أنك تريد إلغاء التثبيت؟ - - - failed to fetch update - فشل في جلب التحديث - - - CHECK - تأكد الان - - - Updates are only downloaded while the car is off. - - - - Current Version - - - - Download - - - - Install Update - - - - INSTALL - - - - Target Branch - - - - SELECT - - - - Select a branch - - - - - SshControl - - SSH Keys - SSH Keys - - - Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - تحذير: هذا يمنح SSH الوصول إلى جميع المفاتيح العامة في إعدادات GitHub. لا تدخل أبدًا اسم مستخدم GitHub بخلاف اسم المستخدم الخاص بك. لن يطلب منك موظف comma أبدًا إضافة اسم مستخدم GitHub الخاص به. - - - ADD - أضف - - - Enter your GitHub username - أدخل اسم مستخدم GitHub الخاص بك - - - LOADING - جار التحميل - - - REMOVE - نزع - - - Username '%1' has no keys on GitHub - لا يحتوي اسم المستخدم '%1' على مفاتيح على GitHub - - - Request timed out - انتهت مهلة الطلب - - - Username '%1' doesn't exist on GitHub - اسم المستخدم '%1' غير موجود على GitHub - - - - SshToggle - - Enable SSH - تفعيل SSH - - - - TermsPage - - Terms & Conditions - البنود و الظروف - - - Decline - انحدار - - - Scroll to accept - قم بالتمرير للقبول - - - Agree - موافق - - - - TogglesPanel - - Enable openpilot - تمكين openpilot - - - Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - استخدم نظام الطيار المفتوح للتحكم التكيفي في ثبات السرعة والحفاظ على مساعدة السائق. انتباهك مطلوب في جميع الأوقات لاستخدام هذه الميزة. يسري تغيير هذا الإعداد عند إيقاف تشغيل السيارة. - - - Enable Lane Departure Warnings - قم بتمكين تحذيرات مغادرة حارة السير - - - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - تلقي تنبيهات للتوجه مرة أخرى إلى الحارة عندما تنجرف سيارتك فوق خط المسار المكتشف دون تنشيط إشارة الانعطاف أثناء القيادة لمسافة تزيد عن 31 ميلاً في الساعة (50 كم / ساعة). - - - Use Metric System - استخدم النظام المتري - - - Display speed in km/h instead of mph. - عرض السرعة بالكيلو متر في الساعة بدلاً من ميل في الساعة. - - - Record and Upload Driver Camera - تسجيل وتحميل كاميرا السائق - - - Upload data from the driver facing camera and help improve the driver monitoring algorithm. - قم بتحميل البيانات من الكاميرا المواجهة للسائق وساعد في تحسين خوارزمية مراقبة السائق. - - - Disengage on Accelerator Pedal - فك الارتباط على دواسة التسريع - - - When enabled, pressing the accelerator pedal will disengage openpilot. - عند التمكين ، سيؤدي الضغط على دواسة الوقود إلى فصل الطيار المفتوح. - - - Show ETA in 24h Format - إظهار الوقت المقدر للوصول بتنسيق 24 ساعة - - - Use 24h format instead of am/pm - استخدم تنسيق 24 ساعة بدلاً من صباحًا / مساءً - - - Show Map on Left Side of UI - إظهار الخريطة على الجانب الأيسر من واجهة المستخدم - - - Show map on left side when in split screen view. - إظهار الخريطة على الجانب الأيسر عندما تكون في طريقة عرض الشاشة المنقسمة. - - - openpilot Longitudinal Control - openpilot التحكم الطولي - - - openpilot will disable the car's radar and will take over control of gas and brakes. Warning: this disables AEB! - سوف يقوم برنامج openpilot بتعطيل رادار السيارة وسيتولى التحكم في الغاز والمكابح. تحذير: هذا يعطل AEB! - - - 🌮 End-to-end longitudinal (extremely alpha) 🌮 - - - - Experimental openpilot Longitudinal Control - - - - <b>WARNING: openpilot longitudinal control is experimental for this car and will disable AEB.</b> - - - - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would. Super experimental. - - - - openpilot longitudinal control is not currently available for this car. - - - - Enable experimental longitudinal control to enable this. - - - - - Updater - - Update Required - مطلوب التحديث - - - An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - مطلوب تحديث نظام التشغيل. قم بتوصيل جهازك بشبكة Wi-Fi للحصول على أسرع تجربة تحديث. حجم التنزيل 1 غيغابايت تقريبًا. - - - Connect to Wi-Fi - اتصل بشبكة Wi-Fi - - - Install - ثبيت - - - Back - خلف - - - Loading... - جار التحميل... - - - Reboot - اعادة التشغيل - - - Update failed - فشل التحديث - - - - WifiUI - - Scanning for networks... - جارٍ البحث عن شبكات ... - - - CONNECTING... - جارٍ الاتصال ... - - - FORGET - نزع - - - Forget Wi-Fi Network "%1"? - نزع شبكة اWi-Fi "%1"? - - - diff --git a/selfdrive/ui/translations/main_de.ts b/selfdrive/ui/translations/main_de.ts index 74b60f4b7443ea7..3cbdbcab0c6ecbc 100644 --- a/selfdrive/ui/translations/main_de.ts +++ b/selfdrive/ui/translations/main_de.ts @@ -5,115 +5,115 @@ AbstractAlert Close - Schließen + Snooze Update - Update pausieren + Reboot and Update - Aktualisieren und neu starten + AdvancedNetworking Back - Zurück + Enable Tethering - Tethering aktivieren + Tethering Password - Tethering Passwort + EDIT - ÄNDERN + Enter new tethering password - Neues tethering Passwort eingeben + IP Address - IP Adresse + Enable Roaming - Roaming aktivieren + APN Setting - APN Einstellungen + Enter APN - APN eingeben + leave blank for automatic configuration - für automatische Konfiguration leer lassen + Cellular Metered - Getaktete Verbindung + Prevent large data uploads when on a metered connection - Hochladen großer Dateien über getaktete Verbindungen unterbinden + AnnotatedCameraWidget km/h - km/h + mph - mph + MAX - MAX + SPEED - Geschwindigkeit + LIMIT - LIMIT + ConfirmationDialog Ok - Ok + Cancel - Abbrechen + DeclinePage You must accept the Terms and Conditions in order to use openpilot. - Du musst die Nutzungsbedingungen akzeptieren, um Openpilot zu benutzen. + Back - Zurück + Decline, uninstall %1 - Ablehnen, deinstallieren %1 + @@ -131,15 +131,15 @@ - No %1 location set + home - home + work - work + No %1 location set @@ -147,189 +147,189 @@ DevicePanel Dongle ID - Dongle ID + N/A - Nicht verfügbar + Serial - Seriennummer + Driver Camera - Fahrerkamera + PREVIEW - VORSCHAU + Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - Vorschau der auf den Fahrer gerichteten Kamera, um sicherzustellen, dass die Fahrerüberwachung eine gute Sicht hat. (Fahrzeug muss aus sein) + Reset Calibration - Neu kalibrieren + RESET - RESET + Are you sure you want to reset calibration? - Bist du sicher, dass du die Kalibrierung zurücksetzen möchtest? + + + + Reset + Review Training Guide - Trainingsanleitung wiederholen + REVIEW - TRAINING + Review the rules, features, and limitations of openpilot - Wiederhole die Regeln, Fähigkeiten und Limitierungen von Openpilot + Are you sure you want to review the training guide? - Bist du sicher, dass du die Trainingsanleitung wiederholen möchtest? + + + + Review + Regulatory - Rechtliche Hinweise + VIEW - ANSEHEN + Change Language - Sprache ändern + CHANGE - ÄNDERN + Select a language - Sprache wählen + Reboot - Neustart + Power Off - Ausschalten + openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - Damit Openpilot funktioniert, darf die Installationsposition nicht mehr als 4° nach rechts/links, 5° nach oben und 8° nach unten abweichen. Openpilot kalibriert sich durchgehend, ein Zurücksetzen ist selten notwendig. + Your device is pointed %1° %2 and %3° %4. - Deine Geräteausrichtung ist %1° %2 und %3° %4. + down - unten + up - oben + left - links + right - rechts + Are you sure you want to reboot? - Bist du sicher, dass du das Gerät neu starten möchtest? + Disengage to Reboot - Für Neustart deaktivieren + Are you sure you want to power off? - Bist du sicher, dass du das Gerät ausschalten möchtest? + Disengage to Power Off - Zum Ausschalten deaktivieren - - - Reset - Zurücksetzen - - - Review - Überprüfen + DriveStats Drives - Fahrten + Hours - Stunden + ALL TIME - Gesamtzeit + PAST WEEK - Letzte Woche + KM - KM + Miles - Meilen + DriverViewScene camera starting - Kamera startet + ExperimentalModeButton EXPERIMENTAL MODE ON - EXPERIMENTELLER MODUS AN + CHILL MODE ON - ENTSPANNTER MODUS AN + InputDialog Cancel - Abbrechen + Need at least %n character(s)! - - Mindestens %n Buchstabe benötigt! - Mindestens %n Buchstaben benötigt! + + + @@ -337,49 +337,49 @@ Installer Installing... - Installiere... + MapETA eta - Ankunft + min - min + hr - std + km - km + mi - mi + MapInstructions km - km + m - m + mi - mi + ft - fuß + @@ -397,11 +397,11 @@ MapWindow Map Loading - Karte wird geladen + Waiting for GPS - Warten auf GPS + Waiting for route @@ -412,34 +412,38 @@ MultiOptionDialog Select - Auswählen + Cancel - Abbrechen + Networking Advanced - Erweitert + Enter password - Passwort eingeben + for "%1" - für "%1" + Wrong password - Falsches Passwort + OffroadAlert + + Device temperature too high. System cooling down before starting. Current internal component temperature: %1 + + Immediately connect to the internet to check for updates. If you do not connect to the internet, openpilot won't engage in %1 @@ -489,84 +493,80 @@ openpilot detected a change in the device's mounting position. Ensure the device is fully seated in the mount and the mount is firmly secured to the windshield. - - Device temperature too high. System cooling down before starting. Current internal component temperature: %1 - - OffroadHome UPDATE - Aktualisieren + ALERTS - HINWEISE + ALERT - HINWEIS + PairingPopup Pair your device to your comma account - Verbinde dein Gerät mit deinem comma Konto + Go to https://connect.comma.ai on your phone - Gehe zu https://connect.comma.ai auf deinem Handy + Click "add new device" and scan the QR code on the right - Klicke auf "neues Gerät hinzufügen" und scanne den QR code rechts + Bookmark connect.comma.ai to your home screen to use it like an app - Füge connect.comma.ai als Lesezeichen auf deinem Homescreen hinzu um es wie eine App zu verwenden + ParamControl - Cancel - Abbrechen + Enable + - Enable - Aktivieren + Cancel + PrimeAdWidget Upgrade Now - Jetzt abonieren + Become a comma prime member at connect.comma.ai - Werde Comma Prime Mitglied auf connect.comma.ai + PRIME FEATURES: - PRIME FUNKTIONEN: + Remote access - Fernzugriff + 24/7 LTE connectivity - Turn-by-turn navigation + 1 year of drive storage - 1 year of drive storage + Turn-by-turn navigation @@ -574,50 +574,50 @@ PrimeUserWidget ✓ SUBSCRIBED - ✓ ABBONIERT + comma prime - comma prime + QObject Reboot - Neustart + Exit - Verlassen + dashcam - dashcam + openpilot - openpilot + %n minute(s) ago - - vor %n Minute - vor %n Minuten + + + %n hour(s) ago - - vor %n Stunde - vor %n Stunden + + + %n day(s) ago - - vor %n Tag - vor %n Tagen + + + @@ -625,39 +625,39 @@ Reset Reset failed. Reboot to try again. - Zurücksetzen fehlgeschlagen. Starte das Gerät neu und versuche es wieder. + - Are you sure you want to reset your device? - Bist du sicher, dass du das Gerät auf Werkseinstellungen zurücksetzen möchtest? + Resetting device... +This may take up to a minute. + - System Reset - System auf Werkseinstellungen zurücksetzen + Are you sure you want to reset your device? + - Cancel - Abbrechen + System Reset + - Reboot - Neustart + Press confirm to erase all content and settings. Press cancel to resume boot. + - Confirm - Bestätigen + Cancel + - Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. + Reboot - Press confirm to erase all content and settings. Press cancel to resume boot. + Confirm - Resetting device... -This may take up to a minute. + Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. @@ -665,101 +665,101 @@ This may take up to a minute. SettingsWindow × - x + Device - Gerät + Network - Netzwerk + Toggles - Schalter + Software - Software + Setup + + Something went wrong. Reboot the device. + + + + Ensure the entered URL is valid, and the device’s internet connection is good. + + + + No custom software found at this URL. + + WARNING: Low Voltage - Warnung: Batteriespannung niedrig + Power your device in a car with a harness or proceed at your own risk. - Versorge dein Gerät über einen Kabelbaum im Auto mit Strom, oder fahre auf eigene Gefahr fort. + Power off - Ausschalten + Continue - Fortsetzen + Getting Started - Loslegen + Before we get on the road, let’s finish installation and cover some details. - Bevor wir uns auf die Straße begeben, lass uns die Installation fertigstellen und einige Details prüfen. + Connect to Wi-Fi - Mit WLAN verbinden + Back - Zurück + - Continue without Wi-Fi - Ohne WLAN fortsetzen + Enter URL + - Waiting for internet - Auf Internet warten + for Custom Software + - Enter URL - URL eingeben + Continue without Wi-Fi + - for Custom Software - für spezifische Software + Waiting for internet + Downloading... - Herunterladen... + Download Failed - Herunterladen fehlgeschlagen - - - Ensure the entered URL is valid, and the device’s internet connection is good. - Stelle sicher, dass die eingegebene URL korrekt ist und dein Gerät eine stabile Internetverbindung hat. + Reboot device - Gerät neustarten - - - Start over - Von neuem beginnen - - - No custom software found at this URL. - Something went wrong. Reboot the device. + Start over @@ -767,162 +767,156 @@ This may take up to a minute. SetupWidget Finish Setup - Einrichtung beenden + Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - Koppele dein Gerät mit Comma Connect (connect.comma.ai) und sichere dir dein Comma Prime Angebot. + Pair device - Gerät koppeln + Sidebar CONNECT - This is a brand/service name for comma connect, don't translate - CONNECT + OFFLINE - OFFLINE + ONLINE - ONLINE + ERROR - FEHLER + TEMP - TEMP + HIGH - HOCH + GOOD - GUT + OK - OK + VEHICLE - FAHRZEUG + NO - KEIN + PANDA - PANDA + GPS - GPS + SEARCH - SUCHEN + -- - -- + Wi-Fi - WLAN + ETH - LAN + 2G - 2G + 3G - 3G + LTE - LTE + 5G - 5G + SoftwarePanel - - UNINSTALL - Too long for UI - DEINSTALL - - - Uninstall %1 - Deinstalliere %1 - - - Are you sure you want to uninstall? - Bist du sicher, dass du Openpilot entfernen möchtest? - - - CHECK - ÜBERPRÜFEN - Updates are only downloaded while the car is off. - Updates werden nur heruntergeladen, wenn das Auto aus ist. + Current Version - Aktuelle Version + Download - Download + + + + CHECK + Install Update - Update installieren + INSTALL - INSTALLIEREN + Target Branch - Ziel Branch + SELECT - AUSWÄHLEN + Select a branch - Wähle einen Branch + - Uninstall - Deinstallieren + Uninstall %1 + - failed to check for update + UNINSTALL - up to date, last checked %1 + Are you sure you want to uninstall? + + + + Uninstall + + + + failed to check for update @@ -937,166 +931,196 @@ This may take up to a minute. never + + up to date, last checked %1 + + SshControl SSH Keys - SSH Schlüssel + Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - Warnung: Dies ermöglicht SSH zugriff für alle öffentlichen Schlüssel in deinen Github Einstellungen. Gib niemals einen anderen Benutzernamen, als deinen Eigenen an. Comma Angestellte fragen dich niemals danach ihren Github Benutzernamen hinzuzufügen. + ADD - HINZUFÜGEN + Enter your GitHub username - Gib deinen GitHub Benutzernamen ein + LOADING - LADEN + REMOVE - LÖSCHEN + Username '%1' has no keys on GitHub - Benutzername '%1' hat keine Schlüssel auf GitHub + Request timed out - Zeitüberschreitung der Anforderung + Username '%1' doesn't exist on GitHub - Benutzername '%1' existiert nicht auf GitHub + SshToggle Enable SSH - SSH aktivieren + TermsPage Terms & Conditions - Benutzungsbedingungen + Decline - Ablehnen + Scroll to accept - Scrolle herunter um zu akzeptieren + Agree - Zustimmen + TogglesPanel Enable openpilot - Openpilot aktivieren + Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - Benutze das Openpilot System als adaptiven Tempomaten und Spurhalteassistenten. Deine Aufmerksamkeit ist jederzeit erforderlich, um diese Funktion zu nutzen. Diese Einstellung wird übernommen, wenn das Auto aus ist. + - Enable Lane Departure Warnings - Spurverlassenswarnungen aktivieren + openpilot Longitudinal Control (Alpha) + - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - Erhalte Warnungen, zurück in die Spur zu lenken, wenn dein Auto über eine erkannte Fahrstreifenmarkierung ohne aktivierten Blinker mit mehr als 50 km/h fährt. + WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + - Use Metric System - Benutze das metrische System + On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + - Display speed in km/h instead of mph. - Zeige die Geschwindigkeit in km/h anstatt von mph. + Experimental Mode + + + + Disengage on Accelerator Pedal + + + + When enabled, pressing the accelerator pedal will disengage openpilot. + + + + Enable Lane Departure Warnings + + + + Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). + Record and Upload Driver Camera - Fahrerkamera aufnehmen und hochladen + Upload data from the driver facing camera and help improve the driver monitoring algorithm. - Lade Daten der Fahreraufmerksamkeitsüberwachungskamera hoch, um die Fahreraufmerksamkeitsüberwachungsalgorithmen zu verbessern. + - When enabled, pressing the accelerator pedal will disengage openpilot. - Wenn aktiviert, deaktiviert sich Openpilot sobald das Gaspedal betätigt wird. + Use Linked Brightness + - Use 24h format instead of am/pm - Benutze das 24Stunden Format anstatt am/pm + Use the car's headlight state for brightness control. + - Show Map on Left Side of UI - Too long for UI - Zeige die Karte auf der linken Seite + Use LQR on Lat Control for PA + - Show map on left side when in split screen view. - Zeige die Karte auf der linken Seite der Benutzeroberfläche bei geteilten Bildschirm. + When enabled, using LQR on lat control for prius alpha. + - Show ETA in 24h Format - Too long for UI - Zeige die Ankunftszeit im 24 Stunden Format + Compass + - Experimental Mode - Experimenteller Modus + Add a compass to the onroad UI that indicates your current driving direction. + - Disengage on Accelerator Pedal - Bei Gasbetätigung ausschalten + UI: Disable openpilot Sounds + - openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: - Openpilot fährt standardmäßig im <b>entspannten Modus</b>. Der Experimentelle Modus aktiviert<b>Alpha-level Funktionen</b>, die noch nicht für den entspannten Modus bereit sind. Die experimentellen Funktionen sind die Folgenden: + Turn off openpilot sounds. + - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. - Lass das Fahrmodell Gas und Bremse kontrollieren. Openpilot wird so fahren, wie es dies von einem Menschen erwarten würde; inklusive des Anhaltens für Ampeln und Stoppschildern. Da das Fahrmodell entscheidet wie schnell es fährt stellt die gesetzte Geschwindigkeit lediglich das obere Limit dar. Dies ist ein Alpha-level Funktion. Fehler sind zu erwarten. + Turn Off Display After 30 Seconds + - New Driving Visualization - Neue Fahrvisualisierung + Turn off the device's display after going 'onroad' for 30 seconds. + - Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. - Der experimentelle Modus ist momentan für dieses Auto nicht verfügbar da es den eingebauten adaptiven Tempomaten des Autos benutzt. + Long: Cruise Speed Override + - openpilot longitudinal control may come in a future update. + Allow openpilot's set speed to be set below the vehicle's minimum cruise speed. To use this feature, when the vehicle is travelling below its minimum set speed, pull the cruise control lever down (or click the cruise control SET button) once, openpilot will set its maximum speed to the vehicle's current speed. - openpilot Longitudinal Control (Alpha) + Use Metric System - WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + Display speed in km/h instead of mph. - On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + Show ETA in 24h Format + + + + Use 24h format instead of am/pm + + + + Show Map on Left Side of UI + + + + Show map on left side when in split screen view. @@ -1120,63 +1144,95 @@ This may take up to a minute. - An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + Driving Personalities Via UI / Wheel - Navigate on openpilot + Switch driving personalities using the 'Distance' button on the steering wheel (Toyota/Lexus Only) or via the onroad UI for other makes. + +1 bar = Aggressive +2 bars = Standard +3 bars = Relaxed - Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: End-to-End Longitudinal Control + + Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. + + + + Navigate on openpilot + + When navigation has a destination, openpilot will input the map information into the model. This provides useful context for the model and allows openpilot to keep left or right appropriately at forks/exits. Lane change behavior is unchanged and still activated by the driver. This is an alpha quality feature; mistakes should be expected, particularly around exits and forks. These mistakes can include unintended laneline crossings, late exit taking, driving towards dividing barriers in the gore areas, etc. + + New Driving Visualization + + The driving visualization will transition to the road-facing wide-angle camera at low speeds to better show some turns. The Experimental mode logo will also be shown in the top right corner. When a navigation destination is set and the driving model is using it as input, the driving path on the map will turn green. + + Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. + + + + openpilot longitudinal control may come in a future update. + + + + An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + + + + Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + + Updater Update Required - Aktualisierung notwendig + An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - Eine Aktualisierung des Betriebssystems ist notwendig. Verbinde dein Gerät mit WLAN für ein schnelleres Update. Die Download Größe ist ungefähr 1GB. + Connect to Wi-Fi - Mit WLAN verbinden + Install - Installieren + Back - Zurück + Loading... - Laden... + Reboot - Neustart + Update failed - Aktualisierung fehlgeschlagen + @@ -1206,23 +1262,23 @@ This may take up to a minute. WifiUI Scanning for networks... - Suche nach Netzwerken... + CONNECTING... - VERBINDEN... + FORGET - VERGESSEN + Forget Wi-Fi Network "%1"? - WLAN Netzwerk "%1" vergessen? + Forget - Vergessen + diff --git a/selfdrive/ui/translations/main_en.ts b/selfdrive/ui/translations/main_en.ts index 3f9692e5fa48504..3ae1ed416254a56 100644 --- a/selfdrive/ui/translations/main_en.ts +++ b/selfdrive/ui/translations/main_en.ts @@ -5,9 +5,9 @@ InputDialog Need at least %n character(s)! - - Need at least %n character! - Need at least %n characters! + + + @@ -15,23 +15,23 @@ QObject %n minute(s) ago - - %n minute ago - %n minutes ago + + + %n hour(s) ago - - %n hour ago - %n hours ago + + + %n day(s) ago - - %n day ago - %n days ago + + + diff --git a/selfdrive/ui/translations/main_ja.ts b/selfdrive/ui/translations/main_ja.ts index ef9eb93e8079ea0..e6a9b05c71bd259 100644 --- a/selfdrive/ui/translations/main_ja.ts +++ b/selfdrive/ui/translations/main_ja.ts @@ -5,115 +5,115 @@ AbstractAlert Close - 閉じる + Snooze Update - 更新の一時停止 + Reboot and Update - 再起動してアップデート + AdvancedNetworking Back - 戻る + Enable Tethering - テザリングを有効化 + Tethering Password - テザリングパスワード + EDIT - 編集 + Enter new tethering password - 新しいテザリングパスワードを入力 + IP Address - IP アドレス + Enable Roaming - ローミングを有効化 + APN Setting - APN 設定 + Enter APN - APN を入力 + leave blank for automatic configuration - 自動で設定するには、空白のままにしてください。 + Cellular Metered - 従量制通信設定 + Prevent large data uploads when on a metered connection - 大量のデータのアップロードを防止します。 + AnnotatedCameraWidget km/h - km/h + mph - mph + MAX - 最高速度 + SPEED - 速度 + LIMIT - 制限速度 + ConfirmationDialog Ok - OK + Cancel - キャンセル + DeclinePage You must accept the Terms and Conditions in order to use openpilot. - openpilot をご利用される前に、利用規約に同意する必要があります。 + Back - 戻る + Decline, uninstall %1 - 拒否して %1 をアンインストール + @@ -131,15 +131,15 @@ - No %1 location set + home - home + work - work + No %1 location set @@ -147,188 +147,188 @@ DevicePanel Dongle ID - ドングル番号 (Dongle ID) + N/A - N/A + Serial - シリアル番号 + Driver Camera - 車内カメラ + PREVIEW - プレビュー + Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - 車内カメラをプレビューして、ドライバー監視システムの視界を確認ができます。(車両の電源を切る必要があります) + Reset Calibration - キャリブレーションをリセット + RESET - リセット + Are you sure you want to reset calibration? - キャリブレーションをリセットしてもよろしいですか? + + + + Reset + Review Training Guide - 使い方の確認 + REVIEW - 見る + Review the rules, features, and limitations of openpilot - openpilot の特徴を見る + Are you sure you want to review the training guide? - 使い方の確認をしますか? + + + + Review + Regulatory - 認証情報 + VIEW - 見る + Change Language - 言語を変更 + CHANGE - 変更 + Select a language - 言語を選択 + Reboot - 再起動 + Power Off - 電源を切る + openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - openpilotの本体は、左右4°以内、上5°、下8°以内の角度で取付ける必要があります。継続してキャリブレーションを続けているので、手動でリセットを行う必要はほぼありません。 + Your device is pointed %1° %2 and %3° %4. - このデバイスは%2 %1°、%4 %3°の向きに設置されています。 + down - + up - + left - + right - + Are you sure you want to reboot? - 再起動してもよろしいですか? + Disengage to Reboot - openpilot をキャンセルして再起動ができます + Are you sure you want to power off? - シャットダウンしてもよろしいですか? + Disengage to Power Off - openpilot をキャンセルしてシャットダウンができます - - - Reset - リセット - - - Review - 確認 + DriveStats Drives - 運転履歴 + Hours - 時間 + ALL TIME - 累計 + PAST WEEK - 先週 + KM - km + Miles - マイル + DriverViewScene camera starting - カメラを起動しています + ExperimentalModeButton EXPERIMENTAL MODE ON - 実験モード + CHILL MODE ON - チルモード + InputDialog Cancel - キャンセル + Need at least %n character(s)! - - %n文字以上でお願いします! + + @@ -336,49 +336,49 @@ Installer Installing... - インストールしています... + MapETA eta - 到着予定時間 + min - + hr - 時間 + km - キロメートル + mi - マイル + MapInstructions km - キロメートル + m - メートル + mi - マイル + ft - フィート + @@ -396,11 +396,11 @@ MapWindow Map Loading - マップを読み込んでいます + Waiting for GPS - GPS信号を探しています + Waiting for route @@ -411,34 +411,38 @@ MultiOptionDialog Select - 選択 + Cancel - キャンセル + Networking Advanced - 詳細 + Enter password - パスワードを入力 + for "%1" - ネットワーク名:%1 + Wrong password - パスワードが間違っています + OffroadAlert + + Device temperature too high. System cooling down before starting. Current internal component temperature: %1 + + Immediately connect to the internet to check for updates. If you do not connect to the internet, openpilot won't engage in %1 @@ -488,84 +492,80 @@ openpilot detected a change in the device's mounting position. Ensure the device is fully seated in the mount and the mount is firmly secured to the windshield. - - Device temperature too high. System cooling down before starting. Current internal component temperature: %1 - - OffroadHome UPDATE - 更新 + ALERTS - 警告 + ALERT - 警告 + PairingPopup Pair your device to your comma account - デバイスと comma アカウントを連携する + Go to https://connect.comma.ai on your phone - スマートフォンで「https://connect.comma.ai」にアクセスしてください。 + Click "add new device" and scan the QR code on the right - 「新しいデバイスを追加」を押し、右側のQRコードをスキャンしてください。 + Bookmark connect.comma.ai to your home screen to use it like an app - 「connect.comma.ai」をホーム画面に追加して、アプリのように使うことができます。 + ParamControl - Cancel - キャンセル + Enable + - Enable - を有効化 + Cancel + PrimeAdWidget Upgrade Now - 今すぐアップグレート + Become a comma prime member at connect.comma.ai - connect.comma.ai でプライム会員に登録できます + PRIME FEATURES: - 特典: + Remote access - リモートアクセス + 24/7 LTE connectivity - Turn-by-turn navigation + 1 year of drive storage - 1 year of drive storage + Turn-by-turn navigation @@ -573,47 +573,47 @@ PrimeUserWidget ✓ SUBSCRIBED - ✓ 入会しました + comma prime - comma prime + QObject Reboot - 再起動 + Exit - 閉じる + dashcam - ドライブレコーダー + openpilot - openpilot + %n minute(s) ago - - %n 分前 + + %n hour(s) ago - - %n 時間前 + + %n day(s) ago - - %n 日前 + + @@ -621,39 +621,39 @@ Reset Reset failed. Reboot to try again. - 初期化に失敗しました。再起動後に再試行してください。 + - Are you sure you want to reset your device? - 初期化してもよろしいですか? + Resetting device... +This may take up to a minute. + - System Reset - システムを初期化 + Are you sure you want to reset your device? + - Cancel - キャンセル + System Reset + - Reboot - 再起動 + Press confirm to erase all content and settings. Press cancel to resume boot. + - Confirm - 確認 + Cancel + - Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. + Reboot - Press confirm to erase all content and settings. Press cancel to resume boot. + Confirm - Resetting device... -This may take up to a minute. + Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. @@ -661,101 +661,101 @@ This may take up to a minute. SettingsWindow × - × + Device - デバイス + Network - ネットワーク + Toggles - 機能設定 + Software - ソフトウェア + Setup + + Something went wrong. Reboot the device. + + + + Ensure the entered URL is valid, and the device’s internet connection is good. + + + + No custom software found at this URL. + + WARNING: Low Voltage - 警告:低電圧 + Power your device in a car with a harness or proceed at your own risk. - 自己責任で実行を継続するか、ハーネスから電源を供給してください。 + Power off - 電源を切る + Continue - 続ける + Getting Started - はじめに + Before we get on the road, let’s finish installation and cover some details. - 道路に向かう前に、インストールを完了して使い方を確認しましょう。 + Connect to Wi-Fi - Wi-Fi に接続 + Back - 戻る + - Continue without Wi-Fi - Wi-Fi に接続せずに続行 + Enter URL + - Waiting for internet - インターネット接続を待機中 + for Custom Software + - Enter URL - URL を入力 + Continue without Wi-Fi + - for Custom Software - カスタムソフトウェア + Waiting for internet + Downloading... - ダウンロード中... + Download Failed - ダウンロード失敗 - - - Ensure the entered URL is valid, and the device’s internet connection is good. - 入力された URL を確認し、デバイスがインターネットに接続されていることを確認してください。 + Reboot device - デバイスを再起動 - - - Start over - 最初からやり直す - - - No custom software found at this URL. - Something went wrong. Reboot the device. + Start over @@ -763,160 +763,156 @@ This may take up to a minute. SetupWidget Finish Setup - セットアップ完了 + Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - デバイスを comma connect (connect.comma.ai)でペアリングし、comma primeの特典を申請してください。 + Pair device - デバイスをペアリング + Sidebar CONNECT - 接続 + OFFLINE - オフライン + ONLINE - オンライン + ERROR - エラー + TEMP - 温度 + HIGH - 高温 + GOOD - 最適 + OK - OK + VEHICLE - 車両 + NO - NO + PANDA - PANDA + GPS - GPS + SEARCH - 検索 + -- - -- + Wi-Fi - Wi-Fi + ETH - ETH + 2G - 2G + 3G - 3G + LTE - LTE + 5G - 5G + SoftwarePanel Updates are only downloaded while the car is off. - 車の電源がオフの間のみ、アップデートのダウンロードが行われます。 + Current Version - 現在のバージョン + Download - ダウンロード + + + + CHECK + Install Update - アップデート + INSTALL - インストール + Target Branch - 対象のブランチ + SELECT - 選択 + Select a branch - ブランチを選択 - - - UNINSTALL - 実行 + Uninstall %1 - %1をアンインストール + - Are you sure you want to uninstall? - アンインストールしてもよろしいですか? + UNINSTALL + - CHECK - 確認 + Are you sure you want to uninstall? + Uninstall - アンインストール - - - failed to check for update - up to date, last checked %1 + failed to check for update @@ -931,164 +927,196 @@ This may take up to a minute. never + + up to date, last checked %1 + + SshControl SSH Keys - SSH 鍵 + Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - 警告: これは、GitHub の設定にあるすべての公開鍵への SSH アクセスを許可するものです。自分以外の GitHub のユーザー名を入力しないでください。commaのスタッフが GitHub のユーザー名を追加するようお願いすることはありません。 + ADD - 追加 + Enter your GitHub username - GitHub のユーザー名を入力してください + LOADING - 読み込み中 + REMOVE - 削除 + Username '%1' has no keys on GitHub - ユーザー名 “%1” は GitHub に鍵がありません + Request timed out - リクエストタイムアウト + Username '%1' doesn't exist on GitHub - ユーザー名 '%1' は GitHub に存在しません + SshToggle Enable SSH - SSH を有効化 + TermsPage Terms & Conditions - 利用規約 + Decline - 拒否 + Scroll to accept - スクロールして同意 + Agree - 同意 + TogglesPanel Enable openpilot - openpilot を有効化 + Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - openpilotによるアダプティブクルーズコントロールとレーンキーピングドライバーアシストを利用します。この機能を利用する際は、常に前方への注意が必要です。この設定を変更すると、車の電源が切れた時に反映されます。 + - Enable Lane Departure Warnings - 車線逸脱警報機能を有効化 + openpilot Longitudinal Control (Alpha) + - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - 時速31マイル(50km)を超えるスピードで走行中、ウインカーを作動させずに検出された車線ライン上に車両が触れた場合、手動で車線内に戻るように警告を行います。 + WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + - Use Metric System - メートル法を使用 + On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + - Display speed in km/h instead of mph. - 速度は mph ではなく km/h で表示されます。 + Experimental Mode + + + + Disengage on Accelerator Pedal + + + + When enabled, pressing the accelerator pedal will disengage openpilot. + + + + Enable Lane Departure Warnings + + + + Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). + Record and Upload Driver Camera - 車内カメラの録画とアップロード + Upload data from the driver facing camera and help improve the driver monitoring algorithm. - 車内カメラの映像をアップロードし、ドライバー監視システムのアルゴリズムの向上に役立てます。 + - Disengage on Accelerator Pedal - アクセルを踏むと openpilot を中断 + Use Linked Brightness + - When enabled, pressing the accelerator pedal will disengage openpilot. - この機能を有効化すると、openpilotを利用中にアクセルを踏むとopenpilotによる運転サポートを中断します。 + Use the car's headlight state for brightness control. + - Show ETA in 24h Format - 24時間表示 + Use LQR on Lat Control for PA + - Use 24h format instead of am/pm - AM/PM の代わりに24時間形式を使用します + When enabled, using LQR on lat control for prius alpha. + - Show Map on Left Side of UI - ディスプレイの左側にマップを表示 + Compass + - Show map on left side when in split screen view. - 分割画面表示の場合、ディスプレイの左側にマップを表示します。 + Add a compass to the onroad UI that indicates your current driving direction. + - Experimental Mode - 実験モード + UI: Disable openpilot Sounds + - openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: - openpilotは標準ではゆっくりとくつろげる運転を提供します。この実験モードを有効にすると、以下のくつろげる段階ではない開発中の機能を利用する事ができます。 + Turn off openpilot sounds. + - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. - openpilotにアクセルとブレーキを任せます。openpilotは赤信号や一時停止サインでの停止を含み、人間と同じように考えて運転を行います。openpilotが運転速度を決定するため、あなたが設定する速度は上限速度になります。この機能は実験段階のため、openpilotの運転ミスに常に備えて注意してください。 + Turn Off Display After 30 Seconds + - New Driving Visualization - 新しい運転画面 + Turn off the device's display after going 'onroad' for 30 seconds. + - Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. - この車のACCがアクセル制御を行うため実験モードを利用することができません。 + Long: Cruise Speed Override + - openpilot longitudinal control may come in a future update. + Allow openpilot's set speed to be set below the vehicle's minimum cruise speed. To use this feature, when the vehicle is travelling below its minimum set speed, pull the cruise control lever down (or click the cruise control SET button) once, openpilot will set its maximum speed to the vehicle's current speed. - openpilot Longitudinal Control (Alpha) + Use Metric System - WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + Display speed in km/h instead of mph. - On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + Show ETA in 24h Format + + + + Use 24h format instead of am/pm + + + + Show Map on Left Side of UI + + + + Show map on left side when in split screen view. @@ -1112,63 +1140,95 @@ This may take up to a minute. - An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + Driving Personalities Via UI / Wheel - Navigate on openpilot + Switch driving personalities using the 'Distance' button on the steering wheel (Toyota/Lexus Only) or via the onroad UI for other makes. + +1 bar = Aggressive +2 bars = Standard +3 bars = Relaxed - Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: End-to-End Longitudinal Control + + Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. + + + + Navigate on openpilot + + When navigation has a destination, openpilot will input the map information into the model. This provides useful context for the model and allows openpilot to keep left or right appropriately at forks/exits. Lane change behavior is unchanged and still activated by the driver. This is an alpha quality feature; mistakes should be expected, particularly around exits and forks. These mistakes can include unintended laneline crossings, late exit taking, driving towards dividing barriers in the gore areas, etc. + + New Driving Visualization + + The driving visualization will transition to the road-facing wide-angle camera at low speeds to better show some turns. The Experimental mode logo will also be shown in the top right corner. When a navigation destination is set and the driving model is using it as input, the driving path on the map will turn green. + + Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. + + + + openpilot longitudinal control may come in a future update. + + + + An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + + + + Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + + Updater Update Required - アップデートが必要です + An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - オペレーティングシステムのアップデートが必要です。Wi-Fi に接続してアップデートする事をお勧めします。ダウンロードサイズは約 1GB です。 + Connect to Wi-Fi - Wi-Fi に接続 + Install - インストール + Back - 戻る + Loading... - 読み込み中... + Reboot - 再起動 + Update failed - 更新失敗 + @@ -1198,23 +1258,23 @@ This may take up to a minute. WifiUI Scanning for networks... - ネットワークをスキャン中... + CONNECTING... - 接続中... + FORGET - 削除 + Forget Wi-Fi Network "%1"? - Wi-Fiネットワーク%1を削除してもよろしいですか? + Forget - 削除 + diff --git a/selfdrive/ui/translations/main_ko.ts b/selfdrive/ui/translations/main_ko.ts index b2473a3fb91e296..365ba159a6ee276 100644 --- a/selfdrive/ui/translations/main_ko.ts +++ b/selfdrive/ui/translations/main_ko.ts @@ -5,330 +5,330 @@ AbstractAlert Close - 닫기 + Snooze Update - 업데이트 일시중지 + Reboot and Update - 업데이트 및 재부팅 + AdvancedNetworking Back - 뒤로 + Enable Tethering - 테더링 사용 + Tethering Password - 테더링 비밀번호 + EDIT - 편집 + Enter new tethering password - 새 테더링 비밀번호를 입력하세요 + IP Address - IP 주소 + Enable Roaming - 로밍 사용 + APN Setting - APN 설정 + Enter APN - APN 입력 + leave blank for automatic configuration - 자동설정하려면 공백으로 두세요 + Cellular Metered - 데이터 요금제 + Prevent large data uploads when on a metered connection - 데이터 요금제 연결 시 대용량 데이터 업로드를 방지합니다 + AnnotatedCameraWidget km/h - km/h + mph - mph + MAX - MAX + SPEED - SPEED + LIMIT - LIMIT + ConfirmationDialog Ok - 확인 + Cancel - 취소 + DeclinePage You must accept the Terms and Conditions in order to use openpilot. - openpilot을 사용하려면 이용약관에 동의해야 합니다. + Back - 뒤로 + Decline, uninstall %1 - 거절, %1 제거 + DestinationWidget Home - + Work - 회사 + No destination set - 목적지가 설정되지 않았습니다 - - - No %1 location set - %1 위치가 설정되지 않았습니다 + home - + work - 회사 + + + + No %1 location set + DevicePanel Dongle ID - Dongle ID + N/A - N/A + Serial - Serial + Driver Camera - 운전자 카메라 + PREVIEW - 미리보기 + Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - 운전자 모니터링이 잘 되는지 확인하기 위해 카메라를 향한 운전자를 미리 봅니다. (차량연결은 해제되어있어야 합니다) + Reset Calibration - 캘리브레이션 + RESET - 재설정 + Are you sure you want to reset calibration? - 캘리브레이션을 재설정하시겠습니까? + + + + Reset + Review Training Guide - 트레이닝 가이드 + REVIEW - 다시보기 + Review the rules, features, and limitations of openpilot - openpilot의 규칙, 기능 및 제한 다시보기 + Are you sure you want to review the training guide? - 트레이닝 가이드를 다시보시겠습니까? + + + + Review + Regulatory - 규제 + VIEW - 보기 + Change Language - 언어 변경 + CHANGE - 변경 + Select a language - 언어를 선택하세요 + Reboot - 재부팅 + Power Off - 전원 종료 + openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - openpilot 장치는 좌우측 4° 이내, 위쪽 5° 아래쪽 8° 이내로 장착되어야 합니다. openpilot은 지속적으로 보정되며 재설정은 거의 필요하지 않습니다. + Your device is pointed %1° %2 and %3° %4. - 사용자의 장치는 %1° %2 및 %3° %4 의 위치에 장착되어 있습니다. + down - 아래로 + up - 위로 + left - 좌측으로 + right - 우측으로 + Are you sure you want to reboot? - 재부팅 하시겠습니까? + Disengage to Reboot - 재부팅 하려면 해제하세요 + Are you sure you want to power off? - 전원을 종료하시겠습니까? + Disengage to Power Off - 전원을 종료하려면 해제하세요 - - - Reset - 리셋 - - - Review - 다시보기 + DriveStats Drives - 주행 + Hours - 시간 + ALL TIME - 전체 + PAST WEEK - 지난주 + KM - Km + Miles - Miles + DriverViewScene camera starting - 카메라 시작중 + ExperimentalModeButton EXPERIMENTAL MODE ON - 실험적 모드 사용 + CHILL MODE ON - 안정적 모드 사용 + InputDialog Cancel - 취소 + Need at least %n character(s)! - - 최소 %n 자가 필요합니다! + + @@ -336,285 +336,284 @@ Installer Installing... - 설치중... + MapETA eta - 도착 + min - + hr - 시간 + km - km + mi - mi + MapInstructions km - km + m - m + mi - mi + ft - ft + MapSettings NAVIGATION - 내비게이션 + Manage at connect.comma.ai - connect.comma.ai에서 관리됩니다 + MapWindow Map Loading - 지도 로딩 + Waiting for GPS - GPS 수신중 + Waiting for route - 경로를 기다리는중 + MultiOptionDialog Select - 선택 + Cancel - 취소 + Networking Advanced - 고급 설정 + Enter password - 비밀번호를 입력하세요 + for "%1" - "%1"에 접속하려면 비밀번호가 필요합니다 + Wrong password - 비밀번호가 틀렸습니다 + OffroadAlert + + Device temperature too high. System cooling down before starting. Current internal component temperature: %1 + + Immediately connect to the internet to check for updates. If you do not connect to the internet, openpilot won't engage in %1 - 즉시 인터넷에 연결하여 업데이트를 확인하세요. 인터넷에 연결되어 있지 않으면 %1 이후에는 openpilot이 활성화되지 않습니다. + Connect to internet to check for updates. openpilot won't automatically start until it connects to internet to check for updates. - 업데이트를 확인하려면 인터넷에 연결하세요. openpilot은 업데이트를 확인하기 위해 인터넷에 연결할 때까지 자동으로 시작되지 않습니다. + Unable to download updates %1 - 업데이트를 다운로드할수 없습니다 -%1 + Invalid date and time settings, system won't start. Connect to internet to set time. - 날짜 및 시간 설정이 잘못되어 시스템이 시작되지 않습니다. 날짜와 시간을 동기화하려면 인터넷에 연결하세요. + Taking camera snapshots. System won't start until finished. - 카메라 스냅샷 찍기가 완료될 때까지 시스템이 시작되지 않습니다. + An update to your device's operating system is downloading in the background. You will be prompted to update when it's ready to install. - 백그라운드에서 운영 체제에 대한 업데이트가 다운로드되고 있습니다. 설치준비가 완료되면 업데이트하라는 메시지가 표시됩니다. + Device failed to register. It will not connect to or upload to comma.ai servers, and receives no support from comma.ai. If this is an official device, visit https://comma.ai/support. - 장치를 등록하지 못했습니다. comma.ai 서버에 연결하거나 업로드하지 않으며 comma.ai에서 지원을 받지 않습니다. 공식 장치인경우 https://comma.ai/support 에 방문하여 문의하세요. + NVMe drive not mounted. - NVMe 드라이브가 마운트되지 않았습니다. + Unsupported NVMe drive detected. Device may draw significantly more power and overheat due to the unsupported NVMe. - 지원되지 않는 NVMe 드라이브가 감지되었습니다. 지원되지 않는 NVMe 드라이브로 인해 장치가 훨씬 더 많은 전력을 소비하고 과열될 수 있습니다. + openpilot was unable to identify your car. Your car is either unsupported or its ECUs are not recognized. Please submit a pull request to add the firmware versions to the proper vehicle. Need help? Join discord.comma.ai. - opepilot이 차량을 식별할수 없었습니다. 지원되지 않는 차량이거나 ECU가 인식되지 않습니다. 해당 차량에 펌웨어 버전을 추가하려면 PR을 제출하세요. 도움이 필요하시면 discord.comma.ai에 가입하세요. + openpilot was unable to identify your car. Check integrity of cables and ensure all connections are secure, particularly that the comma power is fully inserted in the OBD-II port of the vehicle. Need help? Join discord.comma.ai. - openpilot이 차량을 식별할수 없었습니다. 케이블의 무결성을 점검하고 모든 연결부, 특히 comma power가 차량의 OBD-II 포트에 완전히 삽입되었는지 확인하세요. 도움이 필요하시면 discord.comma.ai에 가입하세요. + openpilot detected a change in the device's mounting position. Ensure the device is fully seated in the mount and the mount is firmly secured to the windshield. - openpilot 장치의 장착 위치 변경을 감지했습니다. 장치가 마운트에 완전히 장착되고 마운트가 앞유리에 단단히 고정되었는지 확인하세요. - - - Device temperature too high. System cooling down before starting. Current internal component temperature: %1 - 장치 온도가 너무 높습니다. 시작하기 전에 장치온도를 낮춰주세요. 현재 내부 구성 요소 온도: %1 + OffroadHome UPDATE - 업데이트 + ALERTS - 알림 + ALERT - 알림 + PairingPopup Pair your device to your comma account - 장치를 comma 계정과 페어링합니다 + Go to https://connect.comma.ai on your phone - https://connect.comma.ai에 접속하세요 + Click "add new device" and scan the QR code on the right - "새 장치 추가"를 클릭하고 오른쪽 QR 코드를 검색합니다 + Bookmark connect.comma.ai to your home screen to use it like an app - connect.comma.ai를 앱처럼 사용하려면 홈 화면에 바로가기를 만드세요. + ParamControl - Cancel - 취소 + Enable + - Enable - 사용 + Cancel + PrimeAdWidget Upgrade Now - 지금 업그레이드 하세요 + Become a comma prime member at connect.comma.ai - connect.comma.ai에 접속하여 comma prime 회원이 되세요 + PRIME FEATURES: - PRIME 기능: + Remote access - 원격 접속 + 24/7 LTE connectivity - 항상 LTE 연결 + - Turn-by-turn navigation - 내비게이션 경로안내 + 1 year of drive storage + - 1 year of drive storage - 1년간 저장 + Turn-by-turn navigation + PrimeUserWidget ✓ SUBSCRIBED - ✓ 구독함 + comma prime - comma prime + QObject Reboot - 재부팅 + Exit - 종료 + dashcam - dashcam + openpilot - openpilot + %n minute(s) ago - - %n 분전 + + %n hour(s) ago - - %n 시간전 + + %n day(s) ago - - %n 일전 + + @@ -622,601 +621,660 @@ Reset Reset failed. Reboot to try again. - 초기화 실패. 재부팅후 다시 시도하세요. + + + + Resetting device... +This may take up to a minute. + Are you sure you want to reset your device? - 장치를 초기화 하시겠습니까? + System Reset - 장치 초기화 + + + + Press confirm to erase all content and settings. Press cancel to resume boot. + Cancel - 취소 + Reboot - 재부팅 + Confirm - 확인 + Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. - 데이터 파티션을 마운트할 수 없습니다. 파티션이 손상되었을 수 있습니다. 모든 내용을 지우고 장치를 초기화하려면 확인을 누르세요. - - - Press confirm to erase all content and settings. Press cancel to resume boot. - 모든 콘텐츠와 설정을 지우려면 확인을 누르세요. 부팅을 재개하려면 취소를 누르세요. - - - Resetting device... -This may take up to a minute. - 장치를 초기화하는 중... -최대 1분이 소요될 수 있습니다. + SettingsWindow × - × + Device - 장치 + Network - 네트워크 + Toggles - 토글 + Software - 소프트웨어 + Setup + + Something went wrong. Reboot the device. + + + + Ensure the entered URL is valid, and the device’s internet connection is good. + + + + No custom software found at this URL. + + WARNING: Low Voltage - 경고: 전압이 낮습니다 + Power your device in a car with a harness or proceed at your own risk. - 하네스 보드에 차량의 전원을 연결하세요. + Power off - 전원 종료 + Continue - 계속 + Getting Started - 설정 시작 + Before we get on the road, let’s finish installation and cover some details. - 출발하기 전에 설정을 완료하고 몇 가지 세부 사항을 살펴보겠습니다. + Connect to Wi-Fi - wifi 연결 + Back - 뒤로 + - Continue without Wi-Fi - wifi 연결없이 계속하기 + Enter URL + - Waiting for internet - 인터넷 대기중 + for Custom Software + - Enter URL - URL 입력 + Continue without Wi-Fi + - for Custom Software - 커스텀 소프트웨어 + Waiting for internet + Downloading... - 다운로드중... + Download Failed - 다운로드 실패 - - - Ensure the entered URL is valid, and the device’s internet connection is good. - 입력된 URL이 유효하고 장치의 인터넷 연결이 양호한지 확인하세요. + Reboot device - 재부팅 + Start over - 다시 시작 - - - Something went wrong. Reboot the device. - 문제가 발생했습니다. 장치를 재부팅하세요. - - - No custom software found at this URL. - 이 URL에서 커스텀 소프트웨어를 찾을 수 없습니다. + SetupWidget Finish Setup - 설정 완료 + Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - 장치를 comma connect (connect.comma.ai)에서 페어링하고 comma prime 제안을 요청하세요. + Pair device - 장치 페어링 + Sidebar CONNECT - 연결 + OFFLINE - 오프라인 + ONLINE - 온라인 + ERROR - 오류 + TEMP - 온도 + HIGH - 높음 + GOOD - 좋음 + OK - 경고 + VEHICLE - 차량 + NO - NO + PANDA - PANDA + GPS - GPS + SEARCH - 검색중 + -- - -- + Wi-Fi - wifi + ETH - LAN + 2G - 2G + 3G - 3G + LTE - LTE + 5G - 5G + SoftwarePanel Updates are only downloaded while the car is off. - 업데이트는 차량 연결이 해제되어 있는 동안에만 다운로드됩니다. + Current Version - 현재 버전 + Download - 다운로드 + + + + CHECK + Install Update - 업데이트 설치 + INSTALL - 설치 + Target Branch - 대상 브랜치 + SELECT - 선택 + Select a branch - 브랜치 선택 - - - UNINSTALL - 제거 + Uninstall %1 - %1 제거 + - Are you sure you want to uninstall? - 제거하시겠습니까? + UNINSTALL + - CHECK - 확인 + Are you sure you want to uninstall? + Uninstall - 제거 + failed to check for update - 업데이트 확인 실패 - - - up to date, last checked %1 - 최신 상태 입니다, %1에 마지막으로 확인 + DOWNLOAD - 다운로드 + update available - 업데이트 가능 + never - 업데이트 안함 + + + + up to date, last checked %1 + SshControl SSH Keys - SSH 키 + Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - 경고: 허용으로 설정하면 GitHub 설정의 모든 공용 키에 대한 SSH 액세스 권한이 부여됩니다. GitHub 사용자 ID 이외에는 입력하지 마십시오. comma에서는 GitHub ID를 추가하라는 요청을 하지 않습니다. + ADD - 추가 + Enter your GitHub username - GitHub 사용자 ID + LOADING - 로딩 + REMOVE - 제거 + Username '%1' has no keys on GitHub - 사용자 '%1'의 키가 GitHub에 없습니다 + Request timed out - 요청 시간 초과 + Username '%1' doesn't exist on GitHub - 사용자 '%1'는 GitHub에 없습니다 + SshToggle Enable SSH - SSH 사용 + TermsPage Terms & Conditions - 약관 + Decline - 거절 + Scroll to accept - 동의하려면 아래로 스크롤하세요 + Agree - 동의 + TogglesPanel Enable openpilot - openpilot 사용 + Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - 어댑티브 크루즈 컨트롤 및 차선 유지 운전자 보조를 위해 openpilot 시스템을 사용하십시오. 이 기능을 사용하려면 항상 주의를 기울여야 합니다. 설정변경은 장치 재부팅후 적용됩니다. + - Enable Lane Departure Warnings - 차선 이탈 경고 사용 + openpilot Longitudinal Control (Alpha) + - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - 차량이 50km/h(31mph) 이상의 속도로 주행하는 동안 방향지시등이 켜지지 않은 상태에서 차량이 감지된 차선을 벗어나면 차선이탈 경고를 합니다. + WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + - Use Metric System - 미터법 사용 + On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + - Display speed in km/h instead of mph. - mph 대신 km/h로 속도를 표시합니다. + Experimental Mode + + + + Disengage on Accelerator Pedal + + + + When enabled, pressing the accelerator pedal will disengage openpilot. + + + + Enable Lane Departure Warnings + + + + Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). + Record and Upload Driver Camera - 운전자 카메라 녹화 및 업로드 + Upload data from the driver facing camera and help improve the driver monitoring algorithm. - 운전자 카메라에서 데이터를 업로드하고 운전자 모니터링 알고리즘을 개선합니다. + - Disengage on Accelerator Pedal - 가속페달 조작시 해제 + Use Linked Brightness + - When enabled, pressing the accelerator pedal will disengage openpilot. - 활성화된 경우 가속 페달을 밟으면 openpilot이 해제됩니다. + Use the car's headlight state for brightness control. + - Show ETA in 24h Format - 24시간 형식으로 도착예정시간 표시 + Use LQR on Lat Control for PA + - Use 24h format instead of am/pm - 오전/오후 대신 24시간 형식 사용 + When enabled, using LQR on lat control for prius alpha. + - Show Map on Left Side of UI - UI 왼쪽에 지도 표시 + Compass + - Show map on left side when in split screen view. - 분할 화면 보기에서 지도를 왼쪽에 표시합니다. + Add a compass to the onroad UI that indicates your current driving direction. + - Experimental Mode - 실험적 모드 + UI: Disable openpilot Sounds + - openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: - openpilot은 기본적으로 <b>안정적 모드</b>로 주행합니다. 실험적 모드는 안정적 모드에 준비되지 않은 <b>알파 수준 기능</b>을 활성화 합니다. 실험적 모드의 특징은 아래에 나열되어 있습니다 + Turn off openpilot sounds. + - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. - 주행모델이 가속과 감속을 제어하도록 합니다. openpilot은 신호등과 정지표지판을 보고 멈추는 것을 포함하여 운전자가 생각하는것처럼 주행합니다. 주행 모델이 주행할 속도를 결정하므로 설정된 속도는 상한선으로만 작용합니다. 이것은 알파 기능이므로 사용에 주의해야 합니다. + Turn Off Display After 30 Seconds + - New Driving Visualization - 새로운 주행 시각화 + Turn off the device's display after going 'onroad' for 30 seconds. + - Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. - 차량에 장착된 ACC가 롱컨트롤에 사용되기 때문에 현재 이 차량은 실험적 모드를 사용할 수 없습니다. + Long: Cruise Speed Override + - openpilot longitudinal control may come in a future update. - openpilot 롱컨트롤은 향후 업데이트에서 제공될 수 있습니다. + Allow openpilot's set speed to be set below the vehicle's minimum cruise speed. To use this feature, when the vehicle is travelling below its minimum set speed, pull the cruise control lever down (or click the cruise control SET button) once, openpilot will set its maximum speed to the vehicle's current speed. + - openpilot Longitudinal Control (Alpha) - openpilot 롱컨트롤 (알파) + Use Metric System + - WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). - 경고: openpilot 롱컨트롤은 알파 기능으로 차량의 자동긴급제동(AEB)를 비활성화합니다. + Display speed in km/h instead of mph. + - On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. - 이 차량은 openpilot 롱컨트롤 대신 차량의 ACC로 기본 설정됩니다. openpilot 롱컨트롤으로 전환하려면 이 기능을 활성화하세요. openpilot 롱컨트롤 알파를 활성화하는경우 실험적 모드 활성화를 권장합니다. + Show ETA in 24h Format + + + + Use 24h format instead of am/pm + + + + Show Map on Left Side of UI + + + + Show map on left side when in split screen view. + Aggressive - 공격적 + Standard - 표준 + Relaxed - 편안한 + Driving Personality - 주행 모드 + Standard is recommended. In aggressive mode, openpilot will follow lead cars closer and be more aggressive with the gas and brake. In relaxed mode openpilot will stay further away from lead cars. - 표준 모드를 권장합니다. 공격적 모드에서는 openpilot은 앞차를 더 가까이 따라가며 가속과 감속을 더 공격적으로 사용합니다. 편안한 모드에서 openpilot은 선두 차량에서 더 멀리 떨어져 있습니다. + - An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. - openpilot 롱컨트롤 알파 버전은 비 릴리스 분기에서 실험적 모드와 함께 테스트할 수 있습니다. + Driving Personalities Via UI / Wheel + - Navigate on openpilot - Navigate on openpilot (NOO) + Switch driving personalities using the 'Distance' button on the steering wheel (Toyota/Lexus Only) or via the onroad UI for other makes. + +1 bar = Aggressive +2 bars = Standard +3 bars = Relaxed + - Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. - openpilot E2E 롱컨트롤 (알파) 토글을 활성화하여 실험적 모드를 허용합니다. + openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: + End-to-End Longitudinal Control - E2E 롱컨트롤 + + + + Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. + + + + Navigate on openpilot + When navigation has a destination, openpilot will input the map information into the model. This provides useful context for the model and allows openpilot to keep left or right appropriately at forks/exits. Lane change behavior is unchanged and still activated by the driver. This is an alpha quality feature; mistakes should be expected, particularly around exits and forks. These mistakes can include unintended laneline crossings, late exit taking, driving towards dividing barriers in the gore areas, etc. + + New Driving Visualization + + The driving visualization will transition to the road-facing wide-angle camera at low speeds to better show some turns. The Experimental mode logo will also be shown in the top right corner. When a navigation destination is set and the driving model is using it as input, the driving path on the map will turn green. + + Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. + + + + openpilot longitudinal control may come in a future update. + + + + An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + + + + Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + + Updater Update Required - 업데이트 필요 + An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - OS 업데이트가 필요합니다. 장치를 wifi에 연결하면 가장 빠른 업데이트 경험을 제공합니다. 다운로드 크기는 약 1GB입니다. + Connect to Wi-Fi - wifi 연결 + Install - 설치 + Back - 뒤로 + Loading... - 로딩중... + Reboot - 재부팅 + Update failed - 업데이트 실패 + WiFiPromptWidget Setup Wi-Fi - wifi 설정 + Connect to Wi-Fi to upload driving data and help improve openpilot - wifi에 연결하여 주행 데이터를 업로드하고 openpilot 개선에 참여하세요. + Open Settings - 설정 열기 + Ready to upload - 업로드 준비완료 + Training data will be pulled periodically while your device is on Wi-Fi - 기기가 wifi에 연결되어 있는 동안 트레이닝 데이터를 주기적으로 전송합니다. + WifiUI Scanning for networks... - 네트워크 검색 중... + CONNECTING... - 연결중... + FORGET - 저장안함 + Forget Wi-Fi Network "%1"? - "%1"를 저장하지 않겠습니까? + Forget - 저장안함 + diff --git a/selfdrive/ui/translations/main_nl.ts b/selfdrive/ui/translations/main_nl.ts deleted file mode 100644 index 10651a416011ff3..000000000000000 --- a/selfdrive/ui/translations/main_nl.ts +++ /dev/null @@ -1,1120 +0,0 @@ - - - - - AbstractAlert - - Close - Sluit - - - Snooze Update - Update uitstellen - - - Reboot and Update - Opnieuw Opstarten en Updaten - - - - AdvancedNetworking - - Back - Terug - - - Enable Tethering - Tethering Inschakelen - - - Tethering Password - Tethering Wachtwoord - - - EDIT - AANPASSEN - - - Enter new tethering password - Voer nieuw tethering wachtwoord in - - - IP Address - IP Adres - - - Enable Roaming - Roaming Inschakelen - - - APN Setting - APN Instelling - - - Enter APN - Voer APN in - - - leave blank for automatic configuration - laat leeg voor automatische configuratie - - - Cellular Metered - - - - Prevent large data uploads when on a metered connection - - - - - AnnotatedCameraWidget - - km/h - km/u - - - mph - mph - - - MAX - MAX - - - SPEED - SPEED - - - LIMIT - LIMIT - - - - ConfirmationDialog - - Ok - Ok - - - Cancel - Annuleren - - - - DeclinePage - - You must accept the Terms and Conditions in order to use openpilot. - U moet de Algemene Voorwaarden accepteren om openpilot te gebruiken. - - - Back - Terug - - - Decline, uninstall %1 - Afwijzen, verwijder %1 - - - - DevicePanel - - Dongle ID - Dongle ID - - - N/A - Nvt - - - Serial - Serienummer - - - Driver Camera - Bestuurders Camera - - - PREVIEW - BEKIJKEN - - - Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - Bekijk de naar de bestuurder gerichte camera om ervoor te zorgen dat het monitoren van de bestuurder goed zicht heeft. (Voertuig moet uitgschakeld zijn) - - - Reset Calibration - Kalibratie Resetten - - - RESET - RESET - - - Are you sure you want to reset calibration? - Weet u zeker dat u de kalibratie wilt resetten? - - - Review Training Guide - Doorloop de Training Opnieuw - - - REVIEW - BEKIJKEN - - - Review the rules, features, and limitations of openpilot - Bekijk de regels, functies en beperkingen van openpilot - - - Are you sure you want to review the training guide? - Weet u zeker dat u de training opnieuw wilt doorlopen? - - - Regulatory - Regelgeving - - - VIEW - BEKIJKEN - - - Change Language - Taal Wijzigen - - - CHANGE - WIJZIGEN - - - Select a language - Selecteer een taal - - - Reboot - Opnieuw Opstarten - - - Power Off - Uitschakelen - - - openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - openpilot vereist dat het apparaat binnen 4° links of rechts en binnen 5° omhoog of 8° omlaag wordt gemonteerd. openpilot kalibreert continu, resetten is zelden nodig. - - - Your device is pointed %1° %2 and %3° %4. - Uw apparaat is gericht op %1° %2 en %3° %4. - - - down - omlaag - - - up - omhoog - - - left - links - - - right - rechts - - - Are you sure you want to reboot? - Weet u zeker dat u opnieuw wilt opstarten? - - - Disengage to Reboot - Deactiveer openpilot om opnieuw op te starten - - - Are you sure you want to power off? - Weet u zeker dat u wilt uitschakelen? - - - Disengage to Power Off - Deactiveer openpilot om uit te schakelen - - - - DriveStats - - Drives - Ritten - - - Hours - Uren - - - ALL TIME - TOTAAL - - - PAST WEEK - AFGELOPEN WEEK - - - KM - Km - - - Miles - Mijl - - - - DriverViewScene - - camera starting - Camera wordt gestart - - - - InputDialog - - Cancel - Annuleren - - - Need at least %n character(s)! - - Heeft minstens %n karakter nodig! - Heeft minstens %n karakters nodig! - - - - - Installer - - Installing... - Installeren... - - - Receiving objects: - Objecten ontvangen: - - - Resolving deltas: - Deltas verwerken: - - - Updating files: - Bestanden bijwerken: - - - - MapETA - - eta - eta - - - min - min - - - hr - uur - - - km - km - - - mi - mi - - - - MapInstructions - - km - km - - - m - m - - - mi - mi - - - ft - ft - - - - MapPanel - - Current Destination - Huidige Bestemming - - - CLEAR - LEEGMAKEN - - - Recent Destinations - Recente Bestemmingen - - - Try the Navigation Beta - Probeer de Navigatie Bèta - - - Get turn-by-turn directions displayed and more with a comma -prime subscription. Sign up now: https://connect.comma.ai - Krijg stapsgewijze routebeschrijving en meer met een comma -prime abonnement. Meld u nu aan: https://connect.comma.ai - - - No home -location set - Geen thuislocatie -ingesteld - - - No work -location set - Geen werklocatie -ingesteld - - - no recent destinations - geen recente bestemmingen - - - - MapWindow - - Map Loading - Kaart wordt geladen - - - Waiting for GPS - Wachten op GPS - - - - MultiOptionDialog - - Select - Selecteer - - - Cancel - Annuleren - - - - Networking - - Advanced - Geavanceerd - - - Enter password - Voer wachtwoord in - - - for "%1" - voor "%1" - - - Wrong password - Verkeerd wachtwoord - - - - OffroadHome - - UPDATE - UPDATE - - - ALERTS - WAARSCHUWINGEN - - - ALERT - WAARSCHUWING - - - - PairingPopup - - Pair your device to your comma account - Koppel uw apparaat aan uw comma-account - - - Go to https://connect.comma.ai on your phone - Ga naar https://connect.comma.ai op uw telefoon - - - Click "add new device" and scan the QR code on the right - Klik op "add new device" en scan de QR-code aan de rechterkant - - - Bookmark connect.comma.ai to your home screen to use it like an app - Voeg connect.comma.ai toe op uw startscherm om het als een app te gebruiken - - - - PrimeAdWidget - - Upgrade Now - Upgrade nu - - - Become a comma prime member at connect.comma.ai - Word een comma prime lid op connect.comma.ai - - - PRIME FEATURES: - PRIME BEVAT: - - - Remote access - Toegang op afstand - - - 1 year of storage - 1 jaar lang opslag - - - Developer perks - Voordelen voor ontwikkelaars - - - - PrimeUserWidget - - ✓ SUBSCRIBED - ✓ GEABONNEERD - - - comma prime - comma prime - - - CONNECT.COMMA.AI - CONNECT.COMMA.AI - - - COMMA POINTS - COMMA PUNTEN - - - - QObject - - Reboot - Opnieuw Opstarten - - - Exit - Afsluiten - - - dashcam - dashcam - - - openpilot - openpilot - - - %n minute(s) ago - - %n minuut geleden - %n minuten geleden - - - - %n hour(s) ago - - %n uur geleden - %n uur geleden - - - - %n day(s) ago - - %n dag geleden - %n dagen geleden - - - - - Reset - - Reset failed. Reboot to try again. - Opnieuw instellen mislukt. Start opnieuw op om opnieuw te proberen. - - - Are you sure you want to reset your device? - Weet u zeker dat u uw apparaat opnieuw wilt instellen? - - - Resetting device... - Apparaat opnieuw instellen... - - - System Reset - Systeemreset - - - System reset triggered. Press confirm to erase all content and settings. Press cancel to resume boot. - Systeemreset geactiveerd. Druk op bevestigen om alle inhoud en instellingen te wissen. Druk op Annuleren om het opstarten te hervatten. - - - Cancel - Annuleren - - - Reboot - Opnieuw Opstarten - - - Confirm - Bevestigen - - - Unable to mount data partition. Press confirm to reset your device. - Kan gegevenspartitie niet koppelen. Druk op bevestigen om uw apparaat te resetten. - - - - RichTextDialog - - Ok - Ok - - - - SettingsWindow - - × - × - - - Device - Apparaat - - - Network - Netwerk - - - Toggles - Opties - - - Software - Software - - - Navigation - Navigatie - - - - Setup - - WARNING: Low Voltage - WAARCHUWING: Lage Spanning - - - Power your device in a car with a harness or proceed at your own risk. - Voorzie uw apparaat van stroom in een auto met een harnas (car harness) of ga op eigen risico verder. - - - Power off - Uitschakelen - - - Continue - Doorgaan - - - Getting Started - Aan de slag - - - Before we get on the road, let’s finish installation and cover some details. - Laten we, voordat we op pad gaan, de installatie afronden en enkele details bespreken. - - - Connect to Wi-Fi - Maak verbinding met Wi-Fi - - - Back - Terug - - - Continue without Wi-Fi - Doorgaan zonder Wi-Fi - - - Waiting for internet - Wachten op internet - - - Choose Software to Install - Kies Software om te Installeren - - - Dashcam - Dashcam - - - Custom Software - Andere Software - - - Enter URL - Voer URL in - - - for Custom Software - voor Andere Software - - - Downloading... - Downloaden... - - - Download Failed - Downloaden Mislukt - - - Ensure the entered URL is valid, and the device’s internet connection is good. - Zorg ervoor dat de ingevoerde URL geldig is en dat de internetverbinding van het apparaat goed is. - - - Reboot device - Apparaat opnieuw opstarten - - - Start over - Begin opnieuw - - - - SetupWidget - - Finish Setup - Installatie voltooien - - - Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - Koppel uw apparaat met comma connect (connect.comma.ai) en claim uw comma prime-aanbieding. - - - Pair device - Apparaat koppelen - - - - Sidebar - - CONNECT - VERBINDING - - - OFFLINE - OFFLINE - - - ONLINE - ONLINE - - - ERROR - FOUT - - - TEMP - TEMP - - - HIGH - HOOG - - - GOOD - GOED - - - OK - OK - - - VEHICLE - VOERTUIG - - - NO - GEEN - - - PANDA - PANDA - - - GPS - GPS - - - SEARCH - ZOEKEN - - - -- - -- - - - Wi-Fi - Wi-Fi - - - ETH - ETH - - - 2G - 2G - - - 3G - 3G - - - LTE - 4G - - - 5G - 5G - - - - SoftwarePanel - - Git Branch - Git Branch - - - Git Commit - Git Commit - - - OS Version - OS Versie - - - Version - Versie - - - Last Update Check - Laatste Updatecontrole - - - The last time openpilot successfully checked for an update. The updater only runs while the car is off. - De laatste keer dat openpilot met succes heeft gecontroleerd op een update. De updater werkt alleen als de auto is uitgeschakeld. - - - Check for Update - Controleer op Updates - - - CHECKING - CONTROLEER - - - Switch Branch - Branch Verwisselen - - - ENTER - INVOEREN - - - The new branch will be pulled the next time the updater runs. - Tijdens de volgende update wordt de nieuwe branch opgehaald. - - - Enter branch name - Voer branch naam in - - - Uninstall %1 - Verwijder %1 - - - UNINSTALL - VERWIJDER - - - Are you sure you want to uninstall? - Weet u zeker dat u de installatie ongedaan wilt maken? - - - failed to fetch update - ophalen van update mislukt - - - CHECK - CONTROLEER - - - Updates are only downloaded while the car is off. - - - - Current Version - - - - Download - - - - Install Update - - - - INSTALL - - - - Target Branch - - - - SELECT - - - - Select a branch - - - - - SshControl - - SSH Keys - SSH Sleutels - - - Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - Waarschuwing: dit geeft SSH toegang tot alle openbare sleutels in uw GitHub-instellingen. Voer nooit een andere GitHub-gebruikersnaam in dan die van uzelf. Een medewerker van comma zal u NOOIT vragen om zijn GitHub-gebruikersnaam toe te voegen. - - - ADD - TOEVOEGEN - - - Enter your GitHub username - Voer uw GitHub gebruikersnaam in - - - LOADING - LADEN - - - REMOVE - VERWIJDEREN - - - Username '%1' has no keys on GitHub - Gebruikersnaam '%1' heeft geen SSH sleutels op GitHub - - - Request timed out - Time-out van aanvraag - - - Username '%1' doesn't exist on GitHub - Gebruikersnaam '%1' bestaat niet op GitHub - - - - SshToggle - - Enable SSH - SSH Inschakelen - - - - TermsPage - - Terms & Conditions - Algemene Voorwaarden - - - Decline - Afwijzen - - - Scroll to accept - Scroll om te accepteren - - - Agree - Akkoord - - - - TogglesPanel - - Enable openpilot - openpilot Inschakelen - - - Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - Gebruik het openpilot-systeem voor adaptieve cruisecontrol en rijstrookassistentie. Uw aandacht is te allen tijde vereist om deze functie te gebruiken. Het wijzigen van deze instelling wordt van kracht wanneer de auto wordt uitgeschakeld. - - - Enable Lane Departure Warnings - Waarschuwingen bij Verlaten Rijstrook Inschakelen - - - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - Ontvang waarschuwingen om terug naar de rijstrook te sturen wanneer uw voertuig over een gedetecteerde rijstrookstreep drijft zonder dat de richtingaanwijzer wordt geactiveerd terwijl u harder rijdt dan 50 km/u (31 mph). - - - Use Metric System - Gebruik Metrisch Systeem - - - Display speed in km/h instead of mph. - Geef snelheid weer in km/u in plaats van mph. - - - Record and Upload Driver Camera - Opnemen en Uploaden van de Bestuurders Camera - - - Upload data from the driver facing camera and help improve the driver monitoring algorithm. - Upload gegevens van de bestuurders camera en help het algoritme voor het monitoren van de bestuurder te verbeteren. - - - Disengage on Accelerator Pedal - Deactiveren Met Gaspedaal - - - When enabled, pressing the accelerator pedal will disengage openpilot. - Indien ingeschakeld, zal het indrukken van het gaspedaal openpilot deactiveren. - - - Show ETA in 24h Format - Toon verwachte aankomsttijd in 24-uurs formaat - - - Use 24h format instead of am/pm - Gebruik 24-uurs formaat in plaats van AM en PM - - - Show Map on Left Side of UI - Toon kaart aan linkerkant van het scherm - - - Show map on left side when in split screen view. - Toon kaart links in gesplitste schermweergave. - - - openpilot Longitudinal Control - openpilot Longitudinale Controle - - - openpilot will disable the car's radar and will take over control of gas and brakes. Warning: this disables AEB! - openpilot zal de radar van de auto uitschakelen en de controle over gas en remmen overnemen. Waarschuwing: hierdoor wordt AEB (automatische noodrem) uitgeschakeld! - - - 🌮 End-to-end longitudinal (extremely alpha) 🌮 - - - - Experimental openpilot Longitudinal Control - - - - <b>WARNING: openpilot longitudinal control is experimental for this car and will disable AEB.</b> - - - - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would. Super experimental. - - - - openpilot longitudinal control is not currently available for this car. - - - - Enable experimental longitudinal control to enable this. - - - - - Updater - - Update Required - Update Vereist - - - An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - Een update van het besturingssysteem is vereist. Verbind je apparaat met Wi-Fi voor de snelste update-ervaring. De downloadgrootte is ongeveer 1 GB. - - - Connect to Wi-Fi - Maak verbinding met Wi-Fi - - - Install - Installeer - - - Back - Terug - - - Loading... - Aan het laden... - - - Reboot - Opnieuw Opstarten - - - Update failed - Update mislukt - - - - WifiUI - - Scanning for networks... - Scannen naar netwerken... - - - CONNECTING... - VERBINDEN... - - - FORGET - VERGETEN - - - Forget Wi-Fi Network "%1"? - Vergeet Wi-Fi Netwerk "%1"? - - - diff --git a/selfdrive/ui/translations/main_pl.ts b/selfdrive/ui/translations/main_pl.ts deleted file mode 100644 index 4f8b03ef50d02ba..000000000000000 --- a/selfdrive/ui/translations/main_pl.ts +++ /dev/null @@ -1,1124 +0,0 @@ - - - - - AbstractAlert - - Close - Zamknij - - - Snooze Update - Zaktualizuj później - - - Reboot and Update - Uruchom ponownie i zaktualizuj - - - - AdvancedNetworking - - Back - Wróć - - - Enable Tethering - Włącz hotspot osobisty - - - Tethering Password - Hasło do hotspotu - - - EDIT - EDYTUJ - - - Enter new tethering password - Wprowadź nowe hasło do hotspotu - - - IP Address - Adres IP - - - Enable Roaming - Włącz roaming danych - - - APN Setting - Ustawienia APN - - - Enter APN - Wprowadź APN - - - leave blank for automatic configuration - Pozostaw puste, aby użyć domyślnej konfiguracji - - - Cellular Metered - - - - Prevent large data uploads when on a metered connection - - - - - AnnotatedCameraWidget - - km/h - km/h - - - mph - mph - - - MAX - MAX - - - SPEED - PRĘDKOŚĆ - - - LIMIT - OGRANICZENIE - - - - ConfirmationDialog - - Ok - Ok - - - Cancel - Anuluj - - - - DeclinePage - - You must accept the Terms and Conditions in order to use openpilot. - Aby korzystać z openpilota musisz zaakceptować regulamin. - - - Back - Wróć - - - Decline, uninstall %1 - Odrzuć, odinstaluj %1 - - - - DevicePanel - - Dongle ID - ID adaptera - - - N/A - N/A - - - Serial - Numer seryjny - - - Driver Camera - Kamera kierowcy - - - PREVIEW - PODGLĄD - - - Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - Wyświetl podgląd z kamery skierowanej na kierowcę, aby upewnić się, że monitoring kierowcy ma dobry zakres widzenia. (pojazd musi być wyłączony) - - - Reset Calibration - Zresetuj kalibrację - - - RESET - ZRESETUJ - - - Are you sure you want to reset calibration? - Czy na pewno chcesz zresetować kalibrację? - - - Review Training Guide - Zapoznaj się z samouczkiem - - - REVIEW - ZAPOZNAJ SIĘ - - - Review the rules, features, and limitations of openpilot - Zapoznaj się z zasadami, funkcjami i ograniczeniami openpilota - - - Are you sure you want to review the training guide? - Czy na pewno chcesz się zapoznać z samouczkiem? - - - Regulatory - Regulacja - - - VIEW - WIDOK - - - Change Language - Zmień język - - - CHANGE - ZMIEŃ - - - Select a language - Wybierz język - - - Reboot - Uruchom ponownie - - - Power Off - Wyłącz - - - openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - openpilot wymaga, aby urządzenie było zamontowane z maksymalnym odchyłem 4° poziomo, 5° w górę oraz 8° w dół. openpilot jest ciągle kalibrowany, rzadko konieczne jest resetowania urządzenia. - - - Your device is pointed %1° %2 and %3° %4. - Twoje urządzenie jest skierowane %1° %2 oraz %3° %4. - - - down - w dół - - - up - w górę - - - left - w lewo - - - right - w prawo - - - Are you sure you want to reboot? - Czy na pewno chcesz uruchomić ponownie urządzenie? - - - Disengage to Reboot - Aby uruchomić ponownie, odłącz sterowanie - - - Are you sure you want to power off? - Czy na pewno chcesz wyłączyć urządzenie? - - - Disengage to Power Off - Aby wyłączyć urządzenie, odłącz sterowanie - - - - DriveStats - - Drives - Przejazdy - - - Hours - Godziny - - - ALL TIME - CAŁKOWICIE - - - PAST WEEK - OSTATNI TYDZIEŃ - - - KM - KM - - - Miles - Mile - - - - DriverViewScene - - camera starting - uruchamianie kamery - - - - InputDialog - - Cancel - Anuluj - - - Need at least %n character(s)! - - Wpisana wartość powinna składać się przynajmniej z %n znaku! - Wpisana wartość powinna skłądać się przynajmniej z %n znaków! - Wpisana wartość powinna skłądać się przynajmniej z %n znaków! - - - - - Installer - - Installing... - Instalowanie... - - - Receiving objects: - Odbieranie obiektów: - - - Resolving deltas: - Rozwiązywanie różnic: - - - Updating files: - Aktualizacja plików: - - - - MapETA - - eta - przewidywany czas - - - min - min - - - hr - godz - - - km - km - - - mi - mi - - - - MapInstructions - - km - km - - - m - m - - - mi - mi - - - ft - ft - - - - MapPanel - - Current Destination - Miejsce docelowe - - - CLEAR - WYCZYŚĆ - - - Recent Destinations - Ostatnie miejsca docelowe - - - Try the Navigation Beta - Wypróbuj nawigację w wersji beta - - - Get turn-by-turn directions displayed and more with a comma -prime subscription. Sign up now: https://connect.comma.ai - Odblokuj nawigację zakręt po zakęcie i wiele więcej subskrybując -comma prime. Zarejestruj się teraz: https://connect.comma.ai - - - No home -location set - Lokalizacja domu -nie została ustawiona - - - No work -location set - Miejsce pracy -nie zostało ustawione - - - no recent destinations - brak ostatnich miejsc docelowych - - - - MapWindow - - Map Loading - Ładowanie Mapy - - - Waiting for GPS - Oczekiwanie na sygnał GPS - - - - MultiOptionDialog - - Select - Wybierz - - - Cancel - Anuluj - - - - Networking - - Advanced - Zaawansowane - - - Enter password - Wprowadź hasło - - - for "%1" - do "%1" - - - Wrong password - Niepoprawne hasło - - - - OffroadHome - - UPDATE - UAKTUALNIJ - - - ALERTS - ALERTY - - - ALERT - ALERT - - - - PairingPopup - - Pair your device to your comma account - Sparuj swoje urzadzenie ze swoim kontem comma - - - Go to https://connect.comma.ai on your phone - Wejdź na stronę https://connect.comma.ai na swoim telefonie - - - Click "add new device" and scan the QR code on the right - Kliknij "add new device" i zeskanuj kod QR znajdujący się po prawej stronie - - - Bookmark connect.comma.ai to your home screen to use it like an app - Dodaj connect.comma.ai do zakładek na swoim ekranie początkowym, aby korzystać z niej jak z aplikacji - - - - PrimeAdWidget - - Upgrade Now - Uaktualnij teraz - - - Become a comma prime member at connect.comma.ai - Zostań członkiem comma prime na connect.comma.ai - - - PRIME FEATURES: - FUNKCJE PRIME: - - - Remote access - Zdalny dostęp - - - 1 year of storage - 1 rok przechowywania danych - - - Developer perks - Udogodnienia dla programistów - - - - PrimeUserWidget - - ✓ SUBSCRIBED - ✓ ZASUBSKRYBOWANO - - - comma prime - comma prime - - - CONNECT.COMMA.AI - CONNECT.COMMA.AI - - - COMMA POINTS - COMMA POINTS - - - - QObject - - Reboot - Uruchom Ponownie - - - Exit - Wyjdź - - - dashcam - wideorejestrator - - - openpilot - openpilot - - - %n minute(s) ago - - %n minutę temu - %n minuty temu - %n minut temu - - - - %n hour(s) ago - - % godzinę temu - %n godziny temu - %n godzin temu - - - - %n day(s) ago - - %n dzień temu - %n dni temu - %n dni temu - - - - - Reset - - Reset failed. Reboot to try again. - Wymazywanie zakończone niepowodzeniem. Aby spróbować ponownie, uruchom ponownie urządzenie. - - - Are you sure you want to reset your device? - Czy na pewno chcesz wymazać urządzenie? - - - Resetting device... - Wymazywanie urządzenia... - - - System Reset - Przywróć do ustawień fabrycznych - - - System reset triggered. Press confirm to erase all content and settings. Press cancel to resume boot. - Przywracanie do ustawień fabrycznych. Wciśnij potwierdź, aby usunąć wszystkie dane oraz ustawienia. Wciśnij anuluj, aby wznowić uruchamianie. - - - Cancel - Anuluj - - - Reboot - Uruchom ponownie - - - Confirm - Potwiedź - - - Unable to mount data partition. Press confirm to reset your device. - Partycja nie została zamontowana poprawnie. Wciśnij potwierdź, aby uruchomić ponownie urządzenie. - - - - RichTextDialog - - Ok - Ok - - - - SettingsWindow - - × - x - - - Device - Urządzenie - - - Network - Sieć - - - Toggles - Przełączniki - - - Software - Oprogramowanie - - - Navigation - Nawigacja - - - - Setup - - WARNING: Low Voltage - OSTRZEŻENIE: Niskie Napięcie - - - Power your device in a car with a harness or proceed at your own risk. - Podłącz swoje urządzenie do zasilania poprzez podłączenienie go do pojazdu lub kontynuuj na własną odpowiedzialność. - - - Power off - Wyłącz - - - Continue - Kontynuuj - - - Getting Started - Zacznij - - - Before we get on the road, let’s finish installation and cover some details. - Zanim ruszysz w drogę, dokończ instalację i podaj kilka szczegółów. - - - Connect to Wi-Fi - Połącz z Wi-Fi - - - Back - Wróć - - - Continue without Wi-Fi - Kontynuuj bez połączenia z Wif-Fi - - - Waiting for internet - Oczekiwanie na połączenie sieciowe - - - Choose Software to Install - Wybierz oprogramowanie do instalacji - - - Dashcam - Wideorejestrator - - - Custom Software - Własne oprogramowanie - - - Enter URL - Wprowadź adres URL - - - for Custom Software - do własnego oprogramowania - - - Downloading... - Pobieranie... - - - Download Failed - Pobieranie nie powiodło się - - - Ensure the entered URL is valid, and the device’s internet connection is good. - Upewnij się, że wpisany adres URL jest poprawny, a połączenie internetowe działa poprawnie. - - - Reboot device - Uruchom ponownie - - - Start over - Zacznij od początku - - - - SetupWidget - - Finish Setup - Zakończ konfigurację - - - Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - Sparuj swoje urządzenie z comma connect (connect.comma.ai) i wybierz swoją ofertę comma prime. - - - Pair device - Sparuj urządzenie - - - - Sidebar - - CONNECT - POŁĄCZENIE - - - OFFLINE - OFFLINE - - - ONLINE - ONLINE - - - ERROR - BŁĄD - - - TEMP - TEMP - - - HIGH - WYSOKA - - - GOOD - DOBRA - - - OK - OK - - - VEHICLE - POJAZD - - - NO - BRAK - - - PANDA - PANDA - - - GPS - GPS - - - SEARCH - SZUKAJ - - - -- - -- - - - Wi-Fi - Wi-FI - - - ETH - ETH - - - 2G - 2G - - - 3G - 3G - - - LTE - LTE - - - 5G - 5G - - - - SoftwarePanel - - Git Branch - Gałąź Git - - - Git Commit - Git commit - - - OS Version - Wersja systemu - - - Version - Wersja - - - Last Update Check - Ostatnie sprawdzenie aktualizacji - - - The last time openpilot successfully checked for an update. The updater only runs while the car is off. - Ostatni raz kiedy openpilot znalazł aktualizację. Aktualizator może być uruchomiony wyłącznie wtedy, kiedy pojazd jest wyłączony. - - - Check for Update - Sprawdź uaktualnienia - - - CHECKING - SPRAWDZANIE - - - Switch Branch - Zmień gąłąź - - - ENTER - WPROWADŹ - - - The new branch will be pulled the next time the updater runs. - Nowa gałąź będzie pobrana przy następnym uruchomieniu aktualizatora. - - - Enter branch name - Wprowadź nazwę gałęzi - - - Uninstall %1 - Odinstaluj %1 - - - UNINSTALL - ODINSTALUJ - - - Are you sure you want to uninstall? - Czy na pewno chcesz odinstalować? - - - failed to fetch update - pobieranie aktualizacji zakończone niepowodzeniem - - - CHECK - SPRAWDŹ - - - Updates are only downloaded while the car is off. - - - - Current Version - - - - Download - - - - Install Update - - - - INSTALL - - - - Target Branch - - - - SELECT - - - - Select a branch - - - - - SshControl - - SSH Keys - Klucze SSH - - - Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - Ostrzeżenie: To spowoduje przekazanie dostępu do wszystkich Twoich publicznych kuczy z ustawień GitHuba. Nigdy nie wprowadzaj nazwy użytkownika innej niż swoja. Pracownik comma NIGDY nie poprosi o dodanie swojej nazwy uzytkownika. - - - ADD - DODAJ - - - Enter your GitHub username - Wpisz swoją nazwę użytkownika GitHub - - - LOADING - ŁADOWANIE - - - REMOVE - USUŃ - - - Username '%1' has no keys on GitHub - Użytkownik '%1' nie posiada żadnych kluczy na GitHubie - - - Request timed out - Limit czasu rządania - - - Username '%1' doesn't exist on GitHub - Użytkownik '%1' nie istnieje na GitHubie - - - - SshToggle - - Enable SSH - Włącz SSH - - - - TermsPage - - Terms & Conditions - Regulamin - - - Decline - Odrzuć - - - Scroll to accept - Przewiń w dół, aby zaakceptować - - - Agree - Zaakceptuj - - - - TogglesPanel - - Enable openpilot - Włącz openpilota - - - Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - Użyj openpilota do zachowania bezpiecznego odstępu między pojazdami i do asystowania w utrzymywaniu pasa ruchu. Twoja pełna uwaga jest wymagana przez cały czas korzystania z tej funkcji. Ustawienie to może być wdrożone wyłącznie wtedy, gdy pojazd jest wyłączony. - - - Enable Lane Departure Warnings - Włącz ostrzeganie przed zmianą pasa ruchu - - - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - Otrzymuj alerty o powrocie na właściwy pas, kiedy Twój pojazd przekroczy linię bez włączonego kierunkowskazu jadąc powyżej 50 km/h (31 mph). - - - Use Metric System - Korzystaj z systemu metrycznego - - - Display speed in km/h instead of mph. - Wyświetl prędkość w km/h zamiast mph. - - - Record and Upload Driver Camera - Nagraj i prześlij nagranie z kamery kierowcy - - - Upload data from the driver facing camera and help improve the driver monitoring algorithm. - Prześlij dane z kamery skierowanej na kierowcę i pomóż poprawiać algorytm monitorowania kierowcy. - - - Disengage on Accelerator Pedal - Odłącz poprzez naciśnięcie gazu - - - When enabled, pressing the accelerator pedal will disengage openpilot. - Po włączeniu, naciśnięcie na pedał gazu odłączy openpilota. - - - Show ETA in 24h Format - Pokaż oczekiwany czas dojazdu w formacie 24-godzinnym - - - Use 24h format instead of am/pm - Korzystaj z formatu 24-godzinnego zamiast 12-godzinnego - - - Show Map on Left Side of UI - Pokaż mapę po lewej stronie ekranu - - - Show map on left side when in split screen view. - Pokaż mapę po lewej stronie kiedy ekran jest podzielony. - - - openpilot Longitudinal Control - Kontrola wzdłużna openpilota - - - openpilot will disable the car's radar and will take over control of gas and brakes. Warning: this disables AEB! - openpilot wyłączy radar samochodu i przejmie kontrolę nad gazem i hamulcem. Ostrzeżenie: wyłączony zostanie system AEB! - - - 🌮 End-to-end longitudinal (extremely alpha) 🌮 - - - - Experimental openpilot Longitudinal Control - - - - <b>WARNING: openpilot longitudinal control is experimental for this car and will disable AEB.</b> - - - - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would. Super experimental. - - - - openpilot longitudinal control is not currently available for this car. - - - - Enable experimental longitudinal control to enable this. - - - - - Updater - - Update Required - Wymagana Aktualizacja - - - An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - Wymagana aktualizacja systemu operacyjnego. Aby przyspieszyć proces aktualizacji połącz swoje urzeądzenie do Wi-Fi. Rozmiar pobieranej paczki wynosi około 1GB. - - - Connect to Wi-Fi - Połącz się z Wi-Fi - - - Install - Zainstaluj - - - Back - Wróć - - - Loading... - Ładowanie... - - - Reboot - Uruchom ponownie - - - Update failed - Aktualizacja nie powiodła się - - - - WifiUI - - Scanning for networks... - Wyszukiwanie sieci... - - - CONNECTING... - ŁĄCZENIE... - - - FORGET - ZAPOMNIJ - - - Forget Wi-Fi Network "%1"? - Czy chcesz zapomnieć sieć "%1"? - - - diff --git a/selfdrive/ui/translations/main_pt-BR.ts b/selfdrive/ui/translations/main_pt-BR.ts index 132ce482c33031e..58d7bc2c4f87cb0 100644 --- a/selfdrive/ui/translations/main_pt-BR.ts +++ b/selfdrive/ui/translations/main_pt-BR.ts @@ -5,331 +5,331 @@ AbstractAlert Close - Fechar + Snooze Update - Adiar Atualização + Reboot and Update - Reiniciar e Atualizar + AdvancedNetworking Back - Voltar + Enable Tethering - Ativar Tether + Tethering Password - Senha Tethering + EDIT - EDITAR + Enter new tethering password - Insira nova senha tethering + IP Address - Endereço IP + Enable Roaming - Ativar Roaming + APN Setting - APN Config + Enter APN - Insira APN + leave blank for automatic configuration - deixe em branco para configuração automática + Cellular Metered - Plano de Dados Limitado + Prevent large data uploads when on a metered connection - Evite grandes uploads de dados quando estiver em uma conexão limitada + AnnotatedCameraWidget km/h - km/h + mph - mph + MAX - LIMITE + SPEED - MAX + LIMIT - VELO + ConfirmationDialog Ok - OK + Cancel - Cancelar + DeclinePage You must accept the Terms and Conditions in order to use openpilot. - Você precisa aceitar os Termos e Condições para utilizar openpilot. + Back - Voltar + Decline, uninstall %1 - Rejeitar, desintalar %1 + DestinationWidget Home - Casa + Work - Trabalho + No destination set - Nenhum destino definido - - - No %1 location set - Endereço de %1 não definido + home - casa + work - trabalho + + + + No %1 location set + DevicePanel Dongle ID - Dongle ID + N/A - N/A + Serial - Serial + Driver Camera - Câmera do Motorista + PREVIEW - VER + Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - Pré-visualizar a câmera voltada para o motorista para garantir que o monitoramento do sistema tenha uma boa visibilidade (veículo precisa estar desligado) + Reset Calibration - Reinicializar Calibragem + RESET - RESET + Are you sure you want to reset calibration? - Tem certeza que quer resetar a calibragem? + + + + Reset + Review Training Guide - Revisar Guia de Treinamento + REVIEW - REVISAR + Review the rules, features, and limitations of openpilot - Revisar regras, aprimoramentos e limitações do openpilot + Are you sure you want to review the training guide? - Tem certeza que quer rever o treinamento? + + + + Review + Regulatory - Regulatório + VIEW - VER + Change Language - Alterar Idioma + CHANGE - ALTERAR + Select a language - Selecione o Idioma + Reboot - Reiniciar + Power Off - Desligar + openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - O openpilot requer que o dispositivo seja montado dentro de 4° esquerda ou direita e dentro de 5° para cima ou 8° para baixo. O openpilot está continuamente calibrando, resetar raramente é necessário. + Your device is pointed %1° %2 and %3° %4. - Seu dispositivo está montado %1° %2 e %3° %4. + down - baixo + up - cima + left - esquerda + right - direita + Are you sure you want to reboot? - Tem certeza que quer reiniciar? + Disengage to Reboot - Desacione para Reiniciar + Are you sure you want to power off? - Tem certeza que quer desligar? + Disengage to Power Off - Desacione para Desligar - - - Reset - Resetar - - - Review - Revisar + DriveStats Drives - Dirigidas + Hours - Horas + ALL TIME - TOTAL + PAST WEEK - SEMANA PASSADA + KM - KM + Miles - Milhas + DriverViewScene camera starting - câmera iniciando + ExperimentalModeButton EXPERIMENTAL MODE ON - MODO EXPERIMENTAL ON + CHILL MODE ON - MODO CHILL ON + InputDialog Cancel - Cancelar + Need at least %n character(s)! - - Necessita no mínimo %n caractere! - Necessita no mínimo %n caracteres! + + + @@ -337,288 +337,287 @@ Installer Installing... - Instalando... + MapETA eta - eta + min - min + hr - hr + km - km + mi - mi + MapInstructions km - km + m - m + mi - milha + ft - pés + MapSettings NAVIGATION - NAVEGAÇÃO + Manage at connect.comma.ai - Gerencie em connect.comma.ai + MapWindow Map Loading - Carregando Mapa + Waiting for GPS - Aguardando GPS + Waiting for route - Aguardando rota + MultiOptionDialog Select - Selecione + Cancel - Cancelar + Networking Advanced - Avançado + Enter password - Insira a senha + for "%1" - para "%1" + Wrong password - Senha incorreta + OffroadAlert + + Device temperature too high. System cooling down before starting. Current internal component temperature: %1 + + Immediately connect to the internet to check for updates. If you do not connect to the internet, openpilot won't engage in %1 - Conecte-se imediatamente à internet para verificar se há atualizações. Se você não se conectar à internet em %1 não será possível acionar o openpilot. + Connect to internet to check for updates. openpilot won't automatically start until it connects to internet to check for updates. - Conecte-se à internet para verificar se há atualizações. O openpilot não será iniciado automaticamente até que ele se conecte à internet para verificar se há atualizações. + Unable to download updates %1 - Não é possível baixar atualizações -%1 + Invalid date and time settings, system won't start. Connect to internet to set time. - Configurações de data e hora inválidas, o sistema não será iniciado. Conecte-se à internet para definir o horário. + Taking camera snapshots. System won't start until finished. - Tirando fotos da câmera. O sistema não será iniciado até terminar. + An update to your device's operating system is downloading in the background. You will be prompted to update when it's ready to install. - Uma atualização para o sistema operacional do seu dispositivo está sendo baixada em segundo plano. Você será solicitado a atualizar quando estiver pronto para instalar. + Device failed to register. It will not connect to or upload to comma.ai servers, and receives no support from comma.ai. If this is an official device, visit https://comma.ai/support. - Falha ao registrar o dispositivo. Ele não se conectará ou fará upload para os servidores comma.ai e não receberá suporte da comma.ai. Se este for um dispositivo oficial, visite https://comma.ai/support. + NVMe drive not mounted. - Unidade NVMe não montada. + Unsupported NVMe drive detected. Device may draw significantly more power and overheat due to the unsupported NVMe. - Unidade NVMe não suportada detectada. O dispositivo pode consumir significativamente mais energia e superaquecimento devido ao NVMe não suportado. + openpilot was unable to identify your car. Your car is either unsupported or its ECUs are not recognized. Please submit a pull request to add the firmware versions to the proper vehicle. Need help? Join discord.comma.ai. - O openpilot não conseguiu identificar o seu carro. Seu carro não é suportado ou seus ECUs não são reconhecidos. Envie um pull request para adicionar as versões de firmware ao veículo adequado. Precisa de ajuda? Junte-se discord.comma.ai. + openpilot was unable to identify your car. Check integrity of cables and ensure all connections are secure, particularly that the comma power is fully inserted in the OBD-II port of the vehicle. Need help? Join discord.comma.ai. - O openpilot não conseguiu identificar o seu carro. Verifique a integridade dos cabos e certifique-se de que todas as conexões estejam seguras, especialmente se o comma power está totalmente inserido na porta OBD-II do veículo. Precisa de ajuda? Junte-se discord.comma.ai. + openpilot detected a change in the device's mounting position. Ensure the device is fully seated in the mount and the mount is firmly secured to the windshield. - O openpilot detectou uma mudança na posição de montagem do dispositivo. Verifique se o dispositivo está totalmente encaixado no suporte e se o suporte está firmemente preso ao para-brisa. - - - Device temperature too high. System cooling down before starting. Current internal component temperature: %1 - Temperatura do dispositivo muito alta. O sistema está sendo resfriado antes de iniciar. A temperatura atual do componente interno é: %1 + OffroadHome UPDATE - ATUALIZAÇÃO + ALERTS - ALERTAS + ALERT - ALERTA + PairingPopup Pair your device to your comma account - Pareie seu dispositivo à sua conta comma + Go to https://connect.comma.ai on your phone - navegue até https://connect.comma.ai no seu telefone + Click "add new device" and scan the QR code on the right - Clique "add new device" e escaneie o QR code a seguir + Bookmark connect.comma.ai to your home screen to use it like an app - Salve connect.comma.ai como sua página inicial para utilizar como um app + ParamControl - Cancel - Cancelar + Enable + - Enable - Ativar + Cancel + PrimeAdWidget Upgrade Now - Atualizar Agora + Become a comma prime member at connect.comma.ai - Seja um membro comma prime em connect.comma.ai + PRIME FEATURES: - BENEFÍCIOS PRIME: + Remote access - Acesso remoto (proxy comma) + 24/7 LTE connectivity - Conectividade LTE (só nos EUA) + - Turn-by-turn navigation - Navegação passo a passo + 1 year of drive storage + - 1 year of drive storage - 1 ano de dados em nuvem + Turn-by-turn navigation + PrimeUserWidget ✓ SUBSCRIBED - ✓ INSCRITO + comma prime - comma prime + QObject Reboot - Reiniciar + Exit - Sair + dashcam - dashcam + openpilot - openpilot + %n minute(s) ago - - há %n minuto - há %n minutos + + + %n hour(s) ago - - há %n hora - há %n horas + + + %n day(s) ago - - há %n dia - há %n dias + + + @@ -626,601 +625,660 @@ Reset Reset failed. Reboot to try again. - Reset falhou. Reinicie para tentar novamente. + + + + Resetting device... +This may take up to a minute. + Are you sure you want to reset your device? - Tem certeza que quer resetar seu dispositivo? + System Reset - Resetar Sistema + + + + Press confirm to erase all content and settings. Press cancel to resume boot. + Cancel - Cancelar + Reboot - Reiniciar + Confirm - Confirmar + Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. - Não é possível montar a partição de dados. Partição corrompida. Confirme para apagar e redefinir o dispositivo. - - - Press confirm to erase all content and settings. Press cancel to resume boot. - Pressione confirmar para apagar todo o conteúdo e configurações. Pressione cancelar para voltar. - - - Resetting device... -This may take up to a minute. - Redefinindo o dispositivo -Isso pode levar até um minuto. + SettingsWindow × - × + Device - Dispositivo + Network - Rede + Toggles - Ajustes + Software - Software + Setup + + Something went wrong. Reboot the device. + + + + Ensure the entered URL is valid, and the device’s internet connection is good. + + + + No custom software found at this URL. + + WARNING: Low Voltage - ALERTA: Baixa Voltagem + Power your device in a car with a harness or proceed at your own risk. - Ligue seu dispositivo em um carro com um chicote ou prossiga por sua conta e risco. + Power off - Desligar + Continue - Continuar + Getting Started - Começando + Before we get on the road, let’s finish installation and cover some details. - Antes de pegarmos a estrada, vamos terminar a instalação e cobrir alguns detalhes. + Connect to Wi-Fi - Conectar ao Wi-Fi + Back - Voltar + - Continue without Wi-Fi - Continuar sem Wi-Fi + Enter URL + - Waiting for internet - Esperando pela internet + for Custom Software + - Enter URL - Preencher URL + Continue without Wi-Fi + - for Custom Software - para o Software Customizado + Waiting for internet + Downloading... - Baixando... + Download Failed - Download Falhou - - - Ensure the entered URL is valid, and the device’s internet connection is good. - Garanta que a URL inserida é valida, e uma boa conexão à internet. + Reboot device - Reiniciar Dispositivo + Start over - Inicializar - - - No custom software found at this URL. - Não há software personalizado nesta URL. - - - Something went wrong. Reboot the device. - Algo deu errado. Reinicie o dispositivo. + SetupWidget Finish Setup - Concluir + Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - Pareie seu dispositivo com comma connect (connect.comma.ai) e reivindique sua oferta de comma prime. + Pair device - Parear dispositivo + Sidebar CONNECT - CONEXÃO + OFFLINE - OFFLINE + ONLINE - ONLINE + ERROR - ERRO + TEMP - TEMP + HIGH - ALTA + GOOD - BOA + OK - OK + VEHICLE - VEÍCULO + NO - SEM + PANDA - PANDA + GPS - GPS + SEARCH - PROCURA + -- - -- + Wi-Fi - Wi-Fi + ETH - ETH + 2G - 2G + 3G - 3G + LTE - LTE + 5G - 5G + SoftwarePanel Updates are only downloaded while the car is off. - Atualizações baixadas durante o motor desligado. + Current Version - Versão Atual + Download - Download + + + + CHECK + Install Update - Instalar Atualização + INSTALL - INSTALAR + Target Branch - Alterar Branch + SELECT - SELECIONE + Select a branch - Selecione uma branch - - - UNINSTALL - REMOVER + Uninstall %1 - Desinstalar o %1 + - Are you sure you want to uninstall? - Tem certeza que quer desinstalar? + UNINSTALL + - CHECK - VERIFICAR + Are you sure you want to uninstall? + Uninstall - Desinstalar + failed to check for update - falha ao verificar por atualizações - - - up to date, last checked %1 - atualizado, última verificação %1 + DOWNLOAD - BAIXAR + update available - atualização disponível + never - nunca + + + + up to date, last checked %1 + SshControl SSH Keys - Chave SSH + Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - Aviso: isso concede acesso SSH a todas as chaves públicas nas configurações do GitHub. Nunca insira um nome de usuário do GitHub que não seja o seu. Um funcionário da comma NUNCA pedirá que você adicione seu nome de usuário do GitHub. + ADD - ADICIONAR + Enter your GitHub username - Insira seu nome de usuário do GitHub + LOADING - CARREGANDO + REMOVE - REMOVER + Username '%1' has no keys on GitHub - Usuário "%1” não possui chaves no GitHub + Request timed out - A solicitação expirou + Username '%1' doesn't exist on GitHub - Usuário '%1' não existe no GitHub + SshToggle Enable SSH - Habilitar SSH + TermsPage Terms & Conditions - Termos & Condições + Decline - Declinar + Scroll to accept - Role a tela para aceitar + Agree - Concordo + TogglesPanel Enable openpilot - Ativar openpilot + Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - Use o sistema openpilot para controle de cruzeiro adaptativo e assistência ao motorista de manutenção de faixa. Sua atenção é necessária o tempo todo para usar esse recurso. A alteração desta configuração tem efeito quando o carro é desligado. + - Enable Lane Departure Warnings - Ativar Avisos de Saída de Faixa + openpilot Longitudinal Control (Alpha) + - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - Receba alertas para voltar para a pista se o seu veículo sair da faixa e a seta não tiver sido acionada previamente quando em velocidades superiores a 50 km/h. + WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + - Use Metric System - Usar Sistema Métrico + On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + - Display speed in km/h instead of mph. - Exibir velocidade em km/h invés de mph. + Experimental Mode + + + + Disengage on Accelerator Pedal + + + + When enabled, pressing the accelerator pedal will disengage openpilot. + + + + Enable Lane Departure Warnings + + + + Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). + Record and Upload Driver Camera - Gravar e Upload Câmera Motorista + Upload data from the driver facing camera and help improve the driver monitoring algorithm. - Upload dados da câmera voltada para o motorista e ajude a melhorar o algoritmo de monitoramentor. + - Disengage on Accelerator Pedal - Desacionar com Pedal do Acelerador + Use Linked Brightness + - When enabled, pressing the accelerator pedal will disengage openpilot. - Quando ativado, pressionar o pedal do acelerador desacionará o openpilot. + Use the car's headlight state for brightness control. + - Show ETA in 24h Format - Mostrar ETA em Formato 24h + Use LQR on Lat Control for PA + - Use 24h format instead of am/pm - Use o formato 24h em vez de am/pm + When enabled, using LQR on lat control for prius alpha. + - Show Map on Left Side of UI - Exibir Mapa no Lado Esquerdo + Compass + - Show map on left side when in split screen view. - Exibir mapa do lado esquerdo quando a tela for dividida. + Add a compass to the onroad UI that indicates your current driving direction. + - Experimental Mode - Modo Experimental + UI: Disable openpilot Sounds + - openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: - openpilot por padrão funciona em <b>modo chill</b>. modo Experimental ativa <b>recursos de nível-embrionário</b> que não estão prontos para o modo chill. Recursos experimentais estão listados abaixo: + Turn off openpilot sounds. + - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. - Deixe o modelo de IA controlar o acelerador e os freios. O openpilot irá dirigir como pensa que um humano faria, incluindo parar em sinais vermelhos e sinais de parada. Uma vez que o modelo de condução decide a velocidade a conduzir, a velocidade definida apenas funcionará como um limite superior. Este é um recurso de qualidade embrionária; erros devem ser esperados. + Turn Off Display After 30 Seconds + - New Driving Visualization - Nova Visualização de Condução + Turn off the device's display after going 'onroad' for 30 seconds. + - Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. - O modo Experimental está atualmente indisponível para este carro já que o ACC original do carro é usado para controle longitudinal. + Long: Cruise Speed Override + - openpilot longitudinal control may come in a future update. - O controle longitudinal openpilot poderá vir em uma atualização futura. + Allow openpilot's set speed to be set below the vehicle's minimum cruise speed. To use this feature, when the vehicle is travelling below its minimum set speed, pull the cruise control lever down (or click the cruise control SET button) once, openpilot will set its maximum speed to the vehicle's current speed. + - openpilot Longitudinal Control (Alpha) - Controle Longitudinal openpilot (Embrionário) + Use Metric System + - WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). - AVISO: o controle longitudinal openpilot está em estado embrionário para este carro e desativará a Frenagem Automática de Emergência (AEB). + Display speed in km/h instead of mph. + - On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. - Neste carro, o openpilot tem como padrão o ACC embutido do carro em vez do controle longitudinal do openpilot. Habilite isso para alternar para o controle longitudinal openpilot. Recomenda-se ativar o modo Experimental ao ativar o embrionário controle longitudinal openpilot. + Show ETA in 24h Format + + + + Use 24h format instead of am/pm + + + + Show Map on Left Side of UI + + + + Show map on left side when in split screen view. + Aggressive - Disputa + Standard - Neutro + Relaxed - Calmo + Driving Personality - Temperamento de Direção + Standard is recommended. In aggressive mode, openpilot will follow lead cars closer and be more aggressive with the gas and brake. In relaxed mode openpilot will stay further away from lead cars. - Neutro é o recomendado. No modo disputa o openpilot seguirá o carro da frente mais de perto e será mais agressivo com a aceleração e frenagem. No modo calmo o openpilot se manterá mais longe do carro da frente. + - An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. - Uma versão embrionária do controle longitudinal openpilot pode ser testada em conjunto com o modo Experimental, em branches que não sejam de produção. + Driving Personalities Via UI / Wheel + - Navigate on openpilot - Navegação no openpilot + Switch driving personalities using the 'Distance' button on the steering wheel (Toyota/Lexus Only) or via the onroad UI for other makes. + +1 bar = Aggressive +2 bars = Standard +3 bars = Relaxed + - Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. - Habilite o controle longitudinal (embrionário) openpilot para permitir o modo Experimental. + openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: + End-to-End Longitudinal Control - Controle Longitudinal de Ponta a Ponta + + + + Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. + + + + Navigate on openpilot + When navigation has a destination, openpilot will input the map information into the model. This provides useful context for the model and allows openpilot to keep left or right appropriately at forks/exits. Lane change behavior is unchanged and still activated by the driver. This is an alpha quality feature; mistakes should be expected, particularly around exits and forks. These mistakes can include unintended laneline crossings, late exit taking, driving towards dividing barriers in the gore areas, etc. + + New Driving Visualization + + The driving visualization will transition to the road-facing wide-angle camera at low speeds to better show some turns. The Experimental mode logo will also be shown in the top right corner. When a navigation destination is set and the driving model is using it as input, the driving path on the map will turn green. + + Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. + + + + openpilot longitudinal control may come in a future update. + + + + An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + + + + Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + + Updater Update Required - Atualização Necessária + An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - Uma atualização do sistema operacional é necessária. Conecte seu dispositivo ao Wi-Fi para a experiência de atualização mais rápida. O tamanho do download é de aproximadamente 1GB. + Connect to Wi-Fi - Conecte-se ao Wi-Fi + Install - Instalar + Back - Voltar + Loading... - Carregando... + Reboot - Reiniciar + Update failed - Falha na atualização + WiFiPromptWidget Setup Wi-Fi - Configurar Wi-Fi + Connect to Wi-Fi to upload driving data and help improve openpilot - Conecte se ao Wi-Fi para realizar upload de dados de condução e ajudar a melhorar o openpilot + Open Settings - Abrir Configurações + Ready to upload - Pronto para upload + Training data will be pulled periodically while your device is on Wi-Fi - Os dados de treinamento serão extraídos periodicamente enquanto o dispositivo estiver no Wi-Fi + WifiUI Scanning for networks... - Procurando redes... + CONNECTING... - CONECTANDO... + FORGET - ESQUECER + Forget Wi-Fi Network "%1"? - Esquecer Rede Wi-Fi "%1"? + Forget - Esquecer + diff --git a/selfdrive/ui/translations/main_th.ts b/selfdrive/ui/translations/main_th.ts deleted file mode 100644 index 75665eb84eb2941..000000000000000 --- a/selfdrive/ui/translations/main_th.ts +++ /dev/null @@ -1,1206 +0,0 @@ - - - - - AbstractAlert - - Close - ปิด - - - Snooze Update - เลื่อนการอัปเดต - - - Reboot and Update - รีบูตและอัปเดต - - - - AdvancedNetworking - - Back - ย้อนกลับ - - - Enable Tethering - ปล่อยฮอตสปอต - - - Tethering Password - รหัสผ่านฮอตสปอต - - - EDIT - แก้ไข - - - Enter new tethering password - ป้อนรหัสผ่านฮอตสปอตใหม่ - - - IP Address - หมายเลขไอพี - - - Enable Roaming - เปิดใช้งานโรมมิ่ง - - - APN Setting - ตั้งค่า APN - - - Enter APN - ป้อนค่า APN - - - leave blank for automatic configuration - เว้นว่างเพื่อตั้งค่าอัตโนมัติ - - - Cellular Metered - ลดการส่งข้อมูลผ่านเซลลูล่าร์ - - - Prevent large data uploads when on a metered connection - ปิดการอัพโหลดข้อมูลขนาดใหญ่เมื่อเชื่อมต่อผ่านเซลลูล่าร์ - - - - AnnotatedCameraWidget - - km/h - กม./ชม. - - - mph - ไมล์/ชม. - - - MAX - สูงสุด - - - SPEED - ความเร็ว - - - LIMIT - จำกัด - - - - ConfirmationDialog - - Ok - ตกลง - - - Cancel - ยกเลิก - - - - DeclinePage - - You must accept the Terms and Conditions in order to use openpilot. - คุณต้องยอมรับเงื่อนไขและข้อตกลง เพื่อใช้งาน openpilot - - - Back - ย้อนกลับ - - - Decline, uninstall %1 - ปฏิเสธ และถอนการติดตั้ง %1 - - - - DestinationWidget - - Home - บ้าน - - - Work - ที่ทำงาน - - - No destination set - ยังไม่ได้เลือกจุดหมาย - - - home - บ้าน - - - work - ที่ทำงาน - - - No %1 location set - ยังไม่ได้เลือกตำแหน่ง%1 - - - - DevicePanel - - Dongle ID - Dongle ID - - - N/A - ไม่มี - - - Serial - ซีเรียล - - - Driver Camera - กล้องฝั่งคนขับ - - - PREVIEW - แสดงภาพ - - - Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - ดูภาพตัวอย่างกล้องที่หันเข้าหาคนขับเพื่อให้แน่ใจว่าการตรวจสอบคนขับมีทัศนวิสัยที่ดี (รถต้องดับเครื่องยนต์) - - - Reset Calibration - รีเซ็ตการคาลิเบรท - - - RESET - รีเซ็ต - - - Are you sure you want to reset calibration? - คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตการคาลิเบรท? - - - Review Training Guide - ทบทวนคู่มือการใช้งาน - - - REVIEW - ทบทวน - - - Review the rules, features, and limitations of openpilot - ตรวจสอบกฎ คุณสมบัติ และข้อจำกัดของ openpilot - - - Are you sure you want to review the training guide? - คุณแน่ใจหรือไม่ว่าต้องการทบทวนคู่มือการใช้งาน? - - - Regulatory - ระเบียบข้อบังคับ - - - VIEW - ดู - - - Change Language - เปลี่ยนภาษา - - - CHANGE - เปลี่ยน - - - Select a language - เลือกภาษา - - - Reboot - รีบูต - - - Power Off - ปิดเครื่อง - - - openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - openpilot กำหนดให้ติดตั้งอุปกรณ์ โดยสามารถเอียงด้านซ้ายหรือขวาไม่เกิน 4° และเอียงขึ้นด้านบนไม่เกิน 5° หรือเอียงลงด้านล่างไม่เกิน 8° openpilot ทำการคาลิเบรทอย่างต่อเนื่อง แทบจะไม่จำเป็นต้องทำการรีเซ็ตการคาลิเบรท - - - Your device is pointed %1° %2 and %3° %4. - อุปกรณ์ของคุณเอียงไปทาง %2 %1° และ %4 %3° - - - down - ด้านล่าง - - - up - ด้านบน - - - left - ด้านซ้าย - - - right - ด้านขวา - - - Are you sure you want to reboot? - คุณแน่ใจหรือไม่ว่าต้องการรีบูต? - - - Disengage to Reboot - ยกเลิกระบบช่วยขับเพื่อรีบูต - - - Are you sure you want to power off? - คุณแน่ใจหรือไม่ว่าต้องการปิดเครื่อง? - - - Disengage to Power Off - ยกเลิกระบบช่วยขับเพื่อปิดเครื่อง - - - Reset - รีเซ็ต - - - Review - ทบทวน - - - - DriveStats - - Drives - การขับขี่ - - - Hours - ชั่วโมง - - - ALL TIME - ทั้งหมด - - - PAST WEEK - สัปดาห์ที่ผ่านมา - - - KM - กิโลเมตร - - - Miles - ไมล์ - - - - DriverViewScene - - camera starting - กำลังเปิดกล้อง - - - - ExperimentalModeButton - - EXPERIMENTAL MODE ON - คุณกำลังใช้โหมดทดลอง - - - CHILL MODE ON - คุณกำลังใช้โหมดชิล - - - - InputDialog - - Cancel - ยกเลิก - - - Need at least %n character(s)! - - ต้องการอย่างน้อย %n ตัวอักษร! - - - - - Installer - - Installing... - กำลังติดตั้ง... - - - - MapETA - - eta - eta - - - min - นาที - - - hr - ชม. - - - km - กม. - - - mi - ไมล์ - - - - MapInstructions - - km - กม. - - - m - ม. - - - mi - ไมล์ - - - ft - ฟุต - - - - MapSettings - - NAVIGATION - การนำทาง - - - Manage at connect.comma.ai - จัดการได้ที่ connect.comma.ai - - - - MapWindow - - Map Loading - กำลังโหลดแผนที่ - - - Waiting for GPS - กำลังรอสัญญาณ GPS - - - - MultiOptionDialog - - Select - เลือก - - - Cancel - ยกเลิก - - - - Networking - - Advanced - ขั้นสูง - - - Enter password - ใส่รหัสผ่าน - - - for "%1" - สำหรับ "%1" - - - Wrong password - รหัสผ่านผิด - - - - OffroadAlert - - Device temperature too high. System cooling down before starting. Current internal component temperature: %1 - อุณหภูมิของอุปกรณ์สูงเกินไป ระบบกำลังทำความเย็นก่อนเริ่ม อุณหภูมิของชิ้นส่วนภายในปัจจุบัน: %1 - - - Immediately connect to the internet to check for updates. If you do not connect to the internet, openpilot won't engage in %1 - กรุณาเชื่อมต่ออินเตอร์เน็ตเพื่อตรวจสอบอัปเดทเดี๋ยวนี้ ถ้าคุณไม่เชื่อมต่ออินเตอร์เน็ต openpilot จะไม่ทำงานในอีก %1 - - - Connect to internet to check for updates. openpilot won't automatically start until it connects to internet to check for updates. - กรุณาเชื่อมต่ออินเตอร์เน็ตเพื่อตรวจสอบอัปเดท openpilot จะไม่เริ่มทำงานอัตโนมัติจนกว่าจะได้เชื่อมต่อกับอินเตอร์เน็ตเพื่อตรวจสอบอัปเดท - - - Unable to download updates -%1 - ไม่สามารถดาวน์โหลดอัพเดทได้ -%1 - - - Invalid date and time settings, system won't start. Connect to internet to set time. - วันที่และเวลาไม่ถูกต้อง ระบบจะไม่เริ่มทำงาน เชื่อต่ออินเตอร์เน็ตเพื่อตั้งเวลา - - - Taking camera snapshots. System won't start until finished. - กล้องกำลังถ่ายภาพ ระบบจะไม่เริ่มทำงานจนกว่าจะเสร็จ - - - An update to your device's operating system is downloading in the background. You will be prompted to update when it's ready to install. - กำลังดาวน์โหลดอัปเดทสำหรับระบบปฏิบัติการอยู่เบื้องหลัง คุณจะได้รับการแจ้งเตือนเมื่อระบบพร้อมสำหรับการติดตั้ง - - - Device failed to register. It will not connect to or upload to comma.ai servers, and receives no support from comma.ai. If this is an official device, visit https://comma.ai/support. - ไม่สามารถลงทะเบียนอุปกรณ์ได้ อุปกรณ์จะไม่สามารถเชื่อมต่อหรืออัปโหลดไปยังเซิร์ฟเวอร์ของ comma.ai ได้และจะไม่ได้รับการสนับสนุนจาก comma.ai ถ้านี่คืออุปกรณ์อย่างเป็นทางการ กรุณาติดต่อ https://comma.ai/support - - - NVMe drive not mounted. - ไม่ได้ติดตั้งไดร์ฟ NVMe - - - Unsupported NVMe drive detected. Device may draw significantly more power and overheat due to the unsupported NVMe. - ตรวจพบไดร์ฟ NVMe ที่ไม่รองรับ อุปกรณ์อาจใช้พลังงานมากขึ้นและร้อนเกินไปเนื่องจากไดร์ฟ NVMe ที่ไม่รองรับ - - - openpilot was unable to identify your car. Your car is either unsupported or its ECUs are not recognized. Please submit a pull request to add the firmware versions to the proper vehicle. Need help? Join discord.comma.ai. - openpilot ไม่สามารถระบุรถยนต์ของคุณได้ ระบบอาจไม่รองรับรถยนต์ของคุณหรือไม่รู้จัก ECU กรุณาส่ง pull request เพื่อเพิ่มรุ่นของเฟิร์มแวร์ให้กับรถยนต์ที่เหมาะสม หากต้องการความช่วยเหลือให้เข้าร่วม discord.comma.ai - - - openpilot was unable to identify your car. Check integrity of cables and ensure all connections are secure, particularly that the comma power is fully inserted in the OBD-II port of the vehicle. Need help? Join discord.comma.ai. - openpilot ไม่สามารถระบุรถยนต์ของคุณได้ กรุณาตรวจสอบสายเคเบิ้ลและจุดเชื่อมต่อทั้งหมดว่าแน่นหนา โดยเฉพาะ comma power ว่าได้ดันเข้าไปยังพอร์ต OBD II ของรถยนต์จนสุด หากต้องการความช่วยเหลือให้เข้าร่วม discord.comma.ai - - - openpilot detected a change in the device's mounting position. Ensure the device is fully seated in the mount and the mount is firmly secured to the windshield. - openpilot ตรวจพบการเปลี่ยนแปลงของตำแหน่งที่ติดตั้ง กรุณาตรวจสอบว่าได้เลื่อนอุปกรณ์เข้ากับจุดติดตั้งจนสุดแล้ว และจุดติดตั้งได้ยึดติดกับกระจกหน้าอย่างแน่นหนา - - - - OffroadHome - - UPDATE - อัปเดต - - - ALERTS - การแจ้งเตือน - - - ALERT - การแจ้งเตือน - - - - PairingPopup - - Pair your device to your comma account - จับคู่อุปกรณ์ของคุณกับบัญชี comma ของคุณ - - - Go to https://connect.comma.ai on your phone - ไปที่ https://connect.comma.ai ด้วยโทรศัพท์ของคุณ - - - Click "add new device" and scan the QR code on the right - กดที่ "add new device" และสแกนคิวอาร์โค้ดทางด้านขวา - - - Bookmark connect.comma.ai to your home screen to use it like an app - จดจำ connect.comma.ai โดยการเพิ่มไปยังหน้าจอโฮม เพื่อใช้งานเหมือนเป็นแอปพลิเคชัน - - - - ParamControl - - Enable - เปิดใช้งาน - - - Cancel - ยกเลิก - - - - PrimeAdWidget - - Upgrade Now - อัพเกรดเดี๋ยวนี้ - - - Become a comma prime member at connect.comma.ai - สมัครสมาชิก comma prime ได้ที่ connect.comma.ai - - - PRIME FEATURES: - คุณสมบัติของ PRIME: - - - Remote access - การเข้าถึงระยะไกล - - - 1 year of storage - จัดเก็บข้อมูลนาน 1 ปี - - - Developer perks - สิทธิพิเศษสำหรับนักพัฒนา - - - - PrimeUserWidget - - ✓ SUBSCRIBED - ✓ สมัครสำเร็จ - - - comma prime - comma prime - - - - QObject - - Reboot - รีบูต - - - Exit - ปิด - - - dashcam - กล้องติดรถยนต์ - - - openpilot - openpilot - - - %n minute(s) ago - - %n นาทีที่แล้ว - - - - %n hour(s) ago - - %n ชั่วโมงที่แล้ว - - - - %n day(s) ago - - %n วันที่แล้ว - - - - - Reset - - Reset failed. Reboot to try again. - การรีเซ็ตล้มเหลว รีบูตเพื่อลองอีกครั้ง - - - Are you sure you want to reset your device? - คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตอุปกรณ์? - - - System Reset - รีเซ็ตระบบ - - - Cancel - ยกเลิก - - - Reboot - รีบูต - - - Confirm - ยืนยัน - - - Resetting device... -This may take up to a minute. - กำลังรีเซ็ตอุปกรณ์... -อาจใช้เวลาถึงหนึ่งนาที - - - Press confirm to erase all content and settings. Press cancel to resume boot. - กดยืนยันเพื่อลบข้อมูลและการตั้งค่าทั้งหมด กดยกเลิกเพื่อบูตต่อ - - - Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. - ไม่สามารถเมานต์พาร์ติชั่นข้อมูลได้ พาร์ติชั่นอาจเสียหาย กดยืนยันเพื่อลบและรีเซ็ตอุปกรณ์ของคุณ - - - - SettingsWindow - - × - × - - - Device - อุปกรณ์ - - - Network - เครือข่าย - - - Toggles - ตัวเลือก - - - Software - ซอฟต์แวร์ - - - - Setup - - WARNING: Low Voltage - คำเตือน: แรงดันแบตเตอรี่ต่ำ - - - Power your device in a car with a harness or proceed at your own risk. - โปรดต่ออุปกรณ์ของคุณเข้ากับสายควบคุมในรถยนต์ หรือดำเนินการด้วยความเสี่ยงของคุณเอง - - - Power off - ปิดเครื่อง - - - Continue - ดำเนินการต่อ - - - Getting Started - เริ่มกันเลย - - - Before we get on the road, let’s finish installation and cover some details. - ก่อนออกเดินทาง เรามาทำการติดตั้งซอฟต์แวร์ และตรวจสอบการตั้งค่า - - - Connect to Wi-Fi - เชื่อมต่อ Wi-Fi - - - Back - ย้อนกลับ - - - Continue without Wi-Fi - ดำเนินการต่อโดยไม่ใช้ Wi-Fi - - - Waiting for internet - กำลังรอสัญญาณอินเตอร์เน็ต - - - Enter URL - ป้อน URL - - - for Custom Software - สำหรับซอฟต์แวร์ที่กำหนดเอง - - - Downloading... - กำลังดาวน์โหลด... - - - Download Failed - ดาวน์โหลดล้มเหลว - - - Ensure the entered URL is valid, and the device’s internet connection is good. - ตรวจสอบให้แน่ใจว่า URL ที่ป้อนนั้นถูกต้อง และอุปกรณ์เชื่อมต่ออินเทอร์เน็ตอยู่ - - - Reboot device - รีบูตอุปกรณ์ - - - Start over - เริ่มต้นใหม่ - - - Something went wrong. Reboot the device. - มีบางอย่างผิดพลาด รีบูตอุปกรณ์ - - - No custom software found at this URL. - ไม่พบซอฟต์แวร์ที่กำหนดเองที่ URL นี้ - - - - SetupWidget - - Finish Setup - ตั้งค่าเสร็จสิ้น - - - Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - จับคู่อุปกรณ์ของคุณกับ comma connect (connect.comma.ai) และรับข้อเสนอ comma prime ของคุณ - - - Pair device - จับคู่อุปกรณ์ - - - - Sidebar - - CONNECT - เชื่อมต่อ - - - OFFLINE - ออฟไลน์ - - - ONLINE - ออนไลน์ - - - ERROR - เกิดข้อผิดพลาด - - - TEMP - อุณหภูมิ - - - HIGH - สูง - - - GOOD - ดี - - - OK - พอใช้ - - - VEHICLE - รถยนต์ - - - NO - ไม่พบ - - - PANDA - PANDA - - - GPS - จีพีเอส - - - SEARCH - ค้นหา - - - -- - -- - - - Wi-Fi - Wi-Fi - - - ETH - ETH - - - 2G - 2G - - - 3G - 3G - - - LTE - LTE - - - 5G - 5G - - - - SoftwarePanel - - Uninstall %1 - ถอนการติดตั้ง %1 - - - UNINSTALL - ถอนการติดตั้ง - - - Are you sure you want to uninstall? - คุณแน่ใจหรือไม่ว่าต้องการถอนการติดตั้ง? - - - CHECK - ตรวจสอบ - - - Updates are only downloaded while the car is off. - ตัวอัปเดตจะดำเนินการดาวน์โหลดเมื่อรถดับเครื่องยนต์อยู่เท่านั้น - - - Current Version - เวอร์ชั่นปัจจุบัน - - - Download - ดาวน์โหลด - - - Install Update - ติดตั้งตัวอัปเดต - - - INSTALL - ติดตั้ง - - - Target Branch - Branch ที่เลือก - - - SELECT - เลือก - - - Select a branch - เลือก Branch - - - Uninstall - ถอนการติดตั้ง - - - failed to check for update - ไม่สามารถตรวจสอบอัปเดตได้ - - - DOWNLOAD - ดาวน์โหลด - - - update available - มีอัปเดตใหม่ - - - never - ไม่เคย - - - up to date, last checked %1 - ล่าสุดแล้ว ตรวจสอบครั้งสุดท้ายเมื่อ %1 - - - - SshControl - - SSH Keys - คีย์ SSH - - - Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - คำเตือน: สิ่งนี้ให้สิทธิ์ SSH เข้าถึงคีย์สาธารณะทั้งหมดใน GitHub ของคุณ อย่าป้อนชื่อผู้ใช้ GitHub อื่นนอกเหนือจากของคุณเอง พนักงาน comma จะไม่ขอให้คุณเพิ่มชื่อผู้ใช้ GitHub ของพวกเขา - - - ADD - เพิ่ม - - - Enter your GitHub username - ป้อนชื่อผู้ใช้ GitHub ของคุณ - - - LOADING - กำลังโหลด - - - REMOVE - ลบ - - - Username '%1' has no keys on GitHub - ชื่อผู้ใช้ '%1' ไม่มีคีย์บน GitHub - - - Request timed out - ตรวจสอบไม่สำเร็จ เนื่องจากใช้เวลามากเกินไป - - - Username '%1' doesn't exist on GitHub - ไม่พบชื่อผู้ใช้ '%1' บน GitHub - - - - SshToggle - - Enable SSH - เปิดใช้งาน SSH - - - - TermsPage - - Terms & Conditions - ข้อตกลงและเงื่อนไข - - - Decline - ปฏิเสธ - - - Scroll to accept - เลื่อนเพื่อตอบรับข้อตกลง - - - Agree - ยอมรับ - - - - TogglesPanel - - Enable openpilot - เปิดใช้งาน openpilot - - - Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - ใช้ระบบ openpilot สำหรับระบบควบคุมความเร็วอัตโนมัติ และระบบช่วยควบคุมรถให้อยู่ในเลน คุณจำเป็นต้องให้ความสนใจตลอดเวลาที่ใช้คุณสมบัตินี้ การเปลี่ยนการตั้งค่านี้จะมีผลเมื่อคุณดับเครื่องยนต์ - - - Enable Lane Departure Warnings - เปิดใช้งานการเตือนการออกนอกเลน - - - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - รับการแจ้งเตือนให้เลี้ยวกลับเข้าเลนเมื่อรถของคุณตรวจพบการข้ามช่องจราจรโดยไม่เปิดสัญญาณไฟเลี้ยวในขณะขับขี่ที่ความเร็วเกิน 31 ไมล์ต่อชั่วโมง (50 กม./ชม) - - - Use Metric System - ใช้ระบบเมตริก - - - Display speed in km/h instead of mph. - แสดงความเร็วเป็น กม./ชม. แทน ไมล์/ชั่วโมง - - - Record and Upload Driver Camera - บันทึกและอัปโหลดภาพจากกล้องคนขับ - - - Upload data from the driver facing camera and help improve the driver monitoring algorithm. - อัปโหลดข้อมูลจากกล้องที่หันหน้าไปทางคนขับ และช่วยปรับปรุงอัลกอริธึมการตรวจสอบผู้ขับขี่ - - - Disengage on Accelerator Pedal - ยกเลิกระบบช่วยขับเมื่อเหยียบคันเร่ง - - - When enabled, pressing the accelerator pedal will disengage openpilot. - เมื่อเปิดใช้งาน การกดแป้นคันเร่งจะเป็นการยกเลิกระบบช่วยขับโดย openpilot - - - Show ETA in 24h Format - แสดงเวลา ETA ในรูปแบบ 24 ชั่วโมง - - - Use 24h format instead of am/pm - ใช้รูปแบบเวลา 24 ชั่วโมง แทน am/pm - - - Show Map on Left Side of UI - แสดงแผนที่ที่ด้านซ้ายของหน้าจอ - - - Show map on left side when in split screen view. - แสดงแผนที่ด้านซ้ายของหน้าจอเมื่ออยู่ในโหมดแบ่งหน้าจอ - - - Experimental Mode - โหมดทดลอง - - - openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: - โดยปกติ openpilot จะขับใน<b>โหมดชิล</b> เปิดโหมดทดลองเพื่อใช้<b>ความสามารถในขั้นพัฒนา</b> ซึ่งยังไม่พร้อมสำหรับโหมดชิล ความสามารถในขั้นพัฒนามีดังนี้: - - - 🌮 End-to-End Longitudinal Control 🌮 - 🌮 ควบคุมเร่ง/เบรคแบบ End-to-End 🌮 - - - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. - ให้ openpilot ควบคุมการเร่ง/เบรค โดย openpilot จะขับอย่างที่มนุษย์คิด รวมถึงการหยุดที่ไฟแดง และป้ายหยุดรถ เนื่องจาก openpilot จะกำหนดความเร็วในการขับด้วยตัวเอง การตั้งความเร็วจะเป็นเพียงการกำหนดความเร็วสูงสูดเท่านั้น ความสามารถนี้ยังอยู่ในขั้นพัฒนา อาจเกิดข้อผิดพลาดขึ้นได้ - - - New Driving Visualization - การแสดงภาพการขับขี่แบบใหม่ - - - The driving visualization will transition to the road-facing wide-angle camera at low speeds to better show some turns. The Experimental mode logo will also be shown in the top right corner. - การแสดงภาพการขับขี่จะเปลี่ยนไปใช้กล้องมุมกว้างที่หันหน้าไปทางถนนเมื่ออยู่ในความเร็วต่ำ เพื่อแสดงภาพการเลี้ยวที่ดีขึ้น โลโก้โหมดการทดลองจะแสดงที่มุมบนขวาด้วย - - - Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. - ขณะนี้โหมดทดลองไม่สามารถใช้งานได้ในรถคันนี้ เนื่องจากเปิดใช้ระบบควบคุมการเร่ง/เบรคของรถที่ติดตั้งจากโรงงานอยู่ - - - openpilot longitudinal control may come in a future update. - ระบบควบคุมการเร่ง/เบรคโดย openpilot อาจมาในการอัปเดตในอนาคต - - - Enable experimental longitudinal control to allow Experimental mode. - เปิดระบบควบคุมการเร่ง/เบรคขั้นพัฒนาโดย openpilot เพื่อเปิดใช้งานโหมดทดลอง - - - openpilot Longitudinal Control (Alpha) - ระบบควบคุมการเร่ง/เบรคโดย openpilot (Alpha) - - - WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). - คำเตือน: การควบคุมการเร่ง/เบรคโดย openpilot สำหรับรถคันนี้ยังอยู่ในสถานะ alpha และระบบเบรคฉุกเฉินอัตโนมัติ (AEB) จะถูกปิด - - - On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. - โดยปกติสำหรับรถคันนี้ openpilot จะควบคุมการเร่ง/เบรคด้วยระบบ ACC จากโรงงาน แทนการควยคุมโดย openpilot เปิดสวิตซ์นี้เพื่อให้ openpilot ควบคุมการเร่ง/เบรค แนะนำให้เปิดโหมดทดลองเมื่อต้องการให้ openpilot ควบคุมการเร่ง/เบรค ซึ่งอยู่ในสถานะ alpha - - - Aggressive - ดุดัน - - - Standard - มาตรฐาน - - - Relaxed - ผ่อนคลาย - - - Driving Personality - บุคลิกการขับขี่ - - - Standard is recommended. In aggressive mode, openpilot will follow lead cars closer and be more aggressive with the gas and brake. In relaxed mode openpilot will stay further away from lead cars. - แนะนำให้ใช้แบบมาตรฐาน ในโหมดดุดัน openpilot จะตามรถคันหน้าใกล้ขึ้นและเร่งและเบรคแบบดุดันมากขึ้น ในโหมดผ่อนคลาย openpilot จะอยู่ห่างจากรถคันหน้ามากขึ้น - - - An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. - ระบบควบคุมการเร่ง/เบรคโดย openpilot เวอร์ชัน alpha สามารถทดสอบได้พร้อมกับโหมดการทดลอง บน branch ที่กำลังพัฒนา - - - - Updater - - Update Required - จำเป็นต้องอัปเดต - - - An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - จำเป็นต้องมีการอัปเดตระบบปฏิบัติการ เชื่อมต่ออุปกรณ์ของคุณกับ Wi-Fi เพื่อประสบการณ์การอัปเดตที่เร็วที่สุด ขนาดดาวน์โหลดประมาณ 1GB - - - Connect to Wi-Fi - เชื่อมต่อกับ Wi-Fi - - - Install - ติดตั้ง - - - Back - ย้อนกลับ - - - Loading... - กำลังโหลด... - - - Reboot - รีบูต - - - Update failed - การอัปเดตล้มเหลว - - - - WiFiPromptWidget - - Setup Wi-Fi - ตั้งค่า Wi-Fi - - - Connect to Wi-Fi to upload driving data and help improve openpilot - เชื่อมต่อกับ Wi-Fi เพื่ออัปโหลดข้อมูลการขับขี่และช่วยปรับปรุง openpilot - - - Open Settings - เปิดการตั้งค่า - - - Uploading training data - กำลังอัปโหลดข้อมูลสำหรับการฝึก - - - Your data is used to train driving models and help improve openpilot - ข้อมูลของคุณถูกใช้เพื่อฝึกโมเดลการขับขี่และช่วยปรับปรุง openpilot - - - - WifiUI - - Scanning for networks... - กำลังสแกนหาเครือข่าย... - - - CONNECTING... - กำลังเชื่อมต่อ... - - - FORGET - เลิกใช้ - - - Forget Wi-Fi Network "%1"? - เลิกใช้เครือข่าย Wi-Fi "%1"? - - - Forget - เลิกใช้ - - - diff --git a/selfdrive/ui/translations/main_zh-CHS.ts b/selfdrive/ui/translations/main_zh-CHS.ts index 994494d98712cd7..6a9082731fa004c 100644 --- a/selfdrive/ui/translations/main_zh-CHS.ts +++ b/selfdrive/ui/translations/main_zh-CHS.ts @@ -5,115 +5,115 @@ AbstractAlert Close - 关闭 + Snooze Update - 暂停更新 + Reboot and Update - 重启并更新 + AdvancedNetworking Back - 返回 + Enable Tethering - 启用WiFi热点 + Tethering Password - WiFi热点密码 + EDIT - 编辑 + Enter new tethering password - 输入新的WiFi热点密码 + IP Address - IP地址 + Enable Roaming - 启用数据漫游 + APN Setting - APN设置 + Enter APN - 输入APN + leave blank for automatic configuration - 留空以自动配置 + Cellular Metered - 按流量计费的手机移动网络 + Prevent large data uploads when on a metered connection - 当使用按流量计费的连接时,避免上传大流量数据 + AnnotatedCameraWidget km/h - km/h + mph - mph + MAX - 最高定速 + SPEED - SPEED + LIMIT - LIMIT + ConfirmationDialog Ok - 好的 + Cancel - 取消 + DeclinePage You must accept the Terms and Conditions in order to use openpilot. - 您必须接受条款和条件以使用openpilot。 + Back - 返回 + Decline, uninstall %1 - 拒绝并卸载%1 + @@ -131,15 +131,15 @@ - No %1 location set + home - home + work - work + No %1 location set @@ -147,188 +147,188 @@ DevicePanel Dongle ID - 设备ID(Dongle ID) + N/A - N/A + Serial - 序列号 + Driver Camera - 驾驶员摄像头 + PREVIEW - 预览 + Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - 打开并预览驾驶员摄像头,以确保驾驶员监控具有良好视野。(仅熄火时可用) + Reset Calibration - 重置设备校准 + RESET - 重置 + Are you sure you want to reset calibration? - 您确定要重置设备校准吗? + + + + Reset + Review Training Guide - 新手指南 + REVIEW - 查看 + Review the rules, features, and limitations of openpilot - 查看openpilot的使用规则,以及其功能和限制。 + Are you sure you want to review the training guide? - 您确定要查看新手指南吗? + + + + Review + Regulatory - 监管信息 + VIEW - 查看 + Change Language - 切换语言 + CHANGE - 切换 + Select a language - 选择语言 + Reboot - 重启 + Power Off - 关机 + openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - openpilot要求设备安装的偏航角在左4°和右4°之间,俯仰角在上5°和下8°之间。一般来说,openpilot会持续更新校准,很少需要重置。 + Your device is pointed %1° %2 and %3° %4. - 您的设备校准为%1° %2、%3° %4。 + down - 朝下 + up - 朝上 + left - 朝左 + right - 朝右 + Are you sure you want to reboot? - 您确定要重新启动吗? + Disengage to Reboot - 取消openpilot以重新启动 + Are you sure you want to power off? - 您确定要关机吗? + Disengage to Power Off - 取消openpilot以关机 - - - Reset - 重置 - - - Review - 预览 + DriveStats Drives - 旅程数 + Hours - 小时 + ALL TIME - 全部 + PAST WEEK - 过去一周 + KM - 公里 + Miles - 英里 + DriverViewScene camera starting - 正在启动相机 + ExperimentalModeButton EXPERIMENTAL MODE ON - 试验模式运行 + CHILL MODE ON - 轻松模式运行 + InputDialog Cancel - 取消 + Need at least %n character(s)! - - 至少需要 %n 个字符! + + @@ -336,49 +336,49 @@ Installer Installing... - 正在安装…… + MapETA eta - 埃塔 + min - 分钟 + hr - 小时 + km - km + mi - mi + MapInstructions km - km + m - m + mi - mi + ft - ft + @@ -396,11 +396,11 @@ MapWindow Map Loading - 地图加载中 + Waiting for GPS - 等待 GPS + Waiting for route @@ -411,34 +411,38 @@ MultiOptionDialog Select - 选择 + Cancel - 取消 + Networking Advanced - 高级 + Enter password - 输入密码 + for "%1" - 网络名称:"%1" + Wrong password - 密码错误 + OffroadAlert + + Device temperature too high. System cooling down before starting. Current internal component temperature: %1 + + Immediately connect to the internet to check for updates. If you do not connect to the internet, openpilot won't engage in %1 @@ -488,84 +492,80 @@ openpilot detected a change in the device's mounting position. Ensure the device is fully seated in the mount and the mount is firmly secured to the windshield. - - Device temperature too high. System cooling down before starting. Current internal component temperature: %1 - - OffroadHome UPDATE - 更新 + ALERTS - 警报 + ALERT - 警报 + PairingPopup Pair your device to your comma account - 将您的设备与comma账号配对 + Go to https://connect.comma.ai on your phone - 在手机上访问 https://connect.comma.ai + Click "add new device" and scan the QR code on the right - 点击“添加新设备”,扫描右侧二维码 + Bookmark connect.comma.ai to your home screen to use it like an app - 将 connect.comma.ai 收藏到您的主屏幕,以便像应用程序一样使用它 + ParamControl - Cancel - 取消 + Enable + - Enable - 启用 + Cancel + PrimeAdWidget Upgrade Now - 现在升级 + Become a comma prime member at connect.comma.ai - 打开connect.comma.ai以注册comma prime会员 + PRIME FEATURES: - comma prime特权: + Remote access - 远程访问 + 24/7 LTE connectivity - Turn-by-turn navigation + 1 year of drive storage - 1 year of drive storage + Turn-by-turn navigation @@ -573,47 +573,47 @@ PrimeUserWidget ✓ SUBSCRIBED - ✓ 已订阅 + comma prime - comma prime + QObject Reboot - 重启 + Exit - 退出 + dashcam - 行车记录仪 + openpilot - openpilot + %n minute(s) ago - - %n 分钟前 + + %n hour(s) ago - - %n 小时前 + + %n day(s) ago - - %n 天前 + + @@ -621,39 +621,39 @@ Reset Reset failed. Reboot to try again. - 重置失败。 重新启动以重试。 + - Are you sure you want to reset your device? - 您确定要重置您的设备吗? + Resetting device... +This may take up to a minute. + - System Reset - 恢复出厂设置 + Are you sure you want to reset your device? + - Cancel - 取消 + System Reset + - Reboot - 重启 + Press confirm to erase all content and settings. Press cancel to resume boot. + - Confirm - 确认 + Cancel + - Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. + Reboot - Press confirm to erase all content and settings. Press cancel to resume boot. + Confirm - Resetting device... -This may take up to a minute. + Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. @@ -661,101 +661,101 @@ This may take up to a minute. SettingsWindow × - × + Device - 设备 + Network - 网络 + Toggles - 设定 + Software - 软件 + Setup + + Something went wrong. Reboot the device. + + + + Ensure the entered URL is valid, and the device’s internet connection is good. + + + + No custom software found at this URL. + + WARNING: Low Voltage - 警告:低电压 + Power your device in a car with a harness or proceed at your own risk. - 请使用car harness线束为您的设备供电,或自行承担风险。 + Power off - 关机 + Continue - 继续 + Getting Started - 开始设置 + Before we get on the road, let’s finish installation and cover some details. - 开始旅程之前,让我们完成安装并介绍一些细节。 + Connect to Wi-Fi - 连接到WiFi + Back - 返回 + - Continue without Wi-Fi - 不连接WiFi并继续 + Enter URL + - Waiting for internet - 等待网络连接 + for Custom Software + - Enter URL - 输入网址 + Continue without Wi-Fi + - for Custom Software - 以下载自定义软件 + Waiting for internet + Downloading... - 正在下载…… + Download Failed - 下载失败 - - - Ensure the entered URL is valid, and the device’s internet connection is good. - 请确保互联网连接良好且输入的URL有效。 + Reboot device - 重启设备 - - - Start over - 重来 - - - No custom software found at this URL. - Something went wrong. Reboot the device. + Start over @@ -763,160 +763,156 @@ This may take up to a minute. SetupWidget Finish Setup - 完成设置 + Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - 将您的设备与comma connect (connect.comma.ai)配对并领取您的comma prime优惠。 + Pair device - 配对设备 + Sidebar CONNECT - CONNECT + OFFLINE - 离线 + ONLINE - 在线 + ERROR - 连接出错 + TEMP - 设备温度 + HIGH - 过热 + GOOD - 良好 + OK - 一般 + VEHICLE - 车辆连接 + NO - + PANDA - PANDA + GPS - GPS + SEARCH - 搜索中 + -- - -- + Wi-Fi - Wi-Fi + ETH - 以太网 + 2G - 2G + 3G - 3G + LTE - LTE + 5G - 5G + SoftwarePanel Updates are only downloaded while the car is off. - 车辆熄火时才能下载升级文件。 + Current Version - 当前版本 + Download - 下载 + + + + CHECK + Install Update - 安装更新 + INSTALL - 安装 + Target Branch - 目标分支 + SELECT - 选择 + Select a branch - 选择分支 - - - UNINSTALL - 卸载 + Uninstall %1 - 卸载 %1 + - Are you sure you want to uninstall? - 您确定要卸载吗? + UNINSTALL + - CHECK - 查看 + Are you sure you want to uninstall? + Uninstall - 卸载 - - - failed to check for update - up to date, last checked %1 + failed to check for update @@ -931,164 +927,196 @@ This may take up to a minute. never + + up to date, last checked %1 + + SshControl SSH Keys - SSH密钥 + Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - 警告:这将授予SSH访问权限给您GitHub设置中的所有公钥。切勿输入您自己以外的GitHub用户名。comma员工永远不会要求您添加他们的GitHub用户名。 + ADD - 添加 + Enter your GitHub username - 输入您的GitHub用户名 + LOADING - 正在加载 + REMOVE - 删除 + Username '%1' has no keys on GitHub - 用户名“%1”在GitHub上没有密钥 + Request timed out - 请求超时 + Username '%1' doesn't exist on GitHub - GitHub上不存在用户名“%1” + SshToggle Enable SSH - 启用SSH + TermsPage Terms & Conditions - 条款和条件 + Decline - 拒绝 + Scroll to accept - 滑动以接受 + Agree - 同意 + TogglesPanel Enable openpilot - 启用openpilot + Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - 使用openpilot进行自适应巡航和车道保持辅助。使用此功能时您必须时刻保持注意力。该设置的更改在熄火时生效。 + - Enable Lane Departure Warnings - 启用车道偏离警告 + openpilot Longitudinal Control (Alpha) + - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - 车速超过31mph(50km/h)时,若检测到车辆越过车道线且未打转向灯,系统将发出警告以提醒您返回车道。 + WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + - Use Metric System - 使用公制单位 + On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + - Display speed in km/h instead of mph. - 显示车速时,以km/h代替mph。 + Experimental Mode + + + + Disengage on Accelerator Pedal + + + + When enabled, pressing the accelerator pedal will disengage openpilot. + + + + Enable Lane Departure Warnings + + + + Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). + Record and Upload Driver Camera - 录制并上传驾驶员摄像头 + Upload data from the driver facing camera and help improve the driver monitoring algorithm. - 上传驾驶员摄像头的数据,帮助改进驾驶员监控算法。 + - Disengage on Accelerator Pedal - 踩油门时取消控制 + Use Linked Brightness + - When enabled, pressing the accelerator pedal will disengage openpilot. - 启用后,踩下油门踏板将取消openpilot。 + Use the car's headlight state for brightness control. + - Show ETA in 24h Format - 以24小时格式显示预计到达时间 + Use LQR on Lat Control for PA + - Use 24h format instead of am/pm - 使用24小时制代替am/pm + When enabled, using LQR on lat control for prius alpha. + - Show Map on Left Side of UI - 在介面左侧显示地图 + Compass + - Show map on left side when in split screen view. - 在分屏模式中,将地图置于屏幕左侧。 + Add a compass to the onroad UI that indicates your current driving direction. + - Experimental Mode - 测试模式 + UI: Disable openpilot Sounds + - openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: - openpilot 默认 <b>轻松模式</b>驾驶车辆。试验模式启用一些轻松模式之外的 <b>试验性功能</b>。试验性功能包括: + Turn off openpilot sounds. + - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. - 允许驾驶模型控制加速和制动,openpilot将模仿人类驾驶车辆,包括在红灯和停车让行标识前停车。鉴于驾驶模型确定行驶车速,所设定的车速仅作为上限。此功能尚处于早期测试状态,有可能会出现操作错误。 + Turn Off Display After 30 Seconds + - New Driving Visualization - 新驾驶视角 + Turn off the device's display after going 'onroad' for 30 seconds. + - Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. - 由于此车辆使用自带的ACC纵向控制,当前无法使用试验模式。 + Long: Cruise Speed Override + - openpilot longitudinal control may come in a future update. + Allow openpilot's set speed to be set below the vehicle's minimum cruise speed. To use this feature, when the vehicle is travelling below its minimum set speed, pull the cruise control lever down (or click the cruise control SET button) once, openpilot will set its maximum speed to the vehicle's current speed. - openpilot Longitudinal Control (Alpha) + Use Metric System - WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + Display speed in km/h instead of mph. - On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + Show ETA in 24h Format + + + + Use 24h format instead of am/pm + + + + Show Map on Left Side of UI + + + + Show map on left side when in split screen view. @@ -1112,63 +1140,95 @@ This may take up to a minute. - An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + Driving Personalities Via UI / Wheel - Navigate on openpilot + Switch driving personalities using the 'Distance' button on the steering wheel (Toyota/Lexus Only) or via the onroad UI for other makes. + +1 bar = Aggressive +2 bars = Standard +3 bars = Relaxed - Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: End-to-End Longitudinal Control + + Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. + + + + Navigate on openpilot + + When navigation has a destination, openpilot will input the map information into the model. This provides useful context for the model and allows openpilot to keep left or right appropriately at forks/exits. Lane change behavior is unchanged and still activated by the driver. This is an alpha quality feature; mistakes should be expected, particularly around exits and forks. These mistakes can include unintended laneline crossings, late exit taking, driving towards dividing barriers in the gore areas, etc. + + New Driving Visualization + + The driving visualization will transition to the road-facing wide-angle camera at low speeds to better show some turns. The Experimental mode logo will also be shown in the top right corner. When a navigation destination is set and the driving model is using it as input, the driving path on the map will turn green. + + Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. + + + + openpilot longitudinal control may come in a future update. + + + + An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + + + + Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + + Updater Update Required - 需要更新 + An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - 操作系统需要更新。请将您的设备连接到WiFi以获取更快的更新体验。下载大小约为1GB。 + Connect to Wi-Fi - 连接到WiFi + Install - 安装 + Back - 返回 + Loading... - 正在加载…… + Reboot - 重启 + Update failed - 更新失败 + @@ -1198,23 +1258,23 @@ This may take up to a minute. WifiUI Scanning for networks... - 正在扫描网络…… + CONNECTING... - 正在连接…… + FORGET - 忽略 + Forget Wi-Fi Network "%1"? - 忽略WiFi网络 "%1"? + Forget - 忽略 + diff --git a/selfdrive/ui/translations/main_zh-CHT.ts b/selfdrive/ui/translations/main_zh-CHT.ts index c1e5a72fc01524b..6a9082731fa004c 100644 --- a/selfdrive/ui/translations/main_zh-CHT.ts +++ b/selfdrive/ui/translations/main_zh-CHT.ts @@ -1,334 +1,334 @@ - + AbstractAlert Close - 關閉 + Snooze Update - 暫停更新 + Reboot and Update - 重啟並更新 + AdvancedNetworking Back - 回上頁 + Enable Tethering - 啟用網路分享 + Tethering Password - 網路分享密碼 + EDIT - 編輯 + Enter new tethering password - 輸入新的網路分享密碼 + IP Address - IP 地址 + Enable Roaming - 啟用漫遊 + APN Setting - APN 設置 + Enter APN - 輸入 APN + leave blank for automatic configuration - 留空白將自動配置 + Cellular Metered - 行動網路 + Prevent large data uploads when on a metered connection - 防止使用行動網路上傳大量的數據 + AnnotatedCameraWidget km/h - km/h + mph - mph + MAX - 最高 + SPEED - 速度 + LIMIT - 速限 + ConfirmationDialog Ok - 確定 + Cancel - 取消 + DeclinePage You must accept the Terms and Conditions in order to use openpilot. - 您必須先接受條款和條件才能使用 openpilot。 + Back - 回上頁 + Decline, uninstall %1 - 拒絕並解除安裝 %1 + DestinationWidget Home - 住家 + Work - 工作 + No destination set - 尚未設定目的地 - - - No %1 location set - 尚未設定 %1 的位置 + home - 住家 + work - 工作 + + + + No %1 location set + DevicePanel Dongle ID - Dongle ID + N/A - 無法使用 + Serial - 序號 + Driver Camera - 駕駛員監控鏡頭 + PREVIEW - 預覽 + Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off) - 預覽駕駛員監控鏡頭畫面,以確保其具有良好視野。(僅在熄火時可用) + Reset Calibration - 重置校準 + RESET - 重置 + Are you sure you want to reset calibration? - 您確定要重置校準嗎? + + + + Reset + Review Training Guide - 觀看使用教學 + REVIEW - 觀看 + Review the rules, features, and limitations of openpilot - 觀看 openpilot 的使用規則、功能和限制 + Are you sure you want to review the training guide? - 您確定要觀看使用教學嗎? + + + + Review + Regulatory - 法規/監管 + VIEW - 觀看 + Change Language - 更改語言 + CHANGE - 更改 + Select a language - 選擇語言 + Reboot - 重新啟動 + Power Off - 關機 + openpilot requires the device to be mounted within 4° left or right and within 5° up or 8° down. openpilot is continuously calibrating, resetting is rarely required. - openpilot 需要將設備固定在左右偏差 4° 以內,朝上偏差 5° 以内或朝下偏差 8° 以内。鏡頭在後台會持續自動校準,很少有需要重置的情况。 + Your device is pointed %1° %2 and %3° %4. - 你的設備目前朝%2 %1° 以及朝%4 %3° 。 + down - + up - + left - + right - + Are you sure you want to reboot? - 您確定要重新啟動嗎? + Disengage to Reboot - 請先取消控車才能重新啟動 + Are you sure you want to power off? - 您確定您要關機嗎? + Disengage to Power Off - 請先取消控車才能關機 - - - Reset - 重設 - - - Review - 回顧 + DriveStats Drives - 旅程 + Hours - 小時 + ALL TIME - 總共 + PAST WEEK - 上周 + KM - 公里 + Miles - 英里 + DriverViewScene camera starting - 開啟相機中 + ExperimentalModeButton EXPERIMENTAL MODE ON - 實驗模式 ON + CHILL MODE ON - 輕鬆模式 ON + InputDialog Cancel - 取消 + Need at least %n character(s)! - - 需要至少 %n 個字元! + + @@ -336,71 +336,71 @@ Installer Installing... - 安裝中… + MapETA eta - 抵達 + min - 分鐘 + hr - 小時 + km - km + mi - mi + MapInstructions km - km + m - m + mi - mi + ft - ft + MapSettings NAVIGATION - 導航 + Manage at connect.comma.ai - 請在 connect.comma.ai 上進行管理 + MapWindow Map Loading - 地圖加載中 + Waiting for GPS - 等待 GPS + Waiting for route @@ -411,210 +411,209 @@ MultiOptionDialog Select - 選擇 + Cancel - 取消 + Networking Advanced - 進階 + Enter password - 輸入密碼 + for "%1" - 給 "%1" + Wrong password - 密碼錯誤 + OffroadAlert + + Device temperature too high. System cooling down before starting. Current internal component temperature: %1 + + Immediately connect to the internet to check for updates. If you do not connect to the internet, openpilot won't engage in %1 - 請立即連接網路檢查更新。如果不連接網路,openpilot 將在 %1 後便無法使用 + Connect to internet to check for updates. openpilot won't automatically start until it connects to internet to check for updates. - 請連接至網際網路以檢查更新。在連接至網際網路並完成更新檢查之前,openpilot 將不會自動啟動。 + Unable to download updates %1 - 無法下載更新 -%1 + Invalid date and time settings, system won't start. Connect to internet to set time. - 日期和時間設定無效,系統無法啟動。請連接至網際網路以設定時間。 + Taking camera snapshots. System won't start until finished. - 正在使用相機拍攝中。在完成之前,系統將無法啟動。 + An update to your device's operating system is downloading in the background. You will be prompted to update when it's ready to install. - 一個給您設備的操作系統的更新正在後台下載中。當更新準備好安裝時,您將收到提示進行更新。 + Device failed to register. It will not connect to or upload to comma.ai servers, and receives no support from comma.ai. If this is an official device, visit https://comma.ai/support. - 設備註冊失敗。它將無法連接或上傳至 comma.ai 伺服器,並且無法獲得 comma.ai 的支援。如果這是一個官方設備,請訪問 https://comma.ai/support 。 + NVMe drive not mounted. - NVMe 固態硬碟未被掛載。 + Unsupported NVMe drive detected. Device may draw significantly more power and overheat due to the unsupported NVMe. - 檢測到不支援的 NVMe 固態硬碟。您的設備因為使用了不支援的 NVMe 固態硬碟可能會消耗更多電力並更易過熱。 + openpilot was unable to identify your car. Your car is either unsupported or its ECUs are not recognized. Please submit a pull request to add the firmware versions to the proper vehicle. Need help? Join discord.comma.ai. - openpilot 無法識別您的車輛。您的車輛可能未被支援,或是其電控單元 (ECU) 未被識別。請提交一個 Pull Request 為您的車輛添加正確的固件版本。需要幫助嗎?請加入 discord.comma.ai 。 + openpilot was unable to identify your car. Check integrity of cables and ensure all connections are secure, particularly that the comma power is fully inserted in the OBD-II port of the vehicle. Need help? Join discord.comma.ai. - openpilot 無法識別您的車輛。請檢查線路是否正確的安裝並確保所有的連接都牢固,特別是確保 comma power 完全插入車輛的 OBD-II 接口。需要幫助嗎?請加入 discord.comma.ai 。 + openpilot detected a change in the device's mounting position. Ensure the device is fully seated in the mount and the mount is firmly secured to the windshield. - openpilot偵測到設備的安裝位置發生變化。請確保設備完全安裝在支架上,並確保支架牢固地固定在擋風玻璃上。 - - - Device temperature too high. System cooling down before starting. Current internal component temperature: %1 - 設備溫度過高。系統正在冷卻中,等冷卻完畢後才會啟動。目前內部組件溫度:%1 + OffroadHome UPDATE - 更新 + ALERTS - 提醒 + ALERT - 提醒 + PairingPopup Pair your device to your comma account - 將設備與您的 comma 帳號配對 + Go to https://connect.comma.ai on your phone - 用手機連至 https://connect.comma.ai + Click "add new device" and scan the QR code on the right - 點選 "add new device" 後掃描右邊的二維碼 + Bookmark connect.comma.ai to your home screen to use it like an app - 將 connect.comma.ai 加入您的主屏幕,以便像手機 App 一樣使用它 + ParamControl - Cancel - 取消 + Enable + - Enable - 啟用 + Cancel + PrimeAdWidget Upgrade Now - 馬上升級 + Become a comma prime member at connect.comma.ai - 成為 connect.comma.ai 的高級會員 + PRIME FEATURES: - 高級會員特點: + Remote access - 遠程訪問 + 24/7 LTE connectivity - 24/7 LTE 連線 + - Turn-by-turn navigation - 導航功能 + 1 year of drive storage + - 1 year of drive storage - 一年的行駛記錄儲存空間 + Turn-by-turn navigation + PrimeUserWidget ✓ SUBSCRIBED - ✓ 已訂閱 + comma prime - comma 高級會員 + QObject Reboot - 重新啟動 + Exit - 離開 + dashcam - 行車記錄器 + openpilot - openpilot + %n minute(s) ago - - %n 分鐘前 + + %n hour(s) ago - - %n 小時前 + + %n day(s) ago - - %n 天前 + + @@ -622,570 +621,629 @@ Reset Reset failed. Reboot to try again. - 重置失敗。請重新啟動後再試。 + + + + Resetting device... +This may take up to a minute. + Are you sure you want to reset your device? - 您確定要重置你的設備嗎? + System Reset - 系統重置 + + + + Press confirm to erase all content and settings. Press cancel to resume boot. + Cancel - 取消 + Reboot - 重新啟動 + Confirm - 確認 + Unable to mount data partition. Partition may be corrupted. Press confirm to erase and reset your device. - 無法掛載資料分割區。分割區可能已經毀損。請確認是否要刪除並重新設定。 - - - Press confirm to erase all content and settings. Press cancel to resume boot. - 按下確認以刪除所有內容及設定。按下取消來繼續開機。 - - - Resetting device... -This may take up to a minute. - 設備重置中… -這可能需要一分鐘的時間。 + SettingsWindow × - × + Device - 設備 + Network - 網路 + Toggles - 設定 + Software - 軟體 + Setup + + Something went wrong. Reboot the device. + + + + Ensure the entered URL is valid, and the device’s internet connection is good. + + + + No custom software found at this URL. + + WARNING: Low Voltage - 警告:電壓過低 + Power your device in a car with a harness or proceed at your own risk. - 請使用車上 harness 提供的電源,若繼續的話您需要自擔風險。 + Power off - 關機 + Continue - 繼續 + Getting Started - 入門 + Before we get on the road, let’s finish installation and cover some details. - 在我們上路之前,讓我們完成安裝並介紹一些細節。 + Connect to Wi-Fi - 連接到無線網絡 + Back - 回上頁 + - Continue without Wi-Fi - 在沒有 Wi-Fi 的情況下繼續 + Enter URL + - Waiting for internet - 連接至網路中 + for Custom Software + - Enter URL - 輸入網址 + Continue without Wi-Fi + - for Custom Software - 定制的軟體 + Waiting for internet + Downloading... - 下載中… + Download Failed - 下載失敗 - - - Ensure the entered URL is valid, and the device’s internet connection is good. - 請確定您輸入的是有效的安裝網址,並且確定設備的網路連線狀態良好。 + Reboot device - 重新啟動 + Start over - 重新開始 - - - No custom software found at this URL. - 在此網址找不到自訂軟體。 - - - Something went wrong. Reboot the device. - 發生了一些錯誤。請重新啟動您的設備。 + SetupWidget Finish Setup - 完成設置 + Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer. - 將您的設備與 comma connect (connect.comma.ai) 配對並領取您的 comma 高級會員優惠。 + Pair device - 配對設備 + Sidebar CONNECT - 雲端服務 + OFFLINE - 已離線 + ONLINE - 已連線 + ERROR - 錯誤 + TEMP - 溫度 + HIGH - 偏高 + GOOD - 正常 + OK - 一般 + VEHICLE - 車輛通訊 + NO - 未連線 + PANDA - 車輛通訊 + GPS - GPS + SEARCH - 車輛通訊 + -- - -- + Wi-Fi - + ETH - + 2G - + 3G - + LTE - + 5G - + SoftwarePanel Updates are only downloaded while the car is off. - 系統更新只會在熄火時下載。 + Current Version - 當前版本 + Download - 下載 + + + + CHECK + Install Update - 安裝更新 + INSTALL - 安裝 + Target Branch - 目標分支 + SELECT - 選取 + Select a branch - 選取一個分支 - - - UNINSTALL - 解除安裝 + Uninstall %1 - 解除安裝 %1 + - Are you sure you want to uninstall? - 您確定您要解除安裝嗎? + UNINSTALL + - CHECK - 檢查 + Are you sure you want to uninstall? + Uninstall - 解除安裝 + failed to check for update - 檢查更新失敗 - - - up to date, last checked %1 - 已經是最新版本,上次檢查時間為 %1 + DOWNLOAD - 下載 + update available - 有可用的更新 + never - 從未更新 + + + + up to date, last checked %1 + SshControl SSH Keys - SSH 密鑰 + Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username other than your own. A comma employee will NEVER ask you to add their GitHub username. - 警告:這將授權給 GitHub 帳號中所有公鑰 SSH 訪問權限。切勿輸入非您自己的 GitHub 用戶名。comma 員工「永遠不會」要求您添加他們的 GitHub 用戶名。 + ADD - 新增 + Enter your GitHub username - 請輸入您 GitHub 的用戶名 + LOADING - 載入中 + REMOVE - 移除 + Username '%1' has no keys on GitHub - GitHub 用戶 '%1' 沒有設定任何密鑰 + Request timed out - 請求超時 + Username '%1' doesn't exist on GitHub - GitHub 用戶 '%1' 不存在 + SshToggle Enable SSH - 啟用 SSH 服務 + TermsPage Terms & Conditions - 條款和條件 + Decline - 拒絕 + Scroll to accept - 滑動至頁尾接受條款 + Agree - 接受 + TogglesPanel Enable openpilot - 啟用 openpilot + Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off. - 使用 openpilot 的主動式巡航和車道保持功能,開啟後您需要持續集中注意力,設定變更在重新啟動車輛後生效。 + - Enable Lane Departure Warnings - 啟用車道偏離警告 + openpilot Longitudinal Control (Alpha) + - Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). - 車速在時速 50 公里 (31 英里) 以上且未打方向燈的情況下,如果偵測到車輛駛出目前車道線時,發出車道偏離警告。 + WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). + - Use Metric System - 使用公制單位 + On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. + - Display speed in km/h instead of mph. - 啟用後,速度單位顯示將從 mp/h 改為 km/h。 + Experimental Mode + + + + Disengage on Accelerator Pedal + + + + When enabled, pressing the accelerator pedal will disengage openpilot. + + + + Enable Lane Departure Warnings + + + + Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line without a turn signal activated while driving over 31 mph (50 km/h). + Record and Upload Driver Camera - 記錄並上傳駕駛監控影像 + Upload data from the driver facing camera and help improve the driver monitoring algorithm. - 上傳駕駛監控的錄像來協助我們提升駕駛監控的準確率。 + - Disengage on Accelerator Pedal - 油門取消控車 + Use Linked Brightness + - When enabled, pressing the accelerator pedal will disengage openpilot. - 啟用後,踩踏油門將會取消 openpilot 控制。 + Use the car's headlight state for brightness control. + - Show ETA in 24h Format - 預計到達時間單位改用 24 小時制 + Use LQR on Lat Control for PA + - Use 24h format instead of am/pm - 使用 24 小時制。(預設值為 12 小時制) + When enabled, using LQR on lat control for prius alpha. + - Show Map on Left Side of UI - 將地圖顯示在畫面的左側 + Compass + - Show map on left side when in split screen view. - 進入分割畫面後,地圖將會顯示在畫面的左側。 + Add a compass to the onroad UI that indicates your current driving direction. + - Experimental Mode - 實驗模式 + UI: Disable openpilot Sounds + - openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: - openpilot 預設以 <b>輕鬆模式</b> 駕駛。 實驗模式啟用了尚未準備好進入輕鬆模式的 <b>alpha 級功能</b>。實驗功能如下: + Turn off openpilot sounds. + - Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. - 讓駕駛模型來控制油門及煞車。openpilot將會模擬人類的駕駛行為,包含在看見紅燈及停止標示時停車。由於車速將由駕駛模型決定,因此您設定的時速將成為速度上限。本功能仍在早期實驗階段,請預期模型有犯錯的可能性。 + Turn Off Display After 30 Seconds + - New Driving Visualization - 新的駕駛視覺介面 + Turn off the device's display after going 'onroad' for 30 seconds. + - Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. - 因車輛使用內建ACC系統,無法在本車輛上啟動實驗模式。 + Long: Cruise Speed Override + - openpilot longitudinal control may come in a future update. - openpilot 縱向控制可能會在未來的更新中提供。 + Allow openpilot's set speed to be set below the vehicle's minimum cruise speed. To use this feature, when the vehicle is travelling below its minimum set speed, pull the cruise control lever down (or click the cruise control SET button) once, openpilot will set its maximum speed to the vehicle's current speed. + - openpilot Longitudinal Control (Alpha) - openpilot 縱向控制 (Alpha 版) + Use Metric System + - WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB). - 警告:此車輛的 Openpilot 縱向控制功能目前處於 Alpha 版本,使用此功能將會停用自動緊急制動(AEB)功能。 + Display speed in km/h instead of mph. + - On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha. - 在這輛車上,Openpilot 預設使用車輛內建的主動巡航控制(ACC),而非 Openpilot 的縱向控制。啟用此項功能可切換至 Openpilot 的縱向控制。當啟用 Openpilot 縱向控制 Alpha 版本時,建議同時啟用實驗性模式(Experimental mode)。 + Show ETA in 24h Format + + + + Use 24h format instead of am/pm + + + + Show Map on Left Side of UI + + + + Show map on left side when in split screen view. + Aggressive - 積極 + Standard - 標準 + Relaxed - 舒適 + Driving Personality - 駕駛風格 + Standard is recommended. In aggressive mode, openpilot will follow lead cars closer and be more aggressive with the gas and brake. In relaxed mode openpilot will stay further away from lead cars. - 推薦使用標準模式。在積極模式中,openpilot 會更靠近前車並在加速和剎車方面更積極。在舒適模式中,openpilot 會與前車保持較遠的距離。 + - An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. - 在正式 (release) 版以外的分支上可以測試 openpilot 縱向控制的 Alpha 版本,以及實驗模式。 + Driving Personalities Via UI / Wheel + - Navigate on openpilot + Switch driving personalities using the 'Distance' button on the steering wheel (Toyota/Lexus Only) or via the onroad UI for other makes. + +1 bar = Aggressive +2 bars = Standard +3 bars = Relaxed - Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + openpilot defaults to driving in <b>chill mode</b>. Experimental mode enables <b>alpha-level features</b> that aren't ready for chill mode. Experimental features are listed below: End-to-End Longitudinal Control + + Let the driving model control the gas and brakes. openpilot will drive as it thinks a human would, including stopping for red lights and stop signs. Since the driving model decides the speed to drive, the set speed will only act as an upper bound. This is an alpha quality feature; mistakes should be expected. + + + + Navigate on openpilot + + When navigation has a destination, openpilot will input the map information into the model. This provides useful context for the model and allows openpilot to keep left or right appropriately at forks/exits. Lane change behavior is unchanged and still activated by the driver. This is an alpha quality feature; mistakes should be expected, particularly around exits and forks. These mistakes can include unintended laneline crossings, late exit taking, driving towards dividing barriers in the gore areas, etc. + + New Driving Visualization + + The driving visualization will transition to the road-facing wide-angle camera at low speeds to better show some turns. The Experimental mode logo will also be shown in the top right corner. When a navigation destination is set and the driving model is using it as input, the driving path on the map will turn green. + + Experimental mode is currently unavailable on this car since the car's stock ACC is used for longitudinal control. + + + + openpilot longitudinal control may come in a future update. + + + + An alpha version of openpilot longitudinal control can be tested, along with Experimental mode, on non-release branches. + + + + Enable the openpilot longitudinal control (alpha) toggle to allow Experimental mode. + + Updater Update Required - 系統更新 + An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. The download size is approximately 1GB. - 設備的操作系統需要更新。請將您的設備連接到 Wi-Fi 以獲得最快的更新體驗。下載大小約為 1GB。 + Connect to Wi-Fi - 連接到無線網絡 + Install - 安裝 + Back - 回上頁 + Loading... - 載入中… + Reboot - 重新啟動 + Update failed - 更新失敗 + WiFiPromptWidget Setup Wi-Fi - 設置 Wi-Fi 連接 + Connect to Wi-Fi to upload driving data and help improve openpilot - 請連接至 Wi-Fi 以上傳駕駛數據,並協助改進 openpilot + Open Settings - 開啟設置 + Ready to upload @@ -1200,23 +1258,23 @@ This may take up to a minute. WifiUI Scanning for networks... - 掃描無線網路中... + CONNECTING... - 連線中... + FORGET - 清除 + Forget Wi-Fi Network "%1"? - 清除 Wi-Fi 網路 "%1"? + Forget - 清除 + diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index 95be0e3ed90c0e3..13c70c3820b2120 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -156,6 +156,10 @@ static void update_sockets(UIState *s) { static void update_state(UIState *s) { SubMaster &sm = *(s->sm); UIScene &scene = s->scene; + s->scene.parkingLightON = sm["carState"].getCarState().getLightingSystem().getParkingLightON(); + s->scene.headlightON = sm["carState"].getCarState().getLightingSystem().getHeadlightON(); + s->scene.meterDimmed = sm["carState"].getCarState().getLightingSystem().getMeterDimmed(); + s->scene.meterLowBrightness = sm["carState"].getCarState().getLightingSystem().getMeterLowBrightness(); if (sm.updated("liveCalibration")) { auto live_calib = sm["liveCalibration"].getLiveCalibration(); @@ -200,6 +204,11 @@ static void update_state(UIState *s) { if (sm.updated("carParams")) { scene.longitudinal_control = sm["carParams"].getCarParams().getOpenpilotLongitudinalControl(); } + if (sm.updated("gpsLocationExternal")) { + if (scene.compass) { + scene.bearing_deg = sm["gpsLocationExternal"].getGpsLocationExternal().getBearingDeg(); + } + } if (sm.updated("wideRoadCameraState")) { auto cam_state = sm["wideRoadCameraState"].getWideRoadCameraState(); float scale = (cam_state.getSensor() == cereal::FrameData::ImageSensor::AR0231) ? 6.0f : 1.0f; @@ -212,6 +221,22 @@ void ui_update_params(UIState *s) { auto params = Params(); s->scene.is_metric = params.getBool("IsMetric"); s->scene.map_on_left = params.getBool("NavSettingLeftSide"); + s->scene.headlight_brightness_control = Params().getBool("CarBrightnessControl"); + s->scene.screen_off_timer = Params().getBool("ScreenOffTimer"); + + // FrogPilot variables + UIScene &scene = s->scene; + scene.compass = params.getBool("Compass"); + scene.driving_personalities_ui_wheel = params.getBool("DrivingPersonalitiesUIWheel"); +} + +void ui_live_update_params(UIState *s) { + static auto params = Params(); + UIScene &scene = s->scene; + // FrogPilot variables that need to be updated live + if (scene.driving_personalities_ui_wheel) { + scene.personality_profile = params.getInt("LongitudinalPersonality"); + } } void UIState::updateStatus() { @@ -234,13 +259,19 @@ void UIState::updateStatus() { started_prev = scene.started; emit offroadTransition(!scene.started); } + + // Update the live parameters every 5hz + if (sm->frame % (UI_FREQ / 5) == 0 || !scene.started) { + ui_live_update_params(uiState()); + } } UIState::UIState(QObject *parent) : QObject(parent) { sm = std::make_unique>({ "modelV2", "controlsState", "liveCalibration", "radarState", "deviceState", "roadCameraState", "pandaStates", "carParams", "driverMonitoringState", "carState", "liveLocationKalman", "driverStateV2", - "wideRoadCameraState", "managerState", "navInstruction", "navRoute", "uiPlan", + "wideRoadCameraState", "managerState", "navInstruction", "navRoute", "uiPlan", + "gpsLocationExternal", }); Params params; @@ -298,23 +329,70 @@ void Device::resetInteractiveTimeout() { } void Device::updateBrightness(const UIState &s) { - float clipped_brightness = offroad_brightness; + float desired_brightness = BACKLIGHT_OFFROAD; + float clipped_brightness_sensor = BACKLIGHT_OFFROAD; + float clipped_brightness_headlight = BACKLIGHT_OFFROAD; + + // 60 seconds before display turns off + int DISPLAY_OFF_TIMEOUT = 60 * UI_FREQ; + if (s.scene.started) { - clipped_brightness = s.scene.light_sensor; + // Scale to 0% to 100% + clipped_brightness_sensor = 100.0 * s.scene.light_sensor; // CIE 1931 - https://www.photonstophotos.net/GeneralTopics/Exposure/Psychometric_Lightness_and_Gamma.htm - if (clipped_brightness <= 8) { - clipped_brightness = (clipped_brightness / 903.3); + if (clipped_brightness_sensor <= 8) { + clipped_brightness_sensor = (clipped_brightness_sensor / 903.3); } else { - clipped_brightness = std::pow((clipped_brightness + 16.0) / 116.0, 3.0); + clipped_brightness_sensor = std::pow((clipped_brightness_sensor + 16.0) / 116.0, 3.0); } // Scale back to 10% to 100% - clipped_brightness = std::clamp(100.0f * clipped_brightness, 10.0f, 100.0f); + clipped_brightness_sensor = std::clamp(100.0f * clipped_brightness_sensor, 10.0f, 100.0f); + + // Headlight brightness control logic, no scaling required + // Logic for when the MFD is at its lowest possible brightness setting + if (s.scene.meterLowBrightness) { + clipped_brightness_headlight = 1.0f; + } else { + // dim display to 10% if the headlights are on and the combination meter is dimmed + // TODO: Link the combination meter brightness slider to this + if ((s.scene.headlightON) && (s.scene.meterDimmed)) { + clipped_brightness_headlight = 10.0f; + // parking light + dimmed MFD logic, useful during sunset + } else if ((s.scene.parkingLightON) && (!s.scene.headlightON) && (s.scene.meterDimmed)) { + clipped_brightness_headlight = 50.0f; + // default brightness + } else { + clipped_brightness_headlight = 100.0f; + } + } } - int brightness = brightness_filter.update(clipped_brightness); - if (!awake) { + if (s.scene.screen_off_timer && s.scene.touched2) { + sleep_time = DISPLAY_OFF_TIMEOUT; + } else if (s.scene.controls_state.getAlertSize() != cereal::ControlsState::AlertSize::NONE && s.scene.screen_off_timer) { + sleep_time = DISPLAY_OFF_TIMEOUT; + } else if (sleep_time > 0 && s.scene.screen_off_timer) { + sleep_time--; + } else if (s.scene.started && sleep_time == -1 && s.scene.screen_off_timer) { + sleep_time = DISPLAY_OFF_TIMEOUT; + } + + // handle brightness from two sources + // if the headlight brightness toggle is ON, use the headlight + MFD logic's output + if (s.scene.headlight_brightness_control) { + desired_brightness = clipped_brightness_headlight; + // otherwise use the comma device's sensor output + } else { + desired_brightness = clipped_brightness_sensor; + } + + // update brightness + int brightness = brightness_filter.update(desired_brightness); + + // brightness should be 0 if not awake or the screen off timer is up + if ((!awake) || (s.scene.started && sleep_time == 0 && s.scene.screen_off_timer)) { brightness = 0; } diff --git a/selfdrive/ui/ui.h b/selfdrive/ui/ui.h index 572065d96143561..fd513f46eebe376 100644 --- a/selfdrive/ui/ui.h +++ b/selfdrive/ui/ui.h @@ -109,11 +109,20 @@ static std::map alert_colors = { typedef struct UIScene { bool calibration_valid = false; + bool headlightON; + bool parkingLightON; + bool meterDimmed; + bool meterLowBrightness; + bool headlight_brightness_control; + bool screen_off_timer; + bool calibration_wide_valid = false; bool wide_cam = true; mat3 view_from_calib = DEFAULT_CALIBRATION; mat3 view_from_wide_calib = DEFAULT_CALIBRATION; + bool touched2 = false; cereal::PandaState::PandaType pandaType; + cereal::ControlsState::Reader controls_state; // modelV2 float lane_line_probs[4]; @@ -137,6 +146,13 @@ typedef struct UIScene { float light_sensor; bool started, ignition, is_metric, map_on_left, longitudinal_control; uint64_t started_frame; + + // FrogPilot variables + bool compass; + int bearing_deg; + int personality_profile; + bool driving_personalities_ui_wheel; + } UIScene; class UIState : public QObject { @@ -203,6 +219,8 @@ class Device : public QObject { FirstOrderFilter brightness_filter; QFuture brightness_future; + int sleep_time = -1; + void updateBrightness(const UIState &s); void updateWakefulness(const UIState &s); void setAwake(bool on);