Spaces:
Runtime error
Runtime error
from transformers import pipeline | |
import gradio as gr | |
# Define el modelo de traducción inglés-español | |
modelo_traduccion = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es") | |
def traducir_texto(texto_en): | |
""" | |
Traduce el texto de entrada del inglés al español utilizando el modelo predefinido. | |
Args: | |
texto_en (str): El texto en inglés que se va a traducir. | |
Returns: | |
str: El texto traducido al español. | |
""" | |
try: | |
if not texto_en.strip(): | |
return "" | |
resultado = modelo_traduccion(texto_en) | |
return resultado[0]['translation_text'] | |
except Exception as e: | |
return f"Error en la traducción: {e}" | |
def borrar_entrada(texto_entrada): | |
""" | |
Borra el texto del cuadro de texto de entrada. | |
Args: | |
texto_entrada (str): El texto actual en el cuadro de texto de entrada. | |
Returns: | |
str: Una cadena vacía. | |
""" | |
return "" | |
with gr.Blocks() as interfaz_traductor: | |
""" | |
Define la interfaz gráfica de la aplicación de traducción de inglés a español con cuadros de texto más grandes y sin ejemplos. | |
""" | |
gr.Markdown("# Traductor Inglés a Español") | |
with gr.Row(): | |
with gr.Column(): | |
texto_entrada_en = gr.Textbox(label="Texto en inglés", placeholder="Pega aquí el texto en inglés", lines=10) | |
boton_borrar = gr.Button("Borrar todo") | |
with gr.Column(): | |
texto_salida_es = gr.Textbox(label="Traducción al español", placeholder="La traducción aparecerá aquí", interactive=False, elem_id="traduccion_salida", lines=10) | |
boton_copiar = gr.Button("Copiar traducción") | |
def copiar_al_portapapeles(texto): | |
""" | |
Función que devuelve un script de JavaScript para copiar el texto al portapapeles. | |
""" | |
return f""" | |
function copiarTexto() {{ | |
const textoACopiar = document.getElementById('traduccion_salida').value; | |
navigator.clipboard.writeText(textoACopiar) | |
.then(() => {{ | |
alert('¡Traducción copiada al portapapeles!'); | |
}}) | |
.catch(err => {{ | |
console.error('Error al copiar al portapapeles: ', err); | |
alert('No se pudo copiar la traducción al portapapeles.'); | |
}}); | |
}} | |
copiarTexto(); | |
""" | |
boton_copiar.click(copiar_al_portapapeles, inputs=texto_salida_es, outputs=gr.Javascript()) | |
texto_entrada_en.change(traducir_texto, inputs=texto_entrada_en, outputs=texto_salida_es) | |
boton_borrar.click(borrar_entrada, inputs=texto_entrada_en, outputs=texto_entrada_en) | |
interfaz_traductor.launch() |