From 99aaaac7829d6d7386c1d68cf8c3b06eeac8966f Mon Sep 17 00:00:00 2001
From: Doxa Maps
Date: Sun, 27 Sep 2026 09:35:27 +0000
Subject: [PATCH] Untranslated English keeps its own direction in an RTL page
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
rega measured it at ?lang=ar: ".of 5,067 languages have…" and ".both key-gated" — English
runs inside an rtl block, so the browser moves their leading and trailing punctuation to
the wrong end. Thirty of them across four leaves, found by walking the template and
flagging every static English run with no dir anywhere in its ancestry.
Each run is wrapped in rather than giving the block a direction: these
paragraphs mix English prose with translated labels and numbers, and a dir on the
container would left-align the Arabic beside it. bdi isolates exactly the run and nothing
else.
The first pass broke the build and the second caught it: my tag regex ended a tag at the
first ">", so v-if="matches.length > 8" looked like text and the wrapper landed INSIDE the
attribute — v-if="matches.length > 8". check:sfc-parse failed, I patched
four sites by hand, and that left orphaned closes. Reverting all four files and
redoing it with a quote-aware tokenizer was the cheaper fix than repairing my own repair:
30 runs, every open matched, 0 wrappers inside an attribute, SFC-PARSE and gates:pre 11/11
green.
Needs eyes: this is a bidi rendering fix and only a screenshot can confirm the punctuation
sits right. rega has the case at l17-7a7ca67b.
---
plugin-designs/gospel-resources/charts.vue | 28 ++++++-------
.../gospel-resources/data-tables.vue | 8 ++--
.../gospel-resources/resources-list.vue | 14 +++----
.../gospel-resources/resources-map.vue | 42 +++++++++----------
public/dx-maps/doxa-maps-spa/manifest.json | 12 +++---
.../gospel-resources/charts/index.html | 2 +-
.../gospel-resources/data-tables/index.html | 2 +-
.../gospel-dashboard/index.html | 2 +-
.../gospel-resources/gospel-resources.js | 38 ++++++++---------
.../resources-list/index.html | 2 +-
.../gospel-resources/resources-map/index.html | 2 +-
public/dx-maps/manifest.json | 12 +++---
12 files changed, 82 insertions(+), 82 deletions(-)
diff --git a/plugin-designs/gospel-resources/charts.vue b/plugin-designs/gospel-resources/charts.vue
index 5b95ba28d..0b83e610b 100644
--- a/plugin-designs/gospel-resources/charts.vue
+++ b/plugin-designs/gospel-resources/charts.vue
@@ -466,20 +466,20 @@ useShadowStyles(
- {{ fmt(nNone) }} of {{ fmt(nLang) }} languages have no scripture and no film
- found in the pools checked — the languages of {{ fmt(popNone) }} people.
+ {{ fmt(nNone) }} of {{ fmt(nLang) }} languages have no scripture and no film
+ found in the pools checked — the languages of {{ fmt(popNone) }} people.
- Counted BY LANGUAGE, so {{ fmt(noCodeGroups) }} people group{{ noCodeGroups === 1 ? '' : 's' }}
+ Counted BY LANGUAGE, so {{ fmt(noCodeGroups) }} people group{{ noCodeGroups === 1 ? '' : 's' }}
with no ISO 639-3 code in the source — {{ fmt(noCodePeople) }} people — cannot appear here.
- The "Where Nothing Was Found" table is keyed per people group and does include them.
+ The "Where Nothing Was Found" table is keyed per people group and does include them.
- Not found is not the same as not existing. Audio has been searched at Faith Comes By
+ Not found is not the same as not existing. Audio has been searched at Faith Comes By
Hearing and at Global Recordings Network, the latter swept for every language in the gap
at the ten-second crawl delay they ask for. api.bible, YouVersion, the Digital
- Bible Library and progress.bible all need credentials this build does not have.
+ Bible Library and progress.bible all need credentials this build does not have.
@@ -552,22 +552,22 @@ useShadowStyles(
- {{ picked.meta.name }} · ISO 639-3 {{ picked.meta.iso }} ·
+ {{ picked.meta.name }} · ISO 639-3 {{ picked.meta.iso }} ·
{{ fmt(picked.meta.population) }} people in
{{ picked.meta.groups }} people group{{ picked.meta.groups === 1 ? '' : 's' }} ·
- spoken in {{ Array.from(picked.meta.countries).join(', ') }}.
- Scripture found: {{ picked.meta.scripture ? 'yes' : 'not in pools checked' }} ·
+ spoken in {{ Array.from(picked.meta.countries).join(', ') }}.
+ Scripture found: {{ picked.meta.scripture ? 'yes' : 'not in pools checked' }} ·
Film found: {{ picked.meta.film ? 'yes' : 'not in pools checked' }} ·
- Audio: unknown (pool not checked).
+ Audio: unknown (pool not checked).
- This code is outside the ISO 639-3 registry, so no pool can index it —
- its resource status is unresolved by join, not measured.
+ This code is outside the ISO 639-3 registry, so no pool can index it —
+ its resource status is unresolved by join, not measured.
- {{ picked.meta.country }} — {{ picked.meta.none }} of
+ {{ picked.meta.country }} — {{ picked.meta.none }} of
{{ picked.meta.total }} languages present here have nothing found in the
- pools checked.
+ pools checked.
- {{ fmt(gap.groups) }} people groups are growing with no scripture and no film
- found in the pools checked — {{ fmt(gap.population) }} people,
+ {{ fmt(gap.groups) }} people groups are growing with no scripture and no film
+ found in the pools checked — {{ fmt(gap.population) }} people,
an estimated {{ fmt(gap.deathsDay) }} deaths per day.
- The estimate applies a national death rate to a sub-population; it is
- order-of-magnitude, not a count.
+ The estimate applies a national death rate to a sub-population; it is
+ order-of-magnitude, not a count.
- What “no text” means. It is the TEXT Scripture gap, and nothing wider: a row
+ What “no text” means. It is the TEXT Scripture gap, and nothing wider: a row
pilled “no text” may still show audio Scripture, a film or a Bible video beside it, and
several do. Not found in the resource pools checked so far —
- currently eBible.org ({{ fmt(stats.ebible_translations) }} translations across
+ currently eBible.org ({{ fmt(stats.ebible_translations) }} translations across
{{ fmt(stats.ebible_languages) }} languages, public data), plus PNG.Bible, the JESUS
- Film catalogue, Door43, and Faith Comes By Hearing for both text and audio Scripture. It does
- not mean no scripture exists: Scripture Earth and Global Recordings Network are
+ Film catalogue, Door43, and Faith Comes By Hearing for both text and audio Scripture. It does
+ not mean no scripture exists: Scripture Earth and Global Recordings Network are
searched too, GRN swept for every language in the gap at the crawl delay they ask for;
api.bible, the Digital Bible Library, progress.bible and YouVersion need credentials
this build does not have. A pool nobody has queried shows as unknown, never as “no”.
- Languages are joined to people groups by exact ISO 639-3 code.
+ Languages are joined to people groups by exact ISO 639-3 code.
- This page lists published resource availability only. It carries no information
- about churches, believers or gatherings, by design.
+ This page lists published resource availability only. It carries no information
+ about churches, believers or gatherings, by design.
Showing 8 of {{ fmt(matches.length) }} matches — keep typing to narrow.
+
Showing 8 of {{ fmt(matches.length) }} matches — keep typing to narrow.
@@ -2405,7 +2405,7 @@ useShadowStyles(
target="_blank" rel="noopener noreferrer">
{{ g.name }}{{ fmt(g.pop) }} people · {{ g.iso3 }}{{ g.code || 'no code' }}
- nothing found, and nobody praying — open their prayer page ↗
+ nothing found, and nobody praying — open their prayer page ↗
@@ -2414,8 +2414,8 @@ useShadowStyles(
{{ r.region }}
- {{ r.pct }}% of its {{ fmt(r.groups) }} groups have nothing
- · {{ fmt(r.none) }} groups · {{ fmt(r.pop) }} people
+ {{ r.pct }}% of its {{ fmt(r.groups) }} groups have nothing
+ · {{ fmt(r.none) }} groups · {{ fmt(r.pop) }} people
@@ -2423,7 +2423,7 @@ useShadowStyles(
@@ -2777,36 +2777,36 @@ useShadowStyles(
Mandarin are not mutually intelligible, they share a written standard — and it
changes no tier. The group still has nothing in its own variety. -->
- Nothing in {{ selectedGroup.language || 'this variety' }} itself — but ISO 639-3
- files it under the macrolanguage {{ selectedGroup.related.m }} together
- with {{ selectedGroup.related.l }}, which does have resources here.
+ Nothing in {{ selectedGroup.language || 'this variety' }} itself — but ISO 639-3
+ files it under the macrolanguage {{ selectedGroup.related.m }} together
+ with {{ selectedGroup.related.l }}, which does have resources here.
- That is a statement about how the standard groups these codes, not a claim
+ That is a statement about how the standard groups these codes, not a claim
that the two are mutually intelligible — often what they share is a written
standard rather than speech. It closes no gap and changes nothing above. It is here
because the largest "nothing found" entries on this map are varieties of this kind,
- and a list read top-down would send you to them first.
+ and a list read top-down would send you to them first.
- {{ tOr('gospel.guide.isSignLanguage', 'This is a sign language.') }} A Deaf group cannot be reached by a text
+ {{ tOr('gospel.guide.isSignLanguage', 'This is a sign language.') }} A Deaf group cannot be reached by a text
translation, so eBible's silence here is not an absence of Scripture — it is a
- text pool that was never the right place to look. What counts is Scripture
- filmed in this sign language. Of {{ fmt(signTally.langs) }} sign languages
+ text pool that was never the right place to look. What counts is Scripture
+ filmed in this sign language. Of {{ fmt(signTally.langs) }} sign languages
on this map, covering {{ fmt(signTally.people) }} people,
{{ signTally.both ? fmt(signTally.both) + ' have' : 'none yet has' }} both a film and
- a text Scripture.
+ a text Scripture.
-
- The open catalogues are exhausted for sign language: the JESUS Film lists
+ The open catalogues are exhausted for sign language: the JESUS Film lists
14 entries across 13 language codes and every one is already here, and Faith
- Comes By Hearing carries none at all. What is unchecked is Deaf Bible
- Society and DOOR International, both of which need a key or an
- agreement — this gap closes by asking them, not by searching harder.
+ Comes By Hearing carries none at all. What is unchecked is Deaf Bible
+ Society and DOOR International, both of which need a key or an
+ agreement — this gap closes by asking them, not by searching harder.