# General Translation Platform: downloadFileBatch
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/translation/download-file-batch.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Scarica più file tradotti con una sola richiesta. Riferimento API per downloadFileBatch.

Recupera più file sorgente o file di traduzione con un&#39;unica richiesta invece di effettuare molte chiamate singole a [`downloadFile`](/docs/platform/core/reference/gt-class-methods/translation/download-file), riducendo il sovraccarico di rete.

## Panoramica [#overview]

Chiama `downloadFileBatch` con un array di richieste di download del file. Ogni richiesta può puntare a una traduzione (con un`impostazione regionale`) o a un file sorgente (senza `impostazione regionale`).

```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` richiede un `apiKey` (o `devApiKey`) e `projectId` nell&#39;istanza GT. Scarica più file con un&#39;unica chiamata API, risultando più efficiente rispetto a chiamate ripetute a [`downloadFile`](/docs/platform/core/reference/gt-class-methods/translation/download-file).*

## Come funziona [#how-it-works]

* **Ordine.** Associa ogni risultato alla relativa richiesta tramite `fileId`, `branchId`, `versionId` e `locale`, anziché in base alla sua posizione nella risposta.
* **Risoluzione dell&#39;impostazione regionale.** Ogni impostazione regionale richiesta viene ricondotta all&#39;impostazione regionale supportata utilizzata per l&#39;archiviazione. Codici equivalenti possono corrispondere a un&#39;unica traduzione archiviata; se richiedi sia `ja` sia `ja-JP`, ogni richiesta produce un risultato etichettato con l&#39;impostazione regionale passata.
* **Successo parziale.** Se un singolo download all&#39;interno del batch non va a buon fine, l&#39;intero batch non fallisce.
* **Disponibilità.** Usa [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) per verificare che i file siano pronti prima di scaricarli.
* **Formati binari.** I formati di testo restituiscono dati UTF-8 decodificati. `LOTTIE` rimane codificato in base64 affinché i chiamanti possano ricostruire il file binario `.lottie` senza corromperne i byte.

## Parametri [#parameters]

| Parametro               | Descrizione                                 | Tipo                       | Facoltativo | Predefinito |
| ----------------------- | ------------------------------------------- | -------------------------- | ----------- | ----------- |
| [`requests`](#requests) | Array di oggetti di richiesta file.         | `DownloadFileBatchRequest` | No          | —           |
| [`options`](#options)   | Configurazione della richiesta di download. | `DownloadFileBatchOptions` | Sì          | —           |

### `requests` [#requests]

**Tipo** `DownloadFileBatchRequest` · **Obbligatorio**

Un array di richieste di download dei file:

```typescript
type DownloadFileBatchRequest = {
  fileId: string;
  branchId?: string;
  locale?: string;
  versionId?: string;
  useLatestAvailableVersion?: boolean;
}[];
```

| Campo                       | Descrizione                                                                                                                   | Tipo      | Facoltativo | Predefinito        |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | --------- | ----------- | ------------------ |
| `fileId`                    | Identificatore univoco del file da scaricare.                                                                                 | `string`  | No          | —                  |
| `branchId`                  | Branch da cui scaricare.                                                                                                      | `string`  | Sì          | branch predefinito |
| `locale`                    | Impostazione regionale di destinazione per la traduzione. Omettilo per scaricare il file sorgente.                            | `string`  | Sì          | —                  |
| `versionId`                 | ID della versione da scaricare.                                                                                               | `string`  | Sì          | ultima versione    |
| `useLatestAvailableVersion` | Se `true` e il `versionId` specificato non viene trovato, usa l&#39;ultima versione disponibile invece di generare un errore. | `boolean` | Sì          | `false`            |

### `options` [#options]

**Tipo** `DownloadFileBatchOptions` · **Facoltativo**

| Campo     | Descrizione                              | Tipo     | Facoltativo |
| --------- | ---------------------------------------- | -------- | ----------- |
| `timeout` | Timeout della richiesta in millisecondi. | `number` | Sì          |

## Restituisce [#returns]

**Tipo** `Promise<DownloadFileBatchResult>`

Restituisce un `DownloadFileBatchResult` che contiene i file scaricati e un conteggio:

```typescript
type DownloadFileBatchResult = {
  files: DownloadedFile[];
  count: number;
};

type DownloadedFile = {
  id: string;
  branchId: string;
  fileId: string;
  versionId: string;
  locale?: string; // presente quando il file è una traduzione
  fileName?: string; // presente per i file sorgente (quando locale è assente)
  data: string; // testo UTF-8, oppure base64 per i formati binari
  metadata: JsonObject;
  fileFormat: FileFormat;
};
```

| Proprietà            | Descrizione                                                                                            | Tipo                                                            |
| -------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- |
| `files`              | Array di oggetti file scaricati.                                                                       | `DownloadedFile[]`                                              |
| `count`              | Numero di file scaricati con successo.                                                                 | `number`                                                        |
| `files[].id`         | Identificatore univoco del record del file scaricato.                                                  | `string`                                                        |
| `files[].branchId`   | Branch ID.                                                                                             | `string`                                                        |
| `files[].fileId`     | ID del file.                                                                                           | `string`                                                        |
| `files[].versionId`  | ID della versione.                                                                                     | `string`                                                        |
| `files[].locale`     | Impostazione regionale del file, presente quando è una traduzione.                                     | `string` (optional)                                             |
| `files[].fileName`   | Nome originale del file, presente per i file sorgente.                                                 | `string` (optional)                                             |
| `files[].data`       | Contenuto UTF-8 del file per i formati di testo o contenuto binario codificato in Base64 per `LOTTIE`. | `string`                                                        |
| `files[].metadata`   | Metadati specifici del formato del file.                                                               | `JsonObject`                                                    |
| `files[].fileFormat` | Formato del file (`JSON`, `MDX` e così via).                                                           | [`FileFormat`](/docs/platform/core/reference/types/file-format) |

## Esempi [#examples]

```typescript title="index.ts"
// (1) Crea un'istanza GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// (2) Carica il file
const fileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [{ source: fileUpload }];
const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en' });

// (3) Accoda il job di traduzione del file
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Attendi il completamento di tutte le traduzioni
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) Scarica tutte le traduzioni in un batch
const downloadResult = await gt.downloadFileBatch(
  targetLocales.map((locale) => ({
    fileId,
    branchId,
    locale,
  }))
);

downloadResult.files.forEach((file) => {
  console.log(`Downloaded ${file.locale}: ${file.fileName}`);
});
```

## Note [#notes]

* I file di testo vengono restituiti come stringhe UTF-8. Decodifica i dati `LOTTIE` da base64 per scrivere il file binario `.lottie`.
* Usa [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) per verificare prima che i file siano pronti per il download.
* Abbina i risultati alle richieste in base agli identificatori di file, versione, branch e impostazione regionale, anziché alla posizione.
* Il fallimento del download di singoli file all&#39;interno del batch non comporta il fallimento dell&#39;intero batch.

## Sitemap

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