Text-translator / app.py
Noveramaaz's picture
Update app.py
2d8ef64 verified
from flask import Flask, render_template, request, jsonify
from transformers import MarianMTModel, MarianTokenizer
from langdetect import detect
from sacremoses import MosesTokenizer, MosesDetokenizer
app = Flask(__name__)
# Supported languages for translation
SUPPORTED_LANGUAGES = {
"en": "English",
"fr": "French",
"es": "Spanish",
"de": "German",
"it": "Italian"
}
@app.route("/")
def index():
return render_template("index.html")
@app.route("/translate", methods=["POST"])
def translate_text():
data = request.get_json()
text = data["text"]
target_lang = data["target_language"]
translated_text = translate_text_function(text, target_lang)
return jsonify({"translated_text": translated_text})
def translate_text_function(text, target_lang="fr"):
# Detect input text language
input_lang = detect(text)
# Load pre-trained translation model
model_name = f'Helsinki-NLP/opus-mt-{input_lang}-{target_lang}'
model = MarianMTModel.from_pretrained(model_name)
tokenizer = MarianTokenizer.from_pretrained(model_name)
# Tokenize input text
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
# Translate input text
translated = model.generate(**inputs)
# Decode translated text
translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
return translated_text
if __name__ == "__main__":
app.run(debug=True)