# General Translation Platform: Soumettre les diffs de fichiers URL: https://generaltranslation.com/fr/docs/platform/openapi/reference/files/submit-diffs.mdx --- title: Soumettre les diffs de fichiers description: Soumettez les diffs du contenu source modifié ou du contenu traduit à un projet General Translation au lieu de téléverser des fichiers complets. Référence de l’API pour la soumission des diffs de fichiers. method: POST --- Écrase les traductions stockées avec le contenu modifié en local pour les fichiers qui ont changé. Envoyez une entrée par fichier et paramètre régional modifiés, afin de synchroniser les modifications locales sans retéléverser chaque fichier. ## Vue d’ensemble [#overview] ```http POST https://api2.gtx.dev/v2/project/files/diffs ``` **Permission** `project:files:write` · **Limite de débit** Moyenne (120/min) Renvoyez vers un Projet les modifications apportées aux traductions locales. Pour remplacer des fichiers entiers à la place, utilisez [Importer des traductions](/docs/platform/openapi/reference/files/upload-translations). ## Fonctionnement [#how-it-works] * Les entrées sont regroupées par `branchId`, `fileId`, `versionId` et `locale`. Seule la première entrée de chaque groupe est appliquée ; les groupes en double dans une même requête sont donc éliminés. * Les entrées dont `localContent` est vide sont ignorées. * Pour chaque groupe restant, la traduction enregistrée est remplacée par `localContent`. En l'absence de `branchId`, la branche par défaut est utilisée. * La réponse indique combien de traductions ont été traitées et combien d'entrées ont été reçues. ## Requête [#request] ### En-têtes | En-tête | Description | Obligatoire | | ----------------- | ------------------------------------------------------------------------- | ----------- | | `x-gt-api-key` | Clé API du projet ou de l’organisation. | Oui | | `x-gt-project-id` | ID du projet. Obligatoire lors de l’utilisation d’une clé d’organisation. | Non | ### Corps **Type de contenu** `application/json` | Champ | Description | Type | Facultatif | Par défaut | | ----------------- | -------------------------------------------------- | ---------- | ---------- | ---------- | | [`diffs`](#diffs) | Tableau d’entrées de diff ; ne doit pas être vide. | `object[]` | Non | — | #### `diffs` [#diffs] **Type** `object[]` · **Obligatoire** Chaque élément décrit un fichier modifié et un paramètre régional : | Champ | Description | Type | Facultatif | Par défaut | | -------------- | ------------------------------------------------------------------- | -------- | ---------- | ------------------ | | `localContent` | Le contenu local complet (modifié) à stocker pour cette traduction. | `string` | Non | — | | `locale` | Paramètre régional du contenu modifié ; ne peut pas être vide. | `string` | Non | — | | `fileId` | Identifiant stable du fichier. | `string` | Non | — | | `versionId` | Identifiant de version pour ce contenu. | `string` | Non | — | | `diff` | Diff du contenu modifié. | `string` | Non | — | | `branchId` | Branche à laquelle le fichier est rattaché. | `string` | Oui | Branche par défaut | ## Réponse [#response] **État** `200 OK` ```json title="Response" { "filesProcessed": 1, "entriesReceived": 1, "message": "Processed 1 translation(s)" } ``` ## Erreurs [#errors] | État | Cause | | ----- | ------------------------------------------------------------------ | | `400` | Corps de la requête invalide, ou le tableau `diffs` est vide. | | `401` | Clé API manquante ou invalide. | | `403` | La clé API ne dispose pas de l’autorisation `project:files:write`. | | `429` | Limite de débit dépassée. | ## Exemple [#example] ```bash curl -X POST https://api2.gtx.dev/v2/project/files/diffs \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d '{ "diffs": [ { "fileId": "file_...", "versionId": "ver_...", "locale": "es", "diff": "@@ -1 +1 @@\n-Hola\n+Hola, mundo", "localContent": "{\"hello\": \"Hola, mundo\"}" } ] }' ```