v1.0.26
Runtime

TextLocalizer

Para traducir un texto puntual que necesita datos dinamicos

¿Que hace?

El TextLocalizer es un componente opcional que se añade a un texto individual cuando ese texto necesita algo especial que el CanvasLocalizer no puede hacer:

Para textos normales (titulos, botones, etiquetas) no necesitas TextLocalizer: el CanvasLocalizer ya los gestiona automaticamente. Usa TextLocalizer solo cuando un texto cambia en tiempo real con valores que tu mundo calcula.

Puedes usar ambos componentes en el mismo Canvas sin problema. El CanvasLocalizer ignora automaticamente los textos que ya tienen un TextLocalizer, asi que no se pelean entre si.

Cuando usar uno u otro

CanvasLocalizerTextLocalizer
Para textos... fijos (titulos, botones, etiquetas) que cambian en tiempo real con datos del mundo
Cantidad todos los textos del Canvas a la vez uno por componente
Configuracion automatica (escaneo) manual (uno por uno)
¿Necesita programar? no si, requiere un script UdonSharp que llame al componente
TextLocalizer esta pensado para usuarios que ya saben escribir scripts UdonSharp. Si solo quieres traducir tus textos normales, no lo necesitas: el CanvasLocalizer es suficiente.

Como configurarlo

Selecciona el GameObject que contiene el texto que quieres traducir y añade el componente TextLocalizer. En el inspector veras:

El componente detecta solo si el GameObject tiene un texto TMP o un texto Legacy, no tienes que decirselo.

Datos dinamicos en las traducciones

Si quieres mostrar un texto como "Hola, Bender. Tienes 5 mensajes" donde "Bender" y "5" cambian segun el jugador, escribe la traduccion en el JSON con marcadores {0}, {1}, {2}:

{
  "es": { "welcome": "Hola {0}, tienes {1} mensajes" },
  "en": { "welcome": "Hello {0}, you have {1} messages" },
  "ja": { "welcome": "こんにちは{0}、{1}件のメッセージがあります" }
}

Despues, desde tu script UdonSharp, llamas al TextLocalizer y le pasas los valores:

// Desde otro script UdonSharp:
textLocalizer.SetParams2("Bender", "5");
// En español: "Hola Bender, tienes 5 mensajes"
// En japones: "こんにちはBender、5件のメッセージがあります"

Tienes tres metodos segun cuantos valores quieras inyectar:

Pluralizacion (singular / plural)

Si necesitas textos como "1 mensaje" vs "5 mensajes", escribe varias variantes en el JSON con los sufijos _zero, _one y _other:

{
  "es": {
    "messages_zero": "Sin mensajes",
    "messages_one": "{n} mensaje",
    "messages_other": "{n} mensajes"
  }
}

El marcador {n} se sustituye automaticamente por el numero. Para usar pluralizacion necesitas llamar al manager desde tu script con GetPluralValue("messages", 5).

¿Necesitas la lista completa de metodos publicos del componente para programar tus propios scripts? Consulta la API Runtime en la seccion "Para programadores".