Caputchin
Personalización de juego

Personaliza el idioma de un juego

Un juego viene con los idiomas a los que su autor lo tradujo. En la pestaña Locale del editor del juego puedes sobrescribir esas cadenas, arreglar una traducción, ajustar el texto para que encaje con tu producto, o añadir un idioma que el juego no traía, y el cambio se aplica al juego renderizado.

La personalización de idioma está disponible desde el plan Alpha en adelante (Alpha, Equipo, Apex).

Fija las cadenas de idioma

Abre el juego en la página de Juegos de una clave de sitio (o del equipo), luego la pestaña Locale. Cada idioma que el juego ofrece es un preset, y cada preset es un conjunto de cadenas con nombre (las etiquetas y mensajes dentro del juego). Edita las cadenas que quieras cambiar; deja el resto y conservan el texto incluido del juego.

Los campos de locale son siempre texto plano. No hay nada que elegir salvo las palabras.

Cómo se elige un idioma en tiempo de ejecución

Cada preset de locale lleva una etiqueta de idioma (en, es, fr, etcétera), y los presets se agrupan por esa etiqueta. Elegir uno ocurre en dos etapas.

Primero el widget decide qué idioma pedir:

  1. El atributo locale del widget, si la página fijó uno (intención explícita del autor).
  2. Si no, el idioma del navegador del visitante (el primero de sus idiomas preferidos).
  3. Si no, nada, y el servidor recae en el valor por defecto del juego.

Luego el servidor empareja ese idioma contra los presets, tras fusionar tus overrides (clave de sitio sobre equipo sobre el conjunto incluido del juego), en este orden:

  1. Una coincidencia exacta de etiqueta (pt-BR encuentra el preset pt-BR).
  2. El idioma base (pt-BR recae en un preset pt).
  3. El preset que marcaste default.
  4. El primer preset del juego.

Así que un juego con cualquier preset siempre renderiza texto real, nunca claves en bruto. Marcas un preset por idioma como el default en el editor.

En el elemento <caputchin-game> también puedes pasar un objeto locale inline: un objeto JSON escrito como el valor del atributo, por ejemplo locale='{"start":"Go!"}'. El widget lo envía al servidor como la señal de idioma de ese montaje, y el servidor lo parsea y lo superpone sobre los presets resueltos, así que tus cadenas inline ganan sobre todo lo de arriba (incluidos tus overrides de equipo y de clave de sitio). Es una propiedad de tu propio markup, así que funciona en cualquier plan. El <caputchin-widget> de checkbox no acepta un locale inline; su atributo locale toma solo una etiqueta de idioma o un nombre de preset. Mira nuestra filosofía para saber por qué este autoría por incrustación es gratis.

La dirección del texto (de izquierda a derecha o de derecha a izquierda) se deriva de la etiqueta de idioma automáticamente, así que un idioma de derecha a izquierda se renderiza correctamente sin configuración extra.

Añade o extiende un idioma

Puedes extender cualquier idioma que el juego traiga: el nuevo preset hereda cada cadena del que extiendes, y sobrescribes solo las que cambias. Para añadir un idioma que el juego no traía, crea un preset con la etiqueta de ese idioma y rellena las cadenas.

Qué aplica, y dónde

Los overrides de idioma se resuelven en el servidor, gana-lo-más-específico: un preset de clave de sitio gana al preset del equipo, que gana al idioma incluido del juego. El idioma del navegador del visitante selecciona qué preset resuelto ve.

Véase también

En esta página