# generaltranslation: General Translation Core SDK: downloadFile
URL: https://generaltranslation.com/it/docs/core/class/methods/translation/download-file.mdx
---
title: downloadFile
description: Riferimento API per il metodo downloadFile, che consente di scaricare file sorgente o tradotti
---
## Panoramica
Il metodo `downloadFile` scarica il contenuto di un singolo file come stringa UTF-8.
A seconda che venga specificata un'impostazione regionale, scarica il file sorgente o la traduzione corrispondente.
```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });
// Scarica una traduzione
const translatedContent = await gt.downloadFile({
fileId: 'file-123',
branchId: 'branch-456',
locale: 'es',
versionId: 'version-789'
});
// Scarica il file sorgente (nessuna impostazione regionale specificata)
const sourceContent = await gt.downloadFile({
fileId: 'file-123',
branchId: 'branch-456'
});
```
**Stato delle traduzioni:**
Quando scarichi le traduzioni, questo metodo funziona solo con traduzioni completate.
Usa prima [`queryFileData`](/docs/core/class/methods/translation/query-file-data) per verificare che le traduzioni siano completate prima di tentare il download.
## Guida di riferimento
### Parametri
| Nome | Tipo | Descrizione |
| ---------- | --------------------- | ------------------------------------------------------------------------------ |
| `file` | `FileInfo` | Oggetto contenente le informazioni sul file che specifica quale file scaricare |
| `options?` | `DownloadFileOptions` | Configurazione facoltativa per la richiesta di download |
#### Struttura `FileInfo`
| Name | Type | Description |
| ---------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fileId` | `string` | Identificatore univoco del file da scaricare |
| `branchId?` | `string` | ID del branch da cui eseguire il download. Se non viene fornito, verrà usato il branch predefinito |
| `locale?` | `string` | Impostazione regionale di destinazione della traduzione da scaricare. Se non viene fornita, verrà scaricato il file sorgente |
| `versionId?` | `string` | ID versione facoltativo del file. Se non viene fornito, verrà usata la versione più recente |
| `useLatestAvailableVersion?` | `boolean` | Se `true` e il `versionId` specificato non viene trovato, viene usata l'ultima versione disponibile invece di restituire un errore. Il valore predefinito è `false` |
#### DownloadFileOptions
| Nome | Tipo | Descrizione |
| ---------- | -------- | ---------------------------------------- |
| `timeout?` | `number` | Timeout della richiesta, in millisecondi |
### Restituisce
`Promise` - Il contenuto del file come stringa UTF-8.
La stringa restituita contiene il contenuto del file nello stesso formato del file sorgente originale. Per le traduzioni, tutto il testo traducibile viene convertito nell'impostazione regionale di destinazione.
***
## Esempio
```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 un singolo file
const spanishContent = await gt.downloadFile({
fileId,
branchId,
locale: 'es'
});
console.log('Traduzione in spagnolo:', spanishContent);
```
***
## Note
* Recupera il file scaricato come stringa UTF-8
* Quando viene fornita un'impostazione regionale, il file deve avere una traduzione completata per tale impostazione regionale
* Quando non viene fornita alcuna impostazione regionale, viene restituito il file sorgente
* L'operazione non riesce se il file non viene trovato
## Passaggi successivi
* Vedi [`queryFileData`](/docs/core/class/methods/translation/query-file-data) per verificare lo stato della traduzione prima di scaricarla
* Vedi [`downloadFileBatch`](/docs/core/class/methods/translation/download-file-batch) per scaricare più file in modo efficiente
* Vedi [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) per la procedura di caricamento dei file
* Vedi [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) per avviare i processi di traduzione
* Vedi [`awaitJobs`](/docs/core/class/methods/translation/await-jobs) per attendere il completamento dei processi prima di scaricare i file