# General Translation Platform: 翻訳のアップロード URL: https://generaltranslation.com/ja/docs/platform/openapi/reference/files/upload-translations.mdx --- title: 翻訳のアップロード description: 以前にアップロードしたソースファイルに対応する翻訳済みファイルを General Translation Project にアップロードします。翻訳のアップロードの API リファレンス。 method: POST --- 以前にアップロードしたソースファイルに対する、翻訳済みファイルをアップロードします。各エントリでは、ソースファイル参照に 1 つ以上の翻訳を対応付けます。1 リクエストあたり最大 100 エントリまで指定できます。 ## 概要 [#overview] ```http POST https://api2.gtx.dev/v2/project/files/upload-translations ``` **権限** `project:files:write` · **レート制限** 中 (120/分) 既存の翻訳をプロジェクトに関連付けると、ソースとあわせて保存されます。先にソースファイルをアップロードするには、[Upload source files](/docs/platform/openapi/reference/files/upload-source)を使用してください。代わりに General Translation でソースファイルを翻訳するには、[Queue translations](/docs/platform/openapi/reference/translation/queue)を参照してください。 ## 仕組み [#how-it-works] * 各エントリの `source` は、あらかじめ存在している必要があるソースファイルを指定します。ソースファイルは `branchId`、`versionId`、`fileId` で照合され、`branchId` がない場合はデフォルトブランチとして扱われます。参照先のソースファイルが見つからない場合、リクエストは `400` で失敗します。 * `source` オブジェクトは upload と同じ方法で検証されるため、省略時は `fileId` に `fileName` のハッシュが、`versionId` にコンテンツのハッシュがそれぞれデフォルトで設定されます。 * 各翻訳の `content` は base64 でエンコードされ、サーバーサイドでデコードされます。無効な base64 やサイズが大きすぎるファイルは拒否されます。 * 翻訳は、対応する source の `fileId`、`versionId`、`branchId`、`fileName` を引き継ぎます。翻訳を別の出力ファイル形式で保存するには、`transformFormat` を設定します。 * アップロードされた翻訳は完了としてマークされます。Project で自動承認が有効になっている場合は、承認済みとしてもマークされます。`GTJSON` 翻訳には、source オブジェクトに基づくコンポーネントごとのレビューメタデータが付与されます。 * 各ソースファイルのロケール一覧は、アップロードされた翻訳のロケールを含むよう更新されます。Project で CDN が有効になっている場合、ファイルは CDN に公開されます。 * `sourceLocale` が送信され、Project の現在のデフォルトロケールと異なる場合は、Project のデフォルトロケールが更新されます。 ## リクエスト [#request] ### ヘッダー | ヘッダー | 説明 | 必須 | | ----------------- | ------------------------------------ | --- | | `x-gt-api-key` | プロジェクトまたはOrganizationのAPIキー。 | はい | | `x-gt-project-id` | プロジェクトID。Organizationキーを使用する場合に必須です。 | いいえ | ### Body **コンテンツタイプ** `application/json` | フィールド | 説明 | Type | Optional | Default | | --------------- | ----------------------- | ---------- | -------- | ---------------- | | [`data`](#data) | ソース/翻訳エントリの配列 (1~100) 。 | `object[]` | いいえ | — | | `sourceLocale` | アップロードするファイルのソースロケール。 | `string` | はい | プロジェクトのデフォルトロケール | #### `data` [#data] **型** `object[]` · **必須** 各要素は `{ "source": { ... }, "translations": [ ... ] }` です。 `source` オブジェクトは、以前にアップロードされたソースファイルを識別します。 | フィールド | 説明 | 型 | 任意 | デフォルト | | ---------------- | -------------------------------------------- | -------- | --- | ---------------- | | `content` | Base64 エンコードされたソースコンテンツ。最大ファイルサイズの制限が適用されます。 | `string` | いいえ | — | | `fileName` | ファイル名。空文字列は指定できません。 | `string` | いいえ | — | | `fileFormat` | ファイル形式の識別子 (例: `JSON`、`MDX`) 。 | `string` | いいえ | — | | `locale` | ソースコンテンツのロケール。空文字列は指定できません。 | `string` | いいえ | — | | `dataFormat` | 構造化コンテンツのデータ形式。 | `string` | はい | — | | `fileId` | 安定したファイル識別子。 | `string` | はい | `fileName` のハッシュ | | `versionId` | このコンテンツのバージョン識別子。 | `string` | はい | コンテンツのハッシュ | | `branchId` | ソースファイルが紐付けられているブランチ。 | `string` | はい | デフォルトブランチ | | `formatMetadata` | 形式固有の追加メタデータ。 | `object` | はい | — | `translations` の各要素は 1 つの翻訳済みファイルです。各エントリには少なくとも 1 つの翻訳が必要です。 | フィールド | 説明 | 型 | 任意 | デフォルト | | ----------------- | --------------------------------------------- | -------- | --- | --------- | | `content` | Base64 エンコードされた翻訳済みコンテンツ。最大ファイルサイズの制限が適用されます。 | `string` | いいえ | — | | `fileName` | ファイル名。空文字列は指定できません。 | `string` | いいえ | — | | `fileFormat` | ファイル形式の識別子。 | `string` | いいえ | — | | `locale` | 翻訳先ロケール。空文字列は指定できません。 | `string` | いいえ | — | | `dataFormat` | 構造化コンテンツのデータ形式。 | `string` | はい | — | | `transformFormat` | 翻訳の保存先として使用する出力ファイル形式。 | `string` | はい | ソースファイル形式 | ## レスポンス [#response] **ステータス** `201 Created` ```json title="Response" { "uploadedFiles": [ { "branchId": "br_...", "fileId": "file_...", "versionId": "ver_...", "fileName": "en/common.json", "locale": "es", "fileFormat": "JSON", "dataFormat": "JSON" } ], "count": 1, "message": "Successfully uploaded 1 translation file(s)" } ``` ## エラー [#errors] | ステータス | 原因 | | ----- | --------------------------------------------------------------------- | | `400` | リクエストボディが無効、ロケール/形式が無効、デコードに失敗、ファイルサイズが大きすぎる、または参照されたソースファイルが見つかりません。 | | `401` | APIキーがないか、無効です。 | | `403` | APIキーに `project:files:write` 権限がありません。 | | `429` | レート制限を超えています。 | | `503` | サーバーがビジー状態です。バックオフして再試行してください。 | ## 例 [#example] ```bash curl -X POST https://api2.gtx.dev/v2/project/files/upload-translations \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d '{ "sourceLocale": "en", "data": [ { "source": { "content": "eyJoZWxsbyI6ICJIZWxsbyJ9", "fileName": "en/common.json", "fileFormat": "JSON", "locale": "en" }, "translations": [ { "content": "eyJoZWxsbyI6ICJIb2xhIn0=", "fileName": "en/common.json", "fileFormat": "JSON", "locale": "es" } ] } ] }' ```