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.
{
"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"
}
}
}
}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 inexistenteEl 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
| 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.