"""
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")
