# General Translation Platform: downloadFileBatch URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/download-file-batch.mdx --- title: downloadFileBatch description: Descarga varios archivos traducidos en una sola solicitud. Referencia de la API de downloadFileBatch. --- Descarga varios archivos fuente o de traducción en una única solicitud por lotes con General Translation. Úsalo en lugar de hacer muchas llamadas individuales a [`downloadFile`](/docs/platform/core/reference/gt-class-methods/translation/download-file) para reducir la sobrecarga de red. ## Resumen [#overview] Llama a `downloadFileBatch` con una lista de solicitudes de archivo. Cada solicitud puede corresponder a una traducción (con una `configuración regional`) o a un archivo fuente (sin ella). ```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' }, ]); ``` Firma: ```typescript downloadFileBatch( requests: DownloadFileBatchRequest, options?: DownloadFileBatchOptions ): Promise ``` *Nota: `downloadFileBatch` requiere una `apiKey` (o `devApiKey`) y `projectId` en la instancia de GT. Descarga varios archivos en una sola llamada a la API, lo que es más eficiente que hacer varias llamadas a `downloadFile`.* ## Cómo funciona [#how-it-works] * **Orden.** Los archivos se devuelven en el mismo orden que los elementos solicitados, cuando es posible. * **Éxito parcial.** Si falla una descarga individual dentro del lote, no se produce un error en todo el lote. * **Disponibilidad.** Usa [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) para verificar que los archivos estén listos antes de descargarlos. ## Parámetros [#parameters] | Parámetro | Descripción | Tipo | Opcional | Predeterminado | | ----------------------- | ------------------------------------------ | -------------------------- | -------- | -------------- | | [`requests`](#requests) | Lista de objetos de solicitud de archivo. | `DownloadFileBatchRequest` | No | — | | [`options`](#options) | Configuración de la solicitud de descarga. | `DownloadFileBatchOptions` | Sí | — | ### `requests` [#requests] **Tipo** `DownloadFileBatchRequest` · **Obligatorio** Una lista de solicitudes de archivos: ```typescript type DownloadFileBatchRequest = { fileId: string; branchId?: string; locale?: string; versionId?: string; useLatestAvailableVersion?: boolean; }[]; ``` | Campo | Descripción | Tipo | Opcional | Predeterminado | | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -------- | -------------------- | | `fileId` | Identificador único del archivo que se va a descargar. | `string` | No | — | | `branchId` | Rama desde la que se descargará. | `string` | Sí | rama por defecto | | `locale` | Configuración regional de destino de la traducción. Omítela para descargar el archivo fuente. | `string` | Sí | — | | `versionId` | ID de la versión que se descargará. | `string` | Sí | versión más reciente | | `useLatestAvailableVersion` | Si es `true` y no se encuentra el `versionId` especificado, usa en su lugar la versión disponible más reciente en vez de producir un error. | `boolean` | Sí | `false` | ### `options` [#options] **Tipo** `DownloadFileBatchOptions` · **Opcional** | Campo | Descripción | Tipo | Opcional | | --------- | ------------------------------------------------- | -------- | -------- | | `timeout` | Tiempo de espera de la solicitud en milisegundos. | `number` | Sí | ## Devuelve [#returns] **Tipo** `Promise` Se resuelve con un `DownloadFileBatchResult` que contiene los archivos descargados y un recuento: ```typescript type DownloadFileBatchResult = { files: DownloadedFile[]; count: number; }; type DownloadedFile = { id: string; branchId: string; fileId: string; versionId: string; locale?: string; // presente cuando el archivo es una traducción fileName?: string; // presente para los archivos fuente (cuando la configuración regional no está presente) data: string; // contenido del archivo como cadena UTF-8 metadata: JsonObject; fileFormat: FileFormat; }; ``` | Propiedad | Descripción | Tipo | | -------------------- | ------------------------------------------------------------------------------- | ------------------- | | `files` | Lista de objetos de archivo descargados. | `DownloadedFile[]` | | `count` | Número de archivos descargados con éxito. | `number` | | `files[].id` | Identificador único del registro del archivo descargado. | `string` | | `files[].branchId` | ID de la rama. | `string` | | `files[].fileId` | ID del archivo. | `string` | | `files[].versionId` | ID de la versión. | `string` | | `files[].locale` | Configuración regional del archivo, presente cuando se trata de una traducción. | `string` (optional) | | `files[].fileName` | Nombre del archivo original, presente en los archivos fuente. | `string` (optional) | | `files[].data` | Contenido del archivo como una cadena UTF-8. | `string` | | `files[].metadata` | Metadatos específicos del formato del archivo. | `JsonObject` | | `files[].fileFormat` | Formato del archivo (`JSON`, `MDX`, etc.). | `FileFormat` | ## Ejemplos [#examples] ```typescript title="index.ts" // (1) Crear una instancia de GT const targetLocales = ['es', 'fr', 'de']; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // (2) Subir 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('Some jobs did not finish in time'); } // (5) Descargar todas las traducciones en un lote const downloadResult = await gt.downloadFileBatch( targetLocales.map((locale) => ({ fileId, branchId, locale, })) ); downloadResult.files.forEach((file) => { console.log(`Downloaded ${file.locale}: ${file.fileName}`); }); ``` ## Notas [#notes] * Los archivos se devuelven como cadenas en UTF-8. * Usa [`queryFileData`](/docs/platform/core/reference/gt-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 sea posible. * Que falle la descarga de un archivo individual dentro del lote no hace que falle todo el lote.