Mittelstufe 11 Min.Übersetzung

Dokumente lokal übersetzen: die Alternative zu DeepL

Wenn Sie einen Vertrag, einen Finanzbericht oder eine Personalakte in DeepL oder ChatGPT einfügen, senden Sie dieses Dokument an Server, die Sie nicht kontrollieren. Lokale KI-Übersetzung löst dieses Problem: Ein mehrsprachiges LLM läuft auf Ihrem Rechner, und keine Daten verlassen ihn. Dieser Leitfaden zeigt, welche Modelle Sie wählen sollten, wie Sie die Formatierung der Dateien erhalten und wie Sie Dutzende von Dokumenten mit einem einfachen Ollama-Skript stapelweise übersetzen.

Von Marie L.·Aktualisierung 2026-08-27·Unter Windows, macOS und Linux getestet

#Warum Sie Ihre Dokumente nicht an DeepL senden sollten

DeepL und Google Translate sind hervorragend, aber ihr Geschäftsmodell basiert auf der Cloud: Ihr Text wird über ihre Server übertragen und kann je nach Angebot gespeichert oder zur Verbesserung der Modelle verwendet werden. Bei einer harmlosen E-Mail spielt das keine Rolle. Bei einem Vertrag unter einer Geheimhaltungsvereinbarung (NDA), einem Patent im Anmeldeverfahren, einer Bilanz oder personenbezogenen Daten von Beschäftigten ist das ein konkretes rechtliches und wettbewerbliches Risiko.

Lokale KI-Übersetzung verändert die Ausgangslage: Das Modell wird auf Ihr Laufwerk heruntergeladen und auf Ihrer CPU oder GPU ausgeführt. Keine Netzwerkanfragen, kein Konto, keine Mengenbegrenzung. Sie können einen ganzen Ordner mit vertraulichen Dokumenten übersetzen, ohne dass ein Byte Ihren Rechner verlässt – auch offline, im Flugzeug oder in einem isolierten Netzwerk.

i
Das entscheidende Argument: Compliance
Für eine Anwaltskanzlei, eine Personalabteilung oder ein Team im Gesundheitswesen beseitigt die lokale Übersetzung sämtliche DSGVO-Fragen zur Datenübermittlung an einen Auftragsverarbeiter. Das Dokument verlässt niemals den Unternehmensbereich.
Datenschutz
Verträge, Patente, medizinische oder Personaldaten bleiben auf Ihrer Maschine.
Keine Nutzungskosten
Kein Abonnement und keine Abrechnung pro Zeichen: Übersetzen Sie 10 oder 10.000 Seiten zum gleichen Preis.
Hors-ligne
Funktioniert ohne Internetverbindung, nützlich auf einem isolierten Rechner oder unterwegs.
Unbegrenztes Volumen
Keine monatlichen Quoten oder Rate-Limitierung wie bei Cloud-APIs.

#Welche lokalen Modelle wirklich gut übersetzen

Das RAG-Local-Kit

Ihre Dokumente, Ihre KI: ein zuverlässiges lokales RAG für Ihre PDFs, Notizen und E-Mails – ohne Daten in die Cloud zu senden.

  • Lebenslanger Online-Zugang
  • PDF + Dateien
  • Erstattung binnen 30 Tagen

Nicht alle LLMs sind beim Übersetzen gleich gut. Ein guter lokaler Übersetzer muss auf einem umfangreichen mehrsprachigen Korpus trainiert worden sein und die Feinheiten des Französischen beherrschen. Im Jahr 2026 heben sich einige Modellfamilien für den selbst gehosteten Einsatz deutlich ab.

Qwen 3.5 9B
Ausgezeichnet bei mehrsprachigen Aufgaben, sehr gut im Französischen, geht gut mit Nuancen und Fachvokabular um. ≈6,6 GB in Q4, 256k Kontext, Apache-2.0-Lizenz: der beste Kompromiss zwischen Qualität und Ressourcenbedarf im Jahr 2026. Wechseln Sie zu Qwen 3.8 27B (≈18 GB), wenn die Qualität nicht ausreicht.
Gemma 4 12B
Flüssige und natürliche Übersetzungen, sorgfältige französische Zeichensetzung. Multimodal, jetzt unter der Apache-2.0-Lizenz (Gemma wechselte 2026 zu Apache 2.0). ≈7,6 GB in Q4, läuft problemlos auf einer GPU mit 12–16 GB oder einem Mac mit gemeinsamem Speicher.
Qwen 3.5 4B
Das kleine mehrsprachige Standardmodell für 2026: nur ≈3,4 GB, läuft überall – sogar auf der CPU – und übersetzt für seine Größe schon bemerkenswert gut. Apache 2.0.
Mistral Small 24B
Hervorragend auf Französisch, schnell, ≈14 GB in Q4. Ein solider Allrounder und eine sehr gute Wahl, um große Mengen auf einer GPU mit 16 GB zu verarbeiten.
Qwen 3.6 35B-A3B
Dank seiner MoE-Architektur erreicht es eine Qualität nahe der von Cloud-Modellen und ist inzwischen schon ab 32 GB nutzbar (≈23 GB in Q4, RTX 4090 oder Mac mit viel vereinheitlichtem Arbeitsspeicher). Anspruchsvollen Übersetzungen vorbehalten.
→
Wo beginnen?
Wenn Sie unsicher sind, starten Sie Qwen 3.5 9B in Q4_K_M. Es bietet das beste Verhältnis von Qualität zu VRAM-Bedarf für Übersetzungen FR ↔ EN/ES/DE/IT auf einer GPU mit 8–12 GB. Wechseln Sie erst zu Qwen 3.8 27B, wenn Ihnen die Qualität nicht ausreicht.

Spezialisierte Übersetzungsmodelle wie NLLB oder Opus-MT gibt es ebenfalls, und sie sind sehr leichtgewichtig. Ein aktuelles Allzweck-LLM übertrifft sie jedoch oft bei langen Texten und bei der Berücksichtigung des Kontexts (Sprachregister, Fachterminologie, Kohärenz eines gesamten Dokuments).


#Voraussetzungen und Installation

Die Grundlage ist klassisch: Ollama als Inferenz-Engine, ein mehrsprachiges Modell und Python für die Skripte zur Dateiverarbeitung. Ollama lauscht standardmäßig auf http://localhost:11434.

Ollama installiert
Der Daemon, der Modelle herunterlädt und ausführt. Siehe die Installationsanleitung, wenn dies noch nicht erfolgt ist.
Eine GPU mit ausreichend Leistung
Eine RTX 3060 mit 12 GB kann Qwen 3.5 9B in Q4 (~6,6 GB) problemlos ausführen. Das Modell läuft auch auf einer CPU, allerdings langsamer.
Python 3.10+
Um DOCX, PDF und Markdown zu verarbeiten und die API von Ollama aufzurufen.
Terminal
# Récupérer un modèle multilingue adapté à la traduction
ollama pull qwen3.5:9b

# Vérifier qu'il répond
ollama run qwen3.5:9b "Traduis en anglais : Le contrat prend effet à sa signature."
Terminal
# Dépendances Python pour les formats de documents
pip install ollama python-docx pypdf markdown-it-py

#Erster Test der Übersetzung

Bevor Sie automatisieren, überprüfen Sie die Qualität anhand eines repräsentativen Ausschnitts. Der Schlüssel zu einer guten lokalen Übersetzung liegt im Systemprompt: Er definiert die Rolle, die Zielsprache und vor allem die Anweisung, nichts hinzuzufügen.

traduire.py
import ollama

MODELE = "qwen3.5:9b"

SYSTEME = (
    "Tu es un traducteur professionnel. Traduis le texte fourni de "
    "{source} vers {cible}. Conserve le sens, le registre et la "
    "terminologie technique. Ne commente pas, n'ajoute rien : "
    "renvoie uniquement la traduction."
)

def traduire(texte, source="français", cible="anglais"):
    reponse = ollama.chat(
        model=MODELE,
        messages=[
            {"role": "system", "content": SYSTEME.format(source=source, cible=cible)},
            {"role": "user", "content": texte},
        ],
        options={"temperature": 0.2},
    )
    return reponse["message"]["content"].strip()

if __name__ == "__main__":
    extrait = "Le présent contrat prend effet à la date de sa signature par les deux parties."
    print(traduire(extrait))
→
Niedrige Temperatur
Beim Übersetzen liefert eine Temperatur von 0,1 bis 0,3 originalgetreuere und besser reproduzierbare Ergebnisse. Ein hoher Wert verleitet das Modell dazu, Inhalte „auszuschmücken“ und umzuformulieren, was nicht erwünscht ist.

#Die Formatierung beibehalten (DOCX, PDF, Markdown)

Die Übersetzung von Rohtext ist einfach; die Erhaltung der Formatierung eines echten Dokuments ist dagegen schwieriger. Der richtige Ansatz besteht nicht darin, das gesamte Dokument dem Modell zu übergeben, sondern darin, jeden Textabschnitt an seiner Stelle zu übersetzen und die Struktur unverändert zu lassen.

#Word-Dateien (DOCX)

python-docx ermöglicht den Zugriff auf jeden Absatz und jede Tabellenzelle. Der Text jedes „Run“ wird unter Beibehaltung des Stils übersetzt, anschließend wird die Datei neu geschrieben. Das Layout, die Überschriften und die Tabellen bleiben erhalten.

traduire_docx.py
from docx import Document
from traduire import traduire

def traduire_docx(entree, sortie, cible="anglais"):
    doc = Document(entree)

    for para in doc.paragraphs:
        if para.text.strip():
            para.text = traduire(para.text, cible=cible)

    for table in doc.tables:
        for ligne in table.rows:
            for cellule in ligne.cells:
                if cellule.text.strip():
                    cellule.text = traduire(cellule.text, cible=cible)

    doc.save(sortie)
    print(f"Traduit : {sortie}")

if __name__ == "__main__":
    traduire_docx("contrat.docx", "contrat_en.docx")
!
Bei mehreren Text-Runs kann die Formatierung verloren gehen
Das Überschreiben von para.text ersetzt die Runs und kann feine Formatierungen verlieren lassen, etwa Fettdruck mitten in einem Satz. Für ein einwandfreies Ergebnis bei aufwendig formatierten Dokumenten übersetzen Sie Run für Run statt den gesamten Absatz – allerdings ist diese Aufteilung für das Modell weniger natürlich.

#Markdown

Markdown ist das Format, das sich am einfachsten sauber übersetzen lässt: Es genügt, das Modell anzuweisen, die Syntax beizubehalten. Überschriften, Listen, Links und Codeblöcke bleiben intakt, wenn der Prompt dies verlangt.

traduire_md.py
import ollama

SYSTEME_MD = (
    "Traduis ce document Markdown en {cible}. Conserve EXACTEMENT la "
    "syntaxe Markdown : titres (#), listes, liens, tableaux et blocs "
    "de code. Ne traduis PAS le contenu des blocs de code. Renvoie "
    "uniquement le Markdown traduit."
)

def traduire_markdown(chemin, sortie, cible="anglais"):
    texte = open(chemin, encoding="utf-8").read()
    reponse = ollama.chat(
        model="qwen3.5:9b",
        messages=[
            {"role": "system", "content": SYSTEME_MD.format(cible=cible)},
            {"role": "user", "content": texte},
        ],
        options={"temperature": 0.2},
    )
    open(sortie, "w", encoding="utf-8").write(reponse["message"]["content"])

traduire_markdown("README.md", "README_en.md")

#PDF

PDF ist der schwierigste Fall: Es ist ein Format für die Darstellung, nicht für den Inhalt. Der Text wird mit pypdf extrahiert, übersetzt und anschließend in einem neuen Dokument ausgegeben (häufig einem DOCX oder einem neu erzeugten PDF). Das exakte Layout eines PDFs nachzubilden, lohnt sich selten; streben Sie ein lesbares Dokument statt einer pixelgenauen Kopie an.

traduire_pdf.py
from pypdf import PdfReader
from docx import Document
from traduire import traduire

def pdf_vers_docx_traduit(entree, sortie, cible="anglais"):
    lecteur = PdfReader(entree)
    doc = Document()

    for page in lecteur.pages:
        texte = page.extract_text() or ""
        for paragraphe in texte.split("\n\n"):
            if paragraphe.strip():
                doc.add_paragraph(traduire(paragraphe, cible=cible))

    doc.save(sortie)

pdf_vers_docx_traduit("rapport.pdf", "rapport_en.docx")

#Stapelübersetzung mit Ollama

Der größte Vorteil des lokalen Betriebs ist die Verarbeitung großer Mengen ohne Rechnung. Ein Skript, das einen Ordner durchläuft und jede Datei übersetzt, verwandelt Ihren Rechner in einen Übersetzungsdienst für die Stapelverarbeitung. Hier ist ein Skript, das alle .docx-Dateien eines Verzeichnisses verarbeitet.

batch_traduction.py
import sys
from pathlib import Path
from traduire_docx import traduire_docx

def traduire_dossier(dossier, cible="anglais", suffixe="_traduit"):
    dossier = Path(dossier)
    fichiers = list(dossier.glob("*.docx"))
    print(f"{len(fichiers)} fichier(s) à traduire\n")

    for i, fichier in enumerate(fichiers, 1):
        if suffixe in fichier.stem:
            continue  # éviter de retraduire une sortie
        sortie = fichier.with_name(f"{fichier.stem}{suffixe}.docx")
        print(f"[{i}/{len(fichiers)}] {fichier.name}")
        traduire_docx(fichier, sortie, cible=cible)

    print("\nTerminé.")

if __name__ == "__main__":
    dossier = sys.argv[1] if len(sys.argv) > 1 else "."
    traduire_dossier(dossier)
Terminal
# Traduire tous les .docx d'un dossier en anglais
python batch_traduction.py ./documents_a_traduire
→
Das Modell geladen halten
Stellen Sie bei einem großen Stapel OLLAMA_KEEP_ALIVE ein (z. B. export OLLAMA_KEEP_ALIVE=30m), damit Ollama das Modell zwischen zwei Dateien nicht entlädt. Das erneute Laden in den VRAM kostet jedes Mal mehrere Sekunden.

#Qualität der Übersetzungen verbessern

Ein lokaler LLM übersetzt standardmäßig gut, aber einige Einstellungen bringen das Ergebnis von „korrekt“ auf „veröffentlichbar“, besonders bei beruflichen Texten.

  1. 01
    Ein Glossar bereitstellen
    Fügen Sie dem Systemprompt ein Glossar der Fachbegriffe und ihrer verbindlichen Übersetzungen hinzu (offizieller Unternehmensname, Produktnamen, Akronyme). Das Modell wird Ihre Terminologie einhalten, statt eigene Begriffe zu erfinden.
  2. 02
    Intelligent aufteilen
    Übersetzen Sie absatzweise oder abschnittsweise, nicht Satz für Satz: Das Modell braucht Kontext, um grammatische Kongruenz, Pronomenbezüge und das Sprachregister richtig zu berücksichtigen.
  3. 03
    Den Kontext des Dokuments angeben
    Geben Sie in dem Prompt die Art des Textes („Handelsvertrag“, „Technische Anleitung“, „interne E-Mail“) genau an. Der Ton und das Vokabular passen sich entsprechend an.
  4. 04
    Kritische Passagen erneut lesen
    Für einen Vertrag oder ein rechtliches Dokument bleibt eine menschliche Überprüfung der sensiblen Klauseln unerlässlich — der lokale Betrieb bietet Ihnen die Vertraulichkeit, nicht die Unfehlbarkeit.
  5. 05
    Bei Bedarf auf ein größeres Modell umsteigen
    Wenn die Qualität stagniert, wechseln Sie von Qwen 3.5 9B zu Qwen 3.8 27B (denken Sie daran, das Schlussfolgern auf „low“ einzustellen: Standardmäßig denkt das Modell übermäßig lange nach, was beim Übersetzen unnötig ist), oder sogar zu einem MoE wie Qwen 3.6 35B-A3B. Der Gewinn ist bei langen Sätzen und bei terminologischen Feinheiten deutlich.

#Fehlerbehebung

Das Modell fügt Kommentare hinzu
Betonen Sie die Anweisung „Gib NUR die Übersetzung zurück“ stärker und senken Sie die Temperatur. Manche Modelle stellen „Hier ist die Übersetzung:“ voran – entfernen Sie diesen Zusatz bei Bedarf in der Nachverarbeitung.
Das Modell übersetzt in die falsche Sprache
Nennen Sie die Zielsprache im Prompt ausdrücklich und geben Sie ein Beispiel. Bei einem kurzen Text kann ein Modell die falsche Sprache wählen.
Die DOCX-Formatierung geht verloren
Durch das Ersetzen von para.text werden die Runs zu einem einheitlichen Text zusammengeführt. Übersetzen Sie stark formatierte Dokumente Run für Run.
Langsame Übersetzung bei großem Volumen
Prüfen Sie, ob das Modell in den VRAM passt (andernfalls CPU-Offload = langsame Verarbeitung). Verringern Sie die Modellgröße oder verwenden Sie OLLAMA_KEEP_ALIVE.
Markdown-Codeblöcke werden übersetzt
Betonen Sie im Prompt: „Übersetzen Sie den Inhalt der Codeblöcke nicht“. Alternativ extrahieren Sie die Blöcke vor der Übersetzung und fügen sie danach wieder ein.
Zu langer Kontext wird gekürzt
Ein sehr großes Dokument überschreitet das Kontextfenster. Teilen Sie es in Abschnitte auf und übersetzen Sie jeden Abschnitt einzeln.

#Weiterführende Informationen

Lokale KI-Übersetzung baut auf einer passend gewählten Ollama-Grundlage auf. Diese Anleitungen auf dieser Website ergänzen die Einrichtung:

Ollama installieren
Zum Installieren der Inferenz-Engine, falls noch nicht geschehen.
Q4, Q5, Q8: Welche Quantisierung wählen?
Um je nach Ihrer GPU zwischen Übersetzungsqualität, Geschwindigkeit und VRAM-Bedarf abzuwägen.
n8n + Ollama: Automatisierung mit lokaler KI
Um die Übersetzung in einen No-Code-Workflow zu integrieren (eingehende E-Mails, abgelegte Dateien usw.).
Hat Ihnen dieser Guide geholfen?

Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.