# 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: FileReference[],
  options?: SetupProjectOptions
): Promise<SetupProjectResult>
```

*Nota: `setupProject` requiere un `apiKey` (o `devApiKey`) y `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. | `FileReference[]`     | No       | —              |
| [`options`](#options) | Opciones del trabajo de configuración inicial.     | `SetupProjectOptions` | Sí       | —              |

### `files` [#files]

**Tipo** `FileReference[]` · **Obligatorio**

Las referencias de archivos devueltas por [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files):

```typescript
type FileReference = {
  fileId: string;
  versionId: string;
  branchId: string;
  fileName: string;
  fileFormat: FileFormat;
  transformFormat?: FileFormat; // formato de salida solicitado para las traducciones generadas
  dataFormat?: DataFormat;
};
```

Tanto `fileName` como `fileFormat` son obligatorios en `FileReference`; `transformFormat` y `dataFormat` son opcionales.

### `options` [#options]

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

| Campo       | Descripción                                                                               | tipo       | Opcional |
| ----------- | ----------------------------------------------------------------------------------------- | ---------- | -------- |
| `force`     | Fuerza una nueva configuración inicial al invalidar las traducciones en caché existentes. | `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',
    fileName: 'app.json',
    fileFormat: 'JSON',
  },
  {
    fileId: 'file-789',
    versionId: 'version-012',
    branchId: 'branch-789',
    fileName: 'content.md',
    fileFormat: 'MD',
  },
];

const setupResult = await gt.setupProject(fileRefs);

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

  // Monitorear el estado del trabajo (checkJobStatus devuelve una lista plana)
  const jobStatus = await gt.checkJobStatus([setupResult.setupJobId]);
  console.log(`Job status: ${jobStatus[0].status}`);
} 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.
