How breslee1707/vi-translate works
PDF Translate converts queued PDF documents into translated PDFs while preserving layout, formulas, tables, images, and selected scan regions. The desktop path is driven by the GUI and packaged runner; the Android path is a separate foreground-service rewrite using PDFBox-style preservation and Google translation. Core stages include layout analysis, protected-content handling, translation, optional OCR, and rendering. The graph preserves documented batch processing, partial-failure behavior, caching, and desktop updating; some unsampled orchestration links are necessarily conservative.
Components 23
Desktop App
- Desktop GUI
app/gui.py - Translation Runner
scripts/translate_pdf.py - Desktop Updater
app/update.py
Translation Core
- High-Level API
pdf2zh/high_level.py - PDF Converter
pdf2zh/converter.py - Layout Analysis
pdf2zh/doclayout.py - Text Translator
pdf2zh/translator.py - Protection Rules
pdf2zh/rules.py - Local OCR
pdf2zh/ocr.py
Android App
- Android Activity
android/app/src/main/java/com/vitranslate/pdf/MainActivity.kt - Android ViewModel
android/app/src/main/java/com/vitranslate/pdf/viewmodel/MainViewModel.kt - Foreground Service
android/app/src/main/java/com/vitranslate/pdf/service/TranslationService.kt - Queue Controller
android/app/src/main/java/com/vitranslate/pdf/repository/TranslationController.kt - Layout Preserver
android/app/src/main/java/com/vitranslate/pdf/repository/PdfLayoutPreserver.kt - Google Engine
android/app/src/main/java/com/vitranslate/pdf/repository/GoogleTranslateEngine.kt - Text Normaliser
android/app/src/main/java/com/vitranslate/pdf/repository/SourceTextNormaliser.kt - Formula Placeholders
android/app/src/main/java/com/vitranslate/pdf/repository/FormulaPlaceholder.kt
State And Updates
- Translation Cache
pdf2zh/cache.py
Other components
- User
- Source PDFs
- Google Translate
- Release Service
- Translated PDFs
Connections 25
- User → Desktop GUI: uses
- User → Android Activity: uses
- Source PDFs → Desktop GUI: opens
- Source PDFs → Android Activity: opens
- Desktop GUI → Translation Runner: calls
- Translation Runner → High-Level API: invokes
- High-Level API → PDF Converter: runs
- PDF Converter → Layout Analysis: analyses layout
- PDF Converter → Text Translator: translates text
- PDF Converter → Local OCR: uses optionally
- Text Translator → Protection Rules: protects content
- Text Translator → Translation Cache: reads cache
- Text Translator → Google Translate: requests translation
- PDF Converter → Translated PDFs: renders
- Desktop GUI → Desktop Updater: checks updates
- Desktop Updater → Release Service: downloads release
- Android Activity → Android ViewModel: drives
- Android ViewModel → Queue Controller: queues files
- Foreground Service → Queue Controller: runs queue
- Queue Controller → Layout Preserver: translates PDFs
- Layout Preserver → Google Engine: translates segments
- Google Engine → Text Normaliser: normalises text
- Google Engine → Formula Placeholders: protects formulas
- Google Engine → Google Translate: fetches translation
- Layout Preserver → Translated PDFs: writes output