# General Translation Platform: プロジェクトとファイルの管理
URL: https://generaltranslation.com/ja/docs/platform/core/reference/gt-class-methods/project/project-management.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: GT インスタンスから General Translation プロジェクトの情報、ブランチ、ファイルの移動、CDN への公開、編集差分を管理します。プロジェクトおよびファイル管理メソッドの API リファレンスです。

プロジェクトのメタデータ、ブランチ、ファイルのライフサイクル、編集履歴を管理するための、[GT](/docs/platform/core/reference/gt-class/constructor) インスタンスの低レベルメソッドです。これらは主に [CLI](/docs/cli/quickstart) などのツールで使用され、ほとんどのアプリケーションでは代わりに、より高レベルな[翻訳メソッド](/docs/platform/core/reference/gt-class-methods/translation/translate)を使用します。

*注: このページのすべてのメソッドは General Translation API を呼び出すため、[`GT`](/docs/platform/core/reference/gt-class/constructor) インスタンスに API キーが必要です。引数内のロケールコードは、リクエスト前に正規形式へ正規化されます。*

| メソッド                                    | 説明                                          | 戻り値                               |
| --------------------------------------- | ------------------------------------------- | --------------------------------- |
| [`getProjectInfo`](#get-project-info)   | 認証済みプロジェクトの名前、ロケール、レビュー設定を取得します。            | `Promise<ProjectInfoResult>`      |
| [`queryBranchData`](#query-branch-data) | 名前から ブランチ ID を検索します。                        | `Promise<BranchDataResult>`       |
| [`createBranch`](#create-branch)        | ブランチを作成します (既存のブランチがあればそれを返します) 。           | `Promise<CreateBranchResult>`     |
| [`getOrphanedFiles`](#orphaned-files)   | ブランチ上で、ローカルのファイルセットに存在しなくなったファイルを見つけます。     | `Promise<GetOrphanedFilesResult>` |
| [`processFileMoves`](#process-moves)    | 移動または名前変更の後、新しいファイル ID の下にソースファイルと翻訳を複製します。 | `Promise<ProcessMovesResponse>`   |
| [`publishFiles`](#publish-files)        | CDN 上のファイルを公開または非公開にします。                    | `Promise<PublishFilesResult>`     |
| [`submitUserEditDiffs`](#edit-diffs)    | 将来の生成で意図が保持されるよう、ユーザー編集の差分を送信します。           | `Promise<void>`                   |

## `getProjectInfo` [#get-project-info]

認証済みプロジェクトのメタデータ (名前、組織、デフォルトおよび現在のロケール、レビュー設定) を取得します。

```typescript
getProjectInfo(options?: { timeout?: number }): Promise<ProjectInfoResult>
```

* **`options.timeout`** — ミリ秒単位で指定する省略可能なリクエストタイムアウト。

戻り値は `ProjectInfoResult` です:

| Field            | Description               | Type                 |
| ---------------- | ------------------------- | -------------------- |
| `id`             | プロジェクトID。                 | `string`             |
| `name`           | プロジェクト名。                  | `string`             |
| `orgId`          | 組織ID。                     | `string`             |
| `defaultLocale`  | プロジェクトのデフォルトの (ソース) ロケール。 | `string`             |
| `currentLocales` | プロジェクトに設定されている対象ロケール。     | `string[]`           |
| `autoApprove`    | 翻訳がレビューなしで自動承認されるかどうか。    | `boolean` (optional) |

```typescript
const info = await gt.getProjectInfo();
console.log(info.defaultLocale, info.currentLocales);
```

## `queryBranchData` [#query-branch-data]

ブランチ名に対応するブランチレコードを取得し、プロジェクトのデフォルトブランチを返します。

```typescript
queryBranchData(query: { branchNames: string[] }): Promise<BranchDataResult>
```

* **`query.branchNames`** — 参照するブランチ名。

戻り値は、`branches` (`{ id, name }[]`) と `defaultBranch` (`{ id, name }` または `null`) を含む `BranchDataResult` です。

```typescript
const { branches, defaultBranch } = await gt.queryBranchData({
  branchNames: ['main'],
});
```

## `createBranch` [#create-branch]

ブランチを作成します。すでに同名のブランチが存在する場合は、その既存のブランチを返します。

```typescript
createBranch(query: {
  branchName: string;
  defaultBranch: boolean;
}): Promise<CreateBranchResult>
```

* **`query.branchName`** — 作成するブランチの名前。
* **`query.defaultBranch`** — このブランチがプロジェクトのデフォルトブランチかどうか。

戻り値は、作成された `branch` (`{ id, name }`) を含む `CreateBranchResult` です。

```typescript
const { branch } = await gt.createBranch({
  branchName: 'feature/new-copy',
  defaultBranch: false,
});
```

## `getOrphanedFiles` [#orphaned-files]

ブランチ上には存在するものの、指定されたリストにファイル ID が含まれていないファイルを返します。これらは、ローカルで移動、名前変更、または削除された可能性が高いファイルです。移動の検出に使用されます。

```typescript
getOrphanedFiles(
  branchId: string,
  fileIds: string[],
  options?: { timeout?: number }
): Promise<GetOrphanedFilesResult>
```

* **`branchId`** — 確認対象のブランチ。
* **`fileIds`** — 現在の (孤立していない) ファイル ID。
* **`options.timeout`** — オプションのリクエストタイムアウト (ミリ秒) 。

`orphanedFiles` (`{ fileId, versionId, fileName }[]`) を含む `GetOrphanedFilesResult` を返します。`fileIds` のリストが大きい場合は自動的に分割してバッチ処理され、ファイルが孤立として報告されるのは、すべてのバッチに存在しない場合のみです。

## `processFileMoves` [#process-moves]

ファイルの移動や名前変更が行われた際に、新しいファイル ID の下へソースファイルとその翻訳を複製することで、翻訳を保持します。

```typescript
processFileMoves(
  moves: MoveMapping[],
  options?: { branchId?: string; timeout?: number }
): Promise<ProcessMovesResponse>
```

* **`moves`** — `{ oldFileId, newFileId, newFileName }` のマッピングの配列。
* **`options.branchId`** — 移動を適用するブランチ。
* **`options.timeout`** — 省略可能な、ミリ秒単位のリクエストタイムアウト。

各 move ごとの `results` と `summary` (`{ total, succeeded, failed }`) を含む `ProcessMovesResponse` を返します。move は自動的にバッチ処理されます。

```typescript
const result = await gt.processFileMoves(
  [{ oldFileId: 'abc123', newFileId: 'def456', newFileName: 'locales/en.json' }],
  { branchId: 'main' }
);
```

## `publishFiles` [#publish-files]

CDN 上でソースファイルと翻訳を公開または非公開にします。

```typescript
publishFiles(files: PublishFileEntry[]): Promise<PublishFilesResult>
```

各エントリは `PublishFileEntry` 型です:

| Field       | 説明                                | 型         | 任意  |
| ----------- | --------------------------------- | --------- | --- |
| `fileId`    | 公開または公開解除するファイル。                  | `string`  | いいえ |
| `versionId` | ファイルのバージョン。                       | `string`  | いいえ |
| `publish`   | 公開する場合は `true`、公開解除する場合は `false`。 | `boolean` | いいえ |
| `branchId`  | ファイルが属するブランチ。                     | `string`  | はい  |
| `fileName`  | ファイル名。                            | `string`  | はい  |

ファイルごとの `results` (`{ fileId, versionId, branchId, success, locale?, error? }`) を含む `PublishFilesResult` を返します。各結果に `locale` が含まれている場合は翻訳を、含まれていない場合はソースファイルを示します。

## `submitUserEditDiffs` [#edit-diffs]

既存の翻訳に対するユーザーによる編集内容を送信し、以後の生成でもユーザーの意図が保たれるようにします。

```typescript
submitUserEditDiffs(payload: {
  diffs: SubmitUserEditDiff[];
}): Promise<void>
```

各 `SubmitUserEditDiff` には、`fileName`、`locale`、`diff`、`branchId`、`versionId`、`fileId`、`localContent` が含まれます。インスタンスは送信前にカスタムのロケールのエイリアスを解決し、その後 API が各ロケールをストレージに使用する対応ロケールに解決します。`ja` や `ja-JP` などの同等のコードは、同じ保存済み翻訳を更新します。差分は自動的にバッチ処理されます。送信が成功すると完了します。

## Sitemap

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