# General Translation Platform: Traduire des fichiers
URL: https://generaltranslation.com/fr/docs/platform/core/guides/translating-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Comment téléverser, traduire et télécharger des fichiers avec la bibliothèque generaltranslation.

La bibliothèque `generaltranslation` peut traduire des fichiers source entiers. Cette page explique comment téléverser un fichier, mettre sa traduction en file d’attente, vérifier son état et télécharger le fichier traduit.

## Avant de commencer [#before-start]

Assurez-vous d&#39;avoir suivi le [Quickstart](/docs/platform/core/quickstart) pour installer `generaltranslation` et initialiser la classe [GT](/docs/platform/core/reference/gt-class/constructor).

## Fonctionnement de la traduction de fichiers [#file-translation-works]

Les fichiers sont traduits sous forme de jobs :

1. Téléversez le fichier source.
2. Mettez le fichier en file d’attente de traduction.
3. Vérifiez l’état de la traduction.
4. Téléchargez le fichier traduit.

La traduction de fichiers utilise plusieurs appels, car les projets traduisent souvent un grand nombre de fichiers. Des étapes distinctes vous offrent plus de flexibilité dans l’utilisation de l’API : elles facilitent le traitement des fichiers par lots, la relance des opérations en échec, le suivi des jobs et le téléchargement du résultat lorsqu’il est prêt.

Le téléversement crée des enregistrements de fichiers sources. L’appel de [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) peut ensuite lancer un job pour chaque paire fichier source / paramètre régional cible qui nécessite encore du travail. (Consultez les méthodes [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) et [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) pour plus d’informations).

Pour les fichiers SVG, transmettez la source XML en UTF-8 avec `fileFormat: 'SVG'`. La traduction met à jour les nœuds de texte tout en préservant les formes et les styles. Une passe de mise en page asynchrone peut recentrer le texte et raccourcir les traductions qui débordent, tout en conservant les tailles de police définies ; attendez donc que le fichier soit terminé avant de le télécharger. Le XML mal formé est rejeté.

## 1. Téléversez le fichier source [#upload]

À titre d’exemple, ce guide traduit le fichier JSON anglais suivant :

```json
{
  "hello": "Hello",
  "world": "World"
}
```

Lisez le fichier, mettez son contenu en forme, puis appelez [uploadSourceFiles](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) pour téléverser les fichiers.

```typescript title="src/index.ts"
import fs from 'fs';
import path from 'path';
import type { FileUpload } from 'generaltranslation/types';

// (i) Lire le contenu d'un fichier
const filePath = path.join(process.cwd(), 'en.json');
const fileContents = fs.readFileSync(filePath, 'utf8');

// (ii) Formater le contenu du fichier
const fileUpload: FileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [ { source: fileUpload } ];

// (iii) Téléverser le fichier
const { uploadedFiles } = await gt.uploadSourceFiles(
  files,
  {
    sourceLocale: 'en'
  }
);
```

La réponse renvoie une liste de références de fichiers. Cela vous permet ensuite de mettre le fichier en file d’attente pour la traduction, de vérifier l’état du fichier et de télécharger le fichier traduit.

```ts title="Output"
[
  {
    fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
    versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
    branchId: '123456789',
    fileName: '/Users/demo/en.json',
    fileFormat: 'JSON'
  }
]
```

## 2. Mettre le fichier en file d’attente de traduction [#enqueue]

Utilisez [enqueueFiles](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) avec la référence du fichier téléversé et les locales cibles. Dans cet exemple, nous allons traduire en espagnol (`es`).

```typescript title="src/index.ts"
const fileUploadRef = {
  fileId: uploadedFiles[0].fileId,
  versionId: uploadedFiles[0].versionId,
  branchId: uploadedFiles[0].branchId,
  fileName: uploadedFiles[0].fileName,
  fileFormat: uploadedFiles[0].fileFormat,
};

const enqueueResult = await gt.enqueueFiles(
  [fileUploadRef],
  {
    sourceLocale: 'en',
    targetLocales: ['es'],
  }
);
```

La réponse renvoie un résultat contenant des informations sur le job.

```ts title="Output"
{
  jobData: {
    'job-123456': {
      sourceFileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
      fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
      versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
      branchId: '123456789',
      targetLocale: 'es',
      projectId: 'your-project-id',
      force: false
    }
  },
  locales: ['es'],
  message: 'Successfully enqueued 1 file translation jobs in 1 batch(es)'
}
```

## 3. Vérifier l’état du fichier [#status]

Utilisez [queryFileData](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) pour vérifier si le fichier traduit est complet et prêt au téléchargement.

```typescript title="src/index.ts"
const { fileId, versionId, branchId } = uploadedFiles[0];

const status = await gt.queryFileData({
  translatedFiles: [
    {
      fileId,
      versionId,
      branchId,
      locale: 'es',
    },
  ],
});
```

Si le fichier est encore en cours de traduction, `completedAt` vaut `null`. Une fois la traduction terminée, il contient un horodatage :

```ts title="Output"
{
  translatedFiles: [
    {
      fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
      versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
      branchId: '123456789',
      locale: 'es',
      completedAt: '2024-01-15T12:00:00Z'
    }
  ]
}
```

## 4. Télécharger le fichier traduit [#download]

Enfin, téléchargez le fichier traduit à l’aide de la méthode [downloadFile](/docs/platform/core/reference/gt-class-methods/translation/download-file).

```typescript title="src/index.ts"
const content = await gt.downloadFile({
  fileId,
  versionId,
  branchId,
  locale: 'es',
});
```

La réponse contient le contenu du fichier traduit. Cet exemple renvoie :

```json title="Output"
{
  "hello": "Hola",
  "world": "Mundo"
}
```

## Next steps

- /docs/platform/core/guides/translating-strings
- /docs/platform/core/guides/locale-codes

## Sitemap

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