# generaltranslation: General Translation Core SDK: querySourceFile URL: https://generaltranslation.com/es/docs/core/class/methods/translation/query-source-file.mdx --- title: querySourceFile description: Referencia de la API del método querySourceFile para obtener información sobre el archivo de origen y la traducción --- ## Resumen El método `querySourceFile` obtiene información detallada sobre un archivo de origen y todas sus traducciones asociadas. Esto incluye los metadatos del archivo, el estado de las traducciones en todos los locales y las marcas de tiempo de creación, finalización, aprobación y publicación. ```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`); ``` ## Referencia ### Parámetros | Nombre | Tipo | Descripción | | ---------- | ------------------------------ | ---------------------------------------------------------------- | | `data` | `FileQuery` | Objeto de consulta de archivo que especifica qué archivo obtener | | `options?` | `CheckFileTranslationsOptions` | Configuración opcional para la solicitud | #### FileQuery | Nombre | Tipo | Descripción | | ------------ | -------- | -------------------------------------------------------------- | | `fileId` | `cadena` | Identificador único del archivo que se quiere consultar | | `versionId?` | `cadena` | ID de versión opcional para una versión específica del archivo | | `branchId?` | `cadena` | ID de rama opcional para una rama específica | #### CheckFileTranslationsOptions | Nombre | Tipo | Descripción | | ---------- | -------- | ------------------------------------------------ | | `timeout?` | `number` | Tiempo de espera de la solicitud en milisegundos | ### Devuelve `Promise` - Contiene información del archivo de origen y el estado de traducción para todos los locales. ```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; }[]; } ``` #### Propiedades del archivo de origen | Propiedad | Tipo | Descripción | | -------------------- | ---------------- | ----------------------------------------------------------- | | `id` | `string` | ID interno de la base de datos | | `fileId` | `string` | Identificador único del archivo | | `versionId` | `string` | Identificador de la versión | | `branchId` | `string` | Identificador de la rama | | `sourceLocale` | `string` | Configuración regional del idioma de origen | | `fileName` | `string` | Nombre del archivo original | | `fileFormat` | `string` | Formato del archivo (JSON, MD, MDX, etc.) | | `dataFormat` | `string \| null` | Formato de los datos dentro del archivo (ICU, I18NEXT, JSX) | | `createdAt` | `string` | Marca de tiempo ISO de creación del archivo | | `updatedAt` | `string` | Marca de tiempo ISO de la última actualización | | `approvalRequiredAt` | `string \| null` | Marca de tiempo ISO en la que se solicitó la aprobación | | `locales` | `string[]` | Lista de locales de destino para este archivo | #### Propiedades de traducción | Propiedad | Tipo | Descripción | | ------------- | ---------------- | --------------------------------------------------------------- | | `locale` | `string` | Código de la configuración regional de destino | | `completedAt` | `string \| null` | Marca de tiempo ISO de cuando se completó la traducción | | `approvedAt` | `string \| null` | Marca de tiempo ISO de cuando se aprobó la traducción | | `publishedAt` | `string \| null` | Marca de tiempo ISO de cuando se publicó la traducción | | `createdAt` | `string \| null` | Marca de tiempo ISO de la creación del trabajo de traducción | | `updatedAt` | `string \| null` | Marca de tiempo ISO de la última actualización de la traducción | *** ## Ejemplo ```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'); ``` *** ## Notas * Devuelve el archivo de origen y el estado de traducción de todos los locales de destino * Las marcas de tiempo de la traducción siguen este ciclo de vida: `createdAt` -> `completedAt` -> `approvedAt` -> `publishedAt` * Las marcas de tiempo nulas indican que esa etapa todavía no se ha alcanzado * El array `locales` del archivo de origen muestra todos los locales de destino configurados para su traducción * La respuesta incluye `branchId` para un control de versiones correcto con compatibilidad con branching * Usa este método para generar informes detallados, hacer seguimiento del progreso y gestionar flujos de trabajo de archivos ## Siguientes pasos * Consultar [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para comprobar por lotes el estado de traducciones específicas * Consultar [`downloadFile`](/docs/core/class/methods/translation/download-file) para descargar las traducciones completadas * Consultar [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) para iniciar trabajos de traducción de archivos * Consultar [`getProjectData`](/docs/core/class/methods/translation/get-project-data) para obtener información del proyecto