
Vodiči / V zakulisju
Kako smo naše mobilne igre prevedli v 14 jezikov
Kaj je bilo treba, da so naše igre za Android dobile 14 jezikov: kako urejamo datoteke z besedili, zakaj so pravila za množino in pisave pomembni, katere napake v prevodih so se vedno znova vračale, napaka, ki prizadene le telefone v Evropi, in zakaj 14 jezikov pomeni 16 strani v trgovini.
Vseh šest naših iger je v celoti prevedenih v 14 jezikov: angleščino, nemščino, španščino, francoščino, hrvaščino, indonezijščino, italijanščino, japonščino, korejščino, portugalščino, ruščino, slovenščino, turščino in tradicionalno kitajščino. Prve štiri, Idle Ronin, Idle Summoner, Idle AI Factory in Block Brain, imajo skupaj približno 2.100 angleških besedil, od 254 v Block Brainu do 1.253 v Idle Roninu, in vsako je prevedeno 13-krat. Idle Restaurant: Miami in ONI Snakes sta izšli v istih 14 jezikih. Tole je bilo potrebno za to in tole bi naredili znova.
Ena datoteka z besedili na jezik, s kontekstom
Vsaka igra ima eno preprosto besedilno datoteko na jezik. Vnos je izvirna angleška vrstica, označena z @, sledi ji prevod, označen z =, in večina vnosov ima komentar, napisan za prevajalca. To je prva pošast v angleški datoteki igre Idle Summoner:
# monster name with its number in the summon chain (1-55); names appear on small labels
@ {0}. Slime
Ti komentarji so najkoristnejše, kar smo dodali. Angleška datoteka igre Idle Summoner jih ima 156 za 258 besedil. Kdor prevaja in ve, da besedilo stoji na drobni oznaki ali da je {0} število, naredi veliko manj napak kot nekdo, ki ugiba samo iz besed.
Uporaba samega angleškega besedila kot ključa ohranja datoteke berljive, a skriva past. Besedilo, ki je v obeh stolpcih enako, ni samodejno ime, ki mora ostati v angleščini: v igri Idle Ronin se je približno 680 od prvih 1.185 vnosov ujemalo s svojim angleškim besedilom. V angleščini ostanejo le prava lastna imena, imena 19 Varuhov, imena enot in 12 kostumov, in naša skripta za gradnjo zaklene prav te.
Pravila za množino niso neobvezna
Angleščina ima dve obliki: 1 unit, 2 units. Mnogi jeziki jih imajo več, pravila pa se razlikujejo. Naša koda Loc sledi pravilom za množino celih števil iz tabel Unicode CLDR:
| Jeziki | Oblike, ki jih uporablja naša koda |
|---|---|
| Angleščina, nemščina, španščina, italijanščina | one, other |
| Francoščina, portugalščina | one (0 in 1), other |
| Hrvaščina | one, few, other |
| Ruščina | one, few, many |
| Slovenščina | one, two, few, other |
| Turščina, indonezijščina, japonščina, korejščina, kitajščina | ena sama oblika |
Slovenščina je tista, ki preseneti: ima posebno obliko za dva, zato rečemo »2 enoti«, a »5 enot«. Če tvoja koda pozna samo ednino in množino, vsak od teh jezikov nekje prikaže napačno slovnico.
Pisave: črke, ki so neopazno manjkale
Pisava za besedilo v igri Idle Summoner je bila okrnjena kopija pisave Noto Sans KR Black, ki so ji manjkali č, š, ž in ć, zahodnoevropski znaki z naglasi, turške črke in tradicionalna kitajščina. Manjkajoče črke so se bodisi nadomestile s pisavo telefona bodisi se sploh niso prikazale. Pisavo smo znova zgradili z vsemi črkami, ki jih uporabljajo naše tabele, in dodali Noto Sans JP za japonščino ter Noto Sans TC za tradicionalno kitajščino. Oznake v pikselni pisavi igre jo obdržijo le, dokler besedilo zmore s črkami, ki jih ta pisava ima.
Pisave lahko tudi zavajajo. V korejski pisavi igre Idle Ronin je veliki N narisan tako, da se ON in OFF bereta kot »OΠ«. Ta stikala smo zamenjali s korejskima besedama 켜기 in 끄기, ki se tako ali tako bolje bereta.
Napake, ki so se vračale v vsakem jeziku
Ne glede na to, kako se igra prevaja, prvi osnutek le redko pride pripravljen. Naš je v skoraj vsakem jeziku ponavljal isto peščico napak, prav tiste, ki jih je najprej odkril naš lastni pregled slovenskega prevoda:
- »Particle«, grafična nastavitev, prevedena z besedo iz fizike namesto z »Učinki«.
- »Stack«, dodatne kopije enote, puščen v angleščini ali preveden kot »kup« namesto »kopije«.
- Naloga, da premagaš pošast z imenom Treasure Chest, prevedena kot razbijanje skrinj z zakladom.
- Besedilo, prevedeno v polni dolžini, za vrstice in značke, kamor gresta le ena ali dve besedi.
- »FIGHT FLOOR {0}« z odvečnim glagolom, zaradi katerega je bil gumb predolg.
Zato smo napisali preverjanje, ki za kateri koli jezik izpiše prav ta besedila, seznam pa predamo, preden se prevajanje začne. Jezika, prevedena s seznamom v roki, nista potrebovala nobenega popravka; jeziki, prevedeni brez njega, pa so jih potrebovali po približno šest.
Preveri zaslone, ne le datotek
Datoteka je lahko popolna, medtem ko zaslon še vedno kaže angleščino. Naš test: preklopi igro na drug jezik, zberi vse vidno besedilo na zaslonu in ga primerjaj z angleško datoteko. Vse, kar je še v angleščini, je oznaka, ki je koda nikoli ne prevede. V igri Idle Ronin je ta pregled našel vedno viden gumb OPEN in gumbe nastavitev, ki so obtičali v jeziku, ki je bil aktiven ob prvem odprtju menija.
Nato preveri, ali gre vse na zaslon pri resnični ločljivosti telefona. Vsak zaslon pogledamo pri 1080 x 2400 v najdaljših jezikih ter v japonščini, korejščini, kitajščini in ruščini, in besedilo raje skrajšamo, kot da bi ga pomanjšali, dokler ga nihče ne more več prebrati.
Vejica, ki v Evropi pokvari shranjene igre
Ena napaka nima nobene zveze z besedami. V igri, ki jo trenutno delamo, shranjena igra števila povezuje z vejicami. Na telefonu, katerega jezik decimalke piše z vejico, kot v velikem delu Evrope, 7392.58 postane 7392,58, odvečna vejica število razdeli na dvoje in vsaka vrednost za njim se zamakne za eno mesto. Pri testiranju v angleščini se to nikoli ne vidi. Rešitev je ena vrstica ob zagonu, ki oblikovanje števil zaklene na invariantno kulturo, in varovalo, da se tudi že pokvarjene shranjene igre še naložijo.
14 jezikov, 16 strani v trgovini
Google Play ima ločene strani za španščino v Španiji in Latinski Ameriki ter za portugalščino na Portugalskem in v Braziliji. V igri imamo en prevod na jezik, besedilo za trgovino pa pišemo posebej za vsak trg, z lastnimi iskalnimi izrazi. To pomeni 16 strani na igro, vsako z lastnim naslovom, kratkim opisom, polnim opisom in posnetki zaslona. Naša spletna stran sledi istemu vzorcu, kako jo gradimo, pa razložimo v ločeni objavi.
Kaj bi naredili znova
- Za vsako besedilo napiši komentar s kontekstom.
- Lastna imena zakleni v gradnji, ne v glavi prevajalca.
- Pravila za množino uvedi, preden pride prvi prevod.
- Preveri, ali tvoje pisave vsebujejo vsako črko, ki jo uporabljajo tvoje tabele.
- Vodi seznam znanih problematičnih besedil in ga predaj vnaprej.
- Preglej zaslone v drugem jeziku in poišči pozabljeno angleščino.
- Shranjene podatke zapisuj v invariantni kulturi.
- Računaj s 16 stranmi v trgovini, ne s 14.
Želiš videti rezultat? Zamenjaj jezik v igrah Idle Ronin, Idle Summoner, Idle AI Factory, Block Brain, Idle Restaurant: Miami ali ONI Snakes: vsaka od njih govori vseh 14.
Viri
- Unicode CLDR, Language Plural Rules.
- Koda iger 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).








