
Guías / Entre bastidores
Cómo tradujimos nuestros juegos para móvil a 14 idiomas
Lo que hizo falta para llevar nuestros juegos de Android a 14 idiomas: cómo organizamos los archivos de textos, por qué importan las reglas de plural y las fuentes, los errores de traducción que se repetían, un bug que solo afecta a móviles en Europa y por qué 14 idiomas significan 16 fichas de tienda.
Nuestros seis juegos están traducidos por completo a 14 idiomas: inglés, alemán, español, francés, croata, indonesio, italiano, japonés, coreano, portugués, ruso, esloveno, turco y chino tradicional. Los cuatro primeros, Idle Ronin, Idle Summoner, Idle AI Factory y Block Brain, suman unos 2100 textos en inglés, de 254 en Block Brain a 1253 en Idle Ronin, cada uno traducido 13 veces. Idle Restaurant: Miami y ONI Snakes salieron en los mismos 14 idiomas. Esto es lo que hizo falta y lo que volveríamos a hacer.
Un archivo de textos por idioma, con contexto
Cada juego tiene un archivo de texto sencillo por idioma. Una entrada es la línea original en inglés, marcada con @, seguida de su traducción, marcada con =, y la mayoría de las entradas llevan un comentario escrito para quien traduce. Este es el primer monstruo del archivo inglés de Idle Summoner:
# monster name with its number in the summon chain (1-55); names appear on small labels
@ {0}. Slime
Esos comentarios son lo más útil que añadimos. El archivo inglés de Idle Summoner tiene 156 para 258 textos. Quien traduce sabiendo que un texto va en una etiqueta diminuta, o que {0} es un número, comete muchos menos errores que quien adivina solo por las palabras.
Usar el propio texto inglés como clave hace que los archivos se lean bien, pero tiene una trampa. Un texto que es igual en las dos columnas no es automáticamente un nombre que deba quedarse en inglés: en Idle Ronin, unas 680 de las primeras 1185 entradas coincidían con su texto en inglés. Solo se quedan en inglés los nombres propios de verdad, los de los 19 Guardianes, los nombres de las unidades y 12 trajes, y nuestro script de compilación bloquea exactamente esos.
Las reglas de plural no son opcionales
El inglés tiene dos formas: 1 unit, 2 units. Muchos idiomas tienen más, y las reglas cambian. Nuestro código Loc sigue las reglas de plural para números enteros de las tablas Unicode CLDR:
| Idiomas | Formas que usa nuestro código |
|---|---|
| Inglés, alemán, español, italiano | one, other |
| Francés, portugués | one (0 y 1), other |
| Croata | one, few, other |
| Ruso | one, few, many |
| Esloveno | one, two, few, other |
| Turco, indonesio, japonés, coreano, chino | una sola forma |
El esloveno es el que sorprende: tiene una forma propia para el dos, así que se dice «2 enoti» pero «5 enot». Si tu código solo conoce singular y plural, todos estos idiomas muestran una gramática incorrecta en algún sitio.
Fuentes tipográficas: las letras que no sabías que faltaban
La fuente de texto de Idle Summoner era una copia recortada de Noto Sans KR Black a la que le faltaban la č, la š, la ž y la ć, los acentos de Europa occidental, las letras turcas y el chino tradicional. Las letras que faltaban o bien recurrían a una fuente del móvil o bien no se veían. La rehicimos con todas las letras que usan nuestras tablas y añadimos Noto Sans JP para el japonés y Noto Sans TC para el chino tradicional. Las etiquetas con la fuente pixel del juego la conservan solo mientras el texto quepa en las letras que tiene esa fuente.
Las fuentes también pueden engañar. En la fuente coreana de Idle Ronin, la N mayúscula está dibujada de forma que ON y OFF se leen como «OΠ». Cambiamos esos interruptores a las palabras coreanas 켜기 y 끄기, que además se leen mejor.
Los errores que volvían en todos los idiomas
Se traduzca como se traduzca un juego, el primer borrador rara vez está listo. El nuestro repetía el mismo puñado de errores en casi todos los idiomas, los mismos que había detectado primero nuestra propia revisión en esloveno:
- «Particle», un ajuste gráfico, traducido con la palabra de la física en lugar de «Efectos».
- «Stack», las copias extra de una unidad, dejado en inglés o traducido como «montón» en lugar de «copias».
- Una misión de derrotar al monstruo llamado Treasure Chest, traducida como romper cofres del tesoro.
- Texto traducido completo para filas e insignias donde solo caben una o dos palabras.
- «FIGHT FLOOR {0}» con un verbo sobrante que hacía demasiado largo el botón.
Así que escribimos un comprobador que saca exactamente esos textos en cualquier idioma, y entregamos la lista antes de empezar a traducir. Los dos idiomas que se tradujeron con la lista en la mano no necesitaron correcciones; los que se tradujeron sin ella necesitaron unas seis cada uno.
Revisa las pantallas, no solo los archivos
Un archivo puede estar completo mientras la pantalla sigue mostrando inglés. Nuestra prueba: pon el juego en otro idioma, recoge todo el texto visible en pantalla y compáralo con el archivo inglés. Lo que siga en inglés es una etiqueta que el código nunca traduce. En Idle Ronin, esa revisión encontró un botón OPEN siempre visible y botones de ajustes atascados en el idioma que estaba activo la primera vez que se abrió el menú.
Después comprueba que todo cabe en una resolución de móvil real. Miramos cada pantalla a 1080 x 2400 en los idiomas más largos y en japonés, coreano, chino y ruso, y preferimos acortar el texto a encogerlo hasta que nadie pueda leerlo.
Una coma que rompe partidas en Europa
Hay un bug que no tiene nada que ver con las palabras. En un juego que estamos creando, la partida guardada une números con comas. En un móvil cuyo idioma escribe los decimales con coma, como en gran parte de Europa, 7392.58 se convierte en 7392,58, la coma de más lo parte en dos y todos los valores que vienen detrás se desplazan un puesto. Quien prueba en inglés nunca lo ve. La solución es una línea al arrancar que fija el formato de los números a la cultura invariable, más una protección para que las partidas ya rotas sigan cargando.
14 idiomas, 16 fichas de tienda
Google Play tiene fichas separadas para el español de España y de Latinoamérica y para el portugués de Portugal y de Brasil. Mantenemos una traducción dentro del juego por idioma, pero escribimos el texto de la tienda por separado para cada mercado, con sus propios términos de búsqueda. Eso da 16 fichas por juego, cada una con su título, su descripción breve, su descripción completa y sus capturas. Nuestra web sigue el mismo patrón, y contamos cómo la hacemos en una publicación aparte.
Lo que volveríamos a hacer
- Escribe un comentario de contexto para cada texto.
- Bloquea los nombres propios en la compilación, no en la cabeza de quien traduce.
- Implementa las reglas de plural antes de que llegue la primera traducción.
- Comprueba que tus fuentes tienen todas las letras que usan tus tablas.
- Mantén una lista de textos problemáticos conocidos y entrégala por adelantado.
- Recorre las pantallas en otro idioma en busca de inglés olvidado.
- Escribe los datos guardados en la cultura invariable.
- Planifica 16 fichas de tienda, no 14.
¿Quieres ver el resultado? Cambia el idioma en Idle Ronin, Idle Summoner, Idle AI Factory, Block Brain, Idle Restaurant: Miami u ONI Snakes: todos hablan los 14.
Fuentes
- Unicode CLDR, Language Plural Rules.
- Código de los juegos de ONI Games, septiembre 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).








