# 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 in batch. Riferimento API per downloadFileBatch.

Recupera file sorgente o file di traduzione in batch da massimo 100 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 `locale`) o a un file sorgente (senza `locale`).

```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 una chiave API (incluso l&#39;alias deprecato `devApiKey`), oltre a `projectId` nell&#39;istanza GT. Per impostazione predefinita, i batch vengono eseguiti in parallelo.*

## 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.
* **Codici locale.** Se una sola delle grafie o degli alias richiesti corrisponde a un&#39;impostazione regionale restituita, viene usata quella grafia. In caso contrario, le impostazioni regionali restituite seguono le [regole del costruttore](/docs/platform/core/reference/gt-class/constructor#how-it-works). Grafie richieste equivalenti possono condividere la stessa etichetta nella risposta.
* **Successo parziale.** Una risposta riuscita può contenere meno file di quelli richiesti. Se una richiesta batch viene rifiutata, viene rifiutato anche il risultato aggregato, senza annullare né interrompere i batch già avviati.
* **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, ma non i dettagli `pending`. Per ottenerli, usa il metodo generato `downloadFiles` tramite il [client API](/docs/platform/core/reference/api-client#endpoint-helpers), che restituisce il contenuto in base64:

```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"
import { GT } from 'generaltranslation';
import type { FileUpload } from 'generaltranslation/types';

const fileContents = '{"greeting":"Hello"}';
const filePath = 'en.json';

// (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: 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, { timeoutSeconds: 300 });

if (!result.complete || result.jobs.some((job) => job.status !== 'completed')) {
  throw new Error('Translations are not ready to download');
}

// (5) Scarica tutte le traduzioni in un batch
const downloadResult = await gt.downloadFileBatch(
  targetLocales.map((locale) => ({
    fileId,
    versionId,
    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.
* Le risposte parzialmente riuscite sono diverse dagli errori di richiesta: se una richiesta batch viene rifiutata, viene rifiutato anche il risultato aggregato.

## Sitemap

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