⛽ Ignitor Docs ← getignitor.com
🇺🇸 EN 🇪🇸 ES

Editor de Traducción#

El Editor de Traducción es el único lugar para traducir todo lo que lee el jugador, lado a lado en todos los idiomas de tu proyecto. Reúne el texto de tu juego (etiquetas de verbo, árboles de diálogo, el catálogo de líneas habladas y las líneas de reacción) en una sola cuadrícula, para que completes los demás idiomas sin rastrear por cada cuarto y diálogo.

Las columnas siguen los idiomas del proyecto. Las columnas de idioma de la cuadrícula salen de defaultLocale + locales en project.json (idioma por defecto primero), no un par fijo ES/EN. Un proyecto con más idiomas tiene más columnas; uno con solo un idioma por defecto configurado cae a [defaultLocale] (los proyectos antiguos sin configuración de idiomas caen al par histórico ES/EN). Cada columna de idioma a la que le falte texto en una fila muestra una insignia de cobertura, así los huecos se ven de un vistazo. La columna del idioma base queda de solo lectura en las filas cuyo idioma base se autora en el propio archivo de contenido (nombres, líneas de diálogo/GUI de proyecto/reacción), porque editar la tabla ahí no haría nada en silencio; sigue editable en las filas que la tabla sí controla (líneas SAY, mensajes de sistema, etiquetas de verbo, texto de GUI del motor).

Llegas a él desde el Hub (con el dev server corriendo).

Esto es traducción del contenido del juego, no el idioma del editor. El idioma en que se muestran los editores (chrome en inglés/español) es un ajuste aparte en Hub Config. Esta herramienta traduce lo que ven tus jugadores.

La pantalla del Editor de Traducción: una cuadrícula lado a lado de cada idioma del proyecto.
Editor de Traducción: cuadrícula lado a lado de cada idioma.

Un catálogo, agrupado por categoría#

Todos los tipos de texto viven en una sola sección colapsable, Textos (LID), con su conteo de filas, su marca de sin guardar y su botón Guardar textos; una barra fija Guardar todo junta todos los cambios pendientes. Cada fila está direccionada por un lid estable, y las filas se agrupan por categoría para que trabajes un tipo de texto a la vez:

  • Mensajes del sistema: las líneas que el motor le muestra al jugador (una partida que no entró, una partida dañada, una puerta que no abrió…). Aparecen desde el inicio, antes de que personalices ninguna. Un mensaje al que le diste la voz de un personaje (el alcance por personaje del Editor de Reacciones) tiene su propia fila aquí, mostrada con ese personaje, así alex · pickup.default queda al lado del pickup.default genérico y se traduce por separado.
  • Verbos: las etiquetas de verbo (mirar, usar, tomar…). Solo se traducen las etiquetas; los IDs de verbo se mantienen en inglés (ver la nota abajo).
  • Diálogos: tus árboles de diálogo: tanto lo que dice un personaje como las opciones que elige el jugador.
  • Hotspots · Objetos · Salas: los nombres que el jugador lee en pantalla, más las descripciones de sala, cada uno con la sala u objeto al que pertenece. También aparecen desde el inicio, leídos directo de tus salas y objetos: un nombre se puede traducir en cuanto lo escribiste en el Editor de Salas o el de Objetos, sin ningún paso extra para "registrarlo" aquí.
  • GUI: el texto de los widgets de tu interfaz.
  • Logros: el nombre y la descripción de cada logro, cada fila con el logro al que pertenece. Se escriben en el Editor de logros y se traducen aquí.
  • Líneas: líneas habladas direccionadas por su propio lid, incluidas las escritas dentro de las reacciones de hotspot, con el personaje que habla mostrado. Un lid indexa la línea en pantalla, su clip de voz y sus traducciones, así un SAY:#lid resuelve al texto y audio correctos por idioma. Aquí también se editan las palabras de una línea con voz. El id de una línea de voz en el Editor de Voces es su lid, así que son el mismo registro: ese editor muestra el texto en sólo lectura y este lo posee. Lo que retipees aquí es lo que el pipeline tools/voicegen/ va a hornear en la próxima corrida, o sea que una línea ya grabada queda stale en vez de conservar el audio viejo en silencio.

El texto de los menús incorporados del juego (Opciones, Guardar/Cargar, la confirmación de salida, el popup de inventario y el menú de pausa) también aparece desde el inicio, traducible sin paso extra e incluso en el idioma por defecto del proyecto: estas pantallas vienen con el motor, así que no hay archivo de proyecto que editar, y lo que escribas aquí siempre gana. Eso cubre cada palabra que esos menús dibujan: las etiquetas de botones y títulos, la pista dentro del campo del nombre del guardado, y el Vacío y el Incompatible que muestra un slot de guardado. Los chips de categoría de la cabecera de la sección funcionan además como filtros: haz clic en uno para ver solo ese tipo de fila.

Filtrado y round-trip por CSV#

  • Filtrar filas: la caja de búsqueda de arriba acota la cuadrícula a las filas que coinciden, útil en un proyecto grande. Los chips de categoría y las insignias de cobertura de la cabecera de la sección también funcionan como filtros: haz clic en un chip para mostrar solo ese tipo de fila, o en una insignia de cobertura para mostrar solo las filas a las que les falta ese idioma, así resuelves los huecos de un idioma a la vez.
  • Export CSV / Import CSV: round-trip de toda la tabla por una hoja de cálculo. Export le entrega a un traductor un archivo limpio con una columna por idioma del proyecto; importar el CSV completado fusiona las traducciones de vuelta. Es el flujo recomendado cuando la traducción pasa fuera del equipo. Una celda que el CSV no trae (una fila que termina antes, como la guardan algunas hojas de cálculo) conserva el texto que ya tenías; solo una celda que está y viene vacía lo borra.

Dónde guarda#

Guardar textos (o Guardar todo) escribe toda la cuadrícula a un solo lugar: el catálogo strings.json del proyecto. Etiquetas de verbo, líneas de diálogo, nombres y texto de reacción terminan en el mismo archivo, indexados por lid; no hay un segundo destino que mantener en sincronía.

  • Una fila dejada en su valor por defecto no escribe nada. El catálogo solo crece con el texto que realmente tradujiste o personalizaste. Eso es lo que mantiene los mensajes de sistema (indexados sysmsg.<id>) y los menús incorporados en la redacción que trae el motor para un idioma hasta que decidas otra cosa. También puedes escribir el texto base de los mensajes de sistema desde el botón ⚙ Mensajes de sistema del Editor de Reacciones: ambos escriben al mismo lid.
  • Los nombres y las descripciones de sala son una superposición. El nombre que escribiste se queda en su archivo de sala u objeto como fuente del idioma por defecto y como respaldo; el catálogo lleva los demás idiomas bajo un lid derivado de la dirección del recurso, no de su texto. Por eso reescribir un nombre en el idioma por defecto conserva sus traducciones. Por eso también la celda del idioma por defecto en estas filas de superposición (nombres, texto de diálogo, texto de GUI de proyecto, reacciones de hotspot) aparece de solo lectura aquí (borde punteado, tooltip explicando por qué), porque editarla en la tabla no cambiaría nada en tiempo real; hay que editar el archivo fuente. El resto de las filas (líneas SAY, mensajes de sistema, etiquetas de verbo, texto de GUI del motor, achievements) sigue siendo editable.
  • Las etiquetas de verbo son por proyecto. Traducirlas no toca nada compartido, así que dos proyectos pueden etiquetar el mismo verbo de forma distinta.
  • Guardar conserva lo que escribiste. Lo que edites mientras corre un guardado queda marcado sin guardar para el siguiente. Si otro editor escribió en el catálogo desde que abriste esta pestaña, Guardar lo recarga con sus cambios, vuelve a poner los tuyos encima (sin guardar) y te pide guardar de nuevo. Si no se puede contactar al servidor del editor, tus filas simplemente siguen sin guardar.

Los IDs de verbo son fijos y en inglés. Traduces la etiqueta de verbo que ve el jugador, nunca el ID del verbo (look, use, give…). Esos son las claves de las que dependen el sistema de interacción y cada hotspot.reactions[verb]. Lo mismo aplica a cualquier ID en otro lado: traduce el texto visible, no la clave.

Las traducciones son contenido: commitéalas. Viven en disco en strings.json, sin undo al recargar. Commitea tras una pasada sustancial para que Git sea tu red de seguridad.