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: Sí
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: Sí
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: Sí
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: Sí
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: Sí
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: Sí
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: Sí
files[filePath].scopes[astKey].content
El texto de origen real que necesita traducción, extraído de tus componentes React.
- Tipo:
string
- Requerido: Sí