GT ClassMethodsTranslation

querySourceFile

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

Обзор

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

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

const result = await gt.querySourceFile({
  fileId: 'file-123',
  versionId: 'version-456'
});

console.log(`Исходный файл: ${result.sourceFile.fileName}`);
console.log(`Доступно в ${result.translations.length} локалях`);

Справочные материалы

Параметры

ИмяТипОписание
dataFileQueryОбъект запроса, указывающий, какой файл нужно получить
options?CheckFileTranslationsOptionsНеобязательные параметры запроса

FileQuery

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

CheckFileTranslationsOptions

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

Возвращает

Promise<FileQueryResult> — содержит сведения об исходном файле и статус перевода для всех локалей.

type FileQueryResult = {
  sourceFile: {
    id: string;
    fileId: string;
    versionId: string;
    sourceLocale: string;
    fileName: string;
    fileFormat: string;
    dataFormat: string | null;
    createdAt: string;
    updatedAt: string;
    approvalRequiredAt: string | null;
    locales: string[];
  };
  translations: {
    locale: string;
    completedAt: string | null;
    approvedAt: string | null;
    publishedAt: string | null;
    createdAt: string | null;
    updatedAt: string | null;
  }[];
}

Свойства исходного файла

СвойствоТипОписание
idstringВнутренний идентификатор в базе данных
fileIdstringУникальный идентификатор файла
versionIdstringИдентификатор версии
sourceLocalestringЛокаль исходного языка
fileNamestringИсходное имя файла
fileFormatstringФормат файла (JSON, MD, MDX и т. д.)
dataFormatstring | nullФормат данных в файле (ICU, i18next, JSX)
createdAtstringМетка времени ISO создания файла
updatedAtstringМетка времени ISO последнего обновления
approvalRequiredAtstring | nullМетка времени ISO запроса на утверждение
localesstring[]Список целевых локалей для этого файла

Свойства перевода

СвойствоТипОписание
localestringКод целевой локали
completedAtstring | nullISO‑метка времени завершения перевода
approvedAtstring | nullISO‑метка времени утверждения перевода
publishedAtstring | nullISO‑метка времени публикации перевода
createdAtstring | nullISO‑метка времени создания задания на перевод
updatedAtstring | nullISO‑метка времени последнего обновления перевода

Пример

index.ts
import { GT } from 'generaltranslation';

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

async function getFileInfo(fileId: string, versionId?: string) {
  const result = await gt.querySourceFile({
    fileId,
    versionId
  });
  
  console.log('=== Сведения об исходном файле ===');
  console.log(`Имя: ${result.sourceFile.fileName}`);
  console.log(`Формат: ${result.sourceFile.fileFormat}`);
  console.log(`Исходная локаль: ${result.sourceFile.sourceLocale}`);
  console.log(`Создан: ${new Date(result.sourceFile.createdAt).toLocaleString()}`);
  console.log(`Обновлён: ${new Date(result.sourceFile.updatedAt).toLocaleString()}`);
  
  console.log('\n=== Статус перевода ===');
  result.translations.forEach(translation => {
    console.log(`${translation.locale}:`);
    console.log(`  Создано: ${translation.createdAt ? new Date(translation.createdAt).toLocaleString() : 'Не начато'}`);
    console.log(`  Завершено: ${translation.completedAt ? new Date(translation.completedAt).toLocaleString() : 'В процессе'}`);
    console.log(`  Опубликовано: ${translation.publishedAt ? new Date(translation.publishedAt).toLocaleString() : 'Не опубликовано'}`);
  });
  
  return result;
}

const fileInfo = await getFileInfo('file-123', 'version-456');

Примечания

  • Возвращает исходный файл и статус перевода для всех целевых локалей
  • Метки времени перевода соответствуют жизненному циклу: createdAtcompletedAtapprovedAtpublishedAt
  • Пустые метки времени означают, что соответствующий этап ещё не пройден
  • Массив locales в исходном файле отражает все целевые локали, настроенные для перевода
  • Используйте этот метод для подробной отчётности, отслеживания прогресса и управления файлами

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

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

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

querySourceFile