# 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 del método enqueueFiles para encolar trabajos de traducción de archivos
---
## Descripción general
El método `enqueueFiles` encola trabajos de traducción para archivos fuente cargados previamente.
Este método toma referencias a archivos y crea trabajos de traducción para las configuraciones regionales de destino especificadas.
```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 encolar archivos para traducirlos después de haberlos cargado.
## Referencia
### Parámetros
| Nombre | Tipo | Descripción |
| --------- | -------------------- | ----------------------------------------------------------- |
| `files` | `FileReferenceIds[]` | array de ID de referencias a archivos cargados previamente |
| `options` | `EnqueueOptions` | Opciones de configuración para el trabajo de traducción |
#### Estructura de FileReferenceIds
```typescript
type FileReferenceIds = {
fileId: string;
versionId: string;
branchId?: string;
fileName?: string;
fileFormat?: FileFormat;
dataFormat?: DataFormat;
}
```
| Nombre | Tipo | Descripción |
| ------------- | ------------ | ----------------------------------------------------------- |
| `fileId` | `string` | Identificador único del archivo |
| `versionId` | `string` | Identificador de la versión |
| `branchId?` | `string` | Identificador de la rama (opcional) |
| `fileName?` | `cadena` | Nombre del archivo (opcional) |
| `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, `sourceLocale` de la instancia) |
| `targetLocales` | `string[]` | Array de configuraciones regionales de destino para la traducción |
| `requireApproval?` | `boolean` | Si las traducciones requieren aprobación antes de publicarse |
| `modelProvider?` | `string` | Proveedor específico del modelo de IA que se usará para la traducción |
| `force?` | `boolean` | Si se fuerza la retraducción aunque ya existan traducciones |
| `timeout?` | `number` | Tiempo de espera de la solicitud, en milisegundos |
### Devuelve
`Promise` - Incluye información sobre el trabajo y detalles del 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[];
message: string;
}
```
| Propiedad | Tipo | Descripción |
| --------- | ------------------------ | ----------------------------------------------------------------------------------------------------- |
| `jobData` | `Record` | Un registro con claves de ID de trabajo, donde cada valor contiene detalles del trabajo de traducción |
| `locales` | `string[]` | Lista de configuraciones regionales 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) Encolar el trabajo de traducción del archivo
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
}
);
console.log(`Trabajo de traducción creado: ${enqueueResult.jobId}`);
// (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
* 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 de archivo incluyen `branchId` para un versionado correcto con compatibilidad con ramas
## Siguientes pasos
* Consulta [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) para cargar archivos antes de encolarlos
* Consulta [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para supervisar el progreso de la traducción
* Consulta [`downloadFile`](/docs/core/class/methods/translation/download-file) para obtener las traducciones completadas
* Consulta [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) para comprobar el estado del trabajo