# General Translation Platform: Importer des traductions URL: https://generaltranslation.com/fr/docs/platform/openapi/reference/files/upload-translations.mdx --- title: Importer des traductions description: Importez des fichiers traduits dans un projet General Translation correspondant à des fichiers source précédemment téléversés. Référence de l’API pour l’import de traductions. method: POST --- Importe des fichiers déjà traduits pour des fichiers source téléversés précédemment. Chaque entrée associe une référence de fichier source à une ou plusieurs traductions, avec un maximum de 100 entrées par requête. ## Vue d’ensemble [#overview] ```http POST https://api2.gtx.dev/v2/project/files/upload-translations ``` **Permission** `project:files:write` · **Limite de requêtes** Moyenne (120/min) Associez des traductions existantes à un projet afin qu’elles soient stockées aux côtés de leur source. Pour téléverser d’abord les fichiers source, utilisez [Téléverser des fichiers source](/docs/platform/openapi/reference/files/upload-source). Pour traduire les fichiers source avec General Translation à la place, consultez [Mettre en file d’attente les traductions](/docs/platform/openapi/reference/translation/queue). ## Fonctionnement [#how-it-works] * Le `source` de chaque entrée identifie un fichier source qui doit déjà exister. Les fichiers source sont mis en correspondance à l’aide de `branchId`, `versionId` et `fileId` ; si `branchId` est absent, la branche par défaut est utilisée. Si le fichier source référencé est introuvable, la requête échoue avec le code `400`. * L’objet `source` est validé de la même manière qu’un upload ; ainsi, `fileId` prend par défaut le hash de `fileName`, et `versionId` prend par défaut le hash du contenu lorsqu’ils sont omis. * Le `content` de chaque traduction est encodé en base64 puis décodé côté serveur ; toute chaîne base64 invalide ou tout fichier trop volumineux est rejeté. * Les traductions héritent de `fileId`, `versionId`, `branchId` et `fileName` de leur source. Définissez `transformFormat` pour enregistrer la traduction dans un format de fichier de sortie différent. * Les traductions uploadées sont marquées comme terminées. Si l’approbation automatique est activée pour le projet, elles sont également marquées comme approuvées. Les traductions `GTJSON` reçoivent des métadonnées de révision par composant dérivées de l’objet source. * La liste des paramètres régionaux de chaque fichier source est mise à jour pour inclure ceux des traductions uploadées. Les fichiers sont publiés sur le CDN lorsque celui-ci est activé pour le projet. * Si `sourceLocale` est envoyé et diffère du paramètre régional par défaut actuel du projet, le paramètre régional par défaut du projet est mis à jour. ## Requête [#request] ### En-têtes | En-tête | Description | Obligatoire | | ----------------- | ------------------------------------------------------------------------- | ----------- | | `x-gt-api-key` | Clé API du projet ou de l’Organization. | Oui | | `x-gt-project-id` | ID du projet. Obligatoire lors de l’utilisation d’une clé d’Organization. | Non | ### Corps **Type de contenu** `application/json` | Champ | Description | Type | Facultatif | Par défaut | | --------------- | -------------------------------------------------- | ---------- | ---------- | --------------------------------------- | | [`data`](#data) | Tableau d’entrées de source/traduction (1–100). | `object[]` | Non | — | | `sourceLocale` | Paramètre régional source des fichiers téléversés. | `string` | Oui | Paramètre régional par défaut du projet | #### `data` [#data] **Type** `object[]` · **Obligatoire** Chaque élément est de la forme `{ "source": { ... }, "translations": [ ... ] }`. L’objet `source` identifie le fichier source précédemment téléversé : | Champ | Description | Type | Facultatif | Par défaut | | ---------------- | -------------------------------------------------------------------------- | -------- | ---------- | --------------------- | | `content` | Contenu source encodé en Base64. La taille maximale de fichier s’applique. | `string` | Non | — | | `fileName` | Nom du fichier ; ne peut pas être vide. | `string` | Non | — | | `fileFormat` | Identifiant du format de fichier (par exemple, `JSON`, `MDX`). | `string` | Non | — | | `locale` | Paramètre régional du contenu source ; ne peut pas être vide. | `string` | Non | — | | `dataFormat` | Format de données pour le contenu structuré. | `string` | Oui | — | | `fileId` | Identifiant stable du fichier. | `string` | Oui | Hachage de `fileName` | | `versionId` | Identifiant de version de ce contenu. | `string` | Oui | Hachage du contenu | | `branchId` | Branche à laquelle le fichier source est rattaché. | `string` | Oui | Branche par défaut | | `formatMetadata` | Métadonnées supplémentaires propres au format. | `object` | Oui | — | Chaque élément de `translations` correspond à un fichier traduit. Au moins une traduction est requise pour chaque entrée : | Champ | Description | Type | Facultatif | Par défaut | | ----------------- | --------------------------------------------------------------------------- | -------- | ---------- | ------------------------ | | `content` | Contenu traduit encodé en Base64. La taille maximale de fichier s’applique. | `string` | Non | — | | `fileName` | Nom du fichier ; ne peut pas être vide. | `string` | Non | — | | `fileFormat` | Identifiant du format de fichier. | `string` | Non | — | | `locale` | Paramètre régional cible de la traduction ; ne peut pas être vide. | `string` | Non | — | | `dataFormat` | Format de données pour le contenu structuré. | `string` | Oui | — | | `transformFormat` | Format de fichier de sortie sous lequel stocker la traduction. | `string` | Oui | Format du fichier source | ## Réponse [#response] **État** `201 Created` ```json title="Response" { "uploadedFiles": [ { "branchId": "br_...", "fileId": "file_...", "versionId": "ver_...", "fileName": "en/common.json", "locale": "es", "fileFormat": "JSON", "dataFormat": "JSON" } ], "count": 1, "message": "Successfully uploaded 1 translation file(s)" } ``` ## Erreurs [#errors] | État | Cause | | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | `400` | Corps de requête invalide, paramètre régional/format invalide, échec du décodage, fichier trop volumineux ou fichier source référencé introuvable. | | `401` | Clé API manquante ou invalide. | | `403` | La clé API ne dispose pas de `project:files:write`. | | `429` | Limite de requêtes dépassée. | | `503` | Serveur occupé ; réessayez avec une temporisation exponentielle. | ## Exemple [#example] ```bash curl -X POST https://api2.gtx.dev/v2/project/files/upload-translations \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d '{ "sourceLocale": "en", "data": [ { "source": { "content": "eyJoZWxsbyI6ICJIZWxsbyJ9", "fileName": "en/common.json", "fileFormat": "JSON", "locale": "en" }, "translations": [ { "content": "eyJoZWxsbyI6ICJIb2xhIn0=", "fileName": "en/common.json", "fileFormat": "JSON", "locale": "es" } ] } ] }' ```