# 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