import json
from pathlib import Path
from typing import Dict

_strings: Dict[str, Dict[str, str]] = {}
_default_locale = "ko"

def load_strings() -> None:
    i18n_dir = Path(__file__).parent
    for json_file in i18n_dir.glob("*.json"):
        locale = json_file.stem
        _strings[locale] = json.loads(json_file.read_text(encoding="utf-8"))

def t(key: str, locale: str | None = None, **kwargs: object) -> str:
    loc = locale or _default_locale
    strings = _strings.get(loc, _strings.get(_default_locale, {}))
    template = strings.get(key, key)
    if kwargs:
        return template.format(**kwargs)
    return template
