# General Translation Knowledge Base: ¿Cómo mantengo las traducciones actualizadas en cada despliegue?
URL: https://generaltranslation.com/es/kb/translations-in-ci.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Ejecuta la traducción como un paso del flujo antes de cada compilación de producción, para que el texto nuevo se publique ya traducido en el mismo despliegue que lo incorpora. La CLI gt de General Translation lo hace con npx gt translate, usando una clave de API del proyecto y el ID del proyecto almacenados como secretos de CI.
Category: Herramientas para flujos de trabajo
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

Mantener las traducciones actualizadas en cada despliegue se conoce como localización continua: la traducción se ejecuta como un paso del flujo antes de compilar cada lanzamiento, de modo que cada cambio se publica en todos los idiomas en el mismo despliegue que lo incorpora. Es complicado porque el paso se ejecuta en CI (integración continua): necesita una credencial que funcione sin que nadie inicie sesión, debe traducir solo lo que ha cambiado para que las compilaciones sigan siendo rápidas y tiene que terminar antes del comando de compilación; de lo contrario, el texto nuevo se publica sin traducir.

## Video

The video is narrated in English, with English captions.

[How do I keep translations up to date on every deploy?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-translations-in-ci.mp4) (48 s)

General Translation keeps translations current when your CI runs `npx gt translate` before the build. Create an API key for CI with the file read, file write, context write and translation queue permissions, store it and your project ID as `GT_API_KEY` and `GT_PROJECT_ID` in your CI provider's secrets, put `npx gt translate` before the build command in your build script, and run that build on every push to main. Each build then translates new and changed text and ships current translations.

## Formas de mantener las traducciones al día

| Enfoque                                                                                                                                                                                     | En qué destaca                                                                                                                                                                                                                                   | Cuándo se traduce                                                                    | Qué te deja a ti                                                                                                                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Solo una biblioteca de internacionalización (i18n) (`i18next`, `react-intl`, `next-intl`)                                                                                                   | Entornos de ejecución maduros para renderizar traducciones y dar formato a valores                                                                                                                                                               | Cada vez que alguien actualiza los archivos, a menudo en lote entre lanzamientos     | Extraer las cadenas nuevas a archivos de claves, añadir cada traducción a un archivo por idioma y conseguir que todos los archivos estén traducidos antes del lanzamiento                                                                                                                              |
| Sincronización con un [sistema de gestión de traducciones](/kb/general-translation-vs-tms) ([Crowdin](/kb/general-translation-vs-crowdin), [Lokalise](/kb/general-translation-vs-lokalise)) | Una CLI o una integración con GitHub sube las cadenas de origen nuevas y descarga las traducciones terminadas                                                                                                                                    | Cuando los traductores terminan, a menudo después del despliegue que añadió el texto | Archivos de claves para cada cadena, la configuración de sincronización y elegir entre retrasar el lanzamiento o publicar texto sin traducir hasta que lleguen las traducciones                                                                                                                        |
| Un script personalizado sobre una API de traducción automática o de IA (DeepL, OpenAI API, Claude API)                                                                                      | Traduce dentro del flujo, sea cual sea el volumen que envíes                                                                                                                                                                                     | En un paso de CI que tú escribes y mantienes                                         | Detectar cadenas nuevas y modificadas, aportar contexto y terminología coherente en cada solicitud, volver a escribir los resultados y revisarlos                                                                                                                                                      |
| General Translation (la CLI `gt`)                                                                                                                                                           | [`npx gt translate`](/docs/cli/reference/commands/translate) analiza los componentes [`<T>`](/docs/react/reference/components/t), las llamadas a `useGT` y los archivos de `gt.config.json`, y traduce solo el contenido cuyo origen ha cambiado | En CI, antes del comando de compilación                                              | Envolver el texto nuevo de la UI en [`<T>`](/docs/react/reference/components/t) o pasarlo a la función `gt` de `useGT`, guardar una Clave de API del proyecto y el ID del proyecto como secretos de CI, y revisar las traducciones en el panel de control cuando quieras que una persona las compruebe |

Usa solo una biblioteca de i18n cuando los traductores se encarguen de los archivos de idioma y cada lanzamiento pueda esperar por ellos, y una sincronización con un sistema de gestión de traducciones cuando los traductores deban aprobar cada cadena antes de publicarla. Usa un script personalizado para una pasada única sobre texto que no va a cambiar. Usa un paso de traducción en CI cuando la mayoría de los lanzamientos modifiquen el texto. Si el texto cambia solo de vez en cuando, basta con una configuración más sencilla: ejecuta [`npx gt translate`](/docs/cli/reference/commands/translate) en local después de [`gt login`](/docs/cli/reference/commands/login), con `projectId` definido en `gt.config.json`, y haz commit de los archivos que genera.

## Agregar un paso de traducción a CI

La CLI `gt` de General Translation ejecuta este paso con [`npx gt translate`](/docs/cli/reference/commands/translate). Como [`gt login`](/docs/cli/reference/commands/login) requiere la aprobación de una persona, en CI se usa una clave de proyecto:

1. Crea una clave en **Project &gt; Claves de API** con permisos **Personalizados**: establece **Archivos** en **Escritura**, **Cola de traducción** en **Habilitada** y, si el flujo genera contexto, **Contexto** en **Escritura**.
2. Guarda la clave como `GT_API_KEY` y el ID del proyecto como `GT_PROJECT_ID` en la configuración de secretos de tu proveedor de CI.
3. Traduce antes de la compilación:

   ```json title="package.json"
   {
     "scripts": {
       "translate": "npx gt translate",
       "build": "npm run translate && <your build command>"
     }
   }
   ```

## Qué hace cada ejecución

Con General Translation, cada ejecución traduce solo el contenido cuyo origen ha cambiado, aplica los grupos de contexto (glosario y prompts personalizados) asignados al proyecto para que la terminología se mantenga coherente entre lanzamientos y guarda los resultados en tu base de código para que se incluyan en la compilación (o los publica en la CDN de General Translation con `--publish`, para que la aplicación los cargue en tiempo de ejecución). Consulta la guía [Generación de traducciones](/docs/cli/guides/generating-translations) para ver todos los pasos.

## Related questions

- [¿Cómo internacionalizo una aplicación con Cursor o Claude Code?](https://generaltranslation.com/es/kb/ai-agent-i18n-setup.mdx): Empieza con el prompt Setup for Agents de General Translation en Cursor o Claude Code, elige una funcionalidad y los idiomas de destino, y deja que el agente implemente y verifique el resultado. El inicio de sesión desde el navegador, la documentación legible por máquinas y las herramientas MCP enlazan la configuración inicial con la traducción y la revisión. Usa Locadex para automatizar la localización continua mediante pull requests.
- [¿Cómo reviso y edito traducciones?](https://generaltranslation.com/es/kb/review-translations.mdx): Compara cada traducción con su texto de origen y con las demás configuraciones regionales, y corrige lo que no suene bien. Con General Translation, editas las traducciones en la Página de traducciones del panel de control y haces seguimiento de la revisión con etiquetas y comentarios. Después, la siguiente ejecución de traducción de Locadex, su Agente de IA, incorpora los cambios en un pull request.
- [¿Qué hace el agente Locadex?](https://generaltranslation.com/es/kb/what-is-locadex.mdx): Locadex es el agente de IA de General Translation que internacionaliza tu código y traduce tu contenido en tu repositorio de GitHub. Sus automatizaciones se ejecutan cuando se abre un pull request, cuando se hace push de un commit o cuando tú las inicias, y cada cambio llega como un pull request.
- [¿Puedo hacer i18n sin archivos de traducción?](https://generaltranslation.com/es/kb/i18n-without-translation-files.mdx): Sí. Las bibliotecas gt-react y gt-next de General Translation permiten hacer i18n en React y Next.js sin claves de traducción y sin tener que mantener un archivo JSON por idioma. El texto permanece inline en JSX dentro del componente `<T>`, y el comando gt translate genera las traducciones de cada idioma durante la compilación, con contexto extraído de tu código. Locadex puede mantenerlas al día mediante pull requests.

## Previous and next questions

- Previous question: [¿Cómo internacionalizo una aplicación con Cursor o Claude Code?](https://generaltranslation.com/es/kb/ai-agent-i18n-setup.mdx)
- Next question: [¿Cómo reviso y edito traducciones?](https://generaltranslation.com/es/kb/review-translations.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/es/kb/sitemap.md) for every article.
