# generaltranslation: General Translation Core SDK: downloadFile URL: https://generaltranslation.com/ru/docs/core/class/methods/translation/download-file.mdx --- title: downloadFile description: Справка по API метода downloadFile для скачивания исходных или переведённых файлов --- ## Обзор Метод `downloadFile` загружает содержимое одного файла в виде строки в кодировке UTF-8. В зависимости от того, указана ли локаль, он загружает либо исходный файл, либо соответствующий перевод. ```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' }); ``` **Статус перевода:** При загрузке переводов этот метод работает только с завершёнными переводами. Сначала используйте [`queryFileData`](/docs/core/class/methods/translation/query-file-data), чтобы убедиться, что переводы завершены, и только затем пытайтесь их загрузить. ## Справка ### Параметры | Имя | Тип | Описание | | ---------- | --------------------- | -------------------------------------------------------------------- | | `file` | `FileInfo` | Объект с информацией о файле, определяющий, какой файл нужно скачать | | `options?` | `DownloadFileOptions` | Необязательные параметры запроса на скачивание | #### Структура FileInfo | Имя | Тип | Описание | | ---------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | `fileId` | `string` | Уникальный идентификатор файла для скачивания | | `branchId?` | `string` | ID ветки, из которой нужно скачать файл. Если не указан, будет использована ветка по умолчанию | | `locale?` | `string` | Целевая локаль перевода, которую нужно скачать. Если не указана, будет скачан исходный файл | | `versionId?` | `string` | Необязательный ID версии файла. Если не указан, будет использована последняя версия | | `useLatestAvailableVersion?` | `boolean` | Если `true` и указанный `versionId` не найден, будет использована последняя доступная версия вместо ошибки. По умолчанию — `false` | #### DownloadFileOptions | Имя | Тип | Описание | | ---------- | -------- | -------------------------------- | | `timeout?` | `number` | Тайм-аут запроса в миллисекундах | ### Возвращает `Promise` — содержимое файла в виде строки в кодировке UTF-8. Возвращаемая строка содержит содержимое файла в том же формате, что и исходный файл. В случае перевода весь переводимый текст переводится на целевую локаль. *** ## Пример ```typescript title="index.ts" copy // (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('Некоторые задания не завершились вовремя'); } // (5) Скачать отдельный файл const spanishContent = await gt.downloadFile({ fileId, branchId, locale: 'es' }); console.log('Перевод на испанский:', spanishContent); ``` *** ## Примечания * Возвращает загруженный файл в виде строки UTF-8 * Если указана локаль, для файла должен быть доступен завершённый перевод на эту локаль * Если локаль не указана, возвращается исходный файл * Если файл не найден, операция завершится ошибкой ## Следующие шаги * См. [`queryFileData`](/docs/core/class/methods/translation/query-file-data), чтобы проверить статус перевода перед загрузкой * См. [`downloadFileBatch`](/docs/core/class/methods/translation/download-file-batch), чтобы эффективно загрузить несколько файлов * См. [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files), чтобы ознакомиться с процессом загрузки файлов * См. [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files), чтобы запустить задания на перевод * См. [`awaitJobs`](/docs/core/class/methods/translation/await-jobs), чтобы дождаться завершения заданий перед загрузкой