# generaltranslation: General Translation Core SDK: translateMany URL: https://generaltranslation.com/ja/docs/core/class/methods/translation/translate-many.mdx --- title: translateMany description: 一括翻訳用の GT の translateMany メソッドの API リファレンス --- ## 概要 `translateMany` メソッドは、複数のコンテンツを 1 回の API リクエストで効率よく翻訳します。 バッチ処理向けに最適化されており、`translate` を個別に複数回呼び出すよりも高いパフォーマンスを発揮します。 ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const results = await gt.translateMany( ['Hello, world!', 'Welcome to our app', 'Click here to continue'], 'es' ); ``` *** ## リファレンス ### オーバーロード 1: エントリ配列 ```typescript translateMany( sources: TranslateManyEntry[], options: string | TranslateOptions, timeout?: number ): Promise ``` 入力と同じ順序で、`TranslateManyResult` (`TranslationResult` オブジェクトの配列) を返します。 ### オーバーロード 2: エントリの レコード ```typescript translateMany( sources: Record, options: string | TranslateOptions, timeout?: number ): Promise> ``` ハッシュをキーに持つレコードが与えられた場合、同じハッシュをキーに持つレコードを返します。 ### パラメータ ', description: '翻訳するエントリの配列またはレコードです。', optional: false, }, "options": { type: 'string | TranslateOptions', description: '対象ロケールを表す文字列(短縮記法)またはオプションオブジェクトです。', optional: false, }, "timeout?": { type: 'number', description: '省略可能なリクエストタイムアウト時間(ミリ秒)です。', optional: true, } }} /> ### TranslateManyEntry 各エントリには、プレーンな文字列、またはソースコンテンツと省略可能なメタデータを含むオブジェクトを指定できます。 ```typescript type TranslateManyEntry = string | { source: Content; metadata?: EntryMetadata }; ``` ### TranslateOptions ```typescript type TranslateOptions = { targetLocale: string; sourceLocale?: string; modelProvider?: string; }; ``` ### パラメータの説明 | パラメータ | 説明 | | --------- | --------------------------------------------------------------------------------------------------- | | `sources` | `TranslateManyEntry` の配列またはレコード。各要素には、プレーンな文字列、または `source` と省略可能な `metadata` を含むオブジェクトを指定できます。 | | `options` | 対象ロケールの文字列 (例: `'es'`) 、または `targetLocale`、省略可能な `sourceLocale`、および `modelProvider` を含むオプションオブジェクト。 | | `timeout` | 省略可能なリクエストタイムアウト (ミリ秒) 。 | ### 戻り値 * **配列を入力した場合** → `Promise` (`TranslationResult[]`)、入力と同じ順序 * **レコードを入力した場合** → `Promise>`、同じハッシュをキーにした形式 *** ## 挙動 ### 配列 と レコード * **配列**: エントリは内部でハッシュ化され、結果は入力順に返されます。 * **レコード**: キーがハッシュとして扱われ、レスポンスは同じキーを持つ レコード として返されます。 ### エラー処理戦略 * 個々の翻訳が失敗しても、バッチ全体は停止しません * 各結果はそれぞれ独立して成功または失敗を示します * 部分的な成功も完全にサポートされています ### オプションの短縮記法 `options` パラメータには文字列を渡すこともでき、その場合は `{ targetLocale: string }` の短縮記法として扱われます: ```typescript // これらは同等です: await gt.translateMany(['Hello', 'Goodbye'], 'es'); await gt.translateMany(['Hello', 'Goodbye'], { targetLocale: 'es' }); ``` *** ## 例 ### 文字列の配列 ```typescript const results = await gt.translateMany( ['Home', 'About', 'Products', 'Contact'], 'fr' ); results.forEach((result, index) => { if (result.success) { console.log(`Item ${index}: ${result.translation}`); } else { console.error(`Item ${index} failed: ${result.error}`); } }); ``` ### メタデータを含む配列 ```typescript const results = await gt.translateMany( [ { source: 'Hello, world!', metadata: { dataFormat: 'ICU' } }, { source: 'Goodbye, world!' } ], { targetLocale: 'es' } ); ``` ### レコード (ハッシュをキーとする) ```typescript const results = await gt.translateMany( { 'greeting-hash': 'Hello, world!', 'farewell-hash': 'Goodbye, world!' }, 'es' ); console.log(results['greeting-hash'].translation); ``` *** ## 注記 * 1 回のAPIリクエストで複数の項目を翻訳します * 1 つの項目の翻訳が失敗しても、他の項目には影響しません * 結果は、入力項目が配列の場合は同じ順序、レコードの場合は同じキーを維持します ## 次のステップ * [translate](/docs/core/class/methods/translation/translate) を使った単一翻訳について学ぶ * [TranslateManyEntry 型](/docs/core/types/Entry) を確認する * [TranslateManyResult の構造](/docs/core/types/translate-many-result) を理解する