top of page

Hoe ons spel in één week veertien talen leerde 🌍

Foto van schrijver: Marcel Dütscher
Marcel Dütscher
10 aug
3 minuten om te lezen

10 augustus 2026


Toen we begonnen sprak Blocks Beyond the Stars precies twee talen: Duits, omdat wij daar wonen, en Engels, omdat het internet Engels spreekt. Vandaag spreekt het veertien talen. Zo ging dat — en alles wat er onderweg kapotging. 🌍


Het begon met Francesco. Een paar weken geleden kwam er een pull request uit Italië: Francesco Quirino was begonnen het spel in het Italiaans te vertalen. Met de hand. Groep voor groep, te beginnen met alle 290 bloknamen en hun beschrijvingen. Op dat moment besefte we dat we talen serieus moesten nemen — want tot dan toe was de helft van de speltekst niet eens vertaalbaar. Meer dan 300 servermeldingen stonden vast in het Engels. Dus eerst ruimden we op, alleen maar zodat Francesco’s werk ergens kon landen.


Toen kwam de lastige vraag. Een taal met de hand vertalen kost weken. Wij zijn een gezin, geen lokalisatiestudio. Dus: machine — maar dan goed. We bouwden een klein hulpmiddel dat het taalbestand in stukken knipt, een taalmodel ze laat vertalen en daarna controleert: ontbreekt er een tekst? Is een plaatshouder als {0} verdwenen? Heeft het een sleutel verzonnen die niet bestaat? Zo ja, dan gaat het eruit. Pas toen het hulpmiddel betrouwbaar draaide, begonnen we talen toe te voegen: Nederlands, Braziliaans Portugees, Pools, Turks — en daarna Russisch, Oekraïens, Chinees, Japans en Koreaans.


Toon was moeilijker dan woorden. Een taalmodel vertaalt standaard beleefd en formeel. Maar een kinderspel dat je aanspreekt als een bankbrief is gewoon eng. Dus kreeg elke taal een eigen regel: Nederlands “je/jij”, Pools “ty”, Turks “sen”, Braziliaans “você”, Russisch “ты”, Japans です/ます, Koreaans 해요체. Het Nederlands kostte ons een extra ronde, want een IJ aan het begin van een woord krijgt twee hoofdletters — “IJzererts”, niet “Ijzererts”. Geen enkele machine vindt dat zelf; je vindt het door het resultaat te lezen.


En toen waren er de lege vakjes. We hadden Russisch helemaal vertaald, startten het spel — en het menu toonde niets dan rechthoekjes. Ons eigen lettertype, Rajdhani, heeft simpelweg geen Cyrillisch. Met Chinees, Japans en Koreaans werd het echt lastig: een compleet CJK-lettertype weegt zo’n 16 megabyte. Keer drie is dat bijna 50 MB — ondenkbaar voor een spel dat ook in een browser moet draaien. De oplossing: per taal een op maat gemaakt subsetlettertype bouwen met precies de tekens die in onze teksten voorkomen. 16 MB wordt 800 KB. In plaats van 50 MB groeit het spel met twee. 🔤


Wat het ons leerde. Vertalen is 20% vertalen en 80% al het andere: om te beginnen de teksten uit de code halen, lettertypen vinden, controleren of de zinnen nog op de knoppen passen (Duits is lang, maar Russisch is langer) en ervoor zorgen dat zelfs het foutvenster vertaald is — dat verschijnt voordat de taalbestanden zijn geladen. Die laatste melding moesten we veertien keer hardcoden. Het voelt verkeerd — maar het is de ene melding die je absoluut moet kunnen lezen.


Eerlijk blijven: de eerste ronde is machinevertaald. Het is goed, het is compleet, het is gevalideerd — maar het is niet gelezen door een moedertaalspreker. Dat zeggen we met opzet, in plaats van te doen alsof we veertien vertalers hebben. Precies daarom is Francesco’s Italiaanse werk nog steeds letter voor letter bewaard: ons hulpmiddel vult alleen gaten, het overschrijft nooit een menselijke vertaling. Waar een mens is geweest, wint de mens.


Spreek je een van deze talen? We horen graag je correcties, al is het er maar één. De repo heeft een vertaalgids die je stap voor stap door het bijdragen leidt — en als GitHub niets voor je is, vertel ons dan gewoon welke zin vreemd klinkt. Een moedertaalspreker ziet in vijf minuten meer dan wij in vijf uur. 🌍✨

Recente blogposts

Alles weergeven

Opmerkingen


Het is niet meer mogelijk om opmerkingen te plaatsen bij deze post. Neem contact op met de website-eigenaar voor meer info.
bottom of page