# generaltranslation: General Translation Core SDK: queryFileData URL: https://generaltranslation.com/es/docs/core/class/methods/translation/query-file-data.mdx --- title: queryFileData description: Referencia de la API del método queryFileData para consultar datos de archivos de origen y de traducción --- ## Resumen El método `queryFileData` consulta datos sobre uno o varios archivos de origen o de traducción. Esto es útil para supervisar el progreso de la traducción, comprobar el estado de finalización y determinar qué traducciones están disponibles. ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const result = await gt.queryFileData({ sourceFiles: [ { fileId: 'file-123', versionId: 'version-456', branchId: 'branch-789' } ], translatedFiles: [ { fileId: 'file-123', versionId: 'version-456', branchId: 'branch-789', locale: 'es' } ] }); ``` ## Referencia ### Parámetros | Nombre | Tipo | Descripción | | ---------- | ------------------------------ | ------------------------------------------------------------------- | | `data` | `FileDataQuery` | Objeto que contiene consultas de archivos de origen y de traducción | | `options?` | `CheckFileTranslationsOptions` | Configuración opcional para la solicitud | #### FileDataQuery ```typescript type FileDataQuery = { sourceFiles?: { fileId: string; versionId: string; branchId: string; }[]; translatedFiles?: { fileId: string; versionId: string; branchId: string; locale: string; }[]; } ``` | Nombre | Tipo | Descripción | | ------------------ | ---------- | ----------------------------------------- | | `sourceFiles?` | `object[]` | array de consultas de archivos de origen | | `translatedFiles?` | `object[]` | array de consultas de archivos traducidos | #### CheckFileTranslationsOptions | Nombre | Tipo | Descripción | | ---------- | -------- | ------------------------------------------------- | | `timeout?` | `number` | Tiempo de espera de la solicitud, en milisegundos | ### Devuelve `Promise`: contiene los datos de los archivos de origen y de traducción. ```typescript type FileDataResult = { sourceFiles?: { branchId: string; fileId: string; versionId: string; fileName: string; fileFormat: string; dataFormat: string | null; createdAt: string; updatedAt: string; approvalRequiredAt: string | null; publishedAt: string | null; locales: string[]; sourceLocale: string; }[]; translatedFiles?: { fileId: string; versionId: string; branchId: string; locale: string; fileFormat: string; dataFormat: string | null; completedAt: string | null; approvedAt: string | null; publishedAt: string | null; createdAt: string; updatedAt: string; }[]; } ``` | Propiedad | Tipo | Descripción | | ----------------- | ---------- | -------------------------------------------- | | `sourceFiles` | `object[]` | array de datos de archivos de origen | | `translatedFiles` | `object[]` | array de datos sobre el estado de traducción | *** ## Ejemplos ### Uso básico Consulta los datos de archivos específicos de origen y traducción: ```typescript title="index.ts" copy // (1) Crear una instancia de GT const targetLocales = ['es', 'fr', 'de']; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // (2) Cargar el archivo const fileUpload = { content: fileContents, fileName: filePath, fileFormat: 'JSON', locale: 'en', }; const files = [ { source: fileUpload } ]; const { uploadedFiles } = await gt.uploadSourceFiles( files, { sourceLocale: 'en' } ); // (3) Poner en cola el trabajo de traducción de archivo const enqueueResult = await gt.enqueueFiles( uploadedFiles, { sourceLocale: 'en', targetLocales: targetLocales, } ); // (4) Esperar a que todas las traducciones estén completadas const { fileId, versionId, branchId } = uploadedFiles[0]; const translatedFileQueries = targetLocales.map((locale) => ({ fileId, versionId, branchId, locale })); while (true) { const result = await gt.queryFileData({ translatedFiles: translatedFileQueries }); const allCompleted = result.translatedFiles?.every( (file) => file.completedAt !== null ); if (allCompleted) { break; } await new Promise(resolve => setTimeout(resolve, 1000)); } // (5) Descargar los archivos const downloadResult = await gt.downloadFileBatch( translatedFileQueries.map(({ fileId, branchId, locale }) => ({ fileId, branchId, locale })) ); ``` *** ## Notas * Una traducción está completa cuando `completedAt` no es `null` * Es posible que las traducciones completadas aún requieran aprobación (`approvedAt`) antes de publicarse (`publishedAt`) * Usa este método para comprobar el estado de forma eficiente al supervisar varios trabajos de traducción * Todas las consultas de archivos requieren `branchId` para un control de versiones adecuado ## Próximos pasos * Consulta el [inicio rápido](/docs/core/quickstart#translate-your-first-file) para ver un ejemplo completo de cómo usar este método * Consulta [`downloadFile`](/docs/core/class/methods/translation/download-file) para descargar las traducciones completadas * Consulta [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) para crear trabajos de traducción * Consulta [`querySourceFile`](/docs/core/class/methods/translation/query-source-file) para obtener información sobre el archivo de origen y la traducción