# General Translation Platform: uploadTranslations URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/translation/upload-translations.mdx --- title: uploadTranslations description: Téléversez des fichiers traduits existants correspondant à des fichiers source. Référence de l’API pour uploadTranslations. --- Téléverse des fichiers de traduction correspondant à des fichiers source précédemment téléversés. Utilisez-le avec General Translation lorsque vous disposez déjà de traductions — par exemple, pour migrer des traductions existantes ou téléverser des traductions révisées manuellement — au lieu de les générer via le service de traduction. ## Vue d’ensemble [#overview] Appelez `uploadTranslations` avec un tableau de téléversements de traductions et un objet d’options. Chaque téléversement fait référence à un fichier source existant et inclut un ou plusieurs fichiers traduits. ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const result = await gt.uploadTranslations(files, { sourceLocale: 'en', }); ``` Signature : ```typescript uploadTranslations( files: { source: FileUpload; translations: FileUpload[] }[], options: UploadFilesOptions ): Promise ``` *Remarque : `uploadTranslations` nécessite une `apiKey` (ou `devApiKey`) ainsi que `projectId` sur l’instance GT. Vous devez d’abord téléverser les fichiers source correspondants avec [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).* ## Fonctionnement [#how-it-works] * **Référence source.** L’objet `source` de chaque entrée est une référence à un fichier source déjà importé ; son contenu n’est pas nécessaire. * **Traductions.** Chaque élément du tableau `translations` doit inclure un contenu et un paramètre régional cible. * **Gestion des versions.** Les références de fichier renvoyées incluent `branchId` pour le versionnage avec prise en charge des branches. ## Paramètres [#parameters] | Paramètre | Description | Type | Facultatif | Par défaut | | --------------------- | ----------------------------------------------------------------- | ------------------------------------------------------ | ---------- | ---------- | | [`files`](#files) | Tableau de références aux fichiers source et à leurs traductions. | `{ source: FileUpload; translations: FileUpload[] }[]` | Non | — | | [`options`](#options) | Options de configuration pour le téléversement. | `UploadFilesOptions` | Non | — | ### `files` [#files] **Type** `{ source: FileUpload; translations: FileUpload[] }[]` · **Obligatoire** Chaque entrée associe une référence au fichier source à ses fichiers traduits : ```typescript { source: FileUpload; // référence à un fichier source existant (aucun contenu requis) translations: FileUpload[]; // fichiers traduits avec leur contenu } ``` La référence `source` (un `FileUpload`) utilise les champs suivants : | Champ | Description | Type | Facultatif | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ | ---------- | | `fileName` | Nom du fichier correspondant au fichier source précédemment téléversé. | `string` | Non | | `fileFormat` | Format du fichier. L’un des formats suivants : `GTJSON`, `JSON`, `PO`, `POT`, `YAML`, `MDX`, `MD`, `TS`, `JS`, `HTML`, `TXT` ou `TWILIO_CONTENT_JSON`. | `FileFormat` | Non | | `fileId` | ID du fichier source. | `string` | Oui | | `versionId` | ID de version du fichier source. | `string` | Oui | Chaque traduction (un `FileUpload`) utilise les champs suivants : | Champ | Description | Type | Facultatif | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ | ---------- | | `content` | Contenu brut du fichier traduit, sous forme de chaîne de caractères. | `string` | Non | | `fileName` | Nom du fichier de la traduction. | `string` | Non | | `fileFormat` | Format du fichier. L’un des formats suivants : `GTJSON`, `JSON`, `PO`, `POT`, `YAML`, `MDX`, `MD`, `TS`, `JS`, `HTML`, `TXT` ou `TWILIO_CONTENT_JSON`. | `FileFormat` | Non | | `locale` | Paramètre régional cible de la traduction. | `string` | Non | | `fileId` | ID du fichier. | `string` | Oui | | `versionId` | ID de version. | `string` | Oui | ### `options` [#options] **Type** `UploadFilesOptions` · **Obligatoire** Configuration de l’envoi : | Champ | Description | Type | Facultatif | | --------------- | --------------------------------------------------- | -------- | ---------- | | `sourceLocale` | Le paramètre régional source des fichiers. | `string` | Non | | `modelProvider` | Fournisseur de modèle d’IA préféré. | `string` | Oui | | `timeout` | Délai d’expiration de la requête, en millisecondes. | `number` | Oui | *Remarque : `branchId` n’est pas une option d’envoi. C’est un champ défini par fichier dans chaque objet fichier, et non un élément de `UploadFilesOptions`.* ## Renvoie [#returns] **Type** `Promise` Renvoie une `UploadFilesResponse` contenant les références des fichiers téléversés et un récapitulatif : ```typescript type UploadFilesResponse = { uploadedFiles: FileReference[]; // références des fichiers téléversés count: number; // nombre de fichiers téléversés avec succès message: string; // message d'état de l'API }; ``` ## Exemples [#examples] ```typescript // Utilisation de base : upload de traductions pour des fichiers source déjà uploadés import { GT } from 'generaltranslation'; import fs from 'fs'; const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id', }); // On suppose que le fichier source a déjà été uploadé const files = [ { source: { fileName: 'common.json', fileFormat: 'JSON' as const, fileId: 'source-file-id', versionId: 'source-version-id', }, translations: [ { content: fs.readFileSync('./locales/es/common.json', 'utf8'), fileName: 'common.json', fileFormat: 'JSON' as const, locale: 'es', }, { content: fs.readFileSync('./locales/fr/common.json', 'utf8'), fileName: 'common.json', fileFormat: 'JSON' as const, locale: 'fr', }, ], }, ]; const result = await gt.uploadTranslations(files, { sourceLocale: 'en', }); console.log(`Uploaded ${result.count} translation files`); ``` ```typescript // Workflow complet : upload des fichiers sources, puis de leurs traductions import { GT } from 'generaltranslation'; import fs from 'fs'; const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id', }); // Étape 1 : upload des fichiers sources const sourceFiles = [ { source: { content: fs.readFileSync('./locales/en/messages.json', 'utf8'), fileName: 'messages.json', fileFormat: 'JSON' as const, locale: 'en', }, }, ]; const { uploadedFiles } = await gt.uploadSourceFiles(sourceFiles, { sourceLocale: 'en', }); // Étape 2 : upload des traductions existantes const translationFiles = [ { source: { fileName: uploadedFiles[0].fileName, fileFormat: uploadedFiles[0].fileFormat, fileId: uploadedFiles[0].fileId, versionId: uploadedFiles[0].versionId, }, translations: [ { content: fs.readFileSync('./locales/es/messages.json', 'utf8'), fileName: 'messages.json', fileFormat: 'JSON' as const, locale: 'es', }, { content: fs.readFileSync('./locales/de/messages.json', 'utf8'), fileName: 'messages.json', fileFormat: 'JSON' as const, locale: 'de', }, ], }, ]; const translationResult = await gt.uploadTranslations(translationFiles, { sourceLocale: 'en', }); console.log(`Uploaded ${translationResult.count} translations`); ``` ```typescript // Chargement par lots des traductions pour plusieurs fichiers sources import { glob } from 'glob'; import path from 'path'; async function uploadAllTranslations( sourceRefs: FileReference[], targetLocales: string[] ) { const files = sourceRefs.map((sourceRef) => ({ source: { fileName: sourceRef.fileName, fileFormat: sourceRef.fileFormat, fileId: sourceRef.fileId, versionId: sourceRef.versionId, }, translations: targetLocales .map((locale) => { const translationPath = `./locales/${locale}/${sourceRef.fileName}`; try { return { content: fs.readFileSync(translationPath, 'utf8'), fileName: sourceRef.fileName, fileFormat: sourceRef.fileFormat, locale, }; } catch { // Le fichier de traduction n'existe pas pour ce paramètre régional return null; } }) .filter(Boolean), })); const result = await gt.uploadTranslations(files, { sourceLocale: 'en', timeout: 60000, }); return result; } ``` ## Notes [#notes] * Les fichiers source doivent d’abord être téléversés avec [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files). * Dans chaque entrée, l’objet `source` fait référence à un fichier source existant — le contenu n’y est pas nécessaire. * Chaque traduction du tableau `translations` doit inclure un contenu et un paramètre régional cible. * Cette méthode est utile pour migrer des traductions existantes ou téléverser des traductions relues par des humains. * Les références de fichier incluent `branchId` pour le versionnage avec prise en charge des branches.