# General Translation Integrations: Archivos de metadatos
URL: https://generaltranslation.com/es/docs/integrations/paraglide/reference/metadata-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Los archivos que contienen el contexto del código fuente de los mensajes de Paraglide JS. Referencia de los archivos de metadatos.

Un archivo de metadatos se ubica junto a un archivo de mensajes de la configuración regional base y refleja su estructura: a `messages/en.json` le corresponde `messages/en.metadata.json`. Usa el formato de [metadatos asociados a claves](/docs/cli/reference/keyed-metadata), por lo que la CLI lo sube junto con los mensajes.

## Formato [#format]

Cada mensaje utilizado tiene un campo [`sourceCode`](/docs/cli/reference/keyed-metadata#source-code) que recoge el código que rodea cada uso, agrupado por archivo de origen. Las rutas son relativas a la raíz del proyecto.

```json title="messages/en.json"
{
  "greeting": "Hello, {username}!",
  "legacy_banner": "Welcome back"
}
```

```json title="messages/en.metadata.json"
{
  "greeting": {
    "sourceCode": {
      "src/Header.tsx": [
        {
          "before": "import { m } from './paraglide/messages.js';\n…",
          "target": "  return <h1>{m.greeting({ username })}</h1>;",
          "after": "}\n…"
        }
      ]
    }
  }
}
```

`legacy_banner` no se usa en la app, por lo que no tiene ninguna entrada.

| Campo    | Descripción                                                                                                                                                | Tipo     |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| `before` | Las líneas anteriores al uso: 10 de forma predeterminada, según lo definido por [`radius`](/docs/integrations/paraglide/reference/collect-context#radius). | `string` |
| `target` | Las líneas que contienen el uso.                                                                                                                           | `string` |
| `after`  | Las líneas posteriores al uso.                                                                                                                             | `string` |

## Qué archivos y claves se escriben [#written]

* **Solo la configuración regional base.** Los archivos de otras configuraciones regionales, como `messages/fr.json`, no tienen archivo de metadatos: el contexto es el mismo para todos los idiomas de destino.
* **Solo claves del archivo de mensajes.** Solo se escriben las claves que existen en el archivo de mensajes, porque la CLI rechaza cualquier clave de metadatos que no esté en el archivo de origen. Las claves anidadas se conservan anidadas.
* **Solo mensajes utilizados.** Un mensaje que no se usa no tiene entrada.
* **Nombres dinámicos.** Un nombre calculado como ``m[`error_${code}`]`` se asigna a todos los mensajes que coincidan con `error_*`. `m[key]` por sí solo no se asigna a ninguno.
* **Varios proyectos de inlang.** Cada uso se asigna al proyecto desde el que se compiló su directorio de salida de Paraglide JS.

Los archivos de mensajes se leen del `settings.json` de cada proyecto de inlang: su `baseLocale` y el `pathPattern` de `plugin.inlang.messageFormat`.

## Cómo se actualizan los archivos [#updates]

* `sourceCode` se reemplaza en cada ejecución. Los campos que escribes a mano, [`context`](/docs/cli/reference/keyed-metadata#context) y [`maxChars`](/docs/cli/reference/keyed-metadata#max-chars), se conservan.
* Cada archivo se escribe de forma atómica y solo cuando cambia su contenido.
* Si un archivo de metadatos no se puede leer o no es un objeto JSON, se deja tal cual y se muestra una advertencia.
* Si un proyecto ya no importa Paraglide JS, sus archivos de metadatos se conservan tal cual: no se encuentra su directorio de salida y, por lo tanto, tampoco su proyecto de inlang.

## Límites [#limits]

* Las aplicaciones que comparten un mismo proyecto de inlang sobrescriben el `sourceCode` de las demás. Prevalece la última que se analiza.
* Los mensajes almacenados por otros plugins de formato de inlang, como i18next, no generan ningún archivo de metadatos.
* El servicio de traducción lee un número limitado de entradas por archivo y trunca las más largas. (Consulta [`sourceCode`](/docs/cli/reference/keyed-metadata#source-code)).

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
