# generaltranslation: General Translation Core SDK: downloadFileBatch URL: https://generaltranslation.com/ja/docs/core/class/methods/translation/download-file-batch.mdx --- title: downloadFileBatch description: 1 回のリクエストで複数のファイルをダウンロードするための downloadFileBatch メソッドの API リファレンス --- ## 概要 `downloadFileBatch` メソッドは、単一のバッチリクエストで複数のソースファイルまたは翻訳ファイルをダウンロードします。 ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const result = await gt.downloadFileBatch([ { fileId: 'file-123', branchId: 'branch-456', locale: 'es' }, { fileId: 'file-123', branchId: 'branch-456', locale: 'fr' }, { fileId: 'file-123', branchId: 'branch-456', locale: 'de' } ]); ``` **バッチ処理の効率性:** このメソッドは、1 回の API 呼び出しで複数のファイルをダウンロードできるよう最適化されており、`downloadFile` を個別に複数回呼び出す場合と比べて、ネットワークのオーバーヘッドを削減し、パフォーマンスを向上させます。 ## リファレンス ### パラメータ | 名前 | 型 | 説明 | | ---------- | -------------------------- | ------------------- | | `requests` | `DownloadFileBatchRequest` | ファイルリクエストオブジェクトの配列 | | `options?` | `DownloadFileBatchOptions` | ダウンロードリクエストのオプション設定 | #### DownloadFileBatchRequest ```typescript type DownloadFileBatchRequest = { fileId: string; branchId?: string; locale?: string; versionId?: string; useLatestAvailableVersion?: boolean; }[]; ``` | Name | Type | Description | | ---------------------------- | --------- | --------------------------------------------------------------------------------------- | | `fileId` | `string` | ダウンロードするファイルの一意の識別子 | | `branchId?` | `string` | ダウンロード元のブランチ ID。指定しない場合は、デフォルトのブランチが使用されます | | `locale?` | `string` | 翻訳先のロケール。指定しない場合は、ソースファイルがダウンロードされます | | `versionId?` | `string` | ダウンロードするバージョン ID。指定しない場合は、最新バージョンが使用されます | | `useLatestAvailableVersion?` | `boolean` | `true` の場合、指定した `versionId` が見つからなければ、失敗する代わりに利用可能な最新バージョンにフォールバックします。デフォルトは `false` です | #### DownloadFileBatchOptions | 名前 | 型 | 説明 | | ---------- | -------- | --------------------- | | `timeout?` | `number` | リクエストのタイムアウト時間 (ミリ秒) | ### 戻り値 `Promise` - ダウンロードしたファイルとメタデータが含まれます。 ```typescript type DownloadFileBatchResult = { files: File[]; count: number; } ``` | プロパティ | 型 | 説明 | | ------- | -------- | ---------------------- | | `files` | `File[]` | ダウンロードされたファイルオブジェクトの配列 | | `count` | `number` | 正常にダウンロードされたファイルの数 | #### ファイル構成 ```typescript type File = { fileId: string; branchId?: string; locale?: string; versionId?: string; fileName: string; data: string; } ``` | プロパティ | 型 | 説明 | | ----------- | -------- | ------------------ | | `fileId` | `string` | ファイル ID | | `branchId` | `string` | ブランチ ID | | `locale` | `string` | ファイルのロケール (翻訳時) | | `versionId` | `string` | バージョン ID | | `fileName` | `string` | 元のファイル名 | | `data` | `string` | 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 downloadResult = await gt.downloadFileBatch( targetLocales.map((locale) => ({ fileId, branchId, locale })) ); downloadResult.files.forEach(file => { console.log(`ダウンロード完了 ${file.locale}: ${file.fileName}`); }); ``` *** ## 注意事項 * ファイルは UTF-8 文字列として返されます * 事前に [`queryFileData`](/docs/core/class/methods/translation/query-file-data) を使用して、ファイルがダウンロード可能な状態か確認してください * 可能な場合、ファイルはリクエストした項目と同じ順序で返されます * バッチ内の個々のファイルのダウンロードに失敗しても、バッチ全体が失敗することはありません ## 次のステップ * 単一ファイルのダウンロードについては [`downloadFile`](/docs/core/class/methods/translation/download-file) を参照してください * ファイルのダウンロード準備ができているか確認するには [`queryFileData`](/docs/core/class/methods/translation/query-file-data) を参照してください * 翻訳ジョブを開始するには [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) を参照してください