Automatiseren met de nodige liefde
Wardrome is Italiaans geboren, vele jaren geleden, toen het nog een browsergame was en het universum zich accenten, inflexies en die bepaalde Mediterraanse teatraliteit kon veroorloven die geen toestemming vraagt. Toen werd het Engels, omdat als je besluit het hof te verlaten, je de taal van de langste straat moet leren spreken. Deze keer heb ik ervoor gekozen om direct in het Engels te beginnen, zowel voor de site als voor het spel. Niet om de oorsprong te verraden, maar voor strategische consistentie: als je een interstellaire vloot bouwt, kun je niet in dialect denken.
Toen keek ik naar de cijfers. Duizenden bezoekers uit China. Een Italië dat blijft lezen, stil maar aanwezig. Het was geen romantische kwestie, het was een kwestie van verantwoordelijkheid. Als iemand hierheen komt, de halve digitale planeet oversteekt om te lezen wat je schrijft, is het minste wat je kunt doen hem niet te dwingen zichzelf te vertalen. Het is een dienstverlenende geest. Zo is de Italiaanse versie ontstaan, bijna als een terugkeer naar huis, en daarna de Chinese, als een brug naar het oosten.
Ghost is echter niet meertalig. Niet echt. Het kan doen alsof, maar het is daar niet voor gemaakt. En dus moest ik twee dingen doen. De eerste was het thema opnieuw maken. Geen cosmetische wijziging, geen pleister. Ik heb de site geleerd dat de wereld niet één taal spreekt. Ik heb de statische delen van de interface vertaald, een taalswitch toegevoegd, aparte indexen voor elke versie gemaakt, routingregels opgelegd zoals /it/, en filters op tags en zoekopdrachten ingesteld zodat een Italiaanse lezer niet plotseling in het Engels terechtkomt. Het was complex, omdat elk detail van de interface een eentalige wereld veronderstelt. Je moet het geduldig uit elkaar halen en opnieuw opbouwen zonder het te laten instorten.
Het tweede deel was stiller en mechanischer: de automatisering. Ik heb een extern systeem gebouwd dat alleen via de Ghost API's werkt. Het raakt de kern niet aan, het vervuilt het niet. Het is een nachtcron, voor nu. Wanneer iedereen slaapt, bekijkt het de Engelse artikelen, controleert of er al een versie met de tags it of zh bestaat, en als dat niet het geval is, maakt het die aan. Het vertaalt de inhoud, vertaalt de titels, de meta beschrijvingen, zelfs de alt-teksten van de afbeeldingen. Het vertaalt interne links door gebruik te maken van een eenvoudige maar beslissende zaak: de sprekende slugs. Als het Engels about is, is het Italiaans it-about, het Chinees zh-about. Zo is de vervanging deterministisch, er is geen mapping-database nodig, geen zwarte magie. Het is schone architectuur.
In het proces worden ook de hreflang-tags gegenereerd, inclusief de x-default, en worden ze in het daarvoor bestemde veld van de post geïnjecteerd. Elk artikel weet wie zijn broers en zussen in andere talen zijn. Canonical en relaties zijn consistent. Google meldt geen duplicaties, het lijkt niet geïrriteerd. De echte resultaten zullen met de tijd komen, maar tenminste de opzet is correct.
Voor de vertaling gebruik ik een complexe en gedisciplineerde prompt. Daarin zitten de termen van de setting, de woorden die niet verbanaliseerd mogen worden, de Wardrome Technocracy, de consistentie van de toon. Het model is gpt-4o-mini, voldoende, respectvol, sober genoeg om niet alles in retoriek te veranderen. Het werkt goed. En toch, als het gaat om de literaire stukken, de meer narratieve delen van de setting, kom ik zelf in actie. Vooral in het Italiaans. Niet omdat de AI schokkend verkeerd is, maar omdat de epiek een ritme heeft dat niet volledig gedelegeerd kan worden. De automatisering assisteert, vervangt niet. De vloot vertrekt, maar iemand moet nog steeds de koers controleren.
Het Chinees is vereenvoudigd. De interpunctie wordt aangepast door het model, en het thema heeft zonder typografische problemen standgehouden. Ik heb nog geen specifieke optimalisaties voor Baidu gedaan; voor nu ben ik geïnteresseerd dat degenen die komen zonder wrijving kunnen lezen. De nieuwsbrief blijft in het Engels. Het heeft technische kritieken die een ander niveau van interventie vereisen, en ik sluit niet uit dat ik ze aanpak. Maar alles op zijn tijd.
Uiteindelijk heb ik geen meertalig imperium gebouwd, ik heb geen functie uit de roadmap geïmplementeerd om iemand te imponeren. Ik heb een proces geautomatiseerd, met de nodige liefde. Ik heb iets genomen dat met de hand gedaan kon worden, met moeite en het risico van inconsistentie, en het systematisch gemaakt zonder het koud te maken. Ik heb de AI in dienst gesteld van zorg, niet van snelheid. Want een universum vertalen betekent het niet vermenigvuldigen. Het betekent ervoor zorgen dat het zichzelf blijft, ook wanneer het van taal verandert, zoals een schip dat verschillende sterrenstelsels doorkruist maar zichzelf blijft herkennen in zijn eigen naam.
Ondertussen heeft het systeem doorgewerkt.
Na het Italiaans en het Chinees is ook het Duits gekomen. Niet als een nieuwe "functie", maar als de natuurlijke consequentie van de architectuur. Wanneer de opzet solide is, betekent het toevoegen van een taal niet dat je alles opnieuw moet bouwen: het betekent alleen de vloot uitbreiden.
De nachtcron maakt geen onderscheid tussen alfabetten en geografieën. Het bekijkt de Engelse artikelen, controleert of hun tegenhangers bestaan, en als er een taal ontbreekt, maakt het die aan. Zo is Wardrome langzaam ook Duits gaan spreken. Niet om markten te koloniseren, maar om wrijving te verminderen. Als iemand hierheen komt vanuit Berlijn of Hamburg, hoeft hij het universum niet met een open automatische vertaler in een ander tabblad over te steken.
Je kunt het resultaat zien op de blog van wardrome: https://wardrome.com
Loopt je project vast op een technische beperking?
Boek 15 minuten