# gt: General Translation CLI tool: Translate URL: https://generaltranslation.com/fr/docs/cli/translate.mdx --- title: Translate description: Comment traduire votre projet --- ## Utilisation ```bash npx gt translate ``` **Important :** Exécutez cette commande dans votre pipeline CI **avant** de générer la version de production de votre application. ## Vue d’ensemble La commande `gt translate` traduit votre projet en lisant votre fichier `gt.config.json` afin de déterminer quels fichiers doivent être traduits. Si vous utilisez [`gt-next`](/docs/next), [`gt-react`](/docs/react), ou [`gt-react-native`](/docs/react-native), elle analysera également le code source de votre projet à la recherche de contenu en ligne (comme les composants `` et les hooks `useGT`) et générera les fichiers de traduction nécessaires. De plus, elle inclut le contenu du fichier de dictionnaire, si ce dernier est fourni. Cette commande constitue le principal moyen d’utiliser l’API de General Translation et les services associés. **Pour un usage en production uniquement :** Cette commande est destinée aux builds de production et **ne doit pas être utilisée en développement**. Avant de l’exécuter, assurez-vous d’être sur la branche qui sera utilisée en production. Définissez votre clé API de production (`GT_API_KEY`) et l’ID de votre projet (`GT_PROJECT_ID`) comme variables d’environnement. **Remarque :** Une clé API de production est requise. Obtenez-en une gratuitement sur [generaltranslation.com](https://generaltranslation.com/dashboard), ou exécutez l’[assistant de configuration](/docs/cli/init) pour en générer une. ### Traduire votre projet [#translate] ```bash npx gt translate ``` La commande `translate` lit votre `gt.config.json` pour déterminer quels fichiers traduire, recherche dans le code source de votre projet le contenu traduisible et génère les fichiers de traduction nécessaires. Les traductions sont automatiquement enregistrées dans votre base de code. Consultez la [documentation de configuration](/docs/cli/reference/config#files) pour plus de détails. {/* Ces liens pointent volontairement vers notre propre documentation SDK : nous voulons montrer comment notre CLI gère ces bibliothèques, et non renvoyer vers les sites des bibliothèques externes */} **Détection automatique :** Si vous utilisez [`next-intl`](/docs/next), [`react-i18next`](/docs/react), ou [`next-i18next`](/docs/react-native), l'outil CLI détectera automatiquement votre bibliothèque d’i18n en lisant votre fichier `package.json`, et traduira vos fichiers JSON en respectant la syntaxe de votre bibliothèque d’i18n. ### Valider sans traduire [#validate] ```bash npx gt translate --dry-run ``` Si vous utilisez [`gt-next`](/docs/next), [`gt-react`](/docs/react), ou [`gt-react-native`](/docs/react-native), vous pouvez utiliser ceci pour valider les composants `` et le fichier de dictionnaire de votre projet sans générer de traductions. *** ## Indicateurs | Paramètre | Description | Type | Par défaut | | ------------------------------- | ------------------------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- | | `--api-key` | Spécifier une clé API de production | `string` | | | `--project-id` | Spécifier l’ID du projet | `string` | | | `--version-id` | Spécifier un ID de version (par défaut, un hachage du contenu) | `string` | | | `--config ` | Spécifier le chemin vers le fichier de configuration GT | `string` | `"gt.config.json"` | | `--tsconfig, --jsconfig ` | Spécifier le chemin vers le fichier de configuration TS ou JS | `string` | | | `--src ` | Motifs glob séparés par des espaces pour les fichiers source (relatifs à la racine) | `[string]` | `['src/**/*.{js,jsx,ts,tsx}', 'app/**/*.{js,jsx,ts,tsx}', 'pages/**/*.{js,jsx,ts,tsx}', 'components/**/*.{js,jsx,ts,tsx}']` | | `--dictionary ` | Spécifier le chemin vers le fichier de dictionnaire | `string` | | | `--inline` | Inclure les balises `` en ligne en plus du dictionnaire | `boolean` | `true` | | `--timeout` | Délai d’expiration de la requête de traduction, en secondes | `number` | `900` | | `--new, --locales ` | Paramètres régionaux cibles de traduction (ajoutés aux `locales` de `gt.config.json`) | `[string]` | | | `--default-locale ` | Le paramètre régional source du projet | `string` | `en` | | `--ignore-errors` | Ignorer les erreurs et forcer la traduction du contenu valide | `flag` | `false` | | `--dry-run` | Valider sans traduire | `flag` | `false` | | `--force` | Forcer une nouvelle traduction de tout le contenu | `flag` | `false` | | `--force-download` | Forcer le téléchargement de toutes les traductions | `flag` | `false` | | `--save-local` | Détecter et enregistrer les modifications locales avant de mettre les traductions en file d’attente | `flag` | `false` | | `--enable-branching` | Activer la gestion des branches pour le projet | `flag` | `false` | | `--branch ` | Spécifier un nom de branche personnalisé pour les traductions | `string` | | | `--disable-branch-detection` | Désactiver la détection automatique des branches | `flag` | `false` | | `--tag [value]` | Taguer cette exécution de traduction (résolution automatique depuis git si aucune valeur n’est fournie) | `string` | | | `-m, --message ` | Message à joindre au tag de traduction | `string` | | | `--publish` | Publier les traductions sur le CDN après la traduction | `flag` | `false` | | `--remote-name ` | Spécifier un nom distant personnalisé pour la détection de branche | `string` | `"origin"` | **Sécurité :** N’ajoutez pas votre clé API au fichier `gt.config.json` ! Définissez-la plutôt comme variable d’environnement. La CLI lit automatiquement `GT_API_KEY` si elle est définie. ### Indicateurs clés | Indicateur | Description | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `--dry-run` | Analyser et valider votre projet sans communiquer avec l’API GT. Utile pour valider votre base de code. | | `--force` | Retraduire tout le contenu en écrasant les traductions existantes. Toutes les modifications locales seront perdues. Les nouvelles traductions vous seront facturées. | | `--force-download` | Télécharger à nouveau toutes les traductions en écrasant les modifications locales. Ne retraduit pas. | | `--save-local` | Détecter et enregistrer les modifications locales dans les fichiers de traduction avant la mise en file d’attente. Voir [`save-local`](/docs/cli/save-local). | | `--enable-branching` | Suivre les traductions séparément pour différentes branches Git. Voir [gestion des branches](/docs/cli/branching). | | `--tag` | Taguer une exécution de traduction avec un identifiant lisible pour le suivi des versions. Voir [étiquetage](#tagging). | | `-m, --message` | Ajouter un message descriptif à un tag de traduction. Voir [étiquetage](#tagging). | | `--publish` | Publier les traductions sur le CDN pour le chargement à l’exécution. Voir [publication sur le CDN](#publishing-to-the-cdn). | ### Fichier de configuration Lors de la première exécution de la CLI, celle-ci essaie de créer un fichier `gt.config.json` à la racine de votre projet. Pour en savoir plus sur la configuration, consultez [cette page](/docs/cli/reference/config). ## Conseils importants ### Sources du contenu La commande `translate` recherche récursivement le contenu traduisible dans votre projet. Par défaut, elle recherche dans les répertoires suivants : * `./src` * `./app` * `./pages` * `./components` Vous pouvez préciser d'autres répertoires avec l'indicateur `--src` ou en modifiant la propriété `src` dans votre fichier [`gt.config.json`](/docs/cli/reference/config). ### Écraser les traductions Par défaut, la CLI n’écrase pas les modifications locales apportées aux traductions, sauf si le contenu source a changé. Pour retraduire du contenu déjà traduit, utilisez `--force`. **Attention :** `--force` **écrasera toutes les traductions existantes et en générera de nouvelles**. Toutes les modifications locales seront perdues. Les nouvelles traductions vous seront facturées. Pour retélécharger les traductions sans les retraduire, utilisez `--force-download`. **Attention :** `--force-download` écrasera les modifications locales apportées aux traductions et récupérera les traductions les plus récentes. Il ne retraduira aucun contenu. ### Étiquetage [#tagging] Utilisez les indicateurs `--tag` et `-m` pour associer aux exécutions de traduction des identifiants explicites, afin de faciliter le suivi et l’identification des versions dans le tableau de bord. #### Taguer avec un identifiant personnalisé ```bash npx gt translate --tag v2.1.0 ``` #### Taguer avec un identifiant et un message personnalisés ```bash npx gt translate --tag v2.1.0 -m "Added checkout page translations" ``` #### Tag automatique depuis Git Passez `--tag` sans valeur pour utiliser automatiquement le hachage du commit Git actuel comme id du tag et le message du commit comme message du tag : ```bash npx gt translate --tag ``` Vous pouvez remplacer le message de validation par un message personnalisé : ```bash npx gt translate --tag -m "Release 2.1 translations" ``` #### Étiquetage des seuls messages Si vous passez `-m` sans `--tag`, un tag est généré automatiquement à partir du hachage du commit Git courant (ou d’un identifiant aléatoire si vous n’êtes pas dans un dépôt Git) : ```bash npx gt translate -m "Weekly translation update" ``` L’étiquetage n’est pas bloquant — si la création du tag échoue, le processus de traduction se poursuit normalement. ### Publication sur le CDN [#publishing-to-the-cdn] Par défaut, `gt translate` enregistre les fichiers de traduction localement dans votre base de code. Utilisez l’indicateur `--publish` pour publier aussi les traductions sur le CDN de General Translation, ce qui permet de les charger à l’exécution sans intégrer les fichiers à votre application. ```bash npx gt translate --publish ``` Ceci est utile pour les projets `gt-next` qui chargent les traductions depuis le CDN à l’exécution plutôt que depuis des fichiers locaux. **Le CDN doit être activé :** Avant d’utiliser `--publish`, activez le CDN dans les paramètres de votre projet sur [generaltranslation.com/dashboard](https://generaltranslation.com/dashboard). Si le CDN n’est pas activé, la commande traduira correctement, mais la publication échouera avec un avertissement. Vous pouvez combiner `--publish` avec la génération de fichiers locaux — les traductions seront enregistrées localement *et* publiées sur le CDN : ```bash npx gt translate --publish ``` ### Fichier de dictionnaire La commande `translate` détecte automatiquement le fichier de dictionnaire de votre projet. Par défaut, elle recherche un fichier nommé `dictionary.[json|ts|js]` dans : * `./src` * `./` Vous pouvez indiquer un autre fichier de dictionnaire à l’aide de l’indicateur `--dictionary` ou en modifiant la propriété `dictionary` dans votre fichier [`gt.config.json`](/docs/cli/reference/config).