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.
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é.
/i18n-review src/
/i18n-review src/ --framework=next-intlCe 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
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.
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18nextCe 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
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.
| Framework | Fonction de traduction | Format de pluriel |
|---|---|---|
| react-i18next | t() | key_one / key_other |
| next-intl | t() | ICU {count, plural, ...} |
| vue-i18n | $t() | Pipe syntax | singular | plural |
| angular i18n | $localize | ICU {count, plural, ...} |
| svelte-i18n | $_() | ICU {count, plural, ...} |
| flutter intl | S.of(context) | Intl.plural() |
| django | gettext / _() | ngettext() |
| rails i18n | t() | count key |
| laravel | __() / @lang | trans_choice() |
| swift | NSLocalizedString | .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.
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/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.
# 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.jsonProjet 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.
# 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 updatedGuides de frameworks associés
Essayez i18n Agent maintenant
Déposez votre fichier de traduction ici
JSON, YAML, PO, XML, CSV, Markdown, Properties
ou cliquez pour parcourir
Langues cibles