Translate the three poster-wall nouns the regions list was passing in English

sr's census found item-noun="country", item-noun-plural="countries" and
unit="UPG" passed as literals. All three reach the DOM: PosterWall renders the
noun pair at its section count (n === 1 ? itemNoun : plural) and the unit beside
each row's count, so in Arabic the chrome translated and these stayed English.

The noun pair now goes through t(). Country and Countries were already in the
catalogue in all eleven locales -- Land/Länder, الدولة/الدول, Страна/Страны --
so this adds no strings, and PosterWall keeps making its own singular/plural
choice with the caller supplying both forms, which is what its props are for.

unit stays "UPG" on purpose. It is DX-life's term of art, and their own Arabic
common.json carries the literal "UPG" rather than translating it; matching them
is the point of the port. It is the one entry the census still reports here.

A fourth literal the census did not flag went with them: the prayer-list
"Coming soon" sentence, which reaches exportState.message and so renders too.
That one had no key, so it lands as an English-source key -- the convention
useRegionsI18n exists to serve -- translated in all eleven locales, 77 keys
each, parity green.

MEASURED, this plugin's entries in check:hardcoded-english: 3 before, 1 after.
This commit is contained in:
driver 2026-09-29 04:02:54 +00:00 committed by Doxa Maps
parent d2fd5452d5
commit 90613f9c88
12 changed files with 25 additions and 14 deletions

View file

@ -74,5 +74,6 @@
"Countries: %count%": "الدول: %count%",
"Regions: %count%": "المناطق: %count%",
"countryCount": "لا دول | دولة واحدة | دولتان | {n} دول | {n} دولة | {n} دولة",
"regionCount": "لا مناطق | منطقة واحدة | منطقتان | {n} مناطق | {n} منطقة | {n} منطقة"
"regionCount": "لا مناطق | منطقة واحدة | منطقتان | {n} مناطق | {n} منطقة | {n} منطقة",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "قريبًا — ستُنشأ قائمة صلاة لكل دولة، تذكر كل مجموعة شعبية غير مبلَّغة فيها."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Länder: %count%",
"Regions: %count%": "Regionen: %count%",
"countryCount": "{n} Länder | {n} Land | {n} Länder",
"regionCount": "{n} Regionen | {n} Region | {n} Regionen"
"regionCount": "{n} Regionen | {n} Region | {n} Regionen",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "Demnächst — für jedes Land wird eine Gebetsliste erstellt, die jede unerreichte Volksgruppe darin benennt."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Countries: %count%",
"Regions: %count%": "Regions: %count%",
"countryCount": "{n} countries | {n} country | {n} countries",
"regionCount": "{n} regions | {n} region | {n} regions"
"regionCount": "{n} regions | {n} region | {n} regions",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Países: %count%",
"Regions: %count%": "Regiones: %count%",
"countryCount": "{n} países | {n} país | {n} países",
"regionCount": "{n} regiones | {n} región | {n} regiones"
"regionCount": "{n} regiones | {n} región | {n} regiones",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "Muy pronto — se generará una lista de oración para cada país, nombrando cada grupo étnico no alcanzado que haya en él."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Pays: %count%",
"Regions: %count%": "Régions: %count%",
"countryCount": "{n} pays | {n} pays | {n} pays",
"regionCount": "{n} régions | {n} région | {n} régions"
"regionCount": "{n} régions | {n} région | {n} régions",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "Bientôt — une liste de prière sera générée pour chaque pays, nommant chaque groupe de population non atteint qui s'y trouve."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "देश: %count%",
"Regions: %count%": "क्षेत्र: %count%",
"countryCount": "{n} देश | {n} देश | {n} देश",
"regionCount": "{n} क्षेत्र | {n} क्षेत्र | {n} क्षेत्र"
"regionCount": "{n} क्षेत्र | {n} क्षेत्र | {n} क्षेत्र",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "जल्द आ रहा है — हर देश के लिए एक प्रार्थना सूची बनाई जाएगी, जिसमें उसके भीतर के हर अछूते जनसमूह का नाम होगा।"
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Paesi: %count%",
"Regions: %count%": "Regioni: %count%",
"countryCount": "{n} paesi | {n} paese | {n} paesi",
"regionCount": "{n} regioni | {n} regione | {n} regioni"
"regionCount": "{n} regioni | {n} regione | {n} regioni",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "Prossimamente — per ogni paese verrà generata una lista di preghiera, con il nome di ogni gruppo etnico non raggiunto al suo interno."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Países: %count%",
"Regions: %count%": "Regiões: %count%",
"countryCount": "{n} países | {n} país | {n} países",
"regionCount": "{n} regiões | {n} região | {n} regiões"
"regionCount": "{n} regiões | {n} região | {n} regiões",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "Em breve — será gerada uma lista de oração para cada país, nomeando cada grupo étnico não alcançado nele."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Țări: %count%",
"Regions: %count%": "Regiuni: %count%",
"countryCount": "o țară | {n} țări | {n} de țări",
"regionCount": "o regiune | {n} regiuni | {n} de regiuni"
"regionCount": "o regiune | {n} regiuni | {n} de regiuni",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "În curând — pentru fiecare țară va fi generată o listă de rugăciune, numind fiecare grup etnic neatins din ea."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "Страны: %count%",
"Regions: %count%": "Регионы: %count%",
"countryCount": "{n} страна | {n} страны | {n} стран | {n} стран",
"regionCount": "{n} регион | {n} региона | {n} регионов | {n} регионов"
"regionCount": "{n} регион | {n} региона | {n} регионов | {n} регионов",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "Скоро — для каждой страны будет создан список для молитвы с названием каждой неохваченной народности в ней."
}

View file

@ -74,5 +74,6 @@
"Countries: %count%": "国家:%count%",
"Regions: %count%": "区域:%count%",
"countryCount": "{n} 个国家",
"regionCount": "{n} 个地区"
"regionCount": "{n} 个地区",
"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.": "即将推出——将为每个国家生成一份祷告清单,列出其中每一个未得之民。"
}

View file

@ -525,8 +525,8 @@ useShadowStyles(
:heading="''"
:intro="''"
unit="UPG"
item-noun="country"
item-noun-plural="countries"
:item-noun="t('Country')"
:item-noun-plural="t('Countries')"
:collapsible="false"
:embedded="true"
:section-heads="false"
@ -535,7 +535,7 @@ useShadowStyles(
:unsupported="posterUnsupported"
download-prefix="doxa-country"
poster-action="print"
prayer-list-soon-message="Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it."
:prayer-list-soon-message="t('Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.')"
/>
</template>
</RegionSectionCard>