from deep_translator import GoogleTranslator import gradio as gr # Dictionary to map language codes to full language names language_map = { "auto": "Auto Detect", "en": "English", "ur": "Urdu", "fr": "French", "es": "Spanish", "de": "German", "zh": "Chinese", "ar": "Arabic", "hi": "Hindi", "it": "Italian", "ja": "Japanese", "pt": "Portuguese", "ru": "Russian", "ko": "Korean", "fa": "Persian", # Persian language code } # Define the translation function with selectable languages def translate_text(text, source_lang_name, target_lang_name): try: # Convert language names back to language codes for the translator source_lang = list(language_map.keys())[list(language_map.values()).index(source_lang_name)] target_lang = list(language_map.keys())[list(language_map.values()).index(target_lang_name)] # Initialize the translator translator = GoogleTranslator(source=source_lang, target=target_lang) # Perform the translation translated_text = translator.translate(text) return translated_text except Exception as e: return f"Error during translation: {str(e)}" # Set up Gradio interface iface = gr.Interface( fn=translate_text, inputs=[ gr.Textbox(label="Enter Text to Translate"), gr.Dropdown(label="Select Language to Translate From", choices=list(language_map.values()), value="Auto Detect"), gr.Dropdown(label="Select Language to Translate Into", choices=list(language_map.values()), value="Urdu") ], outputs="text", title="Multi-Language Translator", description="Enter any text and translate it into the language of your choice. Perfect for multilingual communication!" ) # Launch the app iface.launch()