From 95e39b72cfe27631cdb2dfa6e9108d45d8115a6a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 9 Sep 2025 12:13:41 +0300 Subject: [PATCH] localizate patch --- app/core/localizer.py | 28 +++++++++++++++------------- app/ui/views/login_view.py | 1 + 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/app/core/localizer.py b/app/core/localizer.py index 1718c47..76731e4 100644 --- a/app/core/localizer.py +++ b/app/core/localizer.py @@ -11,12 +11,15 @@ class Localizer: self.locales_path = os.path.join("app/locales") self.translations = {} - self.lang = self.settings.value("language", ('ru', 'Русский')) + lang_code = self.settings.value("language", "ru") available_langs = self.get_available_languages() - if self.lang not in available_langs: - self.lang = available_langs[0] if available_langs else ('ru', 'Русский') + available_codes = [code for code, _ in available_langs] - self.load_language(self.lang[0]) + if lang_code not in available_codes: + lang_code = available_codes[0] if available_codes else "ru" + + self.lang = lang_code + self.load_language(self.lang) def get_available_languages(self): """ @@ -41,17 +44,19 @@ class Localizer: if config.DEBUG: print("langs", langs) return langs - def load_language(self, lang): + def load_language(self, lang_code): """Загружает перевод из JSON-файла""" - lang_file = os.path.join(self.locales_path, f"{lang}.json") + lang_file = os.path.join(self.locales_path, f"{lang_code}.json") if os.path.exists(lang_file): with open(lang_file, "r", encoding="utf-8") as file: self.translations = json.load(file) - self.lang = lang - self.settings.setValue("language", lang[0]) - if config.DEBUG: print(f"[Localizer.load_language] ✅ Язык загружен: {lang}") + self.lang = lang_code + self.settings.setValue("language", lang_code) + if config.DEBUG: + print(f"[Localizer.load_language] ✅ Язык загружен: {lang_code}") else: - if config.DEBUG: print(f"[Localizer.load_language] ❌ Файл локализации не найден: {lang_file}") + if config.DEBUG: + print(f"[Localizer.load_language] ❌ Файл локализации не найден: {lang_file}") def translate(self, key, code=None): """Возвращает перевод слова""" @@ -62,9 +67,6 @@ class Localizer: def switch_language(self, lang): """Переключает языки, если язык доступен""" - if isinstance(lang, (tuple, list)): - lang = lang[0] - available_langs = [code for code, _ in self.get_available_languages()] if lang in available_langs: self.load_language(lang) diff --git a/app/ui/views/login_view.py b/app/ui/views/login_view.py index 2cfe0af..4a7ddde 100644 --- a/app/ui/views/login_view.py +++ b/app/ui/views/login_view.py @@ -258,6 +258,7 @@ class LoginView(QWidget): def change_language(self, display_name): lang_code = self.lang_map.get(display_name) + print("lang_code", lang_code) if lang_code: localizer.switch_language(lang_code) self.update_ui_language()