# General Translation Integrations: Fichiers de métadonnées
URL: https://generaltranslation.com/fr/docs/integrations/paraglide/reference/metadata-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Les fichiers qui contiennent le contexte issu du code source des messages Paraglide JS. Référence des fichiers de métadonnées.

Un fichier de métadonnées est placé à côté d’un fichier de messages du paramètre régional de base, dont il reprend la structure : `messages/en.json` est accompagné de `messages/en.metadata.json`. Il utilise le format des [métadonnées associées aux clés](/docs/cli/reference/keyed-metadata), ce qui permet à la CLI de le téléverser avec les messages.

## Format [#format]

Chaque message utilisé possède un champ [`sourceCode`](/docs/cli/reference/keyed-metadata#source-code) qui recense, par fichier source, le code situé autour de chacune de ses occurrences. Les chemins sont relatifs à la racine du projet.

```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` n’est pas utilisé dans l’application : il n’a donc pas d’entrée.

| Champ    | Description                                                                                                                                                 | Type     |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| `before` | Les lignes situées au-dessus de l’occurrence : 10 par défaut, valeur définie par [`radius`](/docs/integrations/paraglide/reference/collect-context#radius). | `string` |
| `target` | Les lignes de l’occurrence elle-même.                                                                                                                       | `string` |
| `after`  | Les lignes situées en dessous de l’occurrence.                                                                                                              | `string` |

## Quels fichiers et quelles clés sont écrits [#written]

* **Paramètre régional de base uniquement.** Les fichiers des autres paramètres régionaux, comme `messages/fr.json`, n&#39;ont pas de fichier de métadonnées : le contexte est identique pour toutes les langues cibles.
* **Clés du fichier de messages uniquement.** Seules les clés présentes dans le fichier de messages sont écrites, car le CLI rejette toute clé de métadonnées absente du fichier source. Les clés imbriquées restent imbriquées.
* **Messages utilisés uniquement.** Un message inutilisé n&#39;a pas d&#39;entrée.
* **Noms dynamiques.** Un nom calculé comme ``m[`error_${code}`]`` est associé à tous les messages correspondant à `error_*`. `m[key]` seul n&#39;est associé à aucun message.
* **Plusieurs projets inlang.** Une utilisation est associée au projet à partir duquel son répertoire de sortie Paraglide JS a été compilé.

Les fichiers de messages sont déterminés à partir du `settings.json` de chaque projet inlang : son `baseLocale` et le `pathPattern` de `plugin.inlang.messageFormat`.

## Mise à jour des fichiers [#updates]

* `sourceCode` est remplacé à chaque exécution. Les champs que vous renseignez manuellement, [`context`](/docs/cli/reference/keyed-metadata#context) et [`maxChars`](/docs/cli/reference/keyed-metadata#max-chars), sont conservés.
* Chaque fichier est écrit de manière atomique, et uniquement si son contenu change.
* Un fichier de métadonnées illisible, ou qui n&#39;est pas un objet JSON, est laissé intact et un avertissement est émis.
* Un projet qui n&#39;importe plus Paraglide JS conserve ses fichiers de métadonnées en l&#39;état : son répertoire de sortie, et donc son projet inlang, ne peut plus être trouvé.

## Limites [#limits]

* Les applications qui partagent un même projet inlang écrasent mutuellement leur `sourceCode`. C&#39;est la dernière analysée qui l&#39;emporte.
* Les messages stockés par d&#39;autres plugins de format inlang, comme i18next, ne reçoivent aucun fichier de métadonnées.
* Le service de traduction ne lit qu&#39;un nombre limité d&#39;entrées par fichier et tronque les entrées trop longues. (Voir [`sourceCode`](/docs/cli/reference/keyed-metadata#source-code)).

## Sitemap

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