localizate patch
This commit is contained in:
parent
8f251dcf91
commit
95e39b72cf
@ -11,12 +11,15 @@ class Localizer:
|
|||||||
self.locales_path = os.path.join("app/locales")
|
self.locales_path = os.path.join("app/locales")
|
||||||
self.translations = {}
|
self.translations = {}
|
||||||
|
|
||||||
self.lang = self.settings.value("language", ('ru', 'Русский'))
|
lang_code = self.settings.value("language", "ru")
|
||||||
available_langs = self.get_available_languages()
|
available_langs = self.get_available_languages()
|
||||||
if self.lang not in available_langs:
|
available_codes = [code for code, _ in available_langs]
|
||||||
self.lang = available_langs[0] if available_langs else ('ru', 'Русский')
|
|
||||||
|
|
||||||
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):
|
def get_available_languages(self):
|
||||||
"""
|
"""
|
||||||
@ -41,17 +44,19 @@ class Localizer:
|
|||||||
if config.DEBUG: print("langs", langs)
|
if config.DEBUG: print("langs", langs)
|
||||||
return langs
|
return langs
|
||||||
|
|
||||||
def load_language(self, lang):
|
def load_language(self, lang_code):
|
||||||
"""Загружает перевод из JSON-файла"""
|
"""Загружает перевод из 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):
|
if os.path.exists(lang_file):
|
||||||
with open(lang_file, "r", encoding="utf-8") as file:
|
with open(lang_file, "r", encoding="utf-8") as file:
|
||||||
self.translations = json.load(file)
|
self.translations = json.load(file)
|
||||||
self.lang = lang
|
self.lang = lang_code
|
||||||
self.settings.setValue("language", lang[0])
|
self.settings.setValue("language", lang_code)
|
||||||
if config.DEBUG: print(f"[Localizer.load_language] ✅ Язык загружен: {lang}")
|
if config.DEBUG:
|
||||||
|
print(f"[Localizer.load_language] ✅ Язык загружен: {lang_code}")
|
||||||
else:
|
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):
|
def translate(self, key, code=None):
|
||||||
"""Возвращает перевод слова"""
|
"""Возвращает перевод слова"""
|
||||||
@ -62,9 +67,6 @@ class Localizer:
|
|||||||
|
|
||||||
def switch_language(self, lang):
|
def switch_language(self, lang):
|
||||||
"""Переключает языки, если язык доступен"""
|
"""Переключает языки, если язык доступен"""
|
||||||
if isinstance(lang, (tuple, list)):
|
|
||||||
lang = lang[0]
|
|
||||||
|
|
||||||
available_langs = [code for code, _ in self.get_available_languages()]
|
available_langs = [code for code, _ in self.get_available_languages()]
|
||||||
if lang in available_langs:
|
if lang in available_langs:
|
||||||
self.load_language(lang)
|
self.load_language(lang)
|
||||||
|
|||||||
@ -258,6 +258,7 @@ class LoginView(QWidget):
|
|||||||
|
|
||||||
def change_language(self, display_name):
|
def change_language(self, display_name):
|
||||||
lang_code = self.lang_map.get(display_name)
|
lang_code = self.lang_map.get(display_name)
|
||||||
|
print("lang_code", lang_code)
|
||||||
if lang_code:
|
if lang_code:
|
||||||
localizer.switch_language(lang_code)
|
localizer.switch_language(lang_code)
|
||||||
self.update_ui_language()
|
self.update_ui_language()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user