# gt: General Translation CLI tool: gt translate
URL: https://generaltranslation.com/es/docs/cli/reference/commands/translate.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Traduce un proyecto mediante la API de General Translation. Referencia de la API para el comando gt translate.

Traduce tu proyecto. Lee `gt.config.json` para encontrar tus archivos, analiza tu código fuente en busca de contenido inline cuando usas una biblioteca del framework, incluye tu diccionario y guarda las traducciones en tu base de código o en la CDN.

Este es el comando principal para usar la API de General Translation. Ejecútalo en CI antes de una compilación de producción. Para ver el flujo de trabajo completo, consulta [Generación de traducciones](/docs/cli/guides/generating-translations). Internamente, `translate` prepara con `stage` y ejecuta `download` en un solo paso; para ejecutar esas partes por separado, usa [`gt stage`](/docs/cli/reference/commands/stage), [`gt upload`](/docs/cli/reference/commands/upload), [`gt enqueue`](/docs/cli/reference/commands/enqueue) y [`gt download`](/docs/cli/reference/commands/download). Las animaciones Lottie deben prepararse con `stage` antes de descargarlas posteriormente, ya que su procesamiento de diseño es asíncrono.

*Nota: Solo para uso en producción. Configura `GT_API_KEY` y `GT_PROJECT_ID` de producción como variables de entorno, y nunca almacenes tu clave de API en `gt.config.json`.*

```bash
npx gt translate
```

## Cómo funciona [#how-it-works]

1. Lee `gt.config.json` para determinar las configuraciones regionales de destino, los archivos que se traducirán y sus rutas de salida.
2. En proyectos `gt-next`, `gt-react`, `gt-react-native`, `gt-tanstack-start` y `gt-vue`, analiza los globs de `src` en busca de contenido inline. Esto incluye componentes [`<T>`](/docs/react/reference/components/t) y llamadas a [`useGT`](/docs/react/reference/hooks/use-gt) de la familia React, junto con templates de Vue y llamadas a [`t()`](/docs/vue/reference/functions/t) a nivel de módulo, e incluye tu archivo de diccionario.
3. Detecta automáticamente una biblioteca de i18n de terceros en `package.json` — `next-intl` o `i18next` (con soporte para `i18next-icu`) — y traduce sus archivos JSON respetando la sintaxis de esa biblioteca.
4. Prepara el contenido recopilado con [`gt stage`](/docs/cli/reference/commands/stage): carga los archivos fuente, opcionalmente detecta y guarda las ediciones locales cuando se establece `--save-local` u [`options.saveLocal: true`](/docs/cli/reference/config#save-local), y luego pone en cola trabajos de traducción. Dado que el procesamiento de diseño de Lottie es asíncrono, un proyecto con archivos `.lottie` finaliza antes de este paso cuando `stageTranslations` es `false`, sin cargar ni poner nada en cola, y te dirige al flujo dividido.
5. Descarga los resultados con [`gt download`](/docs/cli/reference/commands/download). Usa los comandos por separado para ejecutar la preparación y la descarga de forma independiente.
6. Guarda las traducciones en tu base de código y en la CDN cuando se establece `--publish` o la clave de configuración [`publish`](/docs/cli/reference/config#publish).

De forma predeterminada, la CLI no sincroniza las ediciones locales de traducciones antes de iniciar un nuevo trabajo. Pasa `--save-local` para sincronizarlas, `--force` para volver a traducirlo todo, o `--force-download` para volver a descargar sin volver a traducir.

## Flags [#flags]

| Parámetro                       | Descripción                                                                                     | Tipo       | Opcional | Predeterminado   |
| ------------------------------- | ----------------------------------------------------------------------------------------------- | ---------- | -------- | ---------------- |
| `--api-key <key>`               | Clave de API de producción.                                                                     | `string`   | Sí       | `GT_API_KEY`     |
| `--project-id <id>`             | ID del proyecto.                                                                                | `string`   | Sí       | `GT_PROJECT_ID`  |
| `--version-id <id>`             | Se acepta, pero no tiene ningún efecto; consulta la nota a continuación.                        | `string`   | Sí       | —                |
| `-c, --config <path>`           | Ruta al archivo de configuración.                                                               | `string`   | Sí       | `gt.config.json` |
| `--default-locale <locale>`     | configuración regional de origen del proyecto.                                                  | `string`   | Sí       | `en`             |
| `--locales <locales...>`        | configuraciones regionales de destino adicionales, añadidas a `locales` de la configuración.    | `string[]` | Sí       | —                |
| `--timeout <seconds>`           | Tiempo de espera de la traducción en segundos.                                                  | `number`   | Sí       | `900`            |
| `--dry-run`                     | Analiza y valida sin llamar a la API.                                                           | `boolean`  | Sí       | `false`          |
| `--force`                       | Vuelve a traducir todo el contenido y sobrescribe las traducciones existentes.                  | `boolean`  | Sí       | `false`          |
| `--force-download`              | Vuelve a descargar todas las traducciones y sobrescribe los cambios locales.                    | `boolean`  | Sí       | `false`          |
| `--save-local, --no-save-local` | Habilita o deshabilita el guardado de ediciones locales antes de ponerlas en cola.              | `boolean`  | Sí       | `false`          |
| `--publish`                     | Publica las traducciones en la CDN.                                                             | `boolean`  | Sí       | `false`          |
| `--enable-branching`            | Habilita el seguimiento basado en ramas.                                                        | `boolean`  | Sí       | —                |
| `--branch <branch>`             | Nombre de la rama en lugar de detectarla automáticamente. Implica `--enable-branching`.         | `string`   | Sí       | —                |
| `--disable-branch-detection`    | Usa solo la rama especificada, sin detectar relaciones.                                         | `boolean`  | Sí       | `false`          |
| `--remote-name <name>`          | Remoto de Git usado para la detección de ramas.                                                 | `string`   | Sí       | `origin`         |
| `--omit-config-ids`             | No escribe `_versionId` ni `_branchId` en `gt.config.json`.                                     | `boolean`  | Sí       | —                |
| `--tag [value]`                 | Etiqueta la ejecución; se obtiene automáticamente de Git cuando no se proporciona ningún valor. | `string`   | Sí       | —                |
| `-m, --message <message>`       | Mensaje adjunto a la etiqueta de traducción.                                                    | `string`   | Sí       | —                |

### Flags de escaneo del código fuente [#source]

Se aplican al escanear código fuente en proyectos `gt-next`, `gt-react`, `gt-react-native`, `gt-tanstack-start` y `gt-vue`.

| Parámetro                       | Descripción                                                                                                                | Tipo       | Opcional | Predeterminado                  |
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ---------- | -------- | ------------------------------- |
| `--src <paths...>`              | Patrones glob para source files.                                                                                           | `string[]` | Sí       | Globs específicos del framework |
| `--dictionary <path>`           | Ruta al archivo de diccionario.                                                                                            | `string`   | Sí       | —                               |
| `--tsconfig, --jsconfig <path>` | Ruta a un archivo de configuración de TS o JS.                                                                             | `string`   | Sí       | Detectado automáticamente       |
| `--inline`                      | Incluye contenido inline como [`<T>`](/docs/react/reference/components/t) y [`useGT`](/docs/react/reference/hooks/use-gt). | `boolean`  | Sí       | `true`                          |
| `--ignore-errors`               | Ignora los errores encontrados al escanear contenido inline.                                                               | `boolean`  | Sí       | `false`                         |

### Flags experimentales [#experimental]

| Parámetro                                 | Descripción                                                                          | Tipo      | Opcional | Predeterminado |
| ----------------------------------------- | ------------------------------------------------------------------------------------ | --------- | -------- | -------------- |
| `--experimental-localize-static-urls`     | Localiza las URL en archivos `md`/`mdx` traducidos.                                  | `boolean` | Sí       | `false`        |
| `--experimental-hide-default-locale`      | Oculta la configuración regional predeterminada en las rutas localizadas.            | `boolean` | Sí       | `false`        |
| `--experimental-flatten-json-files`       | Combina los archivos JSON en un solo archivo.                                        | `boolean` | Sí       | `false`        |
| `--experimental-localize-static-imports`  | Localiza las importaciones estáticas en archivos `md`/`mdx` traducidos.              | `boolean` | Sí       | `false`        |
| `--experimental-localize-relative-assets` | Reescribe las URL relativas de recursos de imagen en archivos `md`/`mdx` traducidos. | `boolean` | Sí       | `false`        |
| `--experimental-clear-locale-dirs`        | Limpia los directorios de configuración regional antes de descargar.                 | `boolean` | Sí       | `false`        |

## Ejemplo [#example]

```bash
# Traducir usando gt.config.json, leyendo GT_API_KEY y GT_PROJECT_ID del entorno
npx gt translate

# Analizar y validar el proyecto sin llamar a la API
npx gt translate --dry-run

# Guardar las traducciones localmente y publicarlas en el CDN para carga en runtime
npx gt translate --publish

# Etiquetar la ejecución para identificarla fácilmente en el panel de control
npx gt translate --tag v2.1.0 -m "Added checkout page translations"
```

## Otras notas [#notes]

* **Archivos fuente de contenido:** el CLI usa valores predeterminados específicos de cada framework. Los proyectos de la familia React analizan `src`, `app`, `pages` y `components`; los proyectos de Vue también cubren los archivos `.vue` de la raíz y los directorios convencionales de Vue y Nuxt. Puedes cambiarlos con `--src` o con la clave de configuración [`src`](/docs/cli/reference/config#src).
* **Diccionario:** cuando no se establece `--dictionary`, el CLI busca `dictionary.[json|ts|js]` en `./src` y `./`.
* **Ediciones locales:** la sincronización de las ediciones locales está desactivada de forma predeterminada. Pasa `--save-local` para una ejecución o establece [`options.saveLocal`](/docs/cli/reference/config#save-local) en `true`.
* **Sobrescritura:** `--force` sobrescribe todas las traducciones existentes y cobra las nuevas; `--force-download` sobrescribe las ediciones locales con las traducciones más recientes sin volver a traducir.
* **Lottie:** traduce las animaciones con [`gt stage`](/docs/cli/reference/commands/stage) y, después, vuelve a ejecutar [`gt download`](/docs/cli/reference/commands/download) hasta que todas las configuraciones regionales estén listas. Consulta la [referencia del formato Lottie](/docs/cli/reference/formats/lottie-files).
* **Etiquetado:** el etiquetado no bloquea la ejecución: si falla la creación de la etiqueta, la ejecución continúa. Pasa `--tag` sin valor para usar el commit hash y el mensaje actuales de git.
* **Publicación:** habilita la CDN en la configuración del proyecto antes de usar `--publish`. Si la CDN no está habilitada, la ejecución traduce correctamente, pero el paso de publicación falla con una advertencia.
* **Ramificación:** pasa `--enable-branching` para hacer seguimiento de las traducciones por rama de git, o pasa `--branch <name>`, que habilita la ramificación por sí solo. Cuando no se establece ninguna de las dos opciones, el CLI recurre a `branchOptions.enabled` en `gt.config.json` y, si tampoco se establece, se desactiva. Consulta [Seguimiento de traducciones por rama](/docs/cli/guides/branching).
* **`--version-id` no tiene efecto.** La opción se analiza, pero nada la lee: los ID de versión son hashes de contenido por archivo, y los comandos que necesitan una versión a nivel de ejecución leen `_versionId` de `gt.config.json`. Establece [`_versionId`](/docs/cli/reference/config) allí en su lugar.
* **Seguridad:** nunca almacenes tu clave de API en `gt.config.json`. El CLI lee `GT_API_KEY` y `GT_PROJECT_ID` del entorno automáticamente.

### Historial de versiones

| Versión  | Cambios                                                                                            |
| -------- | -------------------------------------------------------------------------------------------------- |
| `2.20.3` | Las ediciones locales pasaron a ser opt-in; `--save-local` habilita este step.                     |
| `2.16.1` | Las ediciones locales se guardan de forma predeterminada; `--no-save-local` desactiva esta opción. |

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
