# generaltranslation: General Translation Core SDK: downloadFile
URL: https://generaltranslation.com/ja/docs/core/class/methods/translation/download-file.mdx
---
title: downloadFile
description: ソースファイルまたは翻訳済みファイルをダウンロードする downloadFile メソッドの API リファレンス
---
## 概要
`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)を参照してください