Saltar al contenido

Namespaces

Divide los catálogos y carga los mensajes que necesita cada ruta.

common y catálogos adicionales

meeko.config.ts ts
import { defineMeekoConfig } from '@meekojs/meeko/framework'

export default defineMeekoConfig({
  modules: ['@meekojs/i18n'],
  i18n: {
    defaultLocale: 'es',
    catalogs: {
      es: {
        common: 'app/locales/es/common.json',
        checkout: 'app/locales/es/checkout.json',
      },
      en: {
        common: 'app/locales/en/common.json',
        checkout: 'app/locales/en/checkout.json',
      },
    },
    routes: { '/checkout': ['checkout'] },
  },
})

common se carga siempre, junto a los namespaces de global, como el catálogo de un Shell compartido. routes relaciona IDs exactos del manifiesto con namespaces adicionales. Todos los idiomas declaran los mismos namespaces.

Un namespace real en esta página

Esta ruta carga el namespace checkout mediante la opción routes del sitio. El siguiente resultado procede de ese catálogo:

Confirmar pedido

Tu pedido tiene 3 productos.

app/locales/es/checkout.json json
{
  "checkout": {
    "title": "Confirmar pedido",
    "summary": "Tu pedido tiene {total} productos."
  }
}

Organización de las claves

El nombre del namespace organiza la carga; no añade un prefijo a las claves. Aquí checkout.title procede del objeto checkout del JSON. Las claves de namespaces distintos deben ser únicas.

Los tipos generados incluyen las claves de todos los namespaces. Usa cada mensaje en una ruta que cargue su catálogo: una clave conocida por TypeScript también necesita estar disponible en ejecución.

¿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