# gt: General Translation CLI tool: gt upload
URL: https://generaltranslation.com/it/docs/cli/reference/commands/upload.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Carica i file sorgente e le traduzioni nella piattaforma General Translation. Riferimento API per il comando gt upload.

Carica i file sorgente del tuo progetto e tutte le traduzioni esistenti nella piattaforma General Translation, sincronizzando i file locali in modo che possano essere gestiti, messi in coda e tracciati. Abbinalo a [`gt enqueue`](/docs/cli/reference/commands/enqueue) e [`gt download`](/docs/cli/reference/commands/download) per suddividere la traduzione tra le fasi della CI. Vedi [Gestire le traduzioni](/docs/cli/guides/managing-translations#split).

*Nota: da usare solo in produzione. Richiede `GT_API_KEY` e `GT_PROJECT_ID` di produzione.*

```bash
npx gt upload
```

## Come funziona [#how-it-works]

1. Legge `gt.config.json` per stabilire quali file caricare.
2. Raccoglie tutti i file sorgente traducibili.
3. Calcola l&#39;hash di ciascun file per generare un `fileId` (dal relativo percorso) e un `versionId` (dal relativo contenuto).
4. Interroga l&#39;API per determinare quali file sono nuovi o modificati.
5. Rileva gli spostamenti dei file — stesso contenuto, percorso diverso — e preserva le traduzioni esistenti.
6. Carica i file sorgente nuovi e modificati, insieme a eventuali file di traduzione locali.
7. Applica le regole configurate di pubblicazione e annullamento della pubblicazione sulla CDN. `--publish` imposta la pubblicazione come impostazione predefinita globale, mentre le regole esplicite `publish: false` per singolo file continuano a escludere i file interessati.

## Flag [#flags]

`upload` registra i [flag di traduzione](/docs/cli/reference/commands/translate#flags) condivisi, ma utilizza solo le opzioni rilevanti per la raccolta, il caricamento e la pubblicazione dei file. Di seguito sono riportate le opzioni principali.

| Parametro                   | Descrizione                                                                                                                    | Tipo       | Facoltativo | Predefinito      |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ---------- | ----------- | ---------------- |
| `--api-key <key>`           | Chiave API di produzione.                                                                                                      | `string`   | Sì          | `GT_API_KEY`     |
| `--project-id <id>`         | ID progetto.                                                                                                                   | `string`   | Sì          | `GT_PROJECT_ID`  |
| `-c, --config <path>`       | Percorso del file di configurazione.                                                                                           | `string`   | Sì          | `gt.config.json` |
| `--locales <locales...>`    | Impostazioni regionali di destinazione aggiuntive, aggiunte alle locales del file di configurazione.                           | `string[]` | Sì          | —                |
| `--default-locale <locale>` | Impostazione regionale sorgente del progetto.                                                                                  | `string`   | Sì          | `en`             |
| `--publish`                 | Usa la pubblicazione come impostazione predefinita globale; le eventuali esclusioni esplicite per singolo file restano valide. | `boolean`  | Sì          | `false`          |

<Callout type="warn">
  In `gt` 2.20.1, `upload` accetta `--dry-run` ma carica comunque i file. Il flag condiviso `--timeout` controlla l&#39;attesa della traduzione e non ha alcun effetto su questo comando. Per esaminare i file raccolti senza caricarli, usa [`gt stage --dry-run`](/docs/cli/reference/commands/stage).
</Callout>

## Esempio [#example]

```bash
# Fase 1: carica i file sorgente (questo comando)
npx gt upload

# Fase 2: accoda le traduzioni
npx gt enqueue

# Fase 3: scarica quando pronto
npx gt download
```

## Altre note [#notes]

* `upload` raccoglie i file sorgente traducibili di ogni tipo configurato (JSON, YAML, Markdown, MDX e altri) e tutti gli eventuali file di traduzione locale.
* Le traduzioni esistenti il cui contenuto corrisponde ancora a `gt-lock.json` vengono ignorate. Le altre traduzioni locali vengono caricate e possono sostituire le traduzioni memorizzate; in assenza di un file di lock, vengono caricate tutte le traduzioni locali.
* Poiché calcola l&#39;hash di ogni file in base al percorso e al contenuto, i file spostati (stesso contenuto, nuovo percorso) mantengono le traduzioni esistenti invece di essere tradotti nuovamente.
* Abilita la CDN nelle impostazioni del tuo progetto prima della pubblicazione. Se la pubblicazione fallisce, il caricamento rimane comunque riuscito e la CLI emette un avviso.

## Sitemap

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