Atrás

gtx-cli@2.3.0

Fernando Aviles avatarFernando Aviles
gtx-cli2.3.0translateuploadsetup

Descripción general

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 tanto desencadenaba traducciones como ejecutaba una configuración inicial del proyecto en segundo plano (generando el contexto y el glosario que ves en tu dashboard).

En proyectos pequeños esto era rápido; en bases de código grandes, la configuración podía tardar lo suficiente como para provocar un timeout, 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 se generaban las traducciones, 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 timeouts sean poco frecuentes.

Pero como entendemos que la configuración aún puede fallar, la traducción ya no “depende” de que la configuración termine. Ahora el pipeline se ve más o menos así:

  • Upload: envía archivos y confirma que se hayan subido correctamente.
  • Setup (solo si es necesario): inicia un job de configuración y espera; si falla o se produce un timeout, seguimos adelante.
  • Translate: crea jobs de traducción basados en los archivos que ya subiste.

Si la configuración se completa a tiempo, perfecto. Si falla o se produce un timeout, continuamos y te contamos qué pasó. Igual obtienes las traducciones.

Lo que verás cuando ejecutes npx gtx-cli translate:

Iniciando traducción...

Archivos para traducir:
  - your/file/path.mdx
  - ...

Subiendo archivos a la API de General Translation...
 Archivos subidos correctamente

Configurando proyecto...

# Si la configuración se completa correctamente
Configuración completada correctamente.

# Si la configuración excede el tiempo de espera
 La configuración excedió el tiempo de espera continuando sin configuración: Se excedió el tiempo de espera durante la generación de configuración

# Si la configuración falla
 La configuración falló continuando sin configuración: <error message>

# En cualquier caso, se continúa con las traducciones
Creando 12 traducción(es)
[0/12] traducciones completadas
your/file/path.mdx [es]

Con este cambio, ahora podemos garantizar que tus traducciones se generarán incluso en la remota posibilidad de que la configuración falle.

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 haga que agregar nuevos pasos de configuración sea algo sin preocupaciones, ya que nunca impedirán que las traducciones se generen.


Upload

También hemos hecho que upload sea más flexible. Las versiones anteriores asumían que siempre enviabas un archivo de origen junto con sus traducciones. Eso no encaja con todos los flujos de trabajo. Ahora puedes:

  • Subir solo archivos de origen (sin traducciones todavía).
  • Subir orígenes + traducciones juntos.

Seguimos detectando traducciones automáticamente a partir de la estructura de tu repositorio y tu configuración. Una vez que hagas el upload, verás inmediatamente los archivos en tu dashboard.

Si este es tu gt.config.json:

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

Ejecutar npx gtx-cli upload:

# Solo archivos de origen (no se encontraron traducciones locales):
Iniciando carga...

Archivos para cargar:
  - src/i18n/en/common.json -> es, fr
  ...

Cargando 1 archivo(s) en General Translation...
 Archivos cargados correctamente

¡Listo!

# En tu panel verás:
#   src/i18n/en/common.json
# sin traducciones correspondientes todavía.

Si hay traducciones locales disponibles y se detectan automáticamente:

Iniciando subida...

Archivos para subir:
  - src/i18n/en/common.json -> es, fr

Subiendo 3 archivo(s) a General Translation...
 Archivos subidos correctamente

¡Listo!

# En tu panel verás:
#   src/i18n/en/common.json
# más las versiones traducidas en español y francés en el menú desplegable de idioma.

Si falta el archivo de traducciones de una locale, subimos la fuente y omitimos la traducción que falta.

Si tienes traducciones locales pero solo quieres subir las fuentes, elimina las 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

Atención: Cuando ejecutas upload, cualquier archivo traducido que detectemos y subamos para un archivo/idioma determinado reemplaza lo que está almacenado actualmente para ese archivo/idioma.

  • Para subir solo fuentes, elimina los idiomas de destino de gt.config.json antes de ejecutar upload.
  • Si necesitas revisar los cambios primero, usa un proyecto aparte o exporta las traducciones actuales antes de subir.
  • Las traducciones que falten se omiten; las traducciones existentes se reemplazan.