# General Translation Platform: translateMany
URL: https://generaltranslation.com/ja/docs/platform/core/reference/gt-class-methods/translation/translate-many.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 1 回のリクエストで複数の文字列または構造化されたコンテンツ エントリを翻訳します。translateMany の API リファレンス。

複数のコンテンツ エントリを、1 回の General Translation API リクエストで翻訳します。バッチ翻訳に使用します。多数の個別の [`translate`](/docs/platform/core/reference/gt-class-methods/translation/translate) 呼び出しを行うよりも効率的です。

## 概要 [#overview]

設定済みの [`GT`](/docs/platform/core/reference/gt-class/constructor) インスタンスに対して `translateMany` を呼び出し、エントリのコレクションと、ターゲット ロケールを表す文字列 (短縮記法) または options object のいずれかを渡します。エントリは array またはハッシュをキーとする Record として受け取り、戻り値もそれに対応した同じ形式になります。

```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'
);
```

シグネチャ:

```typescript
// オーバーロード1: エントリの配列
translateMany(
  sources: TranslateManyEntry[],
  options: string | TranslateOptions,
  timeout?: number
): Promise<TranslateManyResult>

// オーバーロード2: ハッシュをキーとするエントリのレコード
translateMany(
  sources: Record<string, TranslateManyEntry>,
  options: string | TranslateOptions,
  timeout?: number
): Promise<Record<string, TranslationResult>>
```

*注: `translateMany` を使用するには、GT インスタンスに `apiKey` (または `devApiKey`) と `projectId` の指定が必要です。*

## 仕組み [#how-it-works]

* **配列とレコード。** 配列では、エントリは内部でハッシュ化され、結果は入力順で返されます。レコードでは、keys はハッシュとして扱われ、レスポンスも同じ keys を持つレコードになります。
* **独立した結果。** 個々の翻訳が失敗してもバッチ全体は停止せず、各結果がそれぞれ成功または失敗を個別に返すため、一部のみ成功するケースにも完全に対応しています。
* **オプションの短縮記法。** `options` に文字列を渡すと、`{ targetLocale: string }` の短縮記法として扱われます。つまり、`gt.translateMany(['Hello'], 'es')` と `gt.translateMany(['Hello'], { targetLocale: 'es' })` は同じ意味です。
* **ドキュメント全体。** [`metadata.fileFormat`](/docs/platform/core/reference/types/entry-metadata#file-format) を `'MD'` または `'MDX'` に設定すると、構造を保持したままドキュメント全体を解析して翻訳できます。対象のドキュメントは `dataFormat: 'STRING'` (デフォルト) の文字列である必要があり、`maxChars` は使用できません。チャンクが失敗した場合や翻訳後のドキュメントが不正な場合、ドキュメントのエントリは部分的な output を返すのではなく失敗として扱われます。

## パラメータ [#parameters]

| パラメータ                 | 説明                           | 型                                                                                                                        | 任意  | デフォルト |
| --------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------ | --- | ----- |
| [`sources`](#sources) | 翻訳するエントリの配列またはレコード。          | [`TranslateManyEntry[] \| Record<string, TranslateManyEntry>`](/docs/platform/core/reference/types/translate-many-entry) | いいえ | —     |
| [`options`](#options) | ターゲットロケールを表す文字列、またはオプションオブジェクト。 | `string \| TranslateOptions`                                                                                             | いいえ | —     |
| [`timeout`](#timeout) | ミリ秒単位のリクエストタイムアウト。           | `number`                                                                                                                 | はい  | —     |

### `sources` [#sources]

**型** [`TranslateManyEntry[] \| Record<string, TranslateManyEntry>`](/docs/platform/core/reference/types/translate-many-entry) · **必須**

翻訳対象のエントリです。各 [`TranslateManyEntry`](/docs/platform/core/reference/types/translate-many-entry) は、プレーン文字列、または `source` ([`Content`](/docs/platform/core/reference/types/content)) と省略可能な `metadata` ([`EntryMetadata`](/docs/platform/core/reference/types/entry-metadata)) を持つオブジェクトです。

```typescript
type TranslateManyEntry = string | { source: Content; metadata?: EntryMetadata };
```

入力順で結果を受け取るには配列を渡し、同じキーで結果を受け取るには、ハッシュをキーとするレコードを渡します。

### `options` [#options]

**型** `string | TranslateOptions` · **必須**

`'es'` のようなターゲットロケールを表す文字列、またはオプションオブジェクト:

```typescript
type TranslateOptions = {
  targetLocale: string; // 翻訳先のロケール
  sourceLocale?: string; // インスタンスのsourceLocaleを上書きする
  modelProvider?: string; // モデルプロバイダーのヒント（省略可）
};
```

### `timeout` [#timeout]

**型** `number` · **任意**

リクエストのタイムアウト時間 (ミリ秒) です。省略時は、インスタンスのデフォルト値が使用されます。

## 戻り値 [#returns]

**型** `Promise<TranslateManyResult> | Promise<Record<string, TranslationResult>>`

* **Array 入力** は、入力と同じ順序の [`TranslationResult`](/docs/platform/core/reference/types/translation-result) オブジェクトの配列である [`TranslateManyResult`](/docs/platform/core/reference/types/translate-many-result) に解決されます。
* **Record 入力** は、入力と同じハッシュをキーとする `Record<string, TranslationResult>` に解決されます。

各結果の翻訳を参照する前に、`success` で絞り込んでください。

## 例 [#examples]

```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
// MDX ドキュメント全体を翻訳する
const [result] = await gt.translateMany(
  [
    {
      source: '# Welcome\n\n<Callout>Read the guide.</Callout>',
      metadata: { fileFormat: 'MDX' },
    },
  ],
  { sourceLocale: 'en', targetLocale: 'es' }
);
```

```typescript
// ハッシュをキーとするレコード — 結果は同じキーで返される
const results = await gt.translateMany(
  {
    'greeting-hash': 'Hello, world!',
    'farewell-hash': 'Goodbye, world!',
  },
  'es'
);

console.log(results['greeting-hash'].translation);
```

## メモ [#notes]

* 1回の API リクエストで複数のエントリを翻訳します。
* 1つのエントリの処理が失敗しても、他のエントリには影響しません。
* 結果は、入力配列と同じ順序、または入力レコードと同じキーで返されます。

## Sitemap

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