# generaltranslation: General Translation Core SDK: querySourceFile URL: https://generaltranslation.com/ru/docs/core/class/methods/translation/query-source-file.mdx --- title: querySourceFile description: Справка по API метода querySourceFile для получения информации об исходном файле и переводе --- ## Обзор Метод `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`); ``` ## Справка ### Параметры | Имя | Тип | Описание | | ---------- | ------------------------------ | ------------------------------------------------------------- | | `data` | `FileQuery` | Объект запроса файла, определяющий, какой файл нужно получить | | `options?` | `CheckFileTranslationsOptions` | Необязательные параметры запроса | #### FileQuery | Name | Type | Description | | ------------ | -------- | ------------------------------------------------------- | | `fileId` | `string` | Уникальный идентификатор файла, который нужно запросить | | `versionId?` | `string` | Необязательный ID конкретной версии файла | | `branchId?` | `string` | Необязательный ID конкретной ветки | #### CheckFileTranslationsOptions | Название | Тип | Описание | | ---------- | -------- | --------------------- | | `timeout?` | `number` | Тайм-аут запроса в мс | ### Возвращает `Promise` — содержит информацию об исходном файле и статусе перевода для всех локалей. ```typescript type FileQueryResult = { sourceFile: { id: string; fileId: string; versionId: string; branchId: 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` | Идентификатор версии | | `branchId` | `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 | *** ## Пример ```typescript title="index.ts" copy 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(`Branch: ${result.sourceFile.branchId}`); 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'); ``` *** ## Примечания * Возвращает исходный файл и статус перевода для всех целевых локалей * Временные метки перевода соответствуют этапам жизненного цикла: `createdAt` -> `completedAt` -> `approvedAt` -> `publishedAt` * Значение `null` у временной метки указывает, что этот этап еще не пройден * Массив `locales` в исходном файле содержит все целевые локали, настроенные для перевода * Ответ включает `branchId` для корректного управления версиями при использовании ветвления * Используйте этот метод для подробной отчетности, отслеживания прогресса и управления файлами ## Следующие шаги * См. [`queryFileData`](/docs/core/class/methods/translation/query-file-data) для пакетной проверки статуса отдельных переводов * См. [`downloadFile`](/docs/core/class/methods/translation/download-file), чтобы скачать готовые переводы * См. [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files), чтобы запустить задания на перевод файлов * См. [`getProjectData`](/docs/core/class/methods/translation/get-project-data) для получения информации о проекте