# General Translation Platform: uploadTranslations URL: https://generaltranslation.com/ja/docs/platform/core/reference/gt-class-methods/translation/upload-translations.mdx --- title: uploadTranslations description: ソースファイルに対応する既存の翻訳済みファイルをアップロードします。uploadTranslations の API リファレンス。 --- 以前にアップロードしたソースファイルに対応する翻訳ファイルをアップロードします。翻訳サービスで生成するのではなく、既存の翻訳を移行する場合や人手でレビュー済みの翻訳をアップロードする場合など、すでに翻訳があるときに General Translation で使用します。 ## 概要 [#overview] 翻訳アップロードの配列とオプションオブジェクトを指定して、`uploadTranslations` を呼び出します。各アップロードは既存のソースファイルを参照し、1 つ以上の翻訳済みファイルを含みます。 ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const result = await gt.uploadTranslations(files, { sourceLocale: 'en', }); ``` シグネチャ: ```typescript uploadTranslations( files: { source: FileUpload; translations: FileUpload[] }[], options: UploadFilesOptions ): Promise ``` *注: `uploadTranslations` を使用するには、GT インスタンスに `apiKey` (または `devApiKey`) と `projectId` が設定されている必要があります。まず、対応するソースファイルを [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) でアップロードする必要があります。* ## 仕組み [#how-it-works] * **ソース参照。** 各エントリの`source`オブジェクトは、すでにアップロード済みのソースファイルへの参照です。ファイルの内容自体は必要ありません。 * **翻訳。** `translations`配列の各項目には、コンテンツと対象ロケールを含める必要があります。 * **バージョニング。** 返されるファイル参照には、ブランチ対応のバージョニングに使用する`branchId`が含まれます。 ## パラメーター [#parameters] | パラメーター | 説明 | 型 | 任意 | デフォルト | | --------------------- | ---------------------- | ------------------------------------------------------ | --- | ----- | | [`files`](#files) | 各ソースファイル参照とその翻訳からなる配列。 | `{ source: FileUpload; translations: FileUpload[] }[]` | いいえ | — | | [`options`](#options) | アップロードの設定オプション。 | `UploadFilesOptions` | いいえ | — | ### `files` [#files] **Type** `{ source: FileUpload; translations: FileUpload[] }[]` · **必須** 各エントリは、ソースファイルの参照と、それに対応する翻訳済みファイルを組にしたものです: ```typescript { source: FileUpload; // 既存のソースファイルへの参照(コンテンツ不要) translations: FileUpload[]; // コンテンツを含む翻訳済みファイル } ``` `source` 参照 (`FileUpload`) では、次のフィールドを使用します。 | Field | Description | Type | Optional | | ------------ | ----------------------------------------------------------------------------------------------------------- | ------------ | -------- | | `fileName` | 以前にアップロードしたソースファイルに対応するファイル名。 | `string` | いいえ | | `fileFormat` | ファイル形式。`GTJSON`、`JSON`、`PO`、`POT`、`YAML`、`MDX`、`MD`、`TS`、`JS`、`HTML`、`TXT`、または `TWILIO_CONTENT_JSON` のいずれか。 | `FileFormat` | いいえ | | `fileId` | ソースファイルのファイル ID。 | `string` | はい | | `versionId` | ソースファイルのバージョン ID。 | `string` | はい | 各翻訳 (`FileUpload`) では、次のフィールドを使用します。 | Field | Description | Type | Optional | | ------------ | ----------------------------------------------------------------------------------------------------------- | ------------ | -------- | | `content` | 翻訳済みファイルの生の内容を表す文字列。 | `string` | いいえ | | `fileName` | 翻訳ファイルのファイル名。 | `string` | いいえ | | `fileFormat` | ファイル形式。`GTJSON`、`JSON`、`PO`、`POT`、`YAML`、`MDX`、`MD`、`TS`、`JS`、`HTML`、`TXT`、または `TWILIO_CONTENT_JSON` のいずれか。 | `FileFormat` | いいえ | | `locale` | 翻訳先の対象ロケール。 | `string` | いいえ | | `fileId` | ファイル ID。 | `string` | はい | | `versionId` | バージョン ID。 | `string` | はい | ### `options` [#options] **型** `UploadFilesOptions` · **必須** アップロードの設定: | フィールド | 説明 | 型 | 任意 | | --------------- | ---------------------- | -------- | --- | | `sourceLocale` | ファイルの sourceLocale。 | `string` | いいえ | | `modelProvider` | 使用する AI モデルプロバイダの優先設定。 | `string` | はい | | `timeout` | ミリ秒単位のリクエストタイムアウト。 | `number` | はい | *注: `branchId` はアップロードオプションではありません。各ファイルオブジェクトに含まれるファイルごとのフィールドであり、`UploadFilesOptions` の一部ではありません。* ## 戻り値 [#returns] **型** `Promise` アップロードされたファイル参照と要約を含む `UploadFilesResponse` が返されます: ```typescript type UploadFilesResponse = { uploadedFiles: FileReference[]; // アップロードされたファイル参照 count: number; // 正常にアップロードされたファイル数 message: string; // APIからのステータスメッセージ }; ``` ## 例 [#examples] ```typescript // 基本的な使い方:以前にアップロードしたソースファイルの翻訳をアップロードする import { GT } from 'generaltranslation'; import fs from 'fs'; const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id', }); // ソースファイルは事前にアップロード済みであると仮定する const files = [ { source: { fileName: 'common.json', fileFormat: 'JSON' as const, fileId: 'source-file-id', versionId: 'source-version-id', }, translations: [ { content: fs.readFileSync('./locales/es/common.json', 'utf8'), fileName: 'common.json', fileFormat: 'JSON' as const, locale: 'es', }, { content: fs.readFileSync('./locales/fr/common.json', 'utf8'), fileName: 'common.json', fileFormat: 'JSON' as const, locale: 'fr', }, ], }, ]; const result = await gt.uploadTranslations(files, { sourceLocale: 'en', }); console.log(`Uploaded ${result.count} translation files`); ``` ```typescript // 完全なワークフロー: ソースファイルをアップロードし、次にその翻訳をアップロードする import { GT } from 'generaltranslation'; import fs from 'fs'; const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id', }); // ステップ1: ソースファイルをアップロードする const sourceFiles = [ { source: { content: fs.readFileSync('./locales/en/messages.json', 'utf8'), fileName: 'messages.json', fileFormat: 'JSON' as const, locale: 'en', }, }, ]; const { uploadedFiles } = await gt.uploadSourceFiles(sourceFiles, { sourceLocale: 'en', }); // ステップ2: 既存の翻訳をアップロードする const translationFiles = [ { source: { fileName: uploadedFiles[0].fileName, fileFormat: uploadedFiles[0].fileFormat, fileId: uploadedFiles[0].fileId, versionId: uploadedFiles[0].versionId, }, translations: [ { content: fs.readFileSync('./locales/es/messages.json', 'utf8'), fileName: 'messages.json', fileFormat: 'JSON' as const, locale: 'es', }, { content: fs.readFileSync('./locales/de/messages.json', 'utf8'), fileName: 'messages.json', fileFormat: 'JSON' as const, locale: 'de', }, ], }, ]; const translationResult = await gt.uploadTranslations(translationFiles, { sourceLocale: 'en', }); console.log(`Uploaded ${translationResult.count} translations`); ``` ```typescript // 複数のソースファイルの翻訳をバッチアップロードする import { glob } from 'glob'; import path from 'path'; async function uploadAllTranslations( sourceRefs: FileReference[], targetLocales: string[] ) { const files = sourceRefs.map((sourceRef) => ({ source: { fileName: sourceRef.fileName, fileFormat: sourceRef.fileFormat, fileId: sourceRef.fileId, versionId: sourceRef.versionId, }, translations: targetLocales .map((locale) => { const translationPath = `./locales/${locale}/${sourceRef.fileName}`; try { return { content: fs.readFileSync(translationPath, 'utf8'), fileName: sourceRef.fileName, fileFormat: sourceRef.fileFormat, locale, }; } catch { // このロケールの翻訳ファイルが存在しない return null; } }) .filter(Boolean), })); const result = await gt.uploadTranslations(files, { sourceLocale: 'en', timeout: 60000, }); return result; } ``` ## メモ [#notes] * ソースファイルは、まず [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) でアップロードする必要があります。 * 各エントリの `source` オブジェクトは既存のソースファイルを参照するため、そこにコンテンツを含める必要はありません。 * `translations` 配列内の各翻訳には、コンテンツと対象ロケールを含める必要があります。 * このメソッドは、既存の翻訳を移行する場合や、人手でレビューした翻訳をアップロードする場合に役立ちます。 * ファイル参照には、ブランチ対応のバージョニング用に `branchId` が含まれます。