Skip to content

Support du letter-spacing avec le formatage fr-FR - #28

Merged
cedric07 merged 1 commit into
developfrom
fix/number-format-fr
Oct 8, 2026
Merged

cedric07 merged 1 commit into
developfrom
fix/number-format-fr

Conversation

@cedric07

@cedric07 cedric07 commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Résumé

  • Après formatage Intl, remplacer le séparateur de milliers U+202F (espace fine insécable) par U+2009 (espace fine) pour que le letter-spacing CSS s’applique correctement (ex. Zalando Sans sous Chromium / thème Rafale).
  • Extraire formatNumber() dans src/utils/format-number.js et l’utiliser côté script front et éditeur de bloc (suppression de la logique dupliquée).

Contexte

Avec data-decimal-separator="fr-FR", Intl.NumberFormat insère U+202F entre les groupes de chiffres (50 000). Certaines combinaisons police / moteur ignorent le letter-spacing sur les nœuds texte qui contiennent U+202F : la valeur calculée est bien définie, mais la largeur en layout ne change pas.

Les formats qui n’utilisent pas Intl (none, ., ,) ou les locales qui n’émettent pas U+202F (de-DE, en-EN) ne sont pas modifiés.

Modifications

Fichier Changement
src/utils/format-number.js Nouveau module partagé ; normalizeIntlFormattedNumber() remplace \u202f par \u2009 ; JSDoc sur la raison du remplacement.
src/number-formatter.js Import de formatNumber ; conserve l’init DOM et window.blockpartyKeyFigureFormatter.
src/edit.js Import du formatNumber partagé ; suppression du doublon useNumberFormatter.

Aucun changement PHP, attributs de bloc ou markup sauvegardé.

Impact à la mise à jour (sites existants)

  • Pas de migration ni de réenregistrement des blocs.
  • Changement visible uniquement pour les blocs en fr-FR : groupement conservé ; espace fine (U+2009) au lieu de l’espace fine insécable ; le letter-spacing du thème peut enfin resserrer les chiffres (comportement attendu).
  • Pas de bloc cassé ; les autres options de séparateur / locale restent identiques.

Plan de test

  • Bloc avec decimalSeparator = Aucun — affichage tel qu’enregistré ; pas de régression.
  • Bloc en fr-FR, grand entier (ex. 50000) — affichage groupé (50 / 000) ; inspecter le DOM : séparateur en U+2009, pas U+202F.
  • Même bloc fr-FR avec letter-spacing: -0.05em sur la figure côté thème — largeur rendue différente de letter-spacing: normal.
  • de-DE et en-EN — même rendu qu’avant la release.
  • Prévisualisation éditeur alignée avec le front pour fr-FR.
  • npm run build et npm run lint:js OK.

Replace U+202F thousands separators with U+2009 after Intl formatting so
CSS letter-spacing applies with some font/engine pairs. Share formatNumber
between the frontend script and the block editor via src/utils.
@cursor

cursor Bot commented Oct 8, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@cedric07
cedric07 merged commit cf46242 into develop Oct 8, 2026
1 check passed
@cedric07
cedric07 deleted the fix/number-format-fr branch October 8, 2026 11:35
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.

2 participants