# General Translation Knowledge Base: General Translation ou i18n-tasks : lequel choisir ?
URL: https://generaltranslation.com/fr/kb/general-translation-vs-i18n-tasks.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: i18n-tasks est une gem Ruby qui détecte les clés Rails I18n manquantes ou inutilisées, fait le ménage dans les fichiers de paramètres régionaux et peut compléter les clés manquantes via Google Translate, DeepL, OpenAI, Yandex ou watsonx. General Translation traduit des fichiers de paramètres régionaux entiers en s’appuyant sur votre glossaire, vos instructions personnalisées et la relecture dans le tableau de bord. Les deux outils remplissent des rôles différents, et de nombreuses équipes peuvent les utiliser ensemble.
Category: Outils de workflow
Last updated: 2026-10-16
Authors: Kevin Wu, Jackie Chen
Published: 2026-10-16

i18n-tasks est un outil en ligne de commande destiné aux applications Ruby qui utilisent la gem i18n, ce qui inclut toutes les applications Rails. Il analyse votre code à la recherche d’appels comme `t(".title")`, les compare à vos fichiers de paramètres régionaux et signale les clés manquantes ou inutilisées. Sa commande `translate-missing` comble les manques à l’aide d’un service de traduction automatique, pour lequel vous fournissez votre propre clé d’API. L’outil vérifie donc vos traductions et peut traduire automatiquement une clé manquante, mais il ne les tient pas à jour lorsque le texte anglais évolue. General Translation, lui, se charge de la traduction : sa CLI génère chaque fichier de paramètres régionaux à partir de votre source anglaise, en tenant compte de votre glossaire et de vos instructions personnalisées. Les deux outils sont donc plus complémentaires que concurrents.

## Les points forts d&#39;i18n-tasks

* **Détecte les clés manquantes et inutilisées à partir du code.** [Un analyseur AST lit les fichiers `.rb` et `.html.erb`](https://github.com/glebm/i18n-tasks#features--limitations) (et un analyseur par expressions régulières prend en charge des formats comme HAML), résout les clés relatives comme `t(".title")`, puis signale les clés utilisées dans le code mais absentes d&#39;un paramètre régional, ou présentes mais jamais utilisées.
* **Vérifications tenant compte du pluriel.** Avec les règles de pluriel de rails-i18n, [`missing` signale les paramètres régionaux auxquels il manque une forme CLDR](https://github.com/glebm/i18n-tasks/blob/main/CHANGES.md), comme `few` et `many` en polonais.
* **Adapté à la CI.** `missing`, `unused` et les autres vérifications renvoient le code de sortie 1 lorsqu&#39;elles détectent des problèmes, et la gem fournit des [modèles RSpec et Minitest](https://github.com/glebm/i18n-tasks/tree/main/templates) qui font échouer votre suite de tests en cas de clés manquantes ou inutilisées.
* **Entretien des fichiers.** [`normalize` trie les clés](https://github.com/glebm/i18n-tasks#normalize) (et, avec `-p`, les déplace vers les fichiers définis dans votre configuration), `mv` et `rm` renomment ou suppriment des clés dans tous les paramètres régionaux, `find` indique où une clé est utilisée, et `check-consistent-interpolations` repère un `%{count}` renommé ou supprimé lors de la traduction.
* **Cinq backends de traduction.** [`translate-missing` fonctionne avec Google Translate, DeepL, Yandex, OpenAI et IBM watsonx](https://github.com/glebm/i18n-tasks#translation-backends). Vous pouvez [définir les identifiants de glossaire et les options DeepL](https://github.com/glebm/i18n-tasks/blob/main/templates/config/i18n-tasks.yml), ou bien le modèle OpenAI (`gpt-4o-mini` par défaut), le prompt système et un prompt par paramètre régional. Les espaces réservés `%{...}` sont remplacés par des jetons avant l&#39;envoi, puis rétablis au retour.
* **Gratuit.** Il est [sous licence MIT (version 1.1.2)](https://rubygems.org/gems/i18n-tasks) ; vous payez directement chaque fournisseur de traduction, généralement au caractère ou au jeton.

## Ce que i18n-tasks vous laisse à faire

Voici ce que donnent `missing` et `unused` sur une petite application Rails dotée de fichiers en anglais, en polonais et en espagnol, et dont la vue de la boîte de réception appelle une clé que personne n&#39;a définie :

```text title="bundle exec i18n-tasks missing (excerpt)"
| Locale | Key                 | Value in other locales or source  |
|  all   | inbox.show.empty    | app/views/inbox/show.html.erb:3   |
|   es   | inbox.show.title    | en Inbox                          |
|   es   | inbox.show.unread   | en {"one" => "You have %{count} unread message.", ...} |
|   pl   | flash.saved         | en Saved.                         |
|   pl   | inbox.show.unread   | few, many                         |
```

```text title="bundle exec i18n-tasks unused"
| Locale | Key                 | Value    |
|   en   | inbox.show.archived | Archived |
```

Ce rapport est exact et utile. Combler les lacunes, en revanche, reste à votre charge :

* **Le backend Google n&#39;envoie que des valeurs de chaînes de caractères.** Lors d&#39;une exécution où l&#39;appel réseau de ce backend était simulé, `translate-missing es` a envoyé les valeurs ci-dessous, espaces réservés masqués, sans les clés, le fichier ni la vue.

  ```text
  ["Inbox", "You have X__0 unread message.", "You have X__0 unread messages.", "Archived"]
  ```

* **Les formes du pluriel reprennent la structure de l&#39;anglais.** Pour une clé polonaise totalement absente, il a écrit `one` et `other`, et l&#39;exécution suivante de `missing` a signalé `few, many`.

* **Les textes anglais modifiés ne sont pas retraduits.** [`translate-missing` remplit les clés qui n&#39;existent pas dans un paramètre régional](https://github.com/glebm/i18n-tasks#translate-missing-keys). Lorsque vous modifiez une chaîne de caractères en anglais, les traductions existantes restent inchangées.

* **Une requête Google en échec peut tout de même écrire des fichiers.** Sans clé API Google définie, `translate-missing --backend=google pl` a signalé l&#39;échec du lot, indiqué que deux clés avaient été traduites, copié les valeurs anglaises dans `pl.yml`, puis s&#39;est terminé avec le code 0. Ces clés ont ensuite disparu de `missing` ; seul `eq-base` (traductions identiques à la source) les faisait apparaître.

## La place de General Translation

General Translation se charge de générer les traductions, tandis qu&#39;i18n-tasks vérifie les catalogues Rails. Pointez la CLI `gt` vers votre fichier anglais et lancez [`npx gt translate`](/docs/cli/reference/commands/translate) dans votre CI. La commande génère les fichiers de chaque locale cible ; lors des exécutions suivantes, elle réutilise les traductions des entrées inchangées et retraduit celles dont le texte anglais a été modifié. Chaque exécution s&#39;appuie sur le [glossaire et les instructions personnalisées](/docs/platform/dashboard/guides/defining-context-for-translations) de votre projet, ce qui garantit une terminologie et un ton cohérents dans tous les fichiers. Votre équipe peut en outre [relire et modifier les traductions](/docs/platform/dashboard/guides/reviewing-translations) dans le tableau de bord.

Conservez i18n-tasks pour l&#39;analyse du code source Ruby et la validation des catalogues. Utilisez la CLI Node.js de General Translation pour générer les traductions, puis convertissez le YAML obtenu au format Rails, dont la racine correspond au paramètre régional, comme indiqué dans [General Translation vs. Rails I18n](/kb/general-translation-vs-rails-i18n). Ce workflow convient aux catalogues dont les structures de clés source et cible sont identiques.

## i18n-tasks et General Translation en un coup d’œil

| Fonctionnalité          | i18n-tasks                                                                                         | General Translation                                                                                                |
| ----------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Rôle                    | Analyse le code Ruby et vérifie les clés manquantes ou inutilisées du catalogue                    | Génère les traductions et les tient à jour à mesure que le texte source évolue                                     |
| Validation des pluriels | Vérifie les catégories requises pour chaque paramètre régional                                     | Combinez la génération avec les vérifications d’i18n-tasks                                                         |
| Traduction automatique  | `translate-missing`, via le fournisseur de votre choix                                             | [`npx gt translate`](/docs/cli/reference/commands/translate)                                                       |
| Contexte de traduction  | Dépend du backend : DeepL accepte des identifiants de glossaire et OpenAI accepte des instructions | Le contenu et les métadonnées de votre fichier, ainsi que le glossaire et les instructions personnalisées associés |
| Quand l’anglais change  | Les traductions existantes restent inchangées                                                      | Les entrées modifiées sont retraduites                                                                             |
| Relecture               | diff Git                                                                                           | Tableau de bord et diff Git                                                                                        |
| Coût                    | Gem gratuite ; le fournisseur facture au caractère ou au jeton                                     | [Traduction facturée à l’usage](https://generaltranslation.com/pricing)                                            |

Choisissez i18n-tasks seul si des traducteurs rédigent vos fichiers de paramètres régionaux et que vous avez besoin que la CI détecte les clés manquantes et inutilisées, ou si vous souhaitez simplement obtenir une ébauche automatique rapide pour quelques chaînes. Optez pour General Translation si vous voulez que les traductions suivent l’évolution du texte anglais, avec une terminologie cohérente et une relecture dans le tableau de bord. Conservez i18n-tasks pour l’analyse du code source Rails et les vérifications du catalogue.

## Utiliser les deux en CI

Reprenez la configuration initiale du catalogue anglais-espagnol présentée dans l&#39;[intégration Rails](/kb/general-translation-vs-rails-i18n). Lancez d&#39;abord la traduction et la correspondance personnalisée des paramètres régionaux, puis vérifiez avec i18n-tasks l&#39;exhaustivité des clés, les catégories de pluriel et les espaces réservés :

```bash
npx gt translate
ruby script/export_rails_locales.rb                     # exporte les catalogues pour Rails
bundle exec i18n-tasks missing                           # clés utilisées dans le code, y compris les formes du pluriel
bundle exec i18n-tasks unused
bundle exec i18n-tasks check-consistent-interpolations   # %{name} correspond à la source
```

Chaque commande `i18n-tasks` renvoie le code de sortie 1 en cas de problème : la tâche échoue donc avant qu’un fichier défectueux ne soit fusionné. La CLI nécessite un identifiant de projet et une clé API disposant des autorisations **Files &gt; Write** et **Translation queue &gt; Enabled**, définis respectivement dans `GT_PROJECT_ID` et `GT_API_KEY`. (Voir [Configurer la CLI](/docs/cli/guides/configuring#credentials).)

## Points clés

* i18n-tasks détecte les clés manquantes, les clés inutilisées et les clés de pluriel incomplètes dans les applications Rails.
* `translate-missing` complète les clés manquantes, mais laisse les traductions existantes inchangées lorsque vous modifiez la source anglaise.
* General Translation traduit des fichiers de paramètres régionaux entiers en s&#39;appuyant sur votre glossaire et vos instructions personnalisées, et les tient à jour au fil des modifications de l&#39;anglais ; exécutez-le avant les vérifications d&#39;i18n-tasks, dans la même tâche CI.

## Related questions

- [General Translation ou Rails I18n : avez-vous besoin des deux ?](https://generaltranslation.com/fr/kb/general-translation-vs-rails-i18n.mdx): Rails I18n recherche les messages et formate les dates et les nombres. General Translation produit les traductions, les tient à jour au fil de l’évolution de votre texte anglais et offre à votre équipe un tableau de bord pour la relecture. Utilisez les deux pour livrer des catalogues Rails traduits à chaque version.
- [General Translation ou Mobility : lequel choisir ?](https://generaltranslation.com/fr/kb/general-translation-vs-mobility.mdx): Mobility stocke les attributs traduits de vos modèles dans votre base de données. General Translation produit ces traductions via son API, en s’appuyant sur votre glossaire et vos instructions personnalisées. Utilisez les deux pour traduire vos fiches produits, articles et autres contenus de base de données sans renoncer à vos modèles Rails.
- [Alternatives à Google Translate : General Translation vs Google Translate](https://generaltranslation.com/fr/kb/general-translation-vs-google-translate.mdx): Google Translate permet de traduire rapidement un texte ponctuel, mais pour livrer un produit dans une autre langue, il faut aussi traduire chaque chaîne de caractères dans son contexte, garantir la cohérence des termes, gérer correctement les variables et les formes plurielles, prévoir une relecture et mettre en place un processus de livraison. General Translation comprend le contexte de chaque chaîne de caractères dans votre code et automatise l’ensemble du workflow de localisation, du code à la relecture, jusqu’à chaque livraison.
- [Pourquoi utiliser General Translation plutôt qu’un TMS (Smartling, Lokalise, Phrase, Crowdin ou Transifex) ?](https://generaltranslation.com/fr/kb/general-translation-vs-tms.mdx): Un système de gestion de la traduction (TMS) comme Smartling, Lokalise, Phrase, Crowdin ou Transifex coordonne les traducteurs, mais les ingénieurs doivent toujours extraire les chaînes, les envoyer, attendre les traductions, puis les réintégrer dans le produit. General Translation traduit le contenu directement dans votre code, avec son contexte, fournit toutes les langues à chaque livraison et repose sur des bibliothèques open source, sans dépendance à un fournisseur.
- [Quel est le meilleur logiciel de localisation pour les développeurs ?](https://generaltranslation.com/fr/kb/best-localization-software.mdx): Privilégiez un système unique qui couvre l’ensemble du pipeline, de la bibliothèque i18n dans votre code jusqu’à la traduction et la livraison, plutôt que d’assembler tant bien que mal une bibliothèque, un système de gestion de la traduction et un prestataire de traduction distincts.

## Previous and next questions

- Previous question: [General Translation ou GNU gettext : avez-vous besoin des deux ?](https://generaltranslation.com/fr/kb/general-translation-vs-gettext.mdx)
- Next question: [General Translation ou Intlayer : lequel choisir ?](https://generaltranslation.com/fr/kb/general-translation-vs-intlayer.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/fr/kb/sitemap.md) for every article.
