Translate the three strings that were built from fragments or hardcoded

Regions: the country and region counts under the dashboard title were English
template literals; they are now label keys ('Countries: %count%') in all eleven
locales, which also sidesteps plural forms.
Gospel: the Zume chip joined 'in' + a language name, which reads backwards in
Hindi; it is now one phrase key with a {language} placeholder.
UPG-100: the Batch Select button title comes from legend.title.batchSelect.
This commit is contained in:
Doxa Maps 2026-09-28 10:42:33 +00:00
parent 7d8335575e
commit 20de4c457b
36 changed files with 93 additions and 59 deletions

View file

@ -91,7 +91,8 @@
"jesusFilm": "فيلم يسوع",
"audioScripture": "الكتاب المقدس الصوتي",
"bibleStoriesPlain": "قصص الكتاب المقدس",
"nParts": "عدد الأجزاء: {n}"
"nParts": "عدد الأجزاء: {n}",
"zumeInLanguage": "Zume، باللغة {language}"
},
"state": {
"noneFound": "لا شيء",
@ -102,8 +103,7 @@
"unchecked": "لم يُتحقق منه",
"linkDead": "رابط معطّل",
"wrongLanguage": "لغة غير صحيحة",
"varietyNotStated": "(اللهجة غير محددة)",
"inLanguage": "بـ"
"varietyNotStated": "(اللهجة غير محددة)"
},
"guide": {
"dotVsCountry": "كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",

View file

@ -7,7 +7,8 @@
"gospelResources": "موارد الإنجيل",
"languageFamilies": "العائلات اللغوية",
"prayer": "تقدم الصلاة",
"upg100List": "قائمة UPG 100 الخاصة بي"
"upg100List": "قائمة UPG 100 الخاصة بي",
"batchSelect": "تحديد متعدد"
},
"header": {
"collapsed": "وسيلة الإيضاح",

View file

@ -68,5 +68,7 @@
"No regions found.": "لم يتم العثور على مناطق.",
"Region data could not be loaded. This is a connection problem, not a filter.": "تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.",
"People groups could not be loaded. This is a connection problem, not a filter.": "تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة.",
"Countries: %count%": "الدول: %count%",
"Regions: %count%": "المناطق: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "JESUS Film",
"audioScripture": "Audio-Bibeltext",
"bibleStoriesPlain": "Bibelgeschichten",
"nParts": "{n} Teile"
"nParts": "{n} Teile",
"zumeInLanguage": "Zume, auf {language}"
},
"state": {
"noneFound": "nichts gefunden",
@ -102,8 +103,7 @@
"unchecked": "ungeprüft",
"linkDead": "Link tot",
"wrongLanguage": "falsche Sprache",
"varietyNotStated": "(Varietät nicht angegeben)",
"inLanguage": "auf"
"varietyNotStated": "(Varietät nicht angegeben)"
},
"guide": {
"dotVsCountry": "Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Evangeliumsressourcen",
"languageFamilies": "Sprachfamilien",
"prayer": "Gebetsfortschritt",
"upg100List": "Meine UPG-100-Liste"
"upg100List": "Meine UPG-100-Liste",
"batchSelect": "Mehrfachauswahl"
},
"header": {
"collapsed": "Legende",

View file

@ -68,5 +68,7 @@
"No regions found.": "Keine Regionen gefunden.",
"Region data could not be loaded. This is a connection problem, not a filter.": "Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.",
"People groups could not be loaded. This is a connection problem, not a filter.": "Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen.",
"Countries: %count%": "Länder: %count%",
"Regions: %count%": "Regionen: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "JESUS Film",
"audioScripture": "Audio Scripture",
"bibleStoriesPlain": "Bible Stories",
"nParts": "{n} parts"
"nParts": "{n} parts",
"zumeInLanguage": "Zume, in {language}"
},
"state": {
"noneFound": "none found",
@ -102,8 +103,7 @@
"unchecked": "unchecked",
"linkDead": "link dead",
"wrongLanguage": "wrong language",
"varietyNotStated": "(variety not stated)",
"inLanguage": "in"
"varietyNotStated": "(variety not stated)"
},
"guide": {
"dotVsCountry": "A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Gospel Resources",
"languageFamilies": "Language Families",
"prayer": "Prayer Progress",
"upg100List": "My UPG 100 List"
"upg100List": "My UPG 100 List",
"batchSelect": "Batch Select"
},
"header": {
"default": "Legend",

View file

@ -68,5 +68,7 @@
"No regions found.": "No regions found.",
"Region data could not be loaded. This is a connection problem, not a filter.": "Region data could not be loaded. This is a connection problem, not a filter.",
"People groups could not be loaded. This is a connection problem, not a filter.": "People groups could not be loaded. This is a connection problem, not a filter.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.",
"Countries: %count%": "Countries: %count%",
"Regions: %count%": "Regions: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "Película JESÚS",
"audioScripture": "Escrituras en audio",
"bibleStoriesPlain": "Historias bíblicas",
"nParts": "{n} partes"
"nParts": "{n} partes",
"zumeInLanguage": "Zume, en {language}"
},
"state": {
"noneFound": "nada encontrado",
@ -102,8 +103,7 @@
"unchecked": "sin verificar",
"linkDead": "enlace roto",
"wrongLanguage": "idioma incorrecto",
"varietyNotStated": "(variedad no indicada)",
"inLanguage": "en"
"varietyNotStated": "(variedad no indicada)"
},
"guide": {
"dotVsCountry": "Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Recursos del Evangelio",
"languageFamilies": "Familias lingüísticas",
"prayer": "Progreso de oración",
"upg100List": "Mi lista UPG 100"
"upg100List": "Mi lista UPG 100",
"batchSelect": "Selección múltiple"
},
"header": {
"collapsed": "Leyenda",

View file

@ -68,5 +68,7 @@
"No regions found.": "No se encontraron regiones.",
"Region data could not be loaded. This is a connection problem, not a filter.": "No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.",
"People groups could not be loaded. This is a connection problem, not a filter.": "No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas.",
"Countries: %count%": "Países: %count%",
"Regions: %count%": "Regiones: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "Film JÉSUS",
"audioScripture": "Écritures en audio",
"bibleStoriesPlain": "Histoires bibliques",
"nParts": "{n} parties"
"nParts": "{n} parties",
"zumeInLanguage": "Zume, en {language}"
},
"state": {
"noneFound": "rien trouvé",
@ -102,8 +103,7 @@
"unchecked": "non vérifié",
"linkDead": "lien mort",
"wrongLanguage": "mauvaise langue",
"varietyNotStated": "(variété non précisée)",
"inLanguage": "en"
"varietyNotStated": "(variété non précisée)"
},
"guide": {
"dotVsCountry": "Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Ressources de l'Évangile",
"languageFamilies": "Familles de langues",
"prayer": "Progression de la prière",
"upg100List": "Ma liste UPG 100"
"upg100List": "Ma liste UPG 100",
"batchSelect": "Sélection multiple"
},
"header": {
"collapsed": "Légende",

View file

@ -68,5 +68,7 @@
"No regions found.": "Aucune région trouvée.",
"Region data could not be loaded. This is a connection problem, not a filter.": "Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.",
"People groups could not be loaded. This is a connection problem, not a filter.": "Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés.",
"Countries: %count%": "Pays: %count%",
"Regions: %count%": "Régions: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "यीशु फ़िल्म",
"audioScripture": "ऑडियो पवित्र शास्त्र",
"bibleStoriesPlain": "बाइबल की कहानियाँ",
"nParts": "{n} भाग"
"nParts": "{n} भाग",
"zumeInLanguage": "Zume, {language} में"
},
"state": {
"noneFound": "कुछ नहीं मिला",
@ -102,8 +103,7 @@
"unchecked": "अनजाँचा",
"linkDead": "लिंक निष्क्रिय",
"wrongLanguage": "ग़लत भाषा",
"varietyNotStated": "(उपभाषा नहीं बताई गई)",
"inLanguage": "में"
"varietyNotStated": "(उपभाषा नहीं बताई गई)"
},
"guide": {
"dotVsCountry": "हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",

View file

@ -7,7 +7,8 @@
"gospelResources": "सुसमाचार संसाधन",
"languageFamilies": "भाषा परिवार",
"prayer": "प्रार्थना प्रगति",
"upg100List": "मेरी UPG 100 सूची"
"upg100List": "मेरी UPG 100 सूची",
"batchSelect": "एक साथ चुनें"
},
"header": {
"collapsed": "किंवदंती",

View file

@ -68,5 +68,7 @@
"No regions found.": "कोई क्षेत्र नहीं मिला।",
"Region data could not be loaded. This is a connection problem, not a filter.": "क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।",
"People groups could not be loaded. This is a connection problem, not a filter.": "लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।",
"Countries: %count%": "देश: %count%",
"Regions: %count%": "क्षेत्र: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "Film GESÙ",
"audioScripture": "Scritture in audio",
"bibleStoriesPlain": "Storie bibliche",
"nParts": "{n} parti"
"nParts": "{n} parti",
"zumeInLanguage": "Zume, in {language}"
},
"state": {
"noneFound": "nulla trovato",
@ -102,8 +103,7 @@
"unchecked": "non verificato",
"linkDead": "link non attivo",
"wrongLanguage": "lingua errata",
"varietyNotStated": "(varietà non indicata)",
"inLanguage": "in"
"varietyNotStated": "(varietà non indicata)"
},
"guide": {
"dotVsCountry": "Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Risorse del Vangelo",
"languageFamilies": "Famiglie linguistiche",
"prayer": "Avanzamento della preghiera",
"upg100List": "La mia lista UPG 100"
"upg100List": "La mia lista UPG 100",
"batchSelect": "Selezione multipla"
},
"header": {
"collapsed": "Legenda",

View file

@ -68,5 +68,7 @@
"No regions found.": "Nessuna regione trovata.",
"Region data could not be loaded. This is a connection problem, not a filter.": "Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.",
"People groups could not be loaded. This is a connection problem, not a filter.": "Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati.",
"Countries: %count%": "Paesi: %count%",
"Regions: %count%": "Regioni: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "Filme JESUS",
"audioScripture": "Escrituras em áudio",
"bibleStoriesPlain": "Histórias bíblicas",
"nParts": "{n} partes"
"nParts": "{n} partes",
"zumeInLanguage": "Zume, em {language}"
},
"state": {
"noneFound": "nada encontrado",
@ -102,8 +103,7 @@
"unchecked": "não verificado",
"linkDead": "link inativo",
"wrongLanguage": "idioma incorreto",
"varietyNotStated": "(variedade não indicada)",
"inLanguage": "em"
"varietyNotStated": "(variedade não indicada)"
},
"guide": {
"dotVsCountry": "Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Recursos do Evangelho",
"languageFamilies": "Famílias linguísticas",
"prayer": "Progresso da oração",
"upg100List": "A minha lista UPG 100"
"upg100List": "A minha lista UPG 100",
"batchSelect": "Seleção múltipla"
},
"header": {
"collapsed": "Legenda",

View file

@ -68,5 +68,7 @@
"No regions found.": "Nenhuma região encontrada.",
"Region data could not be loaded. This is a connection problem, not a filter.": "Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.",
"People groups could not be loaded. This is a connection problem, not a filter.": "Não foi possível carregar os povos. É um problema de conexão, não um filtro.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados.",
"Countries: %count%": "Países: %count%",
"Regions: %count%": "Regiões: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "Filmul ISUS",
"audioScripture": "Scripturi audio",
"bibleStoriesPlain": "Povestiri biblice",
"nParts": "{n} părți"
"nParts": "{n} părți",
"zumeInLanguage": "Zume, în {language}"
},
"state": {
"noneFound": "nimic găsit",
@ -102,8 +103,7 @@
"unchecked": "neverificat",
"linkDead": "link mort",
"wrongLanguage": "limbă greșită",
"varietyNotStated": "(varietate nespecificată)",
"inLanguage": "în"
"varietyNotStated": "(varietate nespecificată)"
},
"guide": {
"dotVsCountry": "Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Resurse ale Evangheliei",
"languageFamilies": "Familii de limbi",
"prayer": "Progresul rugăciunii",
"upg100List": "Lista mea UPG 100"
"upg100List": "Lista mea UPG 100",
"batchSelect": "Selecție multiplă"
},
"header": {
"collapsed": "Legendă",

View file

@ -68,5 +68,7 @@
"No regions found.": "Nu au fost găsite regiuni.",
"Region data could not be loaded. This is a connection problem, not a filter.": "Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.",
"People groups could not be loaded. This is a connection problem, not a filter.": "Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate.",
"Countries: %count%": "Țări: %count%",
"Regions: %count%": "Regiuni: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "Фильм «Иисус»",
"audioScripture": "Аудио с Писанием",
"bibleStoriesPlain": "Библейские истории",
"nParts": "частей: {n}"
"nParts": "частей: {n}",
"zumeInLanguage": "Zume, на языке {language}"
},
"state": {
"noneFound": "ничего не найдено",
@ -102,8 +103,7 @@
"unchecked": "не проверено",
"linkDead": "ссылка не работает",
"wrongLanguage": "не тот язык",
"varietyNotStated": "(вариант не указан)",
"inLanguage": "на"
"varietyNotStated": "(вариант не указан)"
},
"guide": {
"dotVsCountry": "Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",

View file

@ -7,7 +7,8 @@
"gospelResources": "Евангельские ресурсы",
"languageFamilies": "Языковые семьи",
"prayer": "Прогресс молитвы",
"upg100List": "Мой список UPG 100"
"upg100List": "Мой список UPG 100",
"batchSelect": "Множественный выбор"
},
"header": {
"collapsed": "Условные обозначения",

View file

@ -68,5 +68,7 @@
"No regions found.": "Регионы не найдены.",
"Region data could not be loaded. This is a connection problem, not a filter.": "Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.",
"People groups could not be loaded. This is a connection problem, not a filter.": "Не удалось загрузить народы. Это проблема соединения, а не фильтра.",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты.",
"Countries: %count%": "Страны: %count%",
"Regions: %count%": "Регионы: %count%"
}

View file

@ -91,7 +91,8 @@
"jesusFilm": "《耶稣传》",
"audioScripture": "音频圣经",
"bibleStoriesPlain": "圣经故事",
"nParts": "{n} 个部分"
"nParts": "{n} 个部分",
"zumeInLanguage": "Zume — {language}"
},
"state": {
"noneFound": "一无所获",
@ -102,8 +103,7 @@
"unchecked": "未核实",
"linkDead": "链接失效",
"wrongLanguage": "语言不符",
"varietyNotStated": "(未注明变体)",
"inLanguage": "—"
"varietyNotStated": "(未注明变体)"
},
"guide": {
"dotVsCountry": "每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",

View file

@ -7,7 +7,8 @@
"gospelResources": "福音资源",
"languageFamilies": "语系",
"prayer": "祷告进度",
"upg100List": "我的 UPG 100 名单"
"upg100List": "我的 UPG 100 名单",
"batchSelect": "批量选择"
},
"header": {
"collapsed": "图例",

View file

@ -68,5 +68,7 @@
"No regions found.": "未找到区域。",
"Region data could not be loaded. This is a connection problem, not a filter.": "无法加载区域数据。这是连接问题,不是筛选问题。",
"People groups could not be loaded. This is a connection problem, not a filter.": "无法加载民族群体。这是连接问题,不是筛选问题。",
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"
"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.": "地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。",
"Countries: %count%": "国家:%count%",
"Regions: %count%": "区域:%count%"
}

View file

@ -2746,7 +2746,7 @@ useShadowStyles(
<a v-else-if="selectedGroup.zume_approx" class="gm-chip approx"
:href="selectedGroup.zume_approx.u" target="_blank" rel="noopener noreferrer"
:title="selectedGroup.zume_approx.n + '. The course is written in one standard script, so it is likely to be readable — but it was not published against this ISO code and is shown as an approximate match, not a confirmed one.'">
{{ t('gospel.res.training') }} · Zume, {{ t('gospel.state.inLanguage') }} {{ selectedGroup.zume_approx.l }} <em>{{ t('gospel.state.varietyNotStated') }}</em>
{{ t('gospel.res.training') }} · {{ t('gospel.res.zumeInLanguage', { language: selectedGroup.zume_approx.l }) }} <em>{{ t('gospel.state.varietyNotStated') }}</em>
</a>
<span v-else class="gm-chip meh"
title="Zume Training publishes in 54 languages and this is not one of them. That is a gap in one training platform, not a statement about every training resource.">

View file

@ -399,6 +399,7 @@ const { locale: packetLocale, t } = useI18n()
// COMPUTED, not a constant: a locale change must move it. A `const` captured at setup would keep
// the mounting language forever, which is the subtler half of the same bug.
const LEGEND_TITLE = computed(() => t('legend.title.upg100List'))
const BATCH_SELECT_TITLE = computed(() => t('legend.title.batchSelect'))
// ★ THE SEARCH PLACEHOLDER WAS THE LAST ENGLISH STRING ON THE ARABIC SCREEN. repo's ?lang=ar
// screenshot was clean except for this one hardcoded literal.
// ⚠ A computed, and declared HERE rather than beside geocoderContext, because t() is not
@ -2785,7 +2786,7 @@ onBeforeUnmount(() => {
:active="batchMode"
:class="{ 'upg-batch-on': batchMode }"
:aria-pressed="batchMode ? 'true' : 'false'"
title="Batch Select"
:title="BATCH_SELECT_TITLE"
@click="toggleBatchMode"
>
<!-- checklist / layered-squares glyph (D-9), matches the shared

View file

@ -219,7 +219,7 @@ const subject = computed(() => {
}
if (selectedRegion.value) {
const r = selectedRegion.value
return { kind: 'region', title: r.label || t('Other'), context: `${formatNumber(r.countryCount)} countries`, stats: r }
return { kind: 'region', title: r.label || t('Other'), context: tf('Countries: %count%', { count: formatNumber(r.countryCount) }), stats: r }
}
const all = emptyStats()
for (const r of regions.value) {
@ -231,7 +231,7 @@ const subject = computed(() => {
// ('جميع المناطق' at ar), and this file ALREADY calls t('All Regions') for the back-link —
// so the same string was translated in one place and hardcoded in another. MEASURED at ar
// and zh: this title rendered English inside an otherwise fully localised element.
return { kind: 'all', title: t('All Regions'), context: `${formatNumber(regions.value.length)} regions`, stats: all }
return { kind: 'all', title: t('All Regions'), context: tf('Regions: %count%', { count: formatNumber(regions.value.length) }), stats: all }
})
// ★ NO BAR CHART. It was ours, not theirs, and the rule is that a SELECTED region or country