# 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