Indietro

gtx-cli@2.3.0

Fernando Aviles avatarFernando Aviles
gtx-cli2.3.0translateuploadsetup

Panoramica

In gtx-cli 2.3.0, abbiamo aggiornato il comportamento dei comandi translate e upload e reso più visibile la pipeline di traduzione.


Translate

Storicamente, 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).

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'impressione che translate fosse fallito, la configurazione veniva comunque completata in modo asincrono e le traduzioni venivano generate ma non scaricate, con un'esperienza utente incompleta e poco chiara.

Configurazione

La configurazione è ora una fase separata. L'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'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:

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'aggiunta di nuovi passaggi di configurazione più tranquilla, dato che non impediranno mai la generazione delle traduzioni.


Upload

Abbiamo anche reso 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.

Se questo è il tuo gt.config.json:

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

Eseguendo npx gtx-cli upload:

# 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:

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'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:

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

I caricamenti sovrascrivono le traduzioni esistenti

Attenzione: Quando esegui 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.
  • 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.