# gt: General Translation CLI tool: Configurar la CLI
URL: https://generaltranslation.com/es/docs/cli/guides/configuring.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Cómo configurar un archivo gt.config.json de General Translation con tus locales, archivos y opciones de almacenamiento.

La CLI lee un archivo `gt.config.json` en la raíz de tu proyecto para decidir qué traducir y dónde se guardan los resultados. Esta guía te muestra cómo crear y editar ese archivo.

*Nota: Esta guía cubre las opciones de configuración más habituales. Para ver todos los campos disponibles, consulta la [referencia de configuración](/docs/cli/reference/config).*

## Crea el archivo de configuración [#create]

Puedes crear `gt.config.json` de tres formas. Elige la que mejor se adapte a tu flujo de trabajo.

### a) Ejecuta el asistente de configuración completo

Ejecuta [`gt init`](/docs/cli/reference/commands/init) para detectar tu framework, configurar los archivos y, opcionalmente, aprovisionar un proyecto y una clave de runtime de desarrollo. El asistente inicia sesión por ti cuando ese paso lo requiere. Pasa [flags](/docs/cli/reference/commands/init#flags) para responder a sus preguntas o ejecútalo en modo headless.

```bash
npx gt init
```

En un monorepo, ejecuta el comando desde la app que quieras localizar, no desde la raíz del workspace. Para las apps de Vite React, el asistente instala `gt-react`, configura [`initializeGTSPA`](/docs/react/reference/config#initialize-spa) antes del punto de entrada existente de la app y configura la carga de traducciones desde un origen local o una CDN.

### b) Configurar sin el paso de inicialización de React

Ejecuta [`gt configure`](/docs/cli/reference/commands/configure) para crear o actualizar `gt.config.json` sin la reescritura experimental del framework de React. Comparte con el asistente completo el resto del flujo de configuración: puede generar loaders, instalar la CLI, pedirte que inicies sesión y aprovisionar credenciales de desarrollo.

```bash
npx gt configure
```

### c) Escríbelo manualmente

Crea el archivo tú mismo y añade la referencia `$schema` para la validación del editor y el autocompletado.

```json title="gt.config.json"
{
  "$schema": "https://assets.gtx.dev/config-schema.json",
  "defaultLocale": "en",
  "locales": ["fr", "es"]
}
```

## Configura tus locales [#locales]

Configura `defaultLocale` con el idioma en el que está escrito tu contenido de origen e indica tus idiomas de destino en `locales`.

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["fr", "es", "ja"]
}
```

Ambos usan códigos de configuración regional estándar, como `en`, `en-US` o `zh`. Consulta [locales compatibles](/docs/platform/dashboard/reference/supported-locales) para ver la lista completa.

Para usar un alias personalizado para una configuración regional —por ejemplo, `cn` en lugar de `zh`—, agrega una entrada en `customMapping` que apunte al código oficial. Usa el alias cada vez que indiques esa configuración regional en `defaultLocale` o `locales`.

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["cn", "fr"],
  "customMapping": {
    "cn": { "code": "zh" }
  }
}
```

## Elige qué archivos traducir [#files]

Agrega un objeto `files` con una clave para cada tipo de archivo que quieras traducir. La mayoría de los tipos aceptan una lista `include` de patrones glob que usan el marcador de posición `[locale]` para localizar los archivos de origen y guardar los archivos traducidos. Los [catálogos `.xcstrings`](/docs/cli/reference/formats/xcstrings-files) son la excepción, porque todas las configuraciones regionales se almacenan en un único archivo que se actualiza en el mismo documento.

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "json": {
      "include": ["locales/[locale]/**/*.json"]
    },
    "mdx": {
      "include": ["content/docs/[locale]/**/*.mdx"]
    }
  }
}
```

La CLI reemplaza `[locale]` por `defaultLocale` cuando busca archivos de origen, y por cada código de destino cuando guarda las traducciones. Las opciones por tipo se documentan en [Formatos de archivo](/docs/cli/reference/formats/gt-jsx-files), y las coincidencias avanzadas en [`include`](/docs/cli/reference/config#files).

## Elige dónde se almacenan las traducciones [#storage]

Si usas `gt-next`, `gt-react` o `gt-react-native`, decide cómo se distribuyen las traducciones.

* **Guarda localmente** para incluir las traducciones en tu app. Agrega una entrada de `gt` con una ruta `output` que incluya `[locale]`.
* **Publica en la CDN** para cargar las traducciones en tiempo de ejecución en lugar de incluirlas en la app. Establece `publish` en `true`.

```json title="gt.config.json"
{
  "files": {
    "gt": {
      "output": "public/i18n/[locale].json"
    }
  }
}
```

(Consulta [la publicación en CDN](/docs/cli/reference/config#cdn-publishing) para gestionar la publicación a nivel global, por archivo o por comando).

## Añade tus credenciales [#credentials]

### a) Inicia sesión para trabajar localmente con la CLI

1. Ejecuta [`gt login`](/docs/cli/reference/commands/login) y aprueba el acceso en tu navegador. Usa [`gt whoami`](/docs/cli/reference/commands/whoami) para comprobar la cuenta y [`gt logout`](/docs/cli/reference/commands/logout) para cerrar sesión.
2. Vincula tu aplicación a un proyecto con [`projectId`](/docs/cli/reference/config#project-id) en el archivo `gt.config.json` existente o define `GT_PROJECT_ID`. Iniciar sesión no basta para seleccionar ni crear un proyecto. Usa [`gt init`](/docs/cli/reference/commands/init) si prefieres que se te guíe en la selección o creación en lugar de hacer la vinculación manualmente.
3. Ejecuta [`gt translate`](/docs/cli/reference/commands/translate). Tu cuenta debe tener permiso para cada operación solicitada.

Los SDK no leen la sesión de la CLI que tienes guardada; configura por separado las credenciales de runtime.

### b) Usa una clave explícita para CI

Haz commit de tu configuración y proporciona `GT_API_KEY` a través de la configuración de secretos de tu proveedor de CI. Define el ID del Project en la configuración o en el entorno. El inicio de sesión, incluso con `--no-browser`, requiere la aprobación de una persona. En modo headless, [`gt init`](/docs/cli/reference/commands/init) solo se ejecuta sin intervención cuando los flags responden a todas las preguntas y no necesita iniciar sesión.

```bash
GT_API_KEY=your-api-key
GT_PROJECT_ID=your-project-id
```

Crea una [clave de Project personalizada](/docs/platform/dashboard/reference/api-keys#create-project-keys) o usa [`gt api-key create`](/docs/cli/reference/commands/api-key-create) con permisos explícitos. Concede permisos para todo el flujo de trabajo: lectura/descarga de archivos, escritura/subida de archivos y puesta en cola de traducciones, además de acceso al contexto si se utiliza. Una clave de runtime que solo permite generar no basta para el flujo de traducción. Nunca guardes API Keys en `gt.config.json`; la validación habitual de la configuración del CLI las rechaza.

### Precedencia de credenciales y archivos de entorno

Cuando no se proporciona una clave de herramientas explícita, los comandos alojados dan prioridad a `--api-key`, después a un `GT_API_KEY` no vacío y, por último, al inicio de sesión guardado. Si una clave explícita no es válida o no tiene permisos suficientes, nunca se recurre al inicio de sesión como alternativa. `GT_DEV_API_KEY` y sus variantes con prefijo público son ajustes de runtime, no credenciales de administración de la CLI. Para usar el inicio de sesión, elimina las claves de herramientas no deseadas tanto del entorno del proceso como de los archivos env cargados, ya que iniciar sesión no las borra.

Al arrancar, el ejecutable carga `.env`, luego `.env.local` con reemplazo y, por último, `.env.production` con reemplazo. Estos dos últimos archivos pueden sobrescribir una clave ya exportada. Para más información sobre la vinculación del proyecto y las comprobaciones de conflictos, consulta [`projectId`](/docs/cli/reference/config#project-id).

### Claves de desarrollo en runtime

[`gt init`](/docs/cli/reference/commands/init) puede aprovisionar una clave con solo el permiso `project:translations:generate` en el archivo `.env.local` (ignorado por Git), usando los nombres de variables de tu framework. No sustituye a `GT_API_KEY`. (Consulta [credenciales de Next.js](/docs/react/nextjs/config#credentials) para la configuración en runtime).

<Callout type="warn">
  Nunca incluyas API Keys en los bundles que despliegues en navegadores o dispositivos móviles, ni siquiera claves que solo permitan generar. (Consulta [protecciones de archivos de init](/docs/cli/reference/commands/init#notes)).
</Callout>

## Next steps

- /docs/cli/guides/generating-translations
- /docs/cli/guides/managing-translations
- /docs/cli/guides/using-auto-jsx
- /docs/cli/guides/branching

## Sitemap

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