  import os
  Import('qt_env', 'arch', 'common', 'messaging', 'visionipc',
         'cereal', 'transformations')
  
  base_libs = [common, messaging, cereal, visionipc, transformations, 'zmq',
               'capnp', 'kj', 'm', 'OpenCL', 'ssl', 'crypto', 'pthread'] + qt_env["LIBS"]
  
 
</s> remove translation_sources = Glob("#selfdrive/ui/translations/*.ts", strings=True)
 </s> add with open(File("translations/languages.json").abspath) as f:
  languages = json.loads(f.read())
translation_sources = [f"#selfdrive/ui/translations/{l}.ts" for l in languages.values()] </s> remove lrelease = 'third_party/qt5/larch64/bin/lrelease' if arch == 'larch64' else 'lrelease'
qt_env.Command(translation_targets, translation_sources, f"{lrelease} $SOURCES")

 </s> add lrelease_bin = 'third_party/qt5/larch64/bin/lrelease' if arch == 'larch64' else 'lrelease'

lupdate = qt_env.Command(translation_sources, qt_src, "selfdrive/ui/update_translations.py")
lrelease = qt_env.Command(translation_targets, translation_sources, f"{lrelease_bin} $SOURCES")
qt_env.Depends(lrelease, lupdate)
qt_env.NoClean(translation_sources)
qt_env.Precious(translation_sources)
qt_env.NoCache(lupdate)
import json
  import os
import json
  Import('qt_env', 'arch', 'common', 'messaging', 'visionipc',
         'cereal', 'transformations')
  
  base_libs = [common, messaging, cereal, visionipc, transformations, 'zmq',
               'capnp', 'kj', 'm', 'OpenCL', 'ssl', 'crypto', 'pthread'] + qt_env["LIBS"]
  
add keep keep keep keep keep keep
 UI: update translations during scons build (#27009)

* UI: update translation during scons build

* all in scons

* debug

* precious

* debug

* add missing

* Update release/check-dirty.sh

Co-authored-by: Shane Smiskol <shane@smiskol.com> 
selfdrive/ui/SConscript