# General Translation Platform: enqueueFiles
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/translation/enqueue-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Accoda i file sorgente caricati per la traduzione in una o più impostazioni regionali di destinazione. Riferimento API per enqueueFiles.

Accoda i job di traduzione per file sorgente caricati in precedenza con General Translation. Accetta riferimenti ai file e crea al massimo un job di traduzione per ogni coppia di file sorgente e impostazione regionale di destinazione che richiede ancora lavoro.

## Panoramica [#overview]

Chiama `enqueueFiles` passando i riferimenti ai file restituiti da [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) e un oggetto options che elenca le impostazioni regionali di destinazione.

```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'],
});
```

Sintassi:

```typescript
enqueueFiles(
  files: FileReferenceIds[],
  options: EnqueueFilesOptions
): Promise<EnqueueFilesResult>
```

*Nota: `enqueueFiles` richiede un`apiKey` (o `devApiKey`) e `projectId` nell&#39;istanza GT. Puoi mettere i file in coda solo dopo averli caricati.*

## Come funziona [#how-it-works]

* **Job asincroni.** I job di traduzione vengono eseguiti in modo asincrono. Monitora l&#39;avanzamento con [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) oppure attendi il completamento con [`awaitJobs`](/docs/platform/core/reference/gt-class-methods/translation/await-jobs).
* **Al massimo un job per file e impostazione regionale.** La risposta `jobData` è organizzata per ID job. Una coppia di file sorgente e impostazione regionale di destinazione già completata nel formato di output richiesto non genera un nuovo job, a meno che non venga forzato.
* **Gestione delle versioni.** I riferimenti ai file includono `branchId` per la gestione delle versioni con supporto per i branch.

## Parametri [#parameters]

| Parametro             | Descrizione                                         | Tipo                                                                               | Facoltativo | Predefinito |
| --------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------- | ----------- | ----------- |
| [`files`](#files)     | ID di riferimento dei file caricati in precedenza.  | `FileReferenceIds[]`                                                               | No          | —           |
| [`options`](#options) | Opzioni di configurazione per il job di traduzione. | [`EnqueueFilesOptions`](/docs/platform/core/reference/types/enqueue-files-options) | No          | —           |

### `files`

**Tipo** `FileReferenceIds[]` · **Obbligatorio**

I riferimenti ai file da accodare:

```typescript
type FileReferenceIds = {
  fileId: string;
  versionId: string;
  branchId?: string;
  fileName?: string;
  fileFormat?: FileFormat;
  transformFormat?: FileFormat; // formato di output richiesto per le traduzioni generate
  dataFormat?: DataFormat;
};
```

| campo             | Descrizione                                             | Tipo                                                            | Facoltativo |
| ----------------- | ------------------------------------------------------- | --------------------------------------------------------------- | ----------- |
| `fileId`          | Identificatore univoco del file.                        | `string`                                                        | No          |
| `versionId`       | Identificatore della versione.                          | `string`                                                        | No          |
| `branchId`        | Identificatore del branch.                              | `string`                                                        | Sì          |
| `fileName`        | Nome del file.                                          | `string`                                                        | Sì          |
| `fileFormat`      | Formato del file.                                       | [`FileFormat`](/docs/platform/core/reference/types/file-format) | Sì          |
| `transformFormat` | Formato di output richiesto per le traduzioni generate. | [`FileFormat`](/docs/platform/core/reference/types/file-format) | Sì          |
| `dataFormat`      | Formato dei dati nel file (ICU, I18NEXT, JSX, STRING).  | [`DataFormat`](/docs/platform/core/reference/types/data-format) | Sì          |

### `options`

**tipo** [`EnqueueFilesOptions`](/docs/platform/core/reference/types/enqueue-files-options) · **Obbligatorio**

Configurazione per il job di traduzione:

| Campo           | Descrizione                                                                                        | tipo       | Facoltativo | Predefinito                     |
| --------------- | -------------------------------------------------------------------------------------------------- | ---------- | ----------- | ------------------------------- |
| `sourceLocale`  | Impostazione regionale sorgente per la traduzione.                                                 | `string`   | Sì          | `sourceLocale` dell&#39;istanza |
| `targetLocales` | Impostazioni regionali di destinazione in cui tradurre.                                            | `string[]` | No          | —                               |
| `modelProvider` | Provider del modello riservato a enterprise: `ANTHROPIC`, `OPENAI`, `XAI` o `GOOGLE`.              | `string`   | Sì          | —                               |
| `force`         | Invalida le traduzioni memorizzate nella cache e forza una nuova traduzione anche se esistono già. | `boolean`  | Sì          | —                               |
| `timeout`       | Timeout della richiesta in millisecondi.                                                           | `number`   | Sì          | —                               |

*Nota: `requireApproval` era un&#39;opzione disponibile solo nella versione 8.x e non è presente nella 9.0.*

## Restituisce [#returns]

**Tipo** `Promise<EnqueueFilesResult>`

Si risolve con un `EnqueueFilesResult` che contiene informazioni sul job e 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[]; // impostazioni regionali di destinazione per i job
  message: string; // messaggio di stato dall'API
};
```

Il record `jobData` è indicizzato per ID job e ogni valore descrive un singolo job di traduzione.

## Esempi [#examples]

```typescript title="index.ts"
// (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' as const,
  locale: 'en',
};
const files = [{ source: fileUpload }];
const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en' });

// (3) Accoda il job di traduzione del file
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

console.log(`Created ${Object.keys(enqueueResult.jobData).length} translation jobs`);

// (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 [#notes]

* Devi prima caricare il contenuto del file con [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).
* I job di traduzione sono asincroni: usa [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) o [`awaitJobs`](/docs/platform/core/reference/gt-class-methods/translation/await-jobs) per monitorarne l&#39;avanzamento.
* I riferimenti ai file includono `branchId` per la gestione delle versioni con supporto per i branch.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
