A poster too big for one sheet prints as several, each trimmed edge laid over the next sheet's join band: 60x96 is three 60 x 36 in sheets stacked with 6 in joins (the Bless 5 x 8 ft wall), 66x66 two 36 x 66 in sheets side by side with a 6 in join (India). library/components/poster/panelSheets.js is pure: - planPanels(sheets) takes the size table's sheets object as is (sheetW, sheetH, count, direction, joinIn), plus the renderer's borderIn and joinFill; - sliceFor(plan, s) gives the part of the finished poster that sheet s prints, one page per sheet; - screenLayout, panelChromeHtml and panelCss give the sheets pulled apart and the marks. A 'glue' join leaves the band blank and marked red; a 'bleed' join lets a map continue under it, so a trim a few millimetres off shows map, never a white seam, and only a guide is printed there. PanelSheets.vue previews it for Vue surfaces: - a src (the finished poster as one image) sliced per sheet with CSS, or a #sheet slot; - it fills its container's width, takes no pointer events, and emits one load or error per src; - it always draws the red glue band and the gap, even for a print that bleeds. Its label is poster.glue_here, new in all 11 catalogues. |
||
|---|---|---|
| .. | ||
| 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.