# General Translation Integrations: Ajouter le contexte du code source
URL: https://generaltranslation.com/fr/docs/integrations/paraglide/guides/adding-source-context.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Comment transmettre à la traduction, comme contexte, le code qui entoure chaque message Paraglide JS.

`@generaltranslation/paraglide-js` détecte chaque utilisation d’un message Paraglide JS dans votre application et enregistre le code qui l’entoure. Un message comme « Order » est ainsi transmis à la traduction avec le code qui indique s’il s’agit d’un bouton, d’un titre, d’un nom ou d’un verbe.

Il lit vos fichiers sources. Il ne modifie pas Paraglide JS et n’exécute jamais votre bundler : il fonctionne donc quelle que soit la façon dont votre application est compilée.

## Avant de commencer [#before-start]

Vous aurez besoin de :

* Node.js 20 ou version ultérieure.
* Paraglide JS 1, 2 ou 3, compilé au moins une fois pour que son répertoire de sortie existe.
* Des messages stockés au format de message inlang (`plugin.inlang.messageFormat`), par exemple `messages/en.json`.
* Des fichiers de messages traduits avec la CLI. (Consultez le [Démarrage rapide](/docs/integrations/paraglide/quickstart).)
* Pour les composants écrits dans un autre langage que JavaScript, TypeScript ou JSX, l’outil de langage du framework installé dans votre application. (Consultez [Formats de fichiers pris en charge](/docs/integrations/paraglide/reference/file-formats).)

<Callout type="info">
  Le contexte source n’est pour l’instant pas joint lorsque vous utilisez la règle `jsonSchema` du [Démarrage rapide](/docs/integrations/paraglide/quickstart#quickstart). La CLI signale que les métadonnées n’ont pas été jointes et traduit vos messages sans contexte source. Conservez cette règle pour protéger les déclarations de variantes et les sélecteurs ; ne la supprimez pas dans le but d’activer le contexte source.
</Callout>

## Ajouter du contexte [#add-context]

Installez le paquet, collectez le contexte, puis traduisez comme d&#39;habitude.

### 1. Installer `@generaltranslation/paraglide-js`

<Tabs items={['npm', 'yarn', 'bun', 'pnpm']}>
  <Tab value="npm">
    ```bash
    npm install --save-dev @generaltranslation/paraglide-js
    ```
  </Tab>

  <Tab value="yarn">
    ```bash
    yarn add --dev @generaltranslation/paraglide-js
    ```
  </Tab>

  <Tab value="bun">
    ```bash
    bun add --dev @generaltranslation/paraglide-js
    ```
  </Tab>

  <Tab value="pnpm">
    ```bash
    pnpm add --save-dev @generaltranslation/paraglide-js
    ```
  </Tab>
</Tabs>

### 2. Collecter le contexte

Exécutez [`paraglide-context`](/docs/integrations/paraglide/reference/paraglide-context) depuis le répertoire de votre application. Avec `--verbose`, la commande affiche le nombre d&#39;utilisations trouvées et les répertoires de sortie Paraglide JS utilisés.

```bash
npx paraglide-context --verbose
```

Chaque fichier de messages de votre paramètre régional de base est accompagné d&#39;un fichier de métadonnées placé à côté. Pour chaque message utilisé, ce fichier répertorie le code qui entoure ses utilisations, regroupé par fichier source :

```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…"
        }
      ]
    }
  }
}
```

<Callout type="info">
  Les avertissements précisent ce qui a été ignoré et comment y remédier : un alias d&#39;importation non résolu, un outil de langage manquant ou un répertoire non reconnu comme sortie Paraglide JS. (Voir [Résoudre les importations](/docs/integrations/paraglide/guides/resolving-imports)).
</Callout>

### 3. Traduire vos messages

Exécutez [`gt translate`](/docs/cli/reference/commands/translate). La CLI détecte chaque fichier de métadonnées placé à côté de son fichier de messages et l&#39;envoie avec les messages sous forme de [métadonnées associées aux clés](/docs/cli/reference/keyed-metadata).

```bash
npx gt translate
```

Pour que le contexte reste à jour, collectez-le avant chaque traduction :

```json title="package.json"
{
  "scripts": {
    "translate": "paraglide-context && gt translate"
  }
}
```

<Callout type="info">
  L&#39;ajout d&#39;un nouveau contexte ne suffit pas à déclencher la retraduction d&#39;un message. Un message n&#39;est retraduit que lorsque son texte source est modifié.
</Callout>

## Next steps

- /docs/integrations/paraglide/guides/resolving-imports
- /docs/integrations/paraglide/guides/adding-file-formats

## Sitemap

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