- Two lines, each its own string, in a new catalogue area only PinHint names (line1 / line2 x 11, taken from today's one-sentence text at each locale's own separator; that text is untouched). - 44px tall like the ☰, 12px text, a smaller bob. Capped to the width left between two ☰ footprints (--map-fab-beside), so it is centred with equal room and never reaches the ☰; with no ☰ it is simply centred. - In the ☰'s row: while the layout shows the ☰, the base is the ☰'s own 12px bottom, and the clamp lifts it to 8px above the legend sheet, the gap the layout keeps for the ☰. - It no longer reads --map-fab-clearance, which now carries the ☰'s scroll-tracked lift: inside the map, beside the legend, the pill stays over it by itself, and positioned from that lift it moved against the legend on every scroll. |
||
|---|---|---|
| .. | ||
| locales | ||
| CATALOGUES.md | ||
| index.js | ||
| keyedError.js | ||
| README.md | ||
| useRegionsI18n.js | ||
library/i18n/ — the map's translations
One of the three customization seams (colors/, api/, i18n/). This one owns every
user-facing string. Translations are one folder per locale, one JSON file per area, inlined at
build time into a Vue I18n instance (one per <doxa-map>, so embeds don't bleed state).
i18n/
┌───────────────────────────────┐
│ index.js ← engine, don't edit │
│ locales/ │
│ en/ buttons.json legend.json …│ ← en is the source of truth + fallback
│ es/ ar/ zh/ … (same keys) │ ← 11 shipped locales, drop in your own
└───────────────────────────────┘
filename → namespace: buttons.json → $t('buttons.prayForThem')
- 11 shipped locales;
arrenders right-to-left (RTL_LOCALES). - Add a language by copying
locales/en/tolocales/<code>/— never by editingindex.js(except adding the code toSUPPORTED_LOCALES). - Missing keys fall back to English silently.
Adding or overriding a locale? The full contract (locale matrix, checklist, integration) is in ../../documentation/architecture/i18n.md.