Skip to content

Repère les termes du glossaire entre parenthèses ou avant un point final (#116) - #118

Open
clementpolito wants to merge 1 commit into
Association-WPFR:mainfrom
clementpolito:fix/glossaire-bornes-116
Open

clementpolito wants to merge 1 commit into
Association-WPFR:mainfrom
clementpolito:fix/glossaire-bornes-116

Conversation

@clementpolito

@clementpolito clementpolito commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Corrige #116 et #119.

Problème

Un terme du glossaire n'était pas signalé quand il était :

  • entre parenthèses, ex. « le dossier de téléversement (uploads) » ;
  • suivi d'un point, ex. « …dans le dossier uploads. ».

Cause (getGlossaryRegex, entrypoints/spte.content.js) : la regex joignait les termes avec leurs bornes, si bien que le premier terme n'avait pas de lookbehind et que seul le dernier acceptait un point final. Les parenthèses ne faisaient pas partie des bornes.

Correction

  • Le lookbehind et le lookahead entourent maintenant tout le groupe des termes.
  • ( est accepté avant le terme ; ), !, ? et » sont acceptés après.
  • Le point n'est une borne que s'il est suivi d'un espace ou de la fin du texte, pour ne pas signaler widget.php.

Tests

Bloc « bornes du terme » dans tests/spte.content.test.js : 7 cas repérés (parenthèses, point final sur le premier terme et sur un terme du milieu, !, début de chaîne, guillemets droits) et 3 cas non repérés (widget.php, widgetisé, « widget »). Sans le correctif, 5 de ces tests échouent.

Cas vérifiés avec l'ancienne et la nouvelle regex (aucun n'était détecté avant, tous le sont maintenant) :

  1. …dans le dossier de téléversement (uploads). Les fichiers qui n’ont pas été ajoutés… : terme entre parenthèses, suivi d'un point et d'une autre phrase ;
  2. …dans le dossier de téléversement uploads. Les fichiers qui n’ont pas été ajoutés… : terme suivi d'un point et d'une autre phrase ;
  3. …dans le dossier de téléversement uploads. : terme suivi d'un point en fin de chaîne.

Vérifié aussi sur de vraies chaînes de translate.wordpress.org (plugin offair), dans Firefox avec le build de la branche : « (uploads) » et « uploads. » sont surlignés. Pour « uploads. », le script de contenu des builds avec et sans correctif a aussi été exécuté dans jsdom sur la page de la traduction ci-dessous : surligné avec le correctif, pas sans.

Pour vérifier

Pages de translate.wordpress.org avec SPTE chargé :

Tester sur les chaînes rejetées

SPTE ne traite pas les traductions rejetées (checkTranslation, depuis la 3.0.0). Or la chaîne « uploads. » ci-dessus est rejetée. Pour y voir le surlignage, il faut modifier temporairement l'extension, sans commiter, et afficher les erreurs sur les chaînes rejetées.

Dans entrypoints/spte.content.js, ligne 73 de checkTranslation, remplacer :

if (!preview || (preview.classList.contains('status-rejected') && newStatus !== 'rejected')) { return; }

par :

if (!preview) { return; }

Puis npm run build:firefox (ou npm run build) et recharger l'extension. Les chaînes rejetées sont alors analysées comme les autres, et leurs avertissements comptés. Sans le correctif, « uploads. » n'est pas surligné sur cette chaîne ; avec le correctif, il l'est.

Comportement inchangé

Un terme entre guillemets français (« uploads », espaces insécables comprises) n'est toujours pas signalé : c'est une citation, comme pour les autres mots du glossaire.

Proposition de ligne pour le CHANGELOG

Fixed

  • Les termes du glossaire entre parenthèses ou suivis d'un point sont maintenant signalés (ex. (uploads), dossier uploads.).

…nal (Association-WPFR#116)

Le lookbehind et le lookahead entourent désormais tout le groupe des termes : avant, le premier terme n'avait pas de lookbehind et seul le dernier acceptait un point final. Les parenthèses et la ponctuation finale (! ? ») sont acceptées comme bornes.
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.

1 participant