# General Translation Platform: downloadFileBatch
URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/translation/download-file-batch.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Télécharge plusieurs fichiers traduits en une seule requête. Référence API de downloadFileBatch.

Récupérez plusieurs fichiers source ou de traduction en une seule requête au lieu de multiplier les appels individuels à [`downloadFile`](/docs/platform/core/reference/gt-class-methods/translation/download-file), ce qui réduit la surcharge réseau.

## Vue d’ensemble [#overview]

Appelez `downloadFileBatch` avec un tableau de requêtes de fichier. Chaque requête peut cibler une traduction (avec un `locale`) ou un fichier source (sans `locale`).

```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });

const result = await gt.downloadFileBatch([
  { fileId: 'file-123', branchId: 'branch-456', locale: 'es' },
  { fileId: 'file-123', branchId: 'branch-456', locale: 'fr' },
  { fileId: 'file-123', branchId: 'branch-456', locale: 'de' },
]);
```

Signature :

```typescript
downloadFileBatch(
  requests: DownloadFileBatchRequest,
  options?: DownloadFileBatchOptions
): Promise<DownloadFileBatchResult>
```

*Remarque : `downloadFileBatch` nécessite une `apiKey` (ou `devApiKey`) ainsi que `projectId` sur l’instance GT. Cette méthode télécharge plusieurs fichiers en un seul appel d’API, ce qui est plus efficace que d’appeler [`downloadFile`](/docs/platform/core/reference/gt-class-methods/translation/download-file) à plusieurs reprises.*

## Fonctionnement [#how-it-works]

* **Ordre.** Associez chaque résultat à sa requête à l’aide de ses `fileId`, `branchId`, `versionId` et `locale`, plutôt qu’à sa position dans la réponse.
* **Résolution de paramètre régional.** Chaque paramètre régional demandé est résolu en paramètre régional pris en charge utilisé pour le stockage. Des codes équivalents peuvent être résolus en une même traduction stockée ; si vous demandez à la fois `ja` et `ja-JP`, chaque requête produit un résultat étiqueté avec le paramètre régional que vous avez transmis.
* **Succès partiel.** L’échec d’un téléchargement individuel dans le cadre du téléchargement par lots ne fait pas échouer l’ensemble du téléchargement par lots.
* **Disponibilité.** Utilisez [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) pour vérifier que les fichiers sont prêts avant de les télécharger.
* **Formats binaires.** Les formats texte renvoient des données UTF-8 décodées. `LOTTIE` reste encodé en base64 afin que les appelants puissent reconstruire le fichier binaire `.lottie` sans corrompre ses octets.

## Paramètres [#parameters]

| Paramètre               | Description                                    | Type                       | Facultatif | Par défaut |
| ----------------------- | ---------------------------------------------- | -------------------------- | ---------- | ---------- |
| [`requests`](#requests) | Tableau d’objets de requête de fichier.        | `DownloadFileBatchRequest` | Non        | —          |
| [`options`](#options)   | Configuration de la requête de téléchargement. | `DownloadFileBatchOptions` | Oui        | —          |

### `requests` [#requests]

**Type** `DownloadFileBatchRequest` · **Obligatoire**

Un tableau de requêtes de fichiers :

```typescript
type DownloadFileBatchRequest = {
  fileId: string;
  branchId?: string;
  locale?: string;
  versionId?: string;
  useLatestAvailableVersion?: boolean;
}[];
```

| Champ                       | Description                                                                                                                           | Type      | Facultatif | Valeur par défaut  |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------- | ------------------ |
| `fileId`                    | Identifiant unique du fichier à télécharger.                                                                                          | `string`  | Non        | —                  |
| `branchId`                  | Branche depuis laquelle télécharger.                                                                                                  | `string`  | Oui        | branche par défaut |
| `locale`                    | Paramètre régional cible de la traduction. Omettez-le pour télécharger le fichier source.                                             | `string`  | Oui        | —                  |
| `versionId`                 | ID de version à télécharger.                                                                                                          | `string`  | Oui        | dernière version   |
| `useLatestAvailableVersion` | Si `true` et que le `versionId` spécifié est introuvable, la dernière version disponible est utilisée au lieu de renvoyer une erreur. | `boolean` | Oui        | `false`            |

### `options` [#options]

**Type** `DownloadFileBatchOptions` · **Facultatif**

| Champ     | Description                                         | Type     | Facultatif |
| --------- | --------------------------------------------------- | -------- | ---------- |
| `timeout` | Délai d’expiration de la requête, en millisecondes. | `number` | Oui        |

## Retour [#returns]

**Type** `Promise<DownloadFileBatchResult>`

La promesse se résout en un `DownloadFileBatchResult` contenant les fichiers téléchargés et leur nombre :

```typescript
type DownloadFileBatchResult = {
  files: DownloadedFile[];
  count: number;
};

type DownloadedFile = {
  id: string;
  branchId: string;
  fileId: string;
  versionId: string;
  locale?: string; // présent lorsque le fichier est une traduction
  fileName?: string; // présent pour les fichiers source (lorsque le paramètre régional est absent)
  data: string; // texte UTF-8, ou base64 pour les formats binaires
  metadata: JsonObject;
  fileFormat: FileFormat;
};
```

| Propriété            | Description                                                                                         | Type                                                            |
| -------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| `files`              | Tableau d’objets de fichiers téléchargés.                                                           | `DownloadedFile[]`                                              |
| `count`              | Nombre de fichiers téléchargés avec succès.                                                         | `number`                                                        |
| `files[].id`         | Identifiant unique de l’enregistrement du fichier téléchargé.                                       | `string`                                                        |
| `files[].branchId`   | ID de branche.                                                                                      | `string`                                                        |
| `files[].fileId`     | ID de fichier.                                                                                      | `string`                                                        |
| `files[].versionId`  | ID de version.                                                                                      | `string`                                                        |
| `files[].locale`     | Paramètre régional du fichier, présent s’il s’agit d’une traduction.                                | `string` (optional)                                             |
| `files[].fileName`   | Nom du fichier d’origine, présent pour les fichiers source.                                         | `string` (optional)                                             |
| `files[].data`       | Contenu UTF-8 du fichier pour les formats texte, ou contenu binaire encodé en base64 pour `LOTTIE`. | `string`                                                        |
| `files[].metadata`   | Métadonnées spécifiques au format du fichier.                                                       | `JsonObject`                                                    |
| `files[].fileFormat` | Format du fichier (`JSON`, `MDX`, etc.).                                                            | [`FileFormat`](/docs/platform/core/reference/types/file-format) |

## 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',
  locale: 'en',
};
const files = [{ source: fileUpload }];
const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en' });

// (3) Mettre en file d'attente le job de traduction du fichier
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Attendre que toutes les traductions soient terminées
const { fileId, versionId, branchId } = uploadedFiles[0];
const result = await gt.awaitJobs(enqueueResult);

if (!result.complete) {
  console.error('Some jobs did not finish in time');
}

// (5) Télécharger toutes les traductions par lots
const downloadResult = await gt.downloadFileBatch(
  targetLocales.map((locale) => ({
    fileId,
    branchId,
    locale,
  }))
);

downloadResult.files.forEach((file) => {
  console.log(`Downloaded ${file.locale}: ${file.fileName}`);
});
```

## Remarques [#notes]

* Les fichiers texte sont renvoyés sous forme de chaînes de caractères UTF-8. Décodez les données `LOTTIE` depuis le format base64 pour écrire le fichier binaire `.lottie`.
* Utilisez [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) pour vérifier au préalable que les fichiers sont prêts à être téléchargés.
* Faites correspondre les résultats aux requêtes à l’aide de leurs identifiants de fichier, de version, de branche et de paramètre régional plutôt que selon leur position.
* L’échec du téléchargement de certains fichiers dans le cadre du téléchargement par lots n’entraîne pas l’échec de l’ensemble du téléchargement par lots.

## Sitemap

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