
Guias / Bastidores
Como traduzimos os nossos jogos de celular para 14 idiomas
O que foi preciso para levar os nossos jogos Android a 14 idiomas: como organizamos os arquivos de textos, por que regras de plural e fontes importam, os erros de tradução que sempre voltavam, um bug que só afeta celulares na Europa e por que 14 idiomas significam 16 páginas na loja.
Os nossos seis jogos estão totalmente traduzidos para 14 idiomas: inglês, alemão, espanhol, francês, croata, indonésio, italiano, japonês, coreano, português, russo, esloveno, turco e chinês tradicional. Os quatro primeiros, Idle Ronin, Idle Summoner, Idle AI Factory e Block Brain, somam cerca de 2.100 textos em inglês, de 254 no Block Brain a 1.253 no Idle Ronin, cada um traduzido 13 vezes. Idle Restaurant: Miami e ONI Snakes foram lançados nos mesmos 14 idiomas. Foi isto que deu trabalho, e é isto que faríamos de novo.
Um arquivo de textos por idioma, com contexto
Cada jogo tem um arquivo de texto simples por idioma. Uma entrada é a linha original em inglês, marcada com @, seguida da tradução, marcada com =, e a maioria das entradas traz um comentário escrito para quem traduz. Este é o primeiro monstro do arquivo em inglês do Idle Summoner:
# monster name with its number in the summon chain (1-55); names appear on small labels
@ {0}. Slime
Esses comentários foram a coisa mais útil que acrescentamos. O arquivo em inglês do Idle Summoner tem 156 deles para 258 textos. Quem traduz sabendo que um texto fica numa etiqueta minúscula, ou que {0} é um número, erra muito menos do que quem adivinha só pelas palavras.
Usar o próprio texto em inglês como chave deixa os arquivos legíveis, mas tem uma armadilha. Um texto igual nas duas colunas não é automaticamente um nome que precisa ficar em inglês: no Idle Ronin, cerca de 680 das primeiras 1.185 entradas eram iguais ao texto em inglês. Só os nomes próprios de verdade ficam em inglês, os dos 19 Guardiões, os nomes das unidades e 12 trajes, e o nosso script de build trava exatamente esses.
Regras de plural não são opcionais
O inglês tem duas formas: 1 unit, 2 units. Muitos idiomas têm mais, e as regras mudam. O nosso código Loc segue as regras de plural para números inteiros das tabelas Unicode CLDR:
| Idiomas | Formas que o nosso código usa |
|---|---|
| Inglês, alemão, espanhol, italiano | one, other |
| Francês, português | one (0 e 1), other |
| Croata | one, few, other |
| Russo | one, few, many |
| Esloveno | one, two, few, other |
| Turco, indonésio, japonês, coreano, chinês | uma forma só |
O esloveno é o que surpreende: tem uma forma própria para dois, então se diz «2 enoti», mas «5 enot». Se o seu código só conhece singular e plural, cada um desses idiomas mostra gramática errada em algum lugar.
Fontes: as letras que você não sabia que faltavam
A fonte de texto do Idle Summoner era uma cópia reduzida da Noto Sans KR Black, sem č, š, ž e ć, sem os acentos da Europa Ocidental, sem as letras turcas e sem o chinês tradicional. As letras que faltavam ou caíam numa fonte do celular ou nem apareciam. Refizemos a fonte com todas as letras que as nossas tabelas usam e acrescentamos a Noto Sans JP para o japonês e a Noto Sans TC para o chinês tradicional. As etiquetas na fonte pixel do jogo só a mantêm enquanto o texto couber nas letras que essa fonte tem.
As fontes também podem enganar. Na fonte coreana do Idle Ronin, o N maiúsculo é desenhado de um jeito que ON e OFF parecem «OΠ». Trocamos esses interruptores pelas palavras coreanas 켜기 e 끄기, que de qualquer forma se leem melhor.
Os erros que voltavam em todos os idiomas
Seja qual for o jeito de traduzir um jogo, o primeiro rascunho raramente está pronto. O nosso repetia o mesmo punhado de erros em quase todos os idiomas, os mesmos que a nossa própria revisão em esloveno tinha encontrado primeiro:
- «Particle», uma configuração gráfica, traduzido com a palavra da física em vez de «Efeitos».
- «Stack», as cópias extras de uma unidade, deixado em inglês ou traduzido como «pilha» em vez de «cópias».
- Uma missão de derrotar o monstro chamado Treasure Chest, traduzida como quebrar baús do tesouro.
- Texto traduzido por inteiro para linhas e selos onde só cabem uma ou duas palavras.
- «FIGHT FLOOR {0}» com um verbo sobrando que deixava o botão comprido demais.
Então escrevemos um verificador que mostra exatamente esses textos em qualquer idioma, e entregamos a lista antes de a tradução começar. Os dois idiomas traduzidos com a lista em mãos não precisaram de nenhuma correção; os traduzidos sem ela precisaram de umas seis cada um.
Confira as telas, não só os arquivos
Um arquivo pode estar completo enquanto a tela ainda mostra inglês. O nosso teste: mude o jogo para outro idioma, colete todo o texto visível na tela e compare com o arquivo em inglês. O que continuar em inglês é uma etiqueta que o código nunca traduz. No Idle Ronin, essa varredura achou um botão OPEN sempre visível e botões de configurações presos no idioma que estava ativo quando o menu foi aberto pela primeira vez.
Depois confira se tudo cabe numa resolução de celular real. Olhamos cada tela em 1080 x 2400 nos idiomas mais longos e em japonês, coreano, chinês e russo, e preferimos encurtar o texto a encolhê-lo até ninguém mais conseguir ler.
Uma vírgula que quebra salvamentos na Europa
Um bug não tem nada a ver com palavras. Num jogo que estamos criando, o salvamento junta números com vírgulas. Num celular cujo idioma escreve decimais com vírgula, como em boa parte da Europa, 7392.58 vira 7392,58, a vírgula a mais parte o número em dois, e todos os valores seguintes andam uma posição. Quem testa em inglês nunca vê isso. A solução é uma linha na inicialização que fixa a formatação dos números na cultura invariante, mais uma proteção para que salvamentos que já quebraram continuem carregando.
14 idiomas, 16 páginas na loja
O Google Play tem páginas separadas para o espanhol da Espanha e da América Latina e para o português de Portugal e do Brasil. Mantemos uma tradução dentro do jogo por idioma, mas escrevemos o texto da loja separadamente para cada mercado, com os próprios termos de busca. Isso dá 16 páginas por jogo, cada uma com o próprio título, descrição curta, descrição completa e capturas de tela. O nosso site segue o mesmo padrão, e explicamos como o construímos em um post separado.
O que faríamos de novo
- Escreva um comentário de contexto para cada texto.
- Trave os nomes próprios no build, não na cabeça de quem traduz.
- Implemente as regras de plural antes de chegar a primeira tradução.
- Confira se as suas fontes têm todas as letras que as suas tabelas usam.
- Mantenha uma lista de textos problemáticos conhecidos e entregue-a de antemão.
- Varra as telas em outro idioma atrás de inglês esquecido.
- Grave os dados de salvamento na cultura invariante.
- Planeje 16 páginas na loja, não 14.
Quer ver o resultado? Mude o idioma no Idle Ronin, no Idle Summoner, no Idle AI Factory, no Block Brain, no Idle Restaurant: Miami ou no ONI Snakes: todos falam os 14.
Fontes
- Unicode CLDR, Language Plural Rules.
- Código dos jogos da ONI Games, setembro de 2026: Idle Summoner (Loc.cs, LocFonts.cs, Localization/Summoner/en.txt), Idle Ronin (Localization/Ronin), Idle AI Factory (Localization/AIFactory), Block Brain (Localization/Brain).








