GT ClassMethodsTranslation

checkFileTranslations

ファイルをダウンロードせずに翻訳状況を確認できる checkFileTranslations メソッドのAPIリファレンス

概要

checkFileTranslations メソッドは、内容をダウンロードせずにファイルの翻訳ステータスを確認します。 これは、翻訳の進捗を監視し、完了状況を把握し、利用可能な翻訳を特定するのに役立ちます。

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

const status = await gt.checkFileTranslations([
  {
    versionId: 'version-123',
    fileName: 'app.json',
    locale: 'es'
  }
]);

リファレンス

パラメーター

名称説明
dataFileTranslationQuery[]チェック対象のファイル翻訳クエリの配列
options?CheckFileTranslationsOptionsリクエスト用の任意の設定

FileTranslationQuery

名称説明
versionIdstring確認対象ファイルのversionId
fileName?stringファイル名の識別子(fileId が指定されていない場合は必須)
fileId?stringファイルIDの識別子(fileName が指定されていない場合は必須)
localestring翻訳ステータスを確認する対象のlocale

CheckFileTranslationsOptions

名称説明
timeout?numberリクエストのタイムアウト(ミリ秒)

戻り値

Promise<CheckFileTranslationsResult> - 翻訳ステータス情報を含みます。

type CheckFileTranslationsResult = {
  translations: CompletedFileTranslationData[];
}
プロパティ説明
translationsCompletedFileTranslationData[]翻訳のステータスデータの配列

CompletedFileTranslationData 構造体

type CompletedFileTranslationData = {
  id: string;
  fileId: string;
  versionId: string;
  fileName: string;
  locale: string;
  status: 'completed' | 'pending' | 'failed';
  completedAt: string | null;
  approvedAt: string | null;
  publishedAt: string | null;
  createdAt: string;
  updatedAt: string;
}

基本的な使い方

特定の files と対応ロケールの翻訳ステータスを確認します:

index.ts
// (1) GT インスタンスを作成する
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// (2) ファイルをアップロードする
const fileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
  files,
  { sourceLocale: 'en' }
);

// (3) ファイル翻訳ジョブをキューに投入する
const enqueueResult = await gt.enqueueFiles(
  uploadedFiles,
  {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) すべての翻訳が完了するまで待つ
let translationIds = [];
const statusQuery = Object.values(enqueueResult.data).flatMap(({fileName, versionId}) => {
  return targetLocales.map((locale) => ({locale, fileName, versionId}));
});
while (true) {
  const status = await gt.checkFileTranslations(statusQuery);
  if (status.translations.length === statusQuery.length) {
    translationIds = status.translations.map(translation => translation.id);
    break;
  }
  await new Promise(resolve => setTimeout(resolve, 1000));
}

注意事項

  • 翻訳ステータスには pendingcompletedfailed の状態があります
  • completed の翻訳でも、公開前に承認が必要となる場合があります
  • 複数の翻訳ジョブを監視する際の効率的なステータス確認に、この方法を使用してください

次のステップ

  • このメソッドの使い方を一通り確認できるクイックスタートをご覧ください
  • 完了した翻訳をダウンロードするにはdownloadTranslatedFileを参照してください
  • 翻訳ジョブを作成するにはenqueueFilesを参照してください
  • ソースファイルと翻訳の詳細を取得するにはquerySourceFileを参照してください

このガイドはいかがですか?