# General Translation Integrations: Aggiungere il contesto del codice sorgente
URL: https://generaltranslation.com/it/docs/integrations/paraglide/guides/adding-source-context.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Come inviare alla traduzione il codice che circonda ogni messaggio di Paraglide JS come contesto.

`@generaltranslation/paraglide-js` individua ogni utilizzo di un messaggio di Paraglide JS nella tua app e salva il codice che lo circonda. In questo modo, un messaggio come &quot;Order&quot; arriva alla traduzione insieme al codice che mostra se si tratta di un pulsante, di un titolo, di un sostantivo o di un verbo.

Il pacchetto legge i tuoi file sorgente. Non modifica Paraglide JS e non esegue mai il tuo bundler, quindi funziona a prescindere da come viene compilata la tua app.

## Prima di iniziare [#before-start]

Requisiti:

* Node.js 20 o versione successiva.
* Paraglide JS 1, 2 o 3, compilato almeno una volta in modo che la directory di output esista.
* Messaggi salvati nel formato di messaggi inlang (`plugin.inlang.messageFormat`), ad esempio `messages/en.json`.
* File di messaggi tradotti con la CLI. (Consulta l&#39;[Avvio rapido](/docs/integrations/paraglide/quickstart)).
* Per i componenti non scritti in JavaScript, TypeScript o JSX, lo strumento di linguaggio del framework installato nella tua app. (Consulta [Formati di file supportati](/docs/integrations/paraglide/reference/file-formats)).

<Callout type="info">
  Al momento il contesto sorgente non viene allegato quando si usa la regola `jsonSchema` dell&#39;[Avvio rapido](/docs/integrations/paraglide/quickstart#quickstart). La CLI segnala che i metadati non sono stati allegati e traduce i tuoi messaggi senza contesto sorgente. Mantieni questa regola per proteggere le dichiarazioni delle varianti e i selettori: non rimuoverla per abilitare il contesto sorgente.
</Callout>

## Aggiungere il contesto [#add-context]

Installa il pacchetto, raccogli il contesto e poi traduci come al solito.

### 1. Installa `@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. Raccogli il contesto

Esegui [`paraglide-context`](/docs/integrations/paraglide/reference/paraglide-context) dalla directory della tua app. Con `--verbose` vengono mostrati il numero di utilizzi trovati e le directory di output di Paraglide JS usate.

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

Accanto a ogni file di messaggi dell&#39;impostazione regionale di base viene generato un file di metadati. Per ogni messaggio utilizzato viene elencato il codice circostante ai suoi utilizzi, suddiviso per file sorgente:

```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">
  Gli avvisi indicano cosa è stato ignorato e come risolvere il problema: un alias di importazione non risolto, uno strumento di linguaggio mancante o una directory non riconosciuta come output di Paraglide JS (vedi [Risoluzione delle importazioni](/docs/integrations/paraglide/guides/resolving-imports)).
</Callout>

### 3. Traduci i messaggi

Esegui [`gt translate`](/docs/cli/reference/commands/translate). La CLI individua ogni file di metadati accanto al relativo file dei messaggi e lo invia insieme ai messaggi come [metadati associati alle chiavi](/docs/cli/reference/keyed-metadata).

```bash
npx gt translate
```

Per mantenere aggiornato il contesto, raccoglilo prima di ogni traduzione:

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

<Callout type="info">
  Un nuovo contesto, da solo, non fa ritradurre un messaggio. Un messaggio viene tradotto di nuovo solo quando cambia il suo testo di origine.
</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.
