diff --git a/.vscode/settings.json b/.vscode/settings.json index c62cc3d..a06fa65 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,12 +4,6 @@ "editor.renderWhitespace": "trailing", "files.trimTrailingWhitespace": true, "terminal.integrated.defaultProfile.linux": "dragonpilot", - "terminal.integrated.profiles.linux": { - "dragonpilot": { - "path": "bash", - "args": ["-c", "distrobox enter dp"] - } - }, "search.exclude": { "**/.git": true, "**/.venv": true, diff --git a/1.sh b/1.sh new file mode 100644 index 0000000..cc7881d --- /dev/null +++ b/1.sh @@ -0,0 +1,83 @@ +#!/bin/env sh + +persist_dir=/persist +target_dir=${persist_dir}/comma +# Change target dir from sunnylink to comma to make this no longer a test + + +# Function to remount /persist as read-only +cleanup() { + echo "Remounting ${persist_dir} as read-only..." + sudo mount -o remount,ro ${persist_dir} +} + +# Function to check and backup existing keys +backup_keys() { + if [ -f "id_rsa" ] || [ -f "id_rsa.pub" ]; then + timestamp=$(date +%s) + backup_base="id_rsa_backup_$timestamp" + backup_private="$backup_base" + backup_public="${backup_base}.pub" + + # Ensure we're not overwriting an existing backup + counter=0 + while [ -f "$backup_private" ] || [ -f "$backup_public" ]; do + counter=$((counter + 1)) + backup_private="${backup_base}_$counter" + backup_public="${backup_base}_$counter.pub" + done + + # Backup the keys + cp id_rsa "$backup_private" + cp id_rsa.pub "$backup_public" + + # Verify the backup + original_private_hash=$(sha256sum id_rsa | cut -d ' ' -f 1) + backup_private_hash=$(sha256sum "$backup_private" | cut -d ' ' -f 1) + original_public_hash=$(sha256sum id_rsa.pub | cut -d ' ' -f 1) + backup_public_hash=$(sha256sum "$backup_public" | cut -d ' ' -f 1) + + if [ "$original_private_hash" = "$backup_private_hash" ] && [ "$original_public_hash" = "$backup_public_hash" ]; then + echo "Backup verified successfully." + # Safe to delete original keys after successful backup verification + else + echo "Backup verification failed. Aborting operation." + exit 1 + fi + + echo "Existing keys backed up as $backup_private and $backup_public" + fi +} + +# Trap any signal that exits the script to run cleanup function +trap cleanup EXIT + +# Remount /persist as read-write +sudo mount -o remount,rw ${persist_dir} + +# Ensure the directory exists +mkdir -p ${target_dir} +cd ${target_dir} + +# Check for and backup existing keys +#backup_keys + +# Generate new keys +if ! ssh-keygen -t rsa -b 4096 -m PEM -f id_rsa -N ''; then + echo "Failed to generate new RSA keys. Exiting..." + exit 1 +fi + +# Convert the generated SSH public key to PEM format and store it temporarily +if ! openssl rsa -pubout -in id_rsa -out id_rsa.pub -outform PEM; then + echo "Failed to convert the public key to PEM format. Exiting..." + exit 1 +fi + +# Display the public key +echo "Displaying the public key:" +cat id_rsa.pub + +# Cleanup will be called automatically due to trap on EXIT +#echo "Operation completed successfully. System will reboot now." +#sudo reboot \ No newline at end of file diff --git a/common/params_keys.h b/common/params_keys.h index 357524f..a7c6ae4 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -66,7 +66,7 @@ inline static std::unordered_map keys = { {"IsTakingSnapshot", {CLEAR_ON_MANAGER_START, BOOL}}, {"IsTestedBranch", {CLEAR_ON_MANAGER_START, BOOL}}, {"JoystickDebugMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}}, - {"LanguageSetting", {PERSISTENT, STRING, "en"}}, + {"LanguageSetting", {PERSISTENT, STRING, "zh-CHS"}}, {"LastAthenaPingTime", {CLEAR_ON_MANAGER_START, INT}}, {"LastGPSPosition", {PERSISTENT, STRING}}, {"LastManagerExitReason", {CLEAR_ON_MANAGER_START, STRING}}, @@ -160,4 +160,7 @@ inline static std::unordered_map keys = { {"dp_vag_a0_sng", {PERSISTENT, BOOL, "0"}}, {"dp_vag_pq_steering_patch", {PERSISTENT, BOOL, "0"}}, {"dp_vag_avoid_eps_lockout", {PERSISTENT, BOOL, "0"}}, + + // 驾驶员监控灵敏度 + {"DistractionDetectionLevel", {PERSISTENT, INT, "1"}}, }; diff --git a/dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py b/dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py index c854b52..ab8e6d1 100644 --- a/dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py +++ b/dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py @@ -196,7 +196,7 @@ class DragonpilotLayout(Widget): description=lambda: tr("Display the statistics of lead car and/or radar tracking points.
Lead: Lead stats only
Radar: Radar tracking point stats only
All: Lead and Radar stats
NOTE: Radar option only works on certain vehicle models."), initial_index=int(self._params.get("dp_ui_lead") or 0), callback=lambda val: self._params.put("dp_ui_lead", val), - options=["Off", "Lead", "Radar", "All"] + options=[tr("Off"), tr("Lead"), tr("Radar"), tr("All")] ) def _device_toggles(self): @@ -227,7 +227,7 @@ class DragonpilotLayout(Widget): self._toggles["dp_ui_display_mode"] = text_spin_button_item( title=lambda: tr("Display Mode"), callback=lambda val: self._params.put("dp_ui_display_mode", val), - options=["Std.", "MAIN+", "OP+", "MAIN-", "OP-"], + options=[tr("Std."), tr("MAIN+"), tr("OP+"), tr("MAIN-"), tr("OP-")], initial_index=int(self._params.get("dp_ui_display_mode") or 0), description=lambda: tr("Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled = Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = Display OFF."), ) @@ -238,7 +238,7 @@ class DragonpilotLayout(Widget): description=lambda: tr("Std.: Stock behaviour.
Warning: Only emits sound when there is a warning.
Off: Does not emit any sound at all."), initial_index=int(self._params.get("dp_dev_audible_alert_mode") or 0), callback=lambda val: self._params.put("dp_dev_audible_alert_mode", val), - options=["Std.", "Warning", "Off"], + options=[tr("Std."), tr("Warning"), tr("Off")], ) self._toggles["dp_dev_auto_shutdown_in"] = spin_button_item( diff --git a/key.py b/key.py new file mode 100644 index 0000000..3b1be7d --- /dev/null +++ b/key.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python3 + +import struct +from subprocess import check_output, CalledProcessError + +from Crypto.Cipher import AES +from tqdm import tqdm + +from panda import Panda +from opendbc.car.uds import UdsClient, ACCESS_TYPE, SESSION_TYPE, DATA_IDENTIFIER_TYPE, SERVICE_TYPE, ROUTINE_CONTROL_TYPE, NegativeResponseError +from opendbc.car.structs import CarParams +from opendbc.car.isotp import isotp_send + +ADDR = 0x7a1 +DEBUG = False +BUS = 0 + +SEED_KEY_SECRET = b'\xf0\x5f\x36\xb7\xd7\x8c\x03\xe2\x4a\xb4\xfa\xef\x2a\x57\xd0\x44' + +# These are the key and IV used to encrypt the payload in build_payload.py +DID_201_KEY = b'\x00' * 16 +DID_202_IV = b'\x00' * 16 + +# 车型版本 +APPLICATION_VERSIONS = { + b'\x018965B4209000\x00\x00\x00\x00': b'\x01!!!!!!!!!!!!!!!!', # 2021 RAV4 Prime + b'\x018965B4233100\x00\x00\x00\x00': b'\x01!!!!!!!!!!!!!!!!', # 2023 RAV4 Prime + b'\x018965B4509100\x00\x00\x00\x00': b'\x01!!!!!!!!!!!!!!!!', # 2021 Sienna + b'\x018965B4221000\x00\x00\x00\x00': b'\x01!!!!!!!!!!!!!!!!', # 2021 WILDLANDER PHEV +} + +KEY_STRUCT_SIZE = 0x20 +CHECKSUM_OFFSET = 0x1d +SECOC_KEY_SIZE = 0x10 +SECOC_KEY_OFFSET = 0x0c + +def get_key_struct(data, key_no): + return data[key_no * KEY_STRUCT_SIZE: (key_no + 1) * KEY_STRUCT_SIZE] + +def verify_checksum(key_struct): + checksum = sum(key_struct[:CHECKSUM_OFFSET]) + checksum = ~checksum & 0xff + return checksum == key_struct[CHECKSUM_OFFSET] + +def get_secoc_key(key_struct): + return key_struct[SECOC_KEY_OFFSET:SECOC_KEY_OFFSET + SECOC_KEY_SIZE] + + +if __name__ == "__main__": + try: + check_output(["pidof", "boardd"]) + print("boardd 正在运行,请在运行此脚本前先关闭 openpilot!(已中止)") + exit(1) + except CalledProcessError as e: + if e.returncode != 1: # 1 == no process found (boardd not running) + raise e + except FileNotFoundError: + pass + + panda = Panda() + panda.set_safety_mode(CarParams.SafetyModel.elm327) + + uds_client = UdsClient(panda, ADDR, ADDR + 8, BUS, timeout=0.1, response_pending_timeout=0.1) + + print("获取应用程序版本...") + + try: + app_version = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.APPLICATION_SOFTWARE_IDENTIFICATION) + print(" - 应用软件标识(application)", app_version) + except NegativeResponseError: + print("无法读取应用软件标识。请循环点火。") + exit(1) + + if app_version not in APPLICATION_VERSIONS: + print("应用程序版本异常!", app_version) + exit(1) + + # Mandatory flow of diagnostic sessions + uds_client.diagnostic_session_control(SESSION_TYPE.DEFAULT) + uds_client.diagnostic_session_control(SESSION_TYPE.EXTENDED_DIAGNOSTIC) + uds_client.diagnostic_session_control(SESSION_TYPE.PROGRAMMING) + + # Get bootloader version + uds_client.diagnostic_session_control(SESSION_TYPE.DEFAULT) + uds_client.diagnostic_session_control(SESSION_TYPE.EXTENDED_DIAGNOSTIC) + bl_version = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.APPLICATION_SOFTWARE_IDENTIFICATION) + print(" - 应用软件识别(引导加载程序)", bl_version) + + if bl_version != APPLICATION_VERSIONS[app_version]: + print("引导加载程序版本异常!", bl_version) + exit(1) + + # Go back to programming session + uds_client.diagnostic_session_control(SESSION_TYPE.PROGRAMMING) + + # Security Access - Request Seed + seed_payload = b"\x00" * 16 + seed = uds_client.security_access(ACCESS_TYPE.REQUEST_SEED, data_record=seed_payload) + + key = AES.new(SEED_KEY_SECRET, AES.MODE_ECB).decrypt(seed_payload) + key = AES.new(key, AES.MODE_ECB).encrypt(seed) + + print("\n安全访问...") + + print(" - SEED:", seed.hex()) + print(" - KEY:", key.hex()) + + # Security Access - Send Key + uds_client.security_access(ACCESS_TYPE.SEND_KEY, key) + print(" - Key OK!") + + print("\nPreparing to upload payload...") + + # Write something to DID 203, not sure why but needed for state machine + uds_client.write_data_by_identifier(0x203, b"\x00" * 5) + + # Write KEY and IV to DID 201/202, prerequisite for request download + print(" - Write data by identifier 0x201", DID_201_KEY.hex()) + uds_client.write_data_by_identifier(0x201, DID_201_KEY) + + print(" - Write data by identifier 0x202", DID_202_IV.hex()) + uds_client.write_data_by_identifier(0x202, DID_202_IV) + + # Request download to RAM + data = b"\x01" # [1] Format + data += b"\x46" # [2] 4 size bytes, 6 address bytes + data += b"\x01" # [3] memoryIdentifier + data += b"\x00" # [4] + data += struct.pack('!I', 0xfebf0000) # [5] Address + data += struct.pack('!I', 0x1000) # [9] Size + + print("\nUpload payload...") + + print(" - Request download") + resp = uds_client._uds_request(SERVICE_TYPE.REQUEST_DOWNLOAD, data=data) + + # Upload payload + payload = open("payload.bin", "rb").read() + assert len(payload) == 0x1000 + chunk_size = 0x400 + for i in range(len(payload) // chunk_size): + print(f" - Transfer data {i}") + uds_client.transfer_data(i + 1, payload[i * chunk_size:(i + 1) * chunk_size]) + + uds_client.request_transfer_exit() + + print("\nVerify payload...") + + # Routine control 0x10f0 + # [0] 0x31 (routine control) + # [1] 0x01 (start) + # [2] 0x10f0 (routine identifier) + # [4] 0x45 (format, 4 size bytes, 5 address bytes) + # [5] 0x0 + # [6] mem addr + # [10] mem addr + data = b"\x45\x00" + data += struct.pack('!I', 0xfebf0000) + data += struct.pack('!I', 0x1000) + + uds_client.routine_control(ROUTINE_CONTROL_TYPE.START, 0x10f0, data) + print(" - Routine control 0x10f0 OK!") + + print("\nTrigger payload...") + + # Now we trigger the payload by trying to erase + # [0] 0x31 (routine control) + # [1] 0x01 (start) + # [2] 0xff00 (routine identifier) + # [4] 0x45 (format, 4 size bytes, 5 address bytes) + # [5] 0x0 + # [6] mem addr + # [10] mem addr + data = b"\x45\x00" + data += struct.pack('!I', 0xe0000) + data += struct.pack('!I', 0x8000) + + # Manually send so we don't get stuck waiting for the response + # uds_client.routine_control(ROUTINE_CONTROL_TYPE.START, 0xff00, data) + erase = b"\x31\x01\xff\x00" + data + isotp_send(panda, erase, ADDR, bus=BUS) + + print("\nDumping keys...") + start = 0xfebe6e34 + end = 0xfebe6ff4 + + extracted = b"" + + with open(f'data_{start:08x}_{end:08x}.bin', 'wb') as f: + with tqdm(total=end-start) as pbar: + while start < end: + for addr, *_, data, bus in panda.can_recv(): + if bus != BUS: + continue + + if data == b"\x03\x7f\x31\x78\x00\x00\x00\x00": # Skip response pending + continue + + if addr != ADDR + 8: + continue + + if DEBUG: + print(f"{data.hex()}") + + ptr = struct.unpack("> 8) == start & 0xffffff # Check lower 24 bits of address + + extracted += data[4:] + f.write(data[4:]) + f.flush() + + start += 4 + pbar.update(4) + + key_1_ok = verify_checksum(get_key_struct(extracted, 1)) + key_4_ok = verify_checksum(get_key_struct(extracted, 4)) + + if not key_1_ok or not key_4_ok: + print("SecOC key checksum verification failed!") + exit(1) + + key_1 = get_secoc_key(get_key_struct(extracted, 1)) + key_4 = get_secoc_key(get_key_struct(extracted, 4)) + + print("\nECU_MASTER_KEY ", key_1.hex()) + print("SecOC Key (KEY_4)", key_4.hex()) + + try: + from openpilot.common.params import Params + params = Params() + params.put("SecOCKey", key_4.hex()) + print("\nSecOC key written to param successfully!") + except Exception: + print("\nFailed to write SecOCKey param") diff --git a/launch_openpilot.sh b/launch_openpilot.sh index d6e3424..389334e 100755 --- a/launch_openpilot.sh +++ b/launch_openpilot.sh @@ -1,3 +1,4 @@ -#!/usr/bin/env bash - +#!/usr/bin/bash +export API_HOST=https://api.konik.ai +export ATHENA_HOST=wss://athena.konik.ai exec ./launch_chffrplus.sh diff --git a/opendbc_repo/opendbc/car/torque_data/substitute.toml b/opendbc_repo/opendbc/car/torque_data/substitute.toml index db26c1a..57048a6 100644 --- a/opendbc_repo/opendbc/car/torque_data/substitute.toml +++ b/opendbc_repo/opendbc/car/torque_data/substitute.toml @@ -10,6 +10,7 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "TOYOTA_ALPHARD_TSS2" = "TOYOTA_SIENNA" "TOYOTA_PRIUS_V" = "TOYOTA_PRIUS" "TOYOTA_RAV4_PRIME" = "TOYOTA_RAV4_TSS2" +"TOYOTA_WILDLANDER_PHEV" = "TOYOTA_RAV4_TSS2" "TOYOTA_SIENNA_4TH_GEN" = "TOYOTA_RAV4_TSS2" "LEXUS_IS" = "LEXUS_NX" "LEXUS_CTH" = "LEXUS_NX" diff --git a/opendbc_repo/opendbc/car/toyota/carstate.py b/opendbc_repo/opendbc/car/toyota/carstate.py index 22acebb..3cfec74 100644 --- a/opendbc_repo/opendbc/car/toyota/carstate.py +++ b/opendbc_repo/opendbc/car/toyota/carstate.py @@ -208,6 +208,7 @@ class CarState(CarStateBase): self.pcm_follow_distance = cp.vl["PCM_CRUISE_2"]["PCM_FOLLOW_DISTANCE"] buttonEvents = [] + prev_distance_button = self.distance_button if self.CP.carFingerprint in TSS2_CAR: # lkas button is wired to the camera prev_lkas_button = self.lkas_button @@ -218,9 +219,8 @@ class CarState(CarStateBase): buttonEvents.extend(create_button_events(1, 0, {1: ButtonType.lkas}) + create_button_events(0, 1, {1: ButtonType.lkas})) - if self.CP.carFingerprint not in (RADAR_ACC_CAR | SECOC_CAR): + if self.CP.carFingerprint not in RADAR_ACC_CAR: # distance button is wired to the ACC module (camera or radar) - prev_distance_button = self.distance_button self.distance_button = cp_acc.vl["ACC_CONTROL"]["DISTANCE"] buttonEvents += create_button_events(self.distance_button, prev_distance_button, {1: ButtonType.gapAdjustCruise}) diff --git a/opendbc_repo/opendbc/car/toyota/fingerprints.py b/opendbc_repo/opendbc/car/toyota/fingerprints.py index f320e40..dc5e845 100644 --- a/opendbc_repo/opendbc/car/toyota/fingerprints.py +++ b/opendbc_repo/opendbc/car/toyota/fingerprints.py @@ -1068,6 +1068,29 @@ FW_VERSIONS = { b'\x028646F4210100\x00\x00\x00\x008646G3305000\x00\x00\x00\x00', ], }, + CAR.TOYOTA_WILDLANDER_PHEV: { + (Ecu.engine, 0x700, None): [ + b'\x01896630R57001\x00\x00\x00\x00', + ], + (Ecu.abs, 0x7b0, None): [ + b'\x01F152642C4000\x00\x00\x00\x00', + ], + (Ecu.eps, 0x7a1, None): [ + b'\x018965B4221000\x00\x00\x00\x00', + ], + (Ecu.fwdCamera, 0x750, 0x6d): [ + b'\x028646F0R01000\x00\x00\x00\x008646G4202000\x00\x00\x00\x00', + ], + (Ecu.fwdRadar, 0x750, 0xf): [ + b'\x018821F3301400\x00\x00\x00\x00', + ], + (Ecu.srs, 0x780, None): [ + b'\x018917F0R18000\x00\x00\x00\x00' + ], + (Ecu.hybrid, 0x7d2, None): [ + b'\x02899830R24000\x00\x00\x00\x00899850R05000\x00\x00\x00\x00' + ], + }, CAR.TOYOTA_RAV4_TSS2: { (Ecu.engine, 0x700, None): [ b'\x01896630R58000\x00\x00\x00\x00', diff --git a/opendbc_repo/opendbc/car/toyota/interface.py b/opendbc_repo/opendbc/car/toyota/interface.py index da6de07..3061aee 100644 --- a/opendbc_repo/opendbc/car/toyota/interface.py +++ b/opendbc_repo/opendbc/car/toyota/interface.py @@ -93,7 +93,7 @@ class CarInterface(CarInterfaceBase): # https://engage.toyota.com/static/images/toyota_safety_sense/TSS_Applicability_Chart.pdf stop_and_go = candidate != CAR.TOYOTA_AVALON - elif candidate in (CAR.TOYOTA_RAV4_TSS2, CAR.TOYOTA_RAV4_TSS2_2022, CAR.TOYOTA_RAV4_TSS2_2023, CAR.TOYOTA_RAV4_PRIME, CAR.TOYOTA_SIENNA_4TH_GEN): + elif candidate in (CAR.TOYOTA_RAV4_TSS2, CAR.TOYOTA_RAV4_TSS2_2022, CAR.TOYOTA_RAV4_TSS2_2023, CAR.TOYOTA_RAV4_PRIME, CAR.TOYOTA_SIENNA_4TH_GEN, CAR.TOYOTA_WILDLANDER_PHEV): ret.lateralTuning.init('pid') ret.lateralTuning.pid.kiBP = [0.0] ret.lateralTuning.pid.kpBP = [0.0] @@ -169,9 +169,7 @@ class CarInterface(CarInterfaceBase): ret.openpilotLongitudinalControl = ret.enableDsu or \ candidate in (TSS2_CAR - RADAR_ACC_CAR) or \ - bool(ret.flags & ToyotaFlags.DISABLE_RADAR.value) or \ - sdsu_active or \ - dsu_bypass + bool(ret.flags & ToyotaFlags.DISABLE_RADAR.value) if dp_params & structs.DPFlags.ToyotaStockLon: ret.openpilotLongitudinalControl = False diff --git a/opendbc_repo/opendbc/car/toyota/values.py b/opendbc_repo/opendbc/car/toyota/values.py index cbcdcbe..b1b8815 100644 --- a/opendbc_repo/opendbc/car/toyota/values.py +++ b/opendbc_repo/opendbc/car/toyota/values.py @@ -300,6 +300,10 @@ class CAR(Platforms): [ToyotaCommunityCarDocs("Toyota RAV4 Prime 2021-23", min_enable_speed=MIN_ACC_SPEED)], CarSpecs(mass=4372. * CV.LB_TO_KG, wheelbase=2.68, steerRatio=16.88, tireStiffnessFactor=0.5533), ) + TOYOTA_WILDLANDER_PHEV = ToyotaSecOCPlatformConfig( + [ToyotaCarDocs("Toyota Wildlander PHEV 2021-23", min_enable_speed=MIN_ACC_SPEED)], + CarSpecs(mass=4155. * CV.LB_TO_KG, wheelbase=2.69, steerRatio=16.88, tireStiffnessFactor=0.5533), + ) TOYOTA_YARIS = ToyotaSecOCPlatformConfig( [ToyotaCommunityCarDocs("Toyota Yaris (Non-US only) 2020, 2023", min_enable_speed=MIN_ACC_SPEED)], CarSpecs(mass=1170, wheelbase=2.55, steerRatio=14.80, tireStiffnessFactor=0.5533), diff --git a/payload.bin b/payload.bin new file mode 100644 index 0000000..8707696 Binary files /dev/null and b/payload.bin differ diff --git a/selfdrive/assets/fonts/china.ttf b/selfdrive/assets/fonts/china.ttf new file mode 100644 index 0000000..2971537 Binary files /dev/null and b/selfdrive/assets/fonts/china.ttf differ diff --git a/selfdrive/monitoring/dmonitoringd.py b/selfdrive/monitoring/dmonitoringd.py index f137b40..570c434 100755 --- a/selfdrive/monitoring/dmonitoringd.py +++ b/selfdrive/monitoring/dmonitoringd.py @@ -12,7 +12,11 @@ def dmonitoringd_thread(): pm = messaging.PubMaster(['driverMonitoringState']) sm = messaging.SubMaster(['driverStateV2', 'liveCalibration', 'carState', 'selfdriveState', 'modelV2'], poll='driverStateV2') - DM = DriverMonitoring(rhd_saved=params.get_bool("IsRhdDetected"), always_on=params.get_bool("AlwaysOnDM")) + DM = DriverMonitoring( + rhd_saved=params.get_bool("IsRhdDetected"), + always_on=params.get_bool("AlwaysOnDM"), + distraction_detection_level=int(params.get("DistractionDetectionLevel") or 1) + ) # 20Hz <- dmonitoringmodeld while True: @@ -22,8 +26,10 @@ def dmonitoringd_thread(): continue valid = sm.all_checks() - if valid: + if DM.always_on and valid: DM.run_step(sm) + ## 设置分心率 + DM.set_distract_level_params() # publish dat = DM.get_state_packet(valid=valid) @@ -32,6 +38,7 @@ def dmonitoringd_thread(): # load live always-on toggle if sm['driverStateV2'].frameId % 40 == 1: DM.always_on = params.get_bool("AlwaysOnDM") + DM.distraction_detection_level = int(params.get("DistractionDetectionLevel") or 1) # save rhd virtual toggle every 5 mins if (sm['driverStateV2'].frameId % 6000 == 0 and diff --git a/selfdrive/monitoring/helpers.py b/selfdrive/monitoring/helpers.py index c2e5bc3..fd2e2b4 100644 --- a/selfdrive/monitoring/helpers.py +++ b/selfdrive/monitoring/helpers.py @@ -124,7 +124,7 @@ def face_orientation_from_net(angles_desc, pos_desc, rpy_calib): class DriverMonitoring: - def __init__(self, rhd_saved=False, settings=None, always_on=False): + def __init__(self, rhd_saved=False, settings=None, always_on=False, distraction_detection_level=None): if settings is None: settings = DRIVER_MONITOR_SETTINGS() # init policy settings @@ -139,6 +139,7 @@ class DriverMonitoring: self.ee1_calibrated = False self.always_on = always_on + self.distraction_detection_level = distraction_detection_level self.distracted_types = [] self.driver_distracted = False self.driver_distraction_filter = FirstOrderFilter(0., self.settings._DISTRACTED_FILTER_TS, self.settings._DT_DMON) @@ -415,3 +416,21 @@ class DriverMonitoring: wrong_gear=sm['carState'].gearShifter in [car.CarState.GearShifter.reverse, car.CarState.GearShifter.park], car_speed=sm['carState'].vEgo ) + + def set_distract_level_params(self): + if self.distraction_detection_level == 0: + self.settings._DISTRACTED_TIME = 8.0 + self.settings._DISTRACTED_PRE_TIME_TILL_TERMINAL = 5.0 + self.settings._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 4.0 + elif self.distraction_detection_level == 1: + self.settings._DISTRACTED_TIME = 11.0 + self.settings._DISTRACTED_PRE_TIME_TILL_TERMINAL = 8. + self.settings._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 6. + elif self.distraction_detection_level == 2: + self.settings._DISTRACTED_TIME = 20.0 + self.settings._DISTRACTED_PRE_TIME_TILL_TERMINAL = 10.0 + self.settings._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 7.0 + else: + self.settings._DISTRACTED_TIME = float('inf') + self.settings._DISTRACTED_PRE_TIME_TILL_TERMINAL = float('inf') + self.settings._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = float('inf') diff --git a/selfdrive/selfdrived/events.py b/selfdrive/selfdrived/events.py index c865cc9..798f2ee 100755 --- a/selfdrive/selfdrived/events.py +++ b/selfdrive/selfdrived/events.py @@ -148,7 +148,7 @@ EmptyAlert = Alert("" , "", AlertStatus.normal, AlertSize.none, Priority.LOWEST, class NoEntryAlert(Alert): def __init__(self, alert_text_2: str, - alert_text_1: str = "openpilot Unavailable", + alert_text_1: str = "openpilot 不可用", visual_alert: car.CarControl.HUDControl.VisualAlert=VisualAlert.none): super().__init__(alert_text_1, alert_text_2, AlertStatus.normal, AlertSize.mid, Priority.LOW, visual_alert, @@ -157,7 +157,7 @@ class NoEntryAlert(Alert): class SoftDisableAlert(Alert): def __init__(self, alert_text_2: str): - super().__init__("TAKE CONTROL IMMEDIATELY", alert_text_2, + super().__init__("立即接管控制", alert_text_2, AlertStatus.userPrompt, AlertSize.full, Priority.MID, VisualAlert.steerRequired, AudibleAlert.warningSoft, 2.), @@ -167,12 +167,12 @@ class SoftDisableAlert(Alert): class UserSoftDisableAlert(SoftDisableAlert): def __init__(self, alert_text_2: str): super().__init__(alert_text_2), - self.alert_text_1 = "openpilot will disengage" + self.alert_text_1 = "openpilot 将解除控制" class ImmediateDisableAlert(Alert): def __init__(self, alert_text_2: str): - super().__init__("TAKE CONTROL IMMEDIATELY", alert_text_2, + super().__init__("立即接管控制", alert_text_2, AlertStatus.critical, AlertSize.full, Priority.HIGHEST, VisualAlert.steerRequired, AudibleAlert.warningImmediate, 4.), @@ -194,7 +194,7 @@ class NormalPermanentAlert(Alert): class StartupAlert(Alert): - def __init__(self, alert_text_1: str, alert_text_2: str = "Always keep hands on wheel and eyes on road", alert_status=AlertStatus.normal): + def __init__(self, alert_text_1: str, alert_text_2: str = "请始终将手放在方向盘上,眼睛注视道路", alert_status=AlertStatus.normal): super().__init__(alert_text_1, alert_text_2, alert_status, AlertSize.mid, Priority.LOWER, VisualAlert.none, AudibleAlert.none, 5.), @@ -232,25 +232,25 @@ 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("警告:此分支未经测试", branch, alert_status=AlertStatus.userPrompt) def below_engage_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: - return NoEntryAlert(f"Drive above {get_display_speed(CP.minEnableSpeed, metric)} to engage") + return NoEntryAlert(f"请将时速提高至 {get_display_speed(CP.minEnableSpeed, metric)} 来启用") def below_steer_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: return Alert( - f"Steer Assist Unavailable Below {get_display_speed(CP.minSteerSpeed, metric)}", + f"转向在 {get_display_speed(CP.minSteerSpeed, metric)} 以下不可用", "", AlertStatus.userPrompt, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 0.4) def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: - first_word = 'Recalibration' if sm['liveCalibration'].calStatus == log.LiveCalibrationData.Status.recalibrating else 'Calibration' + first_word = '重新校准' if sm['liveCalibration'].calStatus == log.LiveCalibrationData.Status.recalibrating else '校准' return Alert( - f"{first_word} in Progress: {sm['liveCalibration'].calPerc:.0f}%", - f"Drive Above {get_display_speed(MIN_SPEED_FILTER, metric)}", + f"{first_word}进行中:{sm['liveCalibration'].calPerc:.0f}%", + f"请将时速提高至 {get_display_speed(MIN_SPEED_FILTER, metric)} 进行校准", AlertStatus.normal, AlertSize.mid, Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .2) @@ -258,8 +258,8 @@ def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messag def audio_feedback_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: duration = FEEDBACK_MAX_DURATION - ((sm['audioFeedback'].blockNum + 1) * SAMPLE_BUFFER / SAMPLE_RATE) return NormalPermanentAlert( - "Recording Audio Feedback", - f"{round(duration)} second{'s' if round(duration) != 1 else ''} remaining. Press again to save early.", + "正在录制音频反馈", + f"剩余 {round(duration)} 秒。再次按下可提前保存。", priority=Priority.LOW) @@ -267,57 +267,57 @@ def audio_feedback_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubM def out_of_space_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: full_perc = round(100. - sm['deviceState'].freeSpacePercent) - return NormalPermanentAlert("Out of Storage", f"{full_perc}% full") + return NormalPermanentAlert("存储空间不足", f"已用 {full_perc}%") def posenet_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: mdl = sm['modelV2'].velocity.x[0] if len(sm['modelV2'].velocity.x) else math.nan err = CS.vEgo - mdl - msg = f"Speed Error: {err:.1f} m/s" - return NoEntryAlert(msg, alert_text_1="Posenet Speed Invalid") + msg = f"速度误差: {err:.1f} 米/秒" + return NoEntryAlert(msg, alert_text_1="Posenet速度无效") def process_not_running_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: not_running = [p.name for p in sm['managerState'].processes if not p.running and p.shouldBeRunning] msg = ', '.join(not_running) - return NoEntryAlert(msg, alert_text_1="Process Not Running") + return NoEntryAlert(msg, alert_text_1="进程未运行") def comm_issue_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: bs = [s for s in sm.data.keys() if not sm.all_checks([s, ])] msg = ', '.join(bs[:4]) # can't fit too many on one line - return NoEntryAlert(msg, alert_text_1="Communication Issue Between Processes") + return NoEntryAlert(msg, alert_text_1="进程间通信问题") def camera_malfunction_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: all_cams = ('roadCameraState', 'driverCameraState', 'wideRoadCameraState') bad_cams = [s.replace('State', '') for s in all_cams if s in sm.data.keys() and not sm.all_checks([s, ])] - return NormalPermanentAlert("Camera Malfunction", ', '.join(bad_cams)) + return NormalPermanentAlert("摄像头故障", ', '.join(bad_cams)) def calibration_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: rpy = sm['liveCalibration'].rpyCalib yaw = math.degrees(rpy[2] if len(rpy) == 3 else math.nan) pitch = math.degrees(rpy[1] if len(rpy) == 3 else math.nan) - angles = f"Remount Device (Pitch: {pitch:.1f}°, Yaw: {yaw:.1f}°)" - return NormalPermanentAlert("Calibration Invalid", angles) + angles = f"请重新安装设备 (俯仰角: {pitch:.1f}°, 偏航角: {yaw:.1f}°)" + return NormalPermanentAlert("校准无效", angles) def paramsd_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: if not sm['liveParameters'].angleOffsetValid: angle_offset_deg = sm['liveParameters'].angleOffsetDeg - title = "Steering misalignment detected" - text = f"Angle offset too high (Offset: {angle_offset_deg:.1f}°)" + title = "转向系统未对准" + text = f"角度偏移过大 (偏移量: {angle_offset_deg:.1f}°)" elif not sm['liveParameters'].steerRatioValid: steer_ratio = sm['liveParameters'].steerRatio - title = "Steer ratio mismatch" - text = f"Steering rack geometry may be off (Ratio: {steer_ratio:.1f})" + title = "转向传动比不匹配" + text = f"转向齿条几何可能不正确 (传动比: {steer_ratio:.1f})" elif not sm['liveParameters'].stiffnessFactorValid: stiffness_factor = sm['liveParameters'].stiffnessFactor - title = "Abnormal tire stiffness" - text = f"Check tires, pressure, or alignment (Factor: {stiffness_factor:.1f})" + title = "轮胎刚度异常" + text = f"请检查轮胎、胎压或定位 (系数: {stiffness_factor:.1f})" else: - return NoEntryAlert("paramsd Temporary Error") + return NoEntryAlert("paramsd 临时错误") return NoEntryAlert(alert_text_1=title, alert_text_2=text) @@ -325,34 +325,34 @@ def overheat_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, cpu = max(sm['deviceState'].cpuTempC, default=0.) gpu = max(sm['deviceState'].gpuTempC, default=0.) temp = max((cpu, gpu, sm['deviceState'].memoryTempC)) - return NormalPermanentAlert("System Overheated", f"{temp:.0f} °C") + return NormalPermanentAlert("系统过热", f"{temp:.0f} °C") def low_memory_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: - return NormalPermanentAlert("Low Memory", f"{sm['deviceState'].memoryUsagePercent}% used") + return NormalPermanentAlert("内存不足", f"已用 {sm['deviceState'].memoryUsagePercent}%") def high_cpu_usage_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: x = max(sm['deviceState'].cpuUsagePercent, default=0.) - return NormalPermanentAlert("High CPU Usage", f"{x}% used") + return NormalPermanentAlert("CPU使用率过高", f"已用 {x}%") def modeld_lagging_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: - return NormalPermanentAlert("Driving Model Lagging", f"{sm['modelV2'].frameDropPerc:.1f}% frames dropped") + return NormalPermanentAlert("驾驶模型滞后", f"已丢帧 {sm['modelV2'].frameDropPerc:.1f}%") def wrong_car_mode_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: - text = "Enable Adaptive Cruise to Engage" + text = "启用自适应巡航以接合" if CP.brand == "honda": - text = "Enable Main Switch to Engage" + text = "启用主开关以接合" return NoEntryAlert(text) def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: gb = sm['carControl'].actuators.accel / 4. steer = sm['carControl'].actuators.torque - vals = f"Gas: {round(gb * 100.)}%, Steer: {round(steer * 100.)}%" - return NormalPermanentAlert("Joystick Mode", vals) + vals = f"油门: {round(gb * 100.)}%, 转向: {round(steer * 100.)}%" + return NormalPermanentAlert("操纵杆模式", vals) def longitudinal_maneuver_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: @@ -367,18 +367,25 @@ def longitudinal_maneuver_alert(CP: car.CarParams, CS: car.CarState, sm: messagi def personality_changed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: personality = str(personality).title() - return NormalPermanentAlert(f"Driving Personality: {personality}", duration=1.5) + personality_en = "" + if personality == "Aggressive": + personality_en = "激进" + elif personality == "Standard": + personality_en = "标准" + elif personality == "Relaxed": + personality_en = "舒适" + return NormalPermanentAlert(f"驾驶风格: {personality_en}", duration=1.5) def invalid_lkas_setting_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert: - text = "Toggle stock LKAS on or off to engage" + text = "请切换原厂LKAS状态以启用" if CP.brand == "tesla": - text = "Switch to Traffic-Aware Cruise Control to engage" + text = "请切换到交通感知巡航控制以启用" elif CP.brand == "mazda": - text = "Enable your car's LKAS to engage" + text = "请启用您的车辆LKAS以启用" elif CP.brand == "nissan": - text = "Disable your car's stock LKAS to engage" - return NormalPermanentAlert("Invalid LKAS setting", text) + text = "请禁用您的车辆原厂LKAS以启用" + return NormalPermanentAlert("无效的LKAS设置", text) @@ -392,21 +399,21 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.joystickDebug: { ET.WARNING: joystick_alert, - ET.PERMANENT: NormalPermanentAlert("Joystick Mode"), + ET.PERMANENT: NormalPermanentAlert("操纵杆模式"), }, EventName.longitudinalManeuver: { ET.WARNING: longitudinal_maneuver_alert, - ET.PERMANENT: NormalPermanentAlert("Longitudinal Maneuver Mode", - "Ensure road ahead is clear"), + ET.PERMANENT: NormalPermanentAlert("纵向操作模式", + "确保前方道路畅通"), }, EventName.selfdriveInitializing: { - ET.NO_ENTRY: NoEntryAlert("System Initializing"), + ET.NO_ENTRY: NoEntryAlert("系统初始化中"), }, EventName.startup: { - ET.PERMANENT: StartupAlert("Be ready to take over at any time") + ET.PERMANENT: StartupAlert("请随时准备接管您的车辆控制权") }, EventName.startupMaster: { @@ -414,28 +421,28 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { }, EventName.startupNoControl: { - ET.PERMANENT: StartupAlert("Dashcam mode"), - ET.NO_ENTRY: NoEntryAlert("Dashcam mode"), + ET.PERMANENT: StartupAlert("仅行车记录仪模式"), + ET.NO_ENTRY: NoEntryAlert("仅行车记录仪模式"), }, EventName.startupNoCar: { - ET.PERMANENT: StartupAlert("Dashcam mode for unsupported car"), + ET.PERMANENT: StartupAlert("不支持车辆的行车记录仪模式"), }, EventName.startupNoSecOcKey: { - ET.PERMANENT: NormalPermanentAlert("Dashcam Mode", - "Security Key Not Available", + ET.PERMANENT: NormalPermanentAlert("仅行车记录仪模式", + "安全密钥不可用", priority=Priority.HIGH), }, EventName.dashcamMode: { - ET.PERMANENT: NormalPermanentAlert("Dashcam Mode", + ET.PERMANENT: NormalPermanentAlert("行车记录仪模式", priority=Priority.LOWEST), }, EventName.invalidLkasSetting: { ET.PERMANENT: invalid_lkas_setting_alert, - ET.NO_ENTRY: NoEntryAlert("Invalid LKAS setting"), + ET.NO_ENTRY: NoEntryAlert("车道保持辅助系统(LKAS)设置无效"), }, EventName.cruiseMismatch: { @@ -446,40 +453,40 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # read-only mode. This can be solved by adding your fingerprint. # See https://github.com/commaai/openpilot/wiki/Fingerprinting for more information EventName.carUnrecognized: { - ET.PERMANENT: NormalPermanentAlert("Dashcam Mode", - "Car Unrecognized", + ET.PERMANENT: NormalPermanentAlert("行车记录仪模式", + "车辆未识别", priority=Priority.LOWEST), }, EventName.aeb: { ET.PERMANENT: Alert( - "BRAKE!", - "Emergency Braking: Risk of Collision", + "刹车!", + "紧急制动:可能发生碰撞", AlertStatus.critical, AlertSize.full, Priority.HIGHEST, VisualAlert.fcw, AudibleAlert.none, 2.), - ET.NO_ENTRY: NoEntryAlert("AEB: Risk of Collision"), + ET.NO_ENTRY: NoEntryAlert("AEB:可能发生碰撞"), }, EventName.stockAeb: { ET.PERMANENT: Alert( - "BRAKE!", - "Stock AEB: Risk of Collision", + "刹车!", + "原厂AEB:可能发生碰撞", AlertStatus.critical, AlertSize.full, Priority.HIGHEST, VisualAlert.fcw, AudibleAlert.none, 2.), - ET.NO_ENTRY: NoEntryAlert("Stock AEB: Risk of Collision"), + ET.NO_ENTRY: NoEntryAlert("原厂AEB:可能发生碰撞"), }, EventName.fcw: { ET.PERMANENT: Alert( - "BRAKE!", - "Risk of Collision", + "刹车!", + "可能发生碰撞", AlertStatus.critical, AlertSize.full, Priority.HIGHEST, VisualAlert.fcw, AudibleAlert.warningSoft, 2.), }, EventName.ldw: { ET.PERMANENT: Alert( - "Lane Departure Detected", + "监测偏离车道", "", AlertStatus.userPrompt, AlertSize.small, Priority.LOW, VisualAlert.ldw, AudibleAlert.prompt, 3.), @@ -489,7 +496,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.steerTempUnavailableSilent: { ET.WARNING: Alert( - "Steering Assist Temporarily Unavailable", + "转向暂时不可用", "", AlertStatus.userPrompt, AlertSize.small, Priority.LOW, VisualAlert.steerRequired, AudibleAlert.prompt, 1.8), @@ -497,7 +504,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.preDriverDistracted: { ET.PERMANENT: Alert( - "Pay Attention", + "请注意", "", AlertStatus.normal, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, .1), @@ -505,23 +512,23 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.promptDriverDistracted: { ET.PERMANENT: Alert( - "Pay Attention", - "Driver Distracted", + "请注意", + "驾驶员分心", AlertStatus.userPrompt, AlertSize.mid, Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1), }, EventName.driverDistracted: { ET.PERMANENT: Alert( - "DISENGAGE IMMEDIATELY", - "Driver Distracted", + "立即解除控制", + "驾驶员分心", AlertStatus.critical, AlertSize.full, Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), }, EventName.preDriverUnresponsive: { ET.PERMANENT: Alert( - "Touch Steering Wheel: No Face Detected", + "触摸方向盘:未检测到面部", "", AlertStatus.normal, AlertSize.small, Priority.LOW, VisualAlert.steerRequired, AudibleAlert.none, .1), @@ -529,31 +536,31 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.promptDriverUnresponsive: { ET.PERMANENT: Alert( - "Touch Steering Wheel", - "Driver Unresponsive", + "触摸方向盘", + "驾驶员无响应", AlertStatus.userPrompt, AlertSize.mid, Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1), }, EventName.driverUnresponsive: { ET.PERMANENT: Alert( - "DISENGAGE IMMEDIATELY", - "Driver Unresponsive", + "立即解除控制", + "驾驶员无响应", AlertStatus.critical, AlertSize.full, Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), }, EventName.manualRestart: { ET.WARNING: Alert( - "TAKE CONTROL", - "Resume Driving Manually", + "接管控制", + "请手动继续驾驶", AlertStatus.userPrompt, AlertSize.mid, Priority.LOW, VisualAlert.none, AudibleAlert.none, .2), }, EventName.resumeRequired: { ET.WARNING: Alert( - "Press Resume to Exit Standstill", + "按恢复键以解除停止状态", "", AlertStatus.userPrompt, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, .2), @@ -565,7 +572,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.preLaneChangeLeft: { ET.WARNING: Alert( - "Steer Left to Start Lane Change Once Safe", + "请确认安全后进行左转变道", "", AlertStatus.normal, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, .1), @@ -573,7 +580,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.preLaneChangeRight: { ET.WARNING: Alert( - "Steer Right to Start Lane Change Once Safe", + "请确认安全后进行右转变道", "", AlertStatus.normal, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, .1), @@ -581,7 +588,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.laneChangeBlocked: { ET.WARNING: Alert( - "Car Detected in Blindspot", + "盲点检测到车辆", "", AlertStatus.userPrompt, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.prompt, .1), @@ -589,7 +596,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.laneChange: { ET.WARNING: Alert( - "Changing Lanes", + "正在变道", "", AlertStatus.normal, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, .1), @@ -597,41 +604,41 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.steerSaturated: { ET.WARNING: Alert( - "Take Control", - "Turn Exceeds Steering Limit", + "请接管控制", + "转向超出限制", AlertStatus.userPrompt, AlertSize.mid, Priority.LOW, VisualAlert.steerRequired, AudibleAlert.promptRepeat, 2.), }, # Thrown when the fan is driven at >50% but is not rotating EventName.fanMalfunction: { - ET.PERMANENT: NormalPermanentAlert("Fan Malfunction", "Likely Hardware Issue"), + ET.PERMANENT: NormalPermanentAlert("风扇故障", "可能是硬件问题"), }, # Camera is not outputting frames EventName.cameraMalfunction: { ET.PERMANENT: camera_malfunction_alert, - ET.SOFT_DISABLE: soft_disable_alert("Camera Malfunction"), - ET.NO_ENTRY: NoEntryAlert("Camera Malfunction: Reboot Your Device"), + ET.SOFT_DISABLE: soft_disable_alert("摄像头故障"), + ET.NO_ENTRY: NoEntryAlert("摄像头故障:请重启设备"), }, # Camera framerate too low EventName.cameraFrameRate: { - ET.PERMANENT: NormalPermanentAlert("Camera Frame Rate Low", "Reboot your Device"), - ET.SOFT_DISABLE: soft_disable_alert("Camera Frame Rate Low"), - ET.NO_ENTRY: NoEntryAlert("Camera Frame Rate Low: Reboot Your Device"), + ET.PERMANENT: NormalPermanentAlert("摄像头帧率低", "请重启设备"), + ET.SOFT_DISABLE: soft_disable_alert("摄像头帧率低"), + ET.NO_ENTRY: NoEntryAlert("摄像头帧率低:请重启设备"), }, # Unused EventName.locationdTemporaryError: { - ET.NO_ENTRY: NoEntryAlert("locationd Temporary Error"), - ET.SOFT_DISABLE: soft_disable_alert("locationd Temporary Error"), + ET.NO_ENTRY: NoEntryAlert("locationd临时错误"), + ET.SOFT_DISABLE: soft_disable_alert("locationd临时错误"), }, EventName.locationdPermanentError: { - ET.NO_ENTRY: NoEntryAlert("locationd Permanent Error"), - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("locationd Permanent Error"), - ET.PERMANENT: NormalPermanentAlert("locationd Permanent Error"), + ET.NO_ENTRY: NoEntryAlert("locationd永久错误"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("locationd永久错误"), + ET.PERMANENT: NormalPermanentAlert("locationd永久错误"), }, # openpilot tries to learn certain parameters about your car by observing @@ -644,13 +651,13 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # bad alignment or bad sensor data. If this happens consistently consider creating an issue on GitHub EventName.paramsdTemporaryError: { ET.NO_ENTRY: paramsd_invalid_alert, - ET.SOFT_DISABLE: soft_disable_alert("paramsd Temporary Error"), + ET.SOFT_DISABLE: soft_disable_alert("paramsd 临时错误"), }, EventName.paramsdPermanentError: { - ET.NO_ENTRY: NoEntryAlert("paramsd Permanent Error"), - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("paramsd Permanent Error"), - ET.PERMANENT: NormalPermanentAlert("paramsd Permanent Error"), + ET.NO_ENTRY: NoEntryAlert("paramsd永久错误"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("paramsd永久错误"), + ET.PERMANENT: NormalPermanentAlert("paramsd永久错误"), }, # ********** events that affect controls state transitions ********** @@ -669,12 +676,12 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.buttonCancel: { ET.USER_DISABLE: EngagementAlert(AudibleAlert.disengage), - ET.NO_ENTRY: NoEntryAlert("Cancel Pressed"), + ET.NO_ENTRY: NoEntryAlert("取消按钮被按下"), }, EventName.brakeHold: { ET.WARNING: Alert( - "Press Resume to Exit Brake Hold", + "按恢复键以解除制动保持", "", AlertStatus.userPrompt, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, .2), @@ -682,23 +689,23 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.parkBrake: { ET.USER_DISABLE: EngagementAlert(AudibleAlert.disengage), - ET.NO_ENTRY: NoEntryAlert("Parking Brake Engaged"), + ET.NO_ENTRY: NoEntryAlert("停车制动已启用"), }, EventName.pedalPressed: { ET.USER_DISABLE: EngagementAlert(AudibleAlert.disengage), - ET.NO_ENTRY: NoEntryAlert("Pedal Pressed", + ET.NO_ENTRY: NoEntryAlert("踏板被按下", visual_alert=VisualAlert.brakePressed), }, EventName.steerDisengage: { ET.USER_DISABLE: EngagementAlert(AudibleAlert.disengage), - ET.NO_ENTRY: NoEntryAlert("Steering Pressed"), + ET.NO_ENTRY: NoEntryAlert("方向盘被转动"), }, EventName.preEnableStandstill: { ET.PRE_ENABLE: Alert( - "Release Brake to Engage", + "释放制动以启用", "", AlertStatus.normal, AlertSize.small, Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .1, creation_delay=1.), @@ -726,27 +733,27 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { }, EventName.resumeBlocked: { - ET.NO_ENTRY: NoEntryAlert("Press Set to Engage"), + ET.NO_ENTRY: NoEntryAlert("请按设定键以启用"), }, EventName.wrongCruiseMode: { ET.USER_DISABLE: EngagementAlert(AudibleAlert.disengage), - ET.NO_ENTRY: NoEntryAlert("Adaptive Cruise Disabled"), + ET.NO_ENTRY: NoEntryAlert("自适应巡航已禁用"), }, EventName.steerTempUnavailable: { - ET.SOFT_DISABLE: soft_disable_alert("Steering Assist Temporarily Unavailable"), - ET.NO_ENTRY: NoEntryAlert("Steering Temporarily Unavailable"), + ET.SOFT_DISABLE: soft_disable_alert("转向暂时不可用"), + ET.NO_ENTRY: NoEntryAlert("转向暂时不可用"), }, EventName.steerTimeLimit: { - ET.SOFT_DISABLE: soft_disable_alert("Vehicle Steering Time Limit"), - ET.NO_ENTRY: NoEntryAlert("Vehicle Steering Time Limit"), + ET.SOFT_DISABLE: soft_disable_alert("车辆转向时间限制"), + ET.NO_ENTRY: NoEntryAlert("车辆转向时间限制"), }, EventName.outOfSpace: { ET.PERMANENT: out_of_space_alert, - ET.NO_ENTRY: NoEntryAlert("Out of Storage"), + ET.NO_ENTRY: NoEntryAlert("出库"), }, EventName.belowEngageSpeed: { @@ -755,35 +762,35 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { EventName.sensorDataInvalid: { ET.PERMANENT: Alert( - "Sensor Data Invalid", - "Possible Hardware Issue", + "传感器数据无效", + "可能是硬件问题", AlertStatus.normal, AlertSize.mid, Priority.LOWER, VisualAlert.none, AudibleAlert.none, .2, creation_delay=1.), - ET.NO_ENTRY: NoEntryAlert("Sensor Data Invalid"), - ET.SOFT_DISABLE: soft_disable_alert("Sensor Data Invalid"), + ET.NO_ENTRY: NoEntryAlert("传感器数据无效"), + ET.SOFT_DISABLE: soft_disable_alert("传感器数据无效"), }, EventName.noGps: { }, EventName.tooDistracted: { - ET.NO_ENTRY: NoEntryAlert("Distraction Level Too High"), + ET.NO_ENTRY: NoEntryAlert("注意力分散程度过高"), }, EventName.excessiveActuation: { - ET.SOFT_DISABLE: soft_disable_alert("Excessive Actuation"), - ET.NO_ENTRY: NoEntryAlert("Excessive Actuation"), + ET.SOFT_DISABLE: soft_disable_alert("过度操作"), + ET.NO_ENTRY: NoEntryAlert("过度操作"), }, EventName.overheat: { ET.PERMANENT: overheat_alert, - ET.SOFT_DISABLE: soft_disable_alert("System Overheated"), - ET.NO_ENTRY: NoEntryAlert("System Overheated"), + ET.SOFT_DISABLE: soft_disable_alert("系统过热"), + ET.NO_ENTRY: NoEntryAlert("系统过热"), }, EventName.wrongGear: { - ET.SOFT_DISABLE: user_soft_disable_alert("Gear not D"), - ET.NO_ENTRY: NoEntryAlert("Gear not D"), + ET.SOFT_DISABLE: user_soft_disable_alert("挡位不在D挡"), + ET.NO_ENTRY: NoEntryAlert("挡位不在D挡"), }, # This alert is thrown when the calibration angles are outside of the acceptable range. @@ -793,40 +800,40 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # See https://comma.ai/setup for more information EventName.calibrationInvalid: { ET.PERMANENT: calibration_invalid_alert, - ET.SOFT_DISABLE: soft_disable_alert("Calibration Invalid: Remount Device & Recalibrate"), - ET.NO_ENTRY: NoEntryAlert("Calibration Invalid: Remount Device & Recalibrate"), + ET.SOFT_DISABLE: soft_disable_alert("校准无效:重新安装设备并重新校准"), + ET.NO_ENTRY: NoEntryAlert("校准无效:重新安装设备并重新校准"), }, EventName.calibrationIncomplete: { ET.PERMANENT: calibration_incomplete_alert, - ET.SOFT_DISABLE: soft_disable_alert("Calibration Incomplete"), - ET.NO_ENTRY: NoEntryAlert("Calibration in Progress"), + ET.SOFT_DISABLE: soft_disable_alert("校准未完成"), + ET.NO_ENTRY: NoEntryAlert("校准进行中"), }, EventName.calibrationRecalibrating: { ET.PERMANENT: calibration_incomplete_alert, - ET.SOFT_DISABLE: soft_disable_alert("Device Remount Detected: Recalibrating"), - ET.NO_ENTRY: NoEntryAlert("Remount Detected: Recalibrating"), + ET.SOFT_DISABLE: soft_disable_alert("设备重新安装检测到:重新校准中"), + ET.NO_ENTRY: NoEntryAlert("设备重新安装检测到:重新校准中"), }, EventName.doorOpen: { - ET.SOFT_DISABLE: user_soft_disable_alert("Door Open"), - ET.NO_ENTRY: NoEntryAlert("Door Open"), + ET.SOFT_DISABLE: user_soft_disable_alert("车门开启"), + ET.NO_ENTRY: NoEntryAlert("车门开启"), }, EventName.seatbeltNotLatched: { - ET.SOFT_DISABLE: user_soft_disable_alert("Seatbelt Unlatched"), - ET.NO_ENTRY: NoEntryAlert("Seatbelt Unlatched"), + ET.SOFT_DISABLE: user_soft_disable_alert("安全带未系"), + ET.NO_ENTRY: NoEntryAlert("安全带未系"), }, EventName.espDisabled: { - ET.SOFT_DISABLE: soft_disable_alert("Electronic Stability Control Disabled"), - ET.NO_ENTRY: NoEntryAlert("Electronic Stability Control Disabled"), + ET.SOFT_DISABLE: soft_disable_alert("电子稳定控制系统已禁用"), + ET.NO_ENTRY: NoEntryAlert("电子稳定控制系统已禁用"), }, EventName.lowBattery: { - ET.SOFT_DISABLE: soft_disable_alert("Low Battery"), - ET.NO_ENTRY: NoEntryAlert("Low Battery"), + ET.SOFT_DISABLE: soft_disable_alert("电池电量低"), + ET.NO_ENTRY: NoEntryAlert("电池电量低"), }, # Different openpilot services communicate between each other at a certain @@ -834,41 +841,41 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # is thrown. This can mean a service crashed, did not broadcast a message for # ten times the regular interval, or the average interval is more than 10% too high. EventName.commIssue: { - ET.SOFT_DISABLE: soft_disable_alert("Communication Issue Between Processes"), + ET.SOFT_DISABLE: soft_disable_alert("进程间通信问题"), ET.NO_ENTRY: comm_issue_alert, }, EventName.commIssueAvgFreq: { - ET.SOFT_DISABLE: soft_disable_alert("Low Communication Rate Between Processes"), - ET.NO_ENTRY: NoEntryAlert("Low Communication Rate Between Processes"), + ET.SOFT_DISABLE: soft_disable_alert("进程间通信速率低"), + ET.NO_ENTRY: NoEntryAlert("进程间通信速率低"), }, EventName.selfdrivedLagging: { - ET.SOFT_DISABLE: soft_disable_alert("System Lagging"), - ET.NO_ENTRY: NoEntryAlert("Selfdrive Process Lagging: Reboot Your Device"), + ET.SOFT_DISABLE: soft_disable_alert("系统滞后"), + ET.NO_ENTRY: NoEntryAlert("自驾车进程滞后:请重启设备"), }, # Thrown when manager detects a service exited unexpectedly while driving EventName.processNotRunning: { ET.NO_ENTRY: process_not_running_alert, - ET.SOFT_DISABLE: soft_disable_alert("Process Not Running"), + ET.SOFT_DISABLE: soft_disable_alert("进程未运行"), }, EventName.radarFault: { - ET.SOFT_DISABLE: soft_disable_alert("Radar Error: Restart the Car"), - ET.NO_ENTRY: NoEntryAlert("Radar Error: Restart the Car"), + ET.SOFT_DISABLE: soft_disable_alert("雷达错误:请重启车辆"), + ET.NO_ENTRY: NoEntryAlert("雷达错误:请重启车辆"), }, EventName.radarTempUnavailable: { - ET.SOFT_DISABLE: soft_disable_alert("Radar Temporarily Unavailable"), - ET.NO_ENTRY: NoEntryAlert("Radar Temporarily Unavailable"), + ET.SOFT_DISABLE: soft_disable_alert("雷达暂时不可用"), + ET.NO_ENTRY: NoEntryAlert("雷达暂时不可用"), }, # Every frame from the camera should be processed by the model. If modeld # is not processing frames fast enough they have to be dropped. This alert is # thrown when over 20% of frames are dropped. EventName.modeldLagging: { - ET.SOFT_DISABLE: soft_disable_alert("Driving Model Lagging"), - ET.NO_ENTRY: NoEntryAlert("Driving Model Lagging"), + ET.SOFT_DISABLE: soft_disable_alert("驾驶模型滞后"), + ET.NO_ENTRY: NoEntryAlert("驾驶模型滞后"), ET.PERMANENT: modeld_lagging_alert, }, @@ -878,45 +885,45 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # usually means the model has trouble understanding the scene. This is used # as a heuristic to warn the driver. EventName.posenetInvalid: { - ET.SOFT_DISABLE: soft_disable_alert("Posenet Speed Invalid"), + ET.SOFT_DISABLE: soft_disable_alert("Posenet速度无效"), ET.NO_ENTRY: posenet_invalid_alert, }, # When the localizer detects an acceleration of more than 40 m/s^2 (~4G) we # alert the driver the device might have fallen from the windshield. EventName.deviceFalling: { - ET.SOFT_DISABLE: soft_disable_alert("Device Fell Off Mount"), - ET.NO_ENTRY: NoEntryAlert("Device Fell Off Mount"), + ET.SOFT_DISABLE: soft_disable_alert("设备从支架掉落"), + ET.NO_ENTRY: NoEntryAlert("设备从支架掉落"), }, EventName.lowMemory: { - ET.SOFT_DISABLE: soft_disable_alert("Low Memory: Reboot Your Device"), + ET.SOFT_DISABLE: soft_disable_alert("内存不足:请重启设备"), ET.PERMANENT: low_memory_alert, - ET.NO_ENTRY: NoEntryAlert("Low Memory: Reboot Your Device"), + ET.NO_ENTRY: NoEntryAlert("内存不足:请重启设备"), }, EventName.accFaulted: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Cruise Fault: Restart the Car"), - ET.PERMANENT: NormalPermanentAlert("Cruise Fault: Restart the car to engage"), - ET.NO_ENTRY: NoEntryAlert("Cruise Fault: Restart the Car"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("巡航故障:请重启车辆"), + ET.PERMANENT: NormalPermanentAlert("巡航故障:重启车辆以启用"), + ET.NO_ENTRY: NoEntryAlert("巡航故障:请重启车辆"), }, EventName.espActive: { - ET.SOFT_DISABLE: soft_disable_alert("Electronic Stability Control Active"), - ET.NO_ENTRY: NoEntryAlert("Electronic Stability Control Active"), + ET.SOFT_DISABLE: soft_disable_alert("电子稳定控制系统激活中"), + ET.NO_ENTRY: NoEntryAlert("电子稳定控制系统激活中"), }, EventName.controlsMismatch: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Controls Mismatch"), - ET.NO_ENTRY: NoEntryAlert("Controls Mismatch"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("控制不匹配"), + ET.NO_ENTRY: NoEntryAlert("控制不匹配"), }, # Sometimes the USB stack on the device can get into a bad state # causing the connection to the panda to be lost EventName.usbError: { - ET.SOFT_DISABLE: soft_disable_alert("USB Error: Reboot Your Device"), - ET.PERMANENT: NormalPermanentAlert("USB Error: Reboot Your Device"), - ET.NO_ENTRY: NoEntryAlert("USB Error: Reboot Your Device"), + ET.SOFT_DISABLE: soft_disable_alert("USB错误:请重启设备"), + ET.PERMANENT: NormalPermanentAlert("USB错误:请重启设备"), + ET.NO_ENTRY: NoEntryAlert("USB错误:请重启设备"), }, # This alert can be thrown for the following reasons: @@ -924,45 +931,45 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # - CAN data is received, but some message are not received at the right frequency # If you're not writing a new car port, this is usually cause by faulty wiring EventName.canError: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("CAN Error"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("CAN总线错误"), ET.PERMANENT: Alert( - "CAN Error: Check Connections", + "CAN总线错误:请检查连接", "", AlertStatus.normal, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, 1., creation_delay=1.), - ET.NO_ENTRY: NoEntryAlert("CAN Error: Check Connections"), + ET.NO_ENTRY: NoEntryAlert("CAN总线错误:请检查连接"), }, EventName.canBusMissing: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("CAN Bus Disconnected"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("CAN总线断开连接"), ET.PERMANENT: Alert( - "CAN Bus Disconnected: Likely Faulty Cable", + "CAN总线断开连接:可能电缆故障", "", AlertStatus.normal, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.none, 1., creation_delay=1.), - ET.NO_ENTRY: NoEntryAlert("CAN Bus Disconnected: Check Connections"), + ET.NO_ENTRY: NoEntryAlert("CAN总线断开连接:请检查连接"), }, EventName.steerUnavailable: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("LKAS Fault: Restart the Car"), - ET.PERMANENT: NormalPermanentAlert("LKAS Fault: Restart the car to engage"), - ET.NO_ENTRY: NoEntryAlert("LKAS Fault: Restart the Car"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("LKAS故障:请重启车辆"), + ET.PERMANENT: NormalPermanentAlert("LKAS故障:重启车辆以启用"), + ET.NO_ENTRY: NoEntryAlert("LKAS故障:请重启车辆"), }, EventName.reverseGear: { ET.PERMANENT: Alert( - "Reverse\nGear", + "倒车中", "", AlertStatus.normal, AlertSize.full, Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .2, creation_delay=0.5), - ET.USER_DISABLE: ImmediateDisableAlert("Reverse Gear"), - ET.NO_ENTRY: NoEntryAlert("Reverse Gear"), + ET.USER_DISABLE: ImmediateDisableAlert("倒档"), + ET.NO_ENTRY: NoEntryAlert("倒档"), }, # On cars that use stock ACC the car can decide to cancel ACC for various reasons. # When this happens we can no long control the car so the user needs to be warned immediately. EventName.cruiseDisabled: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Cruise Is Off"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("巡航已关闭"), }, # When the relay in the harness box opens the CAN bus between the LKAS camera @@ -970,15 +977,15 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # are received on the car side this usually means the relay hasn't opened correctly # and this alert is thrown. EventName.relayMalfunction: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Harness Relay Malfunction"), - ET.PERMANENT: NormalPermanentAlert("Harness Relay Malfunction", "Check Hardware"), - ET.NO_ENTRY: NoEntryAlert("Harness Relay Malfunction"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("线束继电器故障"), + ET.PERMANENT: NormalPermanentAlert("线束继电器故障", "检查硬件"), + ET.NO_ENTRY: NoEntryAlert("线束继电器故障"), }, EventName.speedTooLow: { ET.IMMEDIATE_DISABLE: Alert( - "openpilot Canceled", - "Speed too low", + "openpilot已取消", + "速度过低", AlertStatus.normal, AlertSize.mid, Priority.HIGH, VisualAlert.none, AudibleAlert.disengage, 3.), }, @@ -986,17 +993,17 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # When the car is driving faster than most cars in the training data, the model outputs can be unpredictable. EventName.speedTooHigh: { ET.WARNING: Alert( - "Speed Too High", - "Model uncertain at this speed", + "速度过高", + "在此速度下模型不稳定", AlertStatus.userPrompt, AlertSize.mid, Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.promptRepeat, 4.), - ET.NO_ENTRY: NoEntryAlert("Slow down to engage"), + ET.NO_ENTRY: NoEntryAlert("减速以进行接合"), }, EventName.vehicleSensorsInvalid: { - ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Vehicle Sensors Invalid"), - ET.PERMANENT: NormalPermanentAlert("Vehicle Sensors Calibrating", "Drive to Calibrate"), - ET.NO_ENTRY: NoEntryAlert("Vehicle Sensors Calibrating"), + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("车辆传感器无效"), + ET.PERMANENT: NormalPermanentAlert("车辆传感器校准中", "行驶以校准"), + ET.NO_ENTRY: NoEntryAlert("车辆传感器校准中"), }, EventName.personalityChanged: { @@ -1004,7 +1011,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { }, EventName.userBookmark: { - ET.PERMANENT: NormalPermanentAlert("Bookmark Saved", duration=1.5), + ET.PERMANENT: NormalPermanentAlert("书签已保存", duration=1.5), }, EventName.audioFeedback: { diff --git a/selfdrive/ui/layouts/settings/developer.py b/selfdrive/ui/layouts/settings/developer.py index 0c5f019..e95bcbf 100644 --- a/selfdrive/ui/layouts/settings/developer.py +++ b/selfdrive/ui/layouts/settings/developer.py @@ -43,7 +43,7 @@ class DeveloperLayout(Widget): # Build items and keep references for callbacks/state updates self._adb_toggle = toggle_item( lambda: tr("Enable ADB"), - description=lambda: DESCRIPTIONS["enable_adb"], + description=lambda: tr(DESCRIPTIONS["enable_adb"]), initial_state=self._params.get_bool("AdbEnabled"), callback=self._on_enable_adb, enabled=ui_state.is_offroad, @@ -56,7 +56,7 @@ class DeveloperLayout(Widget): initial_state=self._params.get_bool("SshEnabled"), callback=self._on_enable_ssh, ) - self._ssh_keys = ssh_key_item(lambda: tr("SSH Keys"), description=lambda: DESCRIPTIONS["ssh_key"]) + self._ssh_keys = ssh_key_item(lambda: tr("SSH Keys"), description=lambda: tr(DESCRIPTIONS["ssh_key"])) self._joystick_toggle = toggle_item( lambda: tr("Joystick Debug Mode"), @@ -75,7 +75,7 @@ class DeveloperLayout(Widget): self._alpha_long_toggle = toggle_item( lambda: tr("openpilot Longitudinal Control (Alpha)"), - description=lambda: DESCRIPTIONS["alpha_longitudinal"], + description=lambda: tr(DESCRIPTIONS["alpha_longitudinal"]), initial_state=self._params.get_bool("AlphaLongitudinalEnabled"), callback=self._on_alpha_long_enabled, enabled=lambda: not ui_state.engaged, diff --git a/selfdrive/ui/layouts/settings/device.py b/selfdrive/ui/layouts/settings/device.py index efa92c1..b89d139 100644 --- a/selfdrive/ui/layouts/settings/device.py +++ b/selfdrive/ui/layouts/settings/device.py @@ -1,4 +1,5 @@ import os +import re import math import json @@ -19,6 +20,7 @@ from openpilot.system.ui.widgets.html_render import HtmlModal from openpilot.system.ui.widgets.list_view import text_item, button_item, dual_button_item from openpilot.system.ui.widgets.option_dialog import MultiOptionDialog from openpilot.system.ui.widgets.scroller import Scroller +from openpilot.system.ui.widgets.keyboard import Keyboard # Description constants DESCRIPTIONS = { @@ -27,6 +29,8 @@ DESCRIPTIONS = { 'reset_calibration': tr_noop("openpilot requires the device to be mounted within 4° left or right and within 5° up or 9° down."), 'review_guide': tr_noop("Review the rules, features, and limitations of openpilot"), } +DATA_PARAMS_D_SECOCKEY_PATH = "/data/params/d/SecOCKey" +CACHE_PARAMS_SECOCKEY_PATH = "/cache/params/SecOCKey" class DeviceLayout(Widget): @@ -46,6 +50,9 @@ class DeviceLayout(Widget): self._dp_vehicle_selector_make_dialog: MultiOptionDialog | None = None self._dp_vehicle_selector_model_dialog: MultiOptionDialog | None = None + self._keyboard = Keyboard(max_text_size=64, min_text_size=8, show_password_toggle=True) + self._secoc_key = self._params.get("SecOCKey") or self._read_key_from_files() + items = self._initialize_items() self._scroller = Scroller(items, line_separator=True, spacing=0) @@ -71,6 +78,8 @@ class DeviceLayout(Widget): text_item(lambda: tr("Dongle ID"), self._params.get("DongleId") or (lambda: tr("N/A"))), text_item(lambda: tr("Serial"), self._params.get("HardwareSerial") or (lambda: tr("N/A"))), self._pair_device_btn, + button_item(lambda: tr("SecOCKey Install"), lambda: tr("INSTALL"), lambda: self._secoc_key, callback=self._install_secockey, enabled=ui_state.is_offroad), + self._reset_calib_btn, button_item(lambda: tr("Driver Camera"), lambda: tr("PREVIEW"), lambda: tr(DESCRIPTIONS['driver_camera']), callback=self._show_driver_camera, enabled=ui_state.is_offroad and "LITE" not in os.environ), self._reset_calib_btn, @@ -101,7 +110,7 @@ class DeviceLayout(Widget): self._select_language_dialog = None self._select_language_dialog = MultiOptionDialog(tr("Select a language"), multilang.languages, multilang.codes[multilang.language], - option_font_weight=FontWeight.UNIFONT) + option_font_weight=FontWeight.CHINA) gui_app.set_modal_overlay(self._select_language_dialog, callback=handle_language_selection) def _show_driver_camera(self): @@ -299,3 +308,87 @@ class DeviceLayout(Widget): dialog = ConfirmDialog(tr("Are you sure you want to switch?"), tr("CONFIRM")) gui_app.set_modal_overlay(dialog, callback=on_off_road) + @staticmethod + def _is_key_valid(key: str) -> bool: + """Checks if the key is a valid 32-character lowercase hexadecimal string.""" + if not isinstance(key, str): + return False + + if len(key) != 32: + return False + + pattern = r"^[0-9a-f]{32}$" + return bool(re.match(pattern, key)) + + @staticmethod + def _write_key_to_file(file_path: str, key: str) -> None: + """Writes the key to the specified file path.""" + try: + with open(file_path, "w") as f: + f.write(key) + except Exception as e: + print(f"Error writing key to file {file_path}: {e}") + + def _read_key_from_file(self, file_path: str) -> str | None: + if not os.path.exists(file_path): + return None + + try: + with open(file_path, "r") as f: + key = f.read().strip() + if self._is_key_valid(key): + return key + else: + # Key is invalid, delete the file + try: + os.remove(file_path) + print(f"Deleted invalid key file: {file_path} which contained {key}") + except Exception as e: + print(f"Error deleting invalid key file {file_path}: {e}") + return None + except Exception as e: + print(f"Error reading key file {file_path}: {e}") + return None # Return None on any error + + def _read_key_from_files(self) -> str | None: + """Reads the key from the appropriate file(s) based on the AGNOS environment.""" + data_params_d_secockey = self._read_key_from_file(DATA_PARAMS_D_SECOCKEY_PATH) + cache_params_secockey = self._read_key_from_file(CACHE_PARAMS_SECOCKEY_PATH) + existing_key = cache_params_secockey or data_params_d_secockey + + if not existing_key: + return None + + # Write the existing key to missing files + if data_params_d_secockey != existing_key: + self._write_key_to_file(DATA_PARAMS_D_SECOCKEY_PATH, existing_key) + if cache_params_secockey != existing_key: + self._write_key_to_file(CACHE_PARAMS_SECOCKEY_PATH, existing_key) + + return existing_key + + def _install_secockey(self): + def enter_secoc_key(result): + key = self._keyboard.text + + if key == "": + gui_app.set_modal_overlay(alert_dialog(tr("Key cannot be empty."))) + return False + if len(key) != 32: + gui_app.set_modal_overlay(alert_dialog(tr("Key must be exactly 32 characters long. Current length: {} characters.").format(len(key)))) + return False + if not self._is_key_valid(key): + gui_app.set_modal_overlay(alert_dialog(tr("Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)."))) + return False + + self._secoc_key = key + self._params.put("SecOCKey", key) + self._write_key_to_file(DATA_PARAMS_D_SECOCKEY_PATH, key) + self._write_key_to_file(CACHE_PARAMS_SECOCKEY_PATH, key) + gui_app.set_modal_overlay(alert_dialog(tr("Success!\nRestart comma to have openpilot use the key"))) + + self._keyboard.reset(min_text_size=0) + self._keyboard.set_text(self._secoc_key or "") + self._keyboard.set_title(tr("Enter your Car Security Key"), tr("Archived key: \"{}\"").format(self._secoc_key)) + gui_app.set_modal_overlay(self._keyboard, enter_secoc_key) + diff --git a/selfdrive/ui/layouts/settings/settings.py b/selfdrive/ui/layouts/settings/settings.py index 655f3eb..559c2b2 100644 --- a/selfdrive/ui/layouts/settings/settings.py +++ b/selfdrive/ui/layouts/settings/settings.py @@ -4,7 +4,6 @@ from enum import IntEnum from collections.abc import Callable from openpilot.selfdrive.ui.layouts.settings.developer import DeveloperLayout from openpilot.selfdrive.ui.layouts.settings.device import DeviceLayout -from openpilot.selfdrive.ui.layouts.settings.firehose import FirehoseLayout from openpilot.selfdrive.ui.layouts.settings.software import SoftwareLayout from openpilot.selfdrive.ui.layouts.settings.toggles import TogglesLayout from openpilot.system.ui.lib.application import gui_app, FontWeight, MousePos @@ -65,9 +64,8 @@ class SettingsLayout(Widget): PanelType.NETWORK: PanelInfo(tr_noop("Network"), NetworkUI(wifi_manager)), PanelType.TOGGLES: PanelInfo(tr_noop("Toggles"), TogglesLayout()), PanelType.SOFTWARE: PanelInfo(tr_noop("Software"), SoftwareLayout()), - PanelType.FIREHOSE: PanelInfo(tr_noop("Firehose"), FirehoseLayout()), PanelType.DEVELOPER: PanelInfo(tr_noop("Developer"), DeveloperLayout()), - PanelType.DRAGONPILOT: PanelInfo("dp", DragonpilotLayout()), + PanelType.DRAGONPILOT: PanelInfo(tr_noop("Dp"), DragonpilotLayout()), } self._font_medium = gui_app.font(FontWeight.MEDIUM) diff --git a/selfdrive/ui/layouts/settings/software.py b/selfdrive/ui/layouts/settings/software.py index cd207f3..8166a8a 100644 --- a/selfdrive/ui/layouts/settings/software.py +++ b/selfdrive/ui/layouts/settings/software.py @@ -68,7 +68,7 @@ class SoftwareLayout(Widget): self._version_item, self._download_btn, self._install_btn, - # self._branch_btn, # rick - disable this for now + self._branch_btn, button_item(lambda: tr("Uninstall"), lambda: tr("UNINSTALL"), callback=self._on_uninstall), ], line_separator=True, spacing=0) diff --git a/selfdrive/ui/layouts/settings/toggles.py b/selfdrive/ui/layouts/settings/toggles.py index 448b323..ebd144c 100644 --- a/selfdrive/ui/layouts/settings/toggles.py +++ b/selfdrive/ui/layouts/settings/toggles.py @@ -28,7 +28,14 @@ DESCRIPTIONS = { "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)." ), - "AlwaysOnDM": tr_noop("Enable driver monitoring even when openpilot is not engaged."), + "AlwaysOnDM": tr_noop("The driver monitoring system can be toggled on/off, but long-term activation is recommended"), + "DistractionDetectionLevel": tr_noop( + "Set how sensitive the driver distraction detection should be. " + + "Strict: Very sensitive, warns on minor distractions. " + + "Moderate: Balanced between sensitivity and false positives. " + + "Lenient: Only alerts on clear distractions. " + + "Off: Disable Driver Distraction Detection and Control." + ), 'RecordFront': tr_noop("Upload data from the driver facing camera and help improve the driver monitoring algorithm."), "IsMetric": tr_noop("Display speed in km/h instead of mph."), "RecordAudio": tr_noop("Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect."), @@ -109,7 +116,7 @@ class TogglesLayout(Widget): self._long_personality_setting = multiple_button_item( lambda: tr("Driving Personality"), - DESCRIPTIONS["LongitudinalPersonality"], + tr(DESCRIPTIONS["LongitudinalPersonality"]), buttons=[lambda: tr("Aggressive"), lambda: tr("Standard"), lambda: tr("Relaxed")], button_width=255, callback=self._set_longitudinal_personality, @@ -117,6 +124,16 @@ class TogglesLayout(Widget): icon="speed_limit.png" ) + self._distraction_detection_level = multiple_button_item( + lambda: tr("Distraction Detection Level"), + tr(DESCRIPTIONS["DistractionDetectionLevel"]), + buttons=[lambda: tr("Strict"), lambda: tr("Moderate"), lambda: tr("Lenient")], + button_width=255, + callback=self._set_distraction_detection_level, + selected_index=self._params.get("DistractionDetectionLevel", return_default=True), + icon="monitoring.png" + ) + self._toggles = {} self._locked_toggles = set() @@ -156,6 +173,12 @@ class TogglesLayout(Widget): if param == "DisengageOnAccelerator": self._toggles["LongitudinalPersonality"] = self._long_personality_setting + if param == "AlwaysOnDM": + # 根据AlwaysOnDM状态动态显示/隐藏分心检测级别 + self._toggles["DistractionDetectionLevel"] = self._distraction_detection_level + # 初始设置可见性 + self._update_distraction_detection_visibility() + self._update_experimental_mode_icon() self._scroller = Scroller(list(self._toggles.values()), line_separator=True, spacing=0) @@ -228,6 +251,13 @@ class TogglesLayout(Widget): def _render(self, rect): self._scroller.render(rect) + def _update_distraction_detection_visibility(self): + """根据AlwaysOnDM状态更新分心检测级别的可见性""" + always_on_dm_enabled = self._params.get_bool("AlwaysOnDM") + if "DistractionDetectionLevel" in self._toggles: + # 设置分心检测级别的可见性 + self._toggles["DistractionDetectionLevel"].set_visible(always_on_dm_enabled) + def _update_experimental_mode_icon(self): icon = "experimental.png" if self._toggles["ExperimentalMode"].action_item.get_state() else "experimental_white.png" self._toggles["ExperimentalMode"].set_icon(icon) @@ -261,5 +291,12 @@ class TogglesLayout(Widget): if self._toggle_defs[param][3]: self._params.put_bool("OnroadCycleRequested", True) + # 如果切换的是AlwaysOnDM,更新分心检测级别的可见性 + if param == "AlwaysOnDM": + self._update_distraction_detection_visibility() + def _set_longitudinal_personality(self, button_index: int): self._params.put("LongitudinalPersonality", button_index) + + def _set_distraction_detection_level(self, button_index: int): + self._params.put("DistractionDetectionLevel", button_index) diff --git a/selfdrive/ui/layouts/sidebar.py b/selfdrive/ui/layouts/sidebar.py index 9a9e44b..f42cbf6 100644 --- a/selfdrive/ui/layouts/sidebar.py +++ b/selfdrive/ui/layouts/sidebar.py @@ -68,9 +68,9 @@ class Sidebar(Widget): self._net_type = NETWORK_TYPES.get(NetworkType.none) self._net_strength = 0 - self._temp_status = MetricData(tr_noop("TEMP"), tr_noop("GOOD"), Colors.GOOD) + self._temp_status = MetricData(tr_noop("TEMP"), "38°C", Colors.GOOD) + self._cpu_status = MetricData(tr_noop("CPU"), "10%", Colors.GOOD) self._panda_status = MetricData(tr_noop("VEHICLE"), tr_noop("ONLINE"), Colors.GOOD) - self._connect_status = MetricData(tr_noop("CONNECT"), tr_noop("OFFLINE"), Colors.WARNING) self._recording_audio = False self._home_img = gui_app.texture("images/button_home.png", HOME_BTN.width, HOME_BTN.height) @@ -110,8 +110,7 @@ class Sidebar(Widget): self._recording_audio = ui_state.recording_audio self._update_network_status(device_state) self._update_temperature_status(device_state) - if not ui_state.dp_dev_disable_connect: - self._update_connection_status(device_state) + self._update_cpu_status(device_state) self._update_panda_status() def _update_network_status(self, device_state): @@ -121,26 +120,28 @@ class Sidebar(Widget): def _update_temperature_status(self, device_state): thermal_status = device_state.thermalStatus + max_temp = device_state.maxTempC if thermal_status == ThermalStatus.green: - self._temp_status.update(tr_noop("TEMP"), tr_noop("GOOD"), Colors.GOOD) + self._temp_status.update(tr_noop("TEMP"), f"{max_temp:.1f}°C", Colors.GOOD) elif thermal_status == ThermalStatus.yellow: - self._temp_status.update(tr_noop("TEMP"), tr_noop("OK"), Colors.WARNING) + self._temp_status.update(tr_noop("TEMP"), f"{max_temp:.1f}°C", Colors.WARNING) else: - self._temp_status.update(tr_noop("TEMP"), tr_noop("HIGH"), Colors.DANGER) + self._temp_status.update(tr_noop("TEMP"), f"{max_temp:.1f}°C", Colors.DANGER) - def _update_connection_status(self, device_state): - last_ping = device_state.lastAthenaPingTime - if last_ping == 0: - self._connect_status.update(tr_noop("CONNECT"), tr_noop("OFFLINE"), Colors.WARNING) - elif time.monotonic_ns() - last_ping < 80_000_000_000: # 80 seconds in nanoseconds - self._connect_status.update(tr_noop("CONNECT"), tr_noop("ONLINE"), Colors.GOOD) + def _update_cpu_status(self, device_state): + cpu_temp = max(device_state.cpuTempC, default=0.) + + if cpu_temp >= 85: + self._cpu_status.update(tr_noop("CPU"), f"{cpu_temp:.1f}%", Colors.DANGER) + elif cpu_temp >= 65: + self._cpu_status.update(tr_noop("CPU"), f"{cpu_temp:.1f}%", Colors.WARNING) else: - self._connect_status.update(tr_noop("CONNECT"), tr_noop("ERROR"), Colors.DANGER) + self._cpu_status.update(tr_noop("CPU"), f"{cpu_temp:.1f}%", Colors.GOOD) def _update_panda_status(self): if ui_state.panda_type == log.PandaState.PandaType.unknown: - self._panda_status.update(tr_noop("NO"), tr_noop("PANDA"), Colors.DANGER) + self._panda_status.update(tr_noop("PANDA"), tr_noop("NO"), Colors.DANGER) else: self._panda_status.update(tr_noop("VEHICLE"), tr_noop("ONLINE"), Colors.GOOD) @@ -201,9 +202,7 @@ class Sidebar(Widget): rl.draw_text_ex(self._font_regular, tr(self._net_type), text_pos, FONT_SIZE, 0, Colors.WHITE) def _draw_metrics(self, rect: rl.Rectangle): - metrics = [(self._temp_status, 338), (self._panda_status, 496)] - if not ui_state.dp_dev_disable_connect: - metrics.append((self._connect_status, 654)) + metrics = [(self._temp_status, 338), (self._cpu_status, 496), (self._panda_status, 654)] for metric, y_offset in metrics: self._draw_metric(rect, metric, rect.y + y_offset) diff --git a/selfdrive/ui/onroad/augmented_road_view.py b/selfdrive/ui/onroad/augmented_road_view.py index 0aa2320..b7d0215 100644 --- a/selfdrive/ui/onroad/augmented_road_view.py +++ b/selfdrive/ui/onroad/augmented_road_view.py @@ -136,7 +136,7 @@ class AugmentedRoadView(CameraView): pass def _draw_border(self, rect: rl.Rectangle): - rl.begin_scissor_mode(int(rect.x), int(rect.y), int(rect.width), int(rect.height)) + rl.draw_rectangle_lines_ex(rect, UI_BORDER_SIZE, rl.BLACK) border_roundness = 0.12 border_color = BORDER_COLORS.get(ui_state.status, BORDER_COLORS[UIStatus.DISENGAGED]) if ui_state.dp_alka_active and ui_state.status == UIStatus.DISENGAGED: @@ -153,19 +153,6 @@ class AugmentedRoadView(CameraView): if self._dp_indicator_show_right: rl.draw_rectangle(int(rect.x + rect.width-UI_BORDER_SIZE), indicator_y, UI_BORDER_SIZE, indicator_height, self._dp_indicator_color_right) - # black bg around colored border - black_bg_thickness = UI_BORDER_SIZE - black_bg_rect = rl.Rectangle( - border_rect.x - UI_BORDER_SIZE, - border_rect.y - UI_BORDER_SIZE, - border_rect.width + 2 * UI_BORDER_SIZE, - border_rect.height + 2 * UI_BORDER_SIZE, - ) - edge_offset = (black_bg_rect.height - border_rect.height) / 2 # distance between rect edges - roundness_out = (border_roundness * border_rect.height + 2 * edge_offset) / max(1.0, black_bg_rect.height) - rl.draw_rectangle_rounded_lines_ex(black_bg_rect, roundness_out, 10, black_bg_thickness, rl.BLACK) - rl.end_scissor_mode() - def _switch_stream_if_needed(self, sm): if sm['selfdriveState'].experimentalMode and WIDE_CAM in self.available_streams: v_ego = sm['carState'].vEgo diff --git a/selfdrive/ui/onroad/cameraview.py b/selfdrive/ui/onroad/cameraview.py index 5098b6a..98dd00e 100644 --- a/selfdrive/ui/onroad/cameraview.py +++ b/selfdrive/ui/onroad/cameraview.py @@ -114,6 +114,7 @@ class CameraView(Widget): # which drains the VisionIpcClient SubSocket for us. Re-connecting is not enough # and only clears internal buffers, not the message queue. self.frame = None + self.available_streams.clear() if self.client: del self.client self.client = VisionIpcClient(self._name, self._stream_type, conflate=True) diff --git a/selfdrive/ui/translations/app.pot b/selfdrive/ui/translations/app.pot index abb6940..326d1a0 100644 --- a/selfdrive/ui/translations/app.pot +++ b/selfdrive/ui/translations/app.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:51-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,23 +18,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 -#, python-format -msgid "OK" -msgstr "" - -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 -#, python-format -msgid "Cancel" -msgstr "" - -#: system/ui/widgets/option_dialog.py:36 -#, python-format -msgid "Select" -msgstr "" - #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" @@ -115,78 +98,509 @@ msgstr "" msgid "Hidden Network" msgstr "" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "" -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 +#, python-format +msgid "Cancel" +msgstr "" + +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "" -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "" +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 +#, python-format +msgid "OK" +msgstr "" + +#: system/ui/widgets/option_dialog.py:36 +#, python-format +msgid "Select" +msgstr "" + #: system/ui/widgets/list_view.py:123 system/ui/widgets/list_view.py:160 #, python-format msgid "Error" msgstr "" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 +#, python-format +msgid "RESET" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 +#, python-format +msgid "Reset" +msgstr "" + #: selfdrive/ui/widgets/pairing_dialog.py:103 #, python-format msgid "Pair your device to your comma account" @@ -212,36 +626,29 @@ msgstr "" msgid "QR Code Error" msgstr "" -#: selfdrive/ui/widgets/ssh_key.py:29 -msgid "LOADING" -msgstr "" - -#: selfdrive/ui/widgets/ssh_key.py:30 -msgid "ADD" -msgstr "" - -#: selfdrive/ui/widgets/ssh_key.py:31 -msgid "REMOVE" -msgstr "" - -#: selfdrive/ui/widgets/ssh_key.py:89 +#: selfdrive/ui/widgets/offroad_alerts.py:104 #, python-format -msgid "Enter your GitHub username" +msgid "Close" msgstr "" -#: selfdrive/ui/widgets/ssh_key.py:114 +#: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format -msgid "No SSH keys found" +msgid "Snooze Update" msgstr "" -#: selfdrive/ui/widgets/ssh_key.py:123 +#: selfdrive/ui/widgets/offroad_alerts.py:109 #, python-format -msgid "Request timed out" +msgid "Acknowledge Excessive Actuation" msgstr "" -#: selfdrive/ui/widgets/ssh_key.py:126 +#: selfdrive/ui/widgets/offroad_alerts.py:112 #, python-format -msgid "No SSH keys found for user '{}'" +msgid "Reboot and Update" +msgstr "" + +#: selfdrive/ui/widgets/offroad_alerts.py:320 +#, python-format +msgid "No release notes available." msgstr "" #: selfdrive/ui/widgets/prime.py:33 @@ -299,29 +706,36 @@ msgstr "" msgid "CHILL MODE ON" msgstr "" -#: selfdrive/ui/widgets/offroad_alerts.py:104 -#, python-format -msgid "Close" +#: selfdrive/ui/widgets/ssh_key.py:29 +msgid "LOADING" msgstr "" -#: selfdrive/ui/widgets/offroad_alerts.py:106 -#, python-format -msgid "Snooze Update" +#: selfdrive/ui/widgets/ssh_key.py:30 +msgid "ADD" msgstr "" -#: selfdrive/ui/widgets/offroad_alerts.py:109 -#, python-format -msgid "Acknowledge Excessive Actuation" +#: selfdrive/ui/widgets/ssh_key.py:31 +msgid "REMOVE" msgstr "" -#: selfdrive/ui/widgets/offroad_alerts.py:112 +#: selfdrive/ui/widgets/ssh_key.py:89 #, python-format -msgid "Reboot and Update" +msgid "Enter your GitHub username" msgstr "" -#: selfdrive/ui/widgets/offroad_alerts.py:320 +#: selfdrive/ui/widgets/ssh_key.py:114 #, python-format -msgid "No release notes available." +msgid "No SSH keys found" +msgstr "" + +#: selfdrive/ui/widgets/ssh_key.py:123 +#, python-format +msgid "Request timed out" +msgstr "" + +#: selfdrive/ui/widgets/ssh_key.py:126 +#, python-format +msgid "No SSH keys found for user '{}'" msgstr "" #: selfdrive/ui/widgets/setup.py:19 @@ -344,7 +758,7 @@ msgstr "" msgid "Finish Setup" msgstr "" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -362,88 +776,18 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" msgstr[0] "" msgstr[1] "" -#: selfdrive/ui/layouts/sidebar.py:43 -msgid "--" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:44 -msgid "Wi-Fi" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:45 -msgid "ETH" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:46 -msgid "2G" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:47 -msgid "3G" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:48 -msgid "LTE" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:49 -msgid "5G" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 -msgid "TEMP" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 -msgid "VEHICLE" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 -msgid "ONLINE" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:117 -msgid "Unknown" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:142 -msgid "NO" -msgstr "" - -#: selfdrive/ui/layouts/sidebar.py:142 -msgid "PANDA" -msgstr "" - #: selfdrive/ui/layouts/onboarding.py:111 #, python-format msgid "Welcome to openpilot" @@ -476,6 +820,64 @@ msgstr "" msgid "Decline, uninstall openpilot" msgstr "" +#: selfdrive/ui/layouts/sidebar.py:43 +msgid "--" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:44 +msgid "Wi-Fi" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:45 +msgid "ETH" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:46 +msgid "2G" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:47 +msgid "3G" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:48 +msgid "LTE" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:49 +msgid "5G" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 +msgid "TEMP" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 +msgid "VEHICLE" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 +msgid "ONLINE" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:117 +msgid "Unknown" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:144 +msgid "PANDA" +msgstr "" + +#: selfdrive/ui/layouts/sidebar.py:144 +msgid "NO" +msgstr "" + #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "" @@ -530,64 +932,308 @@ msgstr "" msgid "INACTIVE: connect to an unmetered network" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" -"ADB (Android Debug Bridge) allows connecting to your device over USB or over " -"the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." +"Preview the driver facing camera to ensure that driver monitoring has good " +"visibility. (vehicle must be off)" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" -"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." +"openpilot requires the device to be mounted within 4° left or right and " +"within 5° up or 9° down." msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/device.py:30 +msgid "Review the rules, features, and limitations of openpilot" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/software.py:61 +#, python-format +msgid "SELECT" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:62 +#, python-format +msgid "Pair Device" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:62 +#, python-format +msgid "PAIR" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:65 +#, python-format +msgid "Reset Calibration" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 +#, python-format +msgid "Reboot" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 +#, python-format +msgid "Power Off" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format msgid "" -"WARNING: openpilot longitudinal control is in alpha for this car and will " -"disable Automatic Emergency Braking (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. Changing this setting will restart openpilot if the car is " -"powered on." +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format -msgid "Enable ADB" +msgid "Dongle ID" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format -msgid "Enable SSH" +msgid "N/A" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format -msgid "SSH Keys" +msgid "Serial" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:81 #, python-format -msgid "Joystick Debug Mode" +msgid "SecOCKey Install" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: selfdrive/ui/layouts/settings/device.py:81 +#: selfdrive/ui/layouts/settings/software.py:53 +#: selfdrive/ui/layouts/settings/software.py:136 #, python-format -msgid "Longitudinal Maneuver Mode" +msgid "INSTALL" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format -msgid "openpilot Longitudinal Control (Alpha)" +msgid "Driver Camera" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format -msgid "Enable" +msgid "PREVIEW" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 +#, python-format +msgid "Review Training Guide" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 +#, python-format +msgid "REVIEW" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:88 +#, python-format +msgid "Regulatory" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:88 +#, python-format +msgid "VIEW" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:89 +#, python-format +msgid "Change Language" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:89 +#, python-format +msgid "CHANGE" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:112 +#, python-format +msgid "Select a language" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:124 +#, python-format +msgid "Disengage to Reset Calibration" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:140 +#, python-format +msgid "Are you sure you want to reset calibration?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:154 +#, python-format +msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:154 +#, python-format +msgid "down" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:154 +#, python-format +msgid "up" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:155 +#, python-format +msgid "left" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:155 +#, python-format +msgid "right" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:167 +#, python-format +msgid "

Steering lag calibration is {}% complete." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:169 +#, python-format +msgid "

Steering lag calibration is complete." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:179 +#, python-format +msgid " Steering torque response calibration is {}% complete." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:181 +#, python-format +msgid " Steering torque response calibration is complete." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:186 +#, python-format +msgid "" +"openpilot is continuously calibrating, resetting is rarely required. " +"Resetting calibration will restart openpilot if the car is powered on." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:193 +#, python-format +msgid "Disengage to Reboot" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:196 +#, python-format +msgid "Are you sure you want to reboot?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:205 +#, python-format +msgid "Disengage to Power Off" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 +#, python-format +msgid "Are you sure you want to power off?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" msgstr "" #: selfdrive/ui/layouts/settings/software.py:20 @@ -649,22 +1295,11 @@ msgstr "" msgid "Install Update" msgstr "" -#: selfdrive/ui/layouts/settings/software.py:53 -#: selfdrive/ui/layouts/settings/software.py:136 -#, python-format -msgid "INSTALL" -msgstr "" - #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "Target Branch" msgstr "" -#: selfdrive/ui/layouts/settings/software.py:61 -#, python-format -msgid "SELECT" -msgstr "" - #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -711,237 +1346,41 @@ msgstr "" msgid "Select a branch" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:25 -msgid "" -"Preview the driver facing camera to ensure that driver monitoring has good " -"visibility. (vehicle must be off)" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:26 -msgid "" -"openpilot requires the device to be mounted within 4° left or right and " -"within 5° up or 9° down." -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:27 -msgid "Review the rules, features, and limitations of openpilot" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:48 -#, python-format -msgid "Pair Device" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:48 -#, python-format -msgid "PAIR" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:51 -#, python-format -msgid "Reset Calibration" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:51 -#, python-format -msgid "RESET" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 -#, python-format -msgid "Reboot" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 -#, python-format -msgid "Power Off" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:59 -#, python-format -msgid "Dongle ID" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 -#, python-format -msgid "N/A" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:60 -#, python-format -msgid "Serial" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:62 -#, python-format -msgid "Driver Camera" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:62 -#, python-format -msgid "PREVIEW" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:65 -#, python-format -msgid "Review Training Guide" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:65 -#, python-format -msgid "REVIEW" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:67 -#, python-format -msgid "Regulatory" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:67 -#, python-format -msgid "VIEW" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:68 -#, python-format -msgid "Change Language" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:68 -#, python-format -msgid "CHANGE" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:91 -#, python-format -msgid "Select a language" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:103 -#, python-format -msgid "Disengage to Reset Calibration" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:119 -#, python-format -msgid "Are you sure you want to reset calibration?" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:119 -#, python-format -msgid "Reset" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:133 -#, python-format -msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:133 -#, python-format -msgid "down" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:133 -#, python-format -msgid "up" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:134 -#, python-format -msgid "left" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:134 -#, python-format -msgid "right" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:146 -#, python-format -msgid "

Steering lag calibration is {}% complete." -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:148 -#, python-format -msgid "

Steering lag calibration is complete." -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:158 -#, python-format -msgid " Steering torque response calibration is {}% complete." -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:160 -#, python-format -msgid " Steering torque response calibration is complete." -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:165 -#, python-format -msgid "" -"openpilot is continuously calibrating, resetting is rarely required. " -"Resetting calibration will restart openpilot if the car is powered on." -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:172 -#, python-format -msgid "Disengage to Reboot" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:175 -#, python-format -msgid "Are you sure you want to reboot?" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:184 -#, python-format -msgid "Disengage to Power Off" -msgstr "" - -#: selfdrive/ui/layouts/settings/device.py:187 -#, python-format -msgid "Are you sure you want to power off?" -msgstr "" - -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "" -#: selfdrive/ui/layouts/settings/settings.py:65 -msgid "Software" -msgstr "" - #: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" +msgid "Software" msgstr "" #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -949,99 +1388,147 @@ msgid "" "cycle through these personalities with your steering wheel distance button." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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)." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1057,32 +1544,102 @@ msgid "" "corner." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " "ACC is used for longitudinal control." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " "Experimental mode, on non-release branches." msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " "Experimental mode." msgstr "" +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 +#, python-format +msgid "Enable" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:20 +msgid "" +"ADB (Android Debug Bridge) allows connecting to your device over USB or over " +"the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 +msgid "" +"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." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:28 +msgid "" +"WARNING: openpilot longitudinal control is in alpha for this car and will " +"disable Automatic Emergency Braking (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. Changing this setting will restart openpilot if the car is " +"powered on." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:45 +#, python-format +msgid "Enable ADB" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:54 +#, python-format +msgid "Enable SSH" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:59 +#, python-format +msgid "SSH Keys" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 +#, python-format +msgid "Joystick Debug Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:70 +#, python-format +msgid "Longitudinal Maneuver Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:77 +#, python-format +msgid "openpilot Longitudinal Control (Alpha)" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" diff --git a/selfdrive/ui/translations/app_ar.po b/selfdrive/ui/translations/app_ar.po index 608389f..a4e98b3 100644 --- a/selfdrive/ui/translations/app_ar.po +++ b/selfdrive/ui/translations/app_ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:50-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-22 16:32-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -18,25 +18,90 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0?0:n==1?1:n==2?2:(n%100>=3 && " "n%100<=10)?3:(n%100>=11 && n%100<=99)?4:5;\n" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " اكتملت معايرة استجابة عزم التوجيه." -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " اكتملت معايرة استجابة عزم التوجيه بنسبة {}٪." -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " جهازك موجه بمقدار {:.1f}° {} و {:.1f}° {}." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "كم/س" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "دقائق" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "كم/س" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "ثانية" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "ثوانٍ" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "### الجهاز ###" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "### جانبي ###" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "### الطولية ###" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "### مازدا ###" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "### تويوتا / ليكسوس ###" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "### واجهة المستخدم ###" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "### فولكس فاجن ###" + #: selfdrive/ui/layouts/sidebar.py:43 msgid "--" msgstr "--" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "0 دقيقة = فوراً" + #: selfdrive/ui/widgets/prime.py:47 #, python-format msgid "1 year of drive storage" @@ -59,7 +124,7 @@ msgstr "3G" msgid "5G" msgstr "5G" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/developer.py:28 msgid "" "WARNING: openpilot longitudinal control is in alpha for this car and will " "disable Automatic Emergency Braking (AEB).

On this car, openpilot " @@ -76,12 +141,12 @@ msgstr "" "التجربة عند تفعيل نسخة ألفا من التحكم الطولي. تغيير هذا الإعداد سيعيد تشغيل " "openpilot إذا كانت السيارة قيد التشغيل." -#: selfdrive/ui/layouts/settings/device.py:148 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

اكتملت معايرة تأخر التوجيه." -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

اكتملت معايرة تأخر التوجيه بنسبة {}٪." @@ -91,7 +156,7 @@ msgstr "

اكتملت معايرة تأخر التوجيه بنسبة {} msgid "ACTIVE" msgstr "نشط" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/developer.py:20 msgid "" "ADB (Android Debug Bridge) allows connecting to your device over USB or over " "the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." @@ -113,12 +178,34 @@ msgstr "إعداد APN" msgid "Acknowledge Excessive Actuation" msgstr "تأكيد التشغيل المفرط" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" +"وضع التباطؤ التكيفي (ACM) يقلل من استخدام الفرامل للسماحبالانزلاق بسلاسة عند " +"الاقتضاء." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "وضع التكيف التجريبي (AEM)" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" +"مُحوِّل الوضع التكيفي بين التحكم التكيفي في السرعة والوضعالمدمج بناءً على سياق " +"القيادة." + #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" msgstr "متقدم" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "عدواني" @@ -128,12 +215,35 @@ msgstr "عدواني" msgid "Agree" msgstr "موافقة" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "الكل" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" +"اسمح لـ openpilot باتباع قواعد حركة المرور لليمين في مقعدالسائق الأيمن." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "يسمح لـ openpilot بتوجيه السيارة دائمًا للحفاظ على وجودها فيمسارها." + +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "مراقبة السائق دائماً" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "مساعد الحفاظ على المسار دائم التشغيل (ALKA)" + +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -142,26 +252,62 @@ msgstr "" "يمكن اختبار نسخة ألفا من التحكم الطولي لـ openpilot، مع وضع التجربة، على " "الفروع غير الإصدارية." -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "هل أنت متأكد أنك تريد إيقاف التشغيل؟" -#: selfdrive/ui/layouts/settings/device.py:175 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "هل أنت متأكد أنك تريد إعادة التشغيل؟" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" +"هل أنت متأكد أنك تريد إعادة ضبط جميع إعدادات DP إلى الإعداداتالافتراضية؟" + +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "هل أنت متأكد أنك تريد إعادة ضبط المعايرة؟" +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "هل أنت متأكد أنك تريد التبديل؟" + #: selfdrive/ui/layouts/settings/software.py:163 #, python-format msgid "Are you sure you want to uninstall?" msgstr "هل أنت متأكد أنك تريد إلغاء التثبيت؟" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "تنبيه مسموع" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "تغيير المسار تلقائياً بعد:" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "إيقاف التشغيل التلقائي بعد" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "تجنب قفل نظام التحكم الكهربائي في التوجيه" + #: system/ui/widgets/network.py:99 selfdrive/ui/layouts/onboarding.py:147 #, python-format msgid "Back" @@ -172,12 +318,21 @@ msgstr "رجوع" msgid "Become a comma prime member at connect.comma.ai" msgstr "انضم إلى comma prime عبر connect.comma.ai" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" +"قم بمنع مساعد تغيير المسار عندما يكتشف النظام حافةالطريق.
ملاحظة: سيظهر " +"هذا تحذير 'تم اكتشاف سيارة في النقطةالعمياء'." + #: selfdrive/ui/widgets/pairing_dialog.py:130 #, python-format msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "ثبّت connect.comma.ai على شاشتك الرئيسية لاستخدامه كتطبيق" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "تغيير" @@ -195,20 +350,28 @@ msgstr "تحقق" msgid "CHILL MODE ON" msgstr "وضع الهدوء مُفعل" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "تأكيد" + +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "CONNECT" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "CONNECTING..." -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "المعالج المركزي" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "إلغاء" @@ -218,12 +381,12 @@ msgstr "إلغاء" msgid "Cellular Metered" msgstr "خلوي بتعرفة محدودة" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "تغيير اللغة" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "" @@ -250,6 +413,16 @@ msgstr "الإصدار الحالي" msgid "DOWNLOAD" msgstr "تنزيل" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" +"يقوم DTSC بضبط السرعة المتوقعة للمركبة تلقائياً بناءً علىانحناء الطريق القادم " +"وظروف الجر.
مأخوذ أصلاً من فرع TACOفي openpilot." + #: selfdrive/ui/layouts/onboarding.py:115 #, python-format msgid "Decline" @@ -260,67 +433,157 @@ msgstr "رفض" msgid "Decline, uninstall openpilot" msgstr "رفض، وإلغاء تثبيت openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "بدء تأخير Loggerd لـ:" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" +"يؤخر بدء تشغيل مسجل البيانات وعملياته المرتبطة عند استخدامالجهاز على الطريق." +"
يمنع هذا تسجيل اللحظات الأولى منالقيادة، مما يحمي خصوصية الموقع في بداية " +"الرحلة." + #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "المطور" -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "الجهاز" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "تعطيل Comma Connect" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" +"قم بتعطيل خدمة Comma connect إذا كنت لا ترغب في رفع البيانات/ التعقب من قبل " +"الخدمة." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "تعطيل مراقبة السائق" + +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "تعطيل التسجيل" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "تعطيل التحديثات" + +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "تعطيل خدمة التسجيل" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "تعطيل خدمة التحديث" + +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "فصل عند الضغط على دواسة الوقود" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "افصل لإيقاف التشغيل" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "افصل لإعادة التشغيل" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "افصل لإعادة ضبط المعايرة" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "عرض إحصائيات الرصاص" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "وضع العرض" + +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "عرض السرعة بالكيلومتر/ساعة بدلاً من الميل/ساعة." -#: selfdrive/ui/layouts/settings/device.py:59 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" +"عرض إحصائيات السيارة القائدة و/أو نقاط تتبعالرادار.
القائدة: إحصائيات " +"السيارة القائدة فقط
الرادار:إحصائيات نقاط تتبع الرادار فقط
الكل: " +"إحصائيات السيارةالقائدة والرادار
ملاحظة: خيار الرادار يعمل فقط على " +"موديلاتسيارات معينة." + +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "مستوى كشف التشتت" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "معرّف الدونجل" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "قفل/فتح الباب تلقائياً" + #: selfdrive/ui/layouts/settings/software.py:50 #, python-format msgid "Download" msgstr "تنزيل" -#: selfdrive/ui/layouts/settings/device.py:62 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "كاميرا السائق" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "شخصية القيادة" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "التحكم الديناميكي في سرعة المنعطفات (DTSC)" + #: system/ui/widgets/network.py:123 system/ui/widgets/network.py:139 #, python-format msgid "EDIT" msgstr "تعديل" -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "خطأ" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -330,73 +593,103 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "وضع التجربة مُفعل" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 #, python-format msgid "Enable" msgstr "تمكين" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/developer.py:45 #, python-format msgid "Enable ADB" msgstr "تمكين ADB" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "تمكين وضع التباطؤ التكيفي (ACM)" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "تمكين الصفير (تحذير)" + +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "تمكين تحذيرات مغادرة المسار" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "تمكين وضع القيادة باليد اليمنى" + #: system/ui/widgets/network.py:129 #, python-format msgid "Enable Roaming" msgstr "تمكين التجوال" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/developer.py:54 #, python-format msgid "Enable SSH" msgstr "تمكين SSH" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "تمكين تعديل TSS1 SnG" + #: system/ui/widgets/network.py:120 #, python-format msgid "Enable Tethering" msgstr "تمكين الربط" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "تمكين مراقبة السائق حتى عندما لا يكون openpilot مُشغلاً." - -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "تمكين openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" +"تمكين openpilot من قفل الأبواب تلقائيًا عند تجاوز سرعة 20كم/س وفتحها تلقائيًا " +"عند التحول إلى وضع Park." + +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " "Experimental mode." msgstr "فعّل تبديل التحكم الطولي (ألفا) لـ openpilot للسماح بوضع التجربة." -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "أدخل APN" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "أدخل SSID" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "أدخل كلمة مرور الربط الجديدة" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "أدخل كلمة المرور" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -407,12 +700,12 @@ msgstr "أدخل اسم مستخدم GitHub الخاص بك" msgid "Error" msgstr "خطأ" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "وضع التجربة" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -421,20 +714,21 @@ msgstr "" "وضع التجربة غير متاح حالياً في هذه السيارة لأن نظام ACC الأصلي يُستخدم للتحكم " "الطولي." -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "جارٍ النسيان..." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "ملف" + #: selfdrive/ui/widgets/setup.py:44 #, python-format msgid "Finish Setup" msgstr "إنهاء الإعداد" -#: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "وضع Firehose" @@ -481,39 +775,56 @@ msgstr "" "هل يهم أي برنامج أشغّل؟ نعم، فقط openpilot الأصلي (وبعض التفرعات المحددة) " "يمكن استخدامه للتدريب." -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "" +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" +msgstr "" +"اجبر openpilot على الانتقال إلى حالة الطريق/خارجالطريق.
(مثلًا لأغراض " +"التحديث)" + +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "نسيان" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "هل تريد نسيان شبكة Wi‑Fi \"{}\"؟" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "جيد" +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "الذهاب خارج الطريق" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "انطلق على الطريق" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "اذهب إلى https://connect.comma.ai على هاتفك" -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "مرتفع" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" msgstr "شبكة مخفية" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "إخفاء الشاشة التعبيرية عند التحرك فوق:" + #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "غير نشط: اتصل بشبكة غير محدودة التعرفة" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -530,11 +841,27 @@ msgstr "عنوان IP" msgid "Install Update" msgstr "تثبيت التحديث" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "وضع تصحيح عصا التحكم" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "جارٍ التحميل" @@ -543,33 +870,68 @@ msgstr "جارٍ التحميل" msgid "LTE" msgstr "LTE" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "مساعدة تغيير المسار عند:" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "متساهل" + +#: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "وضع المناورة الطولية" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "أقصى" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "MQB A0 وضع التوفير والانطلاق" + #: selfdrive/ui/widgets/setup.py:75 #, python-format msgid "" "Maximize your training data uploads to improve openpilot's driving models." msgstr "زد من تحميل بيانات التدريب لتحسين نماذج قيادة openpilot." -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "معتدل" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "غير متوفر" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "لا" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "الشبكة" @@ -588,36 +950,74 @@ msgstr "لم يتم العثور على مفاتيح SSH للمستخدم '{}'" msgid "No release notes available." msgstr "لا توجد ملاحظات إصدار متاحة." -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "غير متصل" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "موافق" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "متصل" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "إيقاف" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "إيقاف = تعطيل تغيير المسار التلقائي." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" +"إيقاف = تعطيل التحكم في المساعدة على تغيير المسار.
1 ميلفي الساعة = 1.2 " +"كم/ساعة." + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "على الطريق/خارج الطريق" + #: selfdrive/ui/widgets/setup.py:20 #, python-format msgid "Open" msgstr "فتح" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "إقران" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" -#: selfdrive/ui/layouts/settings/device.py:62 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "تصحيح توجيه PQ" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "معاينة" @@ -627,7 +1027,7 @@ msgstr "معاينة" msgid "PRIME FEATURES:" msgstr "ميزات PRIME:" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "إقران الجهاز" @@ -642,7 +1042,7 @@ msgstr "إقران الجهاز" msgid "Pair your device to your comma account" msgstr "قم بإقران جهازك بحساب comma" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -655,8 +1055,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "يرجى الاتصال بشبكة Wi‑Fi لإكمال الاقتران الأولي" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "إيقاف التشغيل" @@ -671,7 +1071,7 @@ msgstr "منع رفع البيانات الكبيرة عند الاتصال بش msgid "Prevent large data uploads when on a metered cellular connection" msgstr "منع رفع البيانات الكبيرة عند الاتصال الخلوي محدود التعرفة" -#: selfdrive/ui/layouts/settings/device.py:25 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -688,18 +1088,29 @@ msgstr "خطأ في رمز QR" msgid "REMOVE" msgstr "إزالة" -#: selfdrive/ui/layouts/settings/device.py:51 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "إعادة ضبط" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "مراجعة" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "مسار القيادة القوس قزحي مثل تيسلا" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "إعادة التشغيل" @@ -714,7 +1125,7 @@ msgstr "إعادة تشغيل الجهاز" msgid "Reboot and Update" msgstr "إعادة التشغيل والتحديث" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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 " @@ -723,17 +1134,17 @@ msgstr "" "استقبال تنبيهات للتوجيه للعودة إلى المسار عند انحراف المركبة فوق خط المسار " "المُكتشف بدون إشارة انعطاف مفعّلة أثناء القيادة فوق 31 ميل/س (50 كم/س)." -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "تسجيل ورفع فيديو كاميرا السائق" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "تسجيل ورفع صوت الميكروفون" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -741,12 +1152,12 @@ msgstr "" "تسجيل وتخزين صوت الميكروفون أثناء القيادة. سيُدرج الصوت في فيديو الكاميرا " "الأمامية في comma connect." -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "لوائح" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "مسترخٍ" @@ -766,75 +1177,138 @@ msgstr "لقطات عن بُعد" msgid "Request timed out" msgstr "انتهت مهلة الطلب" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "إعادة ضبط" -#: selfdrive/ui/layouts/settings/device.py:51 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "إعادة ضبط المعايرة" -#: selfdrive/ui/layouts/settings/device.py:65 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "إعادة ضبط إعدادات DP" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" +"إعادة ضبط إعدادات دراغون بايلوت إلى الوضع الافتراضي وإعادةتشغيل الجهاز." + +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "مراجعة دليل التدريب" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "مراجعة قواعد وميزات وحدود openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "كشف حافة الطريق (RED)" + +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "SELECT" msgstr "اختيار" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/developer.py:59 #, python-format msgid "SSH Keys" msgstr "مفاتيح SSH" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "جارٍ مسح شبكات Wi‑Fi..." +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" +"انظر إلىhttps://github.com/eFiniLan/openpilot-ext-radar-addon لمزيدمن " +"المعلومات." + #: system/ui/widgets/option_dialog.py:36 #, python-format msgid "Select" msgstr "اختيار" +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "اختر ماركة" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "اختر نموذجًا" + #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "اختر فرعاً" -#: selfdrive/ui/layouts/settings/device.py:91 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "اختر لغة" -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "الرقم التسلسلي" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" +"اضبط مدى حساسية كشف تشتت انتباه السائق. صارم: شديد الحساسية،يُحذر من أدنى " +"تشتت. معتدل: توازن بين الحساسية والإنذاراتالكاذبة. متساهل: يُنذر فقط عند " +"التشتت الواضح. إيقاف: تعطيلكشف وتصحيح تشتت انتباه السائق." + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "عرض" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "عرض آخر الأخطاء" + #: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format msgid "Snooze Update" msgstr "تأجيل التحديث" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "البرمجيات" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "قياسي" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -846,6 +1320,44 @@ msgstr "" "عن السيارات الأمامية. في السيارات المدعومة، يمكنك التنقل بين هذه الشخصيات " "بزر مسافة المقود." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" +"المعيار: سلوك المخزون.
رئيسي+: تشغيل ACC الرئيسي = شاشةالعرض مضاءة." +"
OP+: تفعيل OP = شاشة العرض مضاءة.
رئيسي-:تشغيل ACC الرئيسي = شاشة " +"العرض مطفأة.
OP-: تفعيل OP = شاشةالعرض مطفأة." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" +"معياري: سلوك المخزون.
تحذير: يصدر صوتًا فقط عند وجودتحذير.
إيقاف: لا " +"يصدر أي صوت على الإطلاق." + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "صارم" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -857,8 +1369,8 @@ msgstr "النظام لا يستجيب" msgid "TAKE CONTROL IMMEDIATELY" msgstr "تولَّ السيطرة فوراً" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 msgid "TEMP" msgstr "الحرارة" @@ -872,7 +1384,22 @@ msgstr "الفرع المستهدف" msgid "Tethering Password" msgstr "كلمة مرور الربط" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "يمكن تشغيل/إيقاف نظام مراقبة السائق، لكن تفعيل طويل الأمد مُوصى به" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" +"لتجنب احتراق الشاشة، إخفاء السرعة، السرعة القصوى، ورموزالتوجيه/وحدة القيادة " +"عندما تتحرك السيارة.
إيقاف = السلوكالافتراضي
1 كم/س = 0.6 ميل/س" + +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "مفاتيح التبديل" @@ -881,11 +1408,16 @@ msgstr "مفاتيح التبديل" msgid "UNINSTALL" msgstr "إلغاء التثبيت" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "تحديث" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "استخدمه على مسؤوليتك الخاصة." + #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -906,19 +1438,34 @@ msgstr "يتم تنزيل التحديثات فقط عندما تكون السي msgid "Upgrade Now" msgstr "الترقية الآن" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." msgstr "" "ارفع بيانات من كاميرا مواجهة السائق وساعد في تحسين خوارزمية مراقبة السائق." -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "استخدم الجرس للتنبيهات المسموعة." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "استخدم الرادار الخارجي" + +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "استخدام النظام المتري" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "استخدم التحكم الطولي الافتراضي" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." @@ -926,21 +1473,41 @@ msgstr "" "استخدم نظام openpilot للتحكم الذكي بالسرعة والمساعدة على البقاء داخل المسار. " "يتطلب استخدام هذه الميزة انتباهك الكامل في جميع الأوقات." -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "المركبة" -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "عرض" +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "طراز السيارة" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "قائمة نماذج المركبات ليست بتنسيق صحيح." + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "قائمة نماذج المركبات غير موجودة." + #: selfdrive/ui/onroad/alert_renderer.py:52 #, python-format msgid "Waiting to start" msgstr "بانتظار البدء" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "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 " @@ -955,10 +1522,15 @@ msgstr "" msgid "Welcome to openpilot" msgstr "مرحباً بك في openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "عند التمكين، سيؤدي الضغط على دواسة الوقود إلى فصل openpilot." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "لماذا لا؟" + #: selfdrive/ui/layouts/sidebar.py:44 msgid "Wi-Fi" msgstr "Wi‑Fi" @@ -968,7 +1540,7 @@ msgstr "Wi‑Fi" msgid "Wi-Fi Network Metered" msgstr "شبكة Wi‑Fi محدودة التعرفة" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "كلمة مرور خاطئة" @@ -987,6 +1559,16 @@ msgstr "" "يجب عليك قبول الشروط والأحكام لاستخدام openpilot. اقرأ أحدث الشروط على " "https://comma.ai/terms قبل المتابعة." +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "[اكتشاف تلقائي]" + #: selfdrive/ui/onroad/driver_camera_dialog.py:34 #, python-format msgid "camera starting" @@ -997,12 +1579,28 @@ msgstr "بدء تشغيل الكاميرا" msgid "comma prime" msgstr "comma prime" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "لوحة القيادة" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" +"dashy - المركز الشامل لنظام dragonpilot لك.

زُرhttp://" +"<عنوان_الجهاز>:5088 للوصول.

إيقاف - إيقاف dashyبالكامل.
ملف: مدير " +"الملفات فقط.
الكل: مدير الملفات +البث المباشر." + #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "افتراضي" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "أسفل" @@ -1012,7 +1610,7 @@ msgstr "أسفل" msgid "failed to check for update" msgstr "فشل التحقق من وجود تحديث" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "لـ \"{}\"" @@ -1022,12 +1620,12 @@ msgstr "لـ \"{}\"" msgid "km/h" msgstr "كم/س" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "اتركه فارغاً للإعداد التلقائي" -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "يسار" @@ -1052,7 +1650,7 @@ msgstr "أبداً" msgid "now" msgstr "الآن" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/developer.py:77 #, python-format msgid "openpilot Longitudinal Control (Alpha)" msgstr "التحكم الطولي لـ openpilot (ألفا)" @@ -1062,7 +1660,7 @@ msgstr "التحكم الطولي لـ openpilot (ألفا)" msgid "openpilot Unavailable" msgstr "openpilot غير متاح" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1087,7 +1685,7 @@ msgstr "" "السرعات المنخفضة لإظهار بعض المنعطفات بشكل أفضل. كما سيظهر شعار وضع التجربة " "في الزاوية العلوية اليمنى." -#: selfdrive/ui/layouts/settings/device.py:165 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1109,12 +1707,12 @@ msgstr "" "يتيح وضع Firehose زيادة تحميل بيانات التدريب لتحسين نماذج قيادة openpilot. " "المزيد من البيانات يعني نماذج أكبر، مما يعني وضع تجربة أفضل." -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "قد يأتي التحكم الطولي لـ openpilot في تحديث مستقبلي." -#: selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1122,7 +1720,7 @@ msgstr "" "يتطلب openpilot تركيب الجهاز ضمن 4° يساراً أو يميناً وضمن 5° للأعلى أو 9° " "للأسفل." -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "يمين" @@ -1132,7 +1730,7 @@ msgstr "يمين" msgid "unmetered" msgstr "غير محدود" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "أعلى" @@ -1152,7 +1750,7 @@ msgstr "محدّث، آخر تحقق {}" msgid "update available" msgstr "تحديث متاح" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" @@ -1216,3 +1814,18 @@ msgstr "✓ مشترك" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 وضع Firehose 🔥" + +#~ msgid "ERROR" +#~ msgstr "خطأ" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "جيد" + +#~ msgid "HIGH" +#~ msgstr "مرتفع" + +#~ msgid "OFFLINE" +#~ msgstr "غير متصل" diff --git a/selfdrive/ui/translations/app_de.po b/selfdrive/ui/translations/app_de.po index f32c27a..97d7214 100644 --- a/selfdrive/ui/translations/app_de.po +++ b/selfdrive/ui/translations/app_de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:50-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-20 16:35-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,25 +17,90 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " Die Lenkmoment-Reaktionskalibrierung ist abgeschlossen." -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " Die Lenkmoment-Reaktionskalibrierung ist zu {}% abgeschlossen." -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " Ihr Gerät ist um {:.1f}° {} und {:.1f}° {} ausgerichtet." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:43 msgid "--" msgstr "--" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "" + #: selfdrive/ui/widgets/prime.py:47 #, python-format msgid "1 year of drive storage" @@ -58,7 +123,7 @@ msgstr "3G" msgid "5G" msgstr "5G" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/developer.py:28 msgid "" "WARNING: openpilot longitudinal control is in alpha for this car and will " "disable Automatic Emergency Braking (AEB).

On this car, openpilot " @@ -76,12 +141,12 @@ msgstr "" "Experimentalmodus wird empfohlen, wenn Sie die openpilot-Längsregelung " "(Alpha) aktivieren." -#: selfdrive/ui/layouts/settings/device.py:148 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

Kalibrierung der Lenkverzögerung abgeschlossen." -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

Kalibrierung der Lenkverzögerung zu {}% abgeschlossen." @@ -91,7 +156,7 @@ msgstr "

Kalibrierung der Lenkverzögerung zu {}% abgeschlossen." msgid "ACTIVE" msgstr "AKTIV" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/developer.py:20 msgid "" "ADB (Android Debug Bridge) allows connecting to your device over USB or over " "the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." @@ -114,12 +179,30 @@ msgstr "APN‑Einstellung" msgid "Acknowledge Excessive Actuation" msgstr "Übermäßige Betätigung bestätigen" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" + #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" msgstr "Erweitert" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "Aggressiv" @@ -129,12 +212,34 @@ msgstr "Aggressiv" msgid "Agree" msgstr "Zustimmen" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "Immer aktive Fahrerüberwachung" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -143,26 +248,61 @@ msgstr "" "Eine Alpha-Version der openpilot-Längsregelung kann zusammen mit dem " "Experimentalmodus auf Nicht-Release-Zweigen getestet werden." -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "Sind Sie sicher, dass Sie ausschalten möchten?" -#: selfdrive/ui/layouts/settings/device.py:175 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "Sind Sie sicher, dass Sie neu starten möchten?" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "Sind Sie sicher, dass Sie die Kalibrierung zurücksetzen möchten?" +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:163 #, python-format msgid "Are you sure you want to uninstall?" msgstr "Sind Sie sicher, dass Sie deinstallieren möchten?" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "" + #: system/ui/widgets/network.py:99 selfdrive/ui/layouts/onboarding.py:147 #, python-format msgid "Back" @@ -173,6 +313,13 @@ msgstr "Zurück" msgid "Become a comma prime member at connect.comma.ai" msgstr "Werden Sie comma prime Mitglied auf connect.comma.ai" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" + #: selfdrive/ui/widgets/pairing_dialog.py:130 #, python-format msgid "Bookmark connect.comma.ai to your home screen to use it like an app" @@ -180,7 +327,7 @@ msgstr "" "Fügen Sie connect.comma.ai Ihrem Startbildschirm hinzu, um es wie eine App " "zu verwenden" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "ÄNDERN" @@ -198,20 +345,28 @@ msgstr "PRÜFEN" msgid "CHILL MODE ON" msgstr "CHILL‑MODUS AKTIV" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "" + +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "VERBINDUNG" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "VERBINDUNG" -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "Abbrechen" @@ -221,12 +376,12 @@ msgstr "Abbrechen" msgid "Cellular Metered" msgstr "Getaktete Mobilfunkverbindung" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "Sprache ändern" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "" @@ -253,6 +408,14 @@ msgstr "Aktuelle Version" msgid "DOWNLOAD" msgstr "HERUNTERLADEN" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" + #: selfdrive/ui/layouts/onboarding.py:115 #, python-format msgid "Decline" @@ -263,67 +426,148 @@ msgstr "Ablehnen" msgid "Decline, uninstall openpilot" msgstr "Ablehnen, openpilot deinstallieren" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" + #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "Entwickler" -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "Gerät" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "Beim Gaspedal deaktivieren" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "Zum Ausschalten deaktivieren" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "Zum Neustart deaktivieren" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "Zum Zurücksetzen der Kalibrierung deaktivieren" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "Geschwindigkeit in km/h statt mph anzeigen." -#: selfdrive/ui/layouts/settings/device.py:59 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "Dongle-ID" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:50 #, python-format msgid "Download" msgstr "Herunterladen" -#: selfdrive/ui/layouts/settings/device.py:62 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "Fahrerkamera" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "Fahrstil" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "" + #: system/ui/widgets/network.py:123 system/ui/widgets/network.py:139 #, python-format msgid "EDIT" msgstr "BEARBEITEN" -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "FEHLER" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -333,47 +577,70 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "EXPERIMENTALMODUS AKTIV" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 #, python-format msgid "Enable" msgstr "Aktivieren" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/developer.py:45 #, python-format msgid "Enable ADB" msgstr "ADB aktivieren" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "Spurverlassenswarnungen aktivieren" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "" + #: system/ui/widgets/network.py:129 #, python-format msgid "Enable Roaming" msgstr "openpilot aktivieren" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/developer.py:54 #, python-format msgid "Enable SSH" msgstr "SSH aktivieren" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "" + #: system/ui/widgets/network.py:120 #, python-format msgid "Enable Tethering" msgstr "Spurverlassenswarnungen aktivieren" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "Fahrerüberwachung auch aktivieren, wenn openpilot nicht aktiv ist." - -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "openpilot aktivieren" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -382,26 +649,31 @@ msgstr "" "Den Schalter für die openpilot-Längsregelung (Alpha) aktivieren, um den " "Experimentalmodus zu erlauben." -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "APN eingeben" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "SSID eingeben" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "Neues Tethering‑Passwort eingeben" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "Passwort eingeben" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -412,12 +684,12 @@ msgstr "Geben Sie Ihren GitHub‑Benutzernamen ein" msgid "Error" msgstr "Fehler" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "Experimentalmodus" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -426,20 +698,21 @@ msgstr "" "Der Experimentalmodus ist derzeit auf diesem Fahrzeug nicht verfügbar, da " "der serienmäßige ACC für die Längsregelung verwendet wird." -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "WIRD VERGESSEN..." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "" + #: selfdrive/ui/widgets/setup.py:44 #, python-format msgid "Finish Setup" msgstr "Einrichtung abschließen" -#: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Firehose‑Modus" @@ -489,39 +762,54 @@ msgstr "" "Upstream‑openpilot (und bestimmte Forks) können für das Training verwendet " "werden." -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "" +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "Vergessen" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "WLAN‑Netz „{}“ vergessen?" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "GUT" +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "Gehen Sie auf Ihrem Telefon zu https://connect.comma.ai" -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "HOCH" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" msgstr "Netzwerk" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "" + #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "INAKTIV: Mit einem unlimitierten Netzwerk verbinden" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -538,11 +826,27 @@ msgstr "IP‑Adresse" msgid "Install Update" msgstr "Update installieren" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "Joystick‑Debugmodus" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "LADEN" @@ -551,16 +855,46 @@ msgstr "LADEN" msgid "LTE" msgstr "LTE" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "Längsmanövermodus" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "MAX" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "" + #: selfdrive/ui/widgets/setup.py:75 #, python-format msgid "" @@ -569,17 +903,22 @@ msgstr "" "Maximieren Sie Ihre Trainingsdaten‑Uploads, um die Fahrmodelle von openpilot " "zu verbessern." -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "k. A." -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "KEIN" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "Netzwerk" @@ -598,36 +937,72 @@ msgstr "Keine SSH‑Schlüssel für Benutzer '{username}' gefunden" msgid "No release notes available." msgstr "Keine Versionshinweise verfügbar." -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "OFFLINE" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "OK" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "ONLINE" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "" + #: selfdrive/ui/widgets/setup.py:20 #, python-format msgid "Open" msgstr "Öffnen" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "KOPPELN" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" -#: selfdrive/ui/layouts/settings/device.py:62 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "VORSCHAU" @@ -637,7 +1012,7 @@ msgstr "VORSCHAU" msgid "PRIME FEATURES:" msgstr "PRIME‑FUNKTIONEN:" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "Gerät koppeln" @@ -652,7 +1027,7 @@ msgstr "Gerät koppeln" msgid "Pair your device to your comma account" msgstr "Koppeln Sie Ihr Gerät mit Ihrem comma‑Konto" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -666,8 +1041,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "Bitte mit WLAN verbinden, um das erste Koppeln abzuschließen" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "Ausschalten" @@ -682,7 +1057,7 @@ msgstr "" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:25 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -699,18 +1074,29 @@ msgstr "QR‑Code‑Fehler" msgid "REMOVE" msgstr "ENTFERNEN" -#: selfdrive/ui/layouts/settings/device.py:51 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "ZURÜCKSETZEN" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "ANSEHEN" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "Neustart" @@ -725,7 +1111,7 @@ msgstr "Gerät neu starten" msgid "Reboot and Update" msgstr "Neustarten und aktualisieren" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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 " @@ -735,17 +1121,17 @@ msgstr "" "ohne Blinker über eine erkannte Spurlinie driftet und über 31 mph (50 km/h) " "fährt." -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "Fahrerkamera aufzeichnen und hochladen" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "Mikrofonton aufzeichnen und hochladen" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -753,12 +1139,12 @@ msgstr "" "Mikrofonton während der Fahrt aufzeichnen und speichern. Die Audiospur wird " "im Dashcam‑Video in comma connect enthalten sein." -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "Vorschriften" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "Entspannt" @@ -778,76 +1164,133 @@ msgstr "Remote‑Schnappschüsse" msgid "Request timed out" msgstr "Zeitüberschreitung bei der Anfrage" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "Zurücksetzen" -#: selfdrive/ui/layouts/settings/device.py:51 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "Kalibrierung zurücksetzen" -#: selfdrive/ui/layouts/settings/device.py:65 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "Trainingsanleitung ansehen" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "" "Überprüfen Sie die Regeln, Funktionen und Einschränkungen von openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "SELECT" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/developer.py:59 #, python-format msgid "SSH Keys" msgstr "SSH‑Schlüssel" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "WLAN‑Netzwerke werden gesucht..." +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" + #: system/ui/widgets/option_dialog.py:36 #, python-format msgid "Select" msgstr "Auswählen" +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:91 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "Sprache auswählen" -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "Seriennummer" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "" + #: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format msgid "Snooze Update" msgstr "Update verschieben" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "Software" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "Standard" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -860,6 +1303,39 @@ msgstr "" "unterstützten Fahrzeugen können Sie mit der Abstandstaste am Lenkrad " "zwischen diesen Profilen wechseln." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -871,8 +1347,8 @@ msgstr "System reagiert nicht" msgid "TAKE CONTROL IMMEDIATELY" msgstr "SOFORT DIE KONTROLLE ÜBERNEHMEN" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 msgid "TEMP" msgstr "TEMP" @@ -886,7 +1362,22 @@ msgstr "" msgid "Tethering Password" msgstr "Tethering‑Passwort" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"Das Fahrerüberwachungssystem kann ein-/ausschaltbar sein, aber eine " +"dauerhafte Aktivierung wird empfohlen." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" + +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "Schalter" @@ -895,11 +1386,16 @@ msgstr "Schalter" msgid "UNINSTALL" msgstr "DEINSTALLIEREN" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "UPDATE" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -920,7 +1416,7 @@ msgstr "Updates werden nur heruntergeladen, wenn das Auto aus ist." msgid "Upgrade Now" msgstr "Jetzt abonnieren" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -928,12 +1424,27 @@ msgstr "" "Daten von der Fahrer‑Kamera hochladen und den Fahrerüberwachungs‑Algorithmus " "verbessern." -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "Metersystem verwenden" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." @@ -942,21 +1453,41 @@ msgstr "" "Spurhalteassistenz. Ihre Aufmerksamkeit ist jederzeit erforderlich, um diese " "Funktion zu nutzen." -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "FAHRZEUG" -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "ANSEHEN" +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:52 #, python-format msgid "Waiting to start" msgstr "Warten auf Start" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "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 " @@ -972,10 +1503,15 @@ msgstr "" msgid "Welcome to openpilot" msgstr "Willkommen bei openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "Wenn aktiviert, deaktiviert das Drücken des Gaspedals openpilot." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:44 msgid "Wi-Fi" msgstr "WLAN" @@ -985,7 +1521,7 @@ msgstr "WLAN" msgid "Wi-Fi Network Metered" msgstr "Getaktetes WLAN‑Netzwerk" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "Falsches Passwort" @@ -1006,6 +1542,16 @@ msgstr "" "Lesen Sie die aktuellen Bedingungen unter https://comma.ai/terms, bevor Sie " "fortfahren." +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "" + #: selfdrive/ui/onroad/driver_camera_dialog.py:34 #, python-format msgid "camera starting" @@ -1016,12 +1562,25 @@ msgstr "Kamera startet" msgid "comma prime" msgstr "comma prime" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" + #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "Standard" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "unten" @@ -1031,7 +1590,7 @@ msgstr "unten" msgid "failed to check for update" msgstr "Überprüfung auf Updates fehlgeschlagen" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "für „{}“" @@ -1041,12 +1600,12 @@ msgstr "für „{}“" msgid "km/h" msgstr "km/h" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "für automatische Konfiguration leer lassen" -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "links" @@ -1071,7 +1630,7 @@ msgstr "nie" msgid "now" msgstr "jetzt" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/developer.py:77 #, python-format msgid "openpilot Longitudinal Control (Alpha)" msgstr "openpilot Längsregelung (Alpha)" @@ -1081,7 +1640,7 @@ msgstr "openpilot Längsregelung (Alpha)" msgid "openpilot Unavailable" msgstr "openpilot nicht verfügbar" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1109,7 +1668,7 @@ msgstr "" "manche Kurven besser zu zeigen. Das Experimentalmodus‑Logo wird außerdem " "oben rechts angezeigt." -#: selfdrive/ui/layouts/settings/device.py:165 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1132,12 +1691,12 @@ msgstr "" "maximieren, um die Fahrmodelle von openpilot zu verbessern. Mehr Daten " "bedeuten größere Modelle – und damit einen besseren Experimentalmodus." -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "Die openpilot‑Längsregelung könnte in einem zukünftigen Update kommen." -#: selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1145,7 +1704,7 @@ msgstr "" "openpilot erfordert, dass das Gerät innerhalb von 4° nach links oder rechts " "und innerhalb von 5° nach oben oder 9° nach unten montiert ist." -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "rechts" @@ -1155,7 +1714,7 @@ msgstr "rechts" msgid "unmetered" msgstr "unbegrenzt" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "oben" @@ -1175,7 +1734,7 @@ msgstr "Aktuell, zuletzt geprüft: {}" msgid "update available" msgstr "Update verfügbar" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" @@ -1219,3 +1778,18 @@ msgstr "✓ ABONNIERT" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Firehose‑Modus 🔥" + +#~ msgid "ERROR" +#~ msgstr "FEHLER" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "GUT" + +#~ msgid "HIGH" +#~ msgstr "HOCH" + +#~ msgid "OFFLINE" +#~ msgstr "OFFLINE" diff --git a/selfdrive/ui/translations/app_en.po b/selfdrive/ui/translations/app_en.po index 6fbb537..f5ab154 100644 --- a/selfdrive/ui/translations/app_en.po +++ b/selfdrive/ui/translations/app_en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:50-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-21 18:18-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,25 +17,90 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " Steering torque response calibration is complete." -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " Steering torque response calibration is {}% complete." -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " Your device is pointed {:.1f}° {} and {:.1f}° {}." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:43 msgid "--" msgstr "--" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "" + #: selfdrive/ui/widgets/prime.py:47 #, python-format msgid "1 year of drive storage" @@ -58,7 +123,7 @@ msgstr "3G" msgid "5G" msgstr "5G" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/developer.py:28 msgid "" "WARNING: openpilot longitudinal control is in alpha for this car and will " "disable Automatic Emergency Braking (AEB).

On this car, openpilot " @@ -76,12 +141,12 @@ msgstr "" "control alpha. Changing this setting will restart openpilot if the car is " "powered on." -#: selfdrive/ui/layouts/settings/device.py:148 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

Steering lag calibration is complete." -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

Steering lag calibration is {}% complete." @@ -91,7 +156,7 @@ msgstr "

Steering lag calibration is {}% complete." msgid "ACTIVE" msgstr "ACTIVE" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/developer.py:20 msgid "" "ADB (Android Debug Bridge) allows connecting to your device over USB or over " "the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." @@ -113,12 +178,30 @@ msgstr "APN Setting" msgid "Acknowledge Excessive Actuation" msgstr "Acknowledge Excessive Actuation" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" + #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" msgstr "Advanced" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "Aggressive" @@ -128,12 +211,34 @@ msgstr "Aggressive" msgid "Agree" msgstr "Agree" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "Always-On Driver Monitoring" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -142,26 +247,61 @@ msgstr "" "An alpha version of openpilot longitudinal control can be tested, along with " "Experimental mode, on non-release branches." -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "Are you sure you want to power off?" -#: selfdrive/ui/layouts/settings/device.py:175 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "Are you sure you want to reboot?" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "Are you sure you want to reset calibration?" +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:163 #, python-format msgid "Are you sure you want to uninstall?" msgstr "Are you sure you want to uninstall?" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "" + #: system/ui/widgets/network.py:99 selfdrive/ui/layouts/onboarding.py:147 #, python-format msgid "Back" @@ -172,12 +312,19 @@ msgstr "Back" msgid "Become a comma prime member at connect.comma.ai" msgstr "Become a comma prime member at connect.comma.ai" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" + #: selfdrive/ui/widgets/pairing_dialog.py:130 #, python-format msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "Bookmark connect.comma.ai to your home screen to use it like an app" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "CHANGE" @@ -195,20 +342,28 @@ msgstr "CHECK" msgid "CHILL MODE ON" msgstr "CHILL MODE ON" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "" + +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "CONNECT" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "CONNECTING..." -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "Cancel" @@ -218,12 +373,12 @@ msgstr "Cancel" msgid "Cellular Metered" msgstr "Cellular Metered" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "Change Language" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "Changing this setting will restart openpilot if the car is powered on." @@ -248,6 +403,14 @@ msgstr "Current Version" msgid "DOWNLOAD" msgstr "DOWNLOAD" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" + #: selfdrive/ui/layouts/onboarding.py:115 #, python-format msgid "Decline" @@ -258,67 +421,148 @@ msgstr "Decline" msgid "Decline, uninstall openpilot" msgstr "Decline, uninstall openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" + #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "Developer" -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "Device" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "Disengage on Accelerator Pedal" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "Disengage to Power Off" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "Disengage to Reboot" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "Disengage to Reset Calibration" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "Display speed in km/h instead of mph." -#: selfdrive/ui/layouts/settings/device.py:59 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "Dongle ID" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:50 #, python-format msgid "Download" msgstr "Download" -#: selfdrive/ui/layouts/settings/device.py:62 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "Driver Camera" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "Driving Personality" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "" + #: system/ui/widgets/network.py:123 system/ui/widgets/network.py:139 #, python-format msgid "EDIT" msgstr "EDIT" -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "ERROR" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -328,47 +572,70 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "EXPERIMENTAL MODE ON" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 #, python-format msgid "Enable" msgstr "Enable" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/developer.py:45 #, python-format msgid "Enable ADB" msgstr "Enable ADB" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "Enable Lane Departure Warnings" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "" + #: system/ui/widgets/network.py:129 #, python-format msgid "Enable Roaming" msgstr "Enable Roaming" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/developer.py:54 #, python-format msgid "Enable SSH" msgstr "Enable SSH" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "" + #: system/ui/widgets/network.py:120 #, python-format msgid "Enable Tethering" msgstr "Enable Tethering" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "Enable driver monitoring even when openpilot is not engaged." - -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "Enable openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -377,26 +644,31 @@ msgstr "" "Enable the openpilot longitudinal control (alpha) toggle to allow " "Experimental mode." -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "Enter APN" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "Enter SSID" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "Enter new tethering password" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "Enter password" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -407,12 +679,12 @@ msgstr "Enter your GitHub username" msgid "Error" msgstr "Error" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "Experimental Mode" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -421,20 +693,21 @@ msgstr "" "Experimental mode is currently unavailable on this car since the car's stock " "ACC is used for longitudinal control." -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "FORGETTING..." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "" + #: selfdrive/ui/widgets/setup.py:44 #, python-format msgid "Finish Setup" msgstr "Finish Setup" -#: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Firehose Mode" @@ -483,39 +756,54 @@ msgstr "" "Does it matter which software I run? Yes, only upstream openpilot (and " "particular forks) are able to be used for training." -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "" +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "Forget" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "Forget Wi-Fi Network \"{}\"?" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "GOOD" +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "Go to https://connect.comma.ai on your phone" -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "HIGH" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" msgstr "Hidden Network" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "" + #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "INACTIVE: connect to an unmetered network" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -532,11 +820,27 @@ msgstr "IP Address" msgid "Install Update" msgstr "Install Update" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "Joystick Debug Mode" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "LOADING" @@ -545,16 +849,46 @@ msgstr "LOADING" msgid "LTE" msgstr "LTE" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "Longitudinal Maneuver Mode" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "MAX" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "" + #: selfdrive/ui/widgets/setup.py:75 #, python-format msgid "" @@ -562,17 +896,22 @@ msgid "" msgstr "" "Maximize your training data uploads to improve openpilot's driving models." -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "N/A" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "NO" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "Network" @@ -591,36 +930,72 @@ msgstr "No SSH keys found for user '{}'" msgid "No release notes available." msgstr "No release notes available." -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "OFFLINE" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "OK" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "ONLINE" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "" + #: selfdrive/ui/widgets/setup.py:20 #, python-format msgid "Open" msgstr "Open" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "PAIR" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" -#: selfdrive/ui/layouts/settings/device.py:62 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "PREVIEW" @@ -630,7 +1005,7 @@ msgstr "PREVIEW" msgid "PRIME FEATURES:" msgstr "PRIME FEATURES:" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "Pair Device" @@ -645,7 +1020,7 @@ msgstr "Pair device" msgid "Pair your device to your comma account" msgstr "Pair your device to your comma account" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -659,8 +1034,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "Please connect to Wi-Fi to complete initial pairing" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "Power Off" @@ -675,7 +1050,7 @@ msgstr "Prevent large data uploads when on a metered Wi-Fi connection" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "Prevent large data uploads when on a metered cellular connection" -#: selfdrive/ui/layouts/settings/device.py:25 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -692,18 +1067,29 @@ msgstr "QR Code Error" msgid "REMOVE" msgstr "REMOVE" -#: selfdrive/ui/layouts/settings/device.py:51 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "RESET" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "REVIEW" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "Reboot" @@ -718,7 +1104,7 @@ msgstr "Reboot Device" msgid "Reboot and Update" msgstr "Reboot and Update" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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 " @@ -728,17 +1114,17 @@ msgstr "" "detected lane line without a turn signal activated while driving over 31 mph " "(50 km/h)." -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "Record and Upload Driver Camera" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "Record and Upload Microphone Audio" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -746,12 +1132,12 @@ msgstr "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "Regulatory" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "Relaxed" @@ -771,75 +1157,132 @@ msgstr "Remote snapshots" msgid "Request timed out" msgstr "Request timed out" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "Reset" -#: selfdrive/ui/layouts/settings/device.py:51 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "Reset Calibration" -#: selfdrive/ui/layouts/settings/device.py:65 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "Review Training Guide" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "Review the rules, features, and limitations of openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "SELECT" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/developer.py:59 #, python-format msgid "SSH Keys" msgstr "SSH Keys" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "Scanning Wi-Fi networks..." +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" + #: system/ui/widgets/option_dialog.py:36 #, python-format msgid "Select" msgstr "Select" +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:91 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "Select a language" -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "Serial" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "" + #: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format msgid "Snooze Update" msgstr "Snooze Update" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "Software" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "Standard" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -851,6 +1294,39 @@ msgstr "" "openpilot will stay further away from lead cars. On supported cars, you can " "cycle through these personalities with your steering wheel distance button." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -862,8 +1338,8 @@ msgstr "System Unresponsive" msgid "TAKE CONTROL IMMEDIATELY" msgstr "TAKE CONTROL IMMEDIATELY" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 msgid "TEMP" msgstr "TEMP" @@ -877,7 +1353,22 @@ msgstr "" msgid "Tethering Password" msgstr "Tethering Password" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" + +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "Toggles" @@ -886,11 +1377,16 @@ msgstr "Toggles" msgid "UNINSTALL" msgstr "UNINSTALL" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "UPDATE" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -911,7 +1407,7 @@ msgstr "Updates are only downloaded while the car is off." msgid "Upgrade Now" msgstr "Upgrade Now" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -919,12 +1415,27 @@ msgstr "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "Use Metric System" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." @@ -932,21 +1443,41 @@ msgstr "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "VEHICLE" -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "VIEW" +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:52 #, python-format msgid "Waiting to start" msgstr "Waiting to start" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "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 " @@ -961,10 +1492,15 @@ msgstr "" msgid "Welcome to openpilot" msgstr "Welcome to openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "When enabled, pressing the accelerator pedal will disengage openpilot." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:44 msgid "Wi-Fi" msgstr "Wi-Fi" @@ -974,7 +1510,7 @@ msgstr "Wi-Fi" msgid "Wi-Fi Network Metered" msgstr "Wi-Fi Network Metered" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "Wrong password" @@ -993,6 +1529,16 @@ msgstr "" "You must accept the Terms and Conditions to use openpilot. Read the latest " "terms at https://comma.ai/terms before continuing." +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "" + #: selfdrive/ui/onroad/driver_camera_dialog.py:34 #, python-format msgid "camera starting" @@ -1003,12 +1549,25 @@ msgstr "camera starting" msgid "comma prime" msgstr "comma prime" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" + #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "default" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "down" @@ -1018,7 +1577,7 @@ msgstr "down" msgid "failed to check for update" msgstr "failed to check for update" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "for \"{}\"" @@ -1028,12 +1587,12 @@ msgstr "for \"{}\"" msgid "km/h" msgstr "km/h" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "leave blank for automatic configuration" -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "left" @@ -1058,7 +1617,7 @@ msgstr "never" msgid "now" msgstr "now" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/developer.py:77 #, python-format msgid "openpilot Longitudinal Control (Alpha)" msgstr "openpilot Longitudinal Control (Alpha)" @@ -1068,7 +1627,7 @@ msgstr "openpilot Longitudinal Control (Alpha)" msgid "openpilot Unavailable" msgstr "openpilot Unavailable" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1095,7 +1654,7 @@ msgstr "" "some turns. The Experimental mode logo will also be shown in the top right " "corner." -#: selfdrive/ui/layouts/settings/device.py:165 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1118,12 +1677,12 @@ msgstr "" "openpilot's driving models. More data means bigger models, which means " "better Experimental Mode." -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "openpilot longitudinal control may come in a future update." -#: selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1131,7 +1690,7 @@ msgstr "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "right" @@ -1141,7 +1700,7 @@ msgstr "right" msgid "unmetered" msgstr "unmetered" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "up" @@ -1161,7 +1720,7 @@ msgstr "up to date, last checked {}" msgid "update available" msgstr "update available" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" @@ -1205,3 +1764,18 @@ msgstr "✓ SUBSCRIBED" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Firehose Mode 🔥" + +#~ msgid "ERROR" +#~ msgstr "ERROR" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "GOOD" + +#~ msgid "HIGH" +#~ msgstr "HIGH" + +#~ msgid "OFFLINE" +#~ msgstr "OFFLINE" diff --git a/selfdrive/ui/translations/app_es.po b/selfdrive/ui/translations/app_es.po index 59b9e6d..1a4669a 100644 --- a/selfdrive/ui/translations/app_es.po +++ b/selfdrive/ui/translations/app_es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:50-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-20 16:35-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,25 +17,90 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " La calibración de respuesta de par de dirección está completa." -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " La calibración de respuesta de par de dirección está {}% completa." -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " Tu dispositivo está orientado {:.1f}° {} y {:.1f}° {}." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:43 msgid "--" msgstr "--" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "" + #: selfdrive/ui/widgets/prime.py:47 #, python-format msgid "1 year of drive storage" @@ -58,7 +123,7 @@ msgstr "3G" msgid "5G" msgstr "5G" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/developer.py:28 msgid "" "WARNING: openpilot longitudinal control is in alpha for this car and will " "disable Automatic Emergency Braking (AEB).

On this car, openpilot " @@ -75,12 +140,12 @@ msgstr "" "cambiar al control longitudinal de openpilot. Se recomienda activar el modo " "Experimental al habilitar el control longitudinal de openpilot (alpha)." -#: selfdrive/ui/layouts/settings/device.py:148 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "" @@ -90,7 +155,7 @@ msgstr "" msgid "ACTIVE" msgstr "ACTIVO" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/developer.py:20 msgid "" "ADB (Android Debug Bridge) allows connecting to your device over USB or over " "the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." @@ -113,12 +178,30 @@ msgstr "" msgid "Acknowledge Excessive Actuation" msgstr "Reconocer actuación excesiva" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" + #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "Agresivo" @@ -128,12 +211,34 @@ msgstr "Agresivo" msgid "Agree" msgstr "Aceptar" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "Supervisión del conductor siempre activa" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -142,26 +247,61 @@ msgstr "" "Se puede probar una versión alpha del control longitudinal de openpilot, " "junto con el modo Experimental, en ramas que no son de lanzamiento." -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "¿Seguro que quieres apagar?" -#: selfdrive/ui/layouts/settings/device.py:175 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "¿Seguro que quieres reiniciar?" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "¿Seguro que quieres restablecer la calibración?" +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:163 #, python-format msgid "Are you sure you want to uninstall?" msgstr "¿Seguro que quieres desinstalar?" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "" + #: system/ui/widgets/network.py:99 selfdrive/ui/layouts/onboarding.py:147 #, python-format msgid "Back" @@ -172,13 +312,20 @@ msgstr "Atrás" msgid "Become a comma prime member at connect.comma.ai" msgstr "Hazte miembro de comma prime en connect.comma.ai" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" + #: selfdrive/ui/widgets/pairing_dialog.py:130 #, python-format msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "" "Añade connect.comma.ai a tu pantalla de inicio para usarlo como una app" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "CAMBIAR" @@ -196,20 +343,28 @@ msgstr "COMPROBAR" msgid "CHILL MODE ON" msgstr "MODO CHILL ACTIVADO" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "" + +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "CONECTAR" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "CONECTAR" -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "" @@ -219,12 +374,12 @@ msgstr "" msgid "Cellular Metered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "Cambiar idioma" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "" @@ -251,6 +406,14 @@ msgstr "Versión actual" msgid "DOWNLOAD" msgstr "DESCARGAR" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" + #: selfdrive/ui/layouts/onboarding.py:115 #, python-format msgid "Decline" @@ -261,67 +424,148 @@ msgstr "Rechazar" msgid "Decline, uninstall openpilot" msgstr "Rechazar, desinstalar openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" + #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "Desarrollador" -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "Dispositivo" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "Desactivar con el pedal del acelerador" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "Desactivar para apagar" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "Desactivar para reiniciar" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "Desactivar para restablecer la calibración" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "Mostrar la velocidad en km/h en lugar de mph." -#: selfdrive/ui/layouts/settings/device.py:59 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "ID del dongle" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:50 #, python-format msgid "Download" msgstr "Descargar" -#: selfdrive/ui/layouts/settings/device.py:62 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "Cámara del conductor" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "Estilo de conducción" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "" + #: system/ui/widgets/network.py:123 system/ui/widgets/network.py:139 #, python-format msgid "EDIT" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "ERROR" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -331,49 +575,70 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "MODO EXPERIMENTAL ACTIVADO" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 #, python-format msgid "Enable" msgstr "Activar" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/developer.py:45 #, python-format msgid "Enable ADB" msgstr "Activar ADB" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "Activar advertencias de salida de carril" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "" + #: system/ui/widgets/network.py:129 #, python-format msgid "Enable Roaming" msgstr "Activar openpilot" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/developer.py:54 #, python-format msgid "Enable SSH" msgstr "Activar SSH" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "" + #: system/ui/widgets/network.py:120 #, python-format msgid "Enable Tethering" msgstr "Activar advertencias de salida de carril" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "" -"Activar la supervisión del conductor incluso cuando openpilot no esté " -"activado." - -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "Activar openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -382,26 +647,31 @@ msgstr "" "Activa el interruptor de control longitudinal de openpilot (alpha) para " "permitir el modo Experimental." -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -412,12 +682,12 @@ msgstr "Introduce tu nombre de usuario de GitHub" msgid "Error" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "Modo experimental" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -426,20 +696,21 @@ msgstr "" "El modo experimental no está disponible actualmente en este coche, ya que se " "usa el ACC de fábrica para el control longitudinal." -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "" + #: selfdrive/ui/widgets/setup.py:44 #, python-format msgid "Finish Setup" msgstr "Finalizar configuración" -#: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Modo Firehose" @@ -487,39 +758,54 @@ msgstr "" "¿Importa qué software ejecuto? Sí, solo openpilot upstream (y forks " "particulares) pueden usarse para entrenamiento." -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "" +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "BUENO" +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "Ve a https://connect.comma.ai en tu teléfono" -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "ALTO" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" msgstr "Red" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "" + #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "INACTIVO: conéctate a una red sin límites" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -536,11 +822,27 @@ msgstr "" msgid "Install Update" msgstr "Instalar actualización" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "Modo de depuración de joystick" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "CARGANDO" @@ -549,16 +851,46 @@ msgstr "CARGANDO" msgid "LTE" msgstr "LTE" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "Modo de maniobra longitudinal" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "MÁX" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "" + #: selfdrive/ui/widgets/setup.py:75 #, python-format msgid "" @@ -567,17 +899,22 @@ msgstr "" "Maximiza tus cargas de datos de entrenamiento para mejorar los modelos de " "conducción de openpilot." -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "NO" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "Red" @@ -596,36 +933,72 @@ msgstr "No se encontraron claves SSH para el usuario '{username}'" msgid "No release notes available." msgstr "No hay notas de versión disponibles." -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "SIN CONEXIÓN" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "OK" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "EN LÍNEA" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "" + #: selfdrive/ui/widgets/setup.py:20 #, python-format msgid "Open" msgstr "Abrir" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "EMPAREJAR" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" -#: selfdrive/ui/layouts/settings/device.py:62 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "VISTA PREVIA" @@ -635,7 +1008,7 @@ msgstr "VISTA PREVIA" msgid "PRIME FEATURES:" msgstr "FUNCIONES PRIME:" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "Emparejar dispositivo" @@ -650,7 +1023,7 @@ msgstr "Emparejar dispositivo" msgid "Pair your device to your comma account" msgstr "Empareja tu dispositivo con tu cuenta de comma" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -664,8 +1037,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "Conéctate a Wi‑Fi para completar el emparejamiento inicial" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "Apagar" @@ -680,7 +1053,7 @@ msgstr "" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:25 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -698,18 +1071,29 @@ msgstr "Error de código QR" msgid "REMOVE" msgstr "ELIMINAR" -#: selfdrive/ui/layouts/settings/device.py:51 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "RESTABLECER" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "REVISAR" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "Reiniciar" @@ -724,7 +1108,7 @@ msgstr "Reiniciar dispositivo" msgid "Reboot and Update" msgstr "Reiniciar y actualizar" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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 " @@ -734,17 +1118,17 @@ msgstr "" "línea de carril detectada sin la direccional activada mientras conduces a " "más de 31 mph (50 km/h)." -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "Grabar y subir cámara del conductor" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "Grabar y subir audio del micrófono" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -752,12 +1136,12 @@ msgstr "" "Grabar y almacenar audio del micrófono mientras conduces. El audio se " "incluirá en el video de la dashcam en comma connect." -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "Reglamentario" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "Relajado" @@ -777,75 +1161,132 @@ msgstr "Capturas remotas" msgid "Request timed out" msgstr "Se agotó el tiempo de espera de la solicitud" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "Restablecer" -#: selfdrive/ui/layouts/settings/device.py:51 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "Restablecer calibración" -#: selfdrive/ui/layouts/settings/device.py:65 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "Revisar guía de entrenamiento" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "Revisa las reglas, funciones y limitaciones de openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "SELECT" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/developer.py:59 #, python-format msgid "SSH Keys" msgstr "" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "" +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" + #: system/ui/widgets/option_dialog.py:36 #, python-format msgid "Select" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:91 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "Selecciona un idioma" -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "Número de serie" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "" + #: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format msgid "Snooze Update" msgstr "Posponer actualización" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "Software" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "Estándar" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -858,6 +1299,39 @@ msgstr "" "coches compatibles, puedes cambiar entre estas personalidades con el botón " "de distancia del volante." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -869,8 +1343,8 @@ msgstr "Sistema sin respuesta" msgid "TAKE CONTROL IMMEDIATELY" msgstr "TOME EL CONTROL INMEDIATAMENTE" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 msgid "TEMP" msgstr "TEMP" @@ -884,7 +1358,22 @@ msgstr "" msgid "Tethering Password" msgstr "" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"El sistema de monitoreo del conductor se puede activar/desactivar, pero se " +"recomienda mantenerlo activado de forma continua." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" + +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "Interruptores" @@ -893,11 +1382,16 @@ msgstr "Interruptores" msgid "UNINSTALL" msgstr "DESINSTALAR" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "ACTUALIZAR" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -918,7 +1412,7 @@ msgstr "Las actualizaciones solo se descargan cuando el coche está apagado." msgid "Upgrade Now" msgstr "Mejorar ahora" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -926,12 +1420,27 @@ msgstr "" "Sube datos de la cámara orientada al conductor y ayuda a mejorar el " "algoritmo de supervisión del conductor." -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "Usar sistema métrico" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." @@ -940,21 +1449,41 @@ msgstr "" "mantenimiento de carril. Tu atención se requiere en todo momento para usar " "esta función." -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "VEHÍCULO" -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "VER" +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:52 #, python-format msgid "Waiting to start" msgstr "Esperando para iniciar" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "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 " @@ -970,12 +1499,17 @@ msgstr "" msgid "Welcome to openpilot" msgstr "Bienvenido a openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "" "Cuando está activado, al presionar el pedal del acelerador se desactivará " "openpilot." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:44 msgid "Wi-Fi" msgstr "Wi‑Fi" @@ -985,7 +1519,7 @@ msgstr "Wi‑Fi" msgid "Wi-Fi Network Metered" msgstr "" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "" @@ -1004,6 +1538,16 @@ msgstr "" "Debes aceptar los Términos y Condiciones para usar openpilot. Lee los " "términos más recientes en https://comma.ai/terms antes de continuar." +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "" + #: selfdrive/ui/onroad/driver_camera_dialog.py:34 #, python-format msgid "camera starting" @@ -1014,12 +1558,25 @@ msgstr "iniciando cámara" msgid "comma prime" msgstr "comma prime" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" + #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "abajo" @@ -1029,7 +1586,7 @@ msgstr "abajo" msgid "failed to check for update" msgstr "Error al buscar actualizaciones" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "" @@ -1039,12 +1596,12 @@ msgstr "" msgid "km/h" msgstr "km/h" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "izquierda" @@ -1069,7 +1626,7 @@ msgstr "nunca" msgid "now" msgstr "ahora" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/developer.py:77 #, python-format msgid "openpilot Longitudinal Control (Alpha)" msgstr "Control longitudinal de openpilot (Alpha)" @@ -1079,7 +1636,7 @@ msgstr "Control longitudinal de openpilot (Alpha)" msgid "openpilot Unavailable" msgstr "openpilot no disponible" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1108,7 +1665,7 @@ msgstr "" "mostrar mejor algunos giros. El logotipo del modo Experimental también se " "mostrará en la esquina superior derecha." -#: selfdrive/ui/layouts/settings/device.py:165 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1130,14 +1687,14 @@ msgstr "" "para mejorar los modelos de conducción de openpilot. Más datos significan " "modelos más grandes, lo que significa un mejor Modo Experimental." -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "" "El control longitudinal de openpilot podría llegar en una actualización " "futura." -#: selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1145,7 +1702,7 @@ msgstr "" "openpilot requiere que el dispositivo esté montado dentro de 4° a izquierda " "o derecha y dentro de 5° hacia arriba o 9° hacia abajo." -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "derecha" @@ -1155,7 +1712,7 @@ msgstr "derecha" msgid "unmetered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "arriba" @@ -1175,7 +1732,7 @@ msgstr "actualizado, última comprobación: {}" msgid "update available" msgstr "actualización disponible" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" @@ -1223,3 +1780,18 @@ msgstr "✓ SUSCRITO" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Modo Firehose 🔥" + +#~ msgid "ERROR" +#~ msgstr "ERROR" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "BUENO" + +#~ msgid "HIGH" +#~ msgstr "ALTO" + +#~ msgid "OFFLINE" +#~ msgstr "SIN CONEXIÓN" diff --git a/selfdrive/ui/translations/app_fr.po b/selfdrive/ui/translations/app_fr.po index f883d4d..04767e8 100644 --- a/selfdrive/ui/translations/app_fr.po +++ b/selfdrive/ui/translations/app_fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:50-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-20 18:19-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,25 +17,90 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr "" -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr "" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:43 msgid "--" msgstr "--" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "" + #: selfdrive/ui/widgets/prime.py:47 #, python-format msgid "1 year of drive storage" @@ -58,7 +123,7 @@ msgstr "3G" msgid "5G" msgstr "5G" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/developer.py:28 msgid "" "WARNING: openpilot longitudinal control is in alpha for this car and will " "disable Automatic Emergency Braking (AEB).

On this car, openpilot " @@ -76,12 +141,12 @@ msgstr "" "est recommandé d'activer le mode expérimental lors de l'activation du " "contrôle longitudinal openpilot alpha." -#: selfdrive/ui/layouts/settings/device.py:148 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "" @@ -91,7 +156,7 @@ msgstr "" msgid "ACTIVE" msgstr "ACTIF" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/developer.py:20 msgid "" "ADB (Android Debug Bridge) allows connecting to your device over USB or over " "the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." @@ -114,12 +179,30 @@ msgstr "" msgid "Acknowledge Excessive Actuation" msgstr "Accuser réception d'actionnement excessif" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" + #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "Agressif" @@ -129,12 +212,34 @@ msgstr "Agressif" msgid "Agree" msgstr "Accepter" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "Surveillance continue du conducteur" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -143,26 +248,61 @@ msgstr "" "Une version alpha du contrôle longitudinal openpilot peut être testée, avec " "le mode expérimental, sur des branches non publiées." -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "Êtes-vous sûr de vouloir éteindre ?" -#: selfdrive/ui/layouts/settings/device.py:175 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "Êtes-vous sûr de vouloir redémarrer ?" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "Êtes-vous sûr de vouloir réinitialiser la calibration ?" +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:163 #, python-format msgid "Are you sure you want to uninstall?" msgstr "Êtes-vous sûr de vouloir désinstaller ?" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "" + #: system/ui/widgets/network.py:99 selfdrive/ui/layouts/onboarding.py:147 #, python-format msgid "Back" @@ -173,6 +313,13 @@ msgstr "Retour" msgid "Become a comma prime member at connect.comma.ai" msgstr "Devenez membre comma prime sur connect.comma.ai" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" + #: selfdrive/ui/widgets/pairing_dialog.py:130 #, python-format msgid "Bookmark connect.comma.ai to your home screen to use it like an app" @@ -180,7 +327,7 @@ msgstr "" "Ajoutez connect.comma.ai à votre écran d'accueil pour l'utiliser comme une " "application" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "CHANGER" @@ -198,20 +345,28 @@ msgstr "VÉRIFIER" msgid "CHILL MODE ON" msgstr "MODE CHILL ACTIVÉ" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "" + +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "CONNECTER" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "CONNECTER" -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "" @@ -221,12 +376,12 @@ msgstr "" msgid "Cellular Metered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "Changer la langue" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "" @@ -253,6 +408,14 @@ msgstr "Version actuelle" msgid "DOWNLOAD" msgstr "TÉLÉCHARGER" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" + #: selfdrive/ui/layouts/onboarding.py:115 #, python-format msgid "Decline" @@ -263,67 +426,148 @@ msgstr "Refuser" msgid "Decline, uninstall openpilot" msgstr "Refuser, désinstaller openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" + #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "Développeur" -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "Appareil" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "Désengager à l'appui sur l'accélérateur" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "Désengager pour éteindre" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "Désengager pour redémarrer" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "Désengager pour réinitialiser la calibration" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "Afficher la vitesse en km/h au lieu de mph." -#: selfdrive/ui/layouts/settings/device.py:59 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "ID du dongle" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:50 #, python-format msgid "Download" msgstr "Télécharger" -#: selfdrive/ui/layouts/settings/device.py:62 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "Caméra conducteur" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "Personnalité de conduite" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "" + #: system/ui/widgets/network.py:123 system/ui/widgets/network.py:139 #, python-format msgid "EDIT" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "ERREUR" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -333,49 +577,70 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "MODE EXPÉRIMENTAL ACTIVÉ" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 #, python-format msgid "Enable" msgstr "Activer" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/developer.py:45 #, python-format msgid "Enable ADB" msgstr "Activer ADB" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "Activer les alertes de sortie de voie" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "" + #: system/ui/widgets/network.py:129 #, python-format msgid "Enable Roaming" msgstr "Activer openpilot" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/developer.py:54 #, python-format msgid "Enable SSH" msgstr "Activer SSH" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "" + #: system/ui/widgets/network.py:120 #, python-format msgid "Enable Tethering" msgstr "Activer les alertes de sortie de voie" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "" -"Activer la surveillance du conducteur même lorsque openpilot n'est pas " -"engagé." - -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "Activer openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -384,26 +649,31 @@ msgstr "" "Activez l'option de contrôle longitudinal openpilot (alpha) pour autoriser " "le mode expérimental." -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -414,12 +684,12 @@ msgstr "Entrez votre nom d'utilisateur GitHub" msgid "Error" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "Mode expérimental" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -428,20 +698,21 @@ msgstr "" "Le mode expérimental est actuellement indisponible sur cette voiture car " "l'ACC d'origine est utilisé pour le contrôle longitudinal." -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "" + #: selfdrive/ui/widgets/setup.py:44 #, python-format msgid "Finish Setup" msgstr "Terminer la configuration" -#: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Mode Firehose" @@ -490,39 +761,54 @@ msgstr "" "Le logiciel utilisé importe-t-il ? Oui, seul openpilot amont (et certains " "forks) peut être utilisé pour l'entraînement." -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "" +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "BON" +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "Allez sur https://connect.comma.ai sur votre téléphone" -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "ÉLEVÉ" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" msgstr "Réseau" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "" + #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "INACTIF : connectez-vous à un réseau non limité" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -539,11 +825,27 @@ msgstr "" msgid "Install Update" msgstr "Installer la mise à jour" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "Mode débogage joystick" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "CHARGEMENT" @@ -552,16 +854,46 @@ msgstr "CHARGEMENT" msgid "LTE" msgstr "LTE" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "Mode de manœuvre longitudinale" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "MAX" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "" + #: selfdrive/ui/widgets/setup.py:75 #, python-format msgid "" @@ -570,17 +902,22 @@ msgstr "" "Maximisez vos envois de données d'entraînement pour améliorer les modèles de " "conduite d'openpilot." -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "NON" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "Réseau" @@ -599,36 +936,72 @@ msgstr "Aucune clé SSH trouvée pour l'utilisateur '{username}'" msgid "No release notes available." msgstr "Aucune note de version disponible." -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "HORS LIGNE" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "OK" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "EN LIGNE" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "" + #: selfdrive/ui/widgets/setup.py:20 #, python-format msgid "Open" msgstr "Ouvrir" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "ASSOCIER" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" -#: selfdrive/ui/layouts/settings/device.py:62 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "APERÇU" @@ -638,7 +1011,7 @@ msgstr "APERÇU" msgid "PRIME FEATURES:" msgstr "FONCTIONNALITÉS PRIME :" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "Associer l'appareil" @@ -653,7 +1026,7 @@ msgstr "Associer l'appareil" msgid "Pair your device to your comma account" msgstr "Associez votre appareil à votre compte comma" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -667,8 +1040,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "Veuillez vous connecter au Wi‑Fi pour terminer l'association initiale" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "Éteindre" @@ -683,7 +1056,7 @@ msgstr "" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:25 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -701,18 +1074,29 @@ msgstr "Erreur de code QR" msgid "REMOVE" msgstr "SUPPRIMER" -#: selfdrive/ui/layouts/settings/device.py:51 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "RÉINITIALISER" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "CONSULTER" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "Redémarrer" @@ -727,7 +1111,7 @@ msgstr "Redémarrer l'appareil" msgid "Reboot and Update" msgstr "Redémarrer et mettre à jour" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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 " @@ -737,17 +1121,17 @@ msgstr "" "une ligne de voie détectée sans clignotant activé en roulant au-delà de 31 " "mph (50 km/h)." -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "Enregistrer et téléverser la caméra conducteur" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "Enregistrer et téléverser l'audio du microphone" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -755,12 +1139,12 @@ msgstr "" "Enregistrer et stocker l'audio du microphone pendant la conduite. L'audio " "sera inclus dans la vidéo dashcam dans comma connect." -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "Réglementaire" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "Détendu" @@ -780,75 +1164,132 @@ msgstr "Captures à distance" msgid "Request timed out" msgstr "Délai de la requête dépassé" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "Réinitialiser" -#: selfdrive/ui/layouts/settings/device.py:51 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "Réinitialiser la calibration" -#: selfdrive/ui/layouts/settings/device.py:65 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "Consulter le guide d'entraînement" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "Consultez les règles, fonctionnalités et limitations d'openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "SELECT" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/developer.py:59 #, python-format msgid "SSH Keys" msgstr "" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "" +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" + #: system/ui/widgets/option_dialog.py:36 #, python-format msgid "Select" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:91 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "Numéro de série" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "" + #: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format msgid "Snooze Update" msgstr "Reporter la mise à jour" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "Logiciel" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "Standard" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -861,6 +1302,39 @@ msgstr "" "tête. Sur les voitures compatibles, vous pouvez parcourir ces personnalités " "avec le bouton de distance du volant." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -872,8 +1346,8 @@ msgstr "Système non réactif" msgid "TAKE CONTROL IMMEDIATELY" msgstr "REPRENEZ IMMÉDIATEMENT LE CONTRÔLE" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 msgid "TEMP" msgstr "TEMPÉRATURE" @@ -887,7 +1361,22 @@ msgstr "" msgid "Tethering Password" msgstr "" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"Le système de surveillance du conducteur peut être activé/désactivé, mais " +"l'activation à long terme est recommandée" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" + +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "Options" @@ -896,11 +1385,16 @@ msgstr "Options" msgid "UNINSTALL" msgstr "DÉSINSTALLER" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "METTRE À JOUR" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -922,7 +1416,7 @@ msgstr "" msgid "Upgrade Now" msgstr "Mettre à niveau maintenant" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -930,12 +1424,27 @@ msgstr "" "Téléverser les données de la caméra orientée conducteur et aider à améliorer " "l'algorithme de surveillance du conducteur." -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "Utiliser le système métrique" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." @@ -944,21 +1453,41 @@ msgstr "" "voie. Votre attention est requise en permanence pour utiliser cette " "fonctionnalité." -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "VÉHICULE" -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "VOIR" +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:52 #, python-format msgid "Waiting to start" msgstr "En attente de démarrage" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "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 " @@ -974,11 +1503,16 @@ msgstr "" msgid "Welcome to openpilot" msgstr "Bienvenue sur openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "" "Lorsque activé, appuyer sur la pédale d'accélérateur désengagera openpilot." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:44 msgid "Wi-Fi" msgstr "Wi‑Fi" @@ -988,7 +1522,7 @@ msgstr "Wi‑Fi" msgid "Wi-Fi Network Metered" msgstr "" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "" @@ -1007,6 +1541,16 @@ msgstr "" "Vous devez accepter les conditions générales pour utiliser openpilot. Lisez " "les dernières conditions sur https://comma.ai/terms avant de continuer." +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "" + #: selfdrive/ui/onroad/driver_camera_dialog.py:34 #, python-format msgid "camera starting" @@ -1017,12 +1561,25 @@ msgstr "démarrage de la caméra" msgid "comma prime" msgstr "comma prime" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" + #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "" @@ -1032,7 +1589,7 @@ msgstr "" msgid "failed to check for update" msgstr "échec de la vérification de mise à jour" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "" @@ -1042,12 +1599,12 @@ msgstr "" msgid "km/h" msgstr "km/h" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "" @@ -1072,7 +1629,7 @@ msgstr "jamais" msgid "now" msgstr "maintenant" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/developer.py:77 #, python-format msgid "openpilot Longitudinal Control (Alpha)" msgstr "Contrôle longitudinal openpilot (Alpha)" @@ -1082,7 +1639,7 @@ msgstr "Contrôle longitudinal openpilot (Alpha)" msgid "openpilot Unavailable" msgstr "openpilot indisponible" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1110,7 +1667,7 @@ msgstr "" "pour mieux montrer certains virages. Le logo du mode expérimental sera " "également affiché en haut à droite." -#: selfdrive/ui/layouts/settings/device.py:165 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1135,14 +1692,14 @@ msgstr "" "données signifie des modèles plus grands, ce qui signifie un meilleur Mode " "expérimental." -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "" "Le contrôle longitudinal openpilot pourra arriver dans une future mise à " "jour." -#: selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1150,7 +1707,7 @@ msgstr "" "openpilot exige que l'appareil soit monté à moins de 4° à gauche ou à droite " "et à moins de 5° vers le haut ou 9° vers le bas." -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "" @@ -1160,7 +1717,7 @@ msgstr "" msgid "unmetered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "" @@ -1180,7 +1737,7 @@ msgstr "à jour, dernière vérification {}" msgid "update available" msgstr "mise à jour disponible" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" @@ -1228,3 +1785,18 @@ msgstr "✓ ABONNÉ" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Mode Firehose 🔥" + +#~ msgid "ERROR" +#~ msgstr "ERREUR" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "BON" + +#~ msgid "HIGH" +#~ msgstr "ÉLEVÉ" + +#~ msgid "OFFLINE" +#~ msgstr "HORS LIGNE" diff --git a/selfdrive/ui/translations/app_ja.po b/selfdrive/ui/translations/app_ja.po index d2037d0..2fd7741 100644 --- a/selfdrive/ui/translations/app_ja.po +++ b/selfdrive/ui/translations/app_ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-04 20:27+0800\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-22 16:32-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,17 +17,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " ステアリングトルク応答のキャリブレーションが完了しました。" -#: selfdrive/ui/layouts/settings/device.py:170 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " ステアリングトルク応答のキャリブレーションは{}%完了しました。" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " デバイスは{:.1f}°{}、{:.1f}°{}の向きです。" @@ -43,10 +43,12 @@ msgid " mins" msgstr " 分" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format msgid " mph" msgstr " mph" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format msgid " sec" msgstr " 秒" @@ -138,12 +140,12 @@ msgstr "" "実験モードの有効化を推奨します。この設定を変更すると、車が起動中の場合は" "openpilotが再起動します。" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

ステアリング遅延のキャリブレーションが完了しました。" -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

ステアリング遅延のキャリブレーションは{}%完了しました。" @@ -176,7 +178,7 @@ msgstr "APN設定" msgid "Acknowledge Excessive Actuation" msgstr "過度な作動を承認" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 #, python-format msgid "" "Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " @@ -185,12 +187,12 @@ msgstr "" "アダプティブコースティングモード(ACM)は、適切な場合にブレーキを減らしてス" "ムーズな惰性走行を可能にします。" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 #, python-format msgid "Adaptive Experimental Mode (AEM)" msgstr "アダプティブ実験モード(AEM)" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 #, python-format msgid "" "Adaptive mode switcher between ACC and Blended based on driving context." @@ -202,7 +204,7 @@ msgstr "" msgid "Advanced" msgstr "詳細設定" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "アグレッシブ" @@ -212,6 +214,7 @@ msgstr "アグレッシブ" msgid "Agree" msgstr "同意する" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #, python-format msgid "All" @@ -224,19 +227,21 @@ msgid "" msgstr "右ハンドルの場合、openpilotに右側通行の規則に従わせます。" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format msgid "Allows openpilot to always steer to keep the car in its lane." msgstr "openpilotが常に操舵して車線内に車両を維持できるようにします。" -#: selfdrive/ui/layouts/settings/toggles.py:73 +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "常時ドライバーモニタリング" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format msgid "Always-on Lane Keeping Assist (ALKA)" msgstr "常時車線維持支援(ALKA)" -#: selfdrive/ui/layouts/settings/toggles.py:207 +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -245,12 +250,17 @@ msgstr "" "openpilotの縦制御アルファ版は、実験モードと併せて非リリースブランチでテストで" "きます。" -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "本当に電源をオフにしますか?" -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "本当に再起動しますか?" @@ -260,12 +270,12 @@ msgstr "本当に再起動しますか?" msgid "Are you sure you want to reset ALL DP SETTINGS to default?" msgstr "本当にすべてのDP設定をデフォルトにリセットしますか?" -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "本当にキャリブレーションをリセットしますか?" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "Are you sure you want to switch?" msgstr "本当に切り替えますか?" @@ -281,6 +291,7 @@ msgid "Audible Alert" msgstr "可聴アラート" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format msgid "Auto Lane Change after:" msgstr "自動レーンチェンジのタイミング:" @@ -290,6 +301,7 @@ msgid "Auto Shutdown After" msgstr "自動シャットダウンのタイミング" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format msgid "Avoid EPS Lockout" msgstr "EPSロックアウトを回避" @@ -317,7 +329,7 @@ msgstr "" msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "connect.comma.aiをホーム画面に追加してアプリのように使いましょう" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "変更" @@ -335,14 +347,12 @@ msgstr "確認" msgid "CHILL MODE ON" msgstr "チルモードON" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "CONFIRM" msgstr "確認" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:135 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:139 +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "接続" @@ -352,8 +362,13 @@ msgstr "接続" msgid "CONNECTING..." msgstr "接続中..." -#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/confirm_dialog.py:23 -#: system/ui/widgets/network.py:326 system/ui/widgets/keyboard.py:81 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "CPU" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "キャンセル" @@ -363,12 +378,12 @@ msgstr "キャンセル" msgid "Cellular Metered" msgstr "従量課金の携帯回線" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "言語を変更" -#: selfdrive/ui/layouts/settings/toggles.py:146 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "車が起動中の場合、この設定を変更するとopenpilotが再起動します。" @@ -393,7 +408,7 @@ msgstr "現在のバージョン" msgid "DOWNLOAD" msgstr "ダウンロード" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 #, python-format msgid "" "DTSC automatically adjusts the vehicle's predicted speed based on upcoming " @@ -429,11 +444,11 @@ msgstr "" "せます。
これにより、ドライブの最初の瞬間が記録されるのを防ぎ、旅行開始時" "の位置情報のプライバシーを保護します。" -#: selfdrive/ui/layouts/settings/settings.py:69 +#: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "開発者" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "デバイス" @@ -456,40 +471,40 @@ msgstr "" msgid "Disable Driver Monitoring" msgstr "ドライバー監視を無効化" -#: selfdrive/ui/layouts/settings/toggles.py:97 +#: selfdrive/ui/layouts/settings/toggles.py:104 #, python-format msgid "Disable Logging" msgstr "ロギングを無効化" -#: selfdrive/ui/layouts/settings/toggles.py:103 +#: selfdrive/ui/layouts/settings/toggles.py:110 #, python-format msgid "Disable Updates" msgstr "更新を無効化" -#: selfdrive/ui/layouts/settings/toggles.py:35 +#: selfdrive/ui/layouts/settings/toggles.py:42 msgid "Disable logging service" msgstr "ロギングサービスを無効化" -#: selfdrive/ui/layouts/settings/toggles.py:36 +#: selfdrive/ui/layouts/settings/toggles.py:43 msgid "Disable update service" msgstr "更新サービスを無効化" -#: selfdrive/ui/layouts/settings/toggles.py:61 +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "アクセルで解除" -#: selfdrive/ui/layouts/settings/device.py:196 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "解除して電源オフ" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "解除して再起動" -#: selfdrive/ui/layouts/settings/device.py:115 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "解除してキャリブレーションをリセット" @@ -504,7 +519,7 @@ msgstr "先行車統計を表示" msgid "Display Mode" msgstr "表示モード" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "速度をmphではなくkm/hで表示します。" @@ -519,12 +534,18 @@ msgstr "" "のみ
レーダー:レーダー追跡点の統計のみ
すべて:先行車とレーダーの統計" "
注意:レーダーオプションは特定の車種でのみ機能します。" -#: selfdrive/ui/layouts/settings/device.py:71 +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "注意散漫検知レベル" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "ドングルID" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format msgid "Door Auto Lock/Unlock" msgstr "ドア自動ロック/アンロック" @@ -533,17 +554,21 @@ msgstr "ドア自動ロック/アンロック" msgid "Download" msgstr "ダウンロード" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "ドライバーカメラ" -#: selfdrive/ui/layouts/settings/toggles.py:111 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "走行性格" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 #, python-format msgid "Dynamic Turn Speed Control (DTSC)" msgstr "動的カーブ速度制御(DTSC)" @@ -553,10 +578,6 @@ msgstr "動的カーブ速度制御(DTSC)" msgid "EDIT" msgstr "編集" -#: selfdrive/ui/layouts/sidebar.py:139 -msgid "ERROR" -msgstr "エラー" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -566,8 +587,8 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "実験モードON" +#: selfdrive/ui/layouts/settings/toggles.py:279 #: selfdrive/ui/layouts/settings/developer.py:173 -#: selfdrive/ui/layouts/settings/toggles.py:249 #, python-format msgid "Enable" msgstr "有効化" @@ -577,7 +598,7 @@ msgstr "有効化" msgid "Enable ADB" msgstr "ADBを有効化" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 #, python-format msgid "Enable Adaptive Coasting Mode (ACM)" msgstr "アダプティブコースティングモード(ACM)を有効化" @@ -587,7 +608,7 @@ msgstr "アダプティブコースティングモード(ACM)を有効化" msgid "Enable Beep (Warning)" msgstr "ビープ音(警告)を有効化" -#: selfdrive/ui/layouts/settings/toggles.py:67 +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "車線逸脱警報を有効化" @@ -608,6 +629,7 @@ msgid "Enable SSH" msgstr "SSHを有効化" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format msgid "Enable TSS1 SnG Mod" msgstr "TSS1 SnG Modを有効化" @@ -616,16 +638,13 @@ msgstr "TSS1 SnG Modを有効化" msgid "Enable Tethering" msgstr "テザリングを有効化" -#: selfdrive/ui/layouts/settings/toggles.py:31 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "openpilotが未作動でもドライバーモニタリングを有効にします。" - -#: selfdrive/ui/layouts/settings/toggles.py:49 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "openpilotを有効化" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format msgid "" "Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " "shifting to Park." @@ -633,7 +652,7 @@ msgstr "" "openpilotが20 km/h以上でドアを自動ロックし、パーキングにシフトしたときに自動" "アンロックできるようにします。" -#: selfdrive/ui/layouts/settings/toggles.py:210 +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -661,6 +680,11 @@ msgstr "新しいテザリングのパスワードを入力" msgid "Enter password" msgstr "パスワードを入力" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -671,12 +695,12 @@ msgstr "GitHubユーザー名を入力" msgid "Error" msgstr "エラー" -#: selfdrive/ui/layouts/settings/toggles.py:55 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "実験モード" -#: selfdrive/ui/layouts/settings/toggles.py:202 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -699,10 +723,6 @@ msgstr "ファイル" msgid "Finish Setup" msgstr "セットアップを完了" -#: selfdrive/ui/layouts/settings/settings.py:68 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Firehoseモード" @@ -750,7 +770,7 @@ msgstr "" "どのソフトウェアを使うかは重要ですか? はい。学習に使えるのは上流のopenpilot" "(および特定のフォーク)のみです。" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "" "Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" @@ -768,17 +788,13 @@ msgstr "削除" msgid "Forget Wi-Fi Network \"{}\"?" msgstr "Wi‑Fiネットワーク「{}」を削除しますか?" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 -msgid "GOOD" -msgstr "良好" - -#: selfdrive/ui/layouts/settings/device.py:65 -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Offroad" msgstr "オフロードへ" -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Onroad" msgstr "オンロードへ" @@ -788,10 +804,6 @@ msgstr "オンロードへ" msgid "Go to https://connect.comma.ai on your phone" msgstr "スマートフォンで https://connect.comma.ai にアクセス" -#: selfdrive/ui/layouts/sidebar.py:130 -msgid "HIGH" -msgstr "高温" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" @@ -807,6 +819,7 @@ msgstr "HUDを隠す速度:" msgid "INACTIVE: connect to an unmetered network" msgstr "非アクティブ:非従量のネットワークに接続してください" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -823,11 +836,27 @@ msgstr "IPアドレス" msgid "Install Update" msgstr "アップデートをインストール" +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "ジョイスティックデバッグモード" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "読み込み中" @@ -837,20 +866,42 @@ msgid "LTE" msgstr "LTE" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format msgid "Lane Change Assist At:" msgstr "レーンチェンジ支援の速度:" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "緩やか" + #: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "縦制御マヌーバーモード" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "最大" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format msgid "MQB A0 SnG Mod" msgstr "MQB A0 SnG Mod" @@ -861,17 +912,22 @@ msgid "" msgstr "" "学習データのアップロードを最大化してopenpilotの運転モデルを改善しましょう。" -#: selfdrive/ui/layouts/settings/device.py:71 -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "適度" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "該当なし" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "いいえ" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "ネットワーク" @@ -890,24 +946,30 @@ msgstr "ユーザー'{}'のSSH鍵が見つかりません" msgid "No release notes available." msgstr "リリースノートはありません。" -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:135 -msgid "OFFLINE" -msgstr "オフライン" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:128 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "OK" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "オンライン" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 @@ -916,14 +978,16 @@ msgid "Off" msgstr "オフ" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format msgid "Off = Disable Auto Lane Change." msgstr "オフ = 自動レーンチェンジを無効化" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format msgid "Off = Disable LCA.
1 mph = 1.2 km/h." msgstr "オフ = LCAを無効化
1 mph = 1.2 km/h" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "On/Off Road" msgstr "オン/オフロード" @@ -933,20 +997,21 @@ msgstr "オン/オフロード" msgid "Open" msgstr "開く" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "ペアリング" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format msgid "PQ Steering Patch" msgstr "PQステアリングパッチ" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "プレビュー" @@ -956,7 +1021,7 @@ msgstr "プレビュー" msgid "PRIME FEATURES:" msgstr "prime の特典:" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "デバイスをペアリング" @@ -971,7 +1036,7 @@ msgstr "デバイスをペアリング" msgid "Pair your device to your comma account" msgstr "デバイスをあなたの comma アカウントにペアリング" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -985,8 +1050,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "初回ペアリングを完了するにはWi‑Fiに接続してください" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "電源オフ" @@ -1001,7 +1066,7 @@ msgstr "従量課金のWi‑Fi接続時は大きなデータのアップロー msgid "Prevent large data uploads when on a metered cellular connection" msgstr "従量課金の携帯回線接続時は大きなデータのアップロードを抑制" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -1019,23 +1084,28 @@ msgid "REMOVE" msgstr "削除" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "リセット" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "確認" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 #, python-format msgid "Rainbow Driving Path like Tesla" msgstr "テスラのような虹色の運転経路" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "再起動" @@ -1059,17 +1129,17 @@ msgstr "" "時速31mph(50km/h)を超えて走行中にウインカーを出さず検出された車線を外れた場" "合、車線内に戻るよう警告を受け取ります。" -#: selfdrive/ui/layouts/settings/toggles.py:79 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "ドライバーカメラを記録してアップロード" -#: selfdrive/ui/layouts/settings/toggles.py:85 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "マイク音声を記録してアップロード" -#: selfdrive/ui/layouts/settings/toggles.py:34 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -1077,12 +1147,12 @@ msgstr "" "走行中にマイク音声を記録・保存します。音声は comma connect のドライブレコー" "ダー動画に含まれます。" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "規制情報" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "リラックス" @@ -1103,12 +1173,12 @@ msgid "Request timed out" msgstr "リクエストがタイムアウトしました" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "リセット" -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "キャリブレーションをリセット" @@ -1123,12 +1193,12 @@ msgstr "DP設定をリセット" msgid "Reset dragonpilot settings to default and restart the device." msgstr "dragonpilotの設定をデフォルトにリセットし、デバイスを再起動します。" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "トレーニングガイドを確認" -#: selfdrive/ui/layouts/settings/device.py:29 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "openpilotのルール、機能、制限を確認" @@ -1137,8 +1207,8 @@ msgstr "openpilotのルール、機能、制限を確認" msgid "Road Edge Detection (RED)" msgstr "路肩検出(RED)" +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 -#: selfdrive/ui/layouts/settings/device.py:45 #, python-format msgid "SELECT" msgstr "選択" @@ -1153,6 +1223,11 @@ msgstr "SSH鍵" msgid "Scanning Wi-Fi networks..." msgstr "Wi‑Fiネットワークを検索中..." +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 #, python-format msgid "" @@ -1167,26 +1242,43 @@ msgstr "" msgid "Select" msgstr "選択" -#: selfdrive/ui/layouts/settings/device.py:256 +#: selfdrive/ui/layouts/settings/device.py:274 #, python-format -msgid "Select a Vehicle" -msgstr "車両を選択" +msgid "Select a Make" +msgstr "メーカーを選択" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "モデルを選択" #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "ブランチを選択" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "言語を選択" -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "シリアル" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" +"ドライバーの注意力散漫検出の感度を設定します。厳格:非常に敏感で、わずかな注" +"意力散漫にも警告します。中程度:感度と誤検出のバランスが取れています。緩和:" +"明らかな注意力散漫のみに警告します。オフ:ドライバーの注意力散漫検出と制御を" +"無効にします。" + #: selfdrive/ui/layouts/settings/developer.py:91 #, python-format msgid "Show" @@ -1202,11 +1294,11 @@ msgstr "最後のエラーを表示" msgid "Snooze Update" msgstr "更新を後で通知" -#: selfdrive/ui/layouts/settings/settings.py:67 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "ソフトウェア" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "スタンダード" @@ -1222,6 +1314,12 @@ msgstr "" "リラックスでは前走車との距離を保ちます。対応車種ではステアリングの車間ボタン" "でこれらの性格を切り替えられます。" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 #, python-format msgid "" @@ -1242,6 +1340,18 @@ msgstr "" "標準:純正の動作
警告:警告がある場合にのみ音を発します。
オフ:音を一" "切発しません。" +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "厳格" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -1251,7 +1361,7 @@ msgstr "システムが応答しません" #: selfdrive/ui/onroad/alert_renderer.py:58 #, python-format msgid "TAKE CONTROL IMMEDIATELY" -msgstr "" +msgstr "直ちに制御を引き継いでください" #: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 #: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 @@ -1268,6 +1378,14 @@ msgstr "対象ブランチ" msgid "Tethering Password" msgstr "テザリングのパスワード" +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"ドライバーモニタリングシステムはON/OFFで切り替えることができますが、長期的な" +"使用を推奨します。" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 #, python-format msgid "" @@ -1277,7 +1395,7 @@ msgstr "" "画面の焼き付きを防ぐため、車が動いているときに速度、最高速度、ステアリング/DM" "アイコンを非表示にします。
オフ = 純正の動作
1 km/h = 0.6 mph" -#: selfdrive/ui/layouts/settings/settings.py:66 +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "トグル" @@ -1302,7 +1420,7 @@ msgstr "自己責任で使用してください。" msgid "Uninstall" msgstr "アンインストール" -#: selfdrive/ui/layouts/sidebar.py:118 +#: selfdrive/ui/layouts/sidebar.py:117 msgid "Unknown" msgstr "不明" @@ -1316,7 +1434,7 @@ msgstr "アップデートは車両の電源が切れている間のみダウン msgid "Upgrade Now" msgstr "今すぐアップグレード" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -1334,12 +1452,13 @@ msgstr "可聴アラートにブザーを使用します。" msgid "Use External Radar" msgstr "外部レーダーを使用" -#: selfdrive/ui/layouts/settings/toggles.py:91 +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "メートル法を使用" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format msgid "Use Stock Longitudinal Control" msgstr "純正の縦方向制御を使用" @@ -1351,26 +1470,26 @@ msgstr "" "ACCと車線維持支援にopenpilotを使用します。本機能の使用中は常に注意が必要で" "す。" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "車両" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "表示" -#: selfdrive/ui/layouts/settings/device.py:45 +#: selfdrive/ui/layouts/settings/device.py:48 #, python-format msgid "Vehicle Model" msgstr "車両モデル" -#: selfdrive/ui/layouts/settings/device.py:236 +#: selfdrive/ui/layouts/settings/device.py:245 #, python-format msgid "Vehicle Model list is not a valid format." msgstr "車両モデルリストの形式が正しくありません。" -#: selfdrive/ui/layouts/settings/device.py:230 +#: selfdrive/ui/layouts/settings/device.py:239 #, python-format msgid "Vehicle Model list not found." msgstr "車両モデルリストが見つかりません。" @@ -1380,6 +1499,11 @@ msgstr "車両モデルリストが見つかりません。" msgid "Waiting to start" msgstr "開始待機中" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "Warning: This grants SSH access to all public keys in your GitHub settings. " @@ -1432,8 +1556,12 @@ msgstr "" "openpilotを使用するには利用規約に同意する必要があります。続行する前に " "https://comma.ai/terms の最新の規約をお読みください。" -#: selfdrive/ui/layouts/settings/device.py:46 -#: selfdrive/ui/layouts/settings/device.py:225 +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 #, python-format msgid "[AUTO DETECT]" msgstr "[自動検出]" @@ -1470,7 +1598,7 @@ msgstr "" msgid "default" msgstr "既定" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "下" @@ -1483,7 +1611,7 @@ msgstr "アップデートの確認に失敗しました" #: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" -msgstr "" +msgstr "「{}」に対して" #: selfdrive/ui/onroad/hud_renderer.py:177 #, python-format @@ -1495,7 +1623,7 @@ msgstr "km/h" msgid "leave blank for automatic configuration" msgstr "自動設定の場合は空欄のままにしてください" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "左" @@ -1530,7 +1658,7 @@ msgstr "openpilot 縦制御(アルファ)" msgid "openpilot Unavailable" msgstr "openpilotは利用できません" -#: selfdrive/ui/layouts/settings/toggles.py:179 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1555,7 +1683,7 @@ msgstr "" "り、一部の曲がりをより良く表示します。画面右上には実験モードのロゴも表示され" "ます。" -#: selfdrive/ui/layouts/settings/device.py:177 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1579,12 +1707,12 @@ msgstr "" "デルを改善できます。データが増えるほどモデルが大きくなり、実験モードがより良" "くなります。" -#: selfdrive/ui/layouts/settings/toggles.py:204 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "openpilotの縦制御は将来のアップデートで提供される可能性があります。" -#: selfdrive/ui/layouts/settings/device.py:28 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1592,7 +1720,7 @@ msgstr "" "openpilotでは、デバイスの取り付け角度が左右±4°、上方向5°以内、下方向9°以内で" "ある必要があります。" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "右" @@ -1602,7 +1730,7 @@ msgstr "右" msgid "unmetered" msgstr "非従量" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "上" @@ -1626,31 +1754,33 @@ msgstr "更新があります" #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" -msgstr[0] "" +msgstr[0] "{} 件のアラート" #: selfdrive/ui/layouts/settings/software.py:40 #, python-format msgid "{} day ago" msgid_plural "{} days ago" -msgstr[0] "" +msgstr[0] "{} 日前" #: selfdrive/ui/layouts/settings/software.py:37 #, python-format msgid "{} hour ago" msgid_plural "{} hours ago" -msgstr[0] "" +msgstr[0] "{} 時間前" #: selfdrive/ui/layouts/settings/software.py:34 #, python-format msgid "{} minute ago" msgid_plural "{} minutes ago" -msgstr[0] "" +msgstr[0] "{} 分前" #: selfdrive/ui/layouts/settings/firehose.py:111 #, python-format msgid "{} segment of your driving is in the training dataset so far." msgid_plural "{} segments of your driving is in the training dataset so far." msgstr[0] "" +"これまでのあなたの運転の{}セグメントがトレーニングデータセットに含まれていま" +"す。" #: selfdrive/ui/widgets/prime.py:62 #, python-format @@ -1662,6 +1792,25 @@ msgstr "✓ 登録済み" msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Firehoseモード 🔥" +#~ msgid "ERROR" +#~ msgstr "エラー" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "良好" + +#~ msgid "HIGH" +#~ msgstr "高温" + +#~ msgid "OFFLINE" +#~ msgstr "オフライン" + +#, python-format +#~ msgid "Select a Vehicle" +#~ msgstr "車両を選択" + #, python-format #~ msgid "TAKE CONTROL IMMEDIATENLY" #~ msgstr "すぐに手動介入してください" diff --git a/selfdrive/ui/translations/app_ko.po b/selfdrive/ui/translations/app_ko.po index 9b0f750..023bacb 100644 --- a/selfdrive/ui/translations/app_ko.po +++ b/selfdrive/ui/translations/app_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-04 20:27+0800\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-22 16:32-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,17 +17,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " 스티어링 토크 응답 보정이 완료되었습니다." -#: selfdrive/ui/layouts/settings/device.py:170 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " 스티어링 토크 응답 보정이 {}% 완료되었습니다." -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " 장치는 {:.1f}° {} 및 {:.1f}° {} 방향을 가리키고 있습니다." @@ -43,10 +43,12 @@ msgid " mins" msgstr " 분" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format msgid " mph" msgstr " mph" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format msgid " sec" msgstr " 초" @@ -137,12 +139,12 @@ msgstr "" "설정을 켜세요。 종방향 제어 알파를 켤 때는 실험 모드 사용을 권장합니다。 차" "량 전원이 켜져 있는 경우 이 설정을 변경하면 openpilot이 재시작됩니다。" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

스티어링 지연 보정이 완료되었습니다。" -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

스티어링 지연 보정이 {}% 완료되었습니다。" @@ -175,7 +177,7 @@ msgstr "APN 설정" msgid "Acknowledge Excessive Actuation" msgstr "과도한 작동을 확인" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 #, python-format msgid "" "Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " @@ -184,12 +186,12 @@ msgstr "" "적응형 코스팅 모드(ACM)는 적절할 때 제동을 줄여 더 부드러운 주행을 가능하게 " "합니다。" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 #, python-format msgid "Adaptive Experimental Mode (AEM)" msgstr "적응형 실험 모드(AEM)" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 #, python-format msgid "" "Adaptive mode switcher between ACC and Blended based on driving context." @@ -200,7 +202,7 @@ msgstr "주행 상황에 따라 ACC와 블렌디드 모드를 전환하는 적 msgid "Advanced" msgstr "고급" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "공격적" @@ -210,6 +212,7 @@ msgstr "공격적" msgid "Agree" msgstr "동의" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #, python-format msgid "All" @@ -222,19 +225,21 @@ msgid "" msgstr "우측 운전석에서 openpilot이 우측 통행 규칙을 따르도록 허용합니다。" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format msgid "Allows openpilot to always steer to keep the car in its lane." msgstr "openpilot이 항상 차선 내에서 차량을 유지하도록 조향할 수 있게 합니다。" -#: selfdrive/ui/layouts/settings/toggles.py:73 +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "항상 켜짐 운전자 모니터링" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format msgid "Always-on Lane Keeping Assist (ALKA)" msgstr "상시 차선 유지 보조 (ALKA)" -#: selfdrive/ui/layouts/settings/toggles.py:207 +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -243,12 +248,17 @@ msgstr "" "openpilot 종방향 제어 알파 버전은 실험 모드와 함께 비릴리스 브랜치에서 테스트" "할 수 있습니다。" -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "정말 전원을 끄시겠습니까?" -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "정말 재시작하시겠습니까?" @@ -258,12 +268,12 @@ msgstr "정말 재시작하시겠습니까?" msgid "Are you sure you want to reset ALL DP SETTINGS to default?" msgstr "모든 DP 설정을 기본값으로 재설정하시겠습니까?" -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "정말 보정을 재설정하시겠습니까?" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "Are you sure you want to switch?" msgstr "전환하시겠습니까?" @@ -279,6 +289,7 @@ msgid "Audible Alert" msgstr "경고음" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format msgid "Auto Lane Change after:" msgstr "자동 차선 변경 시간:" @@ -288,6 +299,7 @@ msgid "Auto Shutdown After" msgstr "자동 종료 시간" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format msgid "Avoid EPS Lockout" msgstr "EPS 잠김 방지" @@ -315,7 +327,7 @@ msgstr "" msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "connect.comma.ai를 홈 화면에 추가하여 앱처럼 사용하세요" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "변경" @@ -333,14 +345,12 @@ msgstr "확인" msgid "CHILL MODE ON" msgstr "칠 모드 켜짐" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "CONFIRM" msgstr "확인" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:135 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:139 +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "연결" @@ -350,8 +360,13 @@ msgstr "연결" msgid "CONNECTING..." msgstr "연결 중..." -#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/confirm_dialog.py:23 -#: system/ui/widgets/network.py:326 system/ui/widgets/keyboard.py:81 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "취소" @@ -361,12 +376,12 @@ msgstr "취소" msgid "Cellular Metered" msgstr "종량제 셀룰러" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "언어 변경" -#: selfdrive/ui/layouts/settings/toggles.py:146 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "차량 전원이 켜져 있으면 이 설정을 변경할 때 openpilot이 재시작됩니다。" @@ -391,7 +406,7 @@ msgstr "현재 버전" msgid "DOWNLOAD" msgstr "다운로드" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 #, python-format msgid "" "DTSC automatically adjusts the vehicle's predicted speed based on upcoming " @@ -427,11 +442,11 @@ msgstr "" "이를 통해 주행 초기 순간이 기록되는 것을 방지하여 여행 시작 시 위치 개인 정보" "를 보호합니다。" -#: selfdrive/ui/layouts/settings/settings.py:69 +#: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "개발자" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "장치" @@ -454,40 +469,40 @@ msgstr "" msgid "Disable Driver Monitoring" msgstr "운전자 모니터링 비활성화" -#: selfdrive/ui/layouts/settings/toggles.py:97 +#: selfdrive/ui/layouts/settings/toggles.py:104 #, python-format msgid "Disable Logging" msgstr "로깅 비활성화" -#: selfdrive/ui/layouts/settings/toggles.py:103 +#: selfdrive/ui/layouts/settings/toggles.py:110 #, python-format msgid "Disable Updates" msgstr "업데이트 비활성화" -#: selfdrive/ui/layouts/settings/toggles.py:35 +#: selfdrive/ui/layouts/settings/toggles.py:42 msgid "Disable logging service" msgstr "로깅 서비스 비활성화" -#: selfdrive/ui/layouts/settings/toggles.py:36 +#: selfdrive/ui/layouts/settings/toggles.py:43 msgid "Disable update service" msgstr "업데이트 서비스 비활성화" -#: selfdrive/ui/layouts/settings/toggles.py:61 +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "가속 페달로 해제" -#: selfdrive/ui/layouts/settings/device.py:196 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "해제 후 전원 끄기" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "해제 후 재시작" -#: selfdrive/ui/layouts/settings/device.py:115 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "해제 후 보정 재설정" @@ -502,7 +517,7 @@ msgstr "선행 차량 통계 표시" msgid "Display Mode" msgstr "디스플레이 모드" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "속도를 mph 대신 km/h로 표시합니다。" @@ -517,12 +532,18 @@ msgstr "" "량 통계만
레이더: 레이더 추적 지점 통계만
모두: 선행 차량 및 레이더 통" "계
참고: 레이더 옵션은 특정 차량 모델에서만 작동합니다。" -#: selfdrive/ui/layouts/settings/device.py:71 +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "동글 ID" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format msgid "Door Auto Lock/Unlock" msgstr "자동 도어 잠금/해제" @@ -531,17 +552,21 @@ msgstr "자동 도어 잠금/해제" msgid "Download" msgstr "다운로드" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "운전자 카메라" -#: selfdrive/ui/layouts/settings/toggles.py:111 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "주행 성향" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 #, python-format msgid "Dynamic Turn Speed Control (DTSC)" msgstr "동적 회전 속도 제어(DTSC)" @@ -551,10 +576,6 @@ msgstr "동적 회전 속도 제어(DTSC)" msgid "EDIT" msgstr "편집" -#: selfdrive/ui/layouts/sidebar.py:139 -msgid "ERROR" -msgstr "오류" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -564,8 +585,8 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "실험 모드 켜짐" +#: selfdrive/ui/layouts/settings/toggles.py:279 #: selfdrive/ui/layouts/settings/developer.py:173 -#: selfdrive/ui/layouts/settings/toggles.py:249 #, python-format msgid "Enable" msgstr "사용" @@ -575,7 +596,7 @@ msgstr "사용" msgid "Enable ADB" msgstr "ADB 사용" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 #, python-format msgid "Enable Adaptive Coasting Mode (ACM)" msgstr "적응형 코스팅 모드(ACM) 활성화" @@ -585,7 +606,7 @@ msgstr "적응형 코스팅 모드(ACM) 활성화" msgid "Enable Beep (Warning)" msgstr "경고음 활성화" -#: selfdrive/ui/layouts/settings/toggles.py:67 +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "차선 이탈 경고 사용" @@ -606,6 +627,7 @@ msgid "Enable SSH" msgstr "SSH 사용" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format msgid "Enable TSS1 SnG Mod" msgstr "TSS1 SnG Mod 활성화" @@ -614,16 +636,13 @@ msgstr "TSS1 SnG Mod 활성화" msgid "Enable Tethering" msgstr "테더링 사용" -#: selfdrive/ui/layouts/settings/toggles.py:31 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "openpilot이 작동 중이 아닐 때도 운전자 모니터링을 사용합니다。" - -#: selfdrive/ui/layouts/settings/toggles.py:49 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "openpilot 사용" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format msgid "" "Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " "shifting to Park." @@ -631,7 +650,7 @@ msgstr "" "openpilot이 20km/h 이상에서 자동으로 문을 잠그고 주차로 변속할 때 자동으로 잠" "금 해제하도록 활성화합니다。" -#: selfdrive/ui/layouts/settings/toggles.py:210 +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -658,6 +677,11 @@ msgstr "새 테더링 비밀번호 입력" msgid "Enter password" msgstr "비밀번호 입력" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -668,12 +692,12 @@ msgstr "GitHub 사용자 이름 입력" msgid "Error" msgstr "오류" -#: selfdrive/ui/layouts/settings/toggles.py:55 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "실험 모드" -#: selfdrive/ui/layouts/settings/toggles.py:202 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -697,10 +721,6 @@ msgstr "파일" msgid "Finish Setup" msgstr "설정 완료" -#: selfdrive/ui/layouts/settings/settings.py:68 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Firehose 모드" @@ -748,7 +768,7 @@ msgstr "" "어떤 소프트웨어를 실행하는지가 중요한가요? 예。 학습에는 업스트림 " "openpilot(및 일부 포크)만 사용할 수 있습니다。" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "" "Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" @@ -765,17 +785,13 @@ msgstr "삭제" msgid "Forget Wi-Fi Network \"{}\"?" msgstr "Wi‑Fi 네트워크 \"{}\"를 삭제하시겠습니까?" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 -msgid "GOOD" -msgstr "양호" - -#: selfdrive/ui/layouts/settings/device.py:65 -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Offroad" msgstr "비주행 모드로" -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Onroad" msgstr "주행 모드로" @@ -785,10 +801,6 @@ msgstr "주행 모드로" msgid "Go to https://connect.comma.ai on your phone" msgstr "휴대폰에서 https://connect.comma.ai 에 접속하세요" -#: selfdrive/ui/layouts/sidebar.py:130 -msgid "HIGH" -msgstr "높음" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" @@ -804,6 +816,7 @@ msgstr "다음 속도 이상에서 HUD 숨기기:" msgid "INACTIVE: connect to an unmetered network" msgstr "비활성: 비종량제 네트워크에 연결하세요" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -820,11 +833,27 @@ msgstr "IP 주소" msgid "Install Update" msgstr "업데이트 설치" +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "조이스틱 디버그 모드" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "로딩 중" @@ -834,20 +863,42 @@ msgid "LTE" msgstr "LTE" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format msgid "Lane Change Assist At:" msgstr "차선 변경 보조 속도:" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "종방향 매뉴버 모드" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "최대" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format msgid "MQB A0 SnG Mod" msgstr "MQB A0 SnG Mod" @@ -857,17 +908,22 @@ msgid "" "Maximize your training data uploads to improve openpilot's driving models." msgstr "학습 데이터 업로드를 최대화하여 openpilot의 주행 모델을 개선하세요。" -#: selfdrive/ui/layouts/settings/device.py:71 -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "해당 없음" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "아니오" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "네트워크" @@ -886,24 +942,30 @@ msgstr "사용자 '{}'의 SSH 키를 찾을 수 없습니다" msgid "No release notes available." msgstr "릴리스 노트가 없습니다。" -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:135 -msgid "OFFLINE" -msgstr "오프라인" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:128 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "확인" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "온라인" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 @@ -912,14 +974,16 @@ msgid "Off" msgstr "끄기" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format msgid "Off = Disable Auto Lane Change." msgstr "끄기 = 자동 차선 변경 비활성화" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format msgid "Off = Disable LCA.
1 mph = 1.2 km/h." msgstr "끄기 = LCA 비활성화
1 mph = 1.2 km/h" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "On/Off Road" msgstr "주행/비주행" @@ -929,20 +993,21 @@ msgstr "주행/비주행" msgid "Open" msgstr "열기" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "페어링" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format msgid "PQ Steering Patch" msgstr "PQ 스티어링 패치" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "미리보기" @@ -952,7 +1017,7 @@ msgstr "미리보기" msgid "PRIME FEATURES:" msgstr "prime 기능:" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "장치 페어링" @@ -967,7 +1032,7 @@ msgstr "장치 페어링" msgid "Pair your device to your comma account" msgstr "장치를 귀하의 comma 계정에 페어링하세요" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -981,8 +1046,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "초기 페어링을 완료하려면 Wi‑Fi에 연결하세요" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "전원 끄기" @@ -997,7 +1062,7 @@ msgstr "종량제 Wi‑Fi 연결 시 대용량 업로드 방지" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "종량제 셀룰러 연결 시 대용량 업로드 방지" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -1015,23 +1080,28 @@ msgid "REMOVE" msgstr "제거" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "재설정" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "검토" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 #, python-format msgid "Rainbow Driving Path like Tesla" msgstr "테슬라 같은 무지개 주행 경로" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "재시작" @@ -1055,17 +1125,17 @@ msgstr "" "시속 31mph(50km/h) 이상에서 방향지시등 없이 감지된 차선 밖으로 벗어나면 차선" "으로 복귀하라는 경고를 받습니다。" -#: selfdrive/ui/layouts/settings/toggles.py:79 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "운전자 카메라 기록 및 업로드" -#: selfdrive/ui/layouts/settings/toggles.py:85 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "마이크 오디오 기록 및 업로드" -#: selfdrive/ui/layouts/settings/toggles.py:34 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -1073,12 +1143,12 @@ msgstr "" "주행 중 마이크 오디오를 기록하고 저장합니다。 오디오는 comma connect의 대시" "캠 영상에 포함됩니다。" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "규제 정보" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "편안함" @@ -1099,12 +1169,12 @@ msgid "Request timed out" msgstr "요청 시간이 초과되었습니다" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "재설정" -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "보정 재설정" @@ -1119,12 +1189,12 @@ msgstr "DP 설정 재설정" msgid "Reset dragonpilot settings to default and restart the device." msgstr "dragonpilot 설정을 기본값으로 재설정하고 장치를 다시 시작합니다。" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "학습 가이드 검토" -#: selfdrive/ui/layouts/settings/device.py:29 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "openpilot의 규칙, 기능 및 제한을 검토" @@ -1133,8 +1203,8 @@ msgstr "openpilot의 규칙, 기능 및 제한을 검토" msgid "Road Edge Detection (RED)" msgstr "도로 가장자리 감지(RED)" +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 -#: selfdrive/ui/layouts/settings/device.py:45 #, python-format msgid "SELECT" msgstr "선택" @@ -1149,6 +1219,11 @@ msgstr "SSH 키" msgid "Scanning Wi-Fi networks..." msgstr "Wi‑Fi 네트워크 검색 중..." +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 #, python-format msgid "" @@ -1163,26 +1238,39 @@ msgstr "" msgid "Select" msgstr "선택" -#: selfdrive/ui/layouts/settings/device.py:256 +#: selfdrive/ui/layouts/settings/device.py:274 #, python-format -msgid "Select a Vehicle" -msgstr "차량 선택" +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "브랜치 선택" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "언어 선택" -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "시리얼" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:91 #, python-format msgid "Show" @@ -1198,11 +1286,11 @@ msgstr "마지막 오류 표시" msgid "Snooze Update" msgstr "업데이트 나중에 알림" -#: selfdrive/ui/layouts/settings/settings.py:67 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "소프트웨어" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "표준" @@ -1218,6 +1306,12 @@ msgstr "" "적극적입니다。 편안함 모드에서는 앞차와 거리를 더 둡니다。 지원 차량에서는 스" "티어링의 차간 버튼으로 이 성향들을 전환할 수 있습니다。" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 #, python-format msgid "" @@ -1238,6 +1332,18 @@ msgstr "" "표준: 순정 동작
경고: 경고가 있을 때만 소리를 냅니다。
끄기: 소리를 전" "혀 내지 않습니다。" +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -1264,6 +1370,12 @@ msgstr "대상 브랜치" msgid "Tethering Password" msgstr "테더링 비밀번호" +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "운전자 모니터링 시스템은 켜짐/끄기 가능하지만 장기 가동을 권장합니다" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 #, python-format msgid "" @@ -1273,7 +1385,7 @@ msgstr "" "화면 번인을 방지하려면 차량이 움직일 때 속도, 최고 속도 및 스티어링/DM 아이콘" "을 숨 깁니다。
끄기 = 순정 동작
1 km/h = 0.6 mph" -#: selfdrive/ui/layouts/settings/settings.py:66 +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "토글" @@ -1298,7 +1410,7 @@ msgstr "사용에 따른 모든 책임은 사용자에게 있습니다。" msgid "Uninstall" msgstr "제거" -#: selfdrive/ui/layouts/sidebar.py:118 +#: selfdrive/ui/layouts/sidebar.py:117 msgid "Unknown" msgstr "알 수 없음" @@ -1312,7 +1424,7 @@ msgstr "업데이트는 차량 전원이 꺼져 있을 때만 다운로드됩니 msgid "Upgrade Now" msgstr "지금 업그레이드" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -1330,12 +1442,13 @@ msgstr "경고음에 버저 사용" msgid "Use External Radar" msgstr "외부 레이더 사용" -#: selfdrive/ui/layouts/settings/toggles.py:91 +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "미터법 사용" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format msgid "Use Stock Longitudinal Control" msgstr "순정 종방향 제어 사용" @@ -1347,26 +1460,26 @@ msgstr "" "ACC 및 차선 유지 보조에 openpilot을 사용합니다。 이 기능을 사용할 때는 항상 " "주의가 필요합니다。" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "차량" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "보기" -#: selfdrive/ui/layouts/settings/device.py:45 +#: selfdrive/ui/layouts/settings/device.py:48 #, python-format msgid "Vehicle Model" msgstr "차량 모델" -#: selfdrive/ui/layouts/settings/device.py:236 +#: selfdrive/ui/layouts/settings/device.py:245 #, python-format msgid "Vehicle Model list is not a valid format." msgstr "차량 모델 목록이 올바른 형식이 아닙니다。" -#: selfdrive/ui/layouts/settings/device.py:230 +#: selfdrive/ui/layouts/settings/device.py:239 #, python-format msgid "Vehicle Model list not found." msgstr "차량 모델 목록을 찾을 수 없습니다。" @@ -1376,6 +1489,11 @@ msgstr "차량 모델 목록을 찾을 수 없습니다。" msgid "Waiting to start" msgstr "시작 대기 중" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "Warning: This grants SSH access to all public keys in your GitHub settings. " @@ -1428,8 +1546,12 @@ msgstr "" "openpilot을 사용하려면 약관에 동의해야 합니다。 계속하기 전에 https://comma." "ai/terms 에서 최신 약관을 읽어주세요。" -#: selfdrive/ui/layouts/settings/device.py:46 -#: selfdrive/ui/layouts/settings/device.py:225 +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 #, python-format msgid "[AUTO DETECT]" msgstr "[자동 감지]" @@ -1465,7 +1587,7 @@ msgstr "" msgid "default" msgstr "기본값" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "아래" @@ -1490,7 +1612,7 @@ msgstr "km/h" msgid "leave blank for automatic configuration" msgstr "자동 구성을 사용하려면 비워 두세요" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "왼쪽" @@ -1525,7 +1647,7 @@ msgstr "openpilot 종방향 제어(알파)" msgid "openpilot Unavailable" msgstr "openpilot 사용 불가" -#: selfdrive/ui/layouts/settings/toggles.py:179 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1550,7 +1672,7 @@ msgstr "" "되어 일부 회전을 더 잘 보여줍니다。 화면 오른쪽 위에는 실험 모드 로고도 표시" "됩니다。" -#: selfdrive/ui/layouts/settings/device.py:177 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1573,19 +1695,19 @@ msgstr "" "할 수 있게 해줍니다。 데이터가 많을수록 모델은 커지고, 실험 모드는 더 좋아집" "니다。" -#: selfdrive/ui/layouts/settings/toggles.py:204 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "openpilot 종방향 제어는 향후 업데이트에서 제공될 수 있습니다。" -#: selfdrive/ui/layouts/settings/device.py:28 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." msgstr "" "openpilot은 장치를 좌우 4°, 위쪽 5°, 아래쪽 9° 이내로 장착해야 합니다。" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "오른쪽" @@ -1595,7 +1717,7 @@ msgstr "오른쪽" msgid "unmetered" msgstr "비종량제" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "위" @@ -1655,6 +1777,25 @@ msgstr "✓ 구독됨" msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Firehose 모드 🔥" +#~ msgid "ERROR" +#~ msgstr "오류" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "양호" + +#~ msgid "HIGH" +#~ msgstr "높음" + +#~ msgid "OFFLINE" +#~ msgstr "오프라인" + +#, python-format +#~ msgid "Select a Vehicle" +#~ msgstr "차량 선택" + #, python-format #~ msgid "{0} ALERT" #~ msgid_plural "{0} ALERTS" diff --git a/selfdrive/ui/translations/app_pt-BR.po b/selfdrive/ui/translations/app_pt-BR.po index 8a388d0..619e538 100644 --- a/selfdrive/ui/translations/app_pt-BR.po +++ b/selfdrive/ui/translations/app_pt-BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:50-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-21 00:00-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,25 +17,90 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " A calibração da resposta de torque da direção foi concluída." -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " A calibração da resposta de torque da direção está {}% concluída." -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " Seu dispositivo está apontado {:.1f}° {} e {:.1f}° {}." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:43 msgid "--" msgstr "--" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "" + #: selfdrive/ui/widgets/prime.py:47 #, python-format msgid "1 year of drive storage" @@ -58,7 +123,7 @@ msgstr "3G" msgid "5G" msgstr "5G" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/developer.py:28 msgid "" "WARNING: openpilot longitudinal control is in alpha for this car and will " "disable Automatic Emergency Braking (AEB).

On this car, openpilot " @@ -75,12 +140,12 @@ msgstr "" "longitudinal do openpilot. Recomenda-se ativar o Modo Experimental ao ativar " "o controle longitudinal do openpilot em alpha." -#: selfdrive/ui/layouts/settings/device.py:148 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "" @@ -90,7 +155,7 @@ msgstr "" msgid "ACTIVE" msgstr "ATIVO" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/developer.py:20 msgid "" "ADB (Android Debug Bridge) allows connecting to your device over USB or over " "the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." @@ -113,12 +178,30 @@ msgstr "" msgid "Acknowledge Excessive Actuation" msgstr "Reconhecer Atuação Excessiva" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" + #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "Agressivo" @@ -128,12 +211,34 @@ msgstr "Agressivo" msgid "Agree" msgstr "Concordo" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "Monitoramento de Motorista Sempre Ativo" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -142,26 +247,61 @@ msgstr "" "Uma versão alpha do controle longitudinal do openpilot pode ser testada, " "junto com o Modo Experimental, em ramificações fora de release." -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "Tem certeza de que deseja desligar?" -#: selfdrive/ui/layouts/settings/device.py:175 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "Tem certeza de que deseja reiniciar?" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "Tem certeza de que deseja redefinir a calibração?" +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:163 #, python-format msgid "Are you sure you want to uninstall?" msgstr "Tem certeza de que deseja desinstalar?" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "" + #: system/ui/widgets/network.py:99 selfdrive/ui/layouts/onboarding.py:147 #, python-format msgid "Back" @@ -172,12 +312,19 @@ msgstr "Voltar" msgid "Become a comma prime member at connect.comma.ai" msgstr "Torne-se membro comma prime em connect.comma.ai" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" + #: selfdrive/ui/widgets/pairing_dialog.py:130 #, python-format msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "Adicione connect.comma.ai à tela inicial para usá-lo como um app" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "ALTERAR" @@ -195,20 +342,28 @@ msgstr "VERIFICAR" msgid "CHILL MODE ON" msgstr "MODO CHILL ATIVO" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "" + +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "CONECTAR" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "CONECTAR" -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "" @@ -218,12 +373,12 @@ msgstr "" msgid "Cellular Metered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "Alterar Idioma" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "" @@ -249,6 +404,14 @@ msgstr "Versão Atual" msgid "DOWNLOAD" msgstr "BAIXAR" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" + #: selfdrive/ui/layouts/onboarding.py:115 #, python-format msgid "Decline" @@ -259,67 +422,148 @@ msgstr "Recusar" msgid "Decline, uninstall openpilot" msgstr "Recusar, desinstalar o openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" + #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "Desenvolvedor" -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "Dispositivo" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "Desativar ao pressionar o acelerador" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "Desativar para Desligar" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "Desativar para Reiniciar" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "Desativar para Redefinir Calibração" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "Exibir velocidade em km/h em vez de mph." -#: selfdrive/ui/layouts/settings/device.py:59 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "ID do Dongle" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:50 #, python-format msgid "Download" msgstr "Baixar" -#: selfdrive/ui/layouts/settings/device.py:62 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "Câmera do Motorista" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "Personalidade de Condução" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "" + #: system/ui/widgets/network.py:123 system/ui/widgets/network.py:139 #, python-format msgid "EDIT" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "ERRO" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -329,48 +573,70 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "MODO EXPERIMENTAL ATIVO" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 #, python-format msgid "Enable" msgstr "Ativar" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/developer.py:45 #, python-format msgid "Enable ADB" msgstr "Ativar ADB" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "Ativar alertas de saída de faixa" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "" + #: system/ui/widgets/network.py:129 #, python-format msgid "Enable Roaming" msgstr "Ativar openpilot" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/developer.py:54 #, python-format msgid "Enable SSH" msgstr "Ativar SSH" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "" + #: system/ui/widgets/network.py:120 #, python-format msgid "Enable Tethering" msgstr "Ativar alertas de saída de faixa" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "" -"Ativar monitoramento do motorista mesmo quando o openpilot não está engajado." - -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "Ativar openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -379,26 +645,31 @@ msgstr "" "Ative a opção de controle longitudinal do openpilot (alpha) para permitir o " "Modo Experimental." -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -409,12 +680,12 @@ msgstr "Digite seu nome de usuário do GitHub" msgid "Error" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "Modo Experimental" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -423,20 +694,21 @@ msgstr "" "O Modo Experimental está indisponível neste carro pois o ACC original do " "carro é usado para controle longitudinal." -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "" + #: selfdrive/ui/widgets/setup.py:44 #, python-format msgid "Finish Setup" msgstr "Concluir Configuração" -#: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Modo Firehose" @@ -484,39 +756,54 @@ msgstr "" "Importa qual software eu executo? Sim, apenas o openpilot upstream (e forks " "específicos) podem ser usados para treinamento." -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "" +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "BOM" +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "Acesse https://connect.comma.ai no seu telefone" -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "ALTO" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" msgstr "Rede" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "" + #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "INATIVO: conecte a uma rede sem franquia" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -533,11 +820,27 @@ msgstr "" msgid "Install Update" msgstr "Instalar Atualização" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "Modo de Depuração do Joystick" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "CARREGANDO" @@ -546,16 +849,46 @@ msgstr "CARREGANDO" msgid "LTE" msgstr "LTE" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "Modo de Manobra Longitudinal" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "MÁX" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "" + #: selfdrive/ui/widgets/setup.py:75 #, python-format msgid "" @@ -564,17 +897,22 @@ msgstr "" "Maximize seus envios de dados de treinamento para melhorar os modelos de " "condução do openpilot." -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "NÃO" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "Rede" @@ -593,36 +931,72 @@ msgstr "Nenhuma chave SSH encontrada para o usuário '{username}'" msgid "No release notes available." msgstr "Sem notas de versão disponíveis." -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "OFFLINE" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "OK" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "ONLINE" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "" + #: selfdrive/ui/widgets/setup.py:20 #, python-format msgid "Open" msgstr "Abrir" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "EMPARELHAR" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" -#: selfdrive/ui/layouts/settings/device.py:62 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "PRÉVIA" @@ -632,7 +1006,7 @@ msgstr "PRÉVIA" msgid "PRIME FEATURES:" msgstr "RECURSOS PRIME:" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "Emparelhar Dispositivo" @@ -647,7 +1021,7 @@ msgstr "Emparelhar dispositivo" msgid "Pair your device to your comma account" msgstr "Emparelhe seu dispositivo à sua conta comma" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -661,8 +1035,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "Conecte-se ao Wi‑Fi para concluir o emparelhamento inicial" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "Desligar" @@ -677,7 +1051,7 @@ msgstr "" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:25 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -695,18 +1069,29 @@ msgstr "Erro no QR Code" msgid "REMOVE" msgstr "REMOVER" -#: selfdrive/ui/layouts/settings/device.py:51 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "REDEFINIR" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "REVISAR" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "Reiniciar" @@ -721,7 +1106,7 @@ msgstr "Reiniciar Dispositivo" msgid "Reboot and Update" msgstr "Reiniciar e Atualizar" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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 " @@ -730,17 +1115,17 @@ msgstr "" "Receba alertas para voltar à faixa quando seu veículo cruzar uma linha de " "faixa detectada sem seta ativada ao dirigir acima de 31 mph (50 km/h)." -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "Gravar e Enviar Câmera do Motorista" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "Gravar e Enviar Áudio do Microfone" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -748,12 +1133,12 @@ msgstr "" "Grave e armazene o áudio do microfone enquanto dirige. O áudio será incluído " "no vídeo da dashcam no comma connect." -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "Regulatório" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "Relaxado" @@ -773,75 +1158,132 @@ msgstr "Capturas remotas" msgid "Request timed out" msgstr "Tempo da solicitação esgotado" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "Redefinir" -#: selfdrive/ui/layouts/settings/device.py:51 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "Redefinir Calibração" -#: selfdrive/ui/layouts/settings/device.py:65 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "Revisar Guia de Treinamento" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "Revise as regras, recursos e limitações do openpilot" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "SELECT" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/developer.py:59 #, python-format msgid "SSH Keys" msgstr "" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "" +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" + #: system/ui/widgets/option_dialog.py:36 #, python-format msgid "Select" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:91 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "Selecione um idioma" -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "Serial" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "" + #: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format msgid "Snooze Update" msgstr "Adiar Atualização" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "Software" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "Padrão" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -854,6 +1296,39 @@ msgstr "" "compatíveis, você pode alternar essas personalidades com o botão de " "distância do volante." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -865,8 +1340,8 @@ msgstr "Sistema sem resposta" msgid "TAKE CONTROL IMMEDIATELY" msgstr "ASSUMA O CONTROLE IMEDIATAMENTE" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 msgid "TEMP" msgstr "TEMP" @@ -880,7 +1355,22 @@ msgstr "" msgid "Tethering Password" msgstr "" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"O sistema de monitoramento do motorista pode ser ativado/desativado, mas a " +"ativação de longo prazo é recomendada." + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" + +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "Alternâncias" @@ -889,11 +1379,16 @@ msgstr "Alternâncias" msgid "UNINSTALL" msgstr "DESINSTALAR" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "ATUALIZAR" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -914,7 +1409,7 @@ msgstr "Atualizações são baixadas apenas com o carro desligado." msgid "Upgrade Now" msgstr "Atualizar Agora" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -922,12 +1417,27 @@ msgstr "" "Envie dados da câmera voltada para o motorista e ajude a melhorar o " "algoritmo de monitoramento do motorista." -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "Usar Sistema Métrico" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." @@ -936,21 +1446,41 @@ msgstr "" "de permanência em faixa. Sua atenção é necessária o tempo todo para usar " "este recurso." -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "VEÍCULO" -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "VER" +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:52 #, python-format msgid "Waiting to start" msgstr "Aguardando para iniciar" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "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 " @@ -966,11 +1496,16 @@ msgstr "" msgid "Welcome to openpilot" msgstr "Bem-vindo ao openpilot" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "" "Quando ativado, pressionar o pedal do acelerador desengajará o openpilot." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:44 msgid "Wi-Fi" msgstr "Wi‑Fi" @@ -980,7 +1515,7 @@ msgstr "Wi‑Fi" msgid "Wi-Fi Network Metered" msgstr "" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "" @@ -999,6 +1534,16 @@ msgstr "" "Você deve aceitar os Termos e Condições para usar o openpilot. Leia os " "termos mais recentes em https://comma.ai/terms antes de continuar." +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "" + #: selfdrive/ui/onroad/driver_camera_dialog.py:34 #, python-format msgid "camera starting" @@ -1009,12 +1554,25 @@ msgstr "câmera iniciando" msgid "comma prime" msgstr "comma prime" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" + #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "para baixo" @@ -1024,7 +1582,7 @@ msgstr "para baixo" msgid "failed to check for update" msgstr "falha ao verificar atualização" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "" @@ -1034,12 +1592,12 @@ msgstr "" msgid "km/h" msgstr "km/h" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "à esquerda" @@ -1064,7 +1622,7 @@ msgstr "nunca" msgid "now" msgstr "agora" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/developer.py:77 #, python-format msgid "openpilot Longitudinal Control (Alpha)" msgstr "Controle Longitudinal do openpilot (Alpha)" @@ -1074,7 +1632,7 @@ msgstr "Controle Longitudinal do openpilot (Alpha)" msgid "openpilot Unavailable" msgstr "openpilot Indisponível" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1102,7 +1660,7 @@ msgstr "" "curvas. O logotipo do Modo Experimental também será exibido no canto " "superior direito." -#: selfdrive/ui/layouts/settings/device.py:165 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1124,13 +1682,13 @@ msgstr "" "melhorar os modelos de condução do openpilot. Mais dados significam modelos " "maiores, o que significa um Modo Experimental melhor." -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "" "o controle longitudinal do openpilot pode vir em uma atualização futura." -#: selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1138,7 +1696,7 @@ msgstr "" "o openpilot requer que o dispositivo seja montado dentro de 4° para a " "esquerda ou direita e dentro de 5° para cima ou 9° para baixo." -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "à direita" @@ -1148,7 +1706,7 @@ msgstr "à direita" msgid "unmetered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "para cima" @@ -1168,7 +1726,7 @@ msgstr "atualizado, última verificação: {}" msgid "update available" msgstr "atualização disponível" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" @@ -1214,3 +1772,18 @@ msgstr "✓ ASSINADO" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Modo Firehose 🔥" + +#~ msgid "ERROR" +#~ msgstr "ERRO" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "BOM" + +#~ msgid "HIGH" +#~ msgstr "ALTO" + +#~ msgid "OFFLINE" +#~ msgstr "OFFLINE" diff --git a/selfdrive/ui/translations/app_th.po b/selfdrive/ui/translations/app_th.po index f619081..8b3e117 100644 --- a/selfdrive/ui/translations/app_th.po +++ b/selfdrive/ui/translations/app_th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-04 20:25+0800\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-22 16:32-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,17 +17,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr "การปรับเทียบการตอบสนองแรงบิดพวงมาลัยเสร็จสมบูรณ์" -#: selfdrive/ui/layouts/settings/device.py:170 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr "การปรับเทียบการตอบสนองแรงบิดพวงมาลัยเสร็จสมบูรณ์ {}%" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr "อุปกรณ์ของคุณชี้ไปที่ {:.1f}° {} และ {:.1f}° {}" @@ -43,10 +43,12 @@ msgid " mins" msgstr " นาที" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format msgid " mph" msgstr " mph" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format msgid " sec" msgstr " วินาที" @@ -138,12 +140,12 @@ msgstr "" "ขอแนะนำให้เปิดใช้งานโหมดทดลองเมื่อเปิดใช้งานการควบคุมตามยาวของ openpilot อัลฟ่า " "การเปลี่ยนการตั้งค่านี้จะรีสตาร์ท openpilot หากรถเปิดอยู่" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

การปรับเทียบความล่าช้าของพวงมาλัยเสร็จสมบูรณ์" -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

การปรับเทียบความล่าช้าของพวงมาลัยเสร็จสมบูรณ์ {}%" @@ -175,19 +177,19 @@ msgstr "การตั้งค่า APN" msgid "Acknowledge Excessive Actuation" msgstr "รับทราบการทำงานที่มากเกินไป" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 #, python-format msgid "" "Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " "appropriate." msgstr "โหมดการขับขี่แบบปรับตัว (ACM) จะลดการเบรกเพื่อให้การขับขี่ราบรื่นขึ้นเมื่อเหมาะสม" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 #, python-format msgid "Adaptive Experimental Mode (AEM)" msgstr "โหมดทดลองแบบปรับตัว (AEM)" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 #, python-format msgid "" "Adaptive mode switcher between ACC and Blended based on driving context." @@ -198,7 +200,7 @@ msgstr "ตัวสลับโหมดแบบปรับตัวระห msgid "Advanced" msgstr "ขั้นสูง" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "ก้าวร้าว" @@ -208,6 +210,7 @@ msgstr "ก้าวร้าว" msgid "Agree" msgstr "ยอมรับ" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #, python-format msgid "All" @@ -220,19 +223,21 @@ msgid "" msgstr "อนุญาตให้ openpilot ปฏิบัติตามกฎจราจรด้านขวาบนที่นั่งคนขับด้านขวา" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format msgid "Allows openpilot to always steer to keep the car in its lane." msgstr "อนุญาตให้ openpilot บังคับพวงมาลัยเสมอเพื่อให้รถอยู่ในเลน" -#: selfdrive/ui/layouts/settings/toggles.py:73 +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "การตรวจสอบผู้ขับขี่ตลอดเวลา" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format msgid "Always-on Lane Keeping Assist (ALKA)" msgstr "ระบบช่วยรักษาช่องทางจราจรตลอดเวลา (ALKA)" -#: selfdrive/ui/layouts/settings/toggles.py:207 +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -241,12 +246,17 @@ msgstr "" "การควบคุมตามยาวของ openpilot " "เวอร์ชันอัลฟ่าสามารถทดสอบได้พร้อมกับโหมดทดลองในสาขาที่ไม่ใช่รุ่นที่เผยแพร่" -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "คุณแน่ใจหรือไม่ว่าต้องการปิดเครื่อง" -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "คุณแน่ใจหรือไม่ว่าต้องการรีบูต" @@ -256,12 +266,12 @@ msgstr "คุณแน่ใจหรือไม่ว่าต้องกา msgid "Are you sure you want to reset ALL DP SETTINGS to default?" msgstr "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตการตั้งค่า DP ทั้งหมดเป็นค่าเริ่มต้น" -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตการปรับเทียบ" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "Are you sure you want to switch?" msgstr "คุณแน่ใจหรือไม่ว่าต้องการสลับ" @@ -277,6 +287,7 @@ msgid "Audible Alert" msgstr "การแจ้งเตือนด้วยเสียง" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format msgid "Auto Lane Change after:" msgstr "เปลี่ยนเลนอัตโนมัติหลังจาก:" @@ -286,6 +297,7 @@ msgid "Auto Shutdown After" msgstr "ปิดเครื่องอัตโนมัติหลังจาก" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format msgid "Avoid EPS Lockout" msgstr "หลีกเลี่ยงการล็อก EPS" @@ -313,7 +325,7 @@ msgstr "" msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "บุ๊กมาร์ก connect.comma.ai ไปที่หน้าจอหลักของคุณเพื่อใช้งานเหมือนแอป" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "เปลี่ยน" @@ -331,14 +343,12 @@ msgstr "ตรวจสอบ" msgid "CHILL MODE ON" msgstr "โหมด CHILL เปิดอยู่" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "CONFIRM" msgstr "ยืนยัน" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:135 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:139 +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "เชื่อมต่อ" @@ -348,8 +358,13 @@ msgstr "เชื่อมต่อ" msgid "CONNECTING..." msgstr "กำลังเชื่อมต่อ..." -#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/confirm_dialog.py:23 -#: system/ui/widgets/network.py:326 system/ui/widgets/keyboard.py:81 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "ยกเลิก" @@ -359,12 +374,12 @@ msgstr "ยกเลิก" msgid "Cellular Metered" msgstr "เซลลูลาร์แบบคิดค่าบริการตามปริมาณข้อมูล" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "เปลี่ยนภาษา" -#: selfdrive/ui/layouts/settings/toggles.py:146 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "การเปลี่ยนการตั้งค่านี้จะรีสตาร์ท openpilot หากรถเปิดอยู่" @@ -389,7 +404,7 @@ msgstr "เวอร์ชันปัจจุบัน" msgid "DOWNLOAD" msgstr "ดาวน์โหลด" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 #, python-format msgid "" "DTSC automatically adjusts the vehicle's predicted speed based on upcoming " @@ -426,11 +441,11 @@ msgstr "" "และกระบวนการที่เกี่ยวข้องเมื่ออุปกรณ์อยู่บนถนน
วิธีนี้จะป้องกันไม่ให้ช่วงเวลาเริ่มต้นของการขับขี่ถูกบันทึกไว้ " "ซึ่งจะช่วยปกป้องความเป็นส่วนตัวของตำแหน่งที่จุดเริ่มต้นของการเดินทาง" -#: selfdrive/ui/layouts/settings/settings.py:69 +#: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "นักพัฒนา" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "อุปกรณ์" @@ -451,40 +466,40 @@ msgstr "ปิดใช้งานบริการ Comma connect หากค msgid "Disable Driver Monitoring" msgstr "ปิดใช้งานการตรวจสอบผู้ขับขี่" -#: selfdrive/ui/layouts/settings/toggles.py:97 +#: selfdrive/ui/layouts/settings/toggles.py:104 #, python-format msgid "Disable Logging" msgstr "ปิดใช้งานการบันทึก" -#: selfdrive/ui/layouts/settings/toggles.py:103 +#: selfdrive/ui/layouts/settings/toggles.py:110 #, python-format msgid "Disable Updates" msgstr "ปิดใช้งานการอัปเดต" -#: selfdrive/ui/layouts/settings/toggles.py:35 +#: selfdrive/ui/layouts/settings/toggles.py:42 msgid "Disable logging service" msgstr "ปิดใช้งานบริการบันทึก" -#: selfdrive/ui/layouts/settings/toggles.py:36 +#: selfdrive/ui/layouts/settings/toggles.py:43 msgid "Disable update service" msgstr "ปิดใช้งานบริการอัปเดต" -#: selfdrive/ui/layouts/settings/toggles.py:61 +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "ปลดการทำงานเมื่อเหยียบคันเร่ง" -#: selfdrive/ui/layouts/settings/device.py:196 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "ปลดการทำงานเพื่อปิดเครื่อง" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "ปลดการทำงานเพื่อรีบูต" -#: selfdrive/ui/layouts/settings/device.py:115 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "ปลดการทำงานเพื่อรีเซ็ตการปรับเทียบ" @@ -499,7 +514,7 @@ msgstr "แสดงสถิติรถคันหน้า" msgid "Display Mode" msgstr "โหมดการแสดงผล" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "แสดงความเร็วเป็น กม./ชม. แทน ไมล์/ชม." @@ -514,12 +529,18 @@ msgstr "" "สถิติจุดติดตามเรดาร์เท่านั้น
ทั้งหมด: สถิติรถคันหน้าและเรดาร์
หมายเหตุ: " "ตัวเลือกเรดาร์ใช้งานได้กับรถบางรุ่นเท่านั้น" -#: selfdrive/ui/layouts/settings/device.py:71 +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "รหัส Dongle" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format msgid "Door Auto Lock/Unlock" msgstr "ล็อก/ปลดล็อกประตูอัตโนมัติ" @@ -528,17 +549,21 @@ msgstr "ล็อก/ปลดล็อกประตูอัตโนมั msgid "Download" msgstr "ดาวน์โหลด" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "กล้องคนขับ" -#: selfdrive/ui/layouts/settings/toggles.py:111 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "บุคลิกการขับขี่" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 #, python-format msgid "Dynamic Turn Speed Control (DTSC)" msgstr "การควบคุมความเร็วในการเลี้ยวแบบไดนามิก (DTSC)" @@ -548,10 +573,6 @@ msgstr "การควบคุมความเร็วในการเล msgid "EDIT" msgstr "แก้ไข" -#: selfdrive/ui/layouts/sidebar.py:139 -msgid "ERROR" -msgstr "ข้อผิดพลาด" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -561,8 +582,8 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "โหมดทดลองเปิดอยู่" +#: selfdrive/ui/layouts/settings/toggles.py:279 #: selfdrive/ui/layouts/settings/developer.py:173 -#: selfdrive/ui/layouts/settings/toggles.py:249 #, python-format msgid "Enable" msgstr "เปิดใช้งาน" @@ -572,7 +593,7 @@ msgstr "เปิดใช้งาน" msgid "Enable ADB" msgstr "เปิดใช้งาน ADB" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 #, python-format msgid "Enable Adaptive Coasting Mode (ACM)" msgstr "เปิดใช้งานโหมดการขับขี่แบบปรับตัว (ACM)" @@ -582,7 +603,7 @@ msgstr "เปิดใช้งานโหมดการขับขี่แ msgid "Enable Beep (Warning)" msgstr "เปิดใช้งานเสียงบี๊บ (คำเตือน)" -#: selfdrive/ui/layouts/settings/toggles.py:67 +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "เปิดใช้งานคำเตือนการออกจากเลน" @@ -603,6 +624,7 @@ msgid "Enable SSH" msgstr "เปิดใช้งาน SSH" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format msgid "Enable TSS1 SnG Mod" msgstr "เปิดใช้งาน TSS1 SnG Mod" @@ -611,16 +633,13 @@ msgstr "เปิดใช้งาน TSS1 SnG Mod" msgid "Enable Tethering" msgstr "เปิดใช้งานการปล่อยสัญญาณ" -#: selfdrive/ui/layouts/settings/toggles.py:31 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "เปิดใช้งานการตรวจสอบผู้ขับขี่แม้ว่า openpilot จะไม่ได้ทำงานอยู่" - -#: selfdrive/ui/layouts/settings/toggles.py:49 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "เปิดใช้งาน openpilot" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format msgid "" "Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " "shifting to Park." @@ -628,7 +647,7 @@ msgstr "" "เปิดใช้งาน openpilot เพื่อล็อกประตูอัตโนมัติที่ความเร็วสูงกว่า 20 กม./ชม. " "และปลดล็อกอัตโนมัติเมื่อเปลี่ยนเกียร์ไปที่ Park" -#: selfdrive/ui/layouts/settings/toggles.py:210 +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -655,6 +674,11 @@ msgstr "ป้อนรหัสผ่านการปล่อยสัญญ msgid "Enter password" msgstr "ป้อนรหัสผ่าน" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -665,12 +689,12 @@ msgstr "ป้อนชื่อผู้ใช้ GitHub ของคุณ" msgid "Error" msgstr "ข้อผิดพลาด" -#: selfdrive/ui/layouts/settings/toggles.py:55 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "โหมดทดลอง" -#: selfdrive/ui/layouts/settings/toggles.py:202 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -692,10 +716,6 @@ msgstr "ไฟล์" msgid "Finish Setup" msgstr "สิ้นสุดการตั้งค่า" -#: selfdrive/ui/layouts/settings/settings.py:68 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "โหมด Firehose" @@ -741,7 +761,7 @@ msgstr "" "ซอฟต์แวร์ที่ฉันใช้มีความสำคัญหรือไม่ ใช่ มีเพียง openpilot ต้นน้ำ (และบาง fork) " "เท่านั้นที่สามารถใช้สำหรับการฝึกอบรมได้" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "" "Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" @@ -758,17 +778,13 @@ msgstr "ลืม" msgid "Forget Wi-Fi Network \"{}\"?" msgstr "ลืมเครือข่าย Wi-Fi \"{}\"?" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 -msgid "GOOD" -msgstr "ดี" - -#: selfdrive/ui/layouts/settings/device.py:65 -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Offroad" msgstr "ไป Offroad" -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Onroad" msgstr "ไป Onroad" @@ -778,10 +794,6 @@ msgstr "ไป Onroad" msgid "Go to https://connect.comma.ai on your phone" msgstr "ไปที่ https://connect.comma.ai บนโทรศัพท์ของคุณ" -#: selfdrive/ui/layouts/sidebar.py:130 -msgid "HIGH" -msgstr "สูง" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" @@ -797,6 +809,7 @@ msgstr "ซ่อน HUD เมื่อเคลื่อนที่สูง msgid "INACTIVE: connect to an unmetered network" msgstr "ไม่ทำงาน: เชื่อมต่อกับเครือข่ายที่ไม่คิดค่าบริการตามปริมาณข้อมูล" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -813,11 +826,27 @@ msgstr "ที่อยู่ IP" msgid "Install Update" msgstr "ติดตั้งการอัปเดต" +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "โหมดดีบักจอยสติ๊ก" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "กำลังโหลด" @@ -827,20 +856,42 @@ msgid "LTE" msgstr "LTE" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format msgid "Lane Change Assist At:" msgstr "ระบบช่วยเปลี่ยนเลนที่:" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "โหมดการหลบหลีกตามยาว" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "สูงสุด" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format msgid "MQB A0 SnG Mod" msgstr "MQB A0 SnG Mod" @@ -850,17 +901,22 @@ msgid "" "Maximize your training data uploads to improve openpilot's driving models." msgstr "เพิ่มการอัปโหลดข้อมูลการฝึกอบรมของคุณให้สูงสุดเพื่อปรับปรุงโมเดลการขับขี่ของ openpilot" -#: selfdrive/ui/layouts/settings/device.py:71 -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "ไม่มี" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "ไม่" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "เครือข่าย" @@ -879,24 +935,30 @@ msgstr "ไม่พบรหัส SSH สำหรับผู้ใช้ '{} msgid "No release notes available." msgstr "ไม่มีบันทึกประจำรุ่น" -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:135 -msgid "OFFLINE" -msgstr "ออฟไลน์" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:128 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "ตกลง" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "ออนไลน์" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 @@ -905,14 +967,16 @@ msgid "Off" msgstr "ปิด" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format msgid "Off = Disable Auto Lane Change." msgstr "Off = ปิดใช้งานการเปลี่ยนเลนอัตโนMัติ" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format msgid "Off = Disable LCA.
1 mph = 1.2 km/h." msgstr "Off = ปิดใช้งาน LCA
1 ไมล์/ชม. = 1.2 กม./ชม." -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "On/Off Road" msgstr "เปิด/ปิดถนน" @@ -922,20 +986,21 @@ msgstr "เปิด/ปิดถนน" msgid "Open" msgstr "เปิด" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "จับคู่" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format msgid "PQ Steering Patch" msgstr "แพตช์พวงมาลัย PQ" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "ดูตัวอย่าง" @@ -945,7 +1010,7 @@ msgstr "ดูตัวอย่าง" msgid "PRIME FEATURES:" msgstr "คุณสมบัติ PRIME:" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "จับคู่อุปกรณ์" @@ -960,7 +1025,7 @@ msgstr "จับคู่อุปกรณ์" msgid "Pair your device to your comma account" msgstr "จับคู่อุปกรณ์ของคุณกับบัญชี comma ของคุณ" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -974,8 +1039,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "โปรดเชื่อมต่อกับ Wi-Fi เพื่อทำการจับคู่เริ่มต้นให้เสร็จสมบูรณ์" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "ปิดเครื่อง" @@ -990,7 +1055,7 @@ msgstr "ป้องกันการอัปโหลดข้อมูลข msgid "Prevent large data uploads when on a metered cellular connection" msgstr "ป้องกันการอัปโหลดข้อมูลขนาดใหญ่เมื่อเชื่อมต่อกับเซลลูลาร์แบบคิดค่าบริการตามปริมาณข้อมูล" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -1006,23 +1071,28 @@ msgid "REMOVE" msgstr "ลบ" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "รีเซ็ต" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "ตรวจสอบ" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 #, python-format msgid "Rainbow Driving Path like Tesla" msgstr "เส้นทางการขับขี่สีรุ้งเหมือนเทสลา" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "รีบูต" @@ -1046,29 +1116,29 @@ msgstr "" "รับการแจ้งเตือนให้บังคับพวงมาลัยกลับเข้าเลนเมื่อรถของคุณเบี่ยงออกจากเส้นเลนที่ตรวจพบโดยไม่ได้เปิดไฟเลี้ยวขณะขับรถเกิน " "31 ไมล์/ชม. (50 กม./ชม.)" -#: selfdrive/ui/layouts/settings/toggles.py:79 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "บันทึกและอัปโหลดกล้องคนขับ" -#: selfdrive/ui/layouts/settings/toggles.py:85 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "บันทึกและอัปโหลดเสียงไมโครโฟน" -#: selfdrive/ui/layouts/settings/toggles.py:34 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." msgstr "" "บันทึกและจัดเก็บเสียงไมโครโฟนขณะขับรถ เสียงจะรวมอยู่ในวิดีโอ dashcam ใน comma connect" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "กฎข้อบังคับ" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "ผ่อนคลาย" @@ -1089,12 +1159,12 @@ msgid "Request timed out" msgstr "หมดเวลาคำขอ" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "รีเซ็ต" -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "รีเซ็ตการปรับเทียบ" @@ -1109,12 +1179,12 @@ msgstr "รีเซ็ตการตั้งค่า DP" msgid "Reset dragonpilot settings to default and restart the device." msgstr "รีเซ็ตการตั้งค่า dragonpilot เป็นค่าเริ่มต้นและรีสตาร์ทอุปกรณ์" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "ตรวจสอบคู่มือการฝึกอบรม" -#: selfdrive/ui/layouts/settings/device.py:29 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "ตรวจสอบกฎ คุณสมบัติ และข้อจำกัดของ openpilot" @@ -1123,8 +1193,8 @@ msgstr "ตรวจสอบกฎ คุณสมบัติ และข้ msgid "Road Edge Detection (RED)" msgstr "การตรวจจับขอบถนน (RED)" +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 -#: selfdrive/ui/layouts/settings/device.py:45 #, python-format msgid "SELECT" msgstr "เลือก" @@ -1139,6 +1209,11 @@ msgstr "รหัส SSH" msgid "Scanning Wi-Fi networks..." msgstr "กำลังสแกนเครือข่าย Wi-Fi..." +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 #, python-format msgid "" @@ -1152,26 +1227,39 @@ msgstr "" msgid "Select" msgstr "เลือก" -#: selfdrive/ui/layouts/settings/device.py:256 +#: selfdrive/ui/layouts/settings/device.py:274 #, python-format -msgid "Select a Vehicle" -msgstr "เลือกรถ" +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "เลือกสาขา" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "เลือกภาษา" -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "ซีเรียล" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:91 #, python-format msgid "Show" @@ -1187,11 +1275,11 @@ msgstr "แสดงข้อผิดพลาดล่าสุด" msgid "Snooze Update" msgstr "เลื่อนการอัปเดต" -#: selfdrive/ui/layouts/settings/settings.py:67 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "ซอฟต์แวร์" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "มาตรฐาน" @@ -1208,6 +1296,12 @@ msgstr "" "จะอยู่ห่างจากรถคันหน้ามากขึ้น ในรถที่รองรับ " "คุณสามารถวนรอบบุคลิกเหล่านี้ได้ด้วยปุ่มระยะห่างบนพวงมาลัย" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 #, python-format msgid "" @@ -1227,6 +1321,18 @@ msgid "" msgstr "" "มาตรฐาน: พฤติกรรมปกติ
คำเตือน: จะส่งเสียงเมื่อมีคำเตือนเท่านั้น
ปิด: ไม่ส่งเสียงใดๆ เลย" +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -1253,6 +1359,12 @@ msgstr "สาขาเป้าหมาย" msgid "Tethering Password" msgstr "รหัสผ่านการปล่อยสัญญาณ" +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "ระบบสามารถเปิด/ปิดได้ แต่ควรเปิดใช้งานในระยะยาว" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 #, python-format msgid "" @@ -1262,7 +1374,7 @@ msgstr "" "เพื่อป้องกันหน้าจอเบิร์นอิน ให้ซ่อนความเร็ว, ความเร็วสูงสุด และไอคอนพวงมาลัย/DM " "เมื่อรถเคลื่อนที่
ปิด = พฤติกรรมปกติ
1 กม./ชม. = 0.6 ไมล์/ชม." -#: selfdrive/ui/layouts/settings/settings.py:66 +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "สลับ" @@ -1287,7 +1399,7 @@ msgstr "ใช้ свой страх и риск" msgid "Uninstall" msgstr "ถอนการติดตั้ง" -#: selfdrive/ui/layouts/sidebar.py:118 +#: selfdrive/ui/layouts/sidebar.py:117 msgid "Unknown" msgstr "ไม่ทราบ" @@ -1301,7 +1413,7 @@ msgstr "การอัปเดตจะดาวน์โหลดเฉพา msgid "Upgrade Now" msgstr "อัปเกรดทันที" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -1317,12 +1429,13 @@ msgstr "ใช้ зуммер для звуковых оповещений" msgid "Use External Radar" msgstr "ใช้เรดาร์ภายนอก" -#: selfdrive/ui/layouts/settings/toggles.py:91 +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "ใช้ระบบเมตริก" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format msgid "Use Stock Longitudinal Control" msgstr "ใช้การควบคุมตามยาวของเดิม" @@ -1334,26 +1447,26 @@ msgstr "" "ใช้ระบบ openpilot สำหรับระบบควบคุมความเร็วคงที่แบบปรับได้และระบบช่วยรักษาช่องทางจราจร " "คุณต้องให้ความสนใจตลอดเวลาเพื่อใช้คุณสมบัตินี้" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "ยานพาหนะ" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "ดู" -#: selfdrive/ui/layouts/settings/device.py:45 +#: selfdrive/ui/layouts/settings/device.py:48 #, python-format msgid "Vehicle Model" msgstr "รุ่นรถ" -#: selfdrive/ui/layouts/settings/device.py:236 +#: selfdrive/ui/layouts/settings/device.py:245 #, python-format msgid "Vehicle Model list is not a valid format." msgstr "รายการรุ่นรถไม่อยู่ในรูปแบบที่ถูกต้อง" -#: selfdrive/ui/layouts/settings/device.py:230 +#: selfdrive/ui/layouts/settings/device.py:239 #, python-format msgid "Vehicle Model list not found." msgstr "ไม่พบรายการรุ่นรถ" @@ -1363,6 +1476,11 @@ msgstr "ไม่พบรายการรุ่นรถ" msgid "Waiting to start" msgstr "กำลังรอที่จะเริ่ม" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + #: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "Warning: This grants SSH access to all public keys in your GitHub settings. " @@ -1415,8 +1533,12 @@ msgstr "" "คุณต้องยอมรับข้อกำหนดและเงื่อนไขเพื่อใช้งาน openpilot อ่านข้อกำหนดล่าสุดได้ที่ https://comma." "ai/terms ก่อนดำเนินการต่อ" -#: selfdrive/ui/layouts/settings/device.py:46 -#: selfdrive/ui/layouts/settings/device.py:225 +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 #, python-format msgid "[AUTO DETECT]" msgstr "[ตรวจจับอัตโนมัติ]" @@ -1452,7 +1574,7 @@ msgstr "" msgid "default" msgstr "ค่าเริ่มต้น" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "ลง" @@ -1477,7 +1599,7 @@ msgstr "km/h" msgid "leave blank for automatic configuration" msgstr "เว้นว่างไว้สำหรับการกำหนดค่าอัตโนมัติ" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "ซ้าย" @@ -1512,7 +1634,7 @@ msgstr "การควบคุมตามยาวของ openpilot (อั msgid "openpilot Unavailable" msgstr "openpilot ไม่พร้อมใช้งาน" -#: selfdrive/ui/layouts/settings/toggles.py:179 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1537,7 +1659,7 @@ msgstr "" "h4>
การแสดงภาพการขับขี่จะเปลี่ยนไปใช้กล้องมุมกว้างที่หันหน้าไปทางถนนที่ความเร็วต่ำเพื่อแสดงการเลี้ยวบางส่วนได้ดีขึ้น " "โลโก้โหมดทดลองจะแสดงที่มุมขวาบนด้วย" -#: selfdrive/ui/layouts/settings/device.py:177 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1560,19 +1682,19 @@ msgstr "" "ช่วยให้คุณสามารถเพิ่มการอัปโหลดข้อมูลการฝึกอบรมของคุณให้สูงสุดเพื่อปรับปรุงโมเดลการขับขี่ของ " "openpilot ข้อมูลที่มากขึ้นหมายถึงโมเดลที่ใหญ่ขึ้น ซึ่งหมายถึงโหมดทดลองที่ดีขึ้น" -#: selfdrive/ui/layouts/settings/toggles.py:204 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "การควบคุมตามยาวของ openpilot อาจมาในการอัปเดตในอนาคต" -#: selfdrive/ui/layouts/settings/device.py:28 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." msgstr "" "openpilot ต้องการให้อุปกรณ์ติดตั้งอยู่ภายใน 4° ซ้ายหรือขวา และภายใน 5° ขึ้นหรือ 9° ลง" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "ขวา" @@ -1582,7 +1704,7 @@ msgstr "ขวา" msgid "unmetered" msgstr "ไม่คิดค่าบริการตามปริมาณข้อมูล" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "ขึ้น" @@ -1641,3 +1763,22 @@ msgstr "✓ สมัครรับข้อมูลแล้ว" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 โหมด Firehose 🔥" + +#~ msgid "ERROR" +#~ msgstr "ข้อผิดพลาด" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "ดี" + +#~ msgid "HIGH" +#~ msgstr "สูง" + +#~ msgid "OFFLINE" +#~ msgstr "ออฟไลน์" + +#, python-format +#~ msgid "Select a Vehicle" +#~ msgstr "เลือกรถ" diff --git a/selfdrive/ui/translations/app_tr.po b/selfdrive/ui/translations/app_tr.po index 1019123..9afee25 100644 --- a/selfdrive/ui/translations/app_tr.po +++ b/selfdrive/ui/translations/app_tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 00:50-0700\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-20 18:19-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,25 +17,90 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " Direksiyon tork tepkisi kalibrasyonu tamamlandı." -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " Direksiyon tork tepkisi kalibrasyonu {}% tamamlandı." -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " Cihazınız {:.1f}° {} ve {:.1f}° {} yönünde konumlandırılmış." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:180 +#, python-format +msgid " km/h" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:252 +#, python-format +msgid " mins" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:117 +#, python-format +msgid " mph" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:129 +#, python-format +msgid " sec" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:272 +#, python-format +msgid " secs" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:203 +#, python-format +msgid "### Device ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:100 +#, python-format +msgid "### Lateral ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 +#, python-format +msgid "### Longitudinal ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 +#, python-format +msgid "### Mazda ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:49 +#, python-format +msgid "### Toyota / Lexus ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:173 +#, python-format +msgid "### UI ###" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:73 +#, python-format +msgid "### VAG ###" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:43 msgid "--" msgstr "--" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:246 +#, python-format +msgid "0 mins = Immediately" +msgstr "" + #: selfdrive/ui/widgets/prime.py:47 #, python-format msgid "1 year of drive storage" @@ -58,7 +123,7 @@ msgstr "3G" msgid "5G" msgstr "5G" -#: selfdrive/ui/layouts/settings/developer.py:23 +#: selfdrive/ui/layouts/settings/developer.py:28 msgid "" "WARNING: openpilot longitudinal control is in alpha for this car and will " "disable Automatic Emergency Braking (AEB).

On this car, openpilot " @@ -75,12 +140,12 @@ msgstr "" "etkinleştirin. openpilot boylamsal kontrol alfayı etkinleştirirken Deneysel " "modu etkinleştirmeniz önerilir." -#: selfdrive/ui/layouts/settings/device.py:148 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "" @@ -90,7 +155,7 @@ msgstr "" msgid "ACTIVE" msgstr "AKTİF" -#: selfdrive/ui/layouts/settings/developer.py:15 +#: selfdrive/ui/layouts/settings/developer.py:20 msgid "" "ADB (Android Debug Bridge) allows connecting to your device over USB or over " "the network. See https://docs.comma.ai/how-to/connect-to-comma for more info." @@ -113,12 +178,30 @@ msgstr "" msgid "Acknowledge Excessive Actuation" msgstr "Aşırı Müdahaleyi Onayla" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#, python-format +msgid "" +"Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " +"appropriate." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#, python-format +msgid "Adaptive Experimental Mode (AEM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#, python-format +msgid "" +"Adaptive mode switcher between ACC and Blended based on driving context." +msgstr "" + #: system/ui/widgets/network.py:74 system/ui/widgets/network.py:95 #, python-format msgid "Advanced" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "Agresif" @@ -128,12 +211,34 @@ msgstr "Agresif" msgid "Agree" msgstr "Kabul et" -#: selfdrive/ui/layouts/settings/toggles.py:70 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "All" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:208 +#, python-format +msgid "" +"Allow openpilot to obey right-hand traffic conventions on right driver seat." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:104 +#, python-format +msgid "Allows openpilot to always steer to keep the car in its lane." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" msgstr "Sürekli Sürücü İzleme" -#: selfdrive/ui/layouts/settings/toggles.py:186 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 +#, python-format +msgid "Always-on Lane Keeping Assist (ALKA)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " @@ -142,26 +247,61 @@ msgstr "" "openpilot boylamsal kontrolünün alfa sürümü, Deneysel mod ile birlikte, " "yayın dışı dallarda test edilebilir." -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "Kapatmak istediğinizden emin misiniz?" -#: selfdrive/ui/layouts/settings/device.py:175 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "Yeniden başlatmak istediğinizden emin misiniz?" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#, python-format +msgid "Are you sure you want to reset ALL DP SETTINGS to default?" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "Kalibrasyonu sıfırlamak istediğinizden emin misiniz?" +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "Are you sure you want to switch?" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:163 #, python-format msgid "Are you sure you want to uninstall?" msgstr "Kaldırmak istediğinizden emin misiniz?" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:237 +#, python-format +msgid "Audible Alert" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 +#, python-format +msgid "Auto Lane Change after:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 +#, python-format +msgid "Auto Shutdown After" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 +#, python-format +msgid "Avoid EPS Lockout" +msgstr "" + #: system/ui/widgets/network.py:99 selfdrive/ui/layouts/onboarding.py:147 #, python-format msgid "Back" @@ -172,13 +312,20 @@ msgstr "Geri" msgid "Become a comma prime member at connect.comma.ai" msgstr "connect.comma.ai adresinde comma prime üyesi olun" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:136 +#, python-format +msgid "" +"Block lane change assist when the system detects the road edge.
NOTE: " +"This will show 'Car Detected in Blindspot' warning." +msgstr "" + #: selfdrive/ui/widgets/pairing_dialog.py:130 #, python-format msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "" "connect.comma.ai'yi ana ekranınıza ekleyerek bir uygulama gibi kullanın" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "DEĞİŞTİR" @@ -196,20 +343,28 @@ msgstr "KONTROL ET" msgid "CHILL MODE ON" msgstr "CHILL MODU AÇIK" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:134 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:138 +#: selfdrive/ui/layouts/settings/device.py:308 +#, python-format +msgid "CONFIRM" +msgstr "" + +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "BAĞLAN" -#: system/ui/widgets/network.py:369 +#: system/ui/widgets/network.py:377 #, python-format msgid "CONNECTING..." msgstr "BAĞLAN" -#: system/ui/widgets/confirm_dialog.py:23 system/ui/widgets/option_dialog.py:35 -#: system/ui/widgets/keyboard.py:81 system/ui/widgets/network.py:318 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "" @@ -219,12 +374,12 @@ msgstr "" msgid "Cellular Metered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:68 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "Dili Değiştir" -#: selfdrive/ui/layouts/settings/toggles.py:125 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "" @@ -250,6 +405,14 @@ msgstr "Geçerli Sürüm" msgid "DOWNLOAD" msgstr "İNDİR" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#, python-format +msgid "" +"DTSC automatically adjusts the vehicle's predicted speed based on upcoming " +"road curvature and grip conditions.
Originally from the openpilot TACO " +"branch." +msgstr "" + #: selfdrive/ui/layouts/onboarding.py:115 #, python-format msgid "Decline" @@ -260,67 +423,148 @@ msgstr "Reddet" msgid "Decline, uninstall openpilot" msgstr "Reddet, openpilot'u kaldır" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:265 +#, python-format +msgid "Delay Starting Loggerd for:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:266 +#, python-format +msgid "" +"Delays the startup of loggerd and its related processes when the device goes " +"on-road.
This prevents the initial moments of a drive from being " +"recorded, protecting location privacy at the start of a trip." +msgstr "" + #: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "Geliştirici" -#: selfdrive/ui/layouts/settings/settings.py:62 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "Cihaz" -#: selfdrive/ui/layouts/settings/toggles.py:58 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:277 +#, python-format +msgid "Disable Comma Connect" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:278 +#, python-format +msgid "" +"Disable Comma connect service if you do not wish to upload / being tracked " +"by the service." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:214 +#, python-format +msgid "Disable Driver Monitoring" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:104 +#, python-format +msgid "Disable Logging" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:110 +#, python-format +msgid "Disable Updates" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:42 +msgid "Disable logging service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:43 +msgid "Disable update service" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "Gaz Pedalında Devreden Çık" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "Kapatmak için Devreden Çıkın" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "Yeniden Başlatmak için Devreden Çıkın" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "Kalibrasyonu Sıfırlamak için Devreden Çıkın" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 +#, python-format +msgid "Display Lead Stats" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 +#, python-format +msgid "Display Mode" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "Hızı mph yerine km/h olarak göster." -#: selfdrive/ui/layouts/settings/device.py:59 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:196 +#, python-format +msgid "" +"Display the statistics of lead car and/or radar tracking points.
Lead: " +"Lead stats only
Radar: Radar tracking point stats only
All: Lead and " +"Radar stats
NOTE: Radar option only works on certain vehicle models." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "Dongle ID" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:52 +#, python-format +msgid "Door Auto Lock/Unlock" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:50 #, python-format msgid "Download" msgstr "İndir" -#: selfdrive/ui/layouts/settings/device.py:62 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "Sürücü Kamerası" -#: selfdrive/ui/layouts/settings/toggles.py:96 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "Sürüş Kişiliği" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#, python-format +msgid "Dynamic Turn Speed Control (DTSC)" +msgstr "" + #: system/ui/widgets/network.py:123 system/ui/widgets/network.py:139 #, python-format msgid "EDIT" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:138 -msgid "ERROR" -msgstr "HATA" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -330,47 +574,70 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "DENEYSEL MOD AÇIK" -#: selfdrive/ui/layouts/settings/developer.py:166 -#: selfdrive/ui/layouts/settings/toggles.py:228 +#: selfdrive/ui/layouts/settings/toggles.py:279 +#: selfdrive/ui/layouts/settings/developer.py:173 #, python-format msgid "Enable" msgstr "Etkinleştir" -#: selfdrive/ui/layouts/settings/developer.py:39 +#: selfdrive/ui/layouts/settings/developer.py:45 #, python-format msgid "Enable ADB" msgstr "ADB'yi Etkinleştir" -#: selfdrive/ui/layouts/settings/toggles.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#, python-format +msgid "Enable Adaptive Coasting Mode (ACM)" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:221 +#, python-format +msgid "Enable Beep (Warning)" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "Şerit Terk Uyarılarını Etkinleştir" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:207 +#, python-format +msgid "Enable Right-Hand Drive Mode" +msgstr "" + #: system/ui/widgets/network.py:129 #, python-format msgid "Enable Roaming" msgstr "openpilot'u etkinleştir" -#: selfdrive/ui/layouts/settings/developer.py:48 +#: selfdrive/ui/layouts/settings/developer.py:54 #, python-format msgid "Enable SSH" msgstr "SSH'yi Etkinleştir" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:59 +#, python-format +msgid "Enable TSS1 SnG Mod" +msgstr "" + #: system/ui/widgets/network.py:120 #, python-format msgid "Enable Tethering" msgstr "Şerit Terk Uyarılarını Etkinleştir" -#: selfdrive/ui/layouts/settings/toggles.py:30 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "openpilot devrede değilken bile sürücü izlemesini etkinleştir." - -#: selfdrive/ui/layouts/settings/toggles.py:46 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "openpilot'u etkinleştir" -#: selfdrive/ui/layouts/settings/toggles.py:189 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:53 +#, python-format +msgid "" +"Enable openpilot to auto-lock doors above 20 km/h and auto-unlock when " +"shifting to Park." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -378,26 +645,31 @@ msgid "" msgstr "" "Deneysel modu etkinleştirmek için openpilot boylamsal kontrolünü (alfa) açın." -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "Enter APN" msgstr "" -#: system/ui/widgets/network.py:241 +#: system/ui/widgets/network.py:249 #, python-format msgid "Enter SSID" msgstr "" -#: system/ui/widgets/network.py:254 +#: system/ui/widgets/network.py:262 #, python-format msgid "Enter new tethering password" msgstr "" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "Enter password" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -408,12 +680,12 @@ msgstr "GitHub kullanıcı adınızı girin" msgid "Error" msgstr "" -#: selfdrive/ui/layouts/settings/toggles.py:52 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "Deneysel Mod" -#: selfdrive/ui/layouts/settings/toggles.py:181 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -422,20 +694,21 @@ msgstr "" "Bu araçta boylamsal kontrol için stok ACC kullanıldığından şu anda Deneysel " "mod kullanılamıyor." -#: system/ui/widgets/network.py:373 +#: system/ui/widgets/network.py:381 #, python-format msgid "FORGETTING..." msgstr "" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#, python-format +msgid "File" +msgstr "" + #: selfdrive/ui/widgets/setup.py:44 #, python-format msgid "Finish Setup" msgstr "Kurulumu Bitir" -#: selfdrive/ui/layouts/settings/settings.py:66 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Firehose Modu" @@ -484,39 +757,54 @@ msgstr "" "Hangi yazılımı çalıştırdığım önemli mi? Evet, yalnızca upstream openpilot " "(ve bazı fork'lar) eğitim için kullanılabilir." -#: system/ui/widgets/network.py:318 system/ui/widgets/network.py:451 +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "" +"Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" +msgstr "" + +#: system/ui/widgets/network.py:326 system/ui/widgets/network.py:459 #, python-format msgid "Forget" msgstr "" -#: system/ui/widgets/network.py:319 +#: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -msgid "GOOD" -msgstr "İYİ" +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Offroad" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:306 +#, python-format +msgid "Go Onroad" +msgstr "" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "Telefonunuzda https://connect.comma.ai adresine gidin" -#: selfdrive/ui/layouts/sidebar.py:129 -msgid "HIGH" -msgstr "YÜKSEK" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" msgstr "Ağ" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 +#, python-format +msgid "Hide HUD When Moves above:" +msgstr "" + #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "PASİF: sınırsız bir ağa bağlanın" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -533,11 +821,27 @@ msgstr "" msgid "Install Update" msgstr "Güncellemeyi Yükle" -#: selfdrive/ui/layouts/settings/developer.py:56 +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "Joystick Hata Ayıklama Modu" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "YÜKLENİYOR" @@ -546,16 +850,46 @@ msgstr "YÜKLENİYOR" msgid "LTE" msgstr "LTE" -#: selfdrive/ui/layouts/settings/developer.py:64 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 +#, python-format +msgid "Lane Change Assist At:" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "Boylamsal Manevra Modu" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" msgstr "MAKS" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 +#, python-format +msgid "MQB A0 SnG Mod" +msgstr "" + #: selfdrive/ui/widgets/setup.py:75 #, python-format msgid "" @@ -564,17 +898,22 @@ msgstr "" "openpilot'un sürüş modellerini iyileştirmek için eğitim veri yüklemelerinizi " "en üst düzeye çıkarın." -#: selfdrive/ui/layouts/settings/device.py:59 -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "HAYIR" -#: selfdrive/ui/layouts/settings/settings.py:63 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "Ağ" @@ -593,36 +932,72 @@ msgstr "'{username}' için SSH anahtarı bulunamadı" msgid "No release notes available." msgstr "Sürüm notu mevcut değil." -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:134 -msgid "OFFLINE" -msgstr "ÇEVRİMDIŞI" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:127 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "OK" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 -#: selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "ÇEVRİMİÇİ" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 +#, python-format +msgid "Off" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:123 +#, python-format +msgid "Off = Disable Auto Lane Change." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:111 +#, python-format +msgid "Off = Disable LCA.
1 mph = 1.2 km/h." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:72 +#, python-format +msgid "On/Off Road" +msgstr "" + #: selfdrive/ui/widgets/setup.py:20 #, python-format msgid "Open" msgstr "Aç" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "EŞLE" -#: selfdrive/ui/layouts/sidebar.py:142 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" -#: selfdrive/ui/layouts/settings/device.py:62 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:83 +#, python-format +msgid "PQ Steering Patch" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "ÖNİZLEME" @@ -632,7 +1007,7 @@ msgstr "ÖNİZLEME" msgid "PRIME FEATURES:" msgstr "PRIME ÖZELLİKLERİ:" -#: selfdrive/ui/layouts/settings/device.py:48 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "Cihazı Eşle" @@ -647,7 +1022,7 @@ msgstr "Cihazı eşle" msgid "Pair your device to your comma account" msgstr "Cihazınızı comma hesabınızla eşleştirin" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:24 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -661,8 +1036,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "İlk eşleştirmeyi tamamlamak için lütfen Wi‑Fi'a bağlanın" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "Kapat" @@ -677,7 +1052,7 @@ msgstr "" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:25 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -694,18 +1069,29 @@ msgstr "QR Kod Hatası" msgid "REMOVE" msgstr "KALDIR" -#: selfdrive/ui/layouts/settings/device.py:51 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "SIFIRLA" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "GÖZDEN GEÇİR" -#: selfdrive/ui/layouts/settings/device.py:55 -#: selfdrive/ui/layouts/settings/device.py:175 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 +#, python-format +msgid "Rainbow Driving Path like Tesla" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "Yeniden Başlat" @@ -720,7 +1106,7 @@ msgstr "Cihazı Yeniden Başlat" msgid "Reboot and Update" msgstr "Yeniden Başlat ve Güncelle" -#: selfdrive/ui/layouts/settings/toggles.py:27 +#: selfdrive/ui/layouts/settings/toggles.py:28 msgid "" "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 " @@ -729,17 +1115,17 @@ msgstr "" "Araç 31 mph (50 km/h) üzerindeyken sinyal verilmeden algılanan şerit " "çizgisini aştığınızda şeride geri dönmeniz için uyarılar alın." -#: selfdrive/ui/layouts/settings/toggles.py:76 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "Sürücü Kamerasını Kaydet ve Yükle" -#: selfdrive/ui/layouts/settings/toggles.py:82 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "Mikrofon Sesini Kaydet ve Yükle" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." @@ -747,12 +1133,12 @@ msgstr "" "Sürüş sırasında mikrofon sesini kaydedip saklayın. Ses, comma connect'teki " "ön kamera videosuna dahil edilecektir." -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "Mevzuat" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "Rahat" @@ -772,76 +1158,133 @@ msgstr "Uzaktan anlık görüntüler" msgid "Request timed out" msgstr "İstek zaman aşımına uğradı" -#: selfdrive/ui/layouts/settings/device.py:119 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "Sıfırla" -#: selfdrive/ui/layouts/settings/device.py:51 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "Kalibrasyonu Sıfırla" -#: selfdrive/ui/layouts/settings/device.py:65 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:39 +#, python-format +msgid "Reset DP Settings" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:41 +#, python-format +msgid "Reset dragonpilot settings to default and restart the device." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "Eğitim Kılavuzunu İncele" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "" "openpilot'un kurallarını, özelliklerini ve sınırlamalarını gözden geçirin" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:135 +#, python-format +msgid "Road Edge Detection (RED)" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 #, python-format msgid "SELECT" msgstr "" -#: selfdrive/ui/layouts/settings/developer.py:53 +#: selfdrive/ui/layouts/settings/developer.py:59 #, python-format msgid "SSH Keys" msgstr "" -#: system/ui/widgets/network.py:310 +#: system/ui/widgets/network.py:318 #, python-format msgid "Scanning Wi-Fi networks..." msgstr "" +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 +#, python-format +msgid "" +"See https://github.com/eFiniLan/openpilot-ext-radar-addon for more " +"information." +msgstr "" + #: system/ui/widgets/option_dialog.py:36 #, python-format msgid "Select" msgstr "" +#: selfdrive/ui/layouts/settings/device.py:274 +#, python-format +msgid "Select a Make" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:91 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "Bir dil seçin" -#: selfdrive/ui/layouts/settings/device.py:60 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "Seri" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:91 +#, python-format +msgid "Show Last Errors" +msgstr "" + #: selfdrive/ui/widgets/offroad_alerts.py:106 #, python-format msgid "Snooze Update" msgstr "Güncellemeyi Ertele" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "Yazılım" -#: selfdrive/ui/layouts/settings/toggles.py:98 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "Standart" -#: selfdrive/ui/layouts/settings/toggles.py:22 +#: selfdrive/ui/layouts/settings/toggles.py:23 msgid "" "Standard is recommended. In aggressive mode, openpilot will follow lead cars " "closer and be more aggressive with the gas and brake. In relaxed mode " @@ -853,6 +1296,39 @@ msgstr "" "araçlardan daha uzak durur. Desteklenen araçlarda bu kişilikler arasında " "direksiyon mesafe düğmesiyle geçiş yapabilirsiniz." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 +#, python-format +msgid "" +"Std.: Stock behavior.
MAIN+: ACC MAIN on = Display ON.
OP+: OP enabled " +"= Display ON.
MAIN-: ACC MAIN on = Display OFF
OP-: OP enabled = " +"Display OFF." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:238 +#, python-format +msgid "" +"Std.: Stock behaviour.
Warning: Only emits sound when there is a warning." +"
Off: Does not emit any sound at all." +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -864,8 +1340,8 @@ msgstr "Sistem Yanıt Vermiyor" msgid "TAKE CONTROL IMMEDIATELY" msgstr "HEMEN KONTROLÜ DEVRALIN" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:125 -#: selfdrive/ui/layouts/sidebar.py:127 selfdrive/ui/layouts/sidebar.py:129 +#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 +#: selfdrive/ui/layouts/sidebar.py:128 selfdrive/ui/layouts/sidebar.py:130 msgid "TEMP" msgstr "TEMP" @@ -879,7 +1355,22 @@ msgstr "" msgid "Tethering Password" msgstr "" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"openpilot zeka sürücü sisteminde sürücü izleme sistemi açılıp " +"kapatılabilmektedir ancak uzun vadeli aktif durumda tutulması önerilir" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 +#, python-format +msgid "" +"To prevent screen burn-in, hide Speed, MAX Speed, and Steering/DM Icons when " +"the car moves.
Off = Stock Behavior
1 km/h = 0.6 mph" +msgstr "" + +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "Seçenekler" @@ -888,11 +1379,16 @@ msgstr "Seçenekler" msgid "UNINSTALL" msgstr "KALDIR" -#: selfdrive/ui/layouts/home.py:155 +#: selfdrive/ui/layouts/home.py:156 #, python-format msgid "UPDATE" msgstr "GÜNCELLE" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:215 +#, python-format +msgid "USE AT YOUR OWN RISK." +msgstr "" + #: selfdrive/ui/layouts/settings/software.py:72 #: selfdrive/ui/layouts/settings/software.py:163 #, python-format @@ -913,7 +1409,7 @@ msgstr "Güncellemeler yalnızca araç kapalıyken indirilir." msgid "Upgrade Now" msgstr "Şimdi Yükselt" -#: selfdrive/ui/layouts/settings/toggles.py:31 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -921,12 +1417,27 @@ msgstr "" "Sürücüye bakan kameradan veri yükleyin ve sürücü izleme algoritmasını " "geliştirmeye yardımcı olun." -#: selfdrive/ui/layouts/settings/toggles.py:88 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:222 +#, python-format +msgid "Use Buzzer for audiable alerts." +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 +#, python-format +msgid "Use External Radar" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "Metrik Sistemi Kullan" -#: selfdrive/ui/layouts/settings/toggles.py:17 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 +#, python-format +msgid "Use Stock Longitudinal Control" +msgstr "" + +#: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" "Use the openpilot system for adaptive cruise control and lane keep driver " "assistance. Your attention is required at all times to use this feature." @@ -935,21 +1446,41 @@ msgstr "" "sistemini kullanın. Bu özelliği kullanırken her zaman dikkatli olmanız " "gerekir." -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:144 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "ARAÇ" -#: selfdrive/ui/layouts/settings/device.py:67 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "GÖRÜNTÜLE" +#: selfdrive/ui/layouts/settings/device.py:48 +#, python-format +msgid "Vehicle Model" +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:245 +#, python-format +msgid "Vehicle Model list is not a valid format." +msgstr "" + +#: selfdrive/ui/layouts/settings/device.py:239 +#, python-format +msgid "Vehicle Model list not found." +msgstr "" + #: selfdrive/ui/onroad/alert_renderer.py:52 #, python-format msgid "Waiting to start" msgstr "Başlatma bekleniyor" -#: selfdrive/ui/layouts/settings/developer.py:19 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" + +#: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "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 " @@ -964,11 +1495,16 @@ msgstr "" msgid "Welcome to openpilot" msgstr "openpilot'a hoş geldiniz" -#: selfdrive/ui/layouts/settings/toggles.py:20 +#: selfdrive/ui/layouts/settings/toggles.py:21 msgid "When enabled, pressing the accelerator pedal will disengage openpilot." msgstr "" "Etkinleştirildiğinde, gaz pedalına basmak openpilot'u devreden çıkarır." +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:189 +#, python-format +msgid "Why not?" +msgstr "" + #: selfdrive/ui/layouts/sidebar.py:44 msgid "Wi-Fi" msgstr "Wi‑Fi" @@ -978,7 +1514,7 @@ msgstr "Wi‑Fi" msgid "Wi-Fi Network Metered" msgstr "" -#: system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:322 #, python-format msgid "Wrong password" msgstr "" @@ -997,6 +1533,16 @@ msgstr "" "openpilot'u kullanmak için Şartlar ve Koşulları kabul etmelisiniz. Devam " "etmeden önce en güncel şartları https://comma.ai/terms adresinde okuyun." +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 +#, python-format +msgid "[AUTO DETECT]" +msgstr "" + #: selfdrive/ui/onroad/driver_camera_dialog.py:34 #, python-format msgid "camera starting" @@ -1007,12 +1553,25 @@ msgstr "kamera başlatılıyor" msgid "comma prime" msgstr "comma prime" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 +#, python-format +msgid "dashy" +msgstr "" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:258 +#, python-format +msgid "" +"dashy - dragonpilot's all-in-one system hub for you.

Visit http://" +":5088 to access.

Off - Turn off dashy completely.
File: " +"File Manager only.
All: File Manager + Live Stream." +msgstr "" + #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "aşağı" @@ -1022,7 +1581,7 @@ msgstr "aşağı" msgid "failed to check for update" msgstr "güncelleme kontrolü başarısız" -#: system/ui/widgets/network.py:237 system/ui/widgets/network.py:314 +#: system/ui/widgets/network.py:245 system/ui/widgets/network.py:322 #, python-format msgid "for \"{}\"" msgstr "" @@ -1032,12 +1591,12 @@ msgstr "" msgid "km/h" msgstr "km/h" -#: system/ui/widgets/network.py:204 +#: system/ui/widgets/network.py:212 #, python-format msgid "leave blank for automatic configuration" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "sol" @@ -1062,7 +1621,7 @@ msgstr "asla" msgid "now" msgstr "şimdi" -#: selfdrive/ui/layouts/settings/developer.py:71 +#: selfdrive/ui/layouts/settings/developer.py:77 #, python-format msgid "openpilot Longitudinal Control (Alpha)" msgstr "openpilot Boylamsal Kontrol (Alfa)" @@ -1072,7 +1631,7 @@ msgstr "openpilot Boylamsal Kontrol (Alfa)" msgid "openpilot Unavailable" msgstr "openpilot Kullanılamıyor" -#: selfdrive/ui/layouts/settings/toggles.py:158 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1099,7 +1658,7 @@ msgstr "" "göstermek için yola bakan geniş açılı kameraya geçer. Deneysel mod logosu " "sağ üst köşede de gösterilecektir." -#: selfdrive/ui/layouts/settings/device.py:165 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1121,12 +1680,12 @@ msgstr "" "yüklemelerinizi en üst düzeye çıkarmanıza olanak tanır. Daha fazla veri, " "daha büyük modeller demektir; bu da daha iyi Deneysel Mod anlamına gelir." -#: selfdrive/ui/layouts/settings/toggles.py:183 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "openpilot boylamsal kontrolü gelecekteki bir güncellemede gelebilir." -#: selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." @@ -1134,7 +1693,7 @@ msgstr "" "openpilot, cihazın sağa/sola 4° ve yukarı 5° veya aşağı 9° içinde monte " "edilmesini gerektirir." -#: selfdrive/ui/layouts/settings/device.py:134 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "sağ" @@ -1144,7 +1703,7 @@ msgstr "sağ" msgid "unmetered" msgstr "" -#: selfdrive/ui/layouts/settings/device.py:133 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "yukarı" @@ -1164,7 +1723,7 @@ msgstr "güncel, son kontrol {}" msgid "update available" msgstr "güncelleme mevcut" -#: selfdrive/ui/layouts/home.py:169 +#: selfdrive/ui/layouts/home.py:170 #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" @@ -1208,3 +1767,18 @@ msgstr "✓ ABONE" #, python-format msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Firehose Modu 🔥" + +#~ msgid "ERROR" +#~ msgstr "HATA" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "İYİ" + +#~ msgid "HIGH" +#~ msgstr "YÜKSEK" + +#~ msgid "OFFLINE" +#~ msgstr "ÇEVRİMDIŞI" diff --git a/selfdrive/ui/translations/app_zh-CHS.po b/selfdrive/ui/translations/app_zh-CHS.po index 34c9a80..2c75e49 100644 --- a/selfdrive/ui/translations/app_zh-CHS.po +++ b/selfdrive/ui/translations/app_zh-CHS.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-04 20:36+0800\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-22 16:32-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,17 +17,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " 转向扭矩响应校准完成。" -#: selfdrive/ui/layouts/settings/device.py:170 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " 转向扭矩响应校准已完成 {}%。" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " 您的设备朝向 {:.1f}° {} 与 {:.1f}° {}。" @@ -70,7 +70,7 @@ msgstr "### 横向控制 ###" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:142 #, python-format msgid "### Longitudinal ###" -msgstr "### 緃向控制 ###" +msgstr "### 纵向控制 ###" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:97 #, python-format @@ -138,12 +138,12 @@ msgstr "" "制。启用此选项可切换为 openpilot 纵向控制。建议同时启用实验模式。若车辆通电," "更改此设置将会重启 openpilot。" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

转向延迟校准完成。" -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

转向延迟校准已完成 {}%。" @@ -175,19 +175,19 @@ msgstr "APN 设置" msgid "Acknowledge Excessive Actuation" msgstr "确认过度作动" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 #, python-format msgid "" "Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " "appropriate." msgstr "主动巡航模式 (ACM) 可在适当时减少制动,实现更平稳的滑行。" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 #, python-format msgid "Adaptive Experimental Mode (AEM)" msgstr "自适应实验模式 (AEM)" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 #, python-format msgid "" "Adaptive mode switcher between ACC and Blended based on driving context." @@ -198,7 +198,7 @@ msgstr "根据驾驶环境在 ACC 和混合模式之间进行自适应切换。" msgid "Advanced" msgstr "高级" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "激进" @@ -208,6 +208,7 @@ msgstr "激进" msgid "Agree" msgstr "同意" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #, python-format msgid "All" @@ -224,29 +225,34 @@ msgstr "允许 openpilot 在右驾座位上遵守靠右行驶的交通习惯。" msgid "Allows openpilot to always steer to keep the car in its lane." msgstr "允许 openpilot 始终保持转向以将车辆保持在车道内。" -#: selfdrive/ui/layouts/settings/toggles.py:73 +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" -msgstr "始终启用驾驶员监控" +msgstr "驾驶员监控" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 #, python-format msgid "Always-on Lane Keeping Assist (ALKA)" -msgstr "全时置中 (ALKA)" +msgstr "全时居中 (ALKA)" -#: selfdrive/ui/layouts/settings/toggles.py:207 +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " "Experimental mode, on non-release branches." msgstr "openpilot 纵向控制的 alpha 版本可在非发布分支搭配实验模式进行测试。" -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "存储密钥: \"{}\"" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "确定要关机吗?" -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "确定要重启吗?" @@ -256,12 +262,12 @@ msgstr "确定要重启吗?" msgid "Are you sure you want to reset ALL DP SETTINGS to default?" msgstr "您确定要将所有 DP 设置重置为默认值吗?" -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "确定要重置校准吗?" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "Are you sure you want to switch?" msgstr "确定要切换吗?" @@ -279,12 +285,12 @@ msgstr "声音警报" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:122 #, python-format msgid "Auto Lane Change after:" -msgstr "自动变道于:" +msgstr "自动变道:" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:245 #, python-format msgid "Auto Shutdown After" -msgstr "自动关机于" +msgstr "自动关机" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:90 #, python-format @@ -315,7 +321,7 @@ msgstr "" msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "将 connect.comma.ai 添加到主屏幕,像应用一样使用" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "更改" @@ -333,14 +339,12 @@ msgstr "检查" msgid "CHILL MODE ON" msgstr "安稳模式已开启" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "CONFIRM" msgstr "确定" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:135 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:139 +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "CONNECT" @@ -350,8 +354,13 @@ msgstr "CONNECT" msgid "CONNECTING..." msgstr "CONNECTING..." -#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/confirm_dialog.py:23 -#: system/ui/widgets/network.py:326 system/ui/widgets/keyboard.py:81 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "CPU" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "取消" @@ -361,12 +370,12 @@ msgstr "取消" msgid "Cellular Metered" msgstr "蜂窝计量" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "更改语言" -#: selfdrive/ui/layouts/settings/toggles.py:146 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "若车辆通电,更改此设置将重启 openpilot。" @@ -391,7 +400,7 @@ msgstr "当前版本" msgid "DOWNLOAD" msgstr "下载" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 #, python-format msgid "" "DTSC automatically adjusts the vehicle's predicted speed based on upcoming " @@ -426,11 +435,11 @@ msgstr "" "当设备进入行驶模式时,延迟 loggerd 及其相关进程的启动。
这可以防止记录驾驶" "的最初时刻,从而在行程开始时保护位置隐私。" -#: selfdrive/ui/layouts/settings/settings.py:69 +#: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" -msgstr "开发者" +msgstr "开发" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "设备" @@ -451,40 +460,40 @@ msgstr "如果您不希望上传或被服务跟踪,请禁用 Comma connect 服 msgid "Disable Driver Monitoring" msgstr "禁用驾驶员监控" -#: selfdrive/ui/layouts/settings/toggles.py:97 +#: selfdrive/ui/layouts/settings/toggles.py:104 #, python-format msgid "Disable Logging" msgstr "禁用日志记录服务" -#: selfdrive/ui/layouts/settings/toggles.py:103 +#: selfdrive/ui/layouts/settings/toggles.py:110 #, python-format msgid "Disable Updates" msgstr "禁用自动更新" -#: selfdrive/ui/layouts/settings/toggles.py:35 +#: selfdrive/ui/layouts/settings/toggles.py:42 msgid "Disable logging service" msgstr "禁用日志记录服务" -#: selfdrive/ui/layouts/settings/toggles.py:36 +#: selfdrive/ui/layouts/settings/toggles.py:43 msgid "Disable update service" msgstr "禁用自动更新" -#: selfdrive/ui/layouts/settings/toggles.py:61 +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "踩下加速踏板时脱离" -#: selfdrive/ui/layouts/settings/device.py:196 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "脱离以关机" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "脱离以重启" -#: selfdrive/ui/layouts/settings/device.py:115 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "脱离以重置校准" @@ -492,14 +501,14 @@ msgstr "脱离以重置校准" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:195 #, python-format msgid "Display Lead Stats" -msgstr "显示前车统计信息" +msgstr "前车信息" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:228 #, python-format msgid "Display Mode" msgstr "显示模式" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "以 km/h 显示速度(非 mph)。" @@ -513,7 +522,12 @@ msgstr "" "显示前车和/或雷达跟踪点的统计信息。
前车:仅前车统计信息
雷达:仅雷达跟" "踪点统计信息
全部:前车和雷达统计信息
注意:雷达选项仅适用于某些车型。" -#: selfdrive/ui/layouts/settings/device.py:71 +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "驾驶员分心检测等级" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "Dongle ID" @@ -528,17 +542,21 @@ msgstr "车门自动上锁/解锁" msgid "Download" msgstr "下载" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "Dp" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "车内摄像头" -#: selfdrive/ui/layouts/settings/toggles.py:111 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "驾驶风格" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 #, python-format msgid "Dynamic Turn Speed Control (DTSC)" msgstr "动态转弯速度控制 (DTSC)" @@ -548,10 +566,6 @@ msgstr "动态转弯速度控制 (DTSC)" msgid "EDIT" msgstr "编辑" -#: selfdrive/ui/layouts/sidebar.py:139 -msgid "ERROR" -msgstr "错误" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -561,8 +575,8 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "实验模式已开启" +#: selfdrive/ui/layouts/settings/toggles.py:279 #: selfdrive/ui/layouts/settings/developer.py:173 -#: selfdrive/ui/layouts/settings/toggles.py:249 #, python-format msgid "Enable" msgstr "启用" @@ -572,7 +586,7 @@ msgstr "启用" msgid "Enable ADB" msgstr "启用 ADB" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 #, python-format msgid "Enable Adaptive Coasting Mode (ACM)" msgstr "启用主动巡航模式 (ACM)" @@ -582,7 +596,7 @@ msgstr "启用主动巡航模式 (ACM)" msgid "Enable Beep (Warning)" msgstr "启用蜂鸣声(警告)" -#: selfdrive/ui/layouts/settings/toggles.py:67 +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "启用车道偏离警示" @@ -612,11 +626,7 @@ msgstr "启用 TSS1 SnG 模块" msgid "Enable Tethering" msgstr "启用网络共享" -#: selfdrive/ui/layouts/settings/toggles.py:31 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "即使未启用 openpilot 也启用驾驶员监控。" - -#: selfdrive/ui/layouts/settings/toggles.py:49 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "启用 openpilot" @@ -629,7 +639,7 @@ msgid "" msgstr "" "允许 openpilot 在时速超过 20 公里时自动锁门,并在换到停车挡时自动解锁。" -#: selfdrive/ui/layouts/settings/toggles.py:210 +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -656,6 +666,11 @@ msgstr "输入新的网络共享密码" msgid "Enter password" msgstr "输入密码" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "请输入您的车辆安全密钥" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -666,12 +681,12 @@ msgstr "输入您的 GitHub 用户名" msgid "Error" msgstr "错误" -#: selfdrive/ui/layouts/settings/toggles.py:55 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "实验模式" -#: selfdrive/ui/layouts/settings/toggles.py:202 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -693,10 +708,6 @@ msgstr "文件" msgid "Finish Setup" msgstr "完成设置" -#: selfdrive/ui/layouts/settings/settings.py:68 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Firehose 模式" @@ -739,7 +750,7 @@ msgstr "" "\n" "我跑什么软件有区别吗?有,只有上游 openpilot(及特定分支)可用于训练。" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "" "Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" @@ -753,32 +764,24 @@ msgstr "忘记" #: system/ui/widgets/network.py:327 #, python-format msgid "Forget Wi-Fi Network \"{}\"?" -msgstr "" +msgstr "是否忘记 Wi-Fi 网络“{}”?" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 -msgid "GOOD" -msgstr "良好" - -#: selfdrive/ui/layouts/settings/device.py:65 -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Offroad" -msgstr "进入非行驶中" +msgstr "非行驶中" -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Onroad" -msgstr "进入行驶中" +msgstr "行驶中" #: selfdrive/ui/widgets/pairing_dialog.py:128 #, python-format msgid "Go to https://connect.comma.ai on your phone" msgstr "在手机上前往 https://connect.comma.ai" -#: selfdrive/ui/layouts/sidebar.py:130 -msgid "HIGH" -msgstr "高" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" @@ -787,13 +790,14 @@ msgstr "隐藏网络" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:176 #, python-format msgid "Hide HUD When Moves above:" -msgstr "当移动速度超过以下值时隐藏 HUD:" +msgstr "隐藏 HUD:" #: selfdrive/ui/layouts/settings/firehose.py:140 #, python-format msgid "INACTIVE: connect to an unmetered network" msgstr "未启用:请连接不限流量网络" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -810,11 +814,30 @@ msgstr "IP 地址" msgid "Install Update" msgstr "安装更新" +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" +"密钥格式无效。密钥必须仅包含十六进制字符(0-9,a-f)。" + #: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "摇杆调试模式" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" +"密钥不能为空。" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" +"密钥长度必须恰好为32个字符。当前长度:{}个字符。" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "加载中" @@ -826,17 +849,39 @@ msgstr "LTE" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:110 #, python-format msgid "Lane Change Assist At:" -msgstr "变道辅助始于:" +msgstr "变道辅助:" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "前车" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "宽松" #: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "纵向操作模式" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" +"主界面+" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" +"主界面" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" -msgstr "最大" +msgstr "最高定速" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:76 #, python-format @@ -849,17 +894,22 @@ msgid "" "Maximize your training data uploads to improve openpilot's driving models." msgstr "最大化上传训练数据,以改进 openpilot 的驾驶模型。" -#: selfdrive/ui/layouts/settings/device.py:71 -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "适中" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "无" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" -msgstr "否" +msgstr "未识别" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "网络" @@ -878,24 +928,32 @@ msgstr "未找到用户“{}”的 SSH 密钥" msgid "No release notes available." msgstr "暂无发行说明。" -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:135 -msgid "OFFLINE" -msgstr "离线" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:128 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "确定" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "在线" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" +"OP+" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" +"OP-" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 @@ -913,7 +971,7 @@ msgstr "关闭 = 禁用自动变道。" msgid "Off = Disable LCA.
1 mph = 1.2 km/h." msgstr "关闭 = 禁用 LCA。
1 mph = 1.2 km/h。" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "On/Off Road" msgstr "行驶中/非行驶中" @@ -923,12 +981,12 @@ msgstr "行驶中/非行驶中" msgid "Open" msgstr "打开" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "配对" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" @@ -937,7 +995,7 @@ msgstr "PANDA" msgid "PQ Steering Patch" msgstr "PQ 转向补丁" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "预览" @@ -947,7 +1005,7 @@ msgstr "预览" msgid "PRIME FEATURES:" msgstr "PRIME 功能:" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "配对设备" @@ -962,7 +1020,7 @@ msgstr "配对设备" msgid "Pair your device to your comma account" msgstr "将设备配对到您的 comma 账号" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -975,8 +1033,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "请连接 Wi‑Fi 以完成初始配对" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "关机" @@ -991,7 +1049,7 @@ msgstr "在计量制 Wi‑Fi 连接时避免大量上传" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "在计量制蜂窝网络时避免大量上传" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -1007,23 +1065,28 @@ msgid "REMOVE" msgstr "移除" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "重置" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "查看" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "雷达" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 #, python-format msgid "Rainbow Driving Path like Tesla" -msgstr "像特斯拉一样的彩虹驾驶路径" +msgstr "彩虹路径" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "重启" @@ -1047,29 +1110,29 @@ msgstr "" "当车辆以超过 31 mph(50 km/h)行驶且未打转向灯越过检测到的车道线时,接收引导" "回车道的警报。" -#: selfdrive/ui/layouts/settings/toggles.py:79 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "录制并上传车内摄像头" -#: selfdrive/ui/layouts/settings/toggles.py:85 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "录制并上传麦克风音频" -#: selfdrive/ui/layouts/settings/toggles.py:34 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." msgstr "" "行驶时录制并保存麦克风音频。音频将包含在 comma connect 的行车记录视频中。" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "法规" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "从容" @@ -1090,12 +1153,12 @@ msgid "Request timed out" msgstr "请求超时" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "重置" -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "重置校准" @@ -1110,12 +1173,12 @@ msgstr "重置 DP 设置" msgid "Reset dragonpilot settings to default and restart the device." msgstr "将 dragonpilot 设置重置为默认值并重新启动设备。" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" -msgstr "查看训练指南" +msgstr "新手指南" -#: selfdrive/ui/layouts/settings/device.py:29 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "查看 openpilot 的规则、功能与限制" @@ -1124,8 +1187,8 @@ msgstr "查看 openpilot 的规则、功能与限制" msgid "Road Edge Detection (RED)" msgstr "路边检测 (RED)" +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 -#: selfdrive/ui/layouts/settings/device.py:45 #, python-format msgid "SELECT" msgstr "选择" @@ -1140,6 +1203,11 @@ msgstr "SSH 密钥" msgid "Scanning Wi-Fi networks..." msgstr "正在扫描 Wi‑Fi 网络…" +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "安全密钥" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 #, python-format msgid "" @@ -1153,9 +1221,14 @@ msgstr "" msgid "Select" msgstr "选择" -#: selfdrive/ui/layouts/settings/device.py:256 +#: selfdrive/ui/layouts/settings/device.py:274 #, python-format -msgid "Select a Vehicle" +msgid "Select a Make" +msgstr "选择品牌" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" msgstr "选择车型" #: selfdrive/ui/layouts/settings/software.py:183 @@ -1163,16 +1236,27 @@ msgstr "选择车型" msgid "Select a branch" msgstr "选择分支" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "选择语言" -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "序列号" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" +"设置驾驶员分心检测的敏感度。严格:非常敏感,轻微分心即发出警告。适中:在敏感" +"度与误报之间取得平衡。宽松:仅在明显分心时提醒。关闭:禁用驾驶员分心检测与控" +"制功能。" + #: selfdrive/ui/layouts/settings/developer.py:91 #, python-format msgid "Show" @@ -1188,11 +1272,11 @@ msgstr "显示上次错误" msgid "Snooze Update" msgstr "延后更新" -#: selfdrive/ui/layouts/settings/settings.py:67 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "软件" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "标准" @@ -1208,6 +1292,12 @@ msgstr "" "容模式下,会与前车保持更远距离。在支持的车型上,可用方向盘距离按钮切换这些风" "格。" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "原厂" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 #, python-format msgid "" @@ -1227,6 +1317,19 @@ msgid "" msgstr "" "Std.:原厂行为。
Warning:仅在有警告时发出声音。
Off:不发出任何声音。" +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "严格" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" +"成功!\n重启comma以使openpilot使用该密钥" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -1253,6 +1356,13 @@ msgstr "目标分支" msgid "Tethering Password" msgstr "网络共享密码" +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "" +"openpilot智能驾驶辅助系统的驾驶员监控系统可切换开启/关闭,但建议长期启用" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 #, python-format msgid "" @@ -1262,9 +1372,9 @@ msgstr "" "为防止屏幕老化,当车辆移动时隐藏速度、最大速度和转向/DM 图标。
Off = 原厂" "行为
1 km/h = 0.6 mph" -#: selfdrive/ui/layouts/settings/settings.py:66 +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" -msgstr "切换" +msgstr "设置" #: selfdrive/ui/layouts/settings/software.py:72 #, python-format @@ -1287,7 +1397,7 @@ msgstr "风险自负。" msgid "Uninstall" msgstr "卸载" -#: selfdrive/ui/layouts/sidebar.py:118 +#: selfdrive/ui/layouts/sidebar.py:117 msgid "Unknown" msgstr "未知" @@ -1301,7 +1411,7 @@ msgstr "仅在车辆熄火时下载更新。" msgid "Upgrade Now" msgstr "立即升级" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -1315,9 +1425,9 @@ msgstr "使用蜂鸣器发出声音警报。" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:145 #, python-format msgid "Use External Radar" -msgstr "使用外部雷达" +msgstr "外部雷达" -#: selfdrive/ui/layouts/settings/toggles.py:91 +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "使用公制" @@ -1325,7 +1435,7 @@ msgstr "使用公制" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:66 #, python-format msgid "Use Stock Longitudinal Control" -msgstr "使用原厂纵向控制" +msgstr "原厂纵向" #: selfdrive/ui/layouts/settings/toggles.py:18 msgid "" @@ -1335,26 +1445,26 @@ msgstr "" "使用 openpilot 进行自适应巡航与车道保持辅助。使用此功能时,您必须始终保持专" "注。" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "车辆" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "查看" -#: selfdrive/ui/layouts/settings/device.py:45 +#: selfdrive/ui/layouts/settings/device.py:48 #, python-format msgid "Vehicle Model" msgstr "车型" -#: selfdrive/ui/layouts/settings/device.py:236 +#: selfdrive/ui/layouts/settings/device.py:245 #, python-format msgid "Vehicle Model list is not a valid format." msgstr "车型列表的格式无效。" -#: selfdrive/ui/layouts/settings/device.py:230 +#: selfdrive/ui/layouts/settings/device.py:239 #, python-format msgid "Vehicle Model list not found." msgstr "未找到车型列表。" @@ -1364,6 +1474,11 @@ msgstr "未找到车型列表。" msgid "Waiting to start" msgstr "等待开始" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "警告" + #: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "Warning: This grants SSH access to all public keys in your GitHub settings. " @@ -1415,8 +1530,12 @@ msgstr "" "您必须接受条款与条件才能使用 openpilot。继续前请阅读 https://comma.ai/terms " "上的最新条款。" -#: selfdrive/ui/layouts/settings/device.py:46 -#: selfdrive/ui/layouts/settings/device.py:225 +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 #, python-format msgid "[AUTO DETECT]" msgstr "[自动检测]" @@ -1429,7 +1548,7 @@ msgstr "相机启动中" #: selfdrive/ui/widgets/prime.py:63 #, python-format msgid "comma prime" -msgstr "comma prime" +msgstr "comma 高级会员" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 #, python-format @@ -1444,15 +1563,15 @@ msgid "" "File Manager only.
All: File Manager + Live Stream." msgstr "" "dashy - 为您打造的 dragonpilot 多合一系统中心。

请访问 http://" -":5088 进行访问。

Off - 完全关闭 dashy。
File:仅文件管" -"理器。
All:文件管理器 + 直播。" +":5088 进行访问。

Off - 完全关闭 dashy。
File:仅文件管理" +"器。
All:文件管理器 + 直播。" #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "默认" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "下" @@ -1477,7 +1596,7 @@ msgstr "km/h" msgid "leave blank for automatic configuration" msgstr "留空以自动配置" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "左" @@ -1512,7 +1631,7 @@ msgstr "openpilot 纵向控制(Alpha)" msgid "openpilot Unavailable" msgstr "openpilot 无法使用" -#: selfdrive/ui/layouts/settings/toggles.py:179 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1534,7 +1653,7 @@ msgstr "" "视化
在低速时,驾驶可视化将切换至面向道路的广角摄像头以更好显示部分转" "弯。右上角也会显示实验模式图标。" -#: selfdrive/ui/layouts/settings/device.py:177 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1556,18 +1675,18 @@ msgstr "" "Firehose 模式可让您最大化上传训练数据,以改进 openpilot 的驾驶模型。更多数据" "意味着更大的模型,也意味着更好的实验模式。" -#: selfdrive/ui/layouts/settings/toggles.py:204 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "openpilot 纵向控制可能会在未来更新中提供。" -#: selfdrive/ui/layouts/settings/device.py:28 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." msgstr "openpilot 要求设备安装在左右 4°、上 5° 或下 9° 以内。" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "右" @@ -1577,7 +1696,7 @@ msgstr "右" msgid "unmetered" msgstr "不限流量" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "上" @@ -1601,31 +1720,31 @@ msgstr "有可用更新" #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" -msgstr[0] "" +msgstr[0] "{} 条警报" #: selfdrive/ui/layouts/settings/software.py:40 #, python-format msgid "{} day ago" msgid_plural "{} days ago" -msgstr[0] "" +msgstr[0] "{} 天前" #: selfdrive/ui/layouts/settings/software.py:37 #, python-format msgid "{} hour ago" msgid_plural "{} hours ago" -msgstr[0] "" +msgstr[0] "{} 小时前" #: selfdrive/ui/layouts/settings/software.py:34 #, python-format msgid "{} minute ago" msgid_plural "{} minutes ago" -msgstr[0] "" +msgstr[0] "{} 分钟前" #: selfdrive/ui/layouts/settings/firehose.py:111 #, python-format msgid "{} segment of your driving is in the training dataset so far." msgid_plural "{} segments of your driving is in the training dataset so far." -msgstr[0] "" +msgstr[0] "目前已有 {} 个您的驾驶片段被纳入训练数据集。" #: selfdrive/ui/widgets/prime.py:62 #, python-format @@ -1637,10 +1756,29 @@ msgstr "✓ 已订阅" msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Firehose 模式 🔥" +#~ msgid "ERROR" +#~ msgstr "错误" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + #, python-format #~ msgid "Forget Wi-Fi Network \"{}\"" #~ msgstr "要忘记 Wi‑Fi 网络“{}”吗?" +#~ msgid "GOOD" +#~ msgstr "良好" + +#~ msgid "HIGH" +#~ msgstr "高" + +#~ msgid "OFFLINE" +#~ msgstr "离线" + +#, python-format +#~ msgid "Select a Vehicle" +#~ msgstr "选择车型" + #, python-format #~ msgid "{0} ALERT" #~ msgid_plural "{0} ALERTS" diff --git a/selfdrive/ui/translations/app_zh-CHT.po b/selfdrive/ui/translations/app_zh-CHT.po index 7fb0f67..171b6a8 100644 --- a/selfdrive/ui/translations/app_zh-CHT.po +++ b/selfdrive/ui/translations/app_zh-CHT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-04 20:36+0800\n" +"POT-Creation-Date: 2025-11-14 15:51+0800\n" "PO-Revision-Date: 2025-10-22 16:32-0700\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,17 +17,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: selfdrive/ui/layouts/settings/device.py:172 +#: selfdrive/ui/layouts/settings/device.py:181 #, python-format msgid " Steering torque response calibration is complete." msgstr " 轉向扭矩回應校正完成。" -#: selfdrive/ui/layouts/settings/device.py:170 +#: selfdrive/ui/layouts/settings/device.py:179 #, python-format msgid " Steering torque response calibration is {}% complete." msgstr " 轉向扭矩回應校正已完成 {}%。" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " 您的裝置朝向 {:.1f}° {} 與 {:.1f}° {}。" @@ -138,12 +138,12 @@ msgstr "" "制。啟用此選項可切換為 openpilot 縱向控制。建議同時啟用實驗模式。若車輛通電," "變更此設定將會重新啟動 openpilot。" -#: selfdrive/ui/layouts/settings/device.py:160 +#: selfdrive/ui/layouts/settings/device.py:169 #, python-format msgid "

Steering lag calibration is complete." msgstr "

轉向延遲校正完成。" -#: selfdrive/ui/layouts/settings/device.py:158 +#: selfdrive/ui/layouts/settings/device.py:167 #, python-format msgid "

Steering lag calibration is {}% complete." msgstr "

轉向延遲校正已完成 {}%。" @@ -175,19 +175,19 @@ msgstr "APN 設定" msgid "Acknowledge Excessive Actuation" msgstr "確認過度作動" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 #, python-format msgid "" "Adaptive Coasting Mode (ACM) reduces braking to allow smoother coasting when " "appropriate." msgstr "主動巡航模式 (ACM) 可在適當時減少煞車,實現更平穩的滑行。" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 #, python-format msgid "Adaptive Experimental Mode (AEM)" msgstr "自適應實驗模式 (AEM)" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:160 #, python-format msgid "" "Adaptive mode switcher between ACC and Blended based on driving context." @@ -198,7 +198,7 @@ msgstr "根據駕駛環境在 ACC 和混合模式之間進行自適應切換。" msgid "Advanced" msgstr "進階" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Aggressive" msgstr "積極" @@ -208,6 +208,7 @@ msgstr "積極" msgid "Agree" msgstr "同意" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #, python-format msgid "All" @@ -224,29 +225,35 @@ msgstr "允許 openpilot 在右駕座位上遵守靠右行駛的交通習慣。" msgid "Allows openpilot to always steer to keep the car in its lane." msgstr "允許 openpilot 始終保持轉向以將車輛保持在車道內。" -#: selfdrive/ui/layouts/settings/toggles.py:73 +#: selfdrive/ui/layouts/settings/toggles.py:80 #, python-format msgid "Always-On Driver Monitoring" -msgstr "持續啟用駕駛監控" +msgstr "駕駛監控" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:103 #, python-format msgid "Always-on Lane Keeping Assist (ALKA)" msgstr "全時置中 (ALKA)" -#: selfdrive/ui/layouts/settings/toggles.py:207 +#: selfdrive/ui/layouts/settings/toggles.py:230 #, python-format msgid "" "An alpha version of openpilot longitudinal control can be tested, along with " "Experimental mode, on non-release branches." msgstr "openpilot 縱向控制的 alpha 版本可於非發行分支搭配實驗模式進行測試。" -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Archived key: \"{}\"" +msgstr "" +"已歸檔金鑰:\"{}\"" + +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Are you sure you want to power off?" msgstr "確定要關機嗎?" -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Are you sure you want to reboot?" msgstr "確定要重新啟動嗎?" @@ -256,12 +263,12 @@ msgstr "確定要重新啟動嗎?" msgid "Are you sure you want to reset ALL DP SETTINGS to default?" msgstr "您確定要將所有 DP 設定重設為預設值嗎?" -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Are you sure you want to reset calibration?" msgstr "確定要重設校正嗎?" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "Are you sure you want to switch?" msgstr "您確定要切換嗎?" @@ -315,7 +322,7 @@ msgstr "" msgid "Bookmark connect.comma.ai to your home screen to use it like an app" msgstr "將 connect.comma.ai 加到主畫面,像 App 一樣使用" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "CHANGE" msgstr "變更" @@ -333,14 +340,12 @@ msgstr "檢查" msgid "CHILL MODE ON" msgstr "安穩模式已開啟" -#: selfdrive/ui/layouts/settings/device.py:273 +#: selfdrive/ui/layouts/settings/device.py:308 #, python-format msgid "CONFIRM" msgstr "確定" -#: system/ui/widgets/network.py:155 selfdrive/ui/layouts/sidebar.py:73 -#: selfdrive/ui/layouts/sidebar.py:135 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:139 +#: system/ui/widgets/network.py:155 #, python-format msgid "CONNECT" msgstr "CONNECT" @@ -350,8 +355,13 @@ msgstr "CONNECT" msgid "CONNECTING..." msgstr "CONNECTING..." -#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/confirm_dialog.py:23 -#: system/ui/widgets/network.py:326 system/ui/widgets/keyboard.py:81 +#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:136 +#: selfdrive/ui/layouts/sidebar.py:138 selfdrive/ui/layouts/sidebar.py:140 +msgid "CPU" +msgstr "CPU" + +#: system/ui/widgets/network.py:326 system/ui/widgets/confirm_dialog.py:23 +#: system/ui/widgets/option_dialog.py:35 system/ui/widgets/keyboard.py:81 #, python-format msgid "Cancel" msgstr "取消" @@ -361,12 +371,12 @@ msgstr "取消" msgid "Cellular Metered" msgstr "行動網路計量" -#: selfdrive/ui/layouts/settings/device.py:80 +#: selfdrive/ui/layouts/settings/device.py:89 #, python-format msgid "Change Language" msgstr "變更語言" -#: selfdrive/ui/layouts/settings/toggles.py:146 +#: selfdrive/ui/layouts/settings/toggles.py:163 #, python-format msgid "Changing this setting will restart openpilot if the car is powered on." msgstr "若車輛通電,變更此設定將重新啟動 openpilot。" @@ -391,7 +401,7 @@ msgstr "目前版本" msgid "DOWNLOAD" msgstr "下載" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:153 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:167 #, python-format msgid "" "DTSC automatically adjusts the vehicle's predicted speed based on upcoming " @@ -426,11 +436,11 @@ msgstr "" "當裝置進入行駛模式時,延遲 loggerd 及相關行程的啟動。
這可以防止記錄駕駛的" "最初時刻,從而在旅程開始時保護位置隱私。" -#: selfdrive/ui/layouts/settings/settings.py:69 +#: selfdrive/ui/layouts/settings/settings.py:67 msgid "Developer" msgstr "開發人員" -#: selfdrive/ui/layouts/settings/settings.py:64 +#: selfdrive/ui/layouts/settings/settings.py:63 msgid "Device" msgstr "裝置" @@ -451,40 +461,40 @@ msgstr "如果您不希望上傳或被服務追蹤,請停用 Comma connect 服 msgid "Disable Driver Monitoring" msgstr "停用駕駛員監控" -#: selfdrive/ui/layouts/settings/toggles.py:97 +#: selfdrive/ui/layouts/settings/toggles.py:104 #, python-format msgid "Disable Logging" msgstr "停用日誌記錄服務" -#: selfdrive/ui/layouts/settings/toggles.py:103 +#: selfdrive/ui/layouts/settings/toggles.py:110 #, python-format msgid "Disable Updates" msgstr "停用自動更新" -#: selfdrive/ui/layouts/settings/toggles.py:35 +#: selfdrive/ui/layouts/settings/toggles.py:42 msgid "Disable logging service" msgstr "停用日誌記錄服務" -#: selfdrive/ui/layouts/settings/toggles.py:36 +#: selfdrive/ui/layouts/settings/toggles.py:43 msgid "Disable update service" msgstr "停用自動更新" -#: selfdrive/ui/layouts/settings/toggles.py:61 +#: selfdrive/ui/layouts/settings/toggles.py:68 #, python-format msgid "Disengage on Accelerator Pedal" msgstr "踩下加速踏板時脫離" -#: selfdrive/ui/layouts/settings/device.py:196 +#: selfdrive/ui/layouts/settings/device.py:205 #, python-format msgid "Disengage to Power Off" msgstr "脫離以關機" -#: selfdrive/ui/layouts/settings/device.py:184 +#: selfdrive/ui/layouts/settings/device.py:193 #, python-format msgid "Disengage to Reboot" msgstr "脫離以重新啟動" -#: selfdrive/ui/layouts/settings/device.py:115 +#: selfdrive/ui/layouts/settings/device.py:124 #, python-format msgid "Disengage to Reset Calibration" msgstr "脫離以重設校正" @@ -499,7 +509,7 @@ msgstr "顯示前車統計資訊" msgid "Display Mode" msgstr "顯示模式" -#: selfdrive/ui/layouts/settings/toggles.py:33 +#: selfdrive/ui/layouts/settings/toggles.py:40 msgid "Display speed in km/h instead of mph." msgstr "以 km/h 顯示速度(非 mph)。" @@ -513,7 +523,12 @@ msgstr "" "顯示前車和/或雷達追蹤點的統計資訊。
前車:僅前車統計資訊
雷達:僅雷達追" "蹤點統計資訊
全部:前車和雷達統計資訊
注意:雷達選項僅適用於某些車型。" -#: selfdrive/ui/layouts/settings/device.py:71 +#: selfdrive/ui/layouts/settings/toggles.py:128 +#, python-format +msgid "Distraction Detection Level" +msgstr "分心偵測等級" + +#: selfdrive/ui/layouts/settings/device.py:78 #, python-format msgid "Dongle ID" msgstr "Dongle ID" @@ -528,17 +543,21 @@ msgstr "車門自動上鎖/解鎖" msgid "Download" msgstr "下載" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/settings.py:68 +msgid "Dp" +msgstr "Dp" + +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "Driver Camera" msgstr "車內鏡頭" -#: selfdrive/ui/layouts/settings/toggles.py:111 +#: selfdrive/ui/layouts/settings/toggles.py:118 #, python-format msgid "Driving Personality" msgstr "駕駛風格" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:166 #, python-format msgid "Dynamic Turn Speed Control (DTSC)" msgstr "動態轉彎速度控制 (DTSC)" @@ -548,10 +567,6 @@ msgstr "動態轉彎速度控制 (DTSC)" msgid "EDIT" msgstr "編輯" -#: selfdrive/ui/layouts/sidebar.py:139 -msgid "ERROR" -msgstr "錯誤" - #: selfdrive/ui/layouts/sidebar.py:45 msgid "ETH" msgstr "ETH" @@ -561,8 +576,8 @@ msgstr "ETH" msgid "EXPERIMENTAL MODE ON" msgstr "實驗模式已開啟" +#: selfdrive/ui/layouts/settings/toggles.py:279 #: selfdrive/ui/layouts/settings/developer.py:173 -#: selfdrive/ui/layouts/settings/toggles.py:249 #, python-format msgid "Enable" msgstr "啟用" @@ -572,7 +587,7 @@ msgstr "啟用" msgid "Enable ADB" msgstr "啟用 ADB" -#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:159 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:152 #, python-format msgid "Enable Adaptive Coasting Mode (ACM)" msgstr "啟用主動巡航模式 (ACM)" @@ -582,7 +597,7 @@ msgstr "啟用主動巡航模式 (ACM)" msgid "Enable Beep (Warning)" msgstr "啟用蜂鳴聲(警告)" -#: selfdrive/ui/layouts/settings/toggles.py:67 +#: selfdrive/ui/layouts/settings/toggles.py:74 #, python-format msgid "Enable Lane Departure Warnings" msgstr "啟用偏離車道警示" @@ -612,11 +627,7 @@ msgstr "啟用 TSS1 SnG 模組" msgid "Enable Tethering" msgstr "啟用網路共享" -#: selfdrive/ui/layouts/settings/toggles.py:31 -msgid "Enable driver monitoring even when openpilot is not engaged." -msgstr "即使未啟動 openpilot 亦啟用駕駛監控。" - -#: selfdrive/ui/layouts/settings/toggles.py:49 +#: selfdrive/ui/layouts/settings/toggles.py:56 #, python-format msgid "Enable openpilot" msgstr "啟用 openpilot" @@ -629,7 +640,7 @@ msgid "" msgstr "" "允許 openpilot 在時速超過 20 公里時自動鎖門,並在換到停車擋時自動解鎖。" -#: selfdrive/ui/layouts/settings/toggles.py:210 +#: selfdrive/ui/layouts/settings/toggles.py:233 #, python-format msgid "" "Enable the openpilot longitudinal control (alpha) toggle to allow " @@ -656,6 +667,12 @@ msgstr "輸入新的網路共享密碼" msgid "Enter password" msgstr "輸入密碼" +#: selfdrive/ui/layouts/settings/device.py:391 +#, python-format +msgid "Enter your Car Security Key" +msgstr "" +"輸入您的車輛安全金鑰" + #: selfdrive/ui/widgets/ssh_key.py:89 #, python-format msgid "Enter your GitHub username" @@ -666,12 +683,12 @@ msgstr "輸入您的 GitHub 使用者名稱" msgid "Error" msgstr "錯誤" -#: selfdrive/ui/layouts/settings/toggles.py:55 +#: selfdrive/ui/layouts/settings/toggles.py:62 #, python-format msgid "Experimental Mode" msgstr "實驗模式" -#: selfdrive/ui/layouts/settings/toggles.py:202 +#: selfdrive/ui/layouts/settings/toggles.py:225 #, python-format msgid "" "Experimental mode is currently unavailable on this car since the car's stock " @@ -693,10 +710,6 @@ msgstr "檔案" msgid "Finish Setup" msgstr "完成設定" -#: selfdrive/ui/layouts/settings/settings.py:68 -msgid "Firehose" -msgstr "Firehose" - #: selfdrive/ui/layouts/settings/firehose.py:18 msgid "Firehose Mode" msgstr "Firehose 模式" @@ -739,7 +752,7 @@ msgstr "" "\n" "我跑什麼軟體有差嗎?有,只有上游 openpilot(及特定分支)可用於訓練。" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "" "Force openpilot to go into onroad/offroad state.
(e.g. for update purpose)" @@ -755,17 +768,13 @@ msgstr "忘記" msgid "Forget Wi-Fi Network \"{}\"?" msgstr "要忘記 Wi‑Fi 網路「{}」嗎?" -#: selfdrive/ui/layouts/sidebar.py:71 selfdrive/ui/layouts/sidebar.py:126 -msgid "GOOD" -msgstr "良好" - -#: selfdrive/ui/layouts/settings/device.py:65 -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Offroad" msgstr "進入非行駛中" -#: selfdrive/ui/layouts/settings/device.py:271 +#: selfdrive/ui/layouts/settings/device.py:306 #, python-format msgid "Go Onroad" msgstr "進入行駛中" @@ -775,10 +784,6 @@ msgstr "進入行駛中" msgid "Go to https://connect.comma.ai on your phone" msgstr "在手機上前往 https://connect.comma.ai" -#: selfdrive/ui/layouts/sidebar.py:130 -msgid "HIGH" -msgstr "高" - #: system/ui/widgets/network.py:155 #, python-format msgid "Hidden Network" @@ -794,6 +799,7 @@ msgstr "當移動速度超過以下值時隱藏 HUD:" msgid "INACTIVE: connect to an unmetered network" msgstr "未啟用:請連接不限流量網路" +#: selfdrive/ui/layouts/settings/device.py:81 #: selfdrive/ui/layouts/settings/software.py:53 #: selfdrive/ui/layouts/settings/software.py:136 #, python-format @@ -810,11 +816,30 @@ msgstr "IP 位址" msgid "Install Update" msgstr "安裝更新" +#: selfdrive/ui/layouts/settings/device.py:381 +#, python-format +msgid "" +"Invalid key format. Key must contain only hexadecimal characters (0-9, a-f)." +msgstr "" +"金鑰格式無效。金鑰必須僅包含十六進位字元(0-9, a-f)。" + #: selfdrive/ui/layouts/settings/developer.py:62 #, python-format msgid "Joystick Debug Mode" msgstr "搖桿除錯模式" +#: selfdrive/ui/layouts/settings/device.py:375 +#, python-format +msgid "Key cannot be empty." +msgstr "" +"金鑰不可為空。" + +#: selfdrive/ui/layouts/settings/device.py:378 +#, python-format +msgid "Key must be exactly 32 characters long. Current length: {} characters." +msgstr "" +"金鑰必須恰好為32個字元長。目前長度:{} 個字元。" + #: selfdrive/ui/widgets/ssh_key.py:29 msgid "LOADING" msgstr "載入中" @@ -828,11 +853,34 @@ msgstr "LTE" msgid "Lane Change Assist At:" msgstr "變換車道輔助始於:" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Lead" +msgstr "" +"引導" + +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Lenient" +msgstr "寬鬆" + #: selfdrive/ui/layouts/settings/developer.py:70 #, python-format msgid "Longitudinal Maneuver Mode" msgstr "縱向操作模式" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN+" +msgstr "" +"主畫面+" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "MAIN-" +msgstr "" +"主畫面" + #: selfdrive/ui/onroad/hud_renderer.py:148 #, python-format msgid "MAX" @@ -849,17 +897,22 @@ msgid "" "Maximize your training data uploads to improve openpilot's driving models." msgstr "最大化上傳訓練資料,以改進 openpilot 的駕駛模型。" -#: selfdrive/ui/layouts/settings/device.py:71 -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Moderate" +msgstr "適中" + +#: selfdrive/ui/layouts/settings/device.py:78 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "N/A" msgstr "無" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "NO" msgstr "否" -#: selfdrive/ui/layouts/settings/settings.py:65 +#: selfdrive/ui/layouts/settings/settings.py:64 msgid "Network" msgstr "網路" @@ -878,24 +931,32 @@ msgstr "找不到使用者 '{}' 的 SSH 金鑰" msgid "No release notes available." msgstr "無可用發行說明。" -#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:135 -msgid "OFFLINE" -msgstr "離線" - -#: system/ui/widgets/html_render.py:263 system/ui/widgets/confirm_dialog.py:93 -#: selfdrive/ui/layouts/sidebar.py:128 +#: system/ui/widgets/confirm_dialog.py:93 system/ui/widgets/html_render.py:263 #, python-format msgid "OK" msgstr "確定" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:137 -#: selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "ONLINE" msgstr "線上" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP+" +msgstr "" +"OP+" + +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#, python-format +msgid "OP-" +msgstr "" +"OP-" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:118 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:130 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:184 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:253 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:261 #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:273 @@ -913,7 +974,7 @@ msgstr "關閉 = 停用自動變換車道。" msgid "Off = Disable LCA.
1 mph = 1.2 km/h." msgstr "關閉 = 停用 LCA。
1 mph = 1.2 km/h。" -#: selfdrive/ui/layouts/settings/device.py:65 +#: selfdrive/ui/layouts/settings/device.py:72 #, python-format msgid "On/Off Road" msgstr "行駛中/非行駛中" @@ -923,12 +984,12 @@ msgstr "行駛中/非行駛中" msgid "Open" msgstr "開啟" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "PAIR" msgstr "配對" -#: selfdrive/ui/layouts/sidebar.py:143 +#: selfdrive/ui/layouts/sidebar.py:144 msgid "PANDA" msgstr "PANDA" @@ -937,7 +998,7 @@ msgstr "PANDA" msgid "PQ Steering Patch" msgstr "PQ 轉向補丁" -#: selfdrive/ui/layouts/settings/device.py:74 +#: selfdrive/ui/layouts/settings/device.py:83 #, python-format msgid "PREVIEW" msgstr "預覽" @@ -947,7 +1008,7 @@ msgstr "預覽" msgid "PRIME FEATURES:" msgstr "PRIME 功能:" -#: selfdrive/ui/layouts/settings/device.py:55 +#: selfdrive/ui/layouts/settings/device.py:62 #, python-format msgid "Pair Device" msgstr "配對裝置" @@ -962,7 +1023,7 @@ msgstr "配對裝置" msgid "Pair your device to your comma account" msgstr "將裝置配對至您的 comma 帳號" -#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:26 +#: selfdrive/ui/widgets/setup.py:48 selfdrive/ui/layouts/settings/device.py:27 #, python-format msgid "" "Pair your device with comma connect (connect.comma.ai) and claim your comma " @@ -975,8 +1036,8 @@ msgstr "" msgid "Please connect to Wi-Fi to complete initial pairing" msgstr "請連線至 Wi‑Fi 以完成初始化配對" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:199 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:208 #, python-format msgid "Power Off" msgstr "關機" @@ -991,7 +1052,7 @@ msgstr "在計量制 Wi‑Fi 連線時避免大量上傳" msgid "Prevent large data uploads when on a metered cellular connection" msgstr "在計量制行動網路時避免大量上傳" -#: selfdrive/ui/layouts/settings/device.py:27 +#: selfdrive/ui/layouts/settings/device.py:28 msgid "" "Preview the driver facing camera to ensure that driver monitoring has good " "visibility. (vehicle must be off)" @@ -1007,23 +1068,29 @@ msgid "REMOVE" msgstr "移除" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:40 -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "RESET" msgstr "重設" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "REVIEW" msgstr "檢視" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:199 +#, python-format +msgid "Radar" +msgstr "" +"雷達" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:188 #, python-format msgid "Rainbow Driving Path like Tesla" msgstr "像特斯拉一樣的彩虹駕駛路徑" -#: selfdrive/ui/layouts/settings/device.py:62 -#: selfdrive/ui/layouts/settings/device.py:187 +#: selfdrive/ui/layouts/settings/device.py:69 +#: selfdrive/ui/layouts/settings/device.py:196 #, python-format msgid "Reboot" msgstr "重新啟動" @@ -1047,29 +1114,29 @@ msgstr "" "當車輛以超過 31 mph(50 km/h)行駛且未打方向燈越過偵測到的車道線時,接收轉向" "回車道的警示。" -#: selfdrive/ui/layouts/settings/toggles.py:79 +#: selfdrive/ui/layouts/settings/toggles.py:86 #, python-format msgid "Record and Upload Driver Camera" msgstr "錄製並上傳車內鏡頭" -#: selfdrive/ui/layouts/settings/toggles.py:85 +#: selfdrive/ui/layouts/settings/toggles.py:92 #, python-format msgid "Record and Upload Microphone Audio" msgstr "錄製並上傳麥克風音訊" -#: selfdrive/ui/layouts/settings/toggles.py:34 +#: selfdrive/ui/layouts/settings/toggles.py:41 msgid "" "Record and store microphone audio while driving. The audio will be included " "in the dashcam video in comma connect." msgstr "" "行車時錄製並儲存麥克風音訊。音訊將包含在 comma connect 的行車紀錄影片中。" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "Regulatory" msgstr "法規" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Relaxed" msgstr "從容" @@ -1090,12 +1157,12 @@ msgid "Request timed out" msgstr "要求逾時" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:290 -#: selfdrive/ui/layouts/settings/device.py:131 +#: selfdrive/ui/layouts/settings/device.py:140 #, python-format msgid "Reset" msgstr "重設" -#: selfdrive/ui/layouts/settings/device.py:58 +#: selfdrive/ui/layouts/settings/device.py:65 #, python-format msgid "Reset Calibration" msgstr "重設校正" @@ -1110,12 +1177,12 @@ msgstr "重設 DP 設定" msgid "Reset dragonpilot settings to default and restart the device." msgstr "將 dragonpilot 設定重設為預設值並重新啟動裝置。" -#: selfdrive/ui/layouts/settings/device.py:77 +#: selfdrive/ui/layouts/settings/device.py:86 #, python-format msgid "Review Training Guide" msgstr "檢視訓練指南" -#: selfdrive/ui/layouts/settings/device.py:29 +#: selfdrive/ui/layouts/settings/device.py:30 msgid "Review the rules, features, and limitations of openpilot" msgstr "檢視 openpilot 的規則、功能與限制" @@ -1124,8 +1191,8 @@ msgstr "檢視 openpilot 的規則、功能與限制" msgid "Road Edge Detection (RED)" msgstr "路邊偵測 (RED)" +#: selfdrive/ui/layouts/settings/device.py:48 #: selfdrive/ui/layouts/settings/software.py:61 -#: selfdrive/ui/layouts/settings/device.py:45 #, python-format msgid "SELECT" msgstr "選取" @@ -1140,6 +1207,12 @@ msgstr "SSH 金鑰" msgid "Scanning Wi-Fi networks..." msgstr "正在掃描 Wi‑Fi 網路…" +#: selfdrive/ui/layouts/settings/device.py:81 +#, python-format +msgid "SecOCKey Install" +msgstr "" +"SecOC金鑰安裝" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:146 #, python-format msgid "" @@ -1153,26 +1226,42 @@ msgstr "" msgid "Select" msgstr "選取" -#: selfdrive/ui/layouts/settings/device.py:256 +#: selfdrive/ui/layouts/settings/device.py:274 #, python-format -msgid "Select a Vehicle" -msgstr "選擇車型" +msgid "Select a Make" +msgstr "選擇製造商" + +#: selfdrive/ui/layouts/settings/device.py:292 +#, python-format +msgid "Select a Model" +msgstr "選擇型號" #: selfdrive/ui/layouts/settings/software.py:183 #, python-format msgid "Select a branch" msgstr "選取分支" -#: selfdrive/ui/layouts/settings/device.py:103 +#: selfdrive/ui/layouts/settings/device.py:112 #, python-format msgid "Select a language" msgstr "選取語言" -#: selfdrive/ui/layouts/settings/device.py:72 +#: selfdrive/ui/layouts/settings/device.py:79 #, python-format msgid "Serial" msgstr "序號" +#: selfdrive/ui/layouts/settings/toggles.py:33 +msgid "" +"Set how sensitive the driver distraction detection should be. Strict: Very " +"sensitive, warns on minor distractions. Moderate: Balanced between " +"sensitivity and false positives. Lenient: Only alerts on clear distractions. " +"Off: Disable Driver Distraction Detection and Control." +msgstr "" +"設定駕駛分心偵測的靈敏度。嚴格:非常敏感,輕微分心即發出警告。中等:在靈敏度" +"與誤報之間取得平衡。寬鬆:僅在明顯分心時提醒。關閉:停用駕駛分心偵測與控制功" +"能。" + #: selfdrive/ui/layouts/settings/developer.py:91 #, python-format msgid "Show" @@ -1188,11 +1277,11 @@ msgstr "顯示上次錯誤" msgid "Snooze Update" msgstr "延後更新" -#: selfdrive/ui/layouts/settings/settings.py:67 +#: selfdrive/ui/layouts/settings/settings.py:66 msgid "Software" msgstr "軟體" -#: selfdrive/ui/layouts/settings/toggles.py:113 +#: selfdrive/ui/layouts/settings/toggles.py:120 #, python-format msgid "Standard" msgstr "標準" @@ -1208,6 +1297,13 @@ msgstr "" "從容模式下,會與前車保持更遠距離。於支援車款,可用方向盤距離按鈕切換這些風" "格。" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:230 +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Std." +msgstr "" +"標準" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:232 #, python-format msgid "" @@ -1227,6 +1323,19 @@ msgid "" msgstr "" "Std.:原廠行為。
Warning:僅在有警告時發出聲音。
Off:不發出任何聲音。" +#: selfdrive/ui/layouts/settings/toggles.py:130 +#, python-format +msgid "Strict" +msgstr "嚴格" + +#: selfdrive/ui/layouts/settings/device.py:388 +#, python-format +msgid "" +"Success!\n" +"Restart comma to have openpilot use the key" +msgstr "" +"成功!\n請重啟 comma 以讓 openpilot 使用該金鑰" + #: selfdrive/ui/onroad/alert_renderer.py:59 #: selfdrive/ui/onroad/alert_renderer.py:65 #, python-format @@ -1253,6 +1362,12 @@ msgstr "目標分支" msgid "Tethering Password" msgstr "網路共享密碼" +#: selfdrive/ui/layouts/settings/toggles.py:31 +msgid "" +"The driver monitoring system can be toggled on/off, but long-term activation " +"is recommended" +msgstr "駕駛員監測系統可切換開關,但建議長期啟動。" + #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:177 #, python-format msgid "" @@ -1262,7 +1377,7 @@ msgstr "" "為防止螢幕烙印,當車輛移動時隱藏速度、最大速度和轉向/DM 圖示。
Off = 原廠" "行為
1 km/h = 0.6 mph" -#: selfdrive/ui/layouts/settings/settings.py:66 +#: selfdrive/ui/layouts/settings/settings.py:65 msgid "Toggles" msgstr "切換" @@ -1287,7 +1402,7 @@ msgstr "風險自負。" msgid "Uninstall" msgstr "解除安裝" -#: selfdrive/ui/layouts/sidebar.py:118 +#: selfdrive/ui/layouts/sidebar.py:117 msgid "Unknown" msgstr "未知" @@ -1301,7 +1416,7 @@ msgstr "僅在車輛熄火時下載更新。" msgid "Upgrade Now" msgstr "立即升級" -#: selfdrive/ui/layouts/settings/toggles.py:32 +#: selfdrive/ui/layouts/settings/toggles.py:39 msgid "" "Upload data from the driver facing camera and help improve the driver " "monitoring algorithm." @@ -1317,7 +1432,7 @@ msgstr "使用蜂鳴器發出聲音警示。" msgid "Use External Radar" msgstr "使用外部雷達" -#: selfdrive/ui/layouts/settings/toggles.py:91 +#: selfdrive/ui/layouts/settings/toggles.py:98 #, python-format msgid "Use Metric System" msgstr "使用公制" @@ -1334,26 +1449,26 @@ msgid "" msgstr "" "使用 openpilot 進行 ACC 與車道維持輔助。使用此功能時,您必須始終保持專注。" -#: selfdrive/ui/layouts/sidebar.py:72 selfdrive/ui/layouts/sidebar.py:145 +#: selfdrive/ui/layouts/sidebar.py:73 selfdrive/ui/layouts/sidebar.py:146 msgid "VEHICLE" msgstr "車輛" -#: selfdrive/ui/layouts/settings/device.py:79 +#: selfdrive/ui/layouts/settings/device.py:88 #, python-format msgid "VIEW" msgstr "檢視" -#: selfdrive/ui/layouts/settings/device.py:45 +#: selfdrive/ui/layouts/settings/device.py:48 #, python-format msgid "Vehicle Model" msgstr "車型" -#: selfdrive/ui/layouts/settings/device.py:236 +#: selfdrive/ui/layouts/settings/device.py:245 #, python-format msgid "Vehicle Model list is not a valid format." msgstr "車型列表的格式無效。" -#: selfdrive/ui/layouts/settings/device.py:230 +#: selfdrive/ui/layouts/settings/device.py:239 #, python-format msgid "Vehicle Model list not found." msgstr "找不到車型列表。" @@ -1363,6 +1478,12 @@ msgstr "找不到車型列表。" msgid "Waiting to start" msgstr "等待開始" +#: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:241 +#, python-format +msgid "Warning" +msgstr "" +"警告" + #: selfdrive/ui/layouts/settings/developer.py:24 msgid "" "Warning: This grants SSH access to all public keys in your GitHub settings. " @@ -1414,8 +1535,12 @@ msgstr "" "您必須接受條款與細則才能使用 openpilot。繼續前請閱讀 https://comma.ai/terms " "上的最新條款。" -#: selfdrive/ui/layouts/settings/device.py:46 -#: selfdrive/ui/layouts/settings/device.py:225 +#: selfdrive/ui/layouts/settings/device.py:49 +#: selfdrive/ui/layouts/settings/device.py:234 +#: selfdrive/ui/layouts/settings/device.py:251 +#: selfdrive/ui/layouts/settings/device.py:254 +#: selfdrive/ui/layouts/settings/device.py:264 +#: selfdrive/ui/layouts/settings/device.py:267 #, python-format msgid "[AUTO DETECT]" msgstr "[自動偵測]" @@ -1428,7 +1553,7 @@ msgstr "相機啟動中" #: selfdrive/ui/widgets/prime.py:63 #, python-format msgid "comma prime" -msgstr "comma prime" +msgstr "comma 高階會員" #: dragonpilot/selfdrive/ui/layouts/settings/dragonpilot.py:257 #, python-format @@ -1443,15 +1568,15 @@ msgid "" "File Manager only.
All: File Manager + Live Stream." msgstr "" "dashy - 為您打造的 dragonpilot 多合一系統中心。

請訪問 http://" -":5088 進行存取。

Off - 完全關閉 dashy。
File:僅檔案管" -"理員。
All:檔案管理員 + 直播。" +":5088 進行存取。

Off - 完全關閉 dashy。
File:僅檔案管理" +"員。
All:檔案管理員 + 直播。" #: system/ui/widgets/network.py:142 #, python-format msgid "default" msgstr "預設" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "down" msgstr "下" @@ -1476,7 +1601,7 @@ msgstr "km/h" msgid "leave blank for automatic configuration" msgstr "留空以自動設定" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "left" msgstr "左" @@ -1511,7 +1636,7 @@ msgstr "openpilot 縱向控制(Alpha)" msgid "openpilot Unavailable" msgstr "openpilot 無法使用" -#: selfdrive/ui/layouts/settings/toggles.py:179 +#: selfdrive/ui/layouts/settings/toggles.py:202 #, python-format msgid "" "openpilot defaults to driving in chill mode. Experimental mode enables alpha-" @@ -1533,7 +1658,7 @@ msgstr "" "駕駛視覺化
在低速時,駕駛視覺化將切換至面向道路的廣角鏡頭以更好呈現部" "分轉彎。右上角亦會顯示實驗模式圖示。" -#: selfdrive/ui/layouts/settings/device.py:177 +#: selfdrive/ui/layouts/settings/device.py:186 #, python-format msgid "" "openpilot is continuously calibrating, resetting is rarely required. " @@ -1555,18 +1680,18 @@ msgstr "" "Firehose 模式可讓您最大化上傳訓練資料,以改進 openpilot 的駕駛模型。更多資料" "代表更大的模型,也就代表更好的實驗模式。" -#: selfdrive/ui/layouts/settings/toggles.py:204 +#: selfdrive/ui/layouts/settings/toggles.py:227 #, python-format msgid "openpilot longitudinal control may come in a future update." msgstr "openpilot 縱向控制可能於未來更新提供。" -#: selfdrive/ui/layouts/settings/device.py:28 +#: selfdrive/ui/layouts/settings/device.py:29 msgid "" "openpilot requires the device to be mounted within 4° left or right and " "within 5° up or 9° down." msgstr "openpilot 要求裝置安裝在左右 4°、上 5° 或下 9° 以內。" -#: selfdrive/ui/layouts/settings/device.py:146 +#: selfdrive/ui/layouts/settings/device.py:155 #, python-format msgid "right" msgstr "右" @@ -1576,7 +1701,7 @@ msgstr "右" msgid "unmetered" msgstr "不限流量" -#: selfdrive/ui/layouts/settings/device.py:145 +#: selfdrive/ui/layouts/settings/device.py:154 #, python-format msgid "up" msgstr "上" @@ -1600,31 +1725,31 @@ msgstr "有可用更新" #, python-format msgid "{} ALERT" msgid_plural "{} ALERTS" -msgstr[0] "" +msgstr[0] "{} 則警示" #: selfdrive/ui/layouts/settings/software.py:40 #, python-format msgid "{} day ago" msgid_plural "{} days ago" -msgstr[0] "" +msgstr[0] "{} 天前" #: selfdrive/ui/layouts/settings/software.py:37 #, python-format msgid "{} hour ago" msgid_plural "{} hours ago" -msgstr[0] "" +msgstr[0] "{} 小時前" #: selfdrive/ui/layouts/settings/software.py:34 #, python-format msgid "{} minute ago" msgid_plural "{} minutes ago" -msgstr[0] "" +msgstr[0] "{} 分鐘前" #: selfdrive/ui/layouts/settings/firehose.py:111 #, python-format msgid "{} segment of your driving is in the training dataset so far." msgid_plural "{} segments of your driving is in the training dataset so far." -msgstr[0] "" +msgstr[0] "截至目前,您駕駛的{}部分已納入訓練數據集中。" #: selfdrive/ui/widgets/prime.py:62 #, python-format @@ -1636,6 +1761,25 @@ msgstr "✓ 已訂閱" msgid "🔥 Firehose Mode 🔥" msgstr "🔥 Firehose 模式 🔥" +#~ msgid "ERROR" +#~ msgstr "錯誤" + +#~ msgid "Firehose" +#~ msgstr "Firehose" + +#~ msgid "GOOD" +#~ msgstr "良好" + +#~ msgid "HIGH" +#~ msgstr "高" + +#~ msgid "OFFLINE" +#~ msgstr "離線" + +#, python-format +#~ msgid "Select a Vehicle" +#~ msgstr "選擇車型" + #, python-format #~ msgid "{0} ALERT" #~ msgid_plural "{0} ALERTS" diff --git a/selfdrive/ui/translations/auto_translate.py b/selfdrive/ui/translations/auto_translate.py index 6251e03..a37e6f4 100755 --- a/selfdrive/ui/translations/auto_translate.py +++ b/selfdrive/ui/translations/auto_translate.py @@ -4,7 +4,7 @@ import argparse import json import os import pathlib -import xml.etree.ElementTree as ET +import re from typing import cast import requests @@ -12,7 +12,7 @@ import requests TRANSLATIONS_DIR = pathlib.Path(__file__).resolve().parent TRANSLATIONS_LANGUAGES = TRANSLATIONS_DIR / "languages.json" -OPENAI_MODEL = "gpt-4" +OPENAI_MODEL = "deepseek-chat" OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY") OPENAI_PROMPT = "You are a professional translator from English to {language} (ISO 639 language code). " + \ "The following sentence or word is in the GUI of a software called openpilot, translate it accordingly." @@ -25,8 +25,8 @@ def get_language_files(languages: list[str] = None) -> dict[str, pathlib.Path]: language_dict = json.load(fp) for filename in language_dict.values(): - path = TRANSLATIONS_DIR / f"{filename}.ts" - language = path.stem + path = TRANSLATIONS_DIR / f"app_{filename}.po" + language = filename if languages is None or language in languages: files[language] = path @@ -36,7 +36,7 @@ def get_language_files(languages: list[str] = None) -> dict[str, pathlib.Path]: def translate_phrase(text: str, language: str) -> str: response = requests.post( - "https://api.openai.com/v1/chat/completions", + "https://api.deepseek.com/chat/completions", json={ "model": OPENAI_MODEL, "messages": [ @@ -68,39 +68,343 @@ def translate_phrase(text: str, language: str) -> str: def translate_file(path: pathlib.Path, language: str, all_: bool) -> None: - tree = ET.parse(path) + # Read the PO file + with path.open("r", encoding="utf-8") as fp: + lines = fp.readlines() - root = tree.getroot() + # Process each line to find translation entries + i = 0 + while i < len(lines): + line = lines[i].strip() - for context in root.findall("./context"): - name = context.find("name") - if name is None: - raise ValueError("name not found") + # Look for msgid line + if line.startswith('msgid'): + # Check for empty msgid (header) - this is the start of multi-line msgid + if line == 'msgid ""': + # This is a multi-line msgid entry + msgid_text = "" + j = i + 1 # Start from the next line + + # Collect all the quoted lines that form the msgid + while j < len(lines) and lines[j].strip().startswith('"'): + msgid_text += lines[j].strip().strip('"') + j += 1 - print(f"Context: {name.text}") + # Skip header entry (empty msgid) + if not msgid_text: + i = j + continue - for message in context.findall("./message"): - source = message.find("source") - translation = message.find("translation") + # Look for the corresponding msgstr or msgid_plural + k = j + has_plural = False + while k < len(lines) and not lines[k].strip().startswith('msgstr'): + if lines[k].strip().startswith('msgid_plural'): + has_plural = True + k += 1 - if source is None or translation is None: - raise ValueError("source or translation not found") + if k < len(lines): + # Handle plural forms + if has_plural: + # This is a plural entry, need to handle msgstr[0], msgstr[1], etc. + msgstr_texts = [] + m = k + + # Find all msgstr[n] entries + while m < len(lines) and lines[m].strip().startswith('msgstr['): + msgstr_match = re.match(r'msgstr\[(\d+)\]\s*"(.*)"', lines[m].strip()) + if msgstr_match: + msgstr_texts.append(msgstr_match.group(2)) + m += 1 + + # Check if we should translate this entry + should_translate = False + if all_: + should_translate = True + else: + # Only translate if all msgstr entries are empty or contain only whitespace + should_translate = all(not text.strip() for text in msgstr_texts) + + if should_translate: + # Translate both singular and plural forms + singular_text = msgid_text + # Find the plural form + plural_text = "" + p = j + while p < k and not lines[p].strip().startswith('msgid_plural'): + p += 1 + if p < k: + # Extract plural text + plural_match = re.match(r'msgid_plural\s*"(.*)"', lines[p].strip()) + if plural_match: + plural_text = plural_match.group(1) + + # Translate both forms + singular_translation = translate_phrase(singular_text, language) + plural_translation = translate_phrase(plural_text, language) + + print(f"Translating plural entry:") + print(f"Singular: {singular_text}") + print(f"Plural: {plural_text}") + print(f"Singular translation: {singular_translation}") + print(f"Plural translation: {plural_translation}") + print("-" * 50) + + # Update msgstr[0] and msgstr[1] + m = k + idx = 0 + while m < len(lines) and lines[m].strip().startswith('msgstr['): + if idx == 0: + lines[m] = f'msgstr[0] "{singular_translation}"\n' + elif idx == 1: + lines[m] = f'msgstr[1] "{plural_translation}"\n' + idx += 1 + m += 1 + + i = m + continue + else: + i = k + len(msgstr_texts) + continue + else: + # Extract msgstr text (handle multi-line msgstr) + msgstr_text = "" + m = k + + # Check if this is a multi-line msgstr + if lines[m].strip() == 'msgstr ""': + # Multi-line msgstr - collect all quoted lines + m += 1 + while m < len(lines) and lines[m].strip().startswith('"'): + msgstr_text += lines[m].strip().strip('"') + m += 1 + else: + # Single-line msgstr + msgstr_match = re.match(r'msgstr\s+"(.+)"', lines[m].strip()) + if msgstr_match: + msgstr_text = msgstr_match.group(1) - if not all_ and translation.attrib.get("type") != "unfinished": + # Check if we should translate this entry + should_translate = False + if all_: + should_translate = True + else: + # Only translate if msgstr is empty or contains only whitespace + if not msgstr_text.strip(): + should_translate = True + + if should_translate: + # Translate the phrase + llm_translation = translate_phrase(msgid_text, language) + + print(f"Translating entry:") + print(f"Source: {msgid_text}") + print(f"LLM translation: {llm_translation}") + print("-" * 50) + + # Update the msgstr line + if lines[k].strip() == 'msgstr ""': + # Multi-line msgstr - replace with multi-line format + # Remove existing msgstr lines + m = k + 1 + while m < len(lines) and lines[m].strip().startswith('"'): + lines[m] = "" + m += 1 + + # Add new multi-line msgstr + lines[k] = 'msgstr ""\n' + # Split translation into lines of reasonable length + translation_lines = [] + current_line = "" + for word in llm_translation.split(): + if len(current_line + word) > 60: # Reasonable line length + translation_lines.append(f'"{current_line}"\n') + current_line = word + else: + if current_line: + current_line += " " + word + else: + current_line = word + if current_line: + translation_lines.append(f'"{current_line}"\n') + + # Insert the translation lines + for idx, trans_line in enumerate(translation_lines): + lines.insert(k + 1 + idx, trans_line) + else: + # Single-line msgstr - replace it + lines[k] = f'msgstr "{llm_translation}"\n' + + i = k + 1 + continue + else: + i = k + 1 + continue + + i = j continue + + # Single-line msgid + msgid_match = re.match(r'msgid\s+"(.+)"', line) + if msgid_match: + msgid_text = msgid_match.group(1) - llm_translation = translate_phrase(cast(str, source.text), language) + # Skip header entry (empty msgid) + if not msgid_text: + i += 1 + continue - print(f"Source: {source.text}\n" + - f"Current translation: {translation.text}\n" + - f"LLM translation: {llm_translation}") + # Look for the corresponding msgstr or msgid_plural + j = i + 1 + has_plural = False + while j < len(lines) and not lines[j].strip().startswith('msgstr'): + if lines[j].strip().startswith('msgid_plural'): + has_plural = True + j += 1 - translation.text = llm_translation + if j < len(lines): + # Handle plural forms + if has_plural: + # This is a plural entry, need to handle msgstr[0], msgstr[1], etc. + msgstr_texts = [] + m = j + + # Find all msgstr[n] entries + while m < len(lines) and lines[m].strip().startswith('msgstr['): + msgstr_match = re.match(r'msgstr\[(\d+)\]\s*"(.*)"', lines[m].strip()) + if msgstr_match: + msgstr_texts.append(msgstr_match.group(2)) + m += 1 + + # Check if we should translate this entry + should_translate = False + if all_: + should_translate = True + else: + # Only translate if all msgstr entries are empty or contain only whitespace + should_translate = all(not text.strip() for text in msgstr_texts) + + if should_translate: + # Translate both singular and plural forms + singular_text = msgid_text + # Find plural form + plural_text = "" + p = i + 1 + while p < j and not lines[p].strip().startswith('msgid_plural'): + p += 1 + if p < j: + # Extract plural text + plural_match = re.match(r'msgid_plural\s*"(.*)"', lines[p].strip()) + if plural_match: + plural_text = plural_match.group(1) + + # Translate both forms + singular_translation = translate_phrase(singular_text, language) + plural_translation = translate_phrase(plural_text, language) + + print(f"Translating plural entry:") + print(f"Singular: {singular_text}") + print(f"Plural: {plural_text}") + print(f"Singular translation: {singular_translation}") + print(f"Plural translation: {plural_translation}") + print("-" * 50) + + # Update msgstr[0] and msgstr[1] + m = j + idx = 0 + while m < len(lines) and lines[m].strip().startswith('msgstr['): + if idx == 0: + lines[m] = f'msgstr[0] "{singular_translation}"\n' + elif idx == 1: + lines[m] = f'msgstr[1] "{plural_translation}"\n' + idx += 1 + m += 1 + + i = m + continue + else: + i = j + len(msgstr_texts) + continue + else: + # Extract msgstr text (handle multi-line msgstr) + msgstr_text = "" + m = j + + # Check if this is a multi-line msgstr + if lines[m].strip() == 'msgstr ""': + # Multi-line msgstr - collect all quoted lines + m += 1 + while m < len(lines) and lines[m].strip().startswith('"'): + msgstr_text += lines[m].strip().strip('"') + m += 1 + else: + # Single-line msgstr + msgstr_match = re.match(r'msgstr\s+"(.+)"', lines[m].strip()) + if msgstr_match: + msgstr_text = msgstr_match.group(1) + # Check if we should translate this entry + should_translate = False + if all_: + should_translate = True + else: + # Only translate if msgstr is empty or contains only whitespace + if not msgstr_text.strip(): + should_translate = True + + if should_translate: + # Translate the phrase + llm_translation = translate_phrase(msgid_text, language) + + print(f"Translating entry:") + print(f"Source: {msgid_text}") + print(f"LLM translation: {llm_translation}") + print("-" * 50) + + # Update the msgstr line + if lines[j].strip() == 'msgstr ""': + # Multi-line msgstr - replace with multi-line format + # Remove existing msgstr lines + m = j + 1 + while m < len(lines) and lines[m].strip().startswith('"'): + lines[m] = "" + m += 1 + + # Add new multi-line msgstr + lines[j] = 'msgstr ""\n' + # Split translation into lines of reasonable length + translation_lines = [] + current_line = "" + for word in llm_translation.split(): + if len(current_line + word) > 60: # Reasonable line length + translation_lines.append(f'"{current_line}"\n') + current_line = word + else: + if current_line: + current_line += " " + word + else: + current_line = word + if current_line: + translation_lines.append(f'"{current_line}"\n') + + # Insert the translation lines + for idx, trans_line in enumerate(translation_lines): + lines.insert(j + 1 + idx, trans_line) + else: + # Single-line msgstr - replace it with single-line format + lines[j] = f'msgstr "{llm_translation}"\n' + + i = j + 1 + continue + else: + i = j + 1 + continue + + i += 1 + + # Write the updated PO file back with original formatting preserved with path.open("w", encoding="utf-8") as fp: - fp.write('\n' + - '\n' + - ET.tostring(root, encoding="utf-8").decode()) + fp.writelines(lines) def main(): diff --git a/selfdrive/ui/widgets/setup.py b/selfdrive/ui/widgets/setup.py index fcc5a14..80090e6 100644 --- a/selfdrive/ui/widgets/setup.py +++ b/selfdrive/ui/widgets/setup.py @@ -27,8 +27,8 @@ class SetupWidget(Widget): def _render(self, rect: rl.Rectangle): if not ui_state.prime_state.is_paired(): self._render_registration(rect) - else: - self._render_firehose_prompt(rect) + # else: + # self._render_firehose_prompt(rect) def _render_registration(self, rect: rl.Rectangle): """Render registration prompt.""" diff --git a/system/ui/lib/application.py b/system/ui/lib/application.py index 68e1fdc..d5399d9 100644 --- a/system/ui/lib/application.py +++ b/system/ui/lib/application.py @@ -52,11 +52,14 @@ class FontWeight(StrEnum): EXTRA_BOLD = "Inter-ExtraBold.ttf" BLACK = "Inter-Black.ttf" UNIFONT = "unifont.otf" + CHINA = "china.ttf" def font_fallback(font: rl.Font) -> rl.Font: """Fall back to unifont for languages that require it.""" - if multilang.requires_unifont(): + if multilang.requires_china(): + return gui_app.font(FontWeight.CHINA) + elif multilang.requires_unifont(): return gui_app.font(FontWeight.UNIFONT) return font @@ -140,7 +143,12 @@ class GuiApplication: self._fonts: dict[FontWeight, rl.Font] = {} self._width = width self._height = height - self._scale = SCALE + + if PC and os.getenv("SCALE") is None: + self._scale = self._calculate_auto_scale() + else: + self._scale = SCALE + self._scaled_width = int(self._width * self._scale) self._scaled_height = int(self._height * self._scale) self._render_texture: rl.RenderTexture | None = None @@ -460,5 +468,17 @@ class GuiApplication: cloudlog.error(f"FPS dropped critically below {fps}. Shutting down UI.") os._exit(1) + def _calculate_auto_scale(self) -> float: + # Create temporary window to query monitor info + rl.init_window(1, 1, "") + w, h = rl.get_monitor_width(0), rl.get_monitor_height(0) + rl.close_window() + + if w == 0 or h == 0 or (w >= self._width and h >= self._height): + return 1.0 + + # Apply 0.95 factor for window decorations/taskbar margin + return max(0.3, min(w / self._width, h / self._height) * 0.95) + gui_app = GuiApplication(2160, 1080) diff --git a/system/ui/lib/emoji.py b/system/ui/lib/emoji.py index 54f7429..98be74f 100644 --- a/system/ui/lib/emoji.py +++ b/system/ui/lib/emoji.py @@ -6,6 +6,7 @@ import pyray as rl from openpilot.system.ui.lib.application import FONT_DIR +_emoji_font: ImageFont.FreeTypeFont | None = None _cache: dict[str, rl.Texture] = {} EMOJI_REGEX = re.compile( @@ -32,6 +33,13 @@ EMOJI_REGEX = re.compile( flags=re.UNICODE ) +def _load_emoji_font() -> ImageFont.FreeTypeFont | None: + global _emoji_font + if _emoji_font is None: + _emoji_font = ImageFont.truetype(str(FONT_DIR.joinpath("NotoColorEmoji.ttf")), 109) + return _emoji_font + + def find_emoji(text): return [(m.start(), m.end(), m.group()) for m in EMOJI_REGEX.finditer(text)] @@ -39,8 +47,7 @@ def emoji_tex(emoji): if emoji not in _cache: img = Image.new("RGBA", (128, 128), (0, 0, 0, 0)) draw = ImageDraw.Draw(img) - font = ImageFont.truetype(FONT_DIR.joinpath("NotoColorEmoji.ttf"), 109) - draw.text((0, 0), emoji, font=font, embedded_color=True) + draw.text((0, 0), emoji, font=_load_emoji_font(), embedded_color=True) with io.BytesIO() as buffer: img.save(buffer, format="PNG") l = buffer.tell() diff --git a/system/ui/lib/multilang.py b/system/ui/lib/multilang.py index bb94618..347b873 100644 --- a/system/ui/lib/multilang.py +++ b/system/ui/lib/multilang.py @@ -17,6 +17,9 @@ LANGUAGES_FILE = os.path.join(TRANSLATIONS_DIR, "languages.json") UNIFONT_LANGUAGES = [ "ar", "th", +] + +CHINA_LANGUAGES = [ "zh-CHT", "zh-CHS", "ko", @@ -37,6 +40,10 @@ class Multilang: def language(self) -> str: return self._language + def requires_china(self) -> bool: + """Certain languages require china to render their glyphs.""" + return self._language in CHINA_LANGUAGES + def requires_unifont(self) -> bool: """Certain languages require unifont to render their glyphs.""" return self._language in UNIFONT_LANGUAGES diff --git a/system/ui/spinner.py b/system/ui/spinner.py index 29a5dba..eb33f08 100755 --- a/system/ui/spinner.py +++ b/system/ui/spinner.py @@ -26,7 +26,7 @@ def clamp(value, min_value, max_value): class Spinner(Widget): def __init__(self): super().__init__() - self._comma_texture = gui_app.texture("../../dragonpilot/selfdrive/assets/images/spinner_comma.png", TEXTURE_SIZE, TEXTURE_SIZE) + self._comma_texture = gui_app.texture("images/spinner_comma.png", TEXTURE_SIZE, TEXTURE_SIZE) self._spinner_texture = gui_app.texture("images/spinner_track.png", TEXTURE_SIZE, TEXTURE_SIZE, alpha_premultiply=True) self._rotation = 0.0 self._progress: int | None = None diff --git a/system/ui/widgets/html_render.py b/system/ui/widgets/html_render.py index 7d90d56..5a6bf37 100644 --- a/system/ui/widgets/html_render.py +++ b/system/ui/widgets/html_render.py @@ -52,7 +52,7 @@ class HtmlElement: font_weight: FontWeight margin_top: int margin_bottom: int - line_height: float = 0.9 # matches Qt visually, unsure why not default 1.2 + line_height: float = 1.3 # matches Qt visually, unsure why not default 1.2 indent_level: int = 0 diff --git a/system/ui/widgets/keyboard.py b/system/ui/widgets/keyboard.py index b0e1035..d80a2f3 100644 --- a/system/ui/widgets/keyboard.py +++ b/system/ui/widgets/keyboard.py @@ -137,7 +137,7 @@ class Keyboard(Widget): def _render(self, rect: rl.Rectangle): rect = rl.Rectangle(rect.x + CONTENT_MARGIN, rect.y + CONTENT_MARGIN, rect.width - 2 * CONTENT_MARGIN, rect.height - 2 * CONTENT_MARGIN) - self._title.render(rl.Rectangle(rect.x, rect.y, rect.width, 95)) + self._title.render(rl.Rectangle(rect.x, rect.y - 20, rect.width, 95)) self._sub_title.render(rl.Rectangle(rect.x, rect.y + 95, rect.width, 60)) self._cancel_button.render(rl.Rectangle(rect.x + rect.width - 386, rect.y, 386, 125)) diff --git a/system/ui/widgets/list_view.py b/system/ui/widgets/list_view.py index af8d63d..6de10f4 100644 --- a/system/ui/widgets/list_view.py +++ b/system/ui/widgets/list_view.py @@ -336,6 +336,8 @@ class ListItem(Widget): # do callback first in case receiver changes description if self.description_visible and self.description_opened_callback is not None: self.description_opened_callback() + # Call _update_state to catch any description changes + self._update_state() content_width = int(self._rect.width - ITEM_PADDING * 2) self._rect.height = self.get_item_height(self._font, content_width)