Gidsen / Achter de schermen

Hoe we onze mobiele games in 14 talen hebben vertaald

Wat ervoor nodig was om onze Android-games in 14 talen te zetten: hoe we onze stringbestanden opbouwen, waarom meervoudsregels en lettertypen ertoe doen, de vertaalfouten die steeds terugkwamen, een bug die alleen telefoons in Europa treft, en waarom 14 talen 16 winkelpagina's betekent.

Onze eerste zes games zijn volledig vertaald in 14 talen: Engels, Duits, Spaans, Frans, Kroatisch, Indonesisch, Italiaans, Japans, Koreaans, Portugees, Russisch, Sloveens, Turks en Traditioneel Chinees. De eerste vier, Idle Ronin, Idle Summoner, Idle AI Factory en Block Brain, hebben samen ongeveer 2.100 Engelse strings, van 254 in Block Brain tot 1.253 in Idle Ronin, en elk ervan is 13 keer vertaald. Idle Restaurant: Miami en ONI Snakes kwamen uit in dezelfde 14 talen, Dark Tower: Idle Schurk TD kreeg er Nederlands, Noors en Vietnamees bij voor 17, en onze woordgame Lantern Isles: Woordpuzzel heeft 20 talen, elk met een eigen woordenlijst. Dit is wat dat vroeg, en wat we opnieuw zouden doen.

Eén stringbestand per taal, met context

Elke game heeft één gewoon tekstbestand per taal. Een regel is de Engelse bronregel, gemarkeerd met @, gevolgd door de vertaling, gemarkeerd met =, en de meeste regels hebben een opmerking die voor de vertaler is geschreven. Dit is het eerste monster in het Engelse bestand van Idle Summoner:

# monster name with its number in the summon chain (1-55); names appear on small labels

@ {0}. Slime

Die opmerkingen zijn het nuttigste wat we hebben toegevoegd. Het Engelse bestand van Idle Summoner heeft er 156 voor 258 strings. Een vertaler die weet dat een string op een piepklein label staat, of dat {0} een getal is, maakt veel minder fouten dan iemand die alleen op de woorden gokt.

De Engelse tekst zelf als sleutel gebruiken houdt de bestanden leesbaar, maar het heeft een valkuil. Een string die in beide kolommen hetzelfde is, is niet automatisch een naam die Engels moet blijven: in Idle Ronin kwamen ongeveer 680 van de eerste 1.185 regels overeen met hun Engelse tekst. Alleen de echte eigennamen blijven Engels, de 19 Guardians, de unitnamen en 12 kostuums, en ons buildscript zet precies die vast.

Meervoudsregels zijn niet optioneel

Engels heeft twee vormen: 1 unit, 2 units. Veel talen hebben er meer, en de regels verschillen. Onze Loc-code volgt de meervoudsregels voor gehele getallen uit de Unicode CLDR-tabellen:

TalenVormen die onze code gebruikt
Engels, Duits, Spaans, Italiaansone, other
Frans, Portugeesone (0 en 1), other
Kroatischone, few, other
Russischone, few, many
Sloveensone, two, few, other
Turks, Indonesisch, Japans, Koreaans, Chineeséén vorm

Sloveens is de taal die mensen verrast: het heeft een aparte vorm voor twee, dus “2 enoti” en “5 enot” zijn verschillende woorden. Kent je code alleen enkelvoud en meervoud, dan toont elk van deze talen ergens verkeerde grammatica.

Lettertypen: de letters waarvan je niet wist dat ze ontbraken

Het tekstlettertype van Idle Summoner was een uitgeklede kopie van Noto Sans KR Black zonder č, š, ž en ć, West-Europese accenten, Turkse letters en Traditioneel Chinees. Ontbrekende letters vielen terug op een lettertype van de telefoon of verschenen helemaal niet. We bouwden het opnieuw met elke letter die onze tabellen gebruiken en voegden Noto Sans JP toe voor Japans en Noto Sans TC voor Traditioneel Chinees. Labels in het pixellettertype van de game houden dat alleen zolang de tekst past in de letters die dat lettertype heeft.

Lettertypen kunnen ook misleiden. In het Koreaanse lettertype van Idle Ronin is een hoofdletter N zo getekend dat ON en OFF lezen als “OΠ”. We vervingen die schakelaars door de Koreaanse woorden 켜기 en 끄기, die sowieso beter lezen.

De fouten die in elke taal terugkwamen

Hoe een game ook wordt vertaald, de eerste versie is zelden klaar. De onze herhaalden in bijna elke taal hetzelfde handjevol fouten, de fouten die onze eigen Sloveense controle als eerste had gevonden:

  • “Particle”, een grafische instelling, vertaald als het natuurkundewoord in plaats van “Effecten”.
  • “Stack”, extra exemplaren van een unit, in het Engels gelaten of vertaald als “stapel” in plaats van “exemplaren”.
  • Een quest om het monster Treasure Chest te verslaan, vertaald als het kapotslaan van schatkisten.
  • Tekst op volle lengte vertaald voor rijen en badges waar maar een woord of twee in past.
  • “FIGHT FLOOR {0}” met een overbodig werkwoord waardoor de knop te lang werd.

Dus schreven we een checker die precies die strings voor elke taal afdrukt, en we geven die lijst door voordat het vertalen begint. De twee talen die met de lijst in de hand werden vertaald, hadden geen correcties nodig; de talen zonder die lijst hadden er elk ongeveer zes nodig.

Controleer de schermen, niet alleen de bestanden

Een bestand kan compleet zijn terwijl het scherm nog Engels toont. Onze test: zet de game in een andere taal, verzamel elke zichtbare tekst op het scherm en vergelijk die met het Engelse bestand. Alles wat nog Engels is, is een label dat de code nooit vertaalt. In Idle Ronin vond die controle een altijd zichtbare OPEN-knop en instellingenknoppen die vastzaten in de taal die actief was toen het menu voor het eerst openging.

Controleer daarna of alles past op een echte telefoonresolutie. We bekijken elk scherm op 1080 x 2400 in de langste talen en in het Japans, Koreaans, Chinees en Russisch, en we korten tekst liever in dan dat we hem verkleinen tot niemand hem meer kan lezen.

Een komma die saves breekt in Europa

Eén bug heeft niets met woorden te maken. In een game die we aan het bouwen zijn, voegt de save getallen samen met komma's. Op een telefoon waarvan de taal decimalen met een komma schrijft, zoals in een groot deel van Europa, wordt 7392.58 dan 7392,58, de extra komma splitst het getal in tweeën, en elke waarde erna schuift één plek op. Een ontwikkelaar die in het Engels test, ziet het nooit. De oplossing is één regel bij het opstarten die de getalnotatie vastzet op de invariant culture, plus een beveiliging zodat saves die al kapot waren nog laden.

14 talen, 16 winkelpagina's

Google Play heeft aparte winkelpagina's voor Spaans in Spanje en Latijns-Amerika en voor Portugees in Portugal en Brazilië. We houden één vertaling in de game per taal, maar schrijven de winkeltekst apart voor elke markt, met eigen zoektermen. Dat maakt 16 winkelpagina's per game, elk met een eigen titel, korte beschrijving, volledige beschrijving en screenshots. Onze website volgt hetzelfde patroon, en hoe we die bouwen, leggen we uit in een apart bericht.

Wat we opnieuw zouden doen

  1. Schrijf bij elke string een contextopmerking.
  2. Zet eigennamen vast in de build, niet in het hoofd van de vertaler.
  3. Bouw meervoudsregels in voordat de eerste vertaling binnenkomt.
  4. Controleer of je lettertypen elke letter bevatten die je tabellen gebruiken.
  5. Houd een lijst bij van bekende probleemstrings en geef die vooraf door.
  6. Loop de schermen in een andere taal na op achtergebleven Engels.
  7. Schrijf savedata in de invariant culture.
  8. Reken op 16 winkelpagina's, niet op 14.

Wil je het resultaat zien? Wissel van taal in Idle Ronin, Idle Summoner, Idle AI Factory, Block Brain, Idle Restaurant: Miami of ONI Snakes: elk ervan spreekt alle 14.

Bronnen

  • Unicode CLDR, Language Plural Rules.
  • Gamecode van ONI Games, september 2026: Idle Summoner (Loc.cs, LocFonts.cs, Localization/Summoner/en.txt), Idle Ronin (Localization/Ronin), Idle AI Factory (Localization/AIFactory), Block Brain (Localization/Brain).

Meer gidsen

Alle gidsen

◆ Meer van ONI Games

Meer games

Swipe voor meer

ONI Snakes: Armored Arena
Nu verkrijgbaar · Google Play

ONI Snakes: Armored Arena

Schiet het pantser van rivaliserende slangen af, word enorm en heers over de neonarena in 11 modi, online en met vrienden.

Ontdek de game →
Idle Ronin: Cyber RPG
Nu verkrijgbaar · Google Play

Idle Ronin: Cyber RPG

Stap in een neondoordrenkte toekomst als de laatste Cyber Ronin. Hak je een weg door golven mechs, rekruteer een cyborgploeg en beklim de Neon Tower. Je zwaard blijft zwaaien, zelfs als je offline bent.

Ontdek de game →
Idle Summoner: Pixel RPG
Nu verkrijgbaar · Google Play

Idle Summoner: Pixel RPG

Roep een legioen beesten op, bestorm de kastelen van de onderwereld en word na elke wedergeboorte sterker zodra de voortgang vertraagt.

Ontdek de game →
Block Brain: Block Puzzle Game
Nu verkrijgbaar · Google Play

Block Brain: Block Puzzle Game

Pas kleurrijke blokken in, wis lijnen en rijg combo's aaneen terwijl je Brain-maatje uitgroeit van een klein spruitje tot een gekroonde Mastermind.

Ontdek de game →
Idle AI Factory: Robot Tycoon
Nu verkrijgbaar · Google Play

Idle AI Factory: Robot Tycoon

Run een fabriek vol vrolijke robots, automatiseer elke productielijn en groei van een klein AI-lab naar een basis op de maan.

Ontdek de game →
Idle Restaurant: Miami
Nu verkrijgbaar · Google Play

Idle Restaurant: Miami

Maak van één klein pizzatentje op het strand een neon restaurantimperium in Miami: neem managers aan, verzamel 20 echte recepten en verdien terwijl je idle bent.

Ontdek de game →
Dark Tower: Idle Villain TD
Nu verkrijgbaar · Google Play

Dark Tower: Idle Villain TD

Wees voor één keer de schurk: bouw een vervloekte toren, verpletter eindeloze golven heilige helden met Duistere Kaarten en spreuken, en word sterker terwijl je idle bent.

Ontdek de game →
Lantern Isles: Word Puzzle
Nu verkrijgbaar · Google Play

Lantern Isles: Word Puzzle

Een gezellige woordpuzzel: veeg letters, vul het kruiswoordraadsel en wek 15 slapende eilanden, lantaarn voor lantaarn.

Ontdek de game →