---
type: how-to
title: Personaliza el idioma de un juego
summary: Sobrescribe las cadenas traducidas de un juego en la pestaña Locale, agrupadas por idioma; disponible desde el plan Alpha en adelante.
---

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](/docs/understanding-caputchin/philosophy) 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

- [Visión general de personalización de juego](/docs/game-customization/overview): registra un juego y gestiónalo.
- [Configuraciones](/docs/game-customization/configurations) y [skin](/docs/game-customization/skin): los otros dos ejes.
- [Referencia de esquema](/docs/references/customization-schema): el modelo de presets y los tipos de campo.
