afri_app / modules /translator.py
SmokeyBandit's picture
Create translator.py
db684d6 verified
import gradio as gr
from .translation_model import TranslationModel
import time
def translator_component():
# Initialize the translation model
model = TranslationModel()
# Language mapping
LANGUAGES = {
"Afrikaans": "af",
"English": "en",
}
def translate_text(text, source_lang, target_lang):
if not text.strip():
return "Please enter text to translate."
start_time = time.time()
src_code = LANGUAGES[source_lang]
tgt_code = LANGUAGES[target_lang]
result = model.translate(text, src_code, tgt_code)
end_time = time.time()
return f"{result}\n\nTranslation time: {round(end_time - start_time, 2)} seconds"
with gr.Column() as translator:
gr.Markdown("### Neural Machine Translation")
gr.Markdown("Using M2M100 1.2B model for high-quality translations")
input_text = gr.Textbox(
label="Text to Translate",
placeholder="Enter text here...",
lines=3
)
with gr.Row():
source_lang = gr.Dropdown(
choices=list(LANGUAGES.keys()),
value="English",
label="From"
)
target_lang = gr.Dropdown(
choices=list(LANGUAGES.keys()),
value="Afrikaans",
label="To"
)
translate_btn = gr.Button("Translate")
output_text = gr.Textbox(label="Translation", lines=3)
translate_btn.click(
fn=translate_text,
inputs=[input_text, source_lang, target_lang],
outputs=output_text
)
return translator