Herramientas de localización

probar mensajes ICUcomprueba qué frase sale con cada número

Ejecuta una plantilla ICU tradicional con argumentos JSON y compara el resultado para siete valores numéricos.

probar mensajes ICU

Mensaje ICU

Argumentos JSON

Resultado formateado

Resultados en valores límite

Añade una variable plural o selectordinal para ver los límites.

El mensaje y los argumentos se procesan solo en esta pestaña; no se suben.

Opciones de prueba

Las categorías plurales vienen de Intl en este navegador. Su versión de CLDR varía y puede diferir de la de tu aplicación.

El resultado está desactualizado. Ejecuta la prueba antes de exportar.

Una traducción puede sonar bien con 1 y fallar con 11 o 21. Para probar mensajes ICU, este panel muestra la categoría plural y la frase completa de cada valor, sin alterar el JSON original.

Puedes probar mensajes ICU durante la revisión de una sola cadena, al investigar una variable ausente o al validar un select anidado. La ejecución usa FormatJS y las reglas Intl del navegador actual; si tu aplicación usa otro motor o versión de CLDR, verifica también allí el resultado final.

¿Por qué probar mensajes ICU aquí?

Ver una frase correcta no demuestra que todas las ramas lo sean.

Comprueba 0, 11 y 21 en contexto

Al probar mensajes ICU se ejecutan 0, 1, 2, 5, 11, 21 y 101. Una rama exacta =0 tiene prioridad sobre la categoría plural. La tabla enseña la categoría y la frase renderizada, y conserva intactos tus argumentos JSON.

Una plantilla se ramifica en varias frases al cambiar el número y la regla del idioma.

Detecta variables que faltan

Una variable como {name} exige una clave JSON con el mismo nombre y las mismas mayúsculas. El validador señala valores ausentes y errores de sintaxis, en vez de dar por buena una plantilla sin sustituir. Select y plural anidados se procesan con el mismo motor.

Los argumentos entran en una plantilla y un token ausente detiene la salida final.

Tres comprobaciones antes de integrar la cadena

01

Usa la cadena real

Pega una plantilla MF1 o carga el ejemplo plural, select o anidado. El ejemplo incorrecto muestra qué ocurre si falta la rama obligatoria other. Las construcciones MF2 como {$name} no pertenecen a esta sintaxis.

02

Alinea JSON e idioma

Proporciona un objeto JSON, con claves que coincidan exactamente con las variables. Cambia el idioma BCP 47 para ver si la misma cifra elige otra categoría; la versión CLDR depende del navegador.

03

Lee los resultados límite

Selecciona una variable numérica y compara especialmente 0, 1, 11 y 21. Cada prueba sustituye ese valor solo durante el cálculo. Cuando la entrada cambia, copiar y descargar quedan inhabilitados hasta ejecutar de nuevo.

Del patrón al texto final

FormatJS interpreta y ejecuta

Para probar mensajes ICU se usa el mismo parser y formateador de FormatJS. Abarca plural, select, selectordinal, offset, ramas anidadas y formato numérico básico de MF1.

Matriz de siete valores

Una lista de reglas de plural no basta para revisar traducciones. La matriz ofrece valor, categoría y frase final, de modo que un fallo con 11 o 21 se puede reproducir sin editar el JSON.

Diagnósticos separados

La validación de sintaxis ICU informa línea y columna cuando el parser las ofrece. JSON inválido, variable ausente e idioma no disponible tienen errores distintos; una salida antigua no se puede copiar.

Cambios reversibles

La prueba automática espera a que dejes de escribir. Antes de cargar un ejemplo o borrar, aparece una vista previa y el número de caracteres; luego se puede deshacer una vez.

Alcance y límites del formato

Solo MessageFormat 1 tradicional
Esta página permite probar mensajes ICU de sintaxis MF1 según FormatJS. No mezcla ni convierte automáticamente MF2, como {$name} o .match.
CLDR depende del navegador
Intl.PluralRules decide las categorías. La página no puede leer una versión CLDR exacta ni prometer igualdad total con ICU4J, ICU4C o el motor de una aplicación diferente.
Una cadena, no un catálogo
La validación de sintaxis ICU aquí no sube archivos, no compara idioma origen y destino ni corrige por su cuenta una rama other ausente. Los argumentos raíz deben formar un objeto JSON.
El resultado es texto plano
Se rechazan etiquetas enriquecidas que requieren callbacks y no se ejecuta HTML. Fechas, horas y skeletons monetarios complejos se deben comprobar en el entorno de producción.

Preguntas frecuentes al probar mensajes ICU

¿Cómo mostrar plurales en Android?

Android tiene sus propios recursos y reglas de carga. Aquí puedes pegar una cadena ICU MF1 y observar cómo un locale selecciona ramas plural; esto no convierte automáticamente los recursos XML de Android ni sustituye la prueba dentro de la app.

¿Cómo manejo valores dinámicos como nombres o conteos?

Usa argumentos nombrados en la plantilla y claves iguales en el objeto JSON. Para un conteo emplea plural. El panel marca claves ausentes y valores no numéricos cuando la rama necesita un número.

¿Cómo manejo los plurales?

Incluye las categorías necesarias y conserva other, que es obligatorio. Para probar mensajes ICU con varias cifras, compara 0, 1, 2, 5, 11, 21 y 101 y revisa la frase real, no solo el nombre de la categoría.

¿Cómo manejo los géneros?

Select elige una rama a partir de un valor explícito como female, male u other. La herramienta no deduce el género de un nombre; introduce el valor que tu aplicación proporcionará.

¿Necesito soporte del formato de mensaje ICU?

Sí, si vas a ejecutar esta sintaxis en producción necesitas un motor compatible. Este tester usa FormatJS para MF1; otros marcos o MessageFormat 2 pueden interpretar de forma diferente la misma cadena.

¿El resultado difiere del de tu aplicación?

Empieza a probar mensajes ICU

Cambia count en el ejemplo y compara el resultado de 11 con el de 21.

Vuelve a probar mensajes ICU cuando una traducción falle solo para un valor concreto.

Se ejecuta localmente en tu navegador.