# General Translation Changelog: gtx-cli 2.3.0: Esecuzioni di traduzione più rapide e affidabili
URL: https://generaltranslation.com/it/blog/gtx-cli_v2_3_0.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Fernando Aviles
Published: 2025-09-12

## Panoramica

In **gtx-cli 2.3.0**, abbiamo aggiornato il comportamento dei comandi [`translate`](/docs/cli/reference/commands/translate) e [`upload`](/docs/cli/reference/commands/upload) e reso più visibile la pipeline di traduzione.

***

## Translate

Storicamente, [`translate`](/docs/cli/reference/commands/translate) sia avviava le traduzioni **sia** eseguiva in background una configurazione iniziale una tantum del progetto (generando il contesto e il glossario che vedi nella tua [dashboard](https://generaltranslation.com/dashboard/project/context)).

Nei progetti più piccoli questo era rapido; nelle codebase più grandi, la configurazione poteva richiedere abbastanza tempo da causare un timeout, facendo sembrare che si fosse verificato un errore di traduzione.

Anche se gli utenti avevano l&#39;impressione che [`translate`](/docs/cli/reference/commands/translate) fosse fallito, la configurazione veniva comunque completata in modo asincrono e le traduzioni venivano generate ma non scaricate, con un&#39;esperienza utente incompleta e poco chiara.

### Configurazione

La configurazione è ora una fase separata. L&#39;abbiamo ottimizzata per ridurre al minimo i timeout.

Ma poiché sappiamo che la configurazione può ancora non riuscire, la traduzione non “dipende” più dal completamento della configurazione. Ora la pipeline funziona più o meno così:

* **Upload:** invia i file e conferma che l&#39;operazione sia andata a buon fine.
* **Configurazione (solo se necessaria):** avvia un processo di configurazione e attendi; se non riesce o va in timeout, si prosegue.
* **Traduzione:** crea processi di traduzione in base ai file che hai già caricato.

Se la configurazione viene completata in tempo, ottimo. Se non riesce o va in timeout, continuiamo e ti diciamo cosa è successo. Riceverai comunque le traduzioni.

Cosa vedrai quando esegui `npx gtx-cli translate`:

```bash
Starting translation...

Files to translate:
  - your/file/path.mdx
  - ...

Uploading files to General Translation API...
✔ Files uploaded successfully

Setting up project...

# Se la configurazione ha successo
Setup successfully completed.

# Se la configurazione va in timeout
⚠ Setup timed out — proceeding without setup: Timed out while waiting for setup generation

# Se la configurazione fallisce
⚠ Setup failed — proceeding without setup: <error message>

# In ogni caso, si procede con le traduzioni
Creating 12 translation(s)
[0/12] translations completed
your/file/path.mdx [es]
```

Con questa modifica, possiamo ora garantire che le tue traduzioni verranno generate anche nella remota eventualità che la configurazione non vada a buon fine.

Ci piace anche perché ti offre più visibilità su come e dove generiamo i contenuti che influenzano le tue traduzioni e rende l&#39;aggiunta di nuovi passaggi di configurazione più tranquilla, dato che non impediranno mai la generazione delle traduzioni.

***


## Upload

Abbiamo anche reso [`upload`](/docs/cli/reference/commands/upload) più flessibile. Nelle versioni precedenti si dava per scontato che inviassi sempre un file sorgente insieme alle relative traduzioni. Ma questo non si adatta a tutti i flussi di lavoro. Ora puoi:

* Caricare **solo i file sorgente** (senza traduzioni, per ora).
* Caricare **file sorgente e traduzioni insieme**.

Continuiamo comunque a rilevare automaticamente le traduzioni in base alla struttura del repo e alla configurazione. Dopo il caricamento, vedrai subito i file nella tua [dashboard](https://generaltranslation.com/dashboard/project/translations).

Se questo è il tuo `gt.config.json`:

```json
{
  "defaultLocale": "en",
  "locales": ["es", "fr"],
  "files": {
    "json": { "include": ["src/i18n/en/**/*.json"] }
  }
}
```

Eseguendo `npx gtx-cli upload`:

```bash
# Solo sorgenti (nessuna traduzione locale trovata):
Starting upload...

Files to upload:
  - src/i18n/en/common.json -> es, fr
  ...

Uploading 1 file(s) to General Translation...
✔ Files uploaded successfully

Done!

# Nella tua dashboard, vedrai:
#   src/i18n/en/common.json
# senza traduzioni corrispondenti per ora.
```

Se sono presenti traduzioni locali e vengono rilevate automaticamente:

```bash
Starting upload...

Files to upload:
  - src/i18n/en/common.json -> es, fr

Uploading 3 file(s) to General Translation...
✔ Files uploaded successfully

Done!

# Nella tua dashboard, vedrai:
#   src/i18n/en/common.json
# più le versioni tradotte in spagnolo e francese nel menu a tendina delle impostazioni regionali.
```

Se manca il file di traduzione di un&#39;impostazione regionale, carichiamo il sorgente e ignoriamo la traduzione mancante.

Se hai traduzioni locali ma vuoi caricare solo i sorgenti, rimuovi locales da `gt.config.json` prima di eseguire [`upload`](/docs/cli/reference/commands/upload):

```json
{
  "defaultLocale": "en",
  "locales": [],
  "files": {
    "json": { "include": ["src/i18n/en/**/*.json"] }
  }
}
```

### I caricamenti sovrascrivono le traduzioni esistenti

> **Attenzione:** Quando esegui [`upload`](/docs/cli/reference/commands/upload), qualsiasi file tradotto che rileviamo e carichiamo per una determinata combinazione file/impostazione regionale **sostituisce** ciò che è attualmente archiviato per quella combinazione file/impostazione regionale.
>
> * Per caricare solo i file sorgente, rimuovi le impostazioni regionali di destinazione da `gt.config.json` prima di eseguire [`upload`](/docs/cli/reference/commands/upload).
> * Se devi prima esaminare le modifiche, usa un progetto separato oppure esporta le traduzioni attuali prima di caricare.
> * Le traduzioni mancanti vengono ignorate; quelle presenti vengono sostituite.

## Sitemap

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