"""
Poe2VisualTool Internationalization (i18n) Engine
Hỗ trợ chuyển đổi giao diện song ngữ Tiếng Việt & Tiếng Anh.
Bản quyền 2026 Poe2VisualTool.
"""

from __future__ import annotations

from typing import Dict

TRANSLATIONS: Dict[str, Dict[str, str]] = {
    "app_title": {
        "vi": "Poe2VisualTool — Bảng Điều Khiển Hình Ảnh (Commercial 2026)",
        "en": "Poe2VisualTool — Visual QoL Control Center (Commercial 2026)",
    },
    "license_status_lifetime": {
        "vi": "BẢN QUYỀN VĨNH VIỄN",
        "en": "LIFETIME LICENSE",
    },
    "license_status_subscription": {
        "vi": "THUÊ BAO CÒN {days} NGÀY",
        "en": "SUBSCRIPTION: {days} DAYS LEFT",
    },
    "license_status_trial": {
        "vi": "DÙNG THỬ CÒN {days} NGÀY",
        "en": "TRIAL: {days} DAYS LEFT",
    },
    "license_status_unregistered": {
        "vi": "CHƯA KÍCH HOẠT",
        "en": "UNREGISTERED",
    },
    "zoom_cap_label": {
        "vi": "Trần Zoom tối đa: {cap:.1f}x (zFar bù culling ~{zfar:.0f}) — Lăn chuột để chỉnh",
        "en": "Camera Zoom Cap: {cap:.1f}x (Dynamic zFar ~{zfar:.0f}) — Mouse wheel supported",
    },
    "chk_zoom": {
        "vi": "Bật Zoom Trần & Bù Culling zFar (Ctrl + Lăn chuột)",
        "en": "Enable Zoom Hack & Dynamic zFar Culling Fix",
    },
    "chk_fog": {
        "vi": "Xóa Sương Mù Thể Tích & Bản Đồ (Tăng 15-20% FPS)",
        "en": "Disable Volumetric & Map Fog (+15-20% FPS)",
    },
    "chk_auto_reveal": {
        "vi": "Tự Động Mở Sáng Toàn Bộ Minimap & Xóa Viền Xanh",
        "en": "Always-On Minimap Full Reveal & Wireframe Bypass",
    },
    "chk_streamer": {
        "vi": "Chế Độ Streamer (Ẩn Overlay khỏi OBS & Discord)",
        "en": "Streamer Mode (Hide Overlays from OBS & Discord)",
    },
    "chk_inspector": {
        "vi": "Bật Soi Đồ & Cảnh Báo Waystone Brick (Rê chuột 180ms)",
        "en": "Item Inspector & Brick Mod Tooltip (180ms Hover)",
    },
    "btn_launch": {
        "vi": "🚀 Khởi động Engine",
        "en": "🚀 Launch Engine",
    },
    "btn_panic": {
        "vi": "⚡ HOÀN NGUYÊN (F12)",
        "en": "⚡ PANIC RESTORE (F12)",
    },
    "tray_open": {
        "vi": "Mở Bảng Điều Khiển",
        "en": "Open Dashboard",
    },
    "tray_exit": {
        "vi": "Thoát Ứng Dụng",
        "en": "Exit Application",
    },
}

_CURRENT_LANG = "vi"


def set_language(lang: str) -> None:
    global _CURRENT_LANG
    if lang in ("vi", "en"):
        _CURRENT_LANG = lang


def get_language() -> str:
    return _CURRENT_LANG


def t(key: str, **kwargs) -> str:
    """Lấy chuỗi bản địa hóa theo key."""
    entry = TRANSLATIONS.get(key, {})
    text = entry.get(_CURRENT_LANG, entry.get("vi", key))
    if kwargs:
        try:
            return text.format(**kwargs)
        except Exception:
            return text
    return text
