# generaltranslation: General Translation Core SDK: queryFileData URL: https://generaltranslation.com/it/docs/core/class/methods/translation/query-file-data.mdx --- title: queryFileData description: Riferimento API per il metodo queryFileData, che consente di interrogare i dati dei file di origine e di traduzione --- ## Panoramica Il metodo `queryFileData` recupera dati su uno o più file di origine o di traduzione. È utile per monitorare l'avanzamento delle traduzioni, verificarne lo stato di completamento e determinare quali traduzioni sono disponibili. ```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' } ] }); ``` ## Riferimento ### Parametri | Nome | Tipo | Descrizione | | ---------- | ------------------------------ | --------------------------------------------------------------- | | `data` | `FileDataQuery` | Oggetto contenente le query dei file di origine e di traduzione | | `options?` | `CheckFileTranslationsOptions` | Configurazione facoltativa della richiesta | #### FileDataQuery ```typescript type FileDataQuery = { sourceFiles?: { fileId: string; versionId: string; branchId: string; }[]; translatedFiles?: { fileId: string; versionId: string; branchId: string; locale: string; }[]; } ``` | Nome | Tipo | Descrizione | | ------------------ | ---------- | ---------------------------------- | | `sourceFiles?` | `object[]` | Array di query sui file di origine | | `translatedFiles?` | `object[]` | Array di query sui file tradotti | #### CheckFileTranslationsOptions | Nome | Tipo | Descrizione | | ---------- | -------- | ---------------------------------------- | | `timeout?` | `number` | Timeout della richiesta, in millisecondi | ### Restituisce `Promise` - Contiene i dati dei file di origine e di traduzione. ```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; }[]; } ``` | Proprietà | Tipo | Descrizione | | ----------------- | ---------- | ------------------------------------ | | `sourceFiles` | `object[]` | Array di dati dei file di origine | | `translatedFiles` | `object[]` | Array di dati sullo stato traduzione | *** ## Esempi ### Utilizzo di base Interroga i dati relativi a file di origine e di traduzione specifici: ```typescript title="index.ts" copy // (1) Crea un'istanza GT const targetLocales = ['es', 'fr', 'de']; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // (2) Carica il file const fileUpload = { content: fileContents, fileName: filePath, fileFormat: 'JSON', locale: 'en', }; const files = [ { source: fileUpload } ]; const { uploadedFiles } = await gt.uploadSourceFiles( files, { sourceLocale: 'en' } ); // (3) Accoda il processo di traduzione del file const enqueueResult = await gt.enqueueFiles( uploadedFiles, { sourceLocale: 'en', targetLocales: targetLocales, } ); // (4) Attendi il completamento di tutte le traduzioni 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) Scarica i file const downloadResult = await gt.downloadFileBatch( translatedFileQueries.map(({ fileId, branchId, locale }) => ({ fileId, branchId, locale })) ); ``` *** ## Note * Una traduzione è completa quando `completedAt` non è `null` * Le traduzioni completate potrebbero comunque richiedere l'approvazione (`approvedAt`) prima di essere pubblicate (`publishedAt`) * Usa questo metodo per verificare in modo efficiente lo stato quando monitori più processi di traduzione * Tutte le query sui file richiedono `branchId` per una corretta gestione delle versioni ## Passaggi successivi * Consulta il [Quickstart](/docs/core/quickstart#translate-your-first-file) per un esempio completo di come utilizzare questo metodo * Vedi [`downloadFile`](/docs/core/class/methods/translation/download-file) per scaricare le traduzioni completate * Vedi [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) per creare processi di traduzione * Vedi [`querySourceFile`](/docs/core/class/methods/translation/query-source-file) per ottenere informazioni sul file di origine e sulle traduzioni