# Teksten vertalen met lokale AI-modellen [[TOC]] ## Lokaal vertalen: wanneer nuttig? Cloudvertaaldiensten zoals Google Translate of DeepL zijn uitstekend voor openbare teksten. Maar voor gevoelige inhoud, vertrouwelijke documenten of teksten onder geheimhouding is een lokale vertaling veiliger. Je data verlaat je computer niet. Typische toepassingen: - Juridische contracten vertalen - Medische rapporten - Interne bedrijfsdocumenten - Persoonlijke correspondentie - Code-commentaar en documentatie :::info title="Cloud blijft vaak nauwkeuriger" Lokale vertalingen zijn doorgaans iets minder nauwkeurig dan gespecialiseerde cloudvertalers zoals DeepL. Voor professionele publicaties of officiƫle documenten is menselijke eindredactie altijd aan te raden. ::: ## Installatie en basisgebruik Installeer eerst [Ollama](https://ollama.com) voor jouw besturingssysteem. Daarna haal je een meertalig model op. ### Een model kiezen voor vertaling ```bash ollama pull qwen3:8b ollama pull llama3.3:70b ollama pull gemma3:12b ``` In 2026 is `qwen3` een sterke keuze voor vertaalwerk: het ondersteunt naar eigen opgave meer dan 100 talen en dialecten en is uitstekend voor zowel Europese als Aziatische talen. Heb je weinig werkgeheugen, kies dan `qwen3:4b`; voor de hoogste kwaliteit en genoeg VRAM is `llama3.3:70b` of `gemma3:12b` een goede optie. :::tip title="Begin klein en schaal op" Test je vertaalprompt eerst met een klein model (`qwen3:4b`). Werkt de aanpak goed, schakel dan pas over naar een groter model voor de definitieve vertaling. Zo bespaar je tijd en geheugen tijdens het uitproberen. ::: ### Snelle vertaling via de terminal ```bash echo "The quick brown fox jumps over the lazy dog" | \ ollama run qwen3:8b "Vertaal de volgende Engelse tekst naar het Nederlands. Geef alleen de vertaling, geen uitleg:" ``` ## Python-script voor documentvertaling Met een klein Python-script vertaal je een heel bestand alinea voor alinea. Zo blijft de opmaak grotendeels behouden en geef je het model behapbare stukken. ```python import subprocess from pathlib import Path def vertaal_tekst(tekst, brontaal="Engels", doeltaal="Nederlands", model="qwen3:8b"): prompt = ( f"Vertaal de volgende {brontaal} tekst naar het {doeltaal}. " "Geef alleen de vertaling terug, geen uitleg of commentaar. " "Behoud de opmaak (alinea's, lijsten enzovoort) van de originele tekst. " f"Tekst om te vertalen: {tekst} Vertaling:" ) result = subprocess.run( ["ollama", "run", model], input=prompt, capture_output=True, text=True, timeout=180, ) return result.stdout.strip() def vertaal_bestand(input_pad, output_pad, brontaal="Engels", doeltaal="Nederlands"): tekst = Path(input_pad).read_text(encoding="utf-8") alineas = tekst.split(" ") vertaalde_alineas = [] for i, alinea in enumerate(alineas): if alinea.strip(): print(f"Alinea {i + 1}/{len(alineas)} vertalen...") vertaling = vertaal_tekst(alinea, brontaal, doeltaal) vertaalde_alineas.append(vertaling) else: vertaalde_alineas.append("") vertaald_document = " ".join(vertaalde_alineas) Path(output_pad).write_text(vertaald_document, encoding="utf-8") print(f"Vertaling opgeslagen: {output_pad}") ``` ## Vertaalstijlen specificeren De kwaliteit van vertalingen verbetert sterk wanneer je de gewenste stijl benoemt. Voeg een van deze instructies toe aan je prompt. **Formele zakelijke vertaling** ```python prompt = "Vertaal naar formeel zakelijk Nederlands. Gebruik de u-vorm." ``` **Technische documentatie** ```python prompt = "Vertaal naar Nederlands. Behoud technische termen in het Engels tenzij er een gangbaar Nederlands equivalent is." ``` **Toegankelijke tekst** ```python prompt = "Vertaal naar eenvoudig Nederlands. Vermijd jargon. Schrijf op B1-niveau." ``` ## Kwaliteitscontrole Automatische vertaling is nooit foutloos. Je kunt het model zelf een eerste controle laten doen. ```python def controleer_vertaling(origineel, vertaling, model="qwen3:8b"): prompt = ( "Beoordeel de kwaliteit van deze vertaling. " "Geef een score van 1 tot 10 en noem maximaal 3 verbeterpunten. " f"Origineel: {origineel[:500]} " f"Vertaling: {vertaling[:500]} Beoordeling:" ) result = subprocess.run( ["ollama", "run", model], input=prompt, capture_output=True, text=True, timeout=60, ) return result.stdout.strip() ``` :::tip title="Twee modellen voor kritieke teksten" Laat voor belangrijke vertalingen twee verschillende modellen onafhankelijk vertalen en vergelijk de resultaten. Grote afwijkingen wijzen op onduidelijkheid in het origineel of op een lastig fragment dat menselijke revisie verdient. ::: ## Ondersteunde taalcombinaties Moderne open-source LLM's ondersteunen tientallen talen. De ondersteuning loopt grofweg als volgt op. | Talen | Kwaliteit | | --- | --- | | Nederlands, Engels, Duits, Frans, Spaans, Portugees | Uitstekend | | Italiaans, Pools, Tsjechisch, Russisch | Goed | | Chinees, Japans, Koreaans | Goed (qwen3 aanbevolen) | | Arabisch, Hindi | Wisselend, verificatie aanbevolen | :::warn title="Controleer zeldzamere talen" Voor minder verbreide talen kan de kwaliteit sterk verschillen per model en per zin. Laat zulke vertalingen altijd nakijken door iemand die de taal beheerst voordat je ze gebruikt. ::: :::faq ### Hoe verhoudt lokale AI-vertaling zich tot DeepL? DeepL is meestal nauwkeuriger en vloeiender voor Europese talen. Lokale AI-vertaling is goed genoeg voor intern gebruik, ruwe concepten of situaties waarin privacy de hoogste prioriteit heeft. ### Kan ik hele PDF's vertalen? Ja. Met `pdftotext` (onderdeel van Poppler) haal je de tekst uit een PDF en verwerk je die via het vertaalscript. De originele opmaak van de PDF gaat daarbij wel verloren. ### Hoe snel is lokaal vertalen? Op een moderne laptop op de processor haal je grofweg 200 tot 500 woorden per minuut. Met een geschikte GPU loopt dat op tot 1000 tot 3000 woorden per minuut, afhankelijk van model en hardware. ### Kan ik ook code-commentaar vertalen? Ja, maar geef in de prompt duidelijk aan dat het om commentaar gaat en dat de coderegels zelf niet vertaald mogen worden. ### Zijn er goede gratis alternatieven als ik toch cloud wil gebruiken? LibreTranslate is een open-source cloudvertaler die je zelf kunt hosten. Dat geeft privacy zonder de complexiteit van een lokaal LLM. ### Welk model kan ik het beste kiezen? Voor de meeste gebruikers is `qwen3:8b` een goede balans tussen kwaliteit en geheugengebruik. Voor zwaardere hardware geven grotere modellen zoals `llama3.3:70b` doorgaans iets vloeiendere resultaten. :::