doxa-maps/plugin-designs/cities-internet
Doxa Maps 87a1681956 Nine region headings read English in every locale, not just "Other"
rega saw "Other" in ar and zh. The reported cause — `c.region || 'Other'` at
:65 — is not one: of 175 rows in connectivity.json NONE has a falsy region, so
that fallback never fires. The "Other" section is one row (United States) whose
region IS the string "Other". Patching :65 would have changed nothing on screen.

The render site is `{{ sec.name }}`, and it printed the raw data value for ALL
NINE regions, so this was nine English headings rather than one.

All nine already had translated keys — dashboard.wagfRegion.* for the seven WAGF
regions, dashboard.other, wall.na — in all 11 locales. None needed adding.

THE LABEL IS PROJECTED AT RENDER, NEVER AT GROUPING. sec.name keys the Map, the
:key, and the collapse state, so translating it where the rows are grouped would
reset every open section on a locale switch and filter on a value no row carries.
That is the value/label trap useFacetAggregation.js documents at OTHER_KEY; this
follows the same shape.

The name->key map is built by asking the ENGLISH catalogue what each key says,
rather than writing the English phrases here: the data's region strings are the
catalogue's own English values, so English is the join and never has to be
duplicated. Written the other way it added two check:hardcoded-english findings
to a file that had none — an English phrase used as a lookup key reads exactly
like a user-visible string.

tStatic(path, 'en'), not t(). t()'s signature is (key, params, plural), so
t(k, 'en') passes 'en' as params and returns the RUNTIME locale's value: the map
would be built from Arabic values and match no region at all.

The keys are written out in full because internal/i18n-areas.mjs bundles an area
only when its name appears literally in a reached file. cities-internet shipped
14 areas and neither dashboard nor wall; assembling these at runtime would have
left all nine unresolved in the shipped bundle while working in the dev tree.
Measured both ways — written out, the bundle takes 16.

`|| 'Other'` stays as a data guard so a future row with no region cannot key the
Map on undefined, and 'Other' is the sentinel dashboard.other projects.

9 of 9 headings translate in ar and zh, verified against the real catalogues.
2026-09-29 12:24:45 +00:00
..
data Svalbard carries its own data, not Norway's 2026-09-27 05:05:04 +00:00
scripts India by state: all 36 states, Mizoram and Nagaland included 2026-09-26 08:13:34 +00:00
connectivity-list.meta.json Name the two unlabelled Cities with Internet profiles 2026-09-28 07:44:45 +00:00
connectivity-list.vue Nine region headings read English in every locale, not just "Other" 2026-09-29 12:24:45 +00:00
connectivity-map.meta.json Plugin Studio and the gallery split production from experimental, from each bundle's own stage 2026-09-27 06:04:08 +00:00
connectivity-map.vue Keep the reason, drop the speaker, across all three plugins 2026-09-29 09:06:28 +00:00
data-tables.meta.json Name the two unlabelled Cities with Internet profiles 2026-09-28 07:44:45 +00:00
data-tables.vue Keep the reason, drop the speaker, across all three plugins 2026-09-29 09:06:28 +00:00
index.html Session work: strobe fix, grid layout, stacked tree legend, selection camera, chip bounding, asset inheritance, gates 2026-09-20 04:49:25 +00:00
index.js Eleven plugin entries import the element helper they call 2026-09-28 17:40:35 +00:00