diff --git a/plugin-designs/regions-dashboard/region-dashboards.vue b/plugin-designs/regions-dashboard/region-dashboards.vue index 68e91ed66..1d37f4efc 100644 --- a/plugin-designs/regions-dashboard/region-dashboards.vue +++ b/plugin-designs/regions-dashboard/region-dashboards.vue @@ -199,7 +199,13 @@ function summarizeRegions(posts) { } function formatNumber(n) { - return Number(n || 0).toLocaleString('en-US') + // THEIRS, RegionDetail.vue:16: `n.toLocaleString(`${locale.value}-u-nu-latn`)` — locale + // grouping separators with Latin digits. This was hardcoded 'en-US', which is only + // correct for English: de/fr/es group with '.' and ar would otherwise get Arabic-Indic + // digits. The -u-nu-latn keeps Latin digits, which is the half theirs pins deliberately. + // A bad tag throws RangeError in toLocaleString, so fall back rather than blank the page. + const v = Number(n || 0) + try { return v.toLocaleString(`${locale.value || 'en'}-u-nu-latn`) } catch (_) { return v.toLocaleString('en-US') } } // Which size step a stat value needs so it is never CUT OFF. Their 47.68px fits up to 10 @@ -849,7 +855,9 @@ useShadowStyles(

{{ titleParts.head ? titleParts.head + ' ' : '' }}{{ titleParts.last }}

- {{ formatNumber(subject.stats.count) }} {{ t('People Groups') }} · + + {{ subject.stats.count }} {{ t('People Groups') }} ·