gtx-cli@2.3.0
Panoramica
In gtx-cli 2.3.0 abbiamo aggiornato il comportamento dei comandi translate e upload e migliorato la visibilità sulla 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 dashboard).
Nei progetti più piccoli questo era veloce; su codebase più grandi, la configurazione poteva richiedere abbastanza tempo da causare un timeout, facendo sembrare che si fosse verificato un errore di traduzione.
Sebbene agli utenti sembrasse che translate fosse fallito, la configurazione veniva completata in modo asincrono e le traduzioni venivano generate ma non scaricate, con il risultato di un'esperienza utente incompleta e confusa.
Setup
Il setup è ora un passaggio separato. L'abbiamo ottimizzato per rendere i timeout rari.
Ma dato che sappiamo che il setup può comunque fallire, la traduzione non “dipende” più dal completamento del setup. Ora la pipeline funziona più o meno così:
- Upload: invia i file e verifica che l'operazione sia riuscita.
- Setup (solo se necessario): avvia un job di setup e attendi; se fallisce o va in timeout, proseguiamo.
- Translate: crea i job di traduzione in base ai file che hai già caricato.
Se il setup viene completato in tempo, ottimo. Se fallisce o va in timeout, continuiamo e ti diciamo cosa è successo. Ottieni comunque le traduzioni.
Cosa vedrai quando esegui npx gtx-cli translate:
Avvio traduzione...
File da tradurre:
- your/file/path.mdx
- ...
Caricamento file su API General Translation...
✔ File caricati correttamente
Configurazione progetto in corso...
# Se la configurazione riesce
Configurazione completata correttamente.
# Se la configurazione va in timeout
⚠ Timeout configurazione — prosecuzione senza configurazione: timeout durante l'attesa della generazione della configurazione
# Se la configurazione fallisce
⚠ Configurazione fallita — prosecuzione senza configurazione: <messaggio di errore>
# In ogni caso, si prosegue con le traduzioni
Creazione di 12 traduzione/i in corso
[0/12] traduzioni completate
your/file/path.mdx [es]Con questa modifica, ora possiamo garantire che le tue traduzioni verranno generate anche nell’improbabile eventualità che la configurazione non vada a buon fine.
Ci piace anche il fatto che ti offra maggiore visibilità su come e dove generiamo i contenuti che influenzano le tue traduzioni e che renda l’aggiunta di nuovi passaggi di configurazione del tutto tranquilla, dato che non impediranno mai che la traduzione avvenga.
Upload
Abbiamo anche reso upload più flessibile. Le versioni precedenti presupponevano che inviassi sempre un file sorgente insieme alle sue traduzioni. Questo non si adatta a tutti i workflow. Ora puoi:
- Caricare solo file sorgente (nessuna traduzione per il momento).
- Caricare sorgenti + traduzioni insieme.
Continuiamo a rilevare automaticamente le traduzioni dalla struttura del tuo repo e dalla config. Una volta effettuato l'upload, vedrai immediatamente i file nella tua dashboard.
Se questo è il tuo gt.config.json:
{
"defaultLocale": "en",
"locales": ["es", "fr"],
"files": {
"json": { "include": ["src/i18n/en/**/*.json"] }
}
}Esecuzione di npx gtx-cli upload:
# Solo file sorgente (nessuna traduzione locale trovata):
Avvio del caricamento...
File da caricare:
- src/i18n/en/common.json -> es, fr
...
Caricamento di 1 file su General Translation...
✔ File caricati correttamente
Completato!
# Nella dashboard vedrai:
# src/i18n/en/common.json
# senza ancora le traduzioni corrispondenti.Se sono presenti traduzioni locali e vengono rilevate in automatico:
Avvio caricamento...
File da caricare:
- src/i18n/en/common.json -> es, fr
Caricamento di 3 file su General Translation...
✔ File caricati correttamente
Fatto!
# Nella dashboard vedrai:
# src/i18n/en/common.json
# più le versioni tradotte in spagnolo e francese nel menu a tendina delle locale.Se manca il file di traduzione di una locale, carichiamo il sorgente e ignoriamo la traduzione mancante.
Se hai traduzioni locali ma vuoi caricare solo i sorgenti, rimuovi le locali 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/locale sostituisce ciò che è attualmente memorizzato per quella combinazione file/locale.
- Per caricare solo le sorgenti, rimuovi le lingue di destinazione da
gt.config.jsonprima di eseguireupload.- Se prima devi rivedere le modifiche, usa un progetto separato oppure esporta le traduzioni correnti prima di caricare.
- Le traduzioni mancanti vengono ignorate; le traduzioni presenti vengono sostituite.