Splync Blog Heeft 42 Talen
Dit is het 23ste artikel op mijn blog voor Splync, een gedeelde budgettracker voor stellen, vrienden en families. Je vraagt je misschien af hoe ik elk bericht in 42 talen publiceer terwijl ik een solo-ingenieur ben. Zoals de disclaimer bovenaan elk artikel zegt, wordt deze website automatisch vertaald in meerdere talen met behulp van software die ik zelf heb gemaakt. Om duidelijk te zijn: ik schrijf niet handmatig zelfs maar één zin in een andere taal dan Engels. Daarom vraag ik lezers vriendelijk om bij twijfel over de betekenis de originele Engelse versie te raadplegen. Toch geloof ik, na vele pogingen en verbeteringen in de vertaalpipeline, dat de algehele vertaalkwaliteit redelijk goed is. In dit artikel deel ik wat mijn software doet om de Splync-blog meertalig te maken.
Python en OpenAI API Doen Het Samen
Ik begin altijd met het schrijven van elk artikel in eenvoudig Engels, inclusief de SEO-gerelateerde metadata. Daarna stuurt mijn Python-script de Engelse tekst naar de OpenAI API, samen met een prompt en een klein referentiebestand. Op de servers van OpenAI leest ChatGPT-4o het verzoek en retourneert het vertaalde artikel — bijvoorbeeld de Arabische versie — in JSON-formaat. Zodra mijn MacBook die vertaling ontvangt, stuurt het script onmiddellijk een nieuw verzoek, dit keer voor Bengali. Het script doorloopt automatisch alle 42 doeltalen. Aan het einde van het proces heeft mijn computer 42 vertaalde JSON-bestanden. Een ander Python-script voegt elke vertaling in een HTML-sjabloon in en genereert 42 HTML-bestanden in minder dan een seconde. Alle bestanden worden geüpload naar de server waar deze blog wordt gehost, en elke taalversie wordt in zijn eigen directory geplaatst. Ten slotte werkt een server-side Python-script de artikelindex en de "Volgende post"-links bij, zodat de navigatie in elke taal consistent blijft. Met het originele Engelse artikel in platte tekst geschreven, duurt het hele proces meestal 5 minuten of minder. Wanneer ik wijzigingen moet aanbrengen, update ik meerdere HTML-bestanden tegelijk met behulp van server-side Python-scripts.
Wat is API
Als je niet bekend bent met technische termen, vraag je je misschien af hoe mijn computer in de eerste plaats "praat" met de server van OpenAI. Het antwoord is iets dat een API wordt genoemd, Application Programming Interface. Je kunt een API zien als een boodschapper tussen twee programma's: het ene programma stuurt een verzoek en het andere stuurt een reactie terug. Bijvoorbeeld, mijn Python-script stuurt een bericht zoals, "Vertaal dit artikel naar het Duits." OpenAI ontvangt dat bericht via de API, bereidt de vertaling voor en stuurt het resultaat terug. Het werkt net als een bestelling in een restaurant: je vertelt de ober wat je wilt, de keuken bereidt het en de ober brengt het terug naar je tafel. En waarom heb je überhaupt een ober nodig? Omdat je niet de keuken inloopt of direct met de chef praat — je weet niet hoe de keuken werkt, en dat hoeft ook niet. Je zou tegen de ober kunnen zeggen: "Mag ik een cheeseburger?" en de ober kan roepen: "Bestelling klaar! T21, Chihuahua!" in een compleet ander formaat. Een API speelt dezelfde rol. Het verbindt twee verschillende systemen zonder dat ze elkaars interne taal of workflow hoeven te begrijpen.
Waarom Heb Ik OpenAI API Nodig
Nu we hebben gezien wat een API is, hier is waarom ik er daadwerkelijk op vertrouw voor deze blog. Praktisch gezien weet ik hoe ik zelf met ChatGPT kan "praten" — maar ik moet 42 talen verwerken. 42 keer een ober roepen zou vermoeiend zijn (het programma slaat het vertalen van Engels naar Engels over, maar zet de tekst nog steeds om in JSON). Het gebruik van de OpenAI API laat mijn Python-script al die verzoeken automatisch verzenden, waardoor ik repetitief werk bespaar zodat ik me op andere dingen kan concentreren. Ik ben een solo-ontwikkelaar, dus ik moet mijn tijd zo efficiënt mogelijk gebruiken. Wanneer ik een taak zie die repetitief is en duidelijke regels heeft, automatiseer ik het. Het resultaat is meestal een proces dat een miljoen keer sneller is en volledig foutloos. Daarom is automatisering via de API essentieel — het stelt mijn script in staat om alle 42 "bestellingen" onmiddellijk en betrouwbaar te plaatsen.
Waarom 42 Talen
Technisch gezien zou ik veel meer talen kunnen toevoegen; het zou gewoon een paar minuten langer duren om uit te voeren terwijl ik de afwas doe. Maar ik hou persoonlijk van het nummer 42, het "Antwoord op de Ultieme Vraag over het Leven, het Universum en Alles" uit het boek van Douglas Adams. Naast mijn gehechtheid aan het nummer 42, kan het toevoegen van zeer kleine talen riskant zijn, omdat AI-vertalingen mogelijk minder betrouwbaar worden voor talen met beperkte trainingsgegevens.
Temperatuur van ChatGPT 4o
Toen ik voor het eerst experimenteerde met deze meertalige vertaalmethode, waren de resultaten redelijk maar niet perfect. Sommige zinnen werden verkeerd vertaald, waren te letterlijk, of subtiel misleidend in bepaalde talen. Ik was ook bezorgd over het onbedoeld genereren van uitdrukkingen die in bepaalde culturele contexten ongepast of kwetsend kunnen zijn. En natuurlijk wilde ik niet dat mijn vertalingen robotachtig of mechanisch overkwamen. Een van de belangrijkste factoren achter de vertaalkwaliteit is de temperatuursinstelling — een parameter die bepaalt hoe "creatief" of "strikt" de AI moet zijn. Een hoge temperatuur maakt de AI fantasierijker, maar ook onvoorspelbaarder. Een lage temperatuur zorgt ervoor dat het dicht bij de oorspronkelijke betekenis blijft, maar kan soms star aanvoelen. Het kostte veel vallen en opstaan om de juiste balans te vinden: laag genoeg om nauwkeurig te zijn, maar niet zo laag dat de tekst levenloos werd. Na veel experimenten bleek dat temperatuur = 0.8 het beste paste bij de behoeften van deze blog: nauwkeurig genoeg om trouw te blijven aan het Engelse origineel, maar flexibel genoeg om natuurlijk te klinken in andere talen.
ChatGPT 5.x Ondersteunt Geen Temperatuur
Nieuwere modellen zoals ChatGPT 5 en 5.1 ondersteunen helemaal geen temperatuursinstellingen meer — de parameter is verwijderd en vervangen door concepten zoals redenering en inspanning, die bepalen hoe het model denkt in plaats van hoe "creatief" het wordt. Met andere woorden, ChatGPT 4o gaf me een fysieke knop waarmee ik de vertaalstijl kon afstemmen, maar de 5.x-familie volgt een geheel andere filosofie. Als je de nieuwste model terloops vraagt om "dit te vertalen met temperatuur = 0.8," kan het proberen te gedragen alsof zo'n instelling nog bestaat, maar intern is de parameter verdwenen. Het model benadert simpelweg de intentie. Terwijl OpenAI hun modellen blijft updaten, kan ik op een dag mijn vertaalpipeline aanpassen. Voor nu blijft ChatGPT 4o mijn keuze voor meertalige vertalingen — niet alleen omdat het context goed begrijpt in veel talen, maar ook omdat de API-prijzen redelijk zijn voor een solo-ontwikkelaar zoals ik. In feite kan 4o een van de meest geliefde modellen in de geschiedenis van OpenAI worden.
Workers van OpenAI API
Een geweldig voordeel van de OpenAI API — vergeleken met het direct gebruiken van ChatGPT in een browser — is dat je meer dan één ChatGPT "worker" tegelijkertijd kunt gebruiken. Wanneer ik vertaalverzoeken voor 42 talen verstuur, doe ik dat niet één voor één in een trage rij. In plaats daarvan kan de API veel verzoeken parallel verwerken, alsof ik ineens een kamer vol vertalers heb ingehuurd die allemaal tegelijk beginnen te werken. Mijn Python-script beheert de workflow als een kleine productielijn: het bereidt het Engelse artikel voor, stuurt de verzoeken, wacht op de reacties, en verwerkt de resultaten in JSON-bestanden. Ondertussen draaien de OpenAI-servers meerdere model-instanties tegelijkertijd, elk die een andere taal parallel vertaalt. Dit is iets dat de ChatGPT-website of -app niet kan doen — die interfaces geven je één model, één gesprek, één taak tegelijk. Maar met de API kun je je werkbelasting uitbreiden zo breed als je script toestaat. Voor een solo-ontwikkelaar zoals ik voelt dit als het hebben van een klein team van de slimste en ego-loze assistenten. Het hangt deels af van de internetsnelheid, maar ik stel meestal het aantal workers in op 12.
Wat Ik Doe om Mijn Blog Meertalig te Maken Is Afwassen
Ik werkte vroeger als afwasser in de studentenmens toen ik wiskunde studeerde aan de Universiteit van Kyoto. Hoewel de betaling ongeveer 5 USD per uur was, vond ik repetitief handwerk altijd leuk na enkele uren — of soms dagen — van intense intellectuele concentratie. Later, toen ik in een knoflookfabriek in Hokkaido werkte, was mijn taak simpelweg duizenden witte knoflookbollen te polijsten zodat ze helderder op de transportband zouden lijken. Acht uur per dag — volledige focus, gelijkmatig ritme. Het was vreemd genoeg bevredigend. Nu, terug uit die herinneringen, doe ik momenteel intellectueel werk — software schrijven, systemen ontwerpen, deze artikelen samenstellen. Maar de balans is niet veranderd. Als je me vraagt hoe ik erin slaag om zelf een blogartikel in 42 talen te publiceren, is het eerlijke antwoord: ik doe het door af te wassen.