# General Translation Integrations: File di metadati
URL: https://generaltranslation.com/it/docs/integrations/paraglide/reference/metadata-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: I file che contengono il contesto del codice sorgente dei messaggi di Paraglide JS. Riferimento per i file di metadati.

Un file di metadati si trova accanto a un file di messaggi dell&#39;impostazione regionale di base e ne rispecchia la struttura: a `messages/en.json` corrisponde `messages/en.metadata.json`. Usa il formato dei [metadati associati alle chiavi](/docs/cli/reference/keyed-metadata), perciò la CLI lo carica insieme ai messaggi.

## Formato [#format]

Ogni messaggio utilizzato ha un campo [`sourceCode`](/docs/cli/reference/keyed-metadata#source-code) che riporta, per ciascun file sorgente, il codice circostante ai punti in cui viene usato. I percorsi sono relativi alla radice del progetto.

```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` non è utilizzato nell&#39;app, quindi non ha alcuna voce.

| Campo    | Descrizione                                                                                                                                                            | Tipo     |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| `before` | Le righe che precedono l&#39;utilizzo: 10 per impostazione predefinita, valore impostato da [`radius`](/docs/integrations/paraglide/reference/collect-context#radius). | `string` |
| `target` | Le righe dell&#39;utilizzo stesso.                                                                                                                                     | `string` |
| `after`  | Le righe che seguono l&#39;utilizzo.                                                                                                                                   | `string` |

## Quali file e chiavi vengono scritti [#written]

* **Solo l&#39;impostazione regionale di base.** I file delle altre impostazioni regionali, come `messages/fr.json`, non hanno alcun file di metadati: il contesto è lo stesso per ogni lingua di destinazione.
* **Solo le chiavi del file dei messaggi.** Vengono scritte solo le chiavi presenti nel file dei messaggi, perché la CLI rifiuta qualsiasi chiave di metadati assente nel file sorgente. Le chiavi annidate restano annidate.
* **Solo i messaggi utilizzati.** Un messaggio non utilizzato non ha alcuna voce.
* **Nomi dinamici.** Un nome calcolato come ``m[`error_${code}`]`` viene associato a tutti i messaggi che corrispondono a `error_*`. `m[key]` da solo non viene associato a nessun messaggio.
* **Più progetti inlang.** Ogni utilizzo viene associato al progetto da cui è stata compilata la relativa directory di output di Paraglide JS.

I file dei messaggi vengono individuati tramite il `settings.json` di ciascun progetto inlang, in base al suo `baseLocale` e al `pathPattern` di `plugin.inlang.messageFormat`.

## Come vengono aggiornati i file [#updates]

* `sourceCode` viene sostituito a ogni esecuzione. I campi che compili a mano, [`context`](/docs/cli/reference/keyed-metadata#context) e [`maxChars`](/docs/cli/reference/keyed-metadata#max-chars), vengono mantenuti.
* Ogni file viene scritto in modo atomico, e solo se il suo contenuto cambia.
* Un file di metadati illeggibile, o che non contiene un oggetto JSON, viene lasciato invariato e viene emesso un avviso.
* Un progetto che non importa più Paraglide JS mantiene invariati i propri file di metadati: la sua directory di output, e di conseguenza il suo progetto inlang, non viene trovata.

## Limiti [#limits]

* Le app che condividono un unico progetto inlang si sovrascrivono a vicenda il `sourceCode`. Prevale l&#39;ultima analizzata.
* Per i messaggi archiviati da altri plugin di formato inlang, come i18next, non viene generato alcun file di metadati.
* Il servizio di traduzione legge un numero limitato di voci per file e tronca quelle troppo lunghe. (Vedi [`sourceCode`](/docs/cli/reference/keyed-metadata#source-code)).

## Sitemap

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