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} локалях`);Справочные материалы
Параметры
| Имя | Тип | Описание |
|---|---|---|
data | FileQuery | Объект запроса, указывающий, какой файл нужно получить |
options? | CheckFileTranslationsOptions | Необязательные параметры запроса |
FileQuery
| Имя | Тип | Описание |
|---|---|---|
fileId | string | Уникальный идентификатор файла для выполнения запроса |
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;
}[];
}Свойства исходного файла
| Свойство | Тип | Описание |
|---|---|---|
id | string | Внутренний идентификатор в базе данных |
fileId | string | Уникальный идентификатор файла |
versionId | string | Идентификатор версии |
sourceLocale | string | Локаль исходного языка |
fileName | string | Исходное имя файла |
fileFormat | string | Формат файла (JSON, MD, MDX и т. д.) |
dataFormat | string | null | Формат данных в файле (ICU, i18next, JSX) |
createdAt | string | Метка времени ISO создания файла |
updatedAt | string | Метка времени ISO последнего обновления |
approvalRequiredAt | string | null | Метка времени ISO запроса на утверждение |
locales | string[] | Список целевых локалей для этого файла |
Свойства перевода
| Свойство | Тип | Описание |
|---|---|---|
locale | string | Код целевой локали |
completedAt | string | null | ISO‑метка времени завершения перевода |
approvedAt | string | null | ISO‑метка времени утверждения перевода |
publishedAt | string | null | ISO‑метка времени публикации перевода |
createdAt | string | null | ISO‑метка времени создания задания на перевод |
updatedAt | string | null | ISO‑метка времени последнего обновления перевода |
Пример
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');Примечания
- Возвращает исходный файл и статус перевода для всех целевых локалей
- Метки времени перевода соответствуют жизненному циклу:
createdAt→completedAt→approvedAt→publishedAt - Пустые метки времени означают, что соответствующий этап ещё не пройден
- Массив
localesв исходном файле отражает все целевые локали, настроенные для перевода - Используйте этот метод для подробной отчётности, отслеживания прогресса и управления файлами
Дальнейшие шаги
- См.
checkFileTranslationsдля быстрой проверки статуса отдельных переводов - См.
downloadTranslatedFile, чтобы скачать готовые переводы - См.
enqueueFiles, чтобы запустить задания на перевод для файлов - См.
getProjectDataдля получения информации на уровне проекта
Насколько полезно это руководство?