Skip to content

Corrige l'analyse des traductions contenant trois points (« ... ») - #104

Closed
clementpolito wants to merge 3 commits into
Association-WPFR:mainfrom
clementpolito:fix/arguments-replace-checktranslation
Closed

clementpolito wants to merge 3 commits into
Association-WPFR:mainfrom
clementpolito:fix/arguments-replace-checktranslation

Conversation

@clementpolito

Copy link
Copy Markdown
Contributor

Récap de ce que la PR
Depuis la 3.1.0, une traduction contenant trois points (« ... »), un point précédé d'une espace ou un point suivi d'une espace finale interrompt l'analyse de la page : SPTE lève une TypeError (e.lastIndexOf is not a function), les traductions suivantes ne sont pas analysées et le bandeau de statistiques ne s'affiche pas.

Cause : dans checkTranslation, la fonction de remplacement passée à replace() lit la position et la chaîne d'origine en deuxième et troisième arguments. Le groupe capturant de rgxPeriod décale ces arguments, et isInsideHtmlTag reçoit un nombre au lieu d'une chaîne. Les trois points déclenchent également la règle du point, car l'infobulle du surlignage des points de suspension contient « ... » précédé d'une espace.

Changements

  • entrypoints/spte.content.js : la position et la chaîne d'origine sont lues à partir de la fin des arguments de la fonction de remplacement, quel que soit le nombre de groupes capturants.
  • utils/rules.js : les trois points successifs ont leur propre règle (asciiEllipsis), dont l'infobulle indique « Trois points au lieu du caractère points de suspension (…) ». Ils étaient jusqu'ici signalés avec le message relatif à l'espacement. La règle reste « à vérifier » et compte toujours dans « Caractères à vérifier ».
  • tests/spte.content.test.js, utils/regex.test.js : tests de non-régression (échouent sans le correctif) et tests de la nouvelle règle.
  • .claude/ARCHITECTURE.md : ajout du piège aux « Known pitfalls ».

À tester

  1. npm run build:firefox, puis charger .output/firefox-mv3/manifest.json via about:debugging.
  2. Ouvrir cette page : les trois points de « Recherche en cours... » sont signalés, avec le nouveau message, et le bandeau s'affiche. Avec la 3.1.0 publiée, rien n'est signalé et l'erreur apparaît dans la console.

Proposition de lignes pour le CHANGELOG (section Fixed) :

  • Les traductions contenant trois points (« ... ») ou un point mal espacé n'interrompent plus l'analyse de la page (régression de la 3.1.0)
  • Trois points successifs (« ... ») sont signalés avec un message invitant à utiliser le caractère points de suspension (…), et non plus avec le message relatif à l'espacement

Remarques

  • La PR 3.1.1 #88 (WIP 3.1.1) conserve la lecture des arguments à position fixe et ne corrige donc pas ce problème.

  • .claude/rules/changelog.md demande encore de mettre à jour le CHANGELOG à chaque commit, ce qui contredit la nouvelle consigne de CONTRIBUTING.md.

  • npm test et npm run lint passent

Issue(s) liée(s) : Closes #103

Depuis la 3.1.0, la fonction de remplacement lisait la position et la chaîne d'origine en deuxième et troisième arguments. Le groupe capturant de rgxPeriod décale ces arguments : isInsideHtmlTag recevait alors un nombre et levait une TypeError, ce qui interrompait l'analyse de la page dès qu'une traduction contenait trois points ou un point mal espacé. Les arguments sont désormais lus à partir de la fin.
Trois points successifs étaient détectés par la règle des points de suspension, dont le message porte sur l'espacement. Ils ont désormais leur propre règle, dont l'infobulle invite à utiliser le caractère points de suspension (…).
Ajoute aux Known pitfalls de ARCHITECTURE.md le décalage des arguments de la fonction de remplacement de String.prototype.replace() lorsqu'une regex contient un groupe capturant, à l'origine de la régression de la 3.1.0 sur les « ... ».
@clementpolito
clementpolito requested a review from jaz-on as a code owner October 4, 2026 19:23
@jaz-on jaz-on mentioned this pull request Oct 9, 2026
jaz-on added a commit that referenced this pull request Oct 9, 2026
SPTE fonctionne désormais sur la page « Consistency » et regroupe plusieurs correctifs, y compris le contenu des PR #104, #107, #110 et #114. Détail dans le CHANGELOG.
@jaz-on

jaz-on commented Oct 9, 2026

Copy link
Copy Markdown
Member

Merge dans la PR #88 qui vient d'être merge dans la release 3.1.1, je ferme ici. Merci Clément :)

@jaz-on jaz-on closed this Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Trois points successifs ne sont pas détectés et interromptent l'analyse de la page

2 participants