# generaltranslation: General Translation Core SDK: downloadFileBatch
URL: https://generaltranslation.com/it/docs/core/class/methods/translation/download-file-batch.mdx
---
title: downloadFileBatch
description: Documentazione di riferimento dell'API per il metodo downloadFileBatch, che consente di scaricare più file in un'unica richiesta
---
## Panoramica
Il metodo `downloadFileBatch` scarica più file sorgente o di traduzione con un'unica richiesta in batch.
```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' }
]);
```
**Efficienza in batch:**
Questo metodo è ottimizzato per scaricare più file con una singola chiamata API, riducendo il sovraccarico di rete e migliorando le prestazioni rispetto a più chiamate individuali a `downloadFile`.
## Documentazione di riferimento
### Parametri
| Nome | Tipo | Descrizione |
| ---------- | -------------------------- | ------------------------------------------------------- |
| `requests` | `DownloadFileBatchRequest` | Array di oggetti di richiesta dei file |
| `options?` | `DownloadFileBatchOptions` | Configurazione facoltativa per la richiesta di download |
#### DownloadFileBatchRequest
```typescript
type DownloadFileBatchRequest = {
fileId: string;
branchId?: string;
locale?: string;
versionId?: string;
useLatestAvailableVersion?: boolean;
}[];
```
| Nome | Tipo | Descrizione |
| ---------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fileId` | `string` | Identificatore univoco del file da scaricare |
| `branchId?` | `string` | ID del branch da cui scaricare. Se non viene fornito, verrà usato il branch predefinito |
| `locale?` | `string` | Impostazione regionale di destinazione per la traduzione. Se non viene fornita, verrà scaricato il file sorgente |
| `versionId?` | `string` | ID della versione da scaricare. Se non viene fornito, verrà usata la versione più recente |
| `useLatestAvailableVersion?` | `boolean` | Se `true` e il `versionId` specificato non viene trovato, viene usata come fallback la versione disponibile più recente invece di generare un errore. Il valore predefinito è `false` |
#### DownloadFileBatchOptions
| Nome | Tipo | Descrizione |
| ---------- | -------- | ---------------------------------------- |
| `timeout?` | `number` | Timeout della richiesta, in millisecondi |
### Restituisce
`Promise` - Contiene i file scaricati e i relativi metadati.
```typescript
type DownloadFileBatchResult = {
files: File[];
count: number;
}
```
| Proprietà | Tipo | Descrizione |
| --------- | -------- | -------------------------------------- |
| `files` | `File[]` | Array di oggetti file scaricati |
| `count` | `number` | Numero di file scaricati correttamente |
#### Struttura dei file
```typescript
type File = {
fileId: string;
branchId?: string;
locale?: string;
versionId?: string;
fileName: string;
data: string;
}
```
| Proprietà | Tipo | Descrizione |
| ----------- | -------- | ----------------------------------------------------- |
| `fileId` | `string` | ID del file |
| `branchId` | `string` | ID del branch |
| `locale` | `string` | Impostazione regionale del file (se è una traduzione) |
| `versionId` | `string` | ID della versione |
| `fileName` | `string` | Nome originale del file |
| `data` | `string` | Contenuto del file come stringa UTF-8 |
***
## Esempi
```typescript title="index.ts" copy
// (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('Alcuni job non sono stati completati in tempo');
}
// (5) Scarica tutte le traduzioni in batch
const downloadResult = await gt.downloadFileBatch(
targetLocales.map((locale) => ({
fileId,
branchId,
locale
}))
);
downloadResult.files.forEach(file => {
console.log(`Scaricato ${file.locale}: ${file.fileName}`);
});
```
***
## Note
* I file vengono restituiti come stringhe UTF-8
* Usa [`queryFileData`](/docs/core/class/methods/translation/query-file-data) per verificare prima che i file siano pronti per il download
* I file vengono restituiti nello stesso ordine degli elementi richiesti, quando possibile
* Il fallimento di singoli download di file all'interno dell'operazione in batch non comporta il fallimento dell'intera operazione in batch
## Passaggi successivi
* Vedi [`downloadFile`](/docs/core/class/methods/translation/download-file) per scaricare un singolo file
* Vedi [`queryFileData`](/docs/core/class/methods/translation/query-file-data) per verificare che i file siano pronti per il download
* Vedi [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) per avviare i processi di traduzione