import json import os from PySide6.QtCore import QSettings import config class Localizer: """Класс для загрузки и работы с переводами""" def __init__(self): self.settings = QSettings("volna_desktop_app", "Localization") self.lang = self.settings.value("language", "ru") # Загружаем сохраненный язык #self.locales_path = os.path.join(os.path.dirname(__file__), "locales") self.locales_path = os.path.join("app/locales") self.translations = {} self.load_language(self.lang) def load_language(self, lang): """Загружает перевод из JSON-файла""" lang_file = os.path.join(self.locales_path, f"{lang}.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) # Сохраняем выбор языка if config.DEBUG: print(f"[Localizer.load_language] ✅ Язык загружен: {lang}") else: if config.DEBUG: print(f"[Localizer.load_language] ❌ Файл локализации не найден: {lang_file}") def translate(self, key, code=None): """Возвращает перевод слова""" text = self.translations.get(key, key) if code is not None: text = f"{text} {code}" # Подставляем код ошибки в строку, если он есть return text def switch_language(self, lang): """Переключает языки""" if lang not in ["ru", "en"]: lang = "ru" self.load_language(lang) # Создаем глобальный экземпляр, чтобы использовать в любом месте localizer = Localizer()