Guías

Formato de mensajes

Una sintaxis pequeña, con Intl nativo por debajo: plurales, género y formato sin aprender ICU completo.

Interpolación

"Hola {name}"          → t('saludo', { name: 'Aron' })

Los valores se formatean solos por tipo: números vía Intl.NumberFormat, fechas vía Intl.DateTimeFormat, strings tal cual. Un param faltante muestra el placeholder literal, fácil de detectar y nunca un crash.

Formatters

Agrega :formatter (con /arg opcional) a un param:

SintaxisResultado
{n:number}Número del locale: 1,234.56 / 1234,56
{n:integer}Redondeado, sin decimales
{n:percent}0.550%
{n:currency/EUR}Moneda con código ISO
{d:date/long}dateStyle: short · medium · long · full
{d:time/short}Variantes de timeStyle

Los formatters custom se conectan al crear la instancia. La firma completa es (value, locale, arg?) => string, donde locale es el idioma activo y arg es lo que sigue al / en el placeholder:

createVerbaly({
  formatters: { upper: (v) => String(v).toUpperCase() },
});
// "{word:upper}" → HOLA

Tiempo relativo, listas y unidades

Desde 0.11.0 el formato cubre el resto del Intl moderno, siempre con cero dependencias:

"Updated {when:relative}"       → Updated 2 hours ago · yesterday
"Ready {n:relative/day}"        → Ready in 3 days
"Works in {langs:list}"         → Works in English, Spanish, and Portuguese
"Pick {opts:list/or}"           → Pick red, green, or blue
"{d:unit/kilometer}"            → 3 km

Plurales y selects: una sola sintaxis

"{count | =0: sin mensajes | one: un mensaje | other: # mensajes}"
"{gender | male: él | female: ella | other: elle}"

Escape-hatch ICU

¿Tienes strings ICU MessageFormat existentes, o necesitas su sintaxis exacta? Escribe ICU y Verbaly lo detecta automáticamente y lo parsea al mismo motor, con cero dependencias extra.

"{count, plural, one {# item} other {# items}}"
"{gender, select, male {he} female {she} other {they}}"
"{n, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}"

Escapes

EscribesObtienes
{{{ literal
}}} literal
||| literal dentro de variantes
### literal dentro de variantes
Copiado en el portapapeles