File size: 1,566 Bytes
9cddfa5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | import gradio as gr
from deep_translator import GoogleTranslator
# Translation Function
def getTranslateText(text: str, dest: str) -> str:
try:
if not text.strip():
return "Please enter text."
translated = GoogleTranslator(source='auto', target=dest).translate(text)
return translated
except Exception as e:
return f"Translation error: {str(e)}"
# Supported Languages
languages = GoogleTranslator().get_supported_languages(as_dict=True)
# Convert to readable dropdown list
language_names = list(languages.keys())
# Gradio UI
with gr.Blocks() as demo:
gr.Markdown("# π Simple Google Translator")
gr.Markdown("Auto-detect source language β translate to selected language.")
with gr.Row():
with gr.Column():
input_text = gr.Textbox(
lines=5,
placeholder="Enter text to translate...",
label="Input Text"
)
target_lang = gr.Dropdown(
choices=language_names,
value="english",
label="Target Language"
)
translate_btn = gr.Button("Translate π", variant="primary")
with gr.Column():
output_text = gr.Textbox(
lines=5,
label="Translated Text"
)
translate_btn.click(
fn=lambda text, lang: getTranslateText(text, languages[lang]),
inputs=[input_text, target_lang],
outputs=output_text
)
if __name__ == "__main__":
demo.launch() |