Technisches Handbuch v1.0.0

Dokument-
& Datei-Translator

Translate PDF-, Word-, Excel- und PowerPoint-Dateien unter Beibehaltung des ursprünglichen Formats und Stils – angetrieben von Ollama, MLX oder LMStudio mit automatischer Erkennung der Ausgangssprache.

Doku lesen
Testsession anfragen

1. Übersicht

Was ist XteVision TransDocs und wer soll es nutzen?

1.1 Was ist XteVision TransDocs?

XteVision TransDocs ist ein Python-Skript und eine Web-UI zum Übersetzen von Microsoft-Office-Dateien und PDFs unter Beibehaltung des ursprünglichen Formats und Stils. Es nutzt die Ollama-, MLX- oder LMStudio-API und kann die Ausgangssprache automatisch erkennen (mindestens 50 Wörter) oder eine manuell vorgegebene Ausgangssprache akzeptieren.

1.2 Für Produktionsmaß

Dieses Tool ist für Produktionsmaß-Workloads genauso gedacht wie für persönliche Übersetzungsaufgaben. Es unterstützt mehrere UI-Sprachen (EN, CN, DE) und drei austauschbare AI-Backends, sodass es sich sowohl für Einzellenten als auch für Enterprise-Bereitstellungen eignet.

1.3 Zielgruppe

  • Hauptzielgruppe: Teams, die regelmäßig viele Geschäftsdokumente (Word, Excel, PowerPoint, PDF) über Sprachen hinweg übersetzen
  • Nebenzielgruppe: Entwickler, die eine API-angetriebene Übersetzungs-Pipeline mit Erhaltung der Dokumentstruktur benötigen

2. Funktionen

Was TransDocs leisten kann

Automatische Spracherkennung

Erkennt die Ausgangssprache durch Analyse von mindestens 50 Wörtern des Dokuments.

Manuelle Ausgangssprache

Ersetzen der Erkennung über das -s / --src_lang-Argument für OCR-freundlichere Ausgaben.

Vollständige Elementübersetzung

Übersetzt Absätze, Tabellen, Kopf- und Fußzeilen unter Beibehaltung des Layouts.

Hybride PDF-Pipeline

Verwendet eingebetteten Text, wo verfügbar; gescannte Seiten fallen auf Poppler + Tesseract-OCR zurück.

Wählbare LLM-Backends

Lauf gegen Ollama, MLX oder LMStudio – je nach eigener Infrastruktur.

Optionale Doppelprüfung

Für wichtige PDFs kann jede Seite vor der Übersetzung mit dem Visionmodell geprüft werden.

3. Voraussetzungen

Software und Systempakete

  • Python Version 3.7 oder höher
  • Python-Pakete: python-docx, python-pptx, openpyxl, Pillow, pytesseract, python-dotenv, requests, langdetect, flask, werkzeug
  • Systempakete für PDF: poppler-utils (pdftoppm oder pdftocairo in PATH) und tesseract-ocr mit den für deine Dokumente notwendigen Sprachpaketen
  • LLM-Backend-Zugang: Ollama, MLX oder LMStudio. Setze TRANSDOC_API_TOKEN, wenn dein Backend Authentifizierung erfordert

4. Installation

Umgebung einrichten und Abhängigkeiten installieren

4.1 Herunterladen & Vorbereiten

cd TransDocs
python -m venv venv
source venv/bin/activate   # Auf Windows: venv\Scripts\activate

4.2 Abhängigkeiten installieren

pip install -r requirements.txt

4.3 Systempakete installieren (Debian/Kali)

sudo apt-get install -y poppler-utils tesseract-ocr tesseract-ocr-eng

Installiere je nach Quelldokument weitere Tesseract-Sprachpakete.

4.4 Konfiguration

Passe die Einstellungen in .env bei Bedarf an. Die vollständige Liste der unterstützten Schlüssel findest du im Abschnitt Konfiguration.

5. Konfiguration

Laufzeiteinstellungen in der .env-Datei

Die .env-Datei kann ähnlich wie beim Setup invoicer verwaltet werden. Unterstützte Schlüssel include:

SchlüsselFunktion
TRANSDOC_PROVIDERGewähltes Backend
TRANSDOC_OLLAMA_URLOllama-Base-URL
TRANSDOC_MLX_URLMLX-Backend-URL
TRANSDOC_LM_STUDIO_URLLMStudio-Backend-URL
TRANSDOC_DEFAULT_MODELStandardmodell, wenn keins vorgegeben ist
TRANSDOC_API_TOKENAuthentifizierungs-Token für das Backend
TRANSDOC_UPLOAD_DIRVerzeichnis für hochgeladene Dateien
TRANSDOC_OUTPUT_DIRVerzeichnis für die übersetzte Ausgabe
TRANSDOC_SECRET_KEYFlask-Sitzungsschlüssel
TRANSDOC_HOSTHost, an den sich die Web-UI bindet
TRANSDOC_PORTPort, an den sich die Web-UI bindet
TRANSDOC_DEBUGFlask-Debug-Modus aktivieren
TRANSDOC_LOG_FILEPfad zur Protokolldatei
TRANSDOC_TESSERACT_LANGSExplizite OCR-Sprachen (z. B. eng+deu)

6. Kommandozeile

Dokumente über die Kommandozeile übersetzen

Das Skript transdoc.py kann von der Kommandozeile aus ausgeführt werden. Bei PDF-Eingabe ist der Workflow hybrid: Text-PDFs werden direkt extrahiert, während gescannte oder rein bildbasierte Seiten auf OCR zurückfallen. Wenn du die Ausgangssprache bereits kennst, verbessert die Übergabe von -s die OCR-Sprachauswahl. Sowohl die CLI als auch die Flask-Anwendung laden .env automatisch, und die CLI unterstützt die Backend-Auswahl mit -p/--provider und -b/--base_url.

6.1 Argumente

FlaggeNameBeschreibung
-iinput_filePfad zur Eingabedatei (Pflichtfeld)
-ooutput_filePfad zum Speichern der übersetzten Datei (Pflichtfeld)
-ttarget_langZielsprachencode (z. B. en, de, fr) (Pflichtfeld)
-kapi_tokenAPI-Token für die Authentifizierung (Pflichtfeld)
-mmodelModellname für die Übersetzung (z. B. llama3.2)
-ssrc_langAusgangssprachencode (wenn weggelassen, automatische Erkennung)

6.2 Beispiele

Übersetzung mit automatischer Erkennung der Ausgangssprache:

python transdoc.py -i input.docx -o output.docx -t en -k your_api_token

Übersetzung aus einer vorgegebenen Ausgangssprache:

python transdoc.py -i input.docx -o output.docx -t en -k your_api_token -s fr

Übersetzung mit einem bestimmten Modell:

python transdoc.py -i input.docx -o output.docx -t en -k your_api_token -m custom_model

7. Web-UI

Optionale Flask-basierte Oberfläche

Eine webbasierte Oberfläche verbessert die Bedienbarkeit, indem Benutzer Dateien hochladen und Übersetzungen erhalten können, ohne die Kommandozeile zu nutzen. Dies ist ein suggested Implementation mit Flask, die derzeit ungetestet ist.

7.1 Einrichtung

pip install flask werkzeug

7.2 Ausführen der Web-Anwendung

python app.py

Öffne einen Browser unter http://localhost:5000 und dann:

  • Datei hochladen: Wähle die zu übersetzende .docx-Datei
  • Ausgangssprache: Optional die Ausgangsspracheneingabe
  • Zielsprache: Gib die Zielspracheneingabe ein
  • Modell: Optional ein anderes Modell vorgeben
  • API-Token: Gib deinen Backend-Token ein
  • Übersetzen: Klicke auf die Schaltfläche zum Starten des Vorgangs
  • Herunterladen: Lade die übersetzte Datei nach Abschluss herunter
Hinweis: Die Web-UI ist eine suggested, ungeteste Implementation. Für produktive Einsätze ist der stabile CLI-Pfad zu bevorzugen.

8. Logging

Monitoring und Debugging-Ausgaben

Das Skript protokolliert detaillierte Informationen sowohl in die Konsole als auch in eine Datei namens translation_debug.log. Das Logging ist auf das DEBUG-Level eingestellt und erfasst alle Message-Level.

  • Konsolen-Ausgabe: Echtzeit-Feedback, während das Skript läuft
  • Protokolldatei: Eine persistente Aufzeichnung für die Fehlerbehebung

8.1 Logging-Level anpassen

Um die Ausführlichkeit der Konsolen-Ausgabe zu reduzieren, kann das Logging-Level im Skript angepasst werden:

console_handler.setLevel(logging.INFO)  # DEBUG zu INFO ändern

9. Fehlerbehebung

Häufige Probleme und Lösungen

9.1 Skript wird nicht ausgeführt

  • Konsolen-Ausgabe prüfen: Stelle sicher, dass das Logging-Level auf DEBUG steht.
  • Datei-Pfade prüfen: Stelle sicher, dass der Eingabedatei-Pfad korrekt ist und die Datei existiert.
  • ä prüfen: Stelle sicher, dass alle erforderlichen Python-Pakete installiert sind.
  • API-Token: Stelle sicher, dass dein API-Token korrekt ist und über die notwendigen Berechtigungen verfügt.

9.2 Spracherkennung schlägt fehl

  • Unzureichender Text: Das Dokument hat möglicherweise weniger als 50 Wörter. Verwende -s, um die Ausgangssprache manuell vorzugeben.

9.3 PDF-OCR ist langsam oder ungenau

  • Sprachpakete installieren: Stelle sicher, dass die richtigen Tesseract-Sprachpakete installiert sind.
  • OCR-Sprachen explizit setzen: Du kannst die automatische OCR-Sprachauswahl mit TRANSDOC_TESSERACT_LANGS überschreiben, z. B. export TRANSDOC_TESSERACT_LANGS=eng+deu.
  • Poppler-Tools prüfenn: Stelle sicher, dass pdftoppm oder pdftocairo in PATH vorhanden ist.

9.4 API- und Ausgabe-Probleme

  • API-Fehler: Stelle sicher, dass dein API-Token gültig ist, prüfen die Internetverbindung und verifiziere die API-URL im Skript.
  • Ausgabedatei wird nicht erstellt: prüfen deine Schreibberechtigungen und prüfen translation_debug.log auf aufgetretene Ausnahmen.
  • Web-Anwendungs-Probleme: Wenn sich die Web-Anwendung nicht starten lässt, ist der Port möglicherweise belegt. Ändere den Port in app.run(debug=True, port=5001).