# General Translation Platform: downloadFileBatch
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/download-file-batch.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Descarga varios archivos traducidos en una sola solicitud. Referencia de la API de downloadFileBatch.

Obtén varios archivos fuente o de traducción en una sola solicitud en lugar de hacer muchas llamadas individuales a [`downloadFile`](/docs/platform/core/reference/gt-class-methods/translation/download-file), lo que reduce 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<DownloadFileBatchResult>
```

*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`](/docs/platform/core/reference/gt-class-methods/translation/download-file).*

## Cómo funciona [#how-it-works]

* **Orden.** Vincula cada resultado con su solicitud mediante `fileId`, `branchId`, `versionId` y `locale`, en lugar de por su posición en la respuesta.
* **Resolución de configuración regional.** Cada configuración regional solicitada se resuelve en la configuración regional compatible utilizada para el almacenamiento. Los códigos equivalentes pueden resolverse en una misma traducción almacenada; si solicitas tanto `ja` como `ja-JP`, cada solicitud genera un resultado etiquetado con la configuración regional que proporcionaste.

- **É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.

* **Formatos binarios.** Los formatos de texto devuelven datos UTF-8 decodificados. `LOTTIE` permanece codificado en base64 para que las aplicaciones que llaman a la API puedan reconstruir el archivo binario `.lottie` sin corromper sus bytes.

## 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<DownloadFileBatchResult>`

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; // texto UTF-8, o base64 para formatos binarios
  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 de archivo UTF-8 para formatos de texto o contenido binario codificado en base64 para `LOTTIE`. | `string`                                                        |
| `files[].metadata`   | Metadatos específicos del formato del archivo.                                                            | `JsonObject`                                                    |
| `files[].fileFormat` | Formato del archivo (`JSON`, `MDX`, etc.).                                                                | [`FileFormat`](/docs/platform/core/reference/types/file-format) |

## 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 de texto se devuelven como cadenas en UTF-8. Decodifica los datos de `LOTTIE` de base64 para escribir el archivo binario `.lottie`.
* Usa [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) para verificar primero que los archivos estén listos para descargarse.
* Relaciona los resultados con las solicitudes mediante sus identificadores de archivo, versión, rama y configuración regional, en lugar de por posición.
* Que falle la descarga de un archivo individual dentro del lote no hace que falle todo el lote.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
