
Poradniki / Za kulisami
Jak przetłumaczyliśmy nasze gry mobilne na 14 języków
Co było potrzebne, żeby nasze gry na Androida mówiły w 14 językach: jak budujemy pliki z tekstami, dlaczego reguły liczby mnogiej i czcionki mają znaczenie, błędy tłumaczeń, które wciąż wracały, błąd, który trafia tylko telefony w Europie, i dlaczego 14 języków to 16 stron w sklepie.
Nasze pierwsze sześć gier jest w pełni przetłumaczonych na 14 języków: angielski, niemiecki, hiszpański, francuski, chorwacki, indonezyjski, włoski, japoński, koreański, portugalski, rosyjski, słoweński, turecki i chiński tradycyjny. Pierwsze cztery, Idle Ronin, Idle Summoner, Idle AI Factory i Block Brain, mają razem około 2 100 angielskich tekstów, od 254 w Block Brain do 1 253 w Idle Ronin, a każdy z nich jest przetłumaczony 13 razy. Idle Restaurant: Miami i ONI Snakes wystartowały w tych samych 14 językach, Dark Tower: Idle Villain TD dodał niderlandzki, norweski i wietnamski, razem 17, a nasza gra słowna Lantern Isles: Gra w słowa ma 20 języków, każdy z własną listą słów. Oto czego to wymagało i co zrobilibyśmy znowu.
Jeden plik z tekstami na język, z kontekstem
Każda gra trzyma jeden zwykły plik tekstowy na język. Wpis to angielski tekst źródłowy oznaczony @, a po nim tłumaczenie oznaczone =, i większość wpisów ma komentarz napisany dla tłumacza. Oto pierwszy potwór w angielskim pliku Idle Summoner:
# monster name with its number in the summon chain (1-55); names appear on small labels
@ {0}. Slime
Te komentarze to najbardziej przydatna rzecz, jaką dodaliśmy. Angielski plik Idle Summoner ma ich 156 na 258 tekstów. Tłumacz, który wie, że tekst stoi na malutkiej etykiecie albo że {0} to liczba, robi dużo mniej błędów niż ktoś, kto zgaduje tylko ze słów.
Używanie angielskiego tekstu jako klucza utrzymuje pliki czytelne, ale ma pułapkę. Tekst, który jest taki sam w obu kolumnach, nie jest automatycznie nazwą, która musi zostać po angielsku: w Idle Ronin około 680 z pierwszych 1 185 wpisów pokrywało się z angielskim tekstem. Po angielsku zostają tylko prawdziwe nazwy własne, 19 Guardians, nazwy jednostek i 12 kostiumów, a nasz skrypt budujący blokuje dokładnie je.
Reguły liczby mnogiej nie są opcjonalne
Angielski ma dwie formy: 1 unit, 2 units. Wiele języków ma ich więcej, a reguły się różnią. Nasz kod Loc stosuje reguły liczby mnogiej dla liczb całkowitych z tabel Unicode CLDR:
| Języki | Formy, których używa nasz kod |
|---|---|
| angielski, niemiecki, hiszpański, włoski | one, other |
| francuski, portugalski | one (0 i 1), other |
| chorwacki | one, few, other |
| rosyjski | one, few, many |
| słoweński | one, two, few, other |
| turecki, indonezyjski, japoński, koreański, chiński | jedna forma |
Słoweński zaskakuje ludzi najbardziej: ma osobną formę dla dwóch, więc „2 enoti” i „5 enot” to różne słowa. Jeśli twój kod zna tylko liczbę pojedynczą i mnogą, każdy z tych języków gdzieś pokazuje błędną gramatykę.
Czcionki: brakujące litery, o których nikt nie wiedział
Czcionka tekstu w Idle Summoner była okrojoną kopią Noto Sans KR Black bez č, š, ž i ć, zachodnioeuropejskich akcentów, tureckich liter i chińskiego tradycyjnego. Brakujące litery albo przechodziły na czcionkę telefonu, albo w ogóle się nie wyświetlały. Przebudowaliśmy ją ze wszystkimi literami, których używają nasze tabele, i dodaliśmy Noto Sans JP dla japońskiego i Noto Sans TC dla chińskiego tradycyjnego. Napisy w pikselowej czcionce gry zachowują ją tylko wtedy, gdy tekst mieści się w literach, które ta czcionka ma.
Czcionki potrafią też wprowadzać w błąd. W koreańskiej czcionce Idle Ronin wielkie N jest narysowane tak, że ON i OFF czyta się jak „OΠ”. Zamieniliśmy te przełączniki na koreańskie słowa 켜기 i 끄기, które i tak czyta się lepiej.
Błędy, które wracały w każdym języku
Niezależnie od tego, jak gra jest tłumaczona, pierwsza wersja rzadko jest gotowa. Nasze powtarzały tę samą garstkę błędów prawie w każdym języku, te, które jako pierwsza wyłapała nasza słoweńska korekta:
- „Particle”, ustawienie grafiki, przetłumaczone jak słowo z fizyki zamiast „Efekty”.
- „Stack”, dodatkowe kopie jednostki, zostawione po angielsku albo przetłumaczone jako „stos” zamiast „kopie”.
- Zadanie pokonania potwora o nazwie Treasure Chest przetłumaczone jako rozbijanie skrzyń ze skarbami.
- Tekst przetłumaczony w pełnej długości dla wierszy i odznak, w których mieści się słowo albo dwa.
- „FIGHT FLOOR {0}” z niepotrzebnym czasownikiem, przez który przycisk był za długi.
Napisaliśmy więc narzędzie, które dla dowolnego języka wypisuje dokładnie te teksty, i przekazujemy tę listę przed rozpoczęciem tłumaczenia. Dwa języki tłumaczone z listą w ręku nie wymagały poprawek; te tłumaczone bez niej potrzebowały około sześciu każdy.
Sprawdzaj ekrany, nie tylko pliki
Plik może być kompletny, a ekran wciąż pokazywać angielski. Nasz test: przełącz grę na inny język, zbierz każdy widoczny tekst na ekranie i porównaj go z angielskim plikiem. Wszystko, co wciąż jest po angielsku, to napis, którego kod nigdy nie tłumaczy. W Idle Ronin taki przegląd znalazł zawsze widoczny przycisk OPEN i przyciski ustawień, które utknęły w języku aktywnym w chwili pierwszego otwarcia menu.
Potem sprawdź dopasowanie na prawdziwej rozdzielczości telefonu. Oglądamy każdy ekran w 1080 x 2400 w najdłuższych językach oraz po japońsku, koreańsku, chińsku i rosyjsku, i raczej skracamy tekst, niż zmniejszamy go tak, że nikt go nie przeczyta.
Przecinek, który psuje zapisy w Europie
Jeden błąd nie ma nic wspólnego ze słowami. W grze, którą tworzymy, zapis łączy liczby przecinkami. Na telefonie, którego język zapisuje ułamki dziesiętne przecinkiem, jak w dużej części Europy, 7392.58 zmienia się w 7392,58, dodatkowy przecinek rozcina liczbę na dwie, a każda wartość po niej przesuwa się o jedno miejsce. Twórca testujący po angielsku nigdy tego nie zobaczy. Poprawka to jedna linijka przy starcie, która przypina formatowanie liczb do kultury niezmiennej, plus zabezpieczenie, żeby zapisy, które już się popsuły, nadal się wczytywały.
14 języków, 16 stron w sklepie
Google Play ma osobne strony dla hiszpańskiego w Hiszpanii i Ameryce Łacińskiej oraz dla portugalskiego w Portugalii i Brazylii. Trzymamy jedno tłumaczenie w grze na język, ale tekst w sklepie piszemy osobno dla każdego rynku, z własnymi słowami kluczowymi. Daje to 16 stron na grę, każda z własnym tytułem, krótkim opisem, pełnym opisem i zrzutami ekranu. Nasza strona internetowa działa według tego samego wzoru, a jak ją budujemy, wyjaśniamy w osobnym wpisie.
Co zrobilibyśmy znowu
- Napisz komentarz z kontekstem do każdego tekstu.
- Blokuj nazwy własne w procesie budowania, a nie w głowie tłumacza.
- Wdróż reguły liczby mnogiej, zanim przyjdzie pierwsze tłumaczenie.
- Sprawdź, czy twoje czcionki zawierają każdą literę, której używają twoje tabele.
- Prowadź listę znanych problematycznych tekstów i przekazuj ją z góry.
- Przejrzyj ekrany w innym języku pod kątem resztek angielskiego.
- Zapisuj dane w kulturze niezmiennej.
- Planuj 16 stron w sklepie, nie 14.
Chcesz zobaczyć efekt? Przełącz język w Idle Ronin, Idle Summoner, Idle AI Factory, Block Brain, Idle Restaurant: Miami albo ONI Snakes: każda z nich mówi we wszystkich 14.
Źródła
- Unicode CLDR, Language Plural Rules.
- Kod gier ONI Games, wrzesień 2026: Idle Summoner (Loc.cs, LocFonts.cs, Localization/Summoner/en.txt), Idle Ronin (Localization/Ronin), Idle AI Factory (Localization/AIFactory), Block Brain (Localization/Brain).










