# generaltranslation: General Translation Core SDK: uploadTranslations
URL: https://generaltranslation.com/fr/docs/core/class/methods/translation/upload-translations.mdx
---
title: uploadTranslations
description: Référence de l’API pour la méthode uploadTranslations permettant de téléverser des fichiers de traduction existants
---
## Vue d’ensemble
La méthode `uploadTranslations` téléverse des fichiers de traduction correspondant à des fichiers source précédemment téléversés.
C’est utile lorsque vous disposez déjà de traductions que vous souhaitez téléverser directement au lieu de les générer via le service de traduction.
```typescript
const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' });
const result = await gt.uploadTranslations(files, {
sourceLocale: 'en'
});
```
Vous devez d’abord avoir téléversé les fichiers source à l’aide de [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) avant de téléverser les traductions.
## Référence
### Paramètres
| Nom | Type | Description |
| --------- | --------------------- | ---------------------------------------------------------------- |
| `files` | `TranslationUpload[]` | Tableau de références aux fichiers source avec leurs traductions |
| `options` | `UploadFilesOptions` | Options de configuration du téléversement |
#### Structure de TranslationUpload
```typescript
type TranslationUpload = {
source: FileUpload; // Référence au fichier source existant (aucun contenu requis)
translations: FileUpload[]; // Tableau des fichiers traduits avec leur contenu
}
```
#### Structure de FileUpload (pour référence côté source)
| Nom | Type | Description |
| ------------ | ------------ | --------------------------------------------------------------------- |
| `fileName` | `string` | Nom du fichier correspondant au fichier source précédemment téléversé |
| `fileFormat` | `FileFormat` | Format du fichier (JSON, MDX, MD, XML, etc.) |
| `fileId?` | `string` | ID facultatif du fichier source |
| `versionId?` | `string` | ID facultatif de la version du fichier source |
#### Structure `FileUpload` (pour les traductions)
| Nom | Type | Description |
| ------------ | ------------ | ----------------------------------------------------- |
| `content` | `string` | Contenu brut du fichier traduit, sous forme de chaîne |
| `fileName` | `string` | Nom du fichier de traduction |
| `fileFormat` | `FileFormat` | Format du fichier (JSON, MDX, MD, XML, etc.) |
| `locale` | `string` | Paramètre régional cible de la traduction |
| `fileId?` | `string` | ID de fichier facultatif |
| `versionId?` | `string` | ID de version facultatif |
#### UploadFilesOptions
| Nom | Type | Description |
| -------------- | -------- | ------------------------------------------------- |
| `sourceLocale` | `string` | Le paramètre régional d’origine des fichiers |
| `branchId?` | `string` | ID de branche facultatif pour le téléversement |
| `timeout?` | `number` | Délai d’expiration de la requête en millisecondes |
### Renvoie
`Promise` - Contient les résultats du téléversement et les références aux fichiers.
```typescript
type UploadFilesResponse = {
uploadedFiles: FileReference[];
count: number;
message: string;
}
```
| Propriété | Type | Description |
| --------------- | ----------------- | --------------------------------------------- |
| `uploadedFiles` | `FileReference[]` | Tableau des 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 renvoyé par l’API |
***
## Exemples
### Utilisation de base
Téléversez les traductions des fichiers source déjà téléversés :
```typescript copy
import { GT } from 'generaltranslation';
import fs from 'fs';
const gt = new GT({
apiKey: 'your-api-key',
projectId: 'your-project-id'
});
// Supposons 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`);
```
### Téléversement après le téléversement des fichiers source
Workflow complet : téléversez d’abord les fichiers source, puis les traductions :
```typescript copy
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 source
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(`${translationResult.count} traductions envoyées`);
```
### Téléversement groupé de plusieurs fichiers
Téléversez les traductions pour plusieurs fichiers source :
```typescript copy
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;
}
```
***
## Remarques
* Les fichiers source doivent d’abord être téléversés à l’aide de [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files)
* L’objet `source` de chaque entrée de fichier est une référence à un fichier source existant (le contenu n’est pas requis)
* 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 révisées manuellement
* Les références de fichier incluent `branchId` pour assurer un versionnage correct avec la prise en charge des branches
## Étapes suivantes
* Consultez [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) pour commencer par téléverser les fichiers source
* Consultez [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) pour générer automatiquement les traductions
* Consultez [`downloadFile`](/docs/core/class/methods/translation/download-file) pour télécharger les traductions
* Consultez [`queryFileData`](/docs/core/class/methods/translation/query-file-data) pour vérifier l’état des traductions