GT ClassMethodsTranslation

checkFileTranslations

Справочник API по методу checkFileTranslations для проверки статуса перевода без скачивания файлов

Обзор

Метод 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Идентификатор версии файла для проверки
fileName?stringИмя файла (обязателен, если fileId не указан)
fileId?stringИдентификатор файла (обязателен, если fileName не указан)
localestringЦелевая локаль для проверки статуса перевода

CheckFileTranslationsOptions

NameTypeDescription
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;
}

Примеры

Базовое использование

Проверьте статус перевода для отдельных файлов и локалей:

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));
}

Примечания

  • Статус перевода включает состояния pending, completed и failed
  • Завершённые переводы могут по-прежнему требовать утверждения перед публикацией
  • Используйте этот метод для эффективной проверки статуса при мониторинге нескольких заданий на перевод

Дальнейшие шаги

  • Ознакомьтесь с кратким руководством с полноценным примером использования этого метода
  • См. downloadTranslatedFile, чтобы скачать готовые переводы
  • См. enqueueFiles, чтобы создавать задания на перевод
  • См. querySourceFile, чтобы получить информацию об исходном файле и переводах

Насколько полезно это руководство?

checkFileTranslations