# libs/manage_languages.py from langdetect import detect from fastapi import HTTPException import logging logger = logging.getLogger(__name__) def validate_language(language: str) -> None: """Validate the language parameter. Throws an HTTPException if the language is invalid.""" valid_languages = {"french", "italian", "english", "german", "auto"} if language not in valid_languages: raise HTTPException( status_code=400, detail="Invalid language. Must be one of: french, italian, english, german, or auto" ) def detect_language(current_message: str) -> str: """Detect the language of the current message. Defaults to French if detection fails.""" try: detected_lang = detect(current_message) if detected_lang == "fr": language = "french" elif detected_lang == "it": language = "italian" elif detected_lang == "en": language = "english" elif detected_lang == "de": language = "german" else: language = "french" logger.info(f"Detected language: {language}") return language except Exception as e: logger.error(f"Language detection failed: {str(e)}") return "french"