# Install necessary libraries first: # pip install streamlit transformers import streamlit as st from transformers import MarianMTModel, MarianTokenizer # Function to load model and tokenizer @st.cache_resource def load_translation_model(src_lang, tgt_lang): model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}" tokenizer = MarianTokenizer.from_pretrained(model_name) model = MarianMTModel.from_pretrained(model_name) return tokenizer, model # Function to translate text def translate_text(text, tokenizer, model): tokens = tokenizer(text, return_tensors="pt", padding=True, truncation=True) translated = model.generate(**tokens) translated_text = tokenizer.decode(translated[0], skip_special_tokens=True) return translated_text # List of supported language codes languages = { "English": "en", "French": "fr", "Spanish": "es", "German": "de", "Italian": "it", "Dutch": "nl", "Chinese (Simplified)": "zh", "Russian": "ru", "Arabic": "ar", "Hindi": "hi", } # Streamlit UI st.title("Language Translation App") st.write("Translate text between multiple languages using an open-source translation model.") # Language selection source_language = st.selectbox("Select source language", list(languages.keys()), index=0) target_language = st.selectbox("Select target language", list(languages.keys()), index=1) # Input text input_text = st.text_area("Enter text to translate", height=150) # Load model and tokenizer if source_language != target_language and input_text.strip(): src_lang_code = languages[source_language] tgt_lang_code = languages[target_language] try: tokenizer, model = load_translation_model(src_lang_code, tgt_lang_code) translated_text = translate_text(input_text, tokenizer, model) st.subheader("Translated Text") st.success(translated_text) except Exception as e: st.error(f"Error: {e}") else: st.info("Please select different source and target languages and enter text to translate.")