feat: implementar traducción multilingüe mediante segmentación de oraciones para Discord y Telegram

This commit is contained in:
2026-03-06 19:54:48 -06:00
parent 7601979d3e
commit 037a4c5224
3 changed files with 79 additions and 33 deletions

View File

@@ -68,24 +68,13 @@ def get_lang_keyboard(bot_type="telegram"):
return InlineKeyboardMarkup(keyboard)
async def translate_text_telegram(text: str, target_lang: str) -> str:
url = get_libretranslate_url()
payload = {
"q": text,
"source": "auto",
"target": target_lang,
"format": "text"
}
# Usamos la función compartida de translate.py para tener segmentación y soporte multilingüe
from botdiscord.translate import translate_text
translated = await translate_text(text, target_lang)
async with aiohttp.ClientSession() as session:
try:
async with session.post(url, json=payload, timeout=10) as resp:
if resp.status == 200:
data = await resp.json()
return data.get("translatedText", "Error en la traducción.")
else:
return f"Error de API: {resp.status}"
except Exception as e:
return f"Error de conexión: {str(e)}"
# Desescapamos el HTML para Telegram (evitar " etc)
import html
return html.unescape(translated)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(