# /opt/docker/dev/service_finder/backend/app/core/i18n.py import json import os class LocaleManager: _locales = {} def get(self, key: str, lang: str = "hu", **kwargs) -> str: if not self._locales: self._load() data = self._locales.get(lang, self._locales.get("hu", {})) # Biztonságos bejárás a pontokkal elválasztott kulcsokhoz for k in key.split("."): if isinstance(data, dict): data = data.get(k, {}) else: return key # Ha elakadunk, adjuk vissza magát a kulcsot if isinstance(data, str): return data.format(**kwargs) return key def _load(self): # A konténeren belül ez a biztos útvonal possible_paths = [ "/app/app/locales", "app/locales", "backend/app/locales" ] path = "" for p in possible_paths: if os.path.exists(p): path = p break if not path: print("FIGYELEM: Nem található a locales könyvtár!") return for file in os.listdir(path): if file.endswith(".json"): lang = file.split(".")[0] try: with open(os.path.join(path, file), "r", encoding="utf-8") as f: self._locales[lang] = json.load(f) except Exception as e: print(f"Hiba a {file} betöltésekor: {e}") locale_manager = LocaleManager() # Rövid alias a könnyebb használathoz t = locale_manager.get