Trivia5 / utils /translator.py
Bharath370's picture
Upload 23 files
286afa0 verified
# utils/translator.py
"""Translation utility for TriviaVerse"""
import streamlit as st
from googletrans import Translator
from config.languages import SUPPORTED_LANGUAGES
from config.localization import UI_TEXT
@st.cache_data(ttl=3600)
def get_translated_texts(dest_lang="en"):
"""
Translates all UI texts to the destination language in a single batch
and caches the result.
"""
if dest_lang == "en":
return UI_TEXT
try:
translator = Translator()
# Get all the values from the UI_TEXT dictionary
original_texts = list(UI_TEXT.values())
# Translate them in a single batch
translated_texts = translator.translate(original_texts, dest=dest_lang)
# Create a new dictionary with the same keys but translated values
translated_dict = dict(zip(UI_TEXT.keys(), [t.text for t in translated_texts]))
return translated_dict
except Exception as e:
st.error(f"Translation service failed: {e}. Falling back to English.")
return UI_TEXT
def get_supported_languages():
"""Returns the list of supported languages."""
return SUPPORTED_LANGUAGES