feat: implementar traducción multilingüe mediante segmentación de oraciones para Discord y Telegram
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user