# General Translation Platform: downloadFile
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/download-file.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Descarga un archivo traducido una vez completada la traducción. Referencia de la API para downloadFile.

Descarga el contenido de un único archivo como una cadena UTF-8 con General Translation. Dependiendo de si proporcionas una configuración regional, devuelve el archivo de origen o la traducción correspondiente.

## Resumen general [#overview]

Llama a `downloadFile` con un descriptor de archivo. Incluye `locale` para descargar una traducción, o omítelo para 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',
});
```

Firma:

```typescript
downloadFile(
  file: {
    fileId: string;
    branchId?: string;
    locale?: string;
    versionId?: string;
    useLatestAvailableVersion?: boolean;
  },
  options?: DownloadFileOptions
): Promise<string>
```

*Nota: `downloadFile` requiere una `apiKey` (o `devApiKey`) y `projectId` en la instancia de GT. Al descargar traducciones, solo funciona con traducciones completadas; primero verifica el estado con [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data).*

## Cómo funciona [#how-it-works]

* **Archivo de origen vs. traducción.** Cuando se proporciona un `locale`, el archivo debe tener una traducción completada para la configuración regional compatible resuelta. Cuando no se proporciona ningún `locale`, se devuelve el archivo de origen.
* **Resolución de configuración regional.** La configuración regional solicitada se resuelve a la configuración regional compatible utilizada para el almacenamiento. Por ejemplo, `ja-JP` se resuelve como `ja`; las configuraciones regionales compatibles distintas, como `en-GB`, no cambian.
* **Formato conservado.** La cadena devuelta está en el mismo formato que el archivo de origen original; en las traducciones, todo el texto traducible se traduce a la configuración regional de destino.
* **Error.** La llamada falla si no se encuentra el archivo.

## Parámetros [#parameters]

| Parámetro             | Descripción                                                       | Tipo                  | Opcional | Predeterminado |
| --------------------- | ----------------------------------------------------------------- | --------------------- | -------- | -------------- |
| [`file`](#file)       | Información del archivo que indica qué archivo se debe descargar. | `object`              | No       | —              |
| [`options`](#options) | Configuración de la solicitud de descarga.                        | `DownloadFileOptions` | Sí       | —              |

### `file` [#file]

**Tipo** `object` · **Obligatorio**

Identifica el archivo que se va a descargar:

| Campo                       | Descripción                                                                                                                      | Tipo      | Opcional | Predeterminado       |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------- | -------- | -------------------- |
| `fileId`                    | Identificador único del archivo que se va a descargar.                                                                           | `string`  | No       | —                    |
| `branchId`                  | Rama desde la que se descargará.                                                                                                 | `string`  | Sí       | rama predeterminada  |
| `locale`                    | Configuración regional de destino de la traducción que se descargará. Omítelo para descargar el archivo de origen.               | `string`  | Sí       | —                    |
| `versionId`                 | ID de la versión del archivo.                                                                                                    | `string`  | Sí       | versión más reciente |
| `useLatestAvailableVersion` | Si es `true` y no se encuentra el `versionId` especificado, usa la versión disponible más reciente en lugar de generar un error. | `boolean` | Sí       | `false`              |

### `options` [#options]

**Tipo** `DownloadFileOptions` · **Opcional**

| Campo     | Descripción                                        | Tipo     | Opcional |
| --------- | -------------------------------------------------- | -------- | -------- |
| `timeout` | Tiempo de espera de la solicitud, en milisegundos. | `number` | Sí       |

## Devuelve [#returns]

**Tipo** `Promise<string>`

Se resuelve en el contenido del archivo como una cadena UTF-8, con el mismo formato que el archivo de origen. En las traducciones, todo el texto traducible se convierte a la configuración regional de destino.

## Ejemplos [#examples]

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

// (2) Subir 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) Encolar el trabajo de traducción del archivo
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Esperar a que todas las traducciones se completen
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) Descargar un archivo individual
const spanishContent = await gt.downloadFile({
  fileId,
  branchId,
  locale: 'es',
});

console.log('Spanish translation:', spanishContent);
```

## Notas [#notes]

* Recupera el archivo descargado como una cadena UTF-8.
* Cuando se proporciona una configuración regional, el archivo debe tener una traducción completada para su configuración regional compatible resuelta.
* Cuando no se proporciona ninguna configuración regional, se devuelve el archivo de origen.
* La llamada falla si no se encuentra el archivo.

## Sitemap

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