Skip to main content

i18n Skills

Commandes IA pour l'audit et l'encapsulation des chaînes i18n

Le problème

Votre base de code compte 500 chaînes codées en dur, dispersées entre composants, modèles et vues. L'encapsulation manuelle prend des jours de fastidieux rechercher-remplacer. Même après cette encapsulation, vous continuez à laisser passer des phrases découpées qui se cassent en allemand, une logique de pluriel qui échoue en arabe, et des clés orphelines qui alourdissent vos fichiers de locales.

L'encapsulation i18n manuelle est source d'erreurs : les développeurs laissent passer des phrases découpées, cassent les pluriels avec des opérateurs ternaires, et oublient des chaînes codées en dur dans les cas limites. Ces bugs ne se révèlent qu'après la traduction, quand leur correction coûte 10 fois plus cher.

La solution

Deux commandes slash IA qui prennent en charge l'ensemble du flux de travail i18n. Exécutez /i18n-review pour auditer votre code en lecture seule, puis exécutez /i18n-wrap pour tout corriger automatiquement. Les deux commandes détectent votre framework, comprennent le format de vos fichiers de locales et valident les modifications avant le commit.

/i18n-review

Audit en lecture seule qui détecte les phrases découpées, les pluriels cassés, les chaînes non encapsulées et les clés inutilisées. Ne modifie jamais votre code.

/i18n-wrap

Encapsule automatiquement les chaînes codées en dur avec la bonne fonction de traduction, génère des clés sémantiques, met à jour les fichiers de locales et valide le build.

Commande /i18n-review

La commande review effectue un audit en lecture seule de votre base de code. Elle analyse chaque fichier à la recherche de problèmes i18n et produit un rapport priorisé avec les emplacements exacts des fichiers et des suggestions de correction. Votre code n'est jamais modifié.

Terminal
/i18n-review src/
/i18n-review src/ --framework=next-intl

Ce qu'elle vérifie

  • Phrases découpées : appels t() concaténés qui cassent l'ordre des mots dans d'autres langues
  • Sur-encapsulation : chaînes techniques, classes CSS, URL et valeurs d'énumération encapsulées à tort avec t()
  • Sous-encapsulation : chaînes d'interface visibles, comme les libellés de boutons, les titres et les messages d'erreur, laissées codées en dur
  • Problèmes de pluriel : opérateurs ternaires ou vérifications === 1 au lieu de la syntaxe de pluriel ICU appropriée
  • Clés inutilisées : clés de traduction définies dans les fichiers de locales mais jamais référencées dans le code
  • Valeurs de format codées en dur : dates, devises et nombres n'utilisant pas les formateurs Intl
La commande review est entièrement en lecture seule. Exécutez-la aussi souvent que vous le souhaitez pendant le développement ou dans vos pipelines CI/CD, sans risque de modification involontaire.

Commande /i18n-wrap

La commande wrap encapsule automatiquement les chaînes codées en dur avec la fonction de traduction adaptée à votre framework. Elle détecte votre bibliothèque i18n, génère des clés sémantiques regroupées par composant ou fonctionnalité, met à jour vos fichiers de locales et vérifie que le build passe toujours.

Terminal
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18next

Ce qu'elle fait

  • Détection du framework : identifie votre bibliothèque i18n et sa fonction de traduction (t, $t, $_, gettext, etc.)
  • Génération de clés sémantiques : crée des clés explicites comme nav.signIn et errors.notFound au lieu d'étiquettes génériques
  • Mise à jour des fichiers de langue : ajoute les nouvelles clés à votre fichier de langue source dans le format correct (JSON, YAML, PO, etc.)
  • Validation du build : exécute vos commandes de build, de lint et de test après l'encapsulation pour détecter toute régression
La commande wrap valide chaque modification en exécutant votre build et votre suite de tests. En cas d'échec, elle annule automatiquement les changements.

Frameworks pris en charge

Les deux commandes détectent automatiquement votre framework à partir des dépendances de votre projet. Vous pouvez aussi le spécifier explicitement avec l'option --framework. Voici les 10 frameworks pris en charge, avec leurs fonctions de traduction et leurs formats de pluriel.

FrameworkFonction de traductionFormat de pluriel
react-i18nextt()key_one / key_other
next-intlt()ICU {count, plural, ...}
vue-i18n$t()Pipe syntax | singular | plural
angular i18n$localizeICU {count, plural, ...}
svelte-i18n$_()ICU {count, plural, ...}
flutter intlS.of(context)Intl.plural()
djangogettext / _()ngettext()
rails i18nt()count key
laravel__() / @langtrans_choice()
swiftNSLocalizedString.stringsdict

Installation

Copiez les fichiers de commande dans votre répertoire .claude/commands/. C'est tout : aucune dépendance, aucune configuration. Les commandes sont de simples fichiers Markdown que n'importe quel assistant de codage IA peut exécuter.

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
Il s'agit de fichiers de commande slash standard. Ils fonctionnent directement dans Claude Code et peuvent être adaptés à d'autres assistants de codage IA prenant en charge les commandes personnalisées.

Exemples d'utilisation

Projet React

Passez en revue une application React utilisant react-i18next, puis encapsulez toutes les chaînes codées en dur. Les commandes détectent react-i18next à partir de votre package.json et utilisent la fonction t() correcte ainsi que le format de pluriel key_one/key_other.

React Project
# Review a React project for i18n issues
/i18n-review src/ --framework=react-i18next

# Wrap all hardcoded strings automatically
/i18n-wrap src/components/ --framework=react-i18next

# Result: t() calls inserted, keys added to en/translation.json

Projet Django

Auditez les modèles et vues Django à la recherche de problèmes d'i18n, puis encapsulez les chaînes avec gettext. Les commandes détectent Django à partir de votre settings.py et utilisent _() pour les chaînes simples et ngettext() pour les pluriels.

Django Project
# Review Django templates and views
/i18n-review myapp/ --framework=django

# Wrap hardcoded strings with gettext
/i18n-wrap myapp/templates/ --framework=django

# Result: _() calls inserted, .po file updated

Essayez i18n Agent maintenant

Déposez votre fichier de traduction ici

JSON, YAML, PO, XML, CSV, Markdown, Properties

ou cliquez pour parcourir

Langues cibles

Aucune inscription requiseEstimation instantanée

Questions fréquentes