# General Translation Platform: setupProject
URL: https://generaltranslation.com/ja/docs/platform/core/reference/gt-class-methods/translation/setup-project.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: アップロード済みのファイルをプロジェクトの翻訳ワークフロー用に準備します。setupProject の API リファレンス。

General Translation に以前アップロードしたファイルを使って、翻訳用プロジェクトのセットアップ処理を開始します。ファイルを解析し、翻訳ワークフローに向けて準備する非同期のセットアップジョブを作成します。

## 概要 [#overview]

[`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) のファイル参照を、必要に応じて setup オプションとともに `setupProject` に渡します。これにより、セットアップジョブがキューに追加されて `setupJobId` が返されるか、またはプロジェクトがすでにセットアップ済みであることが通知されます。

```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });

const setupResult = await gt.setupProject(fileRefs, { timeoutMs: 30000 });
if (setupResult.status === 'queued') {
  console.log(`Setup job created: ${setupResult.setupJobId}`);
} else {
  console.log('Project is already set up');
}
```

シグネチャ：

```typescript
setupProject(
  files: FileReference[],
  options?: SetupProjectOptions
): Promise<SetupProjectResult>
```

*注: `setupProject` を使用するには、GT インスタンスに `apiKey` (または `devApiKey`) と `projectId` が設定されている必要があります。まず [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) でファイルをアップロードしてください。*

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

* **ファイル分析。** セットアップでは、翻訳ワークフローを最適化するために、ファイルの内容と構造を解析します。
* **非同期ジョブ。** セットアップジョブは非同期で実行されます。進行状況は [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status) で確認できます。
* **必要な場合。** 新しいプロジェクトで翻訳ジョブをエンキューする前には、通常セットアップが必要です。
* **バージョニング。** ファイル参照には、ブランチ対応したバージョニング用の `branchId` が含まれます。

## パラメータ [#parameters]

| パラメータ                 | 説明                          | 型                     | 任意  | デフォルト |
| --------------------- | --------------------------- | --------------------- | --- | ----- |
| [`files`](#files)     | 以前にアップロードしたソースファイルへのファイル参照。 | `FileReference[]`     | いいえ | —     |
| [`options`](#options) | セットアップジョブの設定。               | `SetupProjectOptions` | はい  | —     |

### `files` [#files]

**型** `FileReference[]` · **必須**

[`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) によって返されるファイル参照です:

```typescript
type FileReference = {
  fileId: string;
  versionId: string;
  branchId: string;
  fileName: string;
  fileFormat: FileFormat;
  transformFormat?: FileFormat; // 生成された翻訳に対してリクエストされた出力フォーマット
  dataFormat?: DataFormat;
};
```

`FileReference` では、`fileName` と `fileFormat` はどちらも必須で、`transformFormat` と `dataFormat` は任意です。

### `options` [#options]

**型** `SetupProjectOptions` · **任意**

| フィールド       | 説明                                    | 型          | 任意 |
| ----------- | ------------------------------------- | ---------- | -- |
| `force`     | 既存のキャッシュ済み翻訳を無効化して、セットアップを強制的にやり直します。 | `boolean`  | はい |
| `locales`   | プロジェクトのターゲットロケール。                     | `string[]` | はい |
| `timeoutMs` | API リクエストのタイムアウト時間 (ミリ秒) 。            | `number`   | はい |

## 戻り値 [#returns]

**型** `Promise<SetupProjectResult>`

2 つのバリアントからなる union 型の `SetupProjectResult` に解決されます:

```typescript
type SetupProjectResult =
  | { setupJobId: string; status: 'queued' }
  | { status: 'completed' };
```

* セットアップジョブが作成されると、`setupJobId` を含む `queued` バリアントが返されます。
* プロジェクトのセットアップがすでに完了している場合は、job identifier を含まない `completed` バリアントが返されます。

| プロパティ        | 説明                                                                         | 型                         |
| ------------ | -------------------------------------------------------------------------- | ------------------------- |
| `setupJobId` | `queued` 状態のセットアップジョブを一意に識別する ID です。`queued` バリアントにのみ含まれます。                | `string`                  |
| `status`     | セットアップジョブが作成された場合は `'queued'`、プロジェクトのセットアップがすでに完了している場合は `'completed'` です。 | `'queued' \| 'completed'` |

## 例 [#examples]

```typescript title="index.ts"
import { GT } from 'generaltranslation';

const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// 以前のアップロードからのファイル参照
const fileRefs = [
  {
    fileId: 'file-123',
    versionId: 'version-456',
    branchId: 'branch-789',
    fileName: 'app.json',
    fileFormat: 'JSON',
  },
  {
    fileId: 'file-789',
    versionId: 'version-012',
    branchId: 'branch-789',
    fileName: 'content.md',
    fileFormat: 'MD',
  },
];

const setupResult = await gt.setupProject(fileRefs);

if (setupResult.status === 'queued') {
  console.log(`Setup initiated with job ID: ${setupResult.setupJobId}`);

  // ジョブのステータスを監視する（checkJobStatus はフラットな配列を返す）
  const jobStatus = await gt.checkJobStatus([setupResult.setupJobId]);
  console.log(`Job status: ${jobStatus[0].status}`);
} else {
  console.log('Project is already set up — no setup job needed');
}
```

## メモ [#notes]

* `setupProject` を呼び出す前に、[`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) でファイルをアップロードする必要があります。
* プロジェクトのセットアップでは、翻訳ワークフローを最適化するために、ファイルの内容と構造を解析します。
* セットアップジョブは非同期で実行されるため、[`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status) で進捗を確認してください。
* 通常、新しいプロジェクトで翻訳ジョブをエンキューする前にセットアップが必要です。
* ファイル参照には、ブランチ対応のバージョニング用に `branchId` が含まれます。

## Sitemap

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