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. -
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(
diff --git a/plugin-designs/gospel-resources/data-tables.vue b/plugin-designs/gospel-resources/data-tables.vue index 529a68f49..8ea77ec9e 100644 --- a/plugin-designs/gospel-resources/data-tables.vue +++ b/plugin-designs/gospel-resources/data-tables.vue @@ -389,11 +389,11 @@ useShadowStyles(

- {{ 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.
diff --git a/plugin-designs/gospel-resources/resources-list.vue b/plugin-designs/gospel-resources/resources-list.vue index 2018b993c..7f9ab1822 100644 --- a/plugin-designs/gospel-resources/resources-list.vue +++ b/plugin-designs/gospel-resources/resources-list.vue @@ -404,20 +404,20 @@ useShadowStyles(
- 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.
diff --git a/plugin-designs/gospel-resources/resources-map.vue b/plugin-designs/gospel-resources/resources-map.vue index 13d01fefe..1ab6ef271 100644 --- a/plugin-designs/gospel-resources/resources-map.vue +++ b/plugin-designs/gospel-resources/resources-map.vue @@ -2070,7 +2070,7 @@ useShadowStyles( {{ m.name }} {{ m.lang || 'unnamed language' }} · {{ m.iso3 }} -
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( @@ -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.

\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -756,7 +756,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -770,7 +770,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] diff --git a/public/dx-maps/gospel-resources/charts/index.html b/public/dx-maps/gospel-resources/charts/index.html index 5f869f6e3..54eb077c3 100644 --- a/public/dx-maps/gospel-resources/charts/index.html +++ b/public/dx-maps/gospel-resources/charts/index.html @@ -32,7 +32,7 @@ - + - + - + - + - + \n\n" + "script": "\n\n" } }, { @@ -728,7 +728,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -742,7 +742,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -756,7 +756,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -770,7 +770,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ]