ERROR_TRANSLATIONS = {
    "ru": {
        "missing": "Это поле обязательно для заполнения",
        "string_too_short": "Слишком коротко, минимум {min_length} символов",
        "value_error.email": "Некорректный email",
        "value_error.any_str.min_length": "Минимальная длина {limit_value} симв.",
        "type_error.integer": "Должно быть целым числом",
        "email_already_registered": "Email уже зарегистрирован",
        "incorrect_credentials": "Неверный email или пароль",
        "user_not_found": "Пользователь не найден",
        "invalid_token": "Недействительный токен",
        "flood_control": "Слишком много сообщений. Пожалуйста, подождите 10 секунд.",
        "captcha_required": "Требуется подтверждение (капча)",
        "too_many_attempts": "Слишком много неудачных попыток. Пожалуйста, попробуйте позже.",
        "account_not_active": "Ваш аккаунт не активирован. Пожалуйста, подтвердите email или свяжитесь с поддержкой."
    },
    "me": {
        "missing": "Ovo polje je obavezno",
        "string_too_short": "Previše kratko, min {min_length} karaktera",
        "value_error.email": "Neispravan email",
        "value_error.any_str.min_length": "Minimalna dužina {limit_value} kar.",
        "type_error.integer": "Mora biti cijeli broj",
        "email_already_registered": "Email je već registrovan",
        "incorrect_credentials": "Neispravan email ili lozinka",
        "user_not_found": "Korisnik nije pronađen",
        "invalid_token": "Neispravan token",
        "flood_control": "Previše poruka. Molimo sačekajte 10 sekundi.",
        "captcha_required": "Potrebna je potvrda (captcha)",
        "too_many_attempts": "Previše neuspješnih pokušaja. Molimo pokušajte kasnije.",
        "account_not_active": "Vaš nalog nije aktiviran. Molimo potvrdite email ili kontaktirajte podršku."
    },
    "ua": {
        "missing": "Це поле обов'язкове",
        "string_too_short": "Занадто коротко, мінімум {min_length} символів",
        "value_error.email": "Некоректний email",
        "value_error.any_str.min_length": "Мінімальна довжина {limit_value} симв.",
        "type_error.integer": "Має бути цілим числом",
        "email_already_registered": "Email вже зареєстрований",
        "incorrect_credentials": "Невірний email або пароль",
        "user_not_found": "Користувача не знайдено",
        "invalid_token": "Недійсний токен",
        "flood_control": "Занадто багато повідомлень. Будь ласка, зачекайте 10 секунд.",
        "captcha_required": "Потрібне підтвердження (капча)",
        "too_many_attempts": "Занадто багато невдалих спроб. Будь ласка, спробуйте пізніше.",
        "account_not_active": "Ваш акаунт не активовано. Будь ласка, підтвердіть email або зв'яжіться з підтримкою."
    },
    "en": {
        "missing": "Field is required",
        "string_too_short": "Too short, min {min_length} characters",
        "value_error.email": "Invalid email format",
        "email_already_registered": "Email already registered",
        "incorrect_credentials": "Incorrect email or password",
        "user_not_found": "User not found",
        "invalid_token": "Invalid or expired token",
        "flood_control": "Too many messages. Please wait 10 seconds.",
        "captcha_required": "Captcha verification required",
        "too_many_attempts": "Too many failed attempts. Please try again later.",
        "account_not_active": "Your account is not active. Please verify your email or contact support."
    }
}

def translate_error(error_type: str, lang: str, **kwargs) -> str:
    lang = lang.lower() if lang else "en"
    if lang not in ERROR_TRANSLATIONS:
        lang = "en"
    
    translations = ERROR_TRANSLATIONS[lang]
    template = translations.get(error_type, translations.get(error_type.split('.')[-1], None))
    
    if not template:
        # Fallback to English if not found in current lang
        template = ERROR_TRANSLATIONS["en"].get(error_type, "Validation error")
        
    try:
        return template.format(**kwargs)
    except:
        return template
