# General Translation Platform: setupProject
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/setup-project.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Prepara los archivos subidos para los flujos de trabajo de traducción del proyecto. Referencia de la API para setupProject.

Inicia el proceso de configuración inicial de un proyecto de traducción con archivos subidos previamente en General Translation. Crea un trabajo de configuración inicial asíncrono que analiza los archivos y los deja listos para los flujos de trabajo de traducción.

## Resumen general [#overview]

Llama a `setupProject` con las referencias de archivos de [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) y, opcionalmente, con opciones de configuración inicial. Esto pone en cola un trabajo de configuración inicial (devolviendo un `setupJobId`) o indica que el proyecto ya está configurado.

```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });

const setupResult = await gt.setupProject(fileRefs, { timeoutMs: 30000 });
if (setupResult.status === 'queued') {
  console.log(`Setup job created: ${setupResult.setupJobId}`);
} else {
  console.log('Project is already set up');
}
```

Firma:

```typescript
setupProject(
  files: SetupProjectFileReference[],
  options?: SetupProjectOptions
): Promise<SetupProjectResult>
```

*Nota: `setupProject` requiere una API Key (incluido el alias obsoleto `devApiKey`), además de `projectId` en la instancia de GT. Primero debes cargar los archivos con [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).*

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

* **Análisis de archivos.** La configuración inicial analiza el contenido y la estructura de los archivos para optimizar los flujos de trabajo de traducción.
* **Trabajo asíncrono.** El trabajo de configuración inicial se ejecuta de forma asíncrona — supervisa el progreso con [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status).
* **Cuándo se requiere.** La configuración inicial suele ser necesaria antes de encolar trabajos de traducción para proyectos nuevos.
* **Control de versiones.** Las referencias de archivos incluyen `branchId` para el control de versiones con compatibilidad con ramas.

## Parámetros [#parameters]

| Parámetro             | Descripción                                        | Tipo                          | Opcional | Predeterminado |
| --------------------- | -------------------------------------------------- | ----------------------------- | -------- | -------------- |
| [`files`](#files)     | Referencias a archivos fuente subidos previamente. | `SetupProjectFileReference[]` | No       | —              |
| [`options`](#options) | Opciones del trabajo de configuración inicial.     | `SetupProjectOptions`         | Sí       | —              |

### `files` [#files]

**Tipo** `SetupProjectFileReference[]` · **Obligatorio**

Importa `SetupProjectFileReference` desde `generaltranslation/types`. Pasa los ID devueltos por [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files):

```typescript
type SetupProjectFileReference = {
  fileId: string;
  versionId: string;
  branchId: string;
};
```

Los tres ID son obligatorios. No se envían los nombres de archivo ni los formatos.

### `options` [#options]

**tipo** `SetupProjectOptions` · **Opcional**

| Campo       | Descripción                                                                                               | tipo       | Opcional |
| ----------- | --------------------------------------------------------------------------------------------------------- | ---------- | -------- |
| `force`     | Fuerza la generación del contexto del proyecto; no es una opción para invalidar la caché de traducciones. | `boolean`  | Sí       |
| `locales`   | locales de destino del proyecto.                                                                          | `string[]` | Sí       |
| `timeoutMs` | Tiempo de espera en milisegundos para la solicitud a la API.                                              | `number`   | Sí       |

## Devuelve [#returns]

**Tipo** `Promise<SetupProjectResult>`

Se resuelve con un `SetupProjectResult`, una unión de dos variantes:

```typescript
type SetupProjectResult =
  | { setupJobId: string; status: 'queued' }
  | { status: 'completed' };
```

* Cuando se crea un trabajo de configuración inicial, devuelve la variante `queued` con un `setupJobId`.
* Cuando el proyecto ya está configurado, devuelve la variante `completed` sin identificador de trabajo.

| Propiedad    | Descripción                                                                                                              | Tipo                      |
| ------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
| `setupJobId` | Identificador único del trabajo de configuración inicial en cola. Solo está presente en la variante `queued`.            | `string`                  |
| `status`     | `'queued'` cuando se creó un trabajo de configuración inicial, o `'completed'` cuando el proyecto ya estaba configurado. | `'queued' \| 'completed'` |

## Ejemplos [#examples]

```typescript title="index.ts"
import { GT } from 'generaltranslation';

const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// Referencias de archivo de una carga anterior
const fileRefs = [
  {
    fileId: 'file-123',
    versionId: 'version-456',
    branchId: 'branch-789',
  },
  {
    fileId: 'file-789',
    versionId: 'version-012',
    branchId: 'branch-789',
  },
];

const setupResult = await gt.setupProject(fileRefs);

if (setupResult.status === 'queued') {
  console.log(`Setup initiated with job ID: ${setupResult.setupJobId}`);

  // Esperar a que finalice la configuración inicial con un tiempo límite.
  const result = await gt.awaitJobs([setupResult.setupJobId], { timeoutSeconds: 300 });
  if (!result.complete || result.jobs.some((job) => job.status !== 'completed')) {
    throw new Error('Project setup did not complete successfully');
  }
} else {
  console.log('Project is already set up — no setup job needed');
}
```

## Notas [#notes]

* Los archivos deben subirse con [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) antes de llamar a `setupProject`.
* La configuración inicial del proyecto analiza el contenido y la estructura de los archivos para optimizar los flujos de trabajo de traducción.
* El trabajo de configuración inicial se ejecuta de forma asíncrona; supervisa su progreso con [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status).
* La configuración inicial suele ser necesaria antes de encolar trabajos de traducción para proyectos nuevos.
* Las referencias de archivos incluyen `branchId` para el control de versiones con compatibilidad con rama.

## Sitemap

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