meta.json

¿Qué es el archivo meta.json? ¿Cómo se utiliza?

Introducción

meta.json es un archivo que el Compilador de Lingo.dev genera durante el tiempo de compilación. Realiza un seguimiento de todo el contenido traducible descubierto en una aplicación React, sirviendo como un inventario que conecta el análisis en tiempo de compilación con la traducción en tiempo de ejecución.

Nota: Todos los cambios en el archivo meta.json deben ser confirmados en el repositorio.

Archivo de ejemplo

Este es un ejemplo de un archivo meta.json (muy mínimo):

{
  "version": 0.1,
  "files": {
    "components/hero.tsx": {
      "scopes": {
        "3/declaration/body/0/argument/1/1": {
          "type": "element",
          "hash": "a1b2c3d4e5f6...",
          "context": "",
          "skip": false,
          "overrides": {},
          "content": "Welcome to our app"
        }
      }
    }
  }
}

Para entender qué significan todas las propiedades, consulta Propiedades del esquema.

Ubicación del archivo

Por defecto, el archivo meta.json se genera en un directorio src/lingo, relativo a la ubicación de la configuración del compilador (por ejemplo, un archivo vite.config.ts).

Para aprender cómo personalizar esta ubicación, consulta Opciones del compilador.

Propiedades del esquema

Esta sección describe todas las propiedades que se encuentran en un archivo meta.json.

version

Identificador de versión del esquema utilizado para verificar la compatibilidad y futuras migraciones.

  • Tipo: number
  • Requerido:

files

Objeto contenedor que organiza todos los ámbitos traducibles por sus rutas de archivo fuente. Cada clave representa una ruta relativa desde la raíz del código fuente (por ejemplo, "components/hero.tsx", "pages/home.jsx").

  • Tipo: object
  • Requerido:

files[filePath].scopes

Contenedor para todo el contenido traducible descubierto en el archivo fuente específico. Cada clave es un identificador basado en AST que identifica de manera única una pieza de contenido traducible dentro del archivo.

  • Tipo: object
  • Requerido:

files[filePath].scopes[astKey].type

Indica si el contenido traducible proviene del contenido de un elemento JSX o del valor de un atributo JSX.

  • Tipo: "element" | "attribute"
  • Requerido:

files[filePath].scopes[astKey].hash

Hash SHA-256 del contenido de origen utilizado para la detección de cambios. Cuando el contenido de origen cambia, este hash cambia, indicando que puede ser necesaria una retraducción.

  • Tipo: string
  • Requerido:

files[filePath].scopes[astKey].context

Información contextual para ayudar a los traductores a comprender el propósito o la ubicación del contenido.

  • Tipo: string
  • Requerido: No

files[filePath].scopes[astKey].skip

Indicador que señala si este contenido debe ser excluido de la traducción.

  • Tipo: boolean
  • Requerido:

files[filePath].scopes[astKey].overrides

Anulaciones de traducción específicas por localización que evitan el proceso normal de traducción. Útil para nombres de marca, términos técnicos o traducciones personalizadas.

  • Tipo: object
  • Requerido:

files[filePath].scopes[astKey].content

El texto de origen real que necesita traducción, extraído de tus componentes React.

  • Tipo: string
  • Requerido: