The packet cover said "50 of 214" in every language, because I wrote it that way today

Found auditing my own map for goal (d), in code I added this morning. The cover note is the one string on
that document a reader in Arabic or Hindi cannot read, on a document whose entire purpose is that they
can pray from it in their own language.

The slash needs no translation and is not a guess: zh's professional translation of legend.progress.short
renders exactly this relationship as "{covered} / {total}". The WORD is available per locale in that same
key — ar "من", ru "из", fr "sur" — but it carries "· {pct}%" with it, so reusing it would mean either a
wrong suffix on the cover or slicing a translated string on a separator I cannot guarantee survives
translation. Ten invented translations for one connector is the worse trade.

Wrapped in U+2066/U+2069 isolates, which is the convention the Arabic catalogue already uses five times
for numeric ranges ("⁦30–59%⁩"). Without them the pair reorders against the Arabic label beside it and a
reader sees "214 / 50" — the numbers held but the meaning inverted. NUMERALS ARE HELD, so the digits
themselves are untouched.

CENSUS BEHIND IT, on current main, reusing the existing gates rather than adding one: check:i18n-parity,
check:i18n-never-translated and check:i18n-keys-exist all PASS; and of the 766 catalogue strings the three
Simple Research bundles ship across 21 areas, ZERO fall back to English in any of the ten locales. The
English still visible to a non-Latin reader is five or six items and every one was already classified:
two external resource names (Open Bible Stories, Scripture Earth), one pure format string, two acronyms
(DPI, MST), and UUPGs, which is the Driver's deferred ruling. This cover note was the only NEW leak, and
it was mine.

Verified: check:sfc-parse and check:i18n-keys-exist PASS. Needs eyes: rega — the packet cover at ?lang=ar.
This commit is contained in:
Doxa Maps 2026-09-28 09:17:33 +00:00
parent 4fbe44ce17
commit f5a9ee40b7

View file

@ -1553,7 +1553,17 @@ async function openPacket() {
const baseLabel = legendTitle.value || tabLabel(activeTab.value) || 'Doxa Map'
const zone = {
id: String(activeTab.value?.id || 'research-map'),
label: selectedTotal > groups.length ? `${baseLabel} — ${groups.length} of ${selectedTotal}` : baseLabel,
// ★ NO ENGLISH WORD ON A LOCALIZED COVER. I wrote "50 of 214" today and it renders that "of" in
// all eleven locales — my own leak, on the cover of a document whose whole point is that a reader
// in their language can pray from it. The slash needs no translation, and it is not a guess: zh's
// professional translation of legend.progress.short renders exactly this relationship as
// "{covered} / {total}". The word IS available per locale there (ar "من", ru "из", fr "sur"), but that
// key carries "· {pct}%" with it, so reusing it would mean either a wrong suffix or slicing a
// translated string on a separator I cannot guarantee survives translation.
// Wrapped in U+2066/U+2069 isolates, the convention the ar catalogue already uses for numeric
// ranges (five times, e.g. "⁦30–59%⁩"): without them the pair reorders against Arabic text
// beside it and reads as "214 / 50". NUMERALS ARE HELD, so the digits stay as they are.
label: selectedTotal > groups.length ? `${baseLabel} — ⁦${groups.length} / ${selectedTotal}⁩` : baseLabel,
zoneKey: String(activeTab.value?.id || 'research-map'),
}
const prints = usePosterPrints({