# General Translation Integrations: collectContext
URL: https://generaltranslation.com/it/docs/integrations/paraglide/reference/collect-context.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Analizza un'app e scrive, a partire dal codice, il contesto del codice sorgente dei suoi messaggi Paraglide JS. Riferimento API per collectContext.

Importala da `@generaltranslation/paraglide-js/compiler`. La radice del pacchetto non esporta nulla. Il comando [`paraglide-context`](/docs/integrations/paraglide/reference/paraglide-context) chiama questa funzione con opzioni ricavate dai suoi flag.

## Panoramica [#overview]

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

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

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

La promise si risolve non appena i file di metadati sono stati scritti. I problemi che comportano l&#39;esclusione di un file, di un formato o di una directory vengono segnalati tramite [`logger.warn`](#logger) e non causano il rifiuto della promise. La promise viene rifiutata quando non è possibile scrivere un file di metadati.

## Opzioni [#options]

I percorsi sono relativi alla radice del progetto, ovvero il `package.json` più vicino in [`root`](#root) o in una directory superiore.

| Opzione                              | Descrizione                                                                         | Tipo                         | Facoltativo | Predefinito                                  |
| ------------------------------------ | ----------------------------------------------------------------------------------- | ---------------------------- | ----------- | -------------------------------------------- |
| [`root`](#root)                      | Il progetto, o una directory al suo interno.                                        | `string`                     | Sì          | Directory di lavoro                          |
| [`include`](#include)                | Percorsi o glob da analizzare.                                                      | `string[]`                   | Sì          | L&#39;intero progetto                        |
| [`exclude`](#exclude)                | Percorsi o glob da ignorare.                                                        | `string[]`                   | Sì          | `DEFAULT_EXCLUDE`                            |
| [`radius`](#radius)                  | Righe di contesto sopra e sotto ogni utilizzo.                                      | `number`                     | Sì          | `10`                                         |
| [`outdirs`](#outdirs)                | Directory di output di Paraglide JS da usare senza verifica.                        | `string[]`                   | Sì          | Rilevate automaticamente                     |
| [`inlangProjects`](#inlang-projects) | Directory dei progetti inlang per i cui messaggi vengono generati file di metadati. | `string[]`                   | Sì          | Rilevate automaticamente                     |
| [`autoImports`](#auto-imports)       | Nomi usati senza importazione.                                                      | `false \| AutoImportOptions` | Sì          | Rilevati automaticamente                     |
| [`alias`](#alias)                    | Alias di importazione.                                                              | `AliasOption`                | Sì          | —                                            |
| [`bundlerConfigs`](#bundler-configs) | Config dei bundler da cui leggere gli alias.                                        | `BundlerConfig[]`            | Sì          | `defaultBundlerConfigs`                      |
| [`rootDirectory`](#root-directory)   | Directory da cui vengono risolti i percorsi assoluti come `/src/a.js`.              | `string`                     | Sì          | La radice della config del bundler           |
| [`conditions`](#conditions)          | Condizioni di export del pacchetto.                                                 | `string[]`                   | Sì          | `["import", "module", "browser", "default"]` |
| [`targets`](#targets)                | Cosa viene considerato Paraglide JS.                                                | `ParaglideTarget[]`          | Sì          | `defaultTargets`                             |
| [`languages`](#languages)            | Formati di file aggiuntivi rispetto a JavaScript e TypeScript.                      | `SourceLanguage[]`           | Sì          | `defaultLanguages`                           |
| [`logger`](#logger)                  | Riceve gli avvisi e il riepilogo.                                                   | `CollectorLogger`            | Sì          | Avvisi inviati a `console.warn`              |

## `root` [#root]

**Tipo** `string` · **Facoltativo** · **Predefinito** directory di lavoro

Il progetto, o una sua directory, ad esempio una singola app di un monorepo. I file di config del bundler vengono cercati qui e nella radice del progetto. I progetti inlang vengono cercati a partire da qui, risalendo fino alla radice del monorepo.

## `include` [#include]

**Tipo** `string[]` · **Facoltativo** · **Predefinito** l&#39;intero progetto

Percorsi o glob da analizzare. Un percorso esterno al progetto viene analizzato se è incluso nell&#39;elenco (`../shared`). Una voce inesistente viene segnalata con un avviso.

Sempre ignorati, indipendentemente dal contenuto di `include`: `node_modules`, l&#39;output di build e dei framework e i file esclusi da un `.gitignore`.

## `exclude` [#exclude]

**Tipo** `string[]` · **Facoltativo** · **Predefinito** `DEFAULT_EXCLUDE`

Percorsi o glob da escludere. Se impostato, sostituisce il valore predefinito, che esclude i test e i file di config degli strumenti:

```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]

**Tipo** `number` · **Facoltativo** · **Predefinito** `10`

Numero di righe di codice sorgente conservate sopra e sotto ciascun utilizzo, come `before` e `after` della relativa [voce di metadati](/docs/integrations/paraglide/reference/metadata-files#format).

## `outdirs` [#outdirs]

**Tipo** `string[]` · **Facoltativo** · **Predefinito** rilevato

Directory di output di Paraglide JS da usare senza verificarle. Senza questa opzione, le directory di output vengono [rilevate](/docs/integrations/paraglide/reference/usage-detection#outdirs) automaticamente. Impostala quando un avviso segnala che una directory non è stata utilizzata come directory di output.

## `inlangProjects` [#inlang-projects]

**Tipo** `string[]` · **Facoltativo** · **Predefinito** rilevato

Directory dei progetti inlang, ad esempio `project.inlang`. Per ogni file di messaggi dell&#39;impostazione regionale di base di ciascun progetto viene generato un file di metadati. Se impostata, questa opzione sostituisce la [ricerca del progetto associato a ciascuna directory di output](/docs/integrations/paraglide/reference/usage-detection#inlang-projects).

## `autoImports` [#auto-imports]

**Tipo** `false | AutoImportOptions` · **Facoltativo** · **Predefinito** rilevato

Nomi che l&#39;app usa senza importarli. Ogni chiave è un nome e il relativo valore è il modulo che lo esporta, con percorso relativo alla radice del progetto, oppure `{ from, export }` quando l&#39;export ha un nome diverso.

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

Le importazioni automatiche di unplugin-auto-import, unplugin-vue-components e Nuxt vengono lette dai rispettivi file `.d.ts` generati anche senza questa opzione. Impostandola su `false` si disattivano sia il rilevamento sia l&#39;opzione stessa.

## `alias` [#alias]

**Tipo** `AliasOption` · **Facoltativo** · **Predefinito** —

Alias di importazione, analoghi a `resolve.alias` di un bundler. Può essere un oggetto che mappa ogni nome alla relativa sostituzione, oppure un elenco di `{ find, replacement, exact? }` in cui `find` è una stringa o una `RegExp`. Hanno la precedenza sugli alias definiti nella config di un bundler.

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

(Vedi [Risoluzione delle importazioni](/docs/integrations/paraglide/guides/resolving-imports)).

## `bundlerConfigs` [#bundler-configs]

**Tipo** `BundlerConfig[]` · **Facoltativo** · **Predefinito** `defaultBundlerConfigs`

Config dei bundler da cui leggere gli alias di importazione: per impostazione predefinita Vite, webpack e rspack. Viene letto solo il primo file di config trovato. Con `[]` non ne viene letto nessuno. Per aggiungerne una, consulta [`BundlerConfig`](/docs/integrations/paraglide/reference/extension-api#bundler-configs).

## `rootDirectory` [#root-directory]

**Tipo** `string` · **Facoltativo** · **Predefinito** la radice indicata nella config del bundler

La directory a partire dalla quale vengono risolti i percorsi relativi alla radice come `/src/a.js`, analogamente a `root` di Vite. Il valore viene fornito da una config di Vite; in sua assenza, questi percorsi vengono risolti come percorsi del file system.

## `conditions` [#conditions]

**Tipo** `string[]` · **Facoltativo** · **Predefinito** `["import", "module", "browser", "default"]`

Le condizioni utilizzate per selezionare una voce tra gli `exports` e gli `imports` di un pacchetto.

## `targets` [#targets]

**Tipo** `ParaglideTarget[]` · **Facoltativo** · **Predefinito** `defaultTargets`

Indica quali file risolti appartengono a Paraglide JS e cosa rappresenta ciascuno dei loro export (vedi [Target](/docs/integrations/paraglide/reference/extension-api#targets)).

## `languages` [#languages]

**Tipo** `SourceLanguage[]` · **Facoltativo** · **Predefinito** `defaultLanguages`

I formati di file analizzati oltre a JavaScript, TypeScript e JSX. (Vedi [Formati di file supportati](/docs/integrations/paraglide/reference/file-formats) e [Aggiungere formati di file](/docs/integrations/paraglide/guides/adding-file-formats).)

## `logger` [#logger]

**Tipo** `CollectorLogger` · **Facoltativo** · **Predefinito** avvisi inviati a `console.warn`

Un oggetto con i metodi `warn(message)` e `info(message)`. Gli avvisi indicano cosa è stato ignorato. `info` riceve il riepilogo e la config da cui sono stati letti gli alias; il logger predefinito lo scarta.

```ts
await collectContext({ logger: console }); // avvisi e riepilogo
```

## Esempio [#example]

Prima di tradurre, raccogli il contesto di una singola app in un monorepo, compreso un pacchetto condiviso:

```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.
