Built for: Darlene Vail
Purpose: Personal French/English email translation
Scope: Single-user Windows-first Streamlit tool, not an enterprise service
Current package: V1.2 UI-focused release; runtime contract inherited from V1.1.3
This application lets Darlene paste email text into a local browser interface and translate it with Hugging Face MarianMT models after those models are installed.
Important qualifications:
- First setup installs Python machine-translation packages and may download several GB of dependencies.
- First model preparation or first real translation may download model files from Hugging Face and cache them in
models/. - The application code is not designed to send pasted email text to a translation API.
- The application code is not designed to save pasted email text to disk or log email content.
- Model files are cached locally; pasted email text is not intentionally cached by this project.
- If the user downloads translated text from the browser, the browser will save a local file.
For Windows, use Python 3.11 or Python 3.12.
The app code itself is Python 3.9+ compatible, but the practical Windows runtime depends on ML package wheels. Python 3.11 or 3.12 is the recommended path for easiest dependency compatibility.
- Extract the ZIP to a normal folder, such as Desktop or Documents.
- Install Python 3.11 or 3.12 if needed.
- Double-click
setup.bat. - Wait for dependency installation to finish.
- Double-click
PREPARE_MODELS.batto download and verify both translation models. - Double-click
START_TRANSLATOR.bat. - Use the browser page that opens at
localhost.
The first setup and first model preparation can take time. Large packages and model files may download.
After setup and model preparation:
- Double-click
START_TRANSLATOR.bat. - Paste the email text.
- Select the translation direction.
- Click Translate email.
- Review the result before sending.
- Use the editable translated-output box for final corrections.
- Use the download option only if you want your browser to save a local text file.
Use these scripts if something does not work:
diagnose_runtime.py— checks Python, packages, Streamlit, model imports, and local environment.smoke_translate.py— performs one real French→English and one real English→French translation.PREPARE_MODELS.bat— prepares both translation models before regular use.
The V1.2 UI package was verified from a fresh extraction with:
- Python compilation
- Pytest suite
- Ruff lint
- Black formatting check
- Mypy type check
- Streamlit localhost smoke launch
- No packaged cache/build artifacts
- No runtime-file regression from V1.1.3
The package should still be verified on the target Windows machine with:
setup.batPREPARE_MODELS.batdiagnose_runtime.pysmoke_translate.pySTART_TRANSLATOR.bat- One real French→English translation
- One real English→French translation
This is not:
- an Outlook add-in
- a Microsoft Graph integration
- a cloud translation service
- a multi-user app
- a database-backed system
- a compliance-certified institutional system
Future V2 work should focus on installer-grade packaging, managed Windows runtime, diagnostics UI, model manager, repair/reset flows, and release evidence.
app.py— Streamlit interfacetranslator.py— translation engine and entity preservationsetup.bat— Windows dependency setupPREPARE_MODELS.bat— model preparation / smoke translation helperSTART_TRANSLATOR.bat— Windows app launcherdiagnose_runtime.py— runtime diagnosticssmoke_translate.py— real translation smoke testWINDOWS_LIVE_TEST_CHECKLIST.md— final target-machine checklistQUICK_REFERENCE.md— short user-facing referenceRUNBOOK.md— support/operator runbookUI_RELEASE_NOTES.md— V1.2 UI release notes
If translation fails, run:
python diagnose_runtime.py
python smoke_translate.pyIf the app shell opens but translation fails, the likely cause is dependency installation, model download, model cache corruption, or blocked network access during model preparation.
For production-style packaging, move to V2 installer/runtime-managed architecture instead of expanding the current ZIP handoff.
V1.2 is intentionally still a Streamlit package. It improves the user workflow and polish without changing the runtime contract. It should be treated as the final UI candidate for the ZIP-based product line, not as an enterprise deployment architecture.
Future V2 productization should focus on truthful privacy boundaries, Windows runtime reproducibility, installer-grade setup, diagnostics, and non-technical usability rather than enterprise scalability patterns.
This repository was initialized from uottawa_email_translator_v1_2_ui.zip as the V1.2 UI baseline.
V2 productization is tracked in GitHub issue #1: #1
This repository is standalone for the uOttawa Email Translator project and is not Harbourview or WURX product code.