# generaltranslation: General Translation Core SDK: downloadFileBatch URL: https://generaltranslation.com/es/docs/core/class/methods/translation/download-file-batch.mdx --- title: downloadFileBatch description: Referencia de la API del método downloadFileBatch para descargar varios archivos en una sola solicitud --- ## Resumen El método `downloadFileBatch` descarga varios archivos fuente o de traducción en una sola solicitud por lote. ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const result = await gt.downloadFileBatch([ { fileId: 'file-123', branchId: 'branch-456', locale: 'es' }, { fileId: 'file-123', branchId: 'branch-456', locale: 'fr' }, { fileId: 'file-123', branchId: 'branch-456', locale: 'de' } ]); ``` **Eficiencia en lotes:** Este método está optimizado para descargar varios archivos en una sola llamada a la API, lo que reduce la sobrecarga de red y mejora el rendimiento frente a varias llamadas individuales a `downloadFile`. ## Referencia ### Parámetros | Nombre | Tipo | Descripción | | ---------- | -------------------------- | ---------------------------------------------------- | | `requests` | `DownloadFileBatchRequest` | Array de objetos de solicitud de archivo | | `options?` | `DownloadFileBatchOptions` | Configuración opcional para la solicitud de descarga | #### DownloadFileBatchRequest ```typescript type DownloadFileBatchRequest = { fileId: string; branchId?: string; locale?: string; versionId?: string; useLatestAvailableVersion?: boolean; }[]; ``` | Name | Type | Description | | ---------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `fileId` | `string` | Identificador único del archivo que se descargará | | `branchId?` | `string` | ID de la rama desde la que se descargará. Si no se proporciona, se usará la rama predeterminada | | `locale?` | `string` | Configuración regional de destino para la traducción. Si no se proporciona, se descargará el archivo de origen | | `versionId?` | `string` | ID de la versión que se descargará. Si no se proporciona, se usará la versión más reciente | | `useLatestAvailableVersion?` | `boolean` | Si es `true` y no se encuentra el `versionId` especificado, se usará la última versión disponible en lugar de generar un error. El valor predeterminado es `false` | #### DownloadFileBatchOptions | Nombre | Tipo | Descripción | | ---------- | -------- | ----------------------------------------------- | | `timeout?` | `number` | Tiempo de espera de la solicitud en milisegundos | ### Devuelve `Promise` - Incluye los archivos descargados y sus metadatos. ```typescript type DownloadFileBatchResult = { files: File[]; count: number; } ``` | Propiedad | Tipo | Descripción | | --------- | -------- | -------------------------------------------- | | `files` | `File[]` | array de objetos de archivo descargados | | `count` | `number` | Número de archivos descargados correctamente | #### Estructura de archivos ```typescript type File = { fileId: string; branchId?: string; locale?: string; versionId?: string; fileName: string; data: string; } ``` | Propiedad | Tipo | Descripción | | ----------- | -------- | --------------------------------------------------------- | | `fileId` | `string` | ID del archivo | | `branchId` | `string` | ID de la rama | | `locale` | `string` | Configuración regional del archivo (si es una traducción) | | `versionId` | `string` | ID de la versión | | `fileName` | `string` | Nombre original del archivo | | `data` | `string` | Contenido del archivo como cadena UTF-8 | *** ## Ejemplos ```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, } ); // (4) Esperar a que se completen todas las traducciones const { fileId, versionId, branchId } = uploadedFiles[0]; const result = await gt.awaitJobs(enqueueResult); if (!result.complete) { console.error('Algunos trabajos no finalizaron a tiempo'); } // (5) Descargar todas las traducciones en lote const downloadResult = await gt.downloadFileBatch( targetLocales.map((locale) => ({ fileId, branchId, locale })) ); downloadResult.files.forEach(file => { console.log(`Descargado ${file.locale}: ${file.fileName}`); }); ``` *** ## Notas * Los archivos se devuelven como cadenas en UTF-8 * Usa [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para verificar primero que los archivos estén listos para descargarse * Los archivos se devuelven en el mismo orden que los elementos solicitados, cuando es posible * Que falle la descarga de un archivo dentro del lote no hace que falle el lote completo ## Siguientes pasos * Consulta [`downloadFile`](/docs/core/class/methods/translation/download-file) para descargar un solo archivo * Consulta [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para verificar que los archivos estén listos para su descarga * Consulta [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) para iniciar trabajos de traducción