import gradio as gr import requests def translate_text(text, source_lang, target_lang): if not text.strip(): return "" url = "https://api.mymemory.translated.net/get" params = { "q": text, "langpair": f"{source_lang}|{target_lang}" } try: response = requests.get(url, params=params) response.raise_for_status() data = response.json() if data["responseStatus"] == 200: return data["responseData"]["translatedText"] else: return f"Translation error: {data['responseDetails']}" except Exception as e: return f"Error: {str(e)}" # Language options languages = { "Arabic": "ar", "Basque": "eu", "Belarusian": "be", "Bosnian": "bs", "Bulgarian": "bg", "Catalan": "ca", "Chinese, simplified": "zh_CN", "Chinese, traditional": "zh_TW", "Croatian": "hr", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "Estonian": "et", "Finnish": "fi", "French": "fr", "French, Canadian": "fr_ca", "Galician": "gl", "German": "de", "Greek": "el", "Hebrew": "he", "Hungarian": "hu", "Indonesian": "id", "Italian": "it", "Japanese": "ja", "Korean": "ko", "Latvian": "lv", "Lithuanian": "lt", "Macedonian": "mk", "Malay": "ms", "Norwegian Bokmal": "nb", "Norwegian Nynorsk": "nn", "Persian": "fa", "Polish": "pl", "Portuguese": "pt", "Portuguese, Brazilian": "pt_BR", "Romanian": "ro", "Russian": "ru", "Serbian, Cyrillic": "sr_Cyrl", "Serbian, Latin": "sr_Latn", "Slovak": "sk", "Slovenian": "sl", "Spanish": "es", "Swedish": "sv", "Thai": "th", "Turkish": "tr", "Ukrainian": "uk", "Valencian": "vc", "Vietnamese": "vn" } # Create Gradio interface iface = gr.Interface( fn=translate_text, inputs=[ gr.Textbox(label="Enter text to translate", placeholder="Type your text here..."), gr.Dropdown(choices=list(languages.keys()), value="English", label="From"), gr.Dropdown(choices=list(languages.keys()), value="Spanish", label="To") ], outputs=gr.Textbox(label="Translation"), title="🌍 Simple Translator 🌍", description="Translate text using MyMemory API", examples=[ ["Hello, how are you?", "English", "Spanish"], ["Bonjour, comment allez-vous?", "French", "English"], ["Hola, ¿cómo estás?", "Spanish", "German"] ], allow_flagging="never", theme=gr.themes.Citrus() ) if __name__ == "__main__": iface.launch()