# generaltranslation: General Translation Core SDK: querySourceFile URL: https://generaltranslation.com/it/docs/core/class/methods/translation/query-source-file.mdx --- title: querySourceFile description: Riferimento API per il metodo querySourceFile, che recupera informazioni sul file sorgente e sulla traduzione --- ## Panoramica Il metodo `querySourceFile` restituisce informazioni complete su un file sorgente e su tutte le traduzioni associate. Include i metadati del file, lo stato della traduzione per tutte le impostazioni regionali e i timestamp di creazione, completamento, approvazione e pubblicazione. ```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`); ``` ## Riferimento ### Parametri | Nome | Tipo | Descrizione | | ---------- | ------------------------------ | ---------------------------------------------------------- | | `data` | `FileQuery` | Oggetto query del file che specifica quale file recuperare | | `options?` | `CheckFileTranslationsOptions` | Configurazione facoltativa per la richiesta | #### FileQuery | Nome | Tipo | Descrizione | | ------------ | -------- | ------------------------------------------------ | | `fileId` | `string` | Identificatore univoco del file da interrogare | | `versionId?` | `string` | ID facoltativo della versione specifica del file | | `branchId?` | `string` | ID facoltativo del branch specifico | #### CheckFileTranslationsOptions | Nome | Tipo | Descrizione | | ---------- | -------- | ---------------------------------------- | | `timeout?` | `number` | Timeout della richiesta, in millisecondi | ### Restituisce `Promise` - Contiene le informazioni sul file sorgente e lo stato della traduzione per tutte le impostazioni regionali. ```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; }[]; } ``` #### Proprietà del file sorgente | Proprietà | Tipo | Descrizione | | -------------------- | ---------------- | ------------------------------------------------------------------- | | `id` | `string` | ID interno del database | | `fileId` | `string` | Identificatore univoco del file | | `versionId` | `string` | Identificatore della versione | | `branchId` | `string` | Identificatore del branch | | `sourceLocale` | `string` | Impostazione regionale della lingua sorgente | | `fileName` | `string` | Nome originale del file | | `fileFormat` | `string` | Formato del file (JSON, MD, MDX, ecc.) | | `dataFormat` | `string \| null` | Formato dei dati nel file (ICU, I18NEXT, JSX) | | `createdAt` | `string` | Timestamp ISO della creazione del file | | `updatedAt` | `string` | Timestamp ISO dell'ultimo aggiornamento | | `approvalRequiredAt` | `string \| null` | Timestamp ISO in cui è stata richiesta l'approvazione | | `locales` | `string[]` | Elenco delle impostazioni regionali di destinazione per questo file | #### Proprietà della traduzione | Proprietà | Tipo | Descrizione | | ------------- | ---------------- | ------------------------------------------------------------ | | `locale` | `string` | Codice locale di destinazione | | `completedAt` | `string \| null` | Timestamp ISO del completamento della traduzione | | `approvedAt` | `string \| null` | Timestamp ISO dell'approvazione della traduzione | | `publishedAt` | `string \| null` | Timestamp ISO della pubblicazione della traduzione | | `createdAt` | `string \| null` | Timestamp ISO della creazione del job di traduzione | | `updatedAt` | `string \| null` | Timestamp ISO dell'ultimo aggiornamento della traduzione | *** ## Esempio ```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'); ``` *** ## Note * Restituisce il file sorgente e lo stato della traduzione per tutte le impostazioni regionali di destinazione * I timestamp della traduzione seguono il ciclo di vita: `createdAt` -> `completedAt` -> `approvedAt` -> `publishedAt` * I timestamp null indicano che quella fase non è ancora stata raggiunta * L'array `locales` nel file sorgente mostra tutte le impostazioni regionali di destinazione configurate per la traduzione * La risposta include `branchId` per garantire un corretto versionamento con supporto per il branching * Usa questo metodo per report dettagliati, monitoraggio dell'avanzamento e flussi di lavoro per la gestione dei file ## Passaggi successivi * Vedi [`queryFileData`](/docs/core/class/methods/translation/query-file-data) per controllare in batch lo stato di traduzioni specifiche * Vedi [`downloadFile`](/docs/core/class/methods/translation/download-file) per scaricare le traduzioni completate * Vedi [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) per avviare i processi di traduzione dei file * Vedi [`getProjectData`](/docs/core/class/methods/translation/get-project-data) per informazioni a livello di progetto