i18n Doctor : obtenez un rapport complet sur la qualité de vos traductions en une seule commande
Exécutez better-i18n doctor pour analyser l'ensemble de votre base de code selon cinq critères : qualité du code, couverture de traduction, précision des espaces réservés, clés orphelines et synchronisation CDN. Vous obtiendrez ainsi une note de santé unique comprise entre 0 et 100, accompagnée de diagnostics exploitables.
Cinq niveaux d'analyse en un seul passage
Le docteur exécute simultanément l'analyse du code, l'analyse de la couverture, la vérification de la qualité, l'audit des performances et les vérifications de synchronisation CDN, le tout avec un score unifié.
Code — Détection des chaînes codées en dur
Le balayage basé sur AST détecte toutes les chaînes destinées à l'utilisateur qui ne sont pas encapsulées dans t(). Il détecte le texte JSX, les attributs, la logique locale ternaire, les messages toast et les variables de chaîne.
Couverture — Traductions manquantes
Compare les clés présentes dans votre locale source à chaque locale cible. Toute clé manquante dans une locale cible est signalée avec son espace de noms et son chemin d'accès exacts.
Qualité — Incohérence des espaces réservés
Vérifie que les espaces réservés d'interpolation sont cohérents dans toutes les locales. Prend en charge les formats nommés {}, double-brace {{}}, printf %s , template ${}, et positionnel {0}.
Performance — Détection des clés orphelines
Détecte les clés qui existent dans vos fichiers de traduction mais qui ne sont jamais référencées dans le code. Les clés orphelines augmentent la taille de la charge utile et créent une dette de maintenance.
Synchronisation — Comparaison des CDN
Compare les clés extraites de votre code aux clés publiées dans le CDN. Identifie les problèmes liés aux clés manquantes ou inutilisées à distance avant qu'ils n'affectent la production.
Un score unique pour évaluer la qualité de votre traduction
Le docteur calcule un score compris entre 0 et 100 en fonction des diagnostics établis. Les erreurs sont pénalisées de 3,0 points chacune, tandis que la contribution des avertissements de chaque règle est plafonnée à 20 points, ce qui empêche une seule règle comportant des milliers d'avertissements de réduire votre score à zéro.
Le seuil de réussite par défaut est de 70 (note B). Veuillez utiliser --ci pour rejeter les builds inférieurs à ce seuil, ou commencez par --report pour établir une base de référence avant d'appliquer le score.
score = 100 - (errors × 3.0) - Σ min(rule_warnings × 0.15, 20)Seuils de notation
Intégration CI/CD — Bloquer les mauvaises traductions avant leur publication
Ajoutez Doctor à votre pipeline CI pour détecter les régressions de traduction à chaque push. L'authentification OIDC automatique dans GitHub Actions élimine la gestion des secrets.
Actions GitHub avec OIDC
Veuillez vous authentifier automatiquement sans clés API en utilisant GitHub Actions OIDC. Il suffit d'ajouter id-token : permission d'écriture et d'exécuter doctor --ci --report.
Seuil de déclenchement
Définissez un seuil de réussite (par défaut : 70) et échouez la compilation lorsque le score passe en dessous de ce seuil. Commencez le suivi avec --report, puis appliquez-le avec --ci.
JSON lisible par machine
Veuillez utiliser --format json pour obtenir une sortie structurée que vous pouvez rediriger vers jq, des tableaux de bord personnalisés ou l'automatisation en aval dans votre pipeline de déploiement.
Rapports du tableau de bord
Veuillez télécharger les résultats vers le tableau de bord Better i18n avec --report pour le suivi historique, l'analyse des tendances et la visibilité à l'échelle de l'équipe sur la santé i18n.
Quand utiliser quelle commande
Doctor est l'option la plus complète. Utilisez des commandes ciblées lorsque vous avez besoin d'une vérification spécifique ou que vous souhaitez obtenir un retour plus rapide dans les hooks pré-commit.
médecinÉvaluation complète de la santé avec cinq niveaux d'analyse : la source unique et fiable pour connaître l'état d'internationalisation de votre projet.
scannerDétection ciblée des chaînes codées en dur. Prend en charge --staged pour les hooks pré-commit.
vérifierVérificateur interactif des clés de traduction manquantes ou inutilisées avec invites guidées.
synchronisationComparaison complète entre les clés locales et distantes, indiquant simultanément les clés manquantes et inutilisées.
Conçu pour les flux de travail i18n du monde réel
Note de santé 0-100
Note unique avec ventilation par catégorie et seuil de réussite/échec CI. Suivez l'évolution de la qualité de vos traductions au fil du temps.
Suivi de la portée lexicale
Détection intelligente de l'espace de noms pour useTranslations et getTranslations. Chaque appel t() est mappé à son espace de noms correct.
Prise en charge des composants serveur
Prise en charge complète des fonctions serveur asynchrones Next.js App Router. Les appels getTranslations côté serveur sont détectés et vérifiés.
Règles configurables
Veuillez désactiver ou réduire les règles dans i18n.config.ts. Définissez les règles sur « error », « warning » ou « off » en fonction des besoins de votre projet.
Filtrage intelligent
Ignore automatiquement les noms de classes CSS, les URL, les chemins d'importation et les constantes de développement. Seuls les résultats exploitables sont pris en compte.
Journal d'audit détaillé
Transparence approfondie avec --verbose. Résumés de portée, informations de synchronisation et traces de résolution d'espace de noms pour le débogage.
Sujets connexes
CLI & Code Scanning
Outils de détection de chaînes codées en dur et d'analyse de code basés sur AST
For Developers
Outils d'internationalisation destinés aux développeurs, avec SDK sécurisés et workflows Git-first
Localization Software
Platforms and software for managing localization at scale
Translation Management
Plateforme centralisée pour la gestion des flux de traduction à grande échelle
Vérifiez l'état de votre traduction avant l'expédition
Exécutez une fois better-i18n doctor pour obtenir votre base de référence. Intégrez-le à votre CI pour éviter à l'avenir de livrer des traductions incomplètes.