# generaltranslation: General Translation Core SDK: enqueueFiles
URL: https://generaltranslation.com/es/docs/core/class/methods/translation/enqueue-files.mdx
---
title: enqueueFiles
description: Referencia de la API para el método enqueueFiles para poner en cola trabajos de traducción de archivos
---
## Resumen
El método `enqueueFiles` pone en cola trabajos de traducción para archivos de origen cargados previamente.
Este método toma referencias a archivos y crea trabajos de traducción para los locales de destino especificados.
```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']
});
```
Solo puedes poner en cola archivos para su traducción una vez que se hayan cargado.
## Referencia
### Parámetros
| Nombre | Tipo | Descripción |
| --------- | ----------------- | ------------------------------------------------------- |
| `files` | `FileReference[]` | array de referencias a archivos cargados previamente |
| `options` | `EnqueueOptions` | Opciones de configuración para el trabajo de traducción |
#### Estructura de FileReference
```typescript
type FileReference = {
fileId: string;
versionId: string;
branchId: string;
fileName: string;
fileFormat?: FileFormat;
dataFormat?: DataFormat;
}
```
| Nombre | Tipo | Descripción |
| ------------- | ------------ | ----------------------------------------------------------- |
| `fileId` | `cadena` | Identificador único del archivo |
| `versionId` | `cadena` | Identificador de versión |
| `branchId` | `cadena` | Identificador de Branch |
| `fileName` | `cadena` | Nombre del archivo |
| `fileFormat?` | `FileFormat` | Formato del archivo (JSON, MD, etc.) |
| `dataFormat?` | `DataFormat` | Formato de los datos dentro del archivo (ICU, I18NEXT, JSX) |
#### EnqueueOptions
| Nombre | Tipo | Descripción |
| ------------------ | ---------- | ---------------------------------------------------------------------------------------------------- |
| `sourceLocale?` | `string` | Configuración regional de origen para la traducción (por defecto, la `sourceLocale` de la instancia) |
| `targetLocales?` | `string[]` | Array de locales de destino para la traducción (por defecto, la `targetLocale` de la instancia) |
| `publish?` | `boolean` | Indica si las traducciones se publican automáticamente al completarse |
| `requireApproval?` | `boolean` | Indica si las traducciones requieren aprobación antes de publicarse |
| `modelProvider?` | `string` | Proveedor específico de modelo de IA que se usará para la traducción |
| `force?` | `boolean` | Fuerza la retraducción aunque ya existan traducciones |
| `timeout?` | `number` | Tiempo de espera de la solicitud en milisegundos |
### Devuelve
`Promise`: contiene información del trabajo y detalles del procesamiento.
```typescript
type EnqueueFilesResult = {
jobId: string;
locales: string[];
message: string;
}
```
| Propiedad | Tipo | Descripción |
| --------- | ---------- | ----------------------------------------------------------- |
| `jobId` | `string` | ID del trabajo de traducción para comprobar el estado |
| `locales` | `string[]` | Lista de locales de destino para los trabajos de traducción |
| `message` | `string` | Mensaje de estado de la API |
***
## Ejemplo
```typescript title="index.ts" copy
// (1) Crear una instancia de GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// (2) Cargar el archivo
const fileUpload = {
content: fileContents,
fileName: filePath,
fileFormat: 'JSON',
locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
files,
{ sourceLocale: 'en' }
);
// (3) Poner en cola el trabajo de traducción de archivo
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
}
);
console.log(`Trabajo de traducción creado: ${enqueueResult.jobId}`);
// (4) Esperar a que todas las traducciones estén completadas
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
* El contenido del archivo debe cargarse primero con [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files)
* Los trabajos de traducción son asíncronos; usa [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para supervisar el progreso
* Las referencias a archivo incluyen `branchId` para un control de versiones adecuado con compatibilidad con el uso de ramas
## Próximos pasos
* Consultar [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) para cargar archivos antes de ponerlos en cola
* Consultar [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para supervisar el progreso de la traducción
* Consultar [`downloadFile`](/docs/core/class/methods/translation/download-file) para obtener las traducciones completadas
* Consultar [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) para comprobar el estado del trabajo