# gt: General Translation CLI tool: gt upload
URL: https://generaltranslation.com/fr/docs/cli/reference/commands/upload.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Importer les fichiers source et les traductions vers la plateforme General Translation. Référence de l’API pour la commande gt upload.

Importe les fichiers source de votre projet ainsi que toutes les traductions existantes vers la plateforme General Translation, en synchronisant les fichiers locaux pour permettre leur gestion, leur mise en file d’attente et leur suivi. Associez-la à [`gt enqueue`](/docs/cli/reference/commands/enqueue) et [`gt download`](/docs/cli/reference/commands/download) pour répartir la traduction sur plusieurs étapes de CI. Consultez [Gérer les traductions](/docs/cli/guides/managing-translations#split).

*Remarque : à utiliser uniquement en production. Nécessite un `GT_API_KEY` et un `GT_PROJECT_ID` de production.*

```bash
npx gt upload
```

## Comment ça marche [#how-it-works]

1. Lit `gt.config.json` pour déterminer quels fichiers importer.
2. Collecte tous les fichiers source traduisibles.
3. Calcule le hachage de chaque fichier pour générer un `fileId` (à partir de son chemin) et un `versionId` (à partir de son contenu).
4. Interroge l’API pour déterminer quels fichiers sont nouveaux ou modifiés.
5. Détecte les déplacements de fichiers — même contenu, chemin différent — et conserve les traductions existantes.
6. Importe les nouveaux fichiers source et ceux qui ont été modifiés, ainsi que tous les fichiers de traduction locaux.
7. Applique les règles de publication et de dépublication configurées pour le CDN. `--publish` définit la publication comme valeur par défaut globale, tandis que les règles explicites `publish: false` par fichier continuent d’exclure ces fichiers.

## Options [#flags]

`upload` enregistre les [options de traduction](/docs/cli/reference/commands/translate#flags) partagées, mais n’utilise que celles pertinentes pour recenser, importer et publier des fichiers. Les principales options sont indiquées ci-dessous.

| Paramètre                   | Description                                                                                                       | Type       | Facultatif | Par défaut       |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------- | ---------- | ---------- | ---------------- |
| `--api-key <key>`           | Clé d’API de production.                                                                                          | `string`   | Oui        | `GT_API_KEY`     |
| `--project-id <id>`         | ID du projet.                                                                                                     | `string`   | Oui        | `GT_PROJECT_ID`  |
| `-c, --config <path>`       | Chemin vers le fichier de configuration.                                                                          | `string`   | Oui        | `gt.config.json` |
| `--locales <locales...>`    | Paramètres régionaux cibles supplémentaires, ajoutés aux `locales` de la configuration.                           | `string[]` | Oui        | —                |
| `--default-locale <locale>` | Paramètre régional source du projet.                                                                              | `string`   | Oui        | `en`             |
| `--publish`                 | Active la publication par défaut à l’échelle globale ; les exclusions explicites par fichier restent applicables. | `boolean`  | Oui        | `false`          |

<Callout type="warn">
  Dans `gt` 2.20.1, `upload` accepte `--dry-run` mais importe tout de même les fichiers. Son option partagée `--timeout` contrôle l’attente de la traduction et n’a aucun effet sur cette commande. Pour inspecter les fichiers recensés sans les importer, utilisez [`gt stage --dry-run`](/docs/cli/reference/commands/stage).
</Callout>

## Exemple [#example]

```bash
# Étape 1 : importer des fichiers source (cette commande)
npx gt upload

# Étape 2 : mettre en attente les traductions
npx gt enqueue

# Étape 3 : télécharger quand prêt
npx gt download
```

## Autres remarques [#notes]

* `upload` collecte les fichiers source traduisibles de chaque type configuré (JSON, YAML, Markdown, MDX, etc.), ainsi que tous les fichiers de traduction locaux.
* Les traductions existantes dont le contenu correspond toujours à `gt-lock.json` sont ignorées. Les autres traductions locales sont téléversées et peuvent remplacer les traductions stockées ; en l’absence de fichier de verrouillage, toutes les traductions locales sont téléversées.
* Comme il calcule un hachage pour chaque fichier à partir de son chemin et de son contenu, les fichiers déplacés (même contenu, nouveau chemin) conservent leurs traductions existantes au lieu d’être retraduits.
* Activez le CDN dans les paramètres de votre projet avant la publication. Si la publication échoue, le téléversement reste réussi et la CLI émet un avertissement.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
