# General Translation Platform: enqueueFiles
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/enqueue-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Pone en cola archivos fuente cargados para traducirlos a una o más configuraciones regionales de destino. Referencia de la API para enqueueFiles.

Pone en cola trabajos de traducción para archivos fuente cargados previamente con General Translation. Toma referencias de archivos y crea como máximo un trabajo de traducción por cada par de archivo fuente y configuración regional de destino que todavía requiera trabajo.

## Descripción general [#overview]

Llama a `enqueueFiles` con las referencias de archivo que devuelve [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) y un objeto de opciones con la lista de configuraciones regionales de destino.

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

const result = await gt.enqueueFiles(fileRefs, {
  sourceLocale: 'en',
  targetLocales: ['es', 'fr', 'de'],
});
```

Firma:

```typescript
enqueueFiles(
  files: FileReferenceIds[],
  options: EnqueueFilesOptions
): Promise<EnqueueFilesResult>
```

*Nota: `enqueueFiles` requiere una `apiKey` (o `devApiKey`) y `projectId` en la instancia de GT. Solo puedes poner en cola archivos después de haberlos subido.*

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

* **Trabajos asíncronos.** Los trabajos de traducción se ejecutan de forma asíncrona. Supervisa el progreso con [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) o espera a que finalicen con [`awaitJobs`](/docs/platform/core/reference/gt-class-methods/translation/await-jobs).
* **Como máximo un trabajo por archivo y configuración regional.** La respuesta `jobData` se organiza por ID de trabajo. Un par de archivo de origen y configuración regional de destino que ya esté completo en el formato de salida solicitado no crea un nuevo trabajo, salvo que se fuerce.
* **Control de versiones.** Las referencias de archivo incluyen `branchId` para el control de versiones con soporte para ramas.

## Parámetros [#parameters]

| Parámetro             | Descripción                                              | Tipo                                                                               | Opcional | Predeterminado |
| --------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------- | -------- | -------------- |
| [`files`](#files)     | IDs de referencia de archivos cargados previamente.      | `FileReferenceIds[]`                                                               | No       | —              |
| [`options`](#options) | Opciones de configuración para el trabajo de traducción. | [`EnqueueFilesOptions`](/docs/platform/core/reference/types/enqueue-files-options) | No       | —              |

### `files`

**Tipo** `FileReferenceIds[]` · **Obligatorio**

Las referencias de archivo que se deben poner en cola:

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

| Campo             | Descripción                                                          | Tipo                                                            | Opcional |
| ----------------- | -------------------------------------------------------------------- | --------------------------------------------------------------- | -------- |
| `fileId`          | Identificador único del archivo.                                     | `string`                                                        | No       |
| `versionId`       | Identificador de la versión.                                         | `string`                                                        | No       |
| `branchId`        | Identificador de la rama.                                            | `string`                                                        | Sí       |
| `fileName`        | Nombre del archivo.                                                  | `string`                                                        | Sí       |
| `fileFormat`      | Formato del archivo.                                                 | [`FileFormat`](/docs/platform/core/reference/types/file-format) | Sí       |
| `transformFormat` | Formato de salida solicitado para las traducciones generadas.        | [`FileFormat`](/docs/platform/core/reference/types/file-format) | Sí       |
| `dataFormat`      | Formato de los datos dentro del archivo (ICU, I18NEXT, JSX, STRING). | [`DataFormat`](/docs/platform/core/reference/types/data-format) | Sí       |

### `options`

**Tipo** [`EnqueueFilesOptions`](/docs/platform/core/reference/types/enqueue-files-options) · **Obligatorio**

Configuración del trabajo de traducción:

| Campo           | Descripción                                                                                       | Tipo       | Opcional | Predeterminado           |
| --------------- | ------------------------------------------------------------------------------------------------- | ---------- | -------- | ------------------------ |
| `sourceLocale`  | Configuración regional de origen de la traducción.                                                | `string`   | Sí       | instancia `sourceLocale` |
| `targetLocales` | Configuraciones regionales de destino a las que se traducirá.                                     | `string[]` | No       | —                        |
| `modelProvider` | Proveedor de modelo exclusivo para enterprise: `ANTHROPIC`, `OPENAI`, `XAI` o `GOOGLE`.           | `string`   | Sí       | —                        |
| `force`         | Invalida las traducciones en caché y fuerza una nueva traducción, aunque ya existan traducciones. | `boolean`  | Sí       | —                        |
| `timeout`       | Tiempo de espera de la solicitud en milisegundos.                                                 | `number`   | Sí       | —                        |

*Nota: `requireApproval` era una opción exclusiva de 8.x y no está presente en 9.0.*

## Devuelve [#returns]

**Tipo** `Promise<EnqueueFilesResult>`

Se resuelve con un `EnqueueFilesResult` que contiene información del trabajo y detalles de procesamiento:

```typescript
type EnqueueFilesResult = {
  jobData: {
    [jobId: string]: {
      sourceFileId: string;
      fileId: string;
      versionId: string;
      branchId: string;
      targetLocale: string;
      projectId: string;
      force: boolean;
      modelProvider?: string;
    };
  };
  locales: string[]; // configuraciones regionales de destino para los trabajos
  message: string; // mensaje de estado de la API
};
```

El registro `jobData` usa el ID del trabajo como clave, y cada valor describe un trabajo de traducción individual.

## Ejemplos [#examples]

```typescript title="index.ts"
// (1) Crear una instancia de GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// (2) Subir el archivo
const fileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON' as const,
  locale: 'en',
};
const files = [{ source: fileUpload }];
const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en' });

// (3) Poner en cola el trabajo de traducción del archivo
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

console.log(`Created ${Object.keys(enqueueResult.jobData).length} translation jobs`);

// (4) Esperar a que se completen todas las traducciones
const { fileId, versionId, branchId } = uploadedFiles[0];
const translatedFileQueries = targetLocales.map((locale) => ({
  fileId,
  versionId,
  branchId,
  locale,
}));

while (true) {
  const result = await gt.queryFileData({
    translatedFiles: translatedFileQueries,
  });

  const allCompleted = result.translatedFiles?.every((file) => file.completedAt !== null);

  if (allCompleted) {
    break;
  }

  await new Promise((resolve) => setTimeout(resolve, 1000));
}

// (5) Descargar los archivos
const downloadResult = await gt.downloadFileBatch(
  targetLocales.map((locale) => ({
    fileId,
    branchId,
    locale,
  }))
);
```

## Notas [#notes]

* El contenido del archivo debe cargarse primero mediante [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).
* Los trabajos de traducción son asíncronos; usa [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) o [`awaitJobs`](/docs/platform/core/reference/gt-class-methods/translation/await-jobs) para seguir el progreso.
* Las referencias de archivo incluyen `branchId` para el control de versiones con soporte para ramas.

## Sitemap

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