# gt: General Translation CLI tool: Upload
URL: https://generaltranslation.com/es/docs/cli/upload.mdx
---
title: Upload
description: Cómo usar upload para subir archivos fuente y traducciones a la plataforma de General Translation
---
## Uso
```bash
npx gt upload
```
**Nota:** Este comando requiere una clave de API de producción. Consigue una en la
[plataforma](https://generaltranslation.com/dashboard).
## Resumen
El comando `gt upload` hace upload de los archivos fuente de tu proyecto y cualquier traducción existente a la plataforma de General Translation. Esto sincroniza tus archivos locales con la plataforma para que se puedan gestionar, poner en cola para su traducción y hacer seguimiento.
El flujo de trabajo típico para pipelines de CI/CD separados es:
1. **`gt upload`** — hacer upload de los archivos fuente a la plataforma de General Translation
2. [`gt enqueue`](/docs/cli/enqueue) — poner en cola los archivos subidos para su traducción
3. [`gt download`](/docs/cli/download) — descargar las traducciones completadas
**¡Solo para uso en producción!**
Este comando está pensado para compilaciones de producción y **no debe usarse en desarrollo**.
Recuerda especificar tu clave de API de producción (`GT_API_KEY`) y el ID del proyecto (`GT_PROJECT_ID`) en tus variables de entorno.
## Cómo funciona
1. Lee tu `gt.config.json` para determinar de qué archivos hacer upload
2. Recopila todos los archivos fuente traducibles (JSON, YAML, Markdown, MDX, etc.)
3. Calcula un hash para cada archivo a fin de generar un `fileId` (basado en la ruta) y un `versionId` (basado en el contenido)
4. Consulta la API de General Translation para determinar qué archivos son nuevos o han cambiado
5. Detecta archivos movidos (mismo contenido, ruta distinta) y conserva las traducciones existentes
6. Hace upload a la plataforma de los archivos fuente nuevos y modificados
7. Si encuentra archivos de traducción existentes a nivel local, también les hace upload
## Opciones
El comando `upload` acepta las mismas opciones que [`translate`](/docs/cli/translate#flags).
| Parámetro | Descripción | Tipo | Opcional | Predeterminado |
| ---------------------------- | ---------------------------------------------------------------------------- | ---------- | -------- | ------------------ |
| `--api-key` | Especifica una clave de API de producción | `string` | `true` | |
| `--project-id` | Especifica el ID del proyecto | `string` | `true` | |
| `--version-id` | Especifica un ID de versión (de forma predeterminada, un hash del contenido) | `string` | `true` | |
| `--config ` | Especifica la ruta al archivo de configuración de GT | `string` | `true` | `"gt.config.json"` |
| `--new, --locales ` | Configuraciones regionales a las que se traducirá tu proyecto | `[string]` | `true` | |
| `--default-locale ` | La configuración regional de origen del proyecto | `string` | `true` | `en` |
| `--dry-run` | Ejecuta el comando en modo de prueba | `flag` | `true` | `false` |
| `--timeout` | El tiempo de espera de la solicitud, en segundos | `number` | `true` | `600` |
## Ejemplo: pipeline de CI dividido
```bash
# Etapa 1: Upload de archivos fuente
npx gt upload
# Etapa 2: Encolar traducciones
npx gt enqueue
# Etapa 3: Descargar cuando esté listo
npx gt download
```