# generaltranslation: General Translation Core SDK: downloadFile
URL: https://generaltranslation.com/es/docs/core/class/methods/translation/download-file.mdx
---
title: downloadFile
description: Referencia de la API del método downloadFile para descargar archivos de origen o traducidos
---
## Resumen
El método `downloadFile` descarga el contenido de un único archivo como una cadena UTF-8.
Si se especifica una configuración regional, descargará la traducción correspondiente; de lo contrario, descargará el archivo de origen.
```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });
// Descargar una traducción
const translatedContent = await gt.downloadFile({
fileId: 'file-123',
branchId: 'branch-456',
locale: 'es',
versionId: 'version-789'
});
// Descargar el archivo de origen (sin configuración regional especificada)
const sourceContent = await gt.downloadFile({
fileId: 'file-123',
branchId: 'branch-456'
});
```
**Estado de la traducción:**
Al descargar traducciones, este método solo funciona con traducciones completadas.
Usa [`queryFileData`](/docs/core/class/methods/translation/query-file-data) primero para verificar que las traducciones se hayan completado antes de intentar descargarlas.
## Referencia
### Parámetros
| Nombre | Tipo | Descripción |
| ---------- | --------------------- | -------------------------------------------------------------------------- |
| `file` | `FileInfo` | Objeto con la información del archivo que especifica qué archivo descargar |
| `options?` | `DownloadFileOptions` | Configuración opcional para la solicitud de descarga |
#### Estructura de FileInfo
| Nombre | Tipo | Descripción |
| ---------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fileId` | `string` | Identificador único del archivo que se va a descargar |
| `branchId?` | `string` | ID de la rama desde la que se descargará. Si no se proporciona, se usará la rama predeterminada |
| `locale?` | `string` | Configuración regional de destino de la traducción que se va a descargar. Si no se proporciona, se descargará el archivo de origen |
| `versionId?` | `string` | ID de versión opcional del archivo. Si no se proporciona, se usará la versión más reciente |
| `useLatestAvailableVersion?` | `boolean` | Si es `true` y no se encuentra el `versionId` especificado, se usará la versión disponible más reciente en lugar de devolver un error. El valor predeterminado es `false` |
#### DownloadFileOptions
| Nombre | Tipo | Descripción |
| ---------- | -------- | ------------------------------------------------ |
| `timeout?` | `number` | Tiempo de espera de la solicitud en milisegundos |
### Devuelve
`Promise`: el contenido del archivo como una cadena UTF-8.
La cadena devuelta contiene el contenido del archivo en el mismo formato que el archivo de origen. En el caso de las traducciones, todo el texto traducible se convierte a la configuración regional de destino.
***
## Ejemplo
```typescript title="index.ts" copy
// (1) Crear una instancia de GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// (2) Cargar 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) Poner en cola el trabajo de traducción de archivo
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
}
);
// (4) Esperar a que todas las traducciones estén completadas
const { fileId, versionId, branchId } = uploadedFiles[0];
const result = await gt.awaitJobs(enqueueResult);
if (!result.complete) {
console.error('Algunos trabajos no terminaron a tiempo');
}
// (5) Descargar un único archivo
const spanishContent = await gt.downloadFile({
fileId,
branchId,
locale: 'es'
});
console.log('Traducción al español:', spanishContent);
```
***
## Notas
* Obtiene el archivo descargado como una cadena UTF-8
* Cuando se proporciona una configuración regional, el archivo debe tener una traducción completada para esa configuración regional
* Cuando no se proporciona ninguna configuración regional, se devuelve el archivo de origen
* Fallará si no se encuentra el archivo
## Próximos pasos
* Consultar [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para verificar el estado de la traducción antes de descargar
* Consultar [`downloadFileBatch`](/docs/core/class/methods/translation/download-file-batch) para descargar varios archivos de forma eficiente
* Consultar [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) para consultar el proceso de carga de archivos
* Consultar [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) para iniciar trabajos de traducción
* Consultar [`awaitJobs`](/docs/core/class/methods/translation/await-jobs) para esperar a que los trabajos finalicen antes de descargar