GT ClassMethodsTranslation

downloadTranslatedFile

Справочник API по методу downloadTranslatedFile для скачивания готовых файлов перевода

Обзор

Метод downloadTranslatedFile скачивает содержимое одного переведённого файла в виде строки UTF-8. Этот метод используется для получения готовых переводов после их обработки платформой General Translation.

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

const content = await gt.downloadTranslatedFile({
  fileId: 'file-123',
  locale: 'es',
  versionId: 'version-456'
});

Статус перевода: Этот метод работает только с завершёнными переводами. Сначала используйте checkFileTranslations, чтобы убедиться, что переводы завершены, прежде чем скачивать их.

Справка

Параметры

ИмяТипОписание
fileFileInfoОбъект с данными о файле, указывающий, какой файл необходимо загрузить
options?DownloadFileOptionsНеобязательные параметры запроса на загрузку

Структура FileInfo

ИмяТипОписание
fileIdstringУникальный идентификатор файла для скачивания
localestringЦелевая локаль перевода для скачивания
versionId?stringНеобязательный идентификатор версии файла

Параметры DownloadFileOptions

ИмяТипОписание
timeout?numberТаймаут запроса в миллисекундах

Возвращает

Promise<string> — переведённое содержимое файла в виде строки UTF‑8.

Возвращаемая строка содержит переведённое содержимое файла в том же формате, что и исходный исходник, при этом весь переводимый текст преобразован под целевую локаль.


Пример

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

// (5) Скачайте файл
const result = await Promise.all(
  translationIds.map(id => gt.downloadTranslatedFile(id))
);

Примечания

  • Возвращает загруженный файл как строку в кодировке UTF‑8
  • Файл должен содержать завершённый перевод для указанной локали
  • Завершится с ошибкой, если файл не найден

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

  • См. checkFileTranslations, чтобы проверить статус переводов перед загрузкой
  • См. downloadFileBatch, чтобы эффективно загрузить несколько файлов
  • См. uploadSourceFiles о процессе загрузки исходных файлов
  • См. enqueueFiles, чтобы запустить задачи перевода

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

downloadTranslatedFile