streamlit transformers torch sentencepiece sacremoses import streamlit as st from transformers import pipeline # Initialize the translation pipeline @st.cache_resource def load_translator(): return pipeline("translation", model="Helsinki-NLP/opus-mt-en-{target}") # Supported languages (ISO 639-1 codes mapped to language names) supported_languages = { "fr": "French", "es": "Spanish", "de": "German", "zh": "Chinese", "hi": "Hindi", "ar": "Arabic", "ru": "Russian", "ja": "Japanese", "ko": "Korean", "it": "Italian", } # Streamlit App st.title("Language Translator App") st.write("Translate text from English to a selected target language using Hugging Face models.") # Input text from user input_text = st.text_area("Enter text in English:", placeholder="Type here...") # Language selection target_language = st.selectbox( "Select target language:", options=list(supported_languages.keys()), format_func=lambda lang: supported_languages[lang], ) # Translate button if st.button("Translate"): if input_text.strip() == "": st.error("Please enter text to translate.") else: translator = load_translator() # Replace `{target}` with the user-selected language in the model translator = pipeline("translation", model=f"Helsinki-NLP/opus-mt-en-{target_language}") translation = translator(input_text)[0]["translation_text"] st.success("Translated Text:") st.write(translation)