Translation App Code
Translation App Code
Translation App Code
def extract_names(text):
"""
Extract potential names from the given text.
Args:
text (str): Input text to extract names from.
Returns:
set: Set of potential names.
"""
potential_names = set(word.strip(string.punctuation) for word in
text.split() if word.istitle())
return potential_names
Args:
text (str): Input text to translate.
target_language (str): Target language code.
Returns:
str: Translated text.
"""
if not text.strip():
return ""
else:
model_name = f"Helsinki-NLP/opus-mt-en-{target_language}"
model = MarianMTModel.from_pretrained(model_name)
tokenizer = MarianTokenizer.from_pretrained(model_name)
translated_text = tokenizer.decode(translated_ids,
skip_special_tokens=True)
return translated_text
Args:
input_docx (BytesIO): Input DOCX file.
target_language (str): Target language code.
name_replacements (dict): Dictionary of name replacements.
Returns:
Document: Translated and replaced DOCX document.
"""
doc = Document(input_docx)
translated_doc = Document()
for para in doc.paragraphs:
translated_text = para.text
for old_name, new_name in name_replacements.items():
translated_text = translated_text.replace(old_name, new_name)
translated_text = translate_to_language(translated_text,
target_language)
translated_doc.add_paragraph(translated_text)
return translated_doc
# Streamlit UI
st.title("DOCX Translation App")
if uploaded_file:
doc = Document(uploaded_file)
doc_text = "\n".join([para.text for para in doc.paragraphs])
# Download button
if st.button("Download Translated DOCX"):
os.rename(output_filename, custom_filename)
st.download_button("Download", custom_filename,
key='download_button')