raylib: unifont for CJK languages (#36430)

* add rest of langs

* unifont

* all langs are supported

* add japanese translations

* fix strip!

* add language name chars

* use unifont in lang selection

* add korean

* test all langs

* doesn't work

* unifont font fallback for multilang

* add ar translations

* fix labels not updating until scrolling

* t chinese

* more chn

* we already default

* wrap

* update

* fix thai

* fix missing chinese langs and all are supported!

* clean up

* update

* ??? mypy r u ok ???

* fix default option font weight
pull/36434/head
Shane Smiskol 2 weeks ago committed by GitHub
parent b14270bd71
commit a0d48b6c63
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      .gitattributes
  2. 3
      selfdrive/assets/fonts/unifont.otf
  3. 5
      selfdrive/ui/layouts/settings/device.py
  4. 2
      selfdrive/ui/layouts/settings/software.py
  5. 113
      selfdrive/ui/translations/app.pot
  6. 1237
      selfdrive/ui/translations/app_ar.po
  7. 113
      selfdrive/ui/translations/app_de.po
  8. 113
      selfdrive/ui/translations/app_en.po
  9. 113
      selfdrive/ui/translations/app_es.po
  10. 113
      selfdrive/ui/translations/app_fr.po
  11. 1216
      selfdrive/ui/translations/app_ja.po
  12. 1209
      selfdrive/ui/translations/app_ko.po
  13. 113
      selfdrive/ui/translations/app_pt-BR.po
  14. 1148
      selfdrive/ui/translations/app_th.po
  15. 113
      selfdrive/ui/translations/app_tr.po
  16. 1193
      selfdrive/ui/translations/app_zh-CHS.po
  17. 1192
      selfdrive/ui/translations/app_zh-CHT.po
  18. 19
      system/ui/lib/application.py
  19. 42
      system/ui/lib/multilang.py
  20. 3
      system/ui/lib/text_measure.py
  21. 2
      system/ui/lib/wrap_text.py
  22. 7
      system/ui/widgets/label.py
  23. 3
      system/ui/widgets/option_dialog.py

1
.gitattributes vendored

@ -7,6 +7,7 @@
*.png filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text *.gif filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text *.ttf filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text
selfdrive/car/tests/test_models_segs.txt filter=lfs diff=lfs merge=lfs -text selfdrive/car/tests/test_models_segs.txt filter=lfs diff=lfs merge=lfs -text

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9712a9bc089af7ddc06e0826aa84f2ee23ed2f1a1dddaf2a89c2483e753a8475
size 5321484

@ -10,7 +10,7 @@ from openpilot.selfdrive.ui.ui_state import ui_state
from openpilot.selfdrive.ui.layouts.onboarding import TrainingGuide from openpilot.selfdrive.ui.layouts.onboarding import TrainingGuide
from openpilot.selfdrive.ui.widgets.pairing_dialog import PairingDialog from openpilot.selfdrive.ui.widgets.pairing_dialog import PairingDialog
from openpilot.system.hardware import TICI from openpilot.system.hardware import TICI
from openpilot.system.ui.lib.application import gui_app from openpilot.system.ui.lib.application import FontWeight, gui_app
from openpilot.system.ui.lib.multilang import multilang, tr, tr_noop from openpilot.system.ui.lib.multilang import multilang, tr, tr_noop
from openpilot.system.ui.widgets import Widget, DialogResult from openpilot.system.ui.widgets import Widget, DialogResult
from openpilot.system.ui.widgets.confirm_dialog import ConfirmDialog, alert_dialog from openpilot.system.ui.widgets.confirm_dialog import ConfirmDialog, alert_dialog
@ -88,7 +88,8 @@ class DeviceLayout(Widget):
self._update_calib_description() self._update_calib_description()
self._select_language_dialog = None self._select_language_dialog = None
self._select_language_dialog = MultiOptionDialog(tr("Select a language"), multilang.languages, multilang.codes[multilang.language]) self._select_language_dialog = MultiOptionDialog(tr("Select a language"), multilang.languages, multilang.codes[multilang.language],
option_font_weight=FontWeight.UNIFONT)
gui_app.set_modal_overlay(self._select_language_dialog, callback=handle_language_selection) gui_app.set_modal_overlay(self._select_language_dialog, callback=handle_language_selection)
def _show_driver_camera(self): def _show_driver_camera(self):

@ -180,7 +180,7 @@ class SoftwareLayout(Widget):
branches.insert(0, b) branches.insert(0, b)
current_target = ui_state.params.get("UpdaterTargetBranch") or "" current_target = ui_state.params.get("UpdaterTargetBranch") or ""
self._branch_dialog = MultiOptionDialog("Select a branch", branches, current_target) self._branch_dialog = MultiOptionDialog(tr("Select a branch"), branches, current_target)
def handle_selection(result): def handle_selection(result):
# Confirmed selection # Confirmed selection

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-22 15:30-0700\n" "POT-Creation-Date: 2025-10-22 19:09-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: /home/batman/openpilot/system/ui/widgets/html_render.py:247 #: /home/batman/openpilot/system/ui/widgets/html_render.py:263
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93
#: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127 #: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127
#, python-format #, python-format
@ -26,14 +26,14 @@ msgid "OK"
msgstr "" msgstr ""
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:34 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35
#: /home/batman/openpilot/system/ui/widgets/keyboard.py:81 #: /home/batman/openpilot/system/ui/widgets/keyboard.py:81
#: /home/batman/openpilot/system/ui/widgets/network.py:318 #: /home/batman/openpilot/system/ui/widgets/network.py:318
#, python-format #, python-format
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:36
#, python-format #, python-format
msgid "Select" msgid "Select"
msgstr "" msgstr ""
@ -193,8 +193,8 @@ msgstr ""
msgid "FORGETTING..." msgid "FORGETTING..."
msgstr "" msgstr ""
#: /home/batman/openpilot/system/ui/widgets/list_view.py:115 #: /home/batman/openpilot/system/ui/widgets/list_view.py:123
#: /home/batman/openpilot/system/ui/widgets/list_view.py:153 #: /home/batman/openpilot/system/ui/widgets/list_view.py:160
#, python-format #, python-format
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -609,112 +609,127 @@ msgstr ""
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:19 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:20
#, python-format #, python-format
msgid "never" msgid "never"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:30 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:31
#, python-format #, python-format
msgid "now" msgid "now"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:33 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:34
#, python-format #, python-format
msgid "{} minute ago" msgid "{} minute ago"
msgid_plural "{} minutes ago" msgid_plural "{} minutes ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:36 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:37
#, python-format #, python-format
msgid "{} hour ago" msgid "{} hour ago"
msgid_plural "{} hours ago" msgid_plural "{} hours ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:39 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:40
#, python-format #, python-format
msgid "{} day ago" msgid "{} day ago"
msgid_plural "{} days ago" msgid_plural "{} days ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:47 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48
#, python-format #, python-format
msgid "Updates are only downloaded while the car is off." msgid "Updates are only downloaded while the car is off."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49
#, python-format #, python-format
msgid "Current Version" msgid "Current Version"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#, python-format #, python-format
msgid "Download" msgid "Download"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:107
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:118
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:142 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:147
#, python-format #, python-format
msgid "CHECK" msgid "CHECK"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#, python-format #, python-format
msgid "Install Update" msgid "Install Update"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:131 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:136
#, python-format #, python-format
msgid "INSTALL" msgid "INSTALL"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #, python-format
msgid "Target Branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "SELECT"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Uninstall" msgid "Uninstall"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#, python-format #, python-format
msgid "UNINSTALL" msgid "UNINSTALL"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:105 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106
#, python-format #, python-format
msgid "failed to check for update" msgid "failed to check for update"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:108 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109
#, python-format #, python-format
msgid "update available" msgid "update available"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:110
#, python-format #, python-format
msgid "DOWNLOAD" msgid "DOWNLOAD"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:114 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:115
#, python-format #, python-format
msgid "up to date, last checked {}" msgid "up to date, last checked {}"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:116 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117
#, python-format #, python-format
msgid "up to date, last checked never" msgid "up to date, last checked never"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Are you sure you want to uninstall?" msgid "Are you sure you want to uninstall?"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:183
#, python-format
msgid "Select a branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:25 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:25
msgid "" msgid ""
"Preview the driver facing camera to ensure that driver monitoring has good " "Preview the driver facing camera to ensure that driver monitoring has good "
@ -752,13 +767,13 @@ msgid "RESET"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Reboot" msgid "Reboot"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Power Off" msgid "Power Off"
msgstr "" msgstr ""
@ -824,89 +839,89 @@ msgstr ""
msgid "Select a language" msgid "Select a language"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:102 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:103
#, python-format #, python-format
msgid "Disengage to Reset Calibration" msgid "Disengage to Reset Calibration"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Are you sure you want to reset calibration?" msgid "Are you sure you want to reset calibration?"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Reset" msgid "Reset"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "down" msgid "down"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "up" msgid "up"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "left" msgid "left"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "right" msgid "right"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:145 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:146
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is {}% complete." msgid "<br><br>Steering lag calibration is {}% complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:147 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:148
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is complete." msgid "<br><br>Steering lag calibration is complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:157 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:158
#, python-format #, python-format
msgid " Steering torque response calibration is {}% complete." msgid " Steering torque response calibration is {}% complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:159 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:160
#, python-format #, python-format
msgid " Steering torque response calibration is complete." msgid " Steering torque response calibration is complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:164 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:165
#, python-format #, python-format
msgid "" msgid ""
"openpilot is continuously calibrating, resetting is rarely required. " "openpilot is continuously calibrating, resetting is rarely required. "
"Resetting calibration will restart openpilot if the car is powered on." "Resetting calibration will restart openpilot if the car is powered on."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:171 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:172
#, python-format #, python-format
msgid "Disengage to Reboot" msgid "Disengage to Reboot"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Are you sure you want to reboot?" msgid "Are you sure you want to reboot?"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:183 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:184
#, python-format #, python-format
msgid "Disengage to Power Off" msgid "Disengage to Power Off"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Are you sure you want to power off?" msgid "Are you sure you want to power off?"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-22 15:30-0700\n" "POT-Creation-Date: 2025-10-22 18:57-0700\n"
"PO-Revision-Date: 2025-10-20 16:35-0700\n" "PO-Revision-Date: 2025-10-20 16:35-0700\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -17,17 +17,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:159 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:160
#, python-format #, python-format
msgid " Steering torque response calibration is complete." msgid " Steering torque response calibration is complete."
msgstr " Die Lenkmoment-Reaktionskalibrierung ist abgeschlossen." msgstr " Die Lenkmoment-Reaktionskalibrierung ist abgeschlossen."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:157 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:158
#, python-format #, python-format
msgid " Steering torque response calibration is {}% complete." msgid " Steering torque response calibration is {}% complete."
msgstr " Die Lenkmoment-Reaktionskalibrierung ist zu {}% abgeschlossen." msgstr " Die Lenkmoment-Reaktionskalibrierung ist zu {}% abgeschlossen."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}."
msgstr " Ihr Gerät ist um {:.1f}° {} und {:.1f}° {} ausgerichtet." msgstr " Ihr Gerät ist um {:.1f}° {} und {:.1f}° {} ausgerichtet."
@ -76,12 +76,12 @@ msgstr ""
"Experimentalmodus wird empfohlen, wenn Sie die openpilot-Längsregelung " "Experimentalmodus wird empfohlen, wenn Sie die openpilot-Längsregelung "
"(Alpha) aktivieren." "(Alpha) aktivieren."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:147 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:148
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is complete." msgid "<br><br>Steering lag calibration is complete."
msgstr "<br><br>Kalibrierung der Lenkverzögerung abgeschlossen." msgstr "<br><br>Kalibrierung der Lenkverzögerung abgeschlossen."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:145 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:146
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is {}% complete." msgid "<br><br>Steering lag calibration is {}% complete."
msgstr "<br><br>Kalibrierung der Lenkverzögerung zu {}% abgeschlossen." msgstr "<br><br>Kalibrierung der Lenkverzögerung zu {}% abgeschlossen."
@ -144,22 +144,22 @@ msgstr ""
"Eine Alpha-Version der openpilot-Längsregelung kann zusammen mit dem " "Eine Alpha-Version der openpilot-Längsregelung kann zusammen mit dem "
"Experimentalmodus auf Nicht-Release-Zweigen getestet werden." "Experimentalmodus auf Nicht-Release-Zweigen getestet werden."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Are you sure you want to power off?" msgid "Are you sure you want to power off?"
msgstr "Sind Sie sicher, dass Sie ausschalten möchten?" msgstr "Sind Sie sicher, dass Sie ausschalten möchten?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Are you sure you want to reboot?" msgid "Are you sure you want to reboot?"
msgstr "Sind Sie sicher, dass Sie neu starten möchten?" msgstr "Sind Sie sicher, dass Sie neu starten möchten?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Are you sure you want to reset calibration?" msgid "Are you sure you want to reset calibration?"
msgstr "Sind Sie sicher, dass Sie die Kalibrierung zurücksetzen möchten?" msgstr "Sind Sie sicher, dass Sie die Kalibrierung zurücksetzen möchten?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Are you sure you want to uninstall?" msgid "Are you sure you want to uninstall?"
msgstr "Sind Sie sicher, dass Sie deinstallieren möchten?" msgstr "Sind Sie sicher, dass Sie deinstallieren möchten?"
@ -187,10 +187,10 @@ msgstr ""
msgid "CHANGE" msgid "CHANGE"
msgstr "ÄNDERN" msgstr "ÄNDERN"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:107
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:118
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:142 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:147
#, python-format #, python-format
msgid "CHECK" msgid "CHECK"
msgstr "PRÜFEN" msgstr "PRÜFEN"
@ -215,7 +215,7 @@ msgid "CONNECTING..."
msgstr "VERBINDUNG" msgstr "VERBINDUNG"
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:34 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35
#: /home/batman/openpilot/system/ui/widgets/keyboard.py:81 #: /home/batman/openpilot/system/ui/widgets/keyboard.py:81
#: /home/batman/openpilot/system/ui/widgets/network.py:318 #: /home/batman/openpilot/system/ui/widgets/network.py:318
#, python-format #, python-format
@ -249,12 +249,12 @@ msgstr "Klicken Sie auf \"add new device\" und scannen Sie den QR‑Code rechts"
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49
#, python-format #, python-format
msgid "Current Version" msgid "Current Version"
msgstr "Aktuelle Version" msgstr "Aktuelle Version"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:110
#, python-format #, python-format
msgid "DOWNLOAD" msgid "DOWNLOAD"
msgstr "HERUNTERLADEN" msgstr "HERUNTERLADEN"
@ -282,17 +282,17 @@ msgstr "Gerät"
msgid "Disengage on Accelerator Pedal" msgid "Disengage on Accelerator Pedal"
msgstr "Beim Gaspedal deaktivieren" msgstr "Beim Gaspedal deaktivieren"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:183 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:184
#, python-format #, python-format
msgid "Disengage to Power Off" msgid "Disengage to Power Off"
msgstr "Zum Ausschalten deaktivieren" msgstr "Zum Ausschalten deaktivieren"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:171 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:172
#, python-format #, python-format
msgid "Disengage to Reboot" msgid "Disengage to Reboot"
msgstr "Zum Neustart deaktivieren" msgstr "Zum Neustart deaktivieren"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:102 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:103
#, python-format #, python-format
msgid "Disengage to Reset Calibration" msgid "Disengage to Reset Calibration"
msgstr "Zum Zurücksetzen der Kalibrierung deaktivieren" msgstr "Zum Zurücksetzen der Kalibrierung deaktivieren"
@ -306,7 +306,7 @@ msgstr "Geschwindigkeit in km/h statt mph anzeigen."
msgid "Dongle ID" msgid "Dongle ID"
msgstr "Dongle-ID" msgstr "Dongle-ID"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#, python-format #, python-format
msgid "Download" msgid "Download"
msgstr "Herunterladen" msgstr "Herunterladen"
@ -415,8 +415,8 @@ msgstr "Passwort eingeben"
msgid "Enter your GitHub username" msgid "Enter your GitHub username"
msgstr "Geben Sie Ihren GitHub‑Benutzernamen ein" msgstr "Geben Sie Ihren GitHub‑Benutzernamen ein"
#: /home/batman/openpilot/system/ui/widgets/list_view.py:115 #: /home/batman/openpilot/system/ui/widgets/list_view.py:123
#: /home/batman/openpilot/system/ui/widgets/list_view.py:153 #: /home/batman/openpilot/system/ui/widgets/list_view.py:160
#, python-format #, python-format
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
@ -533,8 +533,8 @@ msgstr "Netzwerk"
msgid "INACTIVE: connect to an unmetered network" msgid "INACTIVE: connect to an unmetered network"
msgstr "INAKTIV: Mit einem unlimitierten Netzwerk verbinden" msgstr "INAKTIV: Mit einem unlimitierten Netzwerk verbinden"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:131 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:136
#, python-format #, python-format
msgid "INSTALL" msgid "INSTALL"
msgstr "INSTALLIEREN" msgstr "INSTALLIEREN"
@ -544,7 +544,7 @@ msgstr "INSTALLIEREN"
msgid "IP Address" msgid "IP Address"
msgstr "IP‑Adresse" msgstr "IP‑Adresse"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#, python-format #, python-format
msgid "Install Update" msgid "Install Update"
msgstr "Update installieren" msgstr "Update installieren"
@ -614,7 +614,7 @@ msgstr "Keine Versionshinweise verfügbar."
msgid "OFFLINE" msgid "OFFLINE"
msgstr "OFFLINE" msgstr "OFFLINE"
#: /home/batman/openpilot/system/ui/widgets/html_render.py:247 #: /home/batman/openpilot/system/ui/widgets/html_render.py:263
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93
#: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127 #: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127
#, python-format #, python-format
@ -682,7 +682,7 @@ msgid "Please connect to Wi-Fi to complete initial pairing"
msgstr "Bitte mit WLAN verbinden, um das erste Koppeln abzuschließen" msgstr "Bitte mit WLAN verbinden, um das erste Koppeln abzuschließen"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Power Off" msgid "Power Off"
msgstr "Ausschalten" msgstr "Ausschalten"
@ -725,7 +725,7 @@ msgid "REVIEW"
msgstr "ANSEHEN" msgstr "ANSEHEN"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Reboot" msgid "Reboot"
msgstr "Neustart" msgstr "Neustart"
@ -793,7 +793,7 @@ msgstr "Remote‑Schnappschüsse"
msgid "Request timed out" msgid "Request timed out"
msgstr "Zeitüberschreitung bei der Anfrage" msgstr "Zeitüberschreitung bei der Anfrage"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Reset" msgid "Reset"
msgstr "Zurücksetzen" msgstr "Zurücksetzen"
@ -813,6 +813,11 @@ msgid "Review the rules, features, and limitations of openpilot"
msgstr "" msgstr ""
"Überprüfen Sie die Regeln, Funktionen und Einschränkungen von openpilot" "Überprüfen Sie die Regeln, Funktionen und Einschränkungen von openpilot"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "SELECT"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53
#, python-format #, python-format
msgid "SSH Keys" msgid "SSH Keys"
@ -823,11 +828,16 @@ msgstr "SSH‑Schlüssel"
msgid "Scanning Wi-Fi networks..." msgid "Scanning Wi-Fi networks..."
msgstr "WLAN‑Netzwerke werden gesucht..." msgstr "WLAN‑Netzwerke werden gesucht..."
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:36
#, python-format #, python-format
msgid "Select" msgid "Select"
msgstr "Auswählen" msgstr "Auswählen"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:183
#, python-format
msgid "Select a branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91
#, python-format #, python-format
msgid "Select a language" msgid "Select a language"
@ -883,6 +893,11 @@ msgstr "SOFORT DIE KONTROLLE ÜBERNEHMEN"
msgid "TEMP" msgid "TEMP"
msgstr "TEMP" msgstr "TEMP"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "Target Branch"
msgstr ""
#: /home/batman/openpilot/system/ui/widgets/network.py:124 #: /home/batman/openpilot/system/ui/widgets/network.py:124
#, python-format #, python-format
msgid "Tethering Password" msgid "Tethering Password"
@ -892,7 +907,7 @@ msgstr "Tethering‑Passwort"
msgid "Toggles" msgid "Toggles"
msgstr "Schalter" msgstr "Schalter"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#, python-format #, python-format
msgid "UNINSTALL" msgid "UNINSTALL"
msgstr "DEINSTALLIEREN" msgstr "DEINSTALLIEREN"
@ -902,8 +917,8 @@ msgstr "DEINSTALLIEREN"
msgid "UPDATE" msgid "UPDATE"
msgstr "UPDATE" msgstr "UPDATE"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Uninstall" msgid "Uninstall"
msgstr "Deinstallieren" msgstr "Deinstallieren"
@ -912,7 +927,7 @@ msgstr "Deinstallieren"
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:47 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48
#, python-format #, python-format
msgid "Updates are only downloaded while the car is off." msgid "Updates are only downloaded while the car is off."
msgstr "Updates werden nur heruntergeladen, wenn das Auto aus ist." msgstr "Updates werden nur heruntergeladen, wenn das Auto aus ist."
@ -1024,12 +1039,12 @@ msgstr "comma prime"
msgid "default" msgid "default"
msgstr "Standard" msgstr "Standard"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "down" msgid "down"
msgstr "unten" msgstr "unten"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:105 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106
#, python-format #, python-format
msgid "failed to check for update" msgid "failed to check for update"
msgstr "Überprüfung auf Updates fehlgeschlagen" msgstr "Überprüfung auf Updates fehlgeschlagen"
@ -1050,7 +1065,7 @@ msgstr "km/h"
msgid "leave blank for automatic configuration" msgid "leave blank for automatic configuration"
msgstr "für automatische Konfiguration leer lassen" msgstr "für automatische Konfiguration leer lassen"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "left" msgid "left"
msgstr "links" msgstr "links"
@ -1065,12 +1080,12 @@ msgstr "getaktet"
msgid "mph" msgid "mph"
msgstr "mph" msgstr "mph"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:19 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:20
#, python-format #, python-format
msgid "never" msgid "never"
msgstr "nie" msgstr "nie"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:30 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:31
#, python-format #, python-format
msgid "now" msgid "now"
msgstr "jetzt" msgstr "jetzt"
@ -1113,7 +1128,7 @@ msgstr ""
"manche Kurven besser zu zeigen. Das Experimentalmodus‑Logo wird außerdem " "manche Kurven besser zu zeigen. Das Experimentalmodus‑Logo wird außerdem "
"oben rechts angezeigt." "oben rechts angezeigt."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:164 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:165
#, python-format #, python-format
msgid "" msgid ""
"openpilot is continuously calibrating, resetting is rarely required. " "openpilot is continuously calibrating, resetting is rarely required. "
@ -1149,7 +1164,7 @@ msgstr ""
"openpilot erfordert, dass das Gerät innerhalb von 4° nach links oder rechts " "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." "und innerhalb von 5° nach oben oder 9° nach unten montiert ist."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "right" msgid "right"
msgstr "rechts" msgstr "rechts"
@ -1159,22 +1174,22 @@ msgstr "rechts"
msgid "unmetered" msgid "unmetered"
msgstr "unbegrenzt" msgstr "unbegrenzt"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "up" msgid "up"
msgstr "oben" msgstr "oben"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:116 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117
#, python-format #, python-format
msgid "up to date, last checked never" msgid "up to date, last checked never"
msgstr "Aktuell, zuletzt geprüft: nie" msgstr "Aktuell, zuletzt geprüft: nie"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:114 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:115
#, python-format #, python-format
msgid "up to date, last checked {}" msgid "up to date, last checked {}"
msgstr "Aktuell, zuletzt geprüft: {}" msgstr "Aktuell, zuletzt geprüft: {}"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:108 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109
#, python-format #, python-format
msgid "update available" msgid "update available"
msgstr "Update verfügbar" msgstr "Update verfügbar"
@ -1186,21 +1201,21 @@ msgid_plural "{} ALERTS"
msgstr[0] "{} WARNUNG" msgstr[0] "{} WARNUNG"
msgstr[1] "{} WARNUNGEN" msgstr[1] "{} WARNUNGEN"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:39 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:40
#, python-format #, python-format
msgid "{} day ago" msgid "{} day ago"
msgid_plural "{} days ago" msgid_plural "{} days ago"
msgstr[0] "vor {} Tag" msgstr[0] "vor {} Tag"
msgstr[1] "vor {} Tagen" msgstr[1] "vor {} Tagen"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:36 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:37
#, python-format #, python-format
msgid "{} hour ago" msgid "{} hour ago"
msgid_plural "{} hours ago" msgid_plural "{} hours ago"
msgstr[0] "vor {} Stunde" msgstr[0] "vor {} Stunde"
msgstr[1] "vor {} Stunden" msgstr[1] "vor {} Stunden"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:33 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:34
#, python-format #, python-format
msgid "{} minute ago" msgid "{} minute ago"
msgid_plural "{} minutes ago" msgid_plural "{} minutes ago"

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-22 15:30-0700\n" "POT-Creation-Date: 2025-10-22 18:57-0700\n"
"PO-Revision-Date: 2025-10-21 18:18-0700\n" "PO-Revision-Date: 2025-10-21 18:18-0700\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -17,17 +17,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:159 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:160
#, python-format #, python-format
msgid " Steering torque response calibration is complete." msgid " Steering torque response calibration is complete."
msgstr " Steering torque response calibration is complete." msgstr " Steering torque response calibration is complete."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:157 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:158
#, python-format #, python-format
msgid " Steering torque response calibration is {}% complete." msgid " Steering torque response calibration is {}% complete."
msgstr " Steering torque response calibration is {}% complete." msgstr " Steering torque response calibration is {}% complete."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}."
msgstr " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgstr " Your device is pointed {:.1f}° {} and {:.1f}° {}."
@ -76,12 +76,12 @@ msgstr ""
"control alpha. Changing this setting will restart openpilot if the car is " "control alpha. Changing this setting will restart openpilot if the car is "
"powered on." "powered on."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:147 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:148
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is complete." msgid "<br><br>Steering lag calibration is complete."
msgstr "<br><br>Steering lag calibration is complete." msgstr "<br><br>Steering lag calibration is complete."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:145 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:146
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is {}% complete." msgid "<br><br>Steering lag calibration is {}% complete."
msgstr "<br><br>Steering lag calibration is {}% complete." msgstr "<br><br>Steering lag calibration is {}% complete."
@ -143,22 +143,22 @@ msgstr ""
"An alpha version of openpilot longitudinal control can be tested, along with " "An alpha version of openpilot longitudinal control can be tested, along with "
"Experimental mode, on non-release branches." "Experimental mode, on non-release branches."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Are you sure you want to power off?" msgid "Are you sure you want to power off?"
msgstr "Are you sure you want to power off?" msgstr "Are you sure you want to power off?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Are you sure you want to reboot?" msgid "Are you sure you want to reboot?"
msgstr "Are you sure you want to reboot?" msgstr "Are you sure you want to reboot?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Are you sure you want to reset calibration?" msgid "Are you sure you want to reset calibration?"
msgstr "Are you sure you want to reset calibration?" msgstr "Are you sure you want to reset calibration?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Are you sure you want to uninstall?" msgid "Are you sure you want to uninstall?"
msgstr "Are you sure you want to uninstall?" msgstr "Are you sure you want to uninstall?"
@ -184,10 +184,10 @@ msgstr "Bookmark connect.comma.ai to your home screen to use it like an app"
msgid "CHANGE" msgid "CHANGE"
msgstr "CHANGE" msgstr "CHANGE"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:107
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:118
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:142 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:147
#, python-format #, python-format
msgid "CHECK" msgid "CHECK"
msgstr "CHECK" msgstr "CHECK"
@ -212,7 +212,7 @@ msgid "CONNECTING..."
msgstr "CONNECTING..." msgstr "CONNECTING..."
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:34 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35
#: /home/batman/openpilot/system/ui/widgets/keyboard.py:81 #: /home/batman/openpilot/system/ui/widgets/keyboard.py:81
#: /home/batman/openpilot/system/ui/widgets/network.py:318 #: /home/batman/openpilot/system/ui/widgets/network.py:318
#, python-format #, python-format
@ -244,12 +244,12 @@ msgstr "Click \"add new device\" and scan the QR code on the right"
msgid "Close" msgid "Close"
msgstr "Close" msgstr "Close"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49
#, python-format #, python-format
msgid "Current Version" msgid "Current Version"
msgstr "Current Version" msgstr "Current Version"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:110
#, python-format #, python-format
msgid "DOWNLOAD" msgid "DOWNLOAD"
msgstr "DOWNLOAD" msgstr "DOWNLOAD"
@ -277,17 +277,17 @@ msgstr "Device"
msgid "Disengage on Accelerator Pedal" msgid "Disengage on Accelerator Pedal"
msgstr "Disengage on Accelerator Pedal" msgstr "Disengage on Accelerator Pedal"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:183 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:184
#, python-format #, python-format
msgid "Disengage to Power Off" msgid "Disengage to Power Off"
msgstr "Disengage to Power Off" msgstr "Disengage to Power Off"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:171 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:172
#, python-format #, python-format
msgid "Disengage to Reboot" msgid "Disengage to Reboot"
msgstr "Disengage to Reboot" msgstr "Disengage to Reboot"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:102 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:103
#, python-format #, python-format
msgid "Disengage to Reset Calibration" msgid "Disengage to Reset Calibration"
msgstr "Disengage to Reset Calibration" msgstr "Disengage to Reset Calibration"
@ -301,7 +301,7 @@ msgstr "Display speed in km/h instead of mph."
msgid "Dongle ID" msgid "Dongle ID"
msgstr "Dongle ID" msgstr "Dongle ID"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#, python-format #, python-format
msgid "Download" msgid "Download"
msgstr "Download" msgstr "Download"
@ -410,8 +410,8 @@ msgstr "Enter password"
msgid "Enter your GitHub username" msgid "Enter your GitHub username"
msgstr "Enter your GitHub username" msgstr "Enter your GitHub username"
#: /home/batman/openpilot/system/ui/widgets/list_view.py:115 #: /home/batman/openpilot/system/ui/widgets/list_view.py:123
#: /home/batman/openpilot/system/ui/widgets/list_view.py:153 #: /home/batman/openpilot/system/ui/widgets/list_view.py:160
#, python-format #, python-format
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
@ -527,8 +527,8 @@ msgstr "Hidden Network"
msgid "INACTIVE: connect to an unmetered network" msgid "INACTIVE: connect to an unmetered network"
msgstr "INACTIVE: connect to an unmetered network" msgstr "INACTIVE: connect to an unmetered network"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:131 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:136
#, python-format #, python-format
msgid "INSTALL" msgid "INSTALL"
msgstr "INSTALL" msgstr "INSTALL"
@ -538,7 +538,7 @@ msgstr "INSTALL"
msgid "IP Address" msgid "IP Address"
msgstr "IP Address" msgstr "IP Address"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#, python-format #, python-format
msgid "Install Update" msgid "Install Update"
msgstr "Install Update" msgstr "Install Update"
@ -607,7 +607,7 @@ msgstr "No release notes available."
msgid "OFFLINE" msgid "OFFLINE"
msgstr "OFFLINE" msgstr "OFFLINE"
#: /home/batman/openpilot/system/ui/widgets/html_render.py:247 #: /home/batman/openpilot/system/ui/widgets/html_render.py:263
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93
#: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127 #: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127
#, python-format #, python-format
@ -675,7 +675,7 @@ msgid "Please connect to Wi-Fi to complete initial pairing"
msgstr "Please connect to Wi-Fi to complete initial pairing" msgstr "Please connect to Wi-Fi to complete initial pairing"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Power Off" msgid "Power Off"
msgstr "Power Off" msgstr "Power Off"
@ -718,7 +718,7 @@ msgid "REVIEW"
msgstr "REVIEW" msgstr "REVIEW"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Reboot" msgid "Reboot"
msgstr "Reboot" msgstr "Reboot"
@ -786,7 +786,7 @@ msgstr "Remote snapshots"
msgid "Request timed out" msgid "Request timed out"
msgstr "Request timed out" msgstr "Request timed out"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Reset" msgid "Reset"
msgstr "Reset" msgstr "Reset"
@ -805,6 +805,11 @@ msgstr "Review Training Guide"
msgid "Review the rules, features, and limitations of openpilot" msgid "Review the rules, features, and limitations of openpilot"
msgstr "Review the rules, features, and limitations of openpilot" msgstr "Review the rules, features, and limitations of openpilot"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "SELECT"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53
#, python-format #, python-format
msgid "SSH Keys" msgid "SSH Keys"
@ -815,11 +820,16 @@ msgstr "SSH Keys"
msgid "Scanning Wi-Fi networks..." msgid "Scanning Wi-Fi networks..."
msgstr "Scanning Wi-Fi networks..." msgstr "Scanning Wi-Fi networks..."
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:36
#, python-format #, python-format
msgid "Select" msgid "Select"
msgstr "Select" msgstr "Select"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:183
#, python-format
msgid "Select a branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91
#, python-format #, python-format
msgid "Select a language" msgid "Select a language"
@ -874,6 +884,11 @@ msgstr "TAKE CONTROL IMMEDIATELY"
msgid "TEMP" msgid "TEMP"
msgstr "TEMP" msgstr "TEMP"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "Target Branch"
msgstr ""
#: /home/batman/openpilot/system/ui/widgets/network.py:124 #: /home/batman/openpilot/system/ui/widgets/network.py:124
#, python-format #, python-format
msgid "Tethering Password" msgid "Tethering Password"
@ -883,7 +898,7 @@ msgstr "Tethering Password"
msgid "Toggles" msgid "Toggles"
msgstr "Toggles" msgstr "Toggles"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#, python-format #, python-format
msgid "UNINSTALL" msgid "UNINSTALL"
msgstr "UNINSTALL" msgstr "UNINSTALL"
@ -893,8 +908,8 @@ msgstr "UNINSTALL"
msgid "UPDATE" msgid "UPDATE"
msgstr "UPDATE" msgstr "UPDATE"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Uninstall" msgid "Uninstall"
msgstr "Uninstall" msgstr "Uninstall"
@ -903,7 +918,7 @@ msgstr "Uninstall"
msgid "Unknown" msgid "Unknown"
msgstr "Unknown" msgstr "Unknown"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:47 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48
#, python-format #, python-format
msgid "Updates are only downloaded while the car is off." msgid "Updates are only downloaded while the car is off."
msgstr "Updates are only downloaded while the car is off." msgstr "Updates are only downloaded while the car is off."
@ -1011,12 +1026,12 @@ msgstr "comma prime"
msgid "default" msgid "default"
msgstr "default" msgstr "default"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "down" msgid "down"
msgstr "down" msgstr "down"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:105 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106
#, python-format #, python-format
msgid "failed to check for update" msgid "failed to check for update"
msgstr "failed to check for update" msgstr "failed to check for update"
@ -1037,7 +1052,7 @@ msgstr "km/h"
msgid "leave blank for automatic configuration" msgid "leave blank for automatic configuration"
msgstr "leave blank for automatic configuration" msgstr "leave blank for automatic configuration"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "left" msgid "left"
msgstr "left" msgstr "left"
@ -1052,12 +1067,12 @@ msgstr "metered"
msgid "mph" msgid "mph"
msgstr "mph" msgstr "mph"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:19 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:20
#, python-format #, python-format
msgid "never" msgid "never"
msgstr "never" msgstr "never"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:30 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:31
#, python-format #, python-format
msgid "now" msgid "now"
msgstr "now" msgstr "now"
@ -1099,7 +1114,7 @@ msgstr ""
"some turns. The Experimental mode logo will also be shown in the top right " "some turns. The Experimental mode logo will also be shown in the top right "
"corner." "corner."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:164 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:165
#, python-format #, python-format
msgid "" msgid ""
"openpilot is continuously calibrating, resetting is rarely required. " "openpilot is continuously calibrating, resetting is rarely required. "
@ -1135,7 +1150,7 @@ msgstr ""
"openpilot requires the device to be mounted within 4° left or right and " "openpilot requires the device to be mounted within 4° left or right and "
"within 5° up or 9° down." "within 5° up or 9° down."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "right" msgid "right"
msgstr "right" msgstr "right"
@ -1145,22 +1160,22 @@ msgstr "right"
msgid "unmetered" msgid "unmetered"
msgstr "unmetered" msgstr "unmetered"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "up" msgid "up"
msgstr "up" msgstr "up"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:116 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117
#, python-format #, python-format
msgid "up to date, last checked never" msgid "up to date, last checked never"
msgstr "up to date, last checked never" msgstr "up to date, last checked never"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:114 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:115
#, python-format #, python-format
msgid "up to date, last checked {}" msgid "up to date, last checked {}"
msgstr "up to date, last checked {}" msgstr "up to date, last checked {}"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:108 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109
#, python-format #, python-format
msgid "update available" msgid "update available"
msgstr "update available" msgstr "update available"
@ -1172,21 +1187,21 @@ msgid_plural "{} ALERTS"
msgstr[0] "{} ALERT" msgstr[0] "{} ALERT"
msgstr[1] "{} ALERTS" msgstr[1] "{} ALERTS"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:39 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:40
#, python-format #, python-format
msgid "{} day ago" msgid "{} day ago"
msgid_plural "{} days ago" msgid_plural "{} days ago"
msgstr[0] "{} day ago" msgstr[0] "{} day ago"
msgstr[1] "{} days ago" msgstr[1] "{} days ago"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:36 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:37
#, python-format #, python-format
msgid "{} hour ago" msgid "{} hour ago"
msgid_plural "{} hours ago" msgid_plural "{} hours ago"
msgstr[0] "{} hour ago" msgstr[0] "{} hour ago"
msgstr[1] "{} hours ago" msgstr[1] "{} hours ago"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:33 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:34
#, python-format #, python-format
msgid "{} minute ago" msgid "{} minute ago"
msgid_plural "{} minutes ago" msgid_plural "{} minutes ago"

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-22 15:30-0700\n" "POT-Creation-Date: 2025-10-22 18:57-0700\n"
"PO-Revision-Date: 2025-10-20 16:35-0700\n" "PO-Revision-Date: 2025-10-20 16:35-0700\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -17,17 +17,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:159 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:160
#, python-format #, python-format
msgid " Steering torque response calibration is complete." msgid " Steering torque response calibration is complete."
msgstr " La calibración de respuesta de par de dirección está completa." msgstr " La calibración de respuesta de par de dirección está completa."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:157 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:158
#, python-format #, python-format
msgid " Steering torque response calibration is {}% complete." msgid " Steering torque response calibration is {}% complete."
msgstr " La calibración de respuesta de par de dirección está {}% completa." msgstr " La calibración de respuesta de par de dirección está {}% completa."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}."
msgstr " Tu dispositivo está orientado {:.1f}° {} y {:.1f}° {}." msgstr " Tu dispositivo está orientado {:.1f}° {} y {:.1f}° {}."
@ -75,12 +75,12 @@ msgstr ""
"cambiar al control longitudinal de openpilot. Se recomienda activar el modo " "cambiar al control longitudinal de openpilot. Se recomienda activar el modo "
"Experimental al habilitar el control longitudinal de openpilot (alpha)." "Experimental al habilitar el control longitudinal de openpilot (alpha)."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:147 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:148
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is complete." msgid "<br><br>Steering lag calibration is complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:145 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:146
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is {}% complete." msgid "<br><br>Steering lag calibration is {}% complete."
msgstr "" msgstr ""
@ -143,22 +143,22 @@ msgstr ""
"Se puede probar una versión alpha del control longitudinal de openpilot, " "Se puede probar una versión alpha del control longitudinal de openpilot, "
"junto con el modo Experimental, en ramas que no son de lanzamiento." "junto con el modo Experimental, en ramas que no son de lanzamiento."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Are you sure you want to power off?" msgid "Are you sure you want to power off?"
msgstr "¿Seguro que quieres apagar?" msgstr "¿Seguro que quieres apagar?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Are you sure you want to reboot?" msgid "Are you sure you want to reboot?"
msgstr "¿Seguro que quieres reiniciar?" msgstr "¿Seguro que quieres reiniciar?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Are you sure you want to reset calibration?" msgid "Are you sure you want to reset calibration?"
msgstr "¿Seguro que quieres restablecer la calibración?" msgstr "¿Seguro que quieres restablecer la calibración?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Are you sure you want to uninstall?" msgid "Are you sure you want to uninstall?"
msgstr "¿Seguro que quieres desinstalar?" msgstr "¿Seguro que quieres desinstalar?"
@ -185,10 +185,10 @@ msgstr ""
msgid "CHANGE" msgid "CHANGE"
msgstr "CAMBIAR" msgstr "CAMBIAR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:107
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:118
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:142 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:147
#, python-format #, python-format
msgid "CHECK" msgid "CHECK"
msgstr "COMPROBAR" msgstr "COMPROBAR"
@ -213,7 +213,7 @@ msgid "CONNECTING..."
msgstr "CONECTAR" msgstr "CONECTAR"
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:34 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35
#: /home/batman/openpilot/system/ui/widgets/keyboard.py:81 #: /home/batman/openpilot/system/ui/widgets/keyboard.py:81
#: /home/batman/openpilot/system/ui/widgets/network.py:318 #: /home/batman/openpilot/system/ui/widgets/network.py:318
#, python-format #, python-format
@ -247,12 +247,12 @@ msgstr ""
msgid "Close" msgid "Close"
msgstr "Cerrar" msgstr "Cerrar"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49
#, python-format #, python-format
msgid "Current Version" msgid "Current Version"
msgstr "Versión actual" msgstr "Versión actual"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:110
#, python-format #, python-format
msgid "DOWNLOAD" msgid "DOWNLOAD"
msgstr "DESCARGAR" msgstr "DESCARGAR"
@ -280,17 +280,17 @@ msgstr "Dispositivo"
msgid "Disengage on Accelerator Pedal" msgid "Disengage on Accelerator Pedal"
msgstr "Desactivar con el pedal del acelerador" msgstr "Desactivar con el pedal del acelerador"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:183 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:184
#, python-format #, python-format
msgid "Disengage to Power Off" msgid "Disengage to Power Off"
msgstr "Desactivar para apagar" msgstr "Desactivar para apagar"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:171 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:172
#, python-format #, python-format
msgid "Disengage to Reboot" msgid "Disengage to Reboot"
msgstr "Desactivar para reiniciar" msgstr "Desactivar para reiniciar"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:102 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:103
#, python-format #, python-format
msgid "Disengage to Reset Calibration" msgid "Disengage to Reset Calibration"
msgstr "Desactivar para restablecer la calibración" msgstr "Desactivar para restablecer la calibración"
@ -304,7 +304,7 @@ msgstr "Mostrar la velocidad en km/h en lugar de mph."
msgid "Dongle ID" msgid "Dongle ID"
msgstr "ID del dongle" msgstr "ID del dongle"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#, python-format #, python-format
msgid "Download" msgid "Download"
msgstr "Descargar" msgstr "Descargar"
@ -415,8 +415,8 @@ msgstr ""
msgid "Enter your GitHub username" msgid "Enter your GitHub username"
msgstr "Introduce tu nombre de usuario de GitHub" msgstr "Introduce tu nombre de usuario de GitHub"
#: /home/batman/openpilot/system/ui/widgets/list_view.py:115 #: /home/batman/openpilot/system/ui/widgets/list_view.py:123
#: /home/batman/openpilot/system/ui/widgets/list_view.py:153 #: /home/batman/openpilot/system/ui/widgets/list_view.py:160
#, python-format #, python-format
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -531,8 +531,8 @@ msgstr "Red"
msgid "INACTIVE: connect to an unmetered network" msgid "INACTIVE: connect to an unmetered network"
msgstr "INACTIVO: conéctate a una red sin límites" msgstr "INACTIVO: conéctate a una red sin límites"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:131 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:136
#, python-format #, python-format
msgid "INSTALL" msgid "INSTALL"
msgstr "INSTALAR" msgstr "INSTALAR"
@ -542,7 +542,7 @@ msgstr "INSTALAR"
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#, python-format #, python-format
msgid "Install Update" msgid "Install Update"
msgstr "Instalar actualización" msgstr "Instalar actualización"
@ -612,7 +612,7 @@ msgstr "No hay notas de versión disponibles."
msgid "OFFLINE" msgid "OFFLINE"
msgstr "SIN CONEXIÓN" msgstr "SIN CONEXIÓN"
#: /home/batman/openpilot/system/ui/widgets/html_render.py:247 #: /home/batman/openpilot/system/ui/widgets/html_render.py:263
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93
#: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127 #: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127
#, python-format #, python-format
@ -680,7 +680,7 @@ msgid "Please connect to Wi-Fi to complete initial pairing"
msgstr "Conéctate a Wi‑Fi para completar el emparejamiento inicial" msgstr "Conéctate a Wi‑Fi para completar el emparejamiento inicial"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Power Off" msgid "Power Off"
msgstr "Apagar" msgstr "Apagar"
@ -724,7 +724,7 @@ msgid "REVIEW"
msgstr "REVISAR" msgstr "REVISAR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Reboot" msgid "Reboot"
msgstr "Reiniciar" msgstr "Reiniciar"
@ -792,7 +792,7 @@ msgstr "Capturas remotas"
msgid "Request timed out" msgid "Request timed out"
msgstr "Se agotó el tiempo de espera de la solicitud" msgstr "Se agotó el tiempo de espera de la solicitud"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Reset" msgid "Reset"
msgstr "Restablecer" msgstr "Restablecer"
@ -811,6 +811,11 @@ msgstr "Revisar guía de entrenamiento"
msgid "Review the rules, features, and limitations of openpilot" msgid "Review the rules, features, and limitations of openpilot"
msgstr "Revisa las reglas, funciones y limitaciones de openpilot" msgstr "Revisa las reglas, funciones y limitaciones de openpilot"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "SELECT"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53
#, python-format #, python-format
msgid "SSH Keys" msgid "SSH Keys"
@ -821,11 +826,16 @@ msgstr ""
msgid "Scanning Wi-Fi networks..." msgid "Scanning Wi-Fi networks..."
msgstr "" msgstr ""
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:36
#, python-format #, python-format
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:183
#, python-format
msgid "Select a branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91
#, python-format #, python-format
msgid "Select a language" msgid "Select a language"
@ -881,6 +891,11 @@ msgstr "TOME EL CONTROL INMEDIATAMENTE"
msgid "TEMP" msgid "TEMP"
msgstr "TEMP" msgstr "TEMP"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "Target Branch"
msgstr ""
#: /home/batman/openpilot/system/ui/widgets/network.py:124 #: /home/batman/openpilot/system/ui/widgets/network.py:124
#, python-format #, python-format
msgid "Tethering Password" msgid "Tethering Password"
@ -890,7 +905,7 @@ msgstr ""
msgid "Toggles" msgid "Toggles"
msgstr "Interruptores" msgstr "Interruptores"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#, python-format #, python-format
msgid "UNINSTALL" msgid "UNINSTALL"
msgstr "DESINSTALAR" msgstr "DESINSTALAR"
@ -900,8 +915,8 @@ msgstr "DESINSTALAR"
msgid "UPDATE" msgid "UPDATE"
msgstr "ACTUALIZAR" msgstr "ACTUALIZAR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Uninstall" msgid "Uninstall"
msgstr "Desinstalar" msgstr "Desinstalar"
@ -910,7 +925,7 @@ msgstr "Desinstalar"
msgid "Unknown" msgid "Unknown"
msgstr "Desconocido" msgstr "Desconocido"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:47 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48
#, python-format #, python-format
msgid "Updates are only downloaded while the car is off." msgid "Updates are only downloaded while the car is off."
msgstr "Las actualizaciones solo se descargan cuando el coche está apagado." msgstr "Las actualizaciones solo se descargan cuando el coche está apagado."
@ -1022,12 +1037,12 @@ msgstr "comma prime"
msgid "default" msgid "default"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "down" msgid "down"
msgstr "abajo" msgstr "abajo"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:105 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106
#, python-format #, python-format
msgid "failed to check for update" msgid "failed to check for update"
msgstr "Error al buscar actualizaciones" msgstr "Error al buscar actualizaciones"
@ -1048,7 +1063,7 @@ msgstr "km/h"
msgid "leave blank for automatic configuration" msgid "leave blank for automatic configuration"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "left" msgid "left"
msgstr "izquierda" msgstr "izquierda"
@ -1063,12 +1078,12 @@ msgstr ""
msgid "mph" msgid "mph"
msgstr "mph" msgstr "mph"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:19 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:20
#, python-format #, python-format
msgid "never" msgid "never"
msgstr "nunca" msgstr "nunca"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:30 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:31
#, python-format #, python-format
msgid "now" msgid "now"
msgstr "ahora" msgstr "ahora"
@ -1112,7 +1127,7 @@ msgstr ""
"mostrar mejor algunos giros. El logotipo del modo Experimental también se " "mostrar mejor algunos giros. El logotipo del modo Experimental también se "
"mostrará en la esquina superior derecha." "mostrará en la esquina superior derecha."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:164 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:165
#, python-format #, python-format
msgid "" msgid ""
"openpilot is continuously calibrating, resetting is rarely required. " "openpilot is continuously calibrating, resetting is rarely required. "
@ -1149,7 +1164,7 @@ msgstr ""
"openpilot requiere que el dispositivo esté montado dentro de 4° a izquierda " "openpilot requiere que el dispositivo esté montado dentro de 4° a izquierda "
"o derecha y dentro de 5° hacia arriba o 9° hacia abajo." "o derecha y dentro de 5° hacia arriba o 9° hacia abajo."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "right" msgid "right"
msgstr "derecha" msgstr "derecha"
@ -1159,22 +1174,22 @@ msgstr "derecha"
msgid "unmetered" msgid "unmetered"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "up" msgid "up"
msgstr "arriba" msgstr "arriba"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:116 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117
#, python-format #, python-format
msgid "up to date, last checked never" msgid "up to date, last checked never"
msgstr "actualizado, última comprobación: nunca" msgstr "actualizado, última comprobación: nunca"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:114 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:115
#, python-format #, python-format
msgid "up to date, last checked {}" msgid "up to date, last checked {}"
msgstr "actualizado, última comprobación: {}" msgstr "actualizado, última comprobación: {}"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:108 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109
#, python-format #, python-format
msgid "update available" msgid "update available"
msgstr "actualización disponible" msgstr "actualización disponible"
@ -1186,21 +1201,21 @@ msgid_plural "{} ALERTS"
msgstr[0] "{} ALERTA" msgstr[0] "{} ALERTA"
msgstr[1] "{} ALERTAS" msgstr[1] "{} ALERTAS"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:39 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:40
#, python-format #, python-format
msgid "{} day ago" msgid "{} day ago"
msgid_plural "{} days ago" msgid_plural "{} days ago"
msgstr[0] "hace {} día" msgstr[0] "hace {} día"
msgstr[1] "hace {} días" msgstr[1] "hace {} días"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:36 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:37
#, python-format #, python-format
msgid "{} hour ago" msgid "{} hour ago"
msgid_plural "{} hours ago" msgid_plural "{} hours ago"
msgstr[0] "hace {} hora" msgstr[0] "hace {} hora"
msgstr[1] "hace {} horas" msgstr[1] "hace {} horas"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:33 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:34
#, python-format #, python-format
msgid "{} minute ago" msgid "{} minute ago"
msgid_plural "{} minutes ago" msgid_plural "{} minutes ago"

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-22 15:30-0700\n" "POT-Creation-Date: 2025-10-22 18:57-0700\n"
"PO-Revision-Date: 2025-10-20 18:19-0700\n" "PO-Revision-Date: 2025-10-20 18:19-0700\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -17,17 +17,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:159 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:160
#, python-format #, python-format
msgid " Steering torque response calibration is complete." msgid " Steering torque response calibration is complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:157 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:158
#, python-format #, python-format
msgid " Steering torque response calibration is {}% complete." msgid " Steering torque response calibration is {}% complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}."
msgstr "" msgstr ""
@ -76,12 +76,12 @@ msgstr ""
"est recommandé d'activer le mode expérimental lors de l'activation du " "est recommandé d'activer le mode expérimental lors de l'activation du "
"contrôle longitudinal openpilot alpha." "contrôle longitudinal openpilot alpha."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:147 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:148
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is complete." msgid "<br><br>Steering lag calibration is complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:145 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:146
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is {}% complete." msgid "<br><br>Steering lag calibration is {}% complete."
msgstr "" msgstr ""
@ -144,22 +144,22 @@ msgstr ""
"Une version alpha du contrôle longitudinal openpilot peut être testée, avec " "Une version alpha du contrôle longitudinal openpilot peut être testée, avec "
"le mode expérimental, sur des branches non publiées." "le mode expérimental, sur des branches non publiées."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Are you sure you want to power off?" msgid "Are you sure you want to power off?"
msgstr "Êtes-vous sûr de vouloir éteindre ?" msgstr "Êtes-vous sûr de vouloir éteindre ?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Are you sure you want to reboot?" msgid "Are you sure you want to reboot?"
msgstr "Êtes-vous sûr de vouloir redémarrer ?" msgstr "Êtes-vous sûr de vouloir redémarrer ?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Are you sure you want to reset calibration?" msgid "Are you sure you want to reset calibration?"
msgstr "Êtes-vous sûr de vouloir réinitialiser la calibration ?" msgstr "Êtes-vous sûr de vouloir réinitialiser la calibration ?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Are you sure you want to uninstall?" msgid "Are you sure you want to uninstall?"
msgstr "Êtes-vous sûr de vouloir désinstaller ?" msgstr "Êtes-vous sûr de vouloir désinstaller ?"
@ -187,10 +187,10 @@ msgstr ""
msgid "CHANGE" msgid "CHANGE"
msgstr "CHANGER" msgstr "CHANGER"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:107
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:118
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:142 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:147
#, python-format #, python-format
msgid "CHECK" msgid "CHECK"
msgstr "VÉRIFIER" msgstr "VÉRIFIER"
@ -215,7 +215,7 @@ msgid "CONNECTING..."
msgstr "CONNECTER" msgstr "CONNECTER"
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:34 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35
#: /home/batman/openpilot/system/ui/widgets/keyboard.py:81 #: /home/batman/openpilot/system/ui/widgets/keyboard.py:81
#: /home/batman/openpilot/system/ui/widgets/network.py:318 #: /home/batman/openpilot/system/ui/widgets/network.py:318
#, python-format #, python-format
@ -249,12 +249,12 @@ msgstr "Cliquez sur \"add new device\" et scannez le code QR à droite"
msgid "Close" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49
#, python-format #, python-format
msgid "Current Version" msgid "Current Version"
msgstr "Version actuelle" msgstr "Version actuelle"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:110
#, python-format #, python-format
msgid "DOWNLOAD" msgid "DOWNLOAD"
msgstr "TÉLÉCHARGER" msgstr "TÉLÉCHARGER"
@ -282,17 +282,17 @@ msgstr "Appareil"
msgid "Disengage on Accelerator Pedal" msgid "Disengage on Accelerator Pedal"
msgstr "Désengager à l'appui sur l'accélérateur" msgstr "Désengager à l'appui sur l'accélérateur"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:183 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:184
#, python-format #, python-format
msgid "Disengage to Power Off" msgid "Disengage to Power Off"
msgstr "Désengager pour éteindre" msgstr "Désengager pour éteindre"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:171 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:172
#, python-format #, python-format
msgid "Disengage to Reboot" msgid "Disengage to Reboot"
msgstr "Désengager pour redémarrer" msgstr "Désengager pour redémarrer"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:102 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:103
#, python-format #, python-format
msgid "Disengage to Reset Calibration" msgid "Disengage to Reset Calibration"
msgstr "Désengager pour réinitialiser la calibration" msgstr "Désengager pour réinitialiser la calibration"
@ -306,7 +306,7 @@ msgstr "Afficher la vitesse en km/h au lieu de mph."
msgid "Dongle ID" msgid "Dongle ID"
msgstr "ID du dongle" msgstr "ID du dongle"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#, python-format #, python-format
msgid "Download" msgid "Download"
msgstr "Télécharger" msgstr "Télécharger"
@ -417,8 +417,8 @@ msgstr ""
msgid "Enter your GitHub username" msgid "Enter your GitHub username"
msgstr "Entrez votre nom d'utilisateur GitHub" msgstr "Entrez votre nom d'utilisateur GitHub"
#: /home/batman/openpilot/system/ui/widgets/list_view.py:115 #: /home/batman/openpilot/system/ui/widgets/list_view.py:123
#: /home/batman/openpilot/system/ui/widgets/list_view.py:153 #: /home/batman/openpilot/system/ui/widgets/list_view.py:160
#, python-format #, python-format
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -534,8 +534,8 @@ msgstr "Réseau"
msgid "INACTIVE: connect to an unmetered network" msgid "INACTIVE: connect to an unmetered network"
msgstr "INACTIF : connectez-vous à un réseau non limité" msgstr "INACTIF : connectez-vous à un réseau non limité"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:131 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:136
#, python-format #, python-format
msgid "INSTALL" msgid "INSTALL"
msgstr "INSTALLER" msgstr "INSTALLER"
@ -545,7 +545,7 @@ msgstr "INSTALLER"
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#, python-format #, python-format
msgid "Install Update" msgid "Install Update"
msgstr "Installer la mise à jour" msgstr "Installer la mise à jour"
@ -615,7 +615,7 @@ msgstr "Aucune note de version disponible."
msgid "OFFLINE" msgid "OFFLINE"
msgstr "HORS LIGNE" msgstr "HORS LIGNE"
#: /home/batman/openpilot/system/ui/widgets/html_render.py:247 #: /home/batman/openpilot/system/ui/widgets/html_render.py:263
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93
#: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127 #: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127
#, python-format #, python-format
@ -683,7 +683,7 @@ msgid "Please connect to Wi-Fi to complete initial pairing"
msgstr "Veuillez vous connecter au Wi‑Fi pour terminer l'association initiale" msgstr "Veuillez vous connecter au Wi‑Fi pour terminer l'association initiale"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Power Off" msgid "Power Off"
msgstr "Éteindre" msgstr "Éteindre"
@ -727,7 +727,7 @@ msgid "REVIEW"
msgstr "CONSULTER" msgstr "CONSULTER"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Reboot" msgid "Reboot"
msgstr "Redémarrer" msgstr "Redémarrer"
@ -795,7 +795,7 @@ msgstr "Captures à distance"
msgid "Request timed out" msgid "Request timed out"
msgstr "Délai de la requête dépassé" msgstr "Délai de la requête dépassé"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Reset" msgid "Reset"
msgstr "Réinitialiser" msgstr "Réinitialiser"
@ -814,6 +814,11 @@ msgstr "Consulter le guide d'entraînement"
msgid "Review the rules, features, and limitations of openpilot" msgid "Review the rules, features, and limitations of openpilot"
msgstr "Consultez les règles, fonctionnalités et limitations d'openpilot" msgstr "Consultez les règles, fonctionnalités et limitations d'openpilot"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "SELECT"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53
#, python-format #, python-format
msgid "SSH Keys" msgid "SSH Keys"
@ -824,11 +829,16 @@ msgstr ""
msgid "Scanning Wi-Fi networks..." msgid "Scanning Wi-Fi networks..."
msgstr "" msgstr ""
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:36
#, python-format #, python-format
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:183
#, python-format
msgid "Select a branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91
#, python-format #, python-format
msgid "Select a language" msgid "Select a language"
@ -884,6 +894,11 @@ msgstr "REPRENEZ IMMÉDIATEMENT LE CONTRÔLE"
msgid "TEMP" msgid "TEMP"
msgstr "TEMPÉRATURE" msgstr "TEMPÉRATURE"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "Target Branch"
msgstr ""
#: /home/batman/openpilot/system/ui/widgets/network.py:124 #: /home/batman/openpilot/system/ui/widgets/network.py:124
#, python-format #, python-format
msgid "Tethering Password" msgid "Tethering Password"
@ -893,7 +908,7 @@ msgstr ""
msgid "Toggles" msgid "Toggles"
msgstr "Options" msgstr "Options"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#, python-format #, python-format
msgid "UNINSTALL" msgid "UNINSTALL"
msgstr "DÉSINSTALLER" msgstr "DÉSINSTALLER"
@ -903,8 +918,8 @@ msgstr "DÉSINSTALLER"
msgid "UPDATE" msgid "UPDATE"
msgstr "METTRE À JOUR" msgstr "METTRE À JOUR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Uninstall" msgid "Uninstall"
msgstr "Désinstaller" msgstr "Désinstaller"
@ -913,7 +928,7 @@ msgstr "Désinstaller"
msgid "Unknown" msgid "Unknown"
msgstr "Inconnu" msgstr "Inconnu"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:47 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48
#, python-format #, python-format
msgid "Updates are only downloaded while the car is off." msgid "Updates are only downloaded while the car is off."
msgstr "" msgstr ""
@ -1025,12 +1040,12 @@ msgstr "comma prime"
msgid "default" msgid "default"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "down" msgid "down"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:105 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106
#, python-format #, python-format
msgid "failed to check for update" msgid "failed to check for update"
msgstr "échec de la vérification de mise à jour" msgstr "échec de la vérification de mise à jour"
@ -1051,7 +1066,7 @@ msgstr "km/h"
msgid "leave blank for automatic configuration" msgid "leave blank for automatic configuration"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "left" msgid "left"
msgstr "" msgstr ""
@ -1066,12 +1081,12 @@ msgstr ""
msgid "mph" msgid "mph"
msgstr "mph" msgstr "mph"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:19 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:20
#, python-format #, python-format
msgid "never" msgid "never"
msgstr "jamais" msgstr "jamais"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:30 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:31
#, python-format #, python-format
msgid "now" msgid "now"
msgstr "maintenant" msgstr "maintenant"
@ -1114,7 +1129,7 @@ msgstr ""
"pour mieux montrer certains virages. Le logo du mode expérimental sera " "pour mieux montrer certains virages. Le logo du mode expérimental sera "
"également affiché en haut à droite." "également affiché en haut à droite."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:164 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:165
#, python-format #, python-format
msgid "" msgid ""
"openpilot is continuously calibrating, resetting is rarely required. " "openpilot is continuously calibrating, resetting is rarely required. "
@ -1154,7 +1169,7 @@ msgstr ""
"openpilot exige que l'appareil soit monté à moins de 4° à gauche ou à droite " "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." "et à moins de 5° vers le haut ou 9° vers le bas."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "right" msgid "right"
msgstr "" msgstr ""
@ -1164,22 +1179,22 @@ msgstr ""
msgid "unmetered" msgid "unmetered"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "up" msgid "up"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:116 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117
#, python-format #, python-format
msgid "up to date, last checked never" msgid "up to date, last checked never"
msgstr "à jour, dernière vérification jamais" msgstr "à jour, dernière vérification jamais"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:114 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:115
#, python-format #, python-format
msgid "up to date, last checked {}" msgid "up to date, last checked {}"
msgstr "à jour, dernière vérification {}" msgstr "à jour, dernière vérification {}"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:108 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109
#, python-format #, python-format
msgid "update available" msgid "update available"
msgstr "mise à jour disponible" msgstr "mise à jour disponible"
@ -1191,21 +1206,21 @@ msgid_plural "{} ALERTS"
msgstr[0] "{} ALERTE" msgstr[0] "{} ALERTE"
msgstr[1] "{} ALERTES" msgstr[1] "{} ALERTES"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:39 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:40
#, python-format #, python-format
msgid "{} day ago" msgid "{} day ago"
msgid_plural "{} days ago" msgid_plural "{} days ago"
msgstr[0] "il y a {} jour" msgstr[0] "il y a {} jour"
msgstr[1] "il y a {} jours" msgstr[1] "il y a {} jours"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:36 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:37
#, python-format #, python-format
msgid "{} hour ago" msgid "{} hour ago"
msgid_plural "{} hours ago" msgid_plural "{} hours ago"
msgstr[0] "il y a {} heure" msgstr[0] "il y a {} heure"
msgstr[1] "il y a {} heures" msgstr[1] "il y a {} heures"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:33 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:34
#, python-format #, python-format
msgid "{} minute ago" msgid "{} minute ago"
msgid_plural "{} minutes ago" msgid_plural "{} minutes ago"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-22 15:30-0700\n" "POT-Creation-Date: 2025-10-22 18:57-0700\n"
"PO-Revision-Date: 2025-10-21 00:00-0700\n" "PO-Revision-Date: 2025-10-21 00:00-0700\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -17,17 +17,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:159 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:160
#, python-format #, python-format
msgid " Steering torque response calibration is complete." msgid " Steering torque response calibration is complete."
msgstr " A calibração da resposta de torque da direção foi concluída." msgstr " A calibração da resposta de torque da direção foi concluída."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:157 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:158
#, python-format #, python-format
msgid " Steering torque response calibration is {}% complete." msgid " Steering torque response calibration is {}% complete."
msgstr " A calibração da resposta de torque da direção está {}% concluída." msgstr " A calibração da resposta de torque da direção está {}% concluída."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}."
msgstr " Seu dispositivo está apontado {:.1f}° {} e {:.1f}° {}." msgstr " Seu dispositivo está apontado {:.1f}° {} e {:.1f}° {}."
@ -75,12 +75,12 @@ msgstr ""
"longitudinal do openpilot. Recomenda-se ativar o Modo Experimental ao ativar " "longitudinal do openpilot. Recomenda-se ativar o Modo Experimental ao ativar "
"o controle longitudinal do openpilot em alpha." "o controle longitudinal do openpilot em alpha."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:147 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:148
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is complete." msgid "<br><br>Steering lag calibration is complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:145 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:146
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is {}% complete." msgid "<br><br>Steering lag calibration is {}% complete."
msgstr "" msgstr ""
@ -143,22 +143,22 @@ msgstr ""
"Uma versão alpha do controle longitudinal do openpilot pode ser testada, " "Uma versão alpha do controle longitudinal do openpilot pode ser testada, "
"junto com o Modo Experimental, em ramificações fora de release." "junto com o Modo Experimental, em ramificações fora de release."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Are you sure you want to power off?" msgid "Are you sure you want to power off?"
msgstr "Tem certeza de que deseja desligar?" msgstr "Tem certeza de que deseja desligar?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Are you sure you want to reboot?" msgid "Are you sure you want to reboot?"
msgstr "Tem certeza de que deseja reiniciar?" msgstr "Tem certeza de que deseja reiniciar?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Are you sure you want to reset calibration?" msgid "Are you sure you want to reset calibration?"
msgstr "Tem certeza de que deseja redefinir a calibração?" msgstr "Tem certeza de que deseja redefinir a calibração?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Are you sure you want to uninstall?" msgid "Are you sure you want to uninstall?"
msgstr "Tem certeza de que deseja desinstalar?" msgstr "Tem certeza de que deseja desinstalar?"
@ -184,10 +184,10 @@ msgstr "Adicione connect.comma.ai à tela inicial para usá-lo como um app"
msgid "CHANGE" msgid "CHANGE"
msgstr "ALTERAR" msgstr "ALTERAR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:107
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:118
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:142 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:147
#, python-format #, python-format
msgid "CHECK" msgid "CHECK"
msgstr "VERIFICAR" msgstr "VERIFICAR"
@ -212,7 +212,7 @@ msgid "CONNECTING..."
msgstr "CONECTAR" msgstr "CONECTAR"
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:34 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35
#: /home/batman/openpilot/system/ui/widgets/keyboard.py:81 #: /home/batman/openpilot/system/ui/widgets/keyboard.py:81
#: /home/batman/openpilot/system/ui/widgets/network.py:318 #: /home/batman/openpilot/system/ui/widgets/network.py:318
#, python-format #, python-format
@ -245,12 +245,12 @@ msgstr "Toque em \"adicionar novo dispositivo\" e escaneie o QR code à direita"
msgid "Close" msgid "Close"
msgstr "Fechar" msgstr "Fechar"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49
#, python-format #, python-format
msgid "Current Version" msgid "Current Version"
msgstr "Versão Atual" msgstr "Versão Atual"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:110
#, python-format #, python-format
msgid "DOWNLOAD" msgid "DOWNLOAD"
msgstr "BAIXAR" msgstr "BAIXAR"
@ -278,17 +278,17 @@ msgstr "Dispositivo"
msgid "Disengage on Accelerator Pedal" msgid "Disengage on Accelerator Pedal"
msgstr "Desativar ao pressionar o acelerador" msgstr "Desativar ao pressionar o acelerador"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:183 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:184
#, python-format #, python-format
msgid "Disengage to Power Off" msgid "Disengage to Power Off"
msgstr "Desativar para Desligar" msgstr "Desativar para Desligar"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:171 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:172
#, python-format #, python-format
msgid "Disengage to Reboot" msgid "Disengage to Reboot"
msgstr "Desativar para Reiniciar" msgstr "Desativar para Reiniciar"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:102 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:103
#, python-format #, python-format
msgid "Disengage to Reset Calibration" msgid "Disengage to Reset Calibration"
msgstr "Desativar para Redefinir Calibração" msgstr "Desativar para Redefinir Calibração"
@ -302,7 +302,7 @@ msgstr "Exibir velocidade em km/h em vez de mph."
msgid "Dongle ID" msgid "Dongle ID"
msgstr "ID do Dongle" msgstr "ID do Dongle"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#, python-format #, python-format
msgid "Download" msgid "Download"
msgstr "Baixar" msgstr "Baixar"
@ -412,8 +412,8 @@ msgstr ""
msgid "Enter your GitHub username" msgid "Enter your GitHub username"
msgstr "Digite seu nome de usuário do GitHub" msgstr "Digite seu nome de usuário do GitHub"
#: /home/batman/openpilot/system/ui/widgets/list_view.py:115 #: /home/batman/openpilot/system/ui/widgets/list_view.py:123
#: /home/batman/openpilot/system/ui/widgets/list_view.py:153 #: /home/batman/openpilot/system/ui/widgets/list_view.py:160
#, python-format #, python-format
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -528,8 +528,8 @@ msgstr "Rede"
msgid "INACTIVE: connect to an unmetered network" msgid "INACTIVE: connect to an unmetered network"
msgstr "INATIVO: conecte a uma rede sem franquia" msgstr "INATIVO: conecte a uma rede sem franquia"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:131 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:136
#, python-format #, python-format
msgid "INSTALL" msgid "INSTALL"
msgstr "INSTALAR" msgstr "INSTALAR"
@ -539,7 +539,7 @@ msgstr "INSTALAR"
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#, python-format #, python-format
msgid "Install Update" msgid "Install Update"
msgstr "Instalar Atualização" msgstr "Instalar Atualização"
@ -609,7 +609,7 @@ msgstr "Sem notas de versão disponíveis."
msgid "OFFLINE" msgid "OFFLINE"
msgstr "OFFLINE" msgstr "OFFLINE"
#: /home/batman/openpilot/system/ui/widgets/html_render.py:247 #: /home/batman/openpilot/system/ui/widgets/html_render.py:263
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93
#: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127 #: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127
#, python-format #, python-format
@ -677,7 +677,7 @@ msgid "Please connect to Wi-Fi to complete initial pairing"
msgstr "Conecte-se ao Wi‑Fi para concluir o emparelhamento inicial" msgstr "Conecte-se ao Wi‑Fi para concluir o emparelhamento inicial"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Power Off" msgid "Power Off"
msgstr "Desligar" msgstr "Desligar"
@ -721,7 +721,7 @@ msgid "REVIEW"
msgstr "REVISAR" msgstr "REVISAR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Reboot" msgid "Reboot"
msgstr "Reiniciar" msgstr "Reiniciar"
@ -788,7 +788,7 @@ msgstr "Capturas remotas"
msgid "Request timed out" msgid "Request timed out"
msgstr "Tempo da solicitação esgotado" msgstr "Tempo da solicitação esgotado"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Reset" msgid "Reset"
msgstr "Redefinir" msgstr "Redefinir"
@ -807,6 +807,11 @@ msgstr "Revisar Guia de Treinamento"
msgid "Review the rules, features, and limitations of openpilot" msgid "Review the rules, features, and limitations of openpilot"
msgstr "Revise as regras, recursos e limitações do openpilot" msgstr "Revise as regras, recursos e limitações do openpilot"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "SELECT"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53
#, python-format #, python-format
msgid "SSH Keys" msgid "SSH Keys"
@ -817,11 +822,16 @@ msgstr ""
msgid "Scanning Wi-Fi networks..." msgid "Scanning Wi-Fi networks..."
msgstr "" msgstr ""
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:36
#, python-format #, python-format
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:183
#, python-format
msgid "Select a branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91
#, python-format #, python-format
msgid "Select a language" msgid "Select a language"
@ -877,6 +887,11 @@ msgstr "ASSUMA O CONTROLE IMEDIATAMENTE"
msgid "TEMP" msgid "TEMP"
msgstr "TEMP" msgstr "TEMP"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "Target Branch"
msgstr ""
#: /home/batman/openpilot/system/ui/widgets/network.py:124 #: /home/batman/openpilot/system/ui/widgets/network.py:124
#, python-format #, python-format
msgid "Tethering Password" msgid "Tethering Password"
@ -886,7 +901,7 @@ msgstr ""
msgid "Toggles" msgid "Toggles"
msgstr "Alternâncias" msgstr "Alternâncias"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#, python-format #, python-format
msgid "UNINSTALL" msgid "UNINSTALL"
msgstr "DESINSTALAR" msgstr "DESINSTALAR"
@ -896,8 +911,8 @@ msgstr "DESINSTALAR"
msgid "UPDATE" msgid "UPDATE"
msgstr "ATUALIZAR" msgstr "ATUALIZAR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Uninstall" msgid "Uninstall"
msgstr "Desinstalar" msgstr "Desinstalar"
@ -906,7 +921,7 @@ msgstr "Desinstalar"
msgid "Unknown" msgid "Unknown"
msgstr "Desconhecido" msgstr "Desconhecido"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:47 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48
#, python-format #, python-format
msgid "Updates are only downloaded while the car is off." msgid "Updates are only downloaded while the car is off."
msgstr "Atualizações são baixadas apenas com o carro desligado." msgstr "Atualizações são baixadas apenas com o carro desligado."
@ -1017,12 +1032,12 @@ msgstr "comma prime"
msgid "default" msgid "default"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "down" msgid "down"
msgstr "para baixo" msgstr "para baixo"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:105 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106
#, python-format #, python-format
msgid "failed to check for update" msgid "failed to check for update"
msgstr "falha ao verificar atualização" msgstr "falha ao verificar atualização"
@ -1043,7 +1058,7 @@ msgstr "km/h"
msgid "leave blank for automatic configuration" msgid "leave blank for automatic configuration"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "left" msgid "left"
msgstr "à esquerda" msgstr "à esquerda"
@ -1058,12 +1073,12 @@ msgstr ""
msgid "mph" msgid "mph"
msgstr "mph" msgstr "mph"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:19 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:20
#, python-format #, python-format
msgid "never" msgid "never"
msgstr "nunca" msgstr "nunca"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:30 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:31
#, python-format #, python-format
msgid "now" msgid "now"
msgstr "agora" msgstr "agora"
@ -1106,7 +1121,7 @@ msgstr ""
"curvas. O logotipo do Modo Experimental também será exibido no canto " "curvas. O logotipo do Modo Experimental também será exibido no canto "
"superior direito." "superior direito."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:164 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:165
#, python-format #, python-format
msgid "" msgid ""
"openpilot is continuously calibrating, resetting is rarely required. " "openpilot is continuously calibrating, resetting is rarely required. "
@ -1142,7 +1157,7 @@ msgstr ""
"o openpilot requer que o dispositivo seja montado dentro de 4° para a " "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." "esquerda ou direita e dentro de 5° para cima ou 9° para baixo."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "right" msgid "right"
msgstr "à direita" msgstr "à direita"
@ -1152,22 +1167,22 @@ msgstr "à direita"
msgid "unmetered" msgid "unmetered"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "up" msgid "up"
msgstr "para cima" msgstr "para cima"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:116 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117
#, python-format #, python-format
msgid "up to date, last checked never" msgid "up to date, last checked never"
msgstr "atualizado, última verificação: nunca" msgstr "atualizado, última verificação: nunca"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:114 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:115
#, python-format #, python-format
msgid "up to date, last checked {}" msgid "up to date, last checked {}"
msgstr "atualizado, última verificação: {}" msgstr "atualizado, última verificação: {}"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:108 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109
#, python-format #, python-format
msgid "update available" msgid "update available"
msgstr "atualização disponível" msgstr "atualização disponível"
@ -1179,21 +1194,21 @@ msgid_plural "{} ALERTS"
msgstr[0] "{} ALERTA" msgstr[0] "{} ALERTA"
msgstr[1] "{} ALERTAS" msgstr[1] "{} ALERTAS"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:39 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:40
#, python-format #, python-format
msgid "{} day ago" msgid "{} day ago"
msgid_plural "{} days ago" msgid_plural "{} days ago"
msgstr[0] "{} dia atrás" msgstr[0] "{} dia atrás"
msgstr[1] "{} dias atrás" msgstr[1] "{} dias atrás"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:36 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:37
#, python-format #, python-format
msgid "{} hour ago" msgid "{} hour ago"
msgid_plural "{} hours ago" msgid_plural "{} hours ago"
msgstr[0] "{} hora atrás" msgstr[0] "{} hora atrás"
msgstr[1] "{} horas atrás" msgstr[1] "{} horas atrás"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:33 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:34
#, python-format #, python-format
msgid "{} minute ago" msgid "{} minute ago"
msgid_plural "{} minutes ago" msgid_plural "{} minutes ago"

File diff suppressed because it is too large Load Diff

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-22 15:30-0700\n" "POT-Creation-Date: 2025-10-22 18:57-0700\n"
"PO-Revision-Date: 2025-10-20 18:19-0700\n" "PO-Revision-Date: 2025-10-20 18:19-0700\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -17,17 +17,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:159 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:160
#, python-format #, python-format
msgid " Steering torque response calibration is complete." msgid " Steering torque response calibration is complete."
msgstr " Direksiyon tork tepkisi kalibrasyonu tamamlandı." msgstr " Direksiyon tork tepkisi kalibrasyonu tamamlandı."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:157 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:158
#, python-format #, python-format
msgid " Steering torque response calibration is {}% complete." msgid " Steering torque response calibration is {}% complete."
msgstr " Direksiyon tork tepkisi kalibrasyonu {}% tamamlandı." msgstr " Direksiyon tork tepkisi kalibrasyonu {}% tamamlandı."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}." msgid " Your device is pointed {:.1f}° {} and {:.1f}° {}."
msgstr " Cihazınız {:.1f}° {} ve {:.1f}° {} yönünde konumlandırılmış." msgstr " Cihazınız {:.1f}° {} ve {:.1f}° {} yönünde konumlandırılmış."
@ -75,12 +75,12 @@ msgstr ""
"etkinleştirin. openpilot boylamsal kontrol alfayı etkinleştirirken Deneysel " "etkinleştirin. openpilot boylamsal kontrol alfayı etkinleştirirken Deneysel "
"modu etkinleştirmeniz önerilir." "modu etkinleştirmeniz önerilir."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:147 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:148
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is complete." msgid "<br><br>Steering lag calibration is complete."
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:145 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:146
#, python-format #, python-format
msgid "<br><br>Steering lag calibration is {}% complete." msgid "<br><br>Steering lag calibration is {}% complete."
msgstr "" msgstr ""
@ -143,22 +143,22 @@ msgstr ""
"openpilot boylamsal kontrolünün alfa sürümü, Deneysel mod ile birlikte, " "openpilot boylamsal kontrolünün alfa sürümü, Deneysel mod ile birlikte, "
"yayın dışı dallarda test edilebilir." "yayın dışı dallarda test edilebilir."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Are you sure you want to power off?" msgid "Are you sure you want to power off?"
msgstr "Kapatmak istediğinizden emin misiniz?" msgstr "Kapatmak istediğinizden emin misiniz?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Are you sure you want to reboot?" msgid "Are you sure you want to reboot?"
msgstr "Yeniden başlatmak istediğinizden emin misiniz?" msgstr "Yeniden başlatmak istediğinizden emin misiniz?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Are you sure you want to reset calibration?" msgid "Are you sure you want to reset calibration?"
msgstr "Kalibrasyonu sıfırlamak istediğinizden emin misiniz?" msgstr "Kalibrasyonu sıfırlamak istediğinizden emin misiniz?"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Are you sure you want to uninstall?" msgid "Are you sure you want to uninstall?"
msgstr "Kaldırmak istediğinizden emin misiniz?" msgstr "Kaldırmak istediğinizden emin misiniz?"
@ -185,10 +185,10 @@ msgstr ""
msgid "CHANGE" msgid "CHANGE"
msgstr "DEĞİŞTİR" msgstr "DEĞİŞTİR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:107
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:118
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:142 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:147
#, python-format #, python-format
msgid "CHECK" msgid "CHECK"
msgstr "KONTROL ET" msgstr "KONTROL ET"
@ -213,7 +213,7 @@ msgid "CONNECTING..."
msgstr "BAĞLAN" msgstr "BAĞLAN"
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:23
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:34 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35
#: /home/batman/openpilot/system/ui/widgets/keyboard.py:81 #: /home/batman/openpilot/system/ui/widgets/keyboard.py:81
#: /home/batman/openpilot/system/ui/widgets/network.py:318 #: /home/batman/openpilot/system/ui/widgets/network.py:318
#, python-format #, python-format
@ -246,12 +246,12 @@ msgstr "\"yeni cihaz ekle\"ye tıklayın ve sağdaki QR kodunu tarayın"
msgid "Close" msgid "Close"
msgstr "Kapat" msgstr "Kapat"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49
#, python-format #, python-format
msgid "Current Version" msgid "Current Version"
msgstr "Geçerli Sürüm" msgstr "Geçerli Sürüm"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:110
#, python-format #, python-format
msgid "DOWNLOAD" msgid "DOWNLOAD"
msgstr "İNDİR" msgstr "İNDİR"
@ -279,17 +279,17 @@ msgstr "Cihaz"
msgid "Disengage on Accelerator Pedal" msgid "Disengage on Accelerator Pedal"
msgstr "Gaz Pedalında Devreden Çık" msgstr "Gaz Pedalında Devreden Çık"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:183 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:184
#, python-format #, python-format
msgid "Disengage to Power Off" msgid "Disengage to Power Off"
msgstr "Kapatmak için Devreden Çıkın" msgstr "Kapatmak için Devreden Çıkın"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:171 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:172
#, python-format #, python-format
msgid "Disengage to Reboot" msgid "Disengage to Reboot"
msgstr "Yeniden Başlatmak için Devreden Çıkın" msgstr "Yeniden Başlatmak için Devreden Çıkın"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:102 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:103
#, python-format #, python-format
msgid "Disengage to Reset Calibration" msgid "Disengage to Reset Calibration"
msgstr "Kalibrasyonu Sıfırlamak için Devreden Çıkın" msgstr "Kalibrasyonu Sıfırlamak için Devreden Çıkın"
@ -303,7 +303,7 @@ msgstr "Hızı mph yerine km/h olarak göster."
msgid "Dongle ID" msgid "Dongle ID"
msgstr "Dongle ID" msgstr "Dongle ID"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:49 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:50
#, python-format #, python-format
msgid "Download" msgid "Download"
msgstr "İndir" msgstr "İndir"
@ -411,8 +411,8 @@ msgstr ""
msgid "Enter your GitHub username" msgid "Enter your GitHub username"
msgstr "GitHub kullanıcı adınızı girin" msgstr "GitHub kullanıcı adınızı girin"
#: /home/batman/openpilot/system/ui/widgets/list_view.py:115 #: /home/batman/openpilot/system/ui/widgets/list_view.py:123
#: /home/batman/openpilot/system/ui/widgets/list_view.py:153 #: /home/batman/openpilot/system/ui/widgets/list_view.py:160
#, python-format #, python-format
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -528,8 +528,8 @@ msgstr "Ağ"
msgid "INACTIVE: connect to an unmetered network" msgid "INACTIVE: connect to an unmetered network"
msgstr "PASİF: sınırsız bir ağa bağlanın" msgstr "PASİF: sınırsız bir ağa bağlanın"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:131 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:136
#, python-format #, python-format
msgid "INSTALL" msgid "INSTALL"
msgstr "YÜKLE" msgstr "YÜKLE"
@ -539,7 +539,7 @@ msgstr "YÜKLE"
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:52 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:53
#, python-format #, python-format
msgid "Install Update" msgid "Install Update"
msgstr "Güncellemeyi Yükle" msgstr "Güncellemeyi Yükle"
@ -609,7 +609,7 @@ msgstr "Sürüm notu mevcut değil."
msgid "OFFLINE" msgid "OFFLINE"
msgstr "ÇEVRİMDIŞI" msgstr "ÇEVRİMDIŞI"
#: /home/batman/openpilot/system/ui/widgets/html_render.py:247 #: /home/batman/openpilot/system/ui/widgets/html_render.py:263
#: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93 #: /home/batman/openpilot/system/ui/widgets/confirm_dialog.py:93
#: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127 #: /home/batman/openpilot/selfdrive/ui/layouts/sidebar.py:127
#, python-format #, python-format
@ -677,7 +677,7 @@ 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" msgstr "İlk eşleştirmeyi tamamlamak için lütfen Wi‑Fi'a bağlanın"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:186 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:187
#, python-format #, python-format
msgid "Power Off" msgid "Power Off"
msgstr "Kapat" msgstr "Kapat"
@ -720,7 +720,7 @@ msgid "REVIEW"
msgstr "GÖZDEN GEÇİR" msgstr "GÖZDEN GEÇİR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:55
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:174 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:175
#, python-format #, python-format
msgid "Reboot" msgid "Reboot"
msgstr "Yeniden Başlat" msgstr "Yeniden Başlat"
@ -787,7 +787,7 @@ msgstr "Uzaktan anlık görüntüler"
msgid "Request timed out" msgid "Request timed out"
msgstr "İstek zaman aşımına uğradı" msgstr "İstek zaman aşımına uğradı"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:118 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:119
#, python-format #, python-format
msgid "Reset" msgid "Reset"
msgstr "Sıfırla" msgstr "Sıfırla"
@ -807,6 +807,11 @@ msgid "Review the rules, features, and limitations of openpilot"
msgstr "" msgstr ""
"openpilot'un kurallarını, özelliklerini ve sınırlamalarını gözden geçirin" "openpilot'un kurallarını, özelliklerini ve sınırlamalarını gözden geçirin"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "SELECT"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/developer.py:53
#, python-format #, python-format
msgid "SSH Keys" msgid "SSH Keys"
@ -817,11 +822,16 @@ msgstr ""
msgid "Scanning Wi-Fi networks..." msgid "Scanning Wi-Fi networks..."
msgstr "" msgstr ""
#: /home/batman/openpilot/system/ui/widgets/option_dialog.py:35 #: /home/batman/openpilot/system/ui/widgets/option_dialog.py:36
#, python-format #, python-format
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:183
#, python-format
msgid "Select a branch"
msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:91
#, python-format #, python-format
msgid "Select a language" msgid "Select a language"
@ -876,6 +886,11 @@ msgstr "HEMEN KONTROLÜ DEVRALIN"
msgid "TEMP" msgid "TEMP"
msgstr "TEMP" msgstr "TEMP"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:61
#, python-format
msgid "Target Branch"
msgstr ""
#: /home/batman/openpilot/system/ui/widgets/network.py:124 #: /home/batman/openpilot/system/ui/widgets/network.py:124
#, python-format #, python-format
msgid "Tethering Password" msgid "Tethering Password"
@ -885,7 +900,7 @@ msgstr ""
msgid "Toggles" msgid "Toggles"
msgstr "Seçenekler" msgstr "Seçenekler"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#, python-format #, python-format
msgid "UNINSTALL" msgid "UNINSTALL"
msgstr "KALDIR" msgstr "KALDIR"
@ -895,8 +910,8 @@ msgstr "KALDIR"
msgid "UPDATE" msgid "UPDATE"
msgstr "GÜNCELLE" msgstr "GÜNCELLE"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:70 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:72
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:158 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:163
#, python-format #, python-format
msgid "Uninstall" msgid "Uninstall"
msgstr "Kaldır" msgstr "Kaldır"
@ -905,7 +920,7 @@ msgstr "Kaldır"
msgid "Unknown" msgid "Unknown"
msgstr "Bilinmiyor" msgstr "Bilinmiyor"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:47 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:48
#, python-format #, python-format
msgid "Updates are only downloaded while the car is off." msgid "Updates are only downloaded while the car is off."
msgstr "Güncellemeler yalnızca araç kapalıyken indirilir." msgstr "Güncellemeler yalnızca araç kapalıyken indirilir."
@ -1015,12 +1030,12 @@ msgstr "comma prime"
msgid "default" msgid "default"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "down" msgid "down"
msgstr "aşağı" msgstr "aşağı"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:105 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:106
#, python-format #, python-format
msgid "failed to check for update" msgid "failed to check for update"
msgstr "güncelleme kontrolü başarısız" msgstr "güncelleme kontrolü başarısız"
@ -1041,7 +1056,7 @@ msgstr "km/h"
msgid "leave blank for automatic configuration" msgid "leave blank for automatic configuration"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "left" msgid "left"
msgstr "sol" msgstr "sol"
@ -1056,12 +1071,12 @@ msgstr ""
msgid "mph" msgid "mph"
msgstr "mph" msgstr "mph"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:19 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:20
#, python-format #, python-format
msgid "never" msgid "never"
msgstr "asla" msgstr "asla"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:30 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:31
#, python-format #, python-format
msgid "now" msgid "now"
msgstr "şimdi" msgstr "şimdi"
@ -1103,7 +1118,7 @@ msgstr ""
"göstermek için yola bakan geniş açılı kameraya geçer. Deneysel mod logosu " "göstermek için yola bakan geniş açılı kameraya geçer. Deneysel mod logosu "
"sağ üst köşede de gösterilecektir." "sağ üst köşede de gösterilecektir."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:164 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:165
#, python-format #, python-format
msgid "" msgid ""
"openpilot is continuously calibrating, resetting is rarely required. " "openpilot is continuously calibrating, resetting is rarely required. "
@ -1138,7 +1153,7 @@ msgstr ""
"openpilot, cihazın sağa/sola 4° ve yukarı 5° veya aşağı 9° içinde monte " "openpilot, cihazın sağa/sola 4° ve yukarı 5° veya aşağı 9° içinde monte "
"edilmesini gerektirir." "edilmesini gerektirir."
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:134
#, python-format #, python-format
msgid "right" msgid "right"
msgstr "sağ" msgstr "sağ"
@ -1148,22 +1163,22 @@ msgstr "sağ"
msgid "unmetered" msgid "unmetered"
msgstr "" msgstr ""
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:132 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/device.py:133
#, python-format #, python-format
msgid "up" msgid "up"
msgstr "yukarı" msgstr "yukarı"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:116 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:117
#, python-format #, python-format
msgid "up to date, last checked never" msgid "up to date, last checked never"
msgstr "güncel, son kontrol asla" msgstr "güncel, son kontrol asla"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:114 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:115
#, python-format #, python-format
msgid "up to date, last checked {}" msgid "up to date, last checked {}"
msgstr "güncel, son kontrol {}" msgstr "güncel, son kontrol {}"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:108 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:109
#, python-format #, python-format
msgid "update available" msgid "update available"
msgstr "güncelleme mevcut" msgstr "güncelleme mevcut"
@ -1175,21 +1190,21 @@ msgid_plural "{} ALERTS"
msgstr[0] "{} UYARI" msgstr[0] "{} UYARI"
msgstr[1] "{} UYARILAR" msgstr[1] "{} UYARILAR"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:39 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:40
#, python-format #, python-format
msgid "{} day ago" msgid "{} day ago"
msgid_plural "{} days ago" msgid_plural "{} days ago"
msgstr[0] "{} gün önce" msgstr[0] "{} gün önce"
msgstr[1] "{} gün önce" msgstr[1] "{} gün önce"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:36 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:37
#, python-format #, python-format
msgid "{} hour ago" msgid "{} hour ago"
msgid_plural "{} hours ago" msgid_plural "{} hours ago"
msgstr[0] "{} saat önce" msgstr[0] "{} saat önce"
msgstr[1] "{} saat önce" msgstr[1] "{} saat önce"
#: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:33 #: /home/batman/openpilot/selfdrive/ui/layouts/settings/software.py:34
#, python-format #, python-format
msgid "{} minute ago" msgid "{} minute ago"
msgid_plural "{} minutes ago" msgid_plural "{} minutes ago"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -51,6 +51,14 @@ class FontWeight(StrEnum):
BOLD = "Inter-Bold.ttf" BOLD = "Inter-Bold.ttf"
EXTRA_BOLD = "Inter-ExtraBold.ttf" EXTRA_BOLD = "Inter-ExtraBold.ttf"
BLACK = "Inter-Black.ttf" BLACK = "Inter-Black.ttf"
UNIFONT = "unifont.otf"
def font_fallback(font: rl.Font) -> rl.Font:
"""Fall back to unifont for languages that require it."""
if multilang.requires_unifont():
return gui_app.font(FontWeight.UNIFONT)
return font
@dataclass @dataclass
@ -335,7 +343,7 @@ class GuiApplication:
except KeyboardInterrupt: except KeyboardInterrupt:
pass pass
def font(self, font_weight: FontWeight = FontWeight.NORMAL): def font(self, font_weight: FontWeight = FontWeight.NORMAL) -> rl.Font:
return self._fonts[font_weight] return self._fonts[font_weight]
@property @property
@ -356,14 +364,16 @@ class GuiApplication:
all_chars |= set("–‑✓×°§•") all_chars |= set("–‑✓×°§•")
# Load only the characters used in translations # Load only the characters used in translations
for language in multilang.codes: for language, code in multilang.languages.items():
all_chars |= set(language)
try: try:
with open(os.path.join(TRANSLATIONS_DIR, f"app_{language}.po")) as f: with open(os.path.join(TRANSLATIONS_DIR, f"app_{code}.po")) as f:
all_chars |= set(f.read()) all_chars |= set(f.read())
except FileNotFoundError: except FileNotFoundError:
cloudlog.warning(f"Translation file for language '{language}' not found when loading fonts.") cloudlog.warning(f"Translation file for language '{code}' not found when loading fonts.")
all_chars = "".join(all_chars) all_chars = "".join(all_chars)
cloudlog.debug(f"Loading fonts with {len(all_chars)} glyphs.")
codepoint_count = rl.ffi.new("int *", 1) codepoint_count = rl.ffi.new("int *", 1)
codepoints = rl.load_codepoints(all_chars, codepoint_count) codepoints = rl.load_codepoints(all_chars, codepoint_count)
@ -390,6 +400,7 @@ class GuiApplication:
rl._orig_draw_text_ex = rl.draw_text_ex rl._orig_draw_text_ex = rl.draw_text_ex
def _draw_text_ex_scaled(font, text, position, font_size, spacing, tint): def _draw_text_ex_scaled(font, text, position, font_size, spacing, tint):
font = font_fallback(font)
return rl._orig_draw_text_ex(font, text, position, font_size * FONT_SCALE, spacing, tint) return rl._orig_draw_text_ex(font, text, position, font_size * FONT_SCALE, spacing, tint)
rl.draw_text_ex = _draw_text_ex_scaled rl.draw_text_ex = _draw_text_ex_scaled

@ -3,25 +3,27 @@ import json
import gettext import gettext
from openpilot.common.params import Params from openpilot.common.params import Params
from openpilot.common.basedir import BASEDIR from openpilot.common.basedir import BASEDIR
from openpilot.common.swaglog import cloudlog
SYSTEM_UI_DIR = os.path.join(BASEDIR, "system", "ui") SYSTEM_UI_DIR = os.path.join(BASEDIR, "system", "ui")
UI_DIR = os.path.join(BASEDIR, "selfdrive", "ui") UI_DIR = os.path.join(BASEDIR, "selfdrive", "ui")
TRANSLATIONS_DIR = os.path.join(UI_DIR, "translations") TRANSLATIONS_DIR = os.path.join(UI_DIR, "translations")
LANGUAGES_FILE = os.path.join(TRANSLATIONS_DIR, "languages.json") LANGUAGES_FILE = os.path.join(TRANSLATIONS_DIR, "languages.json")
SUPPORTED_LANGUAGES = [ UNIFONT_LANGUAGES = [
"en", "ar",
"de", "th",
"fr", "zh-CHT",
"pt-BR", "zh-CHS",
"es", "ko",
"tr", "ja",
] ]
class Multilang: class Multilang:
def __init__(self): def __init__(self):
self._params = Params() self._params = Params()
self._language: str = "en"
self.languages = {} self.languages = {}
self.codes = {} self.codes = {}
self._translation: gettext.NullTranslations | gettext.GNUTranslations = gettext.NullTranslations() self._translation: gettext.NullTranslations | gettext.GNUTranslations = gettext.NullTranslations()
@ -29,28 +31,28 @@ class Multilang:
@property @property
def language(self) -> str: def language(self) -> str:
lang = str(self._params.get("LanguageSetting")).strip("main_") return self._language
if lang not in SUPPORTED_LANGUAGES:
lang = "en" def requires_unifont(self) -> bool:
return lang """Certain languages require unifont to render their glyphs."""
return self._language in UNIFONT_LANGUAGES
def setup(self): def setup(self):
language = self.language
try: try:
with open(os.path.join(TRANSLATIONS_DIR, f'app_{language}.mo'), 'rb') as fh: with open(os.path.join(TRANSLATIONS_DIR, f'app_{self._language}.mo'), 'rb') as fh:
translation = gettext.GNUTranslations(fh) translation = gettext.GNUTranslations(fh)
translation.install() translation.install()
self._translation = translation self._translation = translation
print(f"Loaded translations for language: {language}") cloudlog.warning(f"Loaded translations for language: {self._language}")
except FileNotFoundError: except FileNotFoundError:
print(f"No translation file found for language: {language}, using default.") cloudlog.error(f"No translation file found for language: {self._language}, using default.")
gettext.install('app') gettext.install('app')
self._translation = gettext.NullTranslations() self._translation = gettext.NullTranslations()
return None
def change_language(self, language_code: str) -> None: def change_language(self, language_code: str) -> None:
# Reinstall gettext with the selected language # Reinstall gettext with the selected language
self._params.put("LanguageSetting", language_code) self._params.put("LanguageSetting", language_code)
self._language = language_code
self.setup() self.setup()
def tr(self, text: str) -> str: def tr(self, text: str) -> str:
@ -61,8 +63,12 @@ class Multilang:
def _load_languages(self): def _load_languages(self):
with open(LANGUAGES_FILE, encoding='utf-8') as f: with open(LANGUAGES_FILE, encoding='utf-8') as f:
self.languages = {k: v for k, v in json.load(f).items() if v in SUPPORTED_LANGUAGES} self.languages = json.load(f)
self.codes = {v: k for k, v in self.languages.items() if v in SUPPORTED_LANGUAGES} self.codes = {v: k for k, v in self.languages.items()}
lang = str(self._params.get("LanguageSetting")).removeprefix("main_")
if lang in self.codes:
self._language = lang
multilang = Multilang() multilang = Multilang()

@ -1,5 +1,5 @@
import pyray as rl import pyray as rl
from openpilot.system.ui.lib.application import FONT_SCALE from openpilot.system.ui.lib.application import FONT_SCALE, font_fallback
from openpilot.system.ui.lib.emoji import find_emoji from openpilot.system.ui.lib.emoji import find_emoji
_cache: dict[int, rl.Vector2] = {} _cache: dict[int, rl.Vector2] = {}
@ -7,6 +7,7 @@ _cache: dict[int, rl.Vector2] = {}
def measure_text_cached(font: rl.Font, text: str, font_size: int, spacing: int = 0) -> rl.Vector2: def measure_text_cached(font: rl.Font, text: str, font_size: int, spacing: int = 0) -> rl.Vector2:
"""Caches text measurements to avoid redundant calculations.""" """Caches text measurements to avoid redundant calculations."""
font = font_fallback(font)
key = hash((font.texture.id, text, font_size, spacing)) key = hash((font.texture.id, text, font_size, spacing))
if key in _cache: if key in _cache:
return _cache[key] return _cache[key]

@ -1,5 +1,6 @@
import pyray as rl import pyray as rl
from openpilot.system.ui.lib.text_measure import measure_text_cached from openpilot.system.ui.lib.text_measure import measure_text_cached
from openpilot.system.ui.lib.application import font_fallback
def _break_long_word(font: rl.Font, word: str, font_size: int, max_width: int) -> list[str]: def _break_long_word(font: rl.Font, word: str, font_size: int, max_width: int) -> list[str]:
@ -40,6 +41,7 @@ _cache: dict[int, list[str]] = {}
def wrap_text(font: rl.Font, text: str, font_size: int, max_width: int) -> list[str]: def wrap_text(font: rl.Font, text: str, font_size: int, max_width: int) -> list[str]:
font = font_fallback(font)
key = hash((font.texture.id, text, font_size, max_width)) key = hash((font.texture.id, text, font_size, max_width))
if key in _cache: if key in _cache:
return _cache[key] return _cache[key]

@ -134,9 +134,6 @@ class Label(Widget):
self._font_size = size self._font_size = size
self._update_text(self._text) self._update_text(self._text)
def _update_layout_rects(self):
self._update_text(self._text)
def _update_text(self, text): def _update_text(self, text):
self._emojis = [] self._emojis = []
self._text_size = [] self._text_size = []
@ -170,6 +167,10 @@ class Label(Widget):
self._text_size.append(measure_text_cached(self._font, t, self._font_size)) self._text_size.append(measure_text_cached(self._font, t, self._font_size))
def _render(self, _): def _render(self, _):
# Text can be a callable
# TODO: cache until text changed
self._update_text(self._text)
text_size = self._text_size[0] if self._text_size else rl.Vector2(0.0, 0.0) text_size = self._text_size[0] if self._text_size else rl.Vector2(0.0, 0.0)
if self._text_alignment_vertical == rl.GuiTextAlignmentVertical.TEXT_ALIGN_MIDDLE: if self._text_alignment_vertical == rl.GuiTextAlignmentVertical.TEXT_ALIGN_MIDDLE:
text_pos = rl.Vector2(self._rect.x, (self._rect.y + (self._rect.height - text_size.y) // 2)) text_pos = rl.Vector2(self._rect.x, (self._rect.y + (self._rect.height - text_size.y) // 2))

@ -17,7 +17,7 @@ LIST_ITEM_SPACING = 25
class MultiOptionDialog(Widget): class MultiOptionDialog(Widget):
def __init__(self, title, options, current=""): def __init__(self, title, options, current="", option_font_weight=FontWeight.MEDIUM):
super().__init__() super().__init__()
self.title = title self.title = title
self.options = options self.options = options
@ -27,6 +27,7 @@ class MultiOptionDialog(Widget):
# Create scroller with option buttons # Create scroller with option buttons
self.option_buttons = [Button(option, click_callback=lambda opt=option: self._on_option_clicked(opt), self.option_buttons = [Button(option, click_callback=lambda opt=option: self._on_option_clicked(opt),
font_weight=option_font_weight,
text_alignment=rl.GuiTextAlignment.TEXT_ALIGN_LEFT, button_style=ButtonStyle.NORMAL, text_alignment=rl.GuiTextAlignment.TEXT_ALIGN_LEFT, button_style=ButtonStyle.NORMAL,
text_padding=50, elide_right=True) for option in options] text_padding=50, elide_right=True) for option in options]
self.scroller = Scroller(self.option_buttons, spacing=LIST_ITEM_SPACING) self.scroller = Scroller(self.option_buttons, spacing=LIST_ITEM_SPACING)

Loading…
Cancel
Save