Saltar al contenido

Mensajes y parámetros

Deja que TypeScript compruebe las claves y los valores que necesita cada mensaje.

Interpolación

Escribe parámetros con la forma {name}. Cada argumento requerido admite string, number o boolean; un valor requerido no puede ser null ni undefined.

Catálogo JSON json
{
  "greeting": "Hola {name}",
  "ready": "Listo para traducir",
  "cart": {
    "items": {
      "plural": "total",
      "forms": {
        "=0": "Tu cesta está vacía",
        "one": "{count} elemento en tu cesta",
        "other": "{count} elementos en tu cesta"
      }
    }
  }
}
Llamadas válidas y errores esperados ts
const { t } = useI18n()
t('greeting', { name: 'Meeko' })
t('ready')
t('cart.items', { total: 3 })

// Diagnósticos esperados de TypeScript:
t('greeting')                        // falta name
t('cart.items', { total: 'tres' })    // requiere number
t('unknown')                        // clave inexistente

El mismo contrato entre idiomas

Todos los idiomas necesitan los mismos namespaces, claves y parámetros. Si una traducción usa name y otra user para el mismo mensaje, la preparación del módulo falla. Las categorías de plural pueden variar según el idioma.

Tipos públicos

Tipos exportados desde @meekojs/i18n
Nombre Tipo / valor inicial Descripción
I18n interface Contrato del traductor y sus formateadores.
I18nValue string | number | boolean Valores de interpolación y selectores.
I18nMessageValues<K> tipo genérico Argumentos requeridos para una clave del registro generado.

Claves dinámicas

Una unión de claves necesita argumentos válidos para todas las alternativas. Estrecha la clave con un if cuando cada caso tenga parámetros diferentes. Si cualquier alternativa requiere valores, el argumento no se puede omitir.

Los registros antiguos declarados como true mantienen su contrato abierto. El módulo genera registros nuevos con parámetros explícitos.

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres