Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import pipeline | |
| # Supported languages mapping (extendable) | |
| language_map = { | |
| "English": "en", | |
| "German": "de", | |
| "French": "fr", | |
| "Spanish": "es", | |
| "Italian": "it", | |
| "Russian": "ru", | |
| "Arabic": "ar", | |
| "Chinese": "zh", | |
| "Urdu": "ur", | |
| } | |
| # Initialize Streamlit app | |
| st.title("Language Translation App 🌐") | |
| st.markdown("Translate text instantly between multiple languages using open-source models.") | |
| # Language selection | |
| input_language = st.selectbox("Select Input Language", options=list(language_map.keys())) | |
| output_language = st.selectbox("Select Output Language", options=list(language_map.keys())) | |
| # Text input | |
| text_to_translate = st.text_area("Enter text to translate:", placeholder="Type your text here...") | |
| # Translate button | |
| if st.button("Translate"): | |
| if not text_to_translate.strip(): | |
| st.warning("Please enter text to translate!") | |
| elif input_language == output_language: | |
| st.info("Input and output languages are the same. No translation needed.") | |
| st.text_area("Translated Text:", value=text_to_translate, height=100, disabled=True) | |
| else: | |
| # Determine source and target languages | |
| src_lang = language_map[input_language] | |
| tgt_lang = language_map[output_language] | |
| # Load the appropriate translation model | |
| model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}" | |
| try: | |
| translator = pipeline("translation", model=model_name) | |
| # Perform translation | |
| translation = translator(text_to_translate, max_length=512) | |
| translated_text = translation[0]["translation_text"] | |
| # Display translated text | |
| st.text_area("Translated Text:", value=translated_text, height=100, disabled=True) | |
| except Exception as e: | |
| st.error(f"Translation failed: {str(e)}") | |