# gt: General Translation CLI tool: Upload
URL: https://generaltranslation.com/it/docs/cli/upload.mdx
---
title: Upload
description: Come fare l'upload di file sorgente e traduzioni sulla piattaforma General Translation
---
## Utilizzo
```bash
npx gt upload
```
**Nota:** Questo comando richiede una chiave API di produzione! Puoi ottenerne una sulla
[piattaforma](https://generaltranslation.com/dashboard).
## Panoramica
Il comando `gt upload` fa l'upload dei file sorgente del progetto e delle eventuali traduzioni esistenti sulla piattaforma General Translation. In questo modo, i file locali vengono sincronizzati con la piattaforma, così da poter essere gestiti, messi in coda per la traduzione e monitorati.
Il flusso di lavoro tipico per pipeline CI/CD suddivise è:
1. **`gt upload`** — fa l'upload dei file sorgente sulla piattaforma General Translation
2. [`gt enqueue`](/docs/cli/enqueue) — mette in coda i file caricati per la traduzione
3. [`gt download`](/docs/cli/download) — scarica le traduzioni completate
**Solo per l'uso in produzione!**
Questo comando è pensato per le build di produzione e **non deve essere usato in ambiente di sviluppo**.
Ricorda di specificare la chiave API di produzione (`GT_API_KEY`) e l'ID del progetto (`GT_PROJECT_ID`) nelle variabili d'ambiente.
## Come funziona
1. Legge il tuo `gt.config.json` per determinare quali file fare l'upload
2. Raccoglie tutti i file sorgente traducibili (JSON, YAML, Markdown, MDX, ecc.)
3. Calcola l'hash di ciascun file per generare un `fileId` (in base al percorso) e un `versionId` (in base al contenuto)
4. Interroga l'API di General Translation per determinare quali file sono nuovi o modificati
5. Rileva gli spostamenti dei file (stesso contenuto, percorso diverso) e mantiene le traduzioni esistenti
6. Fa l'upload sulla piattaforma dei file sorgente nuovi e modificati
7. Se trova localmente file di traduzione esistenti, fa l'upload anche di quelli
## Flag
Il comando `upload` accetta gli stessi flag di [`translate`](/docs/cli/translate#flags).
| Parametro | Descrizione | Tipo | Opzionale | Predefinito |
| ---------------------------- | --------------------------------------------------------------------------------- | ---------- | --------- | ------------------ |
| `--api-key` | Specifica una chiave API di produzione | `string` | `true` | |
| `--project-id` | Specifica l'ID del progetto | `string` | `true` | |
| `--version-id` | Specifica un ID di versione (per impostazione predefinita, un hash del contenuto) | `string` | `true` | |
| `--config ` | Specifica il percorso del file di configurazione di GT | `string` | `true` | `"gt.config.json"` |
| `--new, --locales ` | Le impostazioni regionali in cui tradurre il progetto | `[string]` | `true` | |
| `--default-locale ` | L'impostazione regionale di origine del progetto | `string` | `true` | `en` |
| `--dry-run` | Esegue il comando in modalità dry run | `flag` | `true` | `false` |
| `--timeout` | Timeout della richiesta in secondi | `number` | `true` | `600` |
## Esempio: pipeline di CI suddivisa
```bash
# Fase 1: Upload dei file sorgente
npx gt upload
# Fase 2: Accodamento delle traduzioni
npx gt enqueue
# Fase 3: Download quando pronto
npx gt download
```