Spaces:
Sleeping
Sleeping
File size: 902 Bytes
2d0ef3b 50231a8 2d0ef3b 50231a8 2d0ef3b 50231a8 2d0ef3b 50231a8 2d0ef3b 50231a8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | from langdetect import DetectorFactory, LangDetectException, detect
from app.core.exceptions import LanguageDetectionError
# Ensure deterministic language detection outcomes across runs.
DetectorFactory.seed = 0
class LanguageService:
def detect_language(self, text: str) -> str:
try:
language = detect(text)
except LangDetectException as exc:
raise LanguageDetectionError("Language detection failed") from exc
except Exception as exc:
raise LanguageDetectionError("Language detector raised an unexpected error") from exc
normalized_language = language.split("-", 1)[0].strip().lower() if isinstance(language, str) else ""
if not normalized_language:
raise LanguageDetectionError("Language detector did not return a valid label")
return normalized_language
language_service = LanguageService()
|