# General Translation Platform: querySourceFile URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/translation/query-source-file.mdx --- title: querySourceFile description: Возвращает метаданные исходного файла и связанную информацию о переводе. Справочник API для querySourceFile. --- Возвращает подробную информацию об исходном файле и всех его переводах в General Translation. Сюда входят метаданные файла, статус перевода для каждой локали, а также временные метки создания, завершения, одобрения и публикации. ## Обзор [#overview] Вызовите `querySourceFile`, передав запрос, который идентифицирует файл. Метод возвращает метаданные исходного файла, а также запись перевода для каждой локали. ```typescript 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(`Source file: ${result.sourceFile.fileName}`); console.log(`Available in ${result.translations.length} locales`); ``` Сигнатура: ```typescript querySourceFile( data: FileQuery, options?: CheckFileTranslationsOptions ): Promise ``` *Примечание: для `querySourceFile` в экземпляре GT должны быть указаны `apiKey` (или `devApiKey`) и `projectId`.* ## Как это работает [#how-it-works] * **Полный статус перевода.** Возвращает исходный файл и статус перевода для каждой целевой локали. * **Жизненный цикл временных меток.** Временные метки перевода идут в следующем порядке: `createdAt` → `completedAt` → `approvedAt` → `publishedAt`. Значение `null` для временной метки означает, что этот этап ещё не пройден. * **Настроенные локали.** Массив `locales` в исходном файле содержит все целевые локали, настроенные для перевода. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | --------------------- | ----------------------------------------------------- | ------------------------------ | -------------- | ------------ | | [`data`](#data) | Запрос файла, указывающий, какой файл нужно получить. | `FileQuery` | Нет | — | | [`options`](#options) | Параметры запроса. | `CheckFileTranslationsOptions` | Да | — | ### `data` [#data] **Тип** `FileQuery` · **Обязательно** Указывает файл, для которого выполняется запрос: | Поле | Описание | Тип | Необязательно | | ----------- | ---------------------------------------------------------------- | -------- | ------------- | | `fileId` | Уникальный идентификатор файла, для которого выполняется запрос. | `string` | Нет | | `versionId` | ID конкретной версии файла. | `string` | Да | | `branchId` | ID конкретной ветки. | `string` | Да | ### `options` [#options] **Тип** `CheckFileTranslationsOptions` · **Необязательно** | Поле | Описание | Тип | Необязательно | | --------- | --------------------------------- | -------- | ------------- | | `timeout` | Тайм-аут запроса в миллисекундах. | `number` | Да | ## Возвращает [#returns] **Тип** `Promise` После выполнения возвращает `FileQueryResult` с информацией об исходном файле и статусом перевода для всех локалей: ```typescript type FileQueryResult = { sourceFile: { id: string; fileId: string; versionId: string; sourceLocale: string; fileName: string; fileFormat: string; dataFormat: string | null; createdAt: string; updatedAt: string; locales: string[]; }; translations: { locale: string; completedAt: string | null; approvedAt: string | null; publishedAt: string | null; createdAt: string | null; updatedAt: string | null; }[]; }; ``` Свойства исходного файла: | Свойство | Описание | Тип | | -------------- | ----------------------------------------------- | ---------------- | | `id` | Внутренний ID базы данных. | `string` | | `fileId` | Уникальный идентификатор файла. | `string` | | `versionId` | Идентификатор версии. | `string` | | `sourceLocale` | Локаль языка-источника. | `string` | | `fileName` | Имя исходного файла. | `string` | | `fileFormat` | Формат файла (JSON, MD, MDX и другие). | `string` | | `dataFormat` | Формат данных внутри файла (ICU, I18NEXT, JSX). | `string \| null` | | `createdAt` | Временная метка ISO создания файла. | `string` | | `updatedAt` | Временная метка ISO последнего обновления. | `string` | | `locales` | Список целевых локалей для этого файла. | `string[]` | Свойства перевода: | Свойство | Описание | Тип | | ------------- | --------------------------------------------------- | ---------------- | | `locale` | Код целевой локали. | `string` | | `completedAt` | Временная метка ISO завершения перевода. | `string \| null` | | `approvedAt` | Временная метка ISO утверждения перевода. | `string \| null` | | `publishedAt` | Временная метка ISO публикации перевода. | `string \| null` | | `createdAt` | Временная метка ISO создания задачи перевода. | `string \| null` | | `updatedAt` | Временная метка ISO последнего обновления перевода. | `string \| null` | ## Примеры [#examples] ```typescript title="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('=== Source File Info ==='); console.log(`Name: ${result.sourceFile.fileName}`); console.log(`Format: ${result.sourceFile.fileFormat}`); console.log(`Source Locale: ${result.sourceFile.sourceLocale}`); console.log(`Created: ${new Date(result.sourceFile.createdAt).toLocaleString()}`); console.log(`Updated: ${new Date(result.sourceFile.updatedAt).toLocaleString()}`); console.log('\n=== Translation Status ==='); result.translations.forEach((translation) => { console.log(`${translation.locale}:`); console.log( ` Created: ${translation.createdAt ? new Date(translation.createdAt).toLocaleString() : 'Not started'}` ); console.log( ` Completed: ${translation.completedAt ? new Date(translation.completedAt).toLocaleString() : 'In progress'}` ); console.log( ` Published: ${translation.publishedAt ? new Date(translation.publishedAt).toLocaleString() : 'Not published'}` ); }); return result; } const fileInfo = await getFileInfo('file-123', 'version-456'); ``` ## Примечания [#notes] * Возвращает исходный файл и статус перевода для всех целевых локалей. * Временные метки перевода соответствуют жизненному циклу `createdAt` → `completedAt` → `approvedAt` → `publishedAt`; значение `null` у временной метки означает, что этот этап еще не достигнут. * Массив `locales` в исходном файле содержит все целевые локали, настроенные для перевода. * Используйте этот метод для подробной отчетности, отслеживания прогресса и управления файлами в рамках workflows.