# 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