diff --git a/internal/check-packet-map-missing-loud.mjs b/internal/check-packet-map-missing-loud.mjs index a596e1375..cf222d464 100644 --- a/internal/check-packet-map-missing-loud.mjs +++ b/internal/check-packet-map-missing-loud.mjs @@ -87,10 +87,13 @@ for (const lang of ['en', 'es', 'ar']) { notes.push(` ok ${lang.padEnd(4)} full + lightweight: loud when missing, quiet when present`) } -// Per-key fallback, stated separately because it is a property of the STRINGS, not the renderer: -// every non-English locale deliberately lacks the key and must inherit the English sentence. +// Per-key fallback, stated separately because it is a property of the STRINGS, not the renderer. Every +// block carries its own sentence (check:packet-strings-parity requires it); a block that ever lacks it +// still prints the English one rather than the raw key, which side (1) above asserts. const missingIn = Object.keys(strings).filter((k) => k !== '_meta' && k !== 'en' && !strings[k].map_unavailable) -notes.push(` ok ${missingIn.length} locales fall back to the English sentence (no invented translations)`) +notes.push(missingIn.length + ? ` ok ${missingIn.length} locale(s) fall back to the English sentence: ${missingIn.join(', ')}` + : ' ok every locale carries its own sentence') for (const n of notes) console.log(n) if (fails.length) { diff --git a/library/scripts/posters/packet-strings.json b/library/scripts/posters/packet-strings.json index 23ce3cef4..478b95170 100644 --- a/library/scripts/posters/packet-strings.json +++ b/library/scripts/posters/packet-strings.json @@ -10,7 +10,7 @@ "en": { "map_page_kicker": "UNENGAGED PEOPLE GROUPS", "map_page_sub": "A prayer list of {count} unreached people groups", - "map_unavailable": "The map for this zone is not included in this printing.", + "map_unavailable": "The map for this prayer list is not included in this printing.", "list_header": "{from}–{to} of {count} · pray for them by name", "people_suffix": "people", "no_photo": "no photo available", @@ -232,6 +232,7 @@ "es": { "map_page_kicker": "GRUPOS ÉTNICOS NO EVANGELIZADOS", "map_page_sub": "Una lista de oración de {count} grupos étnicos no alcanzados", + "map_unavailable": "El mapa de esta lista de oración no se incluye en esta impresión.", "list_header": "{from}–{to} de {count} · ora por ellos por nombre", "people_suffix": "personas", "no_photo": "sin fotografía disponible", @@ -453,6 +454,7 @@ "fr": { "map_page_kicker": "GROUPES ETHNIQUES NON ATTEINTS", "map_page_sub": "Une liste de prière de {count} groupes ethniques non atteints", + "map_unavailable": "La carte de cette liste de prière n’est pas incluse dans cette impression.", "list_header": "{from}–{to} sur {count} · priez pour eux par leur nom", "people_suffix": "personnes", "no_photo": "aucune photo disponible", @@ -674,6 +676,7 @@ "pt": { "map_page_kicker": "GRUPOS ÉTNICOS NÃO ALCANÇADOS", "map_page_sub": "Uma lista de oração de {count} grupos étnicos não alcançados", + "map_unavailable": "O mapa desta lista de oração não está incluído nesta impressão.", "list_header": "{from}–{to} de {count} · ore por eles pelo nome", "people_suffix": "pessoas", "no_photo": "sem fotografia disponível", @@ -893,6 +896,7 @@ "de": { "map_page_kicker": "UNERREICHTE VOLKSGRUPPEN", "map_page_sub": "Eine Gebetsliste von {count} unerreichten Volksgruppen", + "map_unavailable": "Die Karte zu dieser Gebetsliste ist in diesem Ausdruck nicht enthalten.", "list_header": "{from}–{to} von {count} · betet namentlich für sie", "people_suffix": "Menschen", "no_photo": "kein Foto verfügbar", @@ -1114,6 +1118,7 @@ "it": { "map_page_kicker": "GRUPPI ETNICI NON RAGGIUNTI", "map_page_sub": "Una lista di preghiera di {count} gruppi etnici non raggiunti", + "map_unavailable": "La mappa di questa lista di preghiera non è inclusa in questa stampa.", "list_header": "{from}–{to} di {count} · pregate per loro per nome", "people_suffix": "persone", "no_photo": "nessuna foto disponibile", @@ -1333,6 +1338,7 @@ "ro": { "map_page_kicker": "GRUPURI ETNICE NEATINSE", "map_page_sub": "O listă de rugăciune pentru {count} grupuri etnice neatinse", + "map_unavailable": "Harta acestei liste de rugăciune nu este inclusă în această tipărire.", "list_header": "{from}–{to} din {count} · rugați-vă pentru ei pe nume", "people_suffix": "persoane", "no_photo": "nicio fotografie disponibilă", @@ -1552,6 +1558,7 @@ "ru": { "map_page_kicker": "НЕОХВАЧЕННЫЕ НАРОДЫ", "map_page_sub": "Молитвенный список из {count} неохваченных народов", + "map_unavailable": "Карта этого молитвенного списка не включена в эту распечатку.", "list_header": "{from}–{to} из {count} · молитесь за них поимённо", "people_suffix": "человек", "no_photo": "фотография недоступна", @@ -1773,6 +1780,7 @@ "ar": { "map_page_kicker": "شعوب غير مبلَّغة", "map_page_sub": "قائمة صلاة من أجل {count} شعبًا غير مبلَّغ", + "map_unavailable": "خريطة قائمة الصلاة هذه غير مضمَّنة في هذه النسخة المطبوعة.", "list_header": "{from}–{to} من {count} · صلّوا لأجلهم بالاسم", "people_suffix": "نسمة", "no_photo": "لا توجد صورة متاحة", @@ -1994,6 +2002,7 @@ "hi": { "map_page_kicker": "अनछुए जनसमूह", "map_page_sub": "{count} अनछुए जनसमूहों की प्रार्थना सूची", + "map_unavailable": "इस प्रार्थना सूची का नक्शा इस प्रिंट में शामिल नहीं है।", "list_header": "{count} में से {from}–{to} · उनके नाम लेकर प्रार्थना करें", "people_suffix": "लोग", "no_photo": "कोई चित्र उपलब्ध नहीं", @@ -2213,6 +2222,7 @@ "zh": { "map_page_kicker": "未得之民", "map_page_sub": "為 {count} 個未得之民的禱告名單", + "map_unavailable": "此禱告名單的地圖未包含在本次列印中。", "list_header": "{count} 之中的 {from}–{to} · 按名為他們禱告", "people_suffix": "人", "no_photo": "沒有照片",