diff --git a/library/i18n/locales/ar/regions.json b/library/i18n/locales/ar/regions.json
index 30fb8ae77..d20802f88 100644
--- a/library/i18n/locales/ar/regions.json
+++ b/library/i18n/locales/ar/regions.json
@@ -1,6 +1,6 @@
{
"%count% people groups in %countries% countries": "%count% مجموعة شعبية في %countries% دولة",
- "%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.": "تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.",
+ "%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.": "تضم %region% %count% مجموعة شعبية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة الشعبية.",
"1+ People Praying": "شخص واحد أو أكثر يصلّي",
"100+ People Praying": "أكثر من 100 شخص يصلّون",
"Adopted": "متبنَّاة",
@@ -12,11 +12,11 @@
"Countries": "الدول",
"Countries in this region": "الدول في هذه المنطقة",
"Country": "الدولة",
- "Engaged": "مُخْدُومَة",
+ "Engaged": "مَخْدُومَة",
"Engagement Progress": "تقدُّم الانخراط",
- "Every unengaged people group adopted by a church committed to prayer, giving, and sending": "كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال",
+ "Every unengaged people group adopted by a church committed to prayer, giving, and sending": "كل مجموعة شعبية غير مَخْدُومَة تتبنّاها كنيسة ملتزمة بالصلاة والعطاء والإرسال",
"Exact Search": "بحث دقيق",
- "Find unreached people groups by region and country.": "ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.",
+ "Find unreached people groups by region and country.": "ابحث عن المجموعات الشعبية غير المبلَّغة حسب المنطقة والدولة.",
"Full Profile": "الملف الكامل",
"Goal": "الهدف",
"Hide Filters": "إخفاء المرشحات",
@@ -25,18 +25,18 @@
"Load More": "تحميل المزيد",
"Loading results...": "النتائج قيد التحميل...",
"Map": "الخريطة",
- "Mobilize 100+ people praying daily for each DOXA people group": "حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا",
+ "Mobilize 100+ people praying daily for each DOXA people group": "حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة شعبية من مجموعات دوكسا",
"No One Praying": "لا أحد يصلّي",
"No options found": "لم يتم العثور على أي خيارات",
"No poster has been generated for this country yet.": "لم يُنشأ أي ملصق لهذه الدولة بعد.",
- "No unengaged people groups by 2033": "الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033",
+ "No unengaged people groups by 2033": "لا مجموعات شعبية غير مَخْدُومَة بحلول عام 2033",
"Not Adopted": "لم يتم انتماؤه",
"Other": "أخرى",
"Page Not Found": "الصفحة غير موجودة",
- "People Group": "مجموعة بشرية",
+ "People Group": "مجموعة شعبية",
"People Groups": "مجموعات شعبية",
"People committed to praying": "الأشخاص الذين التزموا بالصلاة",
- "Pick a region above, or click any dot to open that people group's country.": "اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.",
+ "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": "عدد السكان",
"Prayer Coverage": "تغطية الصلاة",
@@ -52,7 +52,7 @@
"Select": "اختر",
"Select View": "اختر العرض",
"Show Filters": "إظهار عوامل التصفية",
- "There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.": "توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",
+ "There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.": "توجد %count% مجموعة شعبية في %country%. تحقق من الخريطة لمعرفة المجموعات الشعبية الواقعة على حدود هذه الدولة أيضًا.",
"Total": "المجموع",
"Type to search...": "اكتب ما تريد البحث عنه...",
"Unengaged people groups": "المجموعات الشعبية غير المَخْدُومَة",
@@ -61,7 +61,7 @@
"WAGF Block": "كتلة WAGF",
"WAGF Region": "منطقة WAGF",
"people groups adopted": "مجموعات شعبية متبنَّاة",
- "people groups engaged": "مجموعات شعبية مُخْدُومَة",
+ "people groups engaged": "مجموعات شعبية مَخْدُومَة",
"Outside this region": "خارج هذه المنطقة",
"Pray": "صلّي",
"Loading region dashboards…": "جارٍ تحميل لوحات المناطق…",
diff --git a/plugin-designs/regions-dashboard/regions-list.vue b/plugin-designs/regions-dashboard/regions-list.vue
index 0f43cb229..552eb49d8 100644
--- a/plugin-designs/regions-dashboard/regions-list.vue
+++ b/plugin-designs/regions-dashboard/regions-list.vue
@@ -45,7 +45,7 @@ import { useRegionsI18n } from './src/useRegionsI18n.js'
// ar renders right-to-left. RTL_LOCALES is the shared set and :dir on our own root is the
// house pattern (doxa-simple-map.vue:18, :246, :1346) — an EMBEDDED element must not reach for
// document.documentElement.dir, which belongs to the host page.
-import { RTL_LOCALES } from '@map/i18n/index.js'
+import { RTL_LOCALES, localeFromUrl } from '@map/i18n/index.js'
import { useI18n } from 'vue-i18n'
import { useDocumentFont, BEBAS_NEUE_FACES, POPPINS_FACES, FIGTREE_FACES, OSWALD_FACES } from '@map/composables/useDocumentFont.js'
import { summarizeRegions, PEOPLE_GROUP_LIST_FIELDS } from '@map/utils/countries-meta.js'
@@ -100,8 +100,15 @@ const prayBaseUrl = computed(() => props.prayBaseUrl || cfg.value.prayBaseUrl |
// English, because this read only cfg.languageCode while the locale arrives as
// cfg.locale (ProfileLoader's contract, ProfileLoader.vue:156 accepts locale OR lang).
// Falling through to the same keys means translating the chrome also translates the data.
+// ★ AND THE URL, LAST — the same fix region-dashboards.vue got, on the leaf that did not get it.
+// I fixed the dashboard leaf and stopped, and the ENGLISH census could not see what was left:
+// its ours-vs-theirs sets matched because both sides were in English. The ARABIC census found it
+// on the first run — our h1 and subtitle rendered "المناطق" while all 41 country names in the
+// table stayed "Angola", "Benin", "Cameroon". A shared /regions-list/?lang=ar link translated the
+// chrome and then asked the prayer API in English, which is the defect this comment block already
+// describes; it was only ever half fixed.
const languageCode = computed(() =>
- props.languageCode || cfg.value.languageCode || cfg.value.locale || cfg.value.lang || '')
+ props.languageCode || cfg.value.languageCode || cfg.value.locale || cfg.value.lang || localeFromUrl() || '')
// Where the shared asset tree is served from: the generator bakes it per page depth and the
// composite forwards it via INHERITED_PAGE_KEYS. Needed for the vendored @font-face path below.
const assetsBase = computed(() => cfg.value.assetsBase || './assets')
diff --git a/public/dx-maps/doxa-maps-spa/manifest.json b/public/dx-maps/doxa-maps-spa/manifest.json
index bc547599d..dbb769492 100644
--- a/public/dx-maps/doxa-maps-spa/manifest.json
+++ b/public/dx-maps/doxa-maps-spa/manifest.json
@@ -888,7 +888,7 @@
"bundle": "regions-dashboard",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"output": "dx-maps/regions-dashboard/regions-dashboard.js",
- "integrity": "sha384-5G+7nF+x4ahzcEEJIAod2y5rTxV+dMK2o8Svn+oaFjxI896QlwFgcEDrZBVSL2R9",
+ "integrity": "sha384-J3f1oK59LwH8ErsviA/aZOxsq4BtQmhHOJlE9vjv//ZCsQ3DYALJdntPGP2+9DXE",
"elements": [
"regions-dashboard"
],
@@ -908,7 +908,7 @@
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "",
- "script": "\n\n\n\n