# General Translation Integrations: collectContext
URL: https://generaltranslation.com/fr/docs/integrations/paraglide/reference/collect-context.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Analyse une application et écrit le contexte du code source de ses messages Paraglide JS à partir du code. Référence de l’API pour collectContext.

Importez-la depuis `@generaltranslation/paraglide-js/compiler`. La racine du paquet n’exporte rien. La commande [`paraglide-context`](/docs/integrations/paraglide/reference/paraglide-context) appelle cette fonction avec des options construites à partir de celles passées en ligne de commande.

## Vue d’ensemble [#overview]

```ts
function collectContext(options?: CollectContextOptions): Promise<void>;
```

```ts
import { collectContext } from '@generaltranslation/paraglide-js/compiler';

await collectContext({ root: './apps/web', include: ['src'] });
```

La promesse se résout une fois les fichiers de métadonnées écrits. Les problèmes qui entraînent l&#39;omission d&#39;un fichier, d&#39;un format ou d&#39;un répertoire sont signalés via [`logger.warn`](#logger) et ne provoquent pas son rejet. Elle est rejetée si un fichier de métadonnées ne peut pas être écrit.

## Options [#options]

Les chemins sont relatifs à la racine du projet : le `package.json` le plus proche, situé dans [`root`](#root) ou dans l’un de ses répertoires parents.

| Option                               | Description                                                                            | Type                         | Facultatif | Par défaut                                         |
| ------------------------------------ | -------------------------------------------------------------------------------------- | ---------------------------- | ---------- | -------------------------------------------------- |
| [`root`](#root)                      | Le projet, ou l’un de ses répertoires.                                                 | `string`                     | Oui        | Répertoire de travail                              |
| [`include`](#include)                | Chemins ou globs à analyser.                                                           | `string[]`                   | Oui        | L’ensemble du projet                               |
| [`exclude`](#exclude)                | Chemins ou globs à ignorer.                                                            | `string[]`                   | Oui        | `DEFAULT_EXCLUDE`                                  |
| [`radius`](#radius)                  | Nombre de lignes de contexte au-dessus et au-dessous de chaque utilisation.            | `number`                     | Oui        | `10`                                               |
| [`outdirs`](#outdirs)                | Répertoires de sortie Paraglide JS à utiliser sans vérification.                       | `string[]`                   | Oui        | Détectés automatiquement                           |
| [`inlangProjects`](#inlang-projects) | Répertoires de projets inlang dont les messages reçoivent des fichiers de métadonnées. | `string[]`                   | Oui        | Détectés automatiquement                           |
| [`autoImports`](#auto-imports)       | Noms utilisés sans importation.                                                        | `false \| AutoImportOptions` | Oui        | Détectés automatiquement                           |
| [`alias`](#alias)                    | Alias d’importation.                                                                   | `AliasOption`                | Oui        | —                                                  |
| [`bundlerConfigs`](#bundler-configs) | Configurations de bundler à partir desquelles lire les alias.                          | `BundlerConfig[]`            | Oui        | `defaultBundlerConfigs`                            |
| [`rootDirectory`](#root-directory)   | Répertoire à partir duquel sont résolus les chemins absolus tels que `/src/a.js`.      | `string`                     | Oui        | La racine définie dans la configuration du bundler |
| [`conditions`](#conditions)          | Conditions d’export des paquets.                                                       | `string[]`                   | Oui        | `["import", "module", "browser", "default"]`       |
| [`targets`](#targets)                | Ce qui est considéré comme du Paraglide JS.                                            | `ParaglideTarget[]`          | Oui        | `defaultTargets`                                   |
| [`languages`](#languages)            | Formats de fichiers pris en charge en plus de JavaScript et TypeScript.                | `SourceLanguage[]`           | Oui        | `defaultLanguages`                                 |
| [`logger`](#logger)                  | Reçoit les avertissements et le récapitulatif.                                         | `CollectorLogger`            | Oui        | Avertissements envoyés vers `console.warn`         |

## `root` [#root]

**Type** `string` · **Facultatif** · **Par défaut** répertoire de travail

Le projet, ou l&#39;un de ses répertoires, par exemple l&#39;une des applications d&#39;un monorepo. Les configurations de bundler sont recherchées dans ce répertoire ainsi qu&#39;à la racine du projet. Les projets inlang sont recherchés à partir de ce répertoire en remontant jusqu&#39;à la racine du monorepo.

## `include` [#include]

**Type** `string[]` · **Facultatif** · **Par défaut** l&#39;ensemble du projet

Chemins ou globs à analyser. Un chemin situé en dehors du projet est analysé dès lors qu&#39;il figure dans la liste (`../shared`). Une entrée inexistante fait l&#39;objet d&#39;un avertissement.

Toujours ignorés, quel que soit le contenu de `include` : `node_modules`, les sorties de compilation et de framework, ainsi que les fichiers exclus par un `.gitignore`.

## `exclude` [#exclude]

**Type** `string[]` · **Facultatif** · **Par défaut** `DEFAULT_EXCLUDE`

Chemins ou glob à ignorer. Si vous la définissez, cette option remplace la valeur par défaut, qui exclut les tests et les fichiers de configuration des outils :

```ts
import { DEFAULT_EXCLUDE } from '@generaltranslation/paraglide-js/compiler';

// *.config.?(c|m)[jt]s, **/*.{test,spec}.?(c|m)[jt]s?(x), **/__tests__/**,
// **/__mocks__/**, test/**, tests/**, e2e/**, cypress/**, playwright/**
await collectContext({ exclude: [...DEFAULT_EXCLUDE, 'src/stories/**'] });
```

## `radius` [#radius]

**Type** `number` · **Facultatif** · **Par défaut** `10`

Nombre de lignes de code source conservées au-dessus et en dessous de chaque utilisation, qui constituent les champs `before` et `after` de son [entrée de métadonnées](/docs/integrations/paraglide/reference/metadata-files#format).

## `outdirs` [#outdirs]

**Type** `string[]` · **Facultatif** · **Par défaut** détecté

Répertoires de sortie de Paraglide JS à utiliser sans vérification. Sans cette option, les répertoires de sortie sont [détectés](/docs/integrations/paraglide/reference/usage-detection#outdirs) automatiquement. Définissez-la lorsqu&#39;un avertissement indique qu&#39;un répertoire n&#39;a pas été retenu comme répertoire de sortie.

## `inlangProjects` [#inlang-projects]

**Type** `string[]` · **Facultatif** · **Par défaut** détecté

Répertoires de projets inlang, comme `project.inlang`. Chaque fichier de messages dans leur paramètre régional de base reçoit un fichier de métadonnées. Définir cette option remplace la [recherche du projet associé à chaque répertoire de sortie](/docs/integrations/paraglide/reference/usage-detection#inlang-projects).

## `autoImports` [#auto-imports]

**Type** `false | AutoImportOptions` · **Facultatif** · **Par défaut** détecté

Noms que l&#39;application utilise sans les importer. Chaque clé est un nom, et sa valeur indique le module qui l&#39;exporte, avec un chemin relatif à la racine du projet, ou `{ from, export }` lorsque l&#39;export porte un autre nom.

```ts
await collectContext({
  autoImports: {
    m: './src/paraglide/messages.js',
    t: { from: './src/i18n.js', export: 'translate' },
  },
});
```

Les importations automatiques d&#39;unplugin-auto-import, d&#39;unplugin-vue-components et de Nuxt sont lues depuis leurs fichiers `.d.ts` générés, sans qu&#39;il soit nécessaire de recourir à cette option. La valeur `false` désactive à la fois la détection et l&#39;option.

## `alias` [#alias]

**Type** `AliasOption` · **Facultatif** · **Par défaut** —

Alias d&#39;importation, à l&#39;image du `resolve.alias` d&#39;un bundler. Il s&#39;agit soit d&#39;un objet associant un nom à son remplacement, soit d&#39;une liste de `{ find, replacement, exact? }` où `find` est une chaîne de caractères ou une `RegExp`. Ils sont appliqués avant les alias définis dans la configuration du bundler.

```ts
await collectContext({
  alias: [
    { find: '~', replacement: '/app/src' }, // ~ et ~/…
    { find: 'config', replacement: '/app/src/config.ts', exact: true }, // config seul
    { find: /^@ui\/(.*)$/, replacement: '/app/packages/ui/src/$1' },
  ],
});
```

(Voir [Résoudre les importations](/docs/integrations/paraglide/guides/resolving-imports)).

## `bundlerConfigs` [#bundler-configs]

**Type** `BundlerConfig[]` · **Facultatif** · **Par défaut** `defaultBundlerConfigs`

Configurations de bundler dans lesquelles lire les alias d&#39;importation : par défaut, Vite, webpack et rspack. Seul le premier fichier de configuration trouvé est lu. Avec `[]`, aucune n&#39;est lue. Pour en ajouter une, consultez [`BundlerConfig`](/docs/integrations/paraglide/reference/extension-api#bundler-configs).

## `rootDirectory` [#root-directory]

**Type** `string` · **Facultatif** · **Par défaut** la racine définie dans la configuration du bundler

Le répertoire à partir duquel sont résolus les chemins absolus tels que `/src/a.js`, à l&#39;instar de l&#39;option `root` de Vite. Il est fourni par la configuration Vite. En l&#39;absence de celle-ci, ces chemins sont résolus comme des chemins du système de fichiers.

## `conditions` [#conditions]

**Type** `string[]` · **Facultatif** · **Par défaut** `["import", "module", "browser", "default"]`

Les conditions utilisées pour sélectionner une entrée dans les champs `exports` et `imports` d&#39;un paquet.

## `targets` [#targets]

**Type** `ParaglideTarget[]` · **Facultatif** · **Par défaut** `defaultTargets`

Indique quels fichiers résolus relèvent de Paraglide JS et ce que représente chacun de leurs exports. (Voir [Cibles](/docs/integrations/paraglide/reference/extension-api#targets).)

## `languages` [#languages]

**Type** `SourceLanguage[]` · **Facultatif** · **Par défaut** `defaultLanguages`

Formats de fichiers analysés en plus de JavaScript, TypeScript et JSX (voir [Formats de fichiers pris en charge](/docs/integrations/paraglide/reference/file-formats) et [Ajouter des formats de fichiers](/docs/integrations/paraglide/guides/adding-file-formats)).

## `logger` [#logger]

**Type** `CollectorLogger` · **Facultatif** · **Par défaut** avertissements envoyés vers `console.warn`

Un objet exposant `warn(message)` et `info(message)`. Les avertissements indiquent ce qui a été ignoré. `info` reçoit le résumé ainsi que la configuration dont les alias ont été lus ; le logger par défaut ne les affiche pas.

```ts
await collectContext({ logger: console }); // avertissements et résumé
```

## Exemple [#example]

Avant de lancer la traduction, collectez le contexte d&#39;une application d&#39;un monorepo, y compris celui d&#39;un paquet partagé :

```ts title="scripts/collect-context.ts"
import {
  collectContext,
  DEFAULT_EXCLUDE,
} from '@generaltranslation/paraglide-js/compiler';

await collectContext({
  root: './apps/web',
  include: ['src', '../../packages/ui/src'],
  exclude: [...DEFAULT_EXCLUDE, '**/*.stories.tsx'],
  radius: 5,
  logger: console,
});
```

## Sitemap

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