# generaltranslation: General Translation Core SDK: enqueueFiles URL: https://generaltranslation.com/it/docs/core/class/methods/translation/enqueue-files.mdx --- title: enqueueFiles description: Documentazione di riferimento API per il metodo enqueueFiles, che mette in coda job di traduzione dei file --- ## Panoramica Il metodo `enqueueFiles` mette in coda job di traduzione per i file sorgente caricati in precedenza. Questo metodo accetta riferimenti ai file e crea job di traduzione per le impostazioni regionali di destinazione specificate. ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const result = await gt.enqueueFiles(fileRefs, { sourceLocale: 'en', targetLocales: ['es', 'fr', 'de'] }); ``` Puoi mettere in coda i file per la traduzione solo dopo averli caricati. ## Documentazione di riferimento ### Parametri | Nome | Tipo | Descrizione | | --------- | -------------------- | --------------------------------------------------------- | | `files` | `FileReferenceIds[]` | Array di ID di riferimento ai file caricati in precedenza | | `options` | `EnqueueOptions` | Opzioni di configurazione per il job di traduzione | #### Struttura di FileReferenceIds ```typescript type FileReferenceIds = { fileId: string; versionId: string; branchId?: string; fileName?: string; fileFormat?: FileFormat; dataFormat?: DataFormat; } ``` | Name | Type | Description | | ------------- | ------------ | ------------------------------------------------------------- | | `fileId` | `string` | Identificatore univoco del file | | `versionId` | `string` | Identificatore della versione | | `branchId?` | `string` | Identificatore del branch (facoltativo) | | `fileName?` | `string` | Nome del file (facoltativo) | | `fileFormat?` | `FileFormat` | Formato del file (JSON, MD, ecc.) | | `dataFormat?` | `DataFormat` | Formato dei dati all'interno del file (ICU, I18NEXT, JSX) | #### EnqueueOptions | Nome | Tipo | Descrizione | | ------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------- | | `sourceLocale?` | `string` | Impostazione regionale di origine per la traduzione (per impostazione predefinita: `sourceLocale` dell'istanza) | | `targetLocales` | `string[]` | Array di impostazioni regionali di destinazione per la traduzione | | `requireApproval?` | `boolean` | Se le traduzioni richiedono l'approvazione prima della pubblicazione | | `modelProvider?` | `string` | Provider del modello di IA specifico da usare per la traduzione | | `force?` | `boolean` | Forza la ritraduzione anche se le traduzioni esistono già | | `timeout?` | `number` | Timeout della richiesta in millisecondi | ### Restituisce `Promise` - Include le informazioni sul job e i dettagli di elaborazione. ```typescript type EnqueueFilesResult = { jobData: { [jobId: string]: { sourceFileId: string; fileId: string; versionId: string; branchId: string; targetLocale: string; projectId: string; force: boolean; modelProvider?: string; }; }; locales: string[]; message: string; } ``` | Proprietà | Tipo | Descrizione | | --------- | ------------------------ | -------------------------------------------------------------------------------------------------- | | `jobData` | `Record` | Un record indicizzato per ID del job, in cui ogni valore contiene i dettagli del job di traduzione | | `locales` | `string[]` | Elenco delle impostazioni regionali di destinazione per i job di traduzione | | `message` | `string` | Messaggio di stato dall'API | *** ## Esempio ```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) Mette in coda il job di traduzione del file const enqueueResult = await gt.enqueueFiles( uploadedFiles, { sourceLocale: 'en', targetLocales: targetLocales, } ); console.log(`Job di traduzione creato: ${enqueueResult.jobId}`); // (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( targetLocales.map((locale) => ({ fileId, branchId, locale })) ); ``` *** ## Note * Il contenuto del file deve essere prima caricato tramite [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) * I job di traduzione sono asincroni: usa [`queryFileData`](/docs/core/class/methods/translation/query-file-data) per monitorarne l'avanzamento * I riferimenti ai file includono `branchId` per una corretta gestione delle versioni con supporto ai branch ## Passaggi successivi * Vedi [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) per caricare i file prima di metterli in coda * Vedi [`queryFileData`](/docs/core/class/methods/translation/query-file-data) per monitorare l'avanzamento della traduzione * Vedi [`downloadFile`](/docs/core/class/methods/translation/download-file) per recuperare le traduzioni completate * Vedi [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) per verificare lo stato del job