""" translations/__init__.py — Central oversættelsesfunktion. Brug: from translations import _ btn = QPushButton(_("btn.start_event")) lbl = QLabel(_("level.beginner")) Fallback: hvis nøglen ikke findes returneres nøglen selv. """ _current: dict[str, str] = {} _current_lang: str = "da" def load_language(lang: str = "da"): """Indlæs sprogfil. Kaldes ved opstart og ved sprogskift i indstillinger.""" global _current, _current_lang _current_lang = lang try: if lang == "en": from translations.en import STRINGS else: from translations.da import STRINGS _current = STRINGS except ImportError: from translations.da import STRINGS _current = STRINGS def _(key: str, **kwargs) -> str: """Oversæt en nøgle. Fallback = nøglen selv hvis ikke fundet.""" text = _current.get(key, key) return text.format(**kwargs) if kwargs else text def current_lang() -> str: return _current_lang def translate_level(level_name: str | None) -> str: """Oversæt et niveau-navn fra API/DB canonical navn til valgt sprog.""" if not level_name: return _("level.none") key = f"level.{level_name.lower().replace(' ', '_').replace('ø', 'o').replace('æ', 'ae').replace('å', 'aa')}" result = _current.get(key) if result: return result # Fallback: prøv direkte match for k, v in _current.items(): if k.startswith("level.") and v.lower() == level_name.lower(): return v return level_name # helt rå fallback # Indlæs dansk som standard ved import load_language("da")