# General Translation Platform: downloadFile
URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/translation/download-file.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Скачивает один переведённый файл после завершения перевода. Справочник API для downloadFile.

Скачивает содержимое одного файла в виде строки UTF-8 с помощью General Translation. В зависимости от того, передаёте ли вы локаль, возвращает либо исходный файл, либо соответствующий перевод.

## Обзор [#overview]

Вызовите `downloadFile`, передав дескриптор файла. Укажите параметр `locale`, чтобы скачать перевод, или опустите его, чтобы скачать исходный файл.

```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });

// Скачать перевод
const translatedContent = await gt.downloadFile({
  fileId: 'file-123',
  branchId: 'branch-456',
  locale: 'es',
  versionId: 'version-789',
});

// Скачать исходный файл (локаль не указана)
const sourceContent = await gt.downloadFile({
  fileId: 'file-123',
  branchId: 'branch-456',
});
```

Сигнатура:

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

*Примечание: `downloadFile` требует `apiKey` (или `devApiKey`) и `projectId` в экземпляре GT. При скачивании переводов этот метод работает только с завершёнными переводами — сначала проверьте status с помощью [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data).*

## Как это работает [#how-it-works]

* **Исходный файл и перевод.** Если указана `locale`, для файла должен существовать завершённый перевод на разрешённую поддерживаемую локаль. Если `locale` не указана, возвращается исходный файл.
* **Разрешение локалей.** Запрошенная локаль разрешается в поддерживаемую локаль, используемую для хранения. Например, `ja-JP` разрешается в `ja`; отдельные поддерживаемые локали, такие как `en-GB`, остаются без изменений.
* **Формат сохраняется.** Возвращаемая строка имеет тот же формат, что и исходный файл; в случае перевода весь переводимый текст преобразуется в целевую локаль.
* **Ошибка.** Вызов завершается ошибкой, если файл не найден.

## Параметры [#parameters]

| Параметр              | Описание                                                    | Тип                   | Необязательный | По умолчанию |
| --------------------- | ----------------------------------------------------------- | --------------------- | -------------- | ------------ |
| [`file`](#file)       | Информация о файле, определяющая, какой файл нужно скачать. | `object`              | Нет            | —            |
| [`options`](#options) | Параметры запроса на скачивание.                            | `DownloadFileOptions` | Да             | —            |

### `file` [#file]

**Тип** `object` · **Обязательный**

Определяет файл для скачивания:

| Поле                        | Описание                                                                                                    | Тип       | Необязательный | По умолчанию        |
| --------------------------- | ----------------------------------------------------------------------------------------------------------- | --------- | -------------- | ------------------- |
| `fileId`                    | Уникальный идентификатор скачиваемого файла.                                                                | `string`  | Нет            | —                   |
| `branchId`                  | branch, из которой нужно скачать файл.                                                                      | `string`  | Да             | branch по умолчанию |
| `locale`                    | Целевая локаль перевода для скачивания. Не указывайте, чтобы скачать исходный файл.                         | `string`  | Да             | —                   |
| `versionId`                 | ID версии файла.                                                                                            | `string`  | Да             | последняя версия    |
| `useLatestAvailableVersion` | Если `true` и указанный `versionId` не найден, вместо ошибки будет использована последняя доступная версия. | `boolean` | Да             | `false`             |

### `options` [#options]

**Тип** `DownloadFileOptions` · **Необязательный**

| Поле      | Описание                                | Тип      | Необязательное |
| --------- | --------------------------------------- | -------- | -------------- |
| `timeout` | Время ожидания запроса в миллисекундах. | `number` | Да             |

## Возвращает [#returns]

**Тип** `Promise<string>`

Возвращает содержимое файла в виде строки UTF-8 в том же формате, что и исходный файл. Для переводов весь переводимый текст преобразуется в целевую локаль.

## Примеры [#examples]

```typescript title="index.ts"
// (1) Создать экземпляр GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// (2) Загрузить файл
const fileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [{ source: fileUpload }];
const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en' });

// (3) Добавить задачу перевода файла в очередь
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Дождаться завершения всех переводов
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) Скачать отдельный файл
const spanishContent = await gt.downloadFile({
  fileId,
  branchId,
  locale: 'es',
});

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

## Заметки [#notes]

* Возвращает скачанный файл в виде строки UTF-8.
* Если указана локаль, для файла должен быть доступен завершённый перевод для соответствующей поддерживаемой локали.
* Если локаль не указана, возвращается исходный файл.
* Если файл не найден, вызов завершается ошибкой.

## Sitemap

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