name: copy-check description: Vérifie les textes d'interface entre les locales en comparant la parité des clés entre les catalogues de messages next-intl et les objets COPY sv/en dans le code, détecte les incohérences de placeholders et de tableaux, ainsi que les mots de l'autre langue qui s'infiltrent (le bug « och » en anglais), puis examine manuellement les revendications par rapport aux conditions, tarifs et phrases interdites du projet. À utiliser après avoir modifié les textes ou les traductions, avant de livrer une page avec du nouveau texte, ou lorsque l'on vous demande une relecture ou une vérification des traductions. argument-hint: [dir] [--locales sv,en] allowed-tools: Bash(node *) Read Grep Glob Edit
Que fait copy-check ?
1. Passage mécanique
Args : $ARGUMENTS
node ${CLAUDE_SKILL_DIR}/scripts/i18n-parity.mjs <dir, défaut : racine de l'application du projet actuel> --locales sv,en
Le script trouve les catalogues **/messages|locales|i18n/<locale>.json et les objets littéraux sv: {…} / en: {…} frères dans les fichiers TS/JS. Il rapporte :
- ERREUR : clés manquantes, incohérences de longueur de tableau, incohérences de placeholders (
{name},${x},{{x}}). Corrigez tout cela. - avertissement : mots fonctionnels suédois (och, att, för, med, inte, är, …) dans les chaînes anglaises et vice versa, et longues chaînes identiques (non traduites ?). Jugez chaque cas ; les noms de produits et les termes suédois entre guillemets sont acceptables.
- non analysé : blocs que le mini-analyseur n'a pas pu lire. Vérifiez ces fichiers manuellement.
Les chaînes construites en dehors de ces motifs (littéraux JSX, t() avec valeurs par défaut en ligne) ne sont pas couvertes. Recherchez dans les fichiers modifiés du texte codé en dur dans la mauvaise locale.
2. Passage de jugement (fichiers modifiés d'abord, puis les pages où ils apparaissent)
- Phrases interdites ou obsolètes : lisez le CLAUDE.md du dépôt et les entrées mémoire du projet. Les projets conservent souvent une liste d'accroches retirées, de lignes d'introduction requises, ou de choses qui ne doivent jamais être dites publiquement.
- Revendications vs réalité : prix, durées d'essai, limites et « gratuit » par rapport à la configuration tarifaire réelle, aux produits Stripe et à la page de conditions. Les revendications de couverture ne doivent pas citer une limite d'affichage comme une couverture. « Le plus rapide », « chaque » et « tous » nécessitent une source.
- Formulation juridique/consentement : le consentement marketing n'est jamais regroupé dans les conditions, et les termes juridiques suédois sont corrects (ångerrätt, personuppgifter).
- Qualité de la locale (exemple suédois) : ordre naturel des mots, pas de särskrivningar (« hyres lägenhet »), en/ett correct, virgule décimale et
kraprès le nombre (1 299 kr), dates comme19 okt/2026-10-19. - Qualité anglaise : casse de phrase, pas d'habitudes de ponctuation suédoises, et devise formatée pour la locale.
- Cohérence : le même terme pour la même chose sur toutes les pages (choisissez celui existant).
Critères de sortie
- i18n-parity se termine avec 0, ou chaque avertissement restant a été jugé.
- Aucune phrase interdite, et chaque affirmation factuelle correspond à la configuration, aux conditions ou à une source.
- Corrections apportées uniquement au texte, sans redesigns introduits subrepticement.
- Un bref résumé à l'utilisateur.