Portuguese said "Application" above the population figure
Widening the locale comparison from ten hand-picked terms to EVERY catalogue string their page renders found two more in the clone's own catalogue, one of them a real mistranslation we had inherited: pt Population was "Aplicação", which means Application, and dx-life has since corrected it on live to "População". hi Population differed by a diacritic, जनसँख्या against live's जनसंख्या. Both were verbatim in the clone, so both were copied faithfully. With those two fixed, regions.json now has ZERO divergences against live across all seven upstream locales for every string that appears on their page. The comparison maps english -> localised from their own pages rather than from any reading of the language: their /en and /LOC pages are the same template, measured at 262 comparable leaves with an identical tag+class sequence across en, ru, de, es, fr, hi, pt and ar, so leaf i on one is leaf i on the other. It refuses rather than guesses: a locale whose leaf count or shape differs is skipped, an English string appearing twice with different localisations is dropped as ambiguous (74 of them), only strings that exactly equal one of our own en values are considered so page data cannot be mistaken for catalogue text, and templates carrying placeholders are never auto-applied. Two defects in that probe, both caught before anything shipped: It read the page through a template literal holding code, where `\s` is not a recognised escape, so `.replace(/\s+/g,' ')` silently became `.replace(/s+/g,' ')` and every run of the letter s turned into a space. German came back as "Volk gruppen" for Volksgruppen and "1+ Men chen beten" for "1+ Menschen beten". The bug hid in Arabic, which has no Latin s, and the earlier sweeps happened to use the doubled `/\\s+/g` form that survives a template literal. The extractor is now a FUNCTION passed to evaluate, which removes the whole class of escape bug rather than patching this instance. And it was about to hand a navigation translation to a button. Their page's only "Pray" is an <a> inside .menu-item -- the site nav -- while our regions.json "Pray" is the pin-popup's button, which their page never renders because popups exist only after a click. Text identity cannot tell two components apart, so nav, header, footer and menu items are now excluded before anything is paired; our catalogue covers the embed, not the site shell. The 23 remaining divergences are all in library/i18n/locales/*/legend.json -- our own shared map legend, which reaches every bundle and is not part of the clone. They are reported, not changed: it is a cross-bundle decision, and their English merely coincides with dx-life's.
This commit is contained in:
parent
379f959038
commit
754dddd5a1
8 changed files with 11 additions and 11 deletions
|
|
@ -38,7 +38,7 @@
|
|||
"People committed to praying": "प्रार्थना के लिए प्रतिबद्ध लोग",
|
||||
"Pick a region above, or click any dot to open that people group's country.": "ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।",
|
||||
"Pick a region or a country on the Regions List tab to narrow this dashboard.": "इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",
|
||||
"Population": "जनसँख्या",
|
||||
"Population": "जनसंख्या",
|
||||
"Prayer Coverage": "प्रार्थना कवरेज",
|
||||
"Prayer coverage progress": "प्रार्थना कवरेज की प्रगति",
|
||||
"Region Dashboards": "क्षेत्र डैशबोर्ड",
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
"People committed to praying": "Pessoas comprometidas com a oração",
|
||||
"Pick a region above, or click any dot to open that people group's country.": "Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.",
|
||||
"Pick a region or a country on the Regions List tab to narrow this dashboard.": "Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",
|
||||
"Population": "Aplicação",
|
||||
"Population": "População",
|
||||
"Prayer Coverage": "Cobertura de oração",
|
||||
"Prayer coverage progress": "Progresso da cobertura de oração",
|
||||
"Region Dashboards": "Painéis das regiões",
|
||||
|
|
|
|||
2
public/doxa-maps/index.html
generated
2
public/doxa-maps/index.html
generated
File diff suppressed because one or more lines are too long
8
public/doxa-maps/manifest.json
generated
8
public/doxa-maps/manifest.json
generated
|
|
@ -879,7 +879,7 @@
|
|||
"bundle": "regions-dashboard",
|
||||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"output": "doxa-maps/regions-dashboard/regions-dashboard.js",
|
||||
"integrity": "sha384-EyPu6NfDP/zobw0CzQYbKyoSDfOveFoTxGMjW3AfOgARngY7GKPy6wUusPrrYE0d",
|
||||
"integrity": "sha384-8JsVgIo2ZAMZIr1GUBuoLAzfjQRGVEFSNKSz7LUh45+09ryrQDibdhMEhWrWuOfe",
|
||||
"elements": [
|
||||
"regions-dashboard"
|
||||
],
|
||||
|
|
@ -899,7 +899,7 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-EyPu6NfDP/zobw0CzQYbKyoSDfOveFoTxGMjW3AfOgARngY7GKPy6wUusPrrYE0d\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-8JsVgIo2ZAMZIr1GUBuoLAzfjQRGVEFSNKSz7LUh45+09ryrQDibdhMEhWrWuOfe\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -913,7 +913,7 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-EyPu6NfDP/zobw0CzQYbKyoSDfOveFoTxGMjW3AfOgARngY7GKPy6wUusPrrYE0d\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-8JsVgIo2ZAMZIr1GUBuoLAzfjQRGVEFSNKSz7LUh45+09ryrQDibdhMEhWrWuOfe\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -927,7 +927,7 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-EyPu6NfDP/zobw0CzQYbKyoSDfOveFoTxGMjW3AfOgARngY7GKPy6wUusPrrYE0d\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-8JsVgIo2ZAMZIr1GUBuoLAzfjQRGVEFSNKSz7LUh45+09ryrQDibdhMEhWrWuOfe\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
|
||||
<script src="../regions-dashboard.js" integrity="sha384-EyPu6NfDP/zobw0CzQYbKyoSDfOveFoTxGMjW3AfOgARngY7GKPy6wUusPrrYE0d" crossorigin="anonymous"></script>
|
||||
<script src="../regions-dashboard.js" integrity="sha384-8JsVgIo2ZAMZIr1GUBuoLAzfjQRGVEFSNKSz7LUh45+09ryrQDibdhMEhWrWuOfe" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
|
||||
<script src="../regions-dashboard.js" integrity="sha384-EyPu6NfDP/zobw0CzQYbKyoSDfOveFoTxGMjW3AfOgARngY7GKPy6wUusPrrYE0d" crossorigin="anonymous"></script>
|
||||
<script src="../regions-dashboard.js" integrity="sha384-8JsVgIo2ZAMZIr1GUBuoLAzfjQRGVEFSNKSz7LUh45+09ryrQDibdhMEhWrWuOfe" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
|
||||
<script src="../regions-dashboard.js" integrity="sha384-EyPu6NfDP/zobw0CzQYbKyoSDfOveFoTxGMjW3AfOgARngY7GKPy6wUusPrrYE0d" crossorigin="anonymous"></script>
|
||||
<script src="../regions-dashboard.js" integrity="sha384-8JsVgIo2ZAMZIr1GUBuoLAzfjQRGVEFSNKSz7LUh45+09ryrQDibdhMEhWrWuOfe" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
Loading…
Reference in a new issue