# General Translation Platform: enqueueFiles
URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/translation/enqueue-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Ajouter les fichiers source téléversés à la file d’attente pour les traduire vers un ou plusieurs paramètres régionaux cibles. Référence de l’API pour enqueueFiles.

Ajoute à la file d’attente des tâches de traduction pour des fichiers source précédemment téléversés avec General Translation. Prend des références de fichier et crée au plus une tâche de traduction pour chaque paire fichier source / paramètre régional cible nécessitant encore du travail.

## Vue d’ensemble [#overview]

Appelez `enqueueFiles` avec les références de fichiers renvoyées par [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) et un objet d’options indiquant les paramètres régionaux cibles.

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

Signature :

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

*Remarque : `enqueueFiles` nécessite une `apiKey` (ou `devApiKey`) ainsi que `projectId` sur l’instance GT. Vous ne pouvez placer des fichiers en file d’attente qu’après les avoir importés.*

## Fonctionnement [#how-it-works]

* **Tâches asynchrones.** Les tâches de traduction s’exécutent de manière asynchrone. Suivez leur avancement avec [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data), ou attendez leur fin avec [`awaitJobs`](/docs/platform/core/reference/gt-class-methods/translation/await-jobs).
* **Au plus une tâche par fichier et par paramètre régional.** La réponse `jobData` est indexée par ID de tâche. Une paire fichier source / paramètre régional cible déjà terminée dans le format de sortie demandé ne crée pas de nouvelle tâche, sauf si cela est forcé.
* **Gestion des versions.** Les références de fichiers incluent `branchId` pour la gestion des versions avec prise en charge des branches.

## Paramètres [#parameters]

| Paramètre             | Description                                                     | Type                                                                               | Facultatif | Par défaut |
| --------------------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------- | ---------- |
| [`files`](#files)     | Identifiants de référence des fichiers précédemment téléversés. | `FileReferenceIds[]`                                                               | Non        | —          |
| [`options`](#options) | Options de configuration pour la tâche de traduction.           | [`EnqueueFilesOptions`](/docs/platform/core/reference/types/enqueue-files-options) | Non        | —          |

### `files`

**Type** `FileReferenceIds[]` · **Obligatoire**

Les références de fichiers à mettre en file d’attente :

```typescript
type FileReferenceIds = {
  fileId: string;
  versionId: string;
  branchId?: string;
  fileName?: string;
  fileFormat?: FileFormat;
  transformFormat?: FileFormat; // format de sortie demandé pour les traductions générées
  dataFormat?: DataFormat;
};
```

| Champ             | Description                                                     | Type                                                            | Facultatif |
| ----------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | ---------- |
| `fileId`          | Identifiant unique du fichier.                                  | `string`                                                        | Non        |
| `versionId`       | Identifiant de version.                                         | `string`                                                        | Non        |
| `branchId`        | Identifiant de branche.                                         | `string`                                                        | Oui        |
| `fileName`        | Nom du fichier.                                                 | `string`                                                        | Oui        |
| `fileFormat`      | Format du fichier.                                              | [`FileFormat`](/docs/platform/core/reference/types/file-format) | Oui        |
| `transformFormat` | Format de sortie demandé pour les traductions générées.         | [`FileFormat`](/docs/platform/core/reference/types/file-format) | Oui        |
| `dataFormat`      | Format des données dans le fichier (ICU, I18NEXT, JSX, STRING). | [`DataFormat`](/docs/platform/core/reference/types/data-format) | Oui        |

### `options`

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

Configuration de la tâche de traduction :

| Champ           | Description                                                                                                      | Type       | Facultatif | Par défaut              |
| --------------- | ---------------------------------------------------------------------------------------------------------------- | ---------- | ---------- | ----------------------- |
| `sourceLocale`  | Paramètre régional source de la traduction.                                                                      | `string`   | Oui        | instance `sourceLocale` |
| `targetLocales` | Paramètres régionaux cibles de la traduction.                                                                    | `string[]` | Non        | —                       |
| `modelProvider` | Fournisseur de modèle réservé aux comptes entreprise : `ANTHROPIC`, `OPENAI`, `XAI` ou `GOOGLE`.                 | `string`   | Oui        | —                       |
| `force`         | Invalide les traductions mises en cache et force une nouvelle traduction, même si des traductions existent déjà. | `boolean`  | Oui        | —                       |
| `timeout`       | Délai d’expiration de la requête, en millisecondes.                                                              | `number`   | Oui        | —                       |

*Remarque : `requireApproval` était une option propre à la version 8.x et n’est pas présente dans la version 9.0.*

## Renvoie [#returns]

**Type** `Promise<EnqueueFilesResult>`

La promesse se résout avec un `EnqueueFilesResult` contenant des informations sur la tâche et des détails de traitement :

```typescript
type EnqueueFilesResult = {
  jobData: {
    [jobId: string]: {
      sourceFileId: string;
      fileId: string;
      versionId: string;
      branchId: string;
      targetLocale: string;
      projectId: string;
      force: boolean;
      modelProvider?: string;
    };
  };
  locales: string[]; // paramètres régionaux cibles pour les jobs
  message: string; // message d'état de l'API
};
```

L’objet `jobData` utilise les ID de tâche comme clés, chaque valeur décrivant une seule tâche de traduction.

## Exemples [#examples]

```typescript title="index.ts"
// (1) Créer une instance GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// (2) Téléverser le fichier
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) Mettre en file d'attente la tâche de traduction du fichier
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

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

// (4) Attendre que toutes les traductions soient terminées
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) Télécharger les fichiers
const downloadResult = await gt.downloadFileBatch(
  targetLocales.map((locale) => ({
    fileId,
    branchId,
    locale,
  }))
);
```

## Notes [#notes]

* Le contenu du fichier doit d’abord être téléversé avec [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).
* Les tâches de traduction sont asynchrones — utilisez [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) ou [`awaitJobs`](/docs/platform/core/reference/gt-class-methods/translation/await-jobs) pour suivre leur progression.
* Les références de fichiers incluent `branchId` pour la gestion des versions avec prise en charge des branches.

## Sitemap

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