gtx-cli@2.3.0
Resumen
En gtx-cli 2.3.0, actualizamos el comportamiento de los comandos translate y upload y mejoramos la visibilidad del flujo de traducción.
Translate
Históricamente, translate no solo activaba las traducciones, sino que también ejecutaba en segundo plano una configuración inicial única del proyecto (generando el contexto y el glosario que ves en tu panel).
En proyectos pequeños, esto era rápido; en bases de código más grandes, la configuración podía tardar lo suficiente como para agotar el tiempo de espera, dando la impresión de que se había producido un error de traducción.
Aunque los usuarios tenían la impresión de que translate había fallado, la configuración se completaba de forma asíncrona y las traducciones se generaban, pero no se descargaban, lo que daba lugar a una experiencia de usuario incompleta y confusa.
Configuración
La configuración ahora es un paso independiente. La optimizamos para que los tiempos de espera sean poco frecuentes.
Pero, como sabemos que la configuración aún puede fallar, la traducción ya no “depende” de que la configuración termine. Ahora el flujo es más o menos así:
- Carga: envía los archivos y confirma que se hayan subido correctamente.
- Configuración (solo si hace falta): inicia una tarea de configuración y espera; si falla o se agota el tiempo de espera, seguimos adelante.
- Traducción: crea tareas de traducción a partir de los archivos que ya subiste.
Si la configuración se completa a tiempo, perfecto. Si falla o se agota el tiempo de espera, continuamos y te informamos de lo ocurrido. Aun así, recibirás las traducciones.
Lo que verás al ejecutar 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...
# Si la configuración se completa correctamente
Setup successfully completed.
# Si la configuración supera el tiempo de espera
⚠ Setup timed out — proceeding without setup: Timed out while waiting for setup generation
# Si la configuración falla
⚠ Setup failed — proceeding without setup: <error message>
# En cualquier caso, continuamos con las traducciones
Creating 12 translation(s)
[0/12] translations completed
your/file/path.mdx [es]Con este cambio, ahora podemos garantizar que tus traducciones se generarán incluso en el improbable caso de que falle la configuración.
También nos gusta que te dé más visibilidad sobre cómo y dónde generamos el contenido que influye en tus traducciones, y que añadir nuevos pasos de configuración no suponga ninguna preocupación, ya que nunca impedirán que se generen las traducciones.
Carga
También hemos hecho que upload sea más flexible. Las versiones anteriores asumían que siempre enviabas un archivo fuente junto con sus traducciones. Eso no encaja con todos los flujos de trabajo. Ahora puedes:
- Subir solo archivos fuente (sin traducciones todavía).
- Subir archivos fuente y traducciones a la vez.
Seguimos detectando automáticamente las traducciones a partir de la estructura de tu repositorio y de la configuración. En cuanto subas los archivos, los verás de inmediato en tu panel.
Si este es tu gt.config.json:
{
"defaultLocale": "en",
"locales": ["es", "fr"],
"files": {
"json": { "include": ["src/i18n/en/**/*.json"] }
}
}Al ejecutar npx gtx-cli upload:
# Solo fuentes (no se encontraron traducciones locales):
Starting upload...
Files to upload:
- src/i18n/en/common.json -> es, fr
...
Uploading 1 file(s) to General Translation...
✔ Files uploaded successfully
Done!
# En tu panel, verás:
# src/i18n/en/common.json
# sin traducciones correspondientes todavía.Si hay traducciones locales y se detectan automáticamente:
Starting upload...
Files to upload:
- src/i18n/en/common.json -> es, fr
Uploading 3 file(s) to General Translation...
✔ Files uploaded successfully
Done!
# En tu panel, verás:
# src/i18n/en/common.json
# junto con las versiones traducidas al español y al francés en el menú desplegable de configuración regional.Si falta el archivo de traducción de una configuración regional, subimos el texto fuente y omitimos esa traducción.
Si tienes traducciones locales pero solo quieres subir los textos fuente, elimina locales de gt.config.json antes de ejecutar upload:
{
"defaultLocale": "en",
"locales": [],
"files": {
"json": { "include": ["src/i18n/en/**/*.json"] }
}
}Las cargas sobrescriben las traducciones existentes
Aviso: Cuando ejecutas
upload, cualquier archivo traducido que detectemos y subamos para una combinación determinada de archivo y configuración regional reemplaza lo que está almacenado actualmente para esa combinación.
- Para subir solo los archivos fuente, elimina las configuraciones regionales de destino de
gt.config.jsonantes de ejecutarupload.- Si necesitas revisar los cambios primero, usa un proyecto independiente o exporta las traducciones actuales antes de subirlas.
- Las traducciones que faltan se omiten; las que están presentes se reemplazan.