# General Translation Platform: Traduire des fichiers URL: https://generaltranslation.com/fr/docs/platform/core/guides/translating-files.mdx --- title: Traduire des fichiers description: "Comment traduire des fichiers avec la bibliothèque generaltranslation : ce guide couvre l’envoi d’un fichier source, la mise en file d’attente de la traduction, la vérification de l’état et le téléchargement du fichier traduit." related: links: - /docs/platform/core/guides/translating-strings - /docs/platform/core/guides/locale-codes --- La bibliothèque `generaltranslation` peut traduire des fichiers source entiers. Cette page explique comment envoyer 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'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. Lancez un job en téléversant un fichier ; téléverser plusieurs fichiers lancera plusieurs jobs. 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. ## 1. Importez 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 importer les fichiers. ```typescript title="src/index.ts" import fs from 'fs'; import path from 'path'; import { 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 placer 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 { fileId, branchId } = uploadedFiles[0]; const content = await gt.downloadFile({ fileId, 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