config: fix language not saving fixes 1362#

also adds system_lang back to the list it was missing since the switch from dropdown to menu
This commit is contained in:
alfrix 2024-05-09 15:23:19 -03:00
parent da92242ce9
commit 03a99ded92
2 changed files with 5 additions and 5 deletions

View File

@ -120,10 +120,8 @@ class KlipperScreenConfig:
for lng in self.lang_list:
self.langs[lng] = gettext.translation('KlipperScreen', localedir=lang_path, languages=[lng], fallback=True)
lang = self.get_main_config().get("language", None)
lang = self.get_main_config().get("language", "system_lang")
logging.debug(f"Selected lang: {lang} OS lang: {locale.getlocale()[0]}")
if lang not in self.lang_list:
lang = self.find_language(lang)
self.install_language(lang)
def find_language(self, lang):
@ -139,6 +137,8 @@ class KlipperScreenConfig:
return next((language for language in self.lang_list if lang.startswith(language)), "en")
def install_language(self, lang):
if lang not in self.lang_list:
lang = self.find_language(lang)
logging.info(f"Using lang {lang}")
self.lang = self.langs[lang]
self.lang.install(names=['gettext', 'ngettext'])
@ -320,6 +320,7 @@ class KlipperScreenConfig:
{"move_speed_z": {"section": "main", "name": _("Z Move Speed (mm/s)"), "type": None, "value": "10"}},
{"print_sort_dir": {"section": "main", "type": None, "value": "name_asc"}},
{"print_view": {"section": "main", "type": None, "value": "thumbs"}},
{"language": {"section": "main", "name": _("Language"), "type": None, "value": "system_lang"}},
]
self.configurable_options.extend(panel_options)

View File

@ -21,7 +21,6 @@ class Panel(ScreenPanel):
"type": "menu",
"menu": "lang"
}})
self.labels['settings_menu'] = self._gtk.ScrolledWindow()
self.labels['settings'] = Gtk.Grid()
self.labels['settings_menu'].add(self.labels['settings'])
@ -32,7 +31,7 @@ class Panel(ScreenPanel):
self.labels['lang_menu'] = self._gtk.ScrolledWindow()
self.labels['lang'] = Gtk.Grid()
self.labels['lang_menu'].add(self.labels['lang'])
for lang in self._config.lang_list:
for lang in ["system_lang", *self._config.lang_list]:
self.langs[lang] = {
"name": lang,
"type": "button",