YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

import streamlit as st from googletrans import Translator from gtts import gTTS import os import random import pyperclip

=========================

CONFIGURACIÓN DE PÁGINA

=========================

st.set_page_config( page_title="🌐 Traductor Nassi 8.0", page_icon="🌀", layout="wide", )

st.markdown("

🌐 Traductor Nassi 8.0

", unsafe_allow_html=True) st.markdown("

Español ↔ Nassi ↔ Otros idiomas con audio y copia al portapapeles

", unsafe_allow_html=True)

=========================

IDIOMAS

=========================

idiomas = { "Español": "es", "Inglés": "en", "Francés": "fr", "Italiano": "it", "Chino Tradicional": "zh-TW", "Alemán": "de", "Ruso": "ru", "Árabe": "ar", "Portugués": "pt", "Nassi": "ns" }

=========================

MOTOR NASSI

=========================

prefijos = ["ba","ge","kra","tru","vel","dra","fre","blen"] raices = ["mor","stein","grun","hald","flok","bern","trum","fald","norf","tharn","plotz"] sufijos = ["en","ar","um","ich","or","un","et","al"] diccionario_nassi = {"estrenocleidomastoideo": "Saramarambiba"}

def generar_palabra_nassi(): palabra = random.choice(prefijos) + random.choice(raices) + random.choice(sufijos) return palabra.capitalize()

def traducir_a_nassi(texto): palabras = texto.lower().split() traduccion = [] for palabra in palabras: if palabra not in diccionario_nassi: diccionario_nassi[palabra] = generar_palabra_nassi() traduccion.append(diccionario_nassi[palabra]) return " ".join(traduccion)

def traducir_de_nassi(texto): inverso = {v.lower(): k for k, v in diccionario_nassi.items()} palabras = texto.lower().split() traduccion = [inverso.get(p, f"[{p}]") for p in palabras] return " ".join(traduccion)

translator = Translator()

def traducir_a_idioma(texto, destino): code = idiomas.get(destino) if not code: return texto if code == "ns": return traducir_a_nassi(texto) return translator.translate(texto, src="es", dest=code).text

def reproducir_audio(texto, lang): if lang == "ns": lang = "de" tts = gTTS(texto, lang=lang) tts.save("voz.mp3") st.audio("voz.mp3", format="audio/mp3")

def copiar_texto(texto): try: pyperclip.copy(texto) st.success("✅ Copiado al portapapeles") except: st.warning("⚠ No se pudo copiar (depende del navegador)")

=========================

INTERFAZ VISUAL

=========================

st.markdown("---") col1, col2 = st.columns([3,2])

with col1: texto = st.text_area("✍ Escribe tu frase en Español o Nassi:", height=150) origen = st.selectbox("Desde:", list(idiomas.keys()), index=0) destino = st.selectbox("Hacia:", list(idiomas.keys()), index=8)

with col2: st.markdown("

Acciones

", unsafe_allow_html=True) if st.button("🌀 Traducir", key="traducir"): if texto.strip() == "": st.warning("Por favor escribe algo.") else: if origen == "Nassi" and destino == "Español": resultado = traducir_de_nassi(texto) elif origen == "Español" and destino == "Nassi": resultado = traducir_a_nassi(texto) elif origen == destino: resultado = texto else: if origen == "Nassi": texto_esp = traducir_de_nassi(texto) else: texto_esp = texto resultado = traducir_a_idioma(texto_esp, destino) st.session_state["resultado"] = resultado st.success("✅ Traducción lista")

if "resultado" in st.session_state:
    st.text_area("📄 Resultado:", value=st.session_state["resultado"], height=120)
    if st.button("📋 Copiar Traducción", key="copiar"):
        copiar_texto(st.session_state["resultado"])
    if st.button("🔊 Reproducir Audio", key="audio"):
        reproducir_audio(st.session_state["resultado"], idiomas[destino])
    if "estrenocleidomastoideo" in texto.lower():
        st.info("Nota: 'estrenocleidomastoideo' en Nassi siempre es *Saramarambiba*")
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support