The legend's region sections, its Deaf row and its one-country zones, the wall's card names, the print progress and error messages, the map's status badge and the Population column all rendered English in every locale. None of them was visible to check:hardcoded-english: they were single words, .js modules, Error() arguments, library components or number formatting. - Legend: region rows through one REGION_KEY table shared with the wall (poster.region_*, new region_deaf); zones through zoneTitle (tier A by country, the Deaf row by its bloc name); node ids stay English-derived. - Wall: card labels through zoneTitle, so the Show-on-map name, alt text, tooltip, HUD title and printed title agree with the legend and packet. - Errors a reader sees are keyedError(key, English, params); errorText(e, t) shows them translated, and an unkeyed error still shows its own message. Developer detail for a failed data load goes to the console; the badge says upgMap.mapDataFailed. - Population: Intl compact notation in the app's locale, same precision. - Country Posters: the unsupported card's reason is messages.countryPosterTooMany, not the data file's English note. - Strings only the UPG-100 map shows move to a new upgMap area, so other bundles do not carry them (country-posters 1,490,907 bytes). - check:hardcoded-english judges keyedError's English as a fallback (quiet when the key resolves everywhere, a finding when it does not); check:label-key-coverage follows REGION_KEY to legend-tree.js and covers the legend's table and its regionFor producer. Both self-tests two-sided.
45 lines
3.3 KiB
JSON
45 lines
3.3 KiB
JSON
{
|
||
"menuComingSoon": "Menü folgt in Kürze",
|
||
"pinHint": {
|
||
"tapDot": "Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"
|
||
},
|
||
"upg100WallHeading": "Meine UPG-100-Liste — Gebetslisten und Poster",
|
||
"upg100WallTag": "Gebetsmobilisierung",
|
||
"upg100WallIntroA": "Wie würden Sie eine Menge von fünftausend speisen? Jesus ließ sie in Gruppen zu fünfzig und hundert lagern, und das Unmögliche wurde teilbar (Lukas 9,14). Dasselbe haben wir mit den 2.106 unerreichten Volksgruppen getan: 27 Listen von etwa fünfzig bis hundert. Jede Liste druckt als Gebetspaket und als Poster, damit 27 Jünger, Gemeinden oder einheimische Leiter je eine tragen können — und für sie beten ",
|
||
"upg100WallIntroEmph": "mit dem Namen ihrer Volksgruppe",
|
||
"upg100WallIntroB": ".",
|
||
"loadingNamed": "{name} wird geladen…",
|
||
"couldNotLoadNamed": "{name} konnte nicht geladen werden.",
|
||
"engineMissing": "Die Karten-Engine {engine} wurde nicht geladen.",
|
||
"packetFailed": "Heft fehlgeschlagen: {reason}",
|
||
"selectionPacketFailed": "Heft der Auswahl fehlgeschlagen: {reason}",
|
||
"posterOneTerritory": "Das Plakat druckt ein Gebiet auf einmal — {count} ausgewählt.",
|
||
"selectionPosterFailed": "Plakat der Auswahl fehlgeschlagen: {reason}",
|
||
"mapUnavailable": "Karte nicht verfügbar",
|
||
"copied": "Kopiert!",
|
||
"copyFailed": "Kopieren fehlgeschlagen — Strg/Cmd-C drücken",
|
||
"engineNotLoaded": "Karten-Engine nicht geladen",
|
||
"engineNotLoadedDetail": "Die Karten-Engine {engine} wurde nicht geladen. Liste und Legende sind nicht betroffen.",
|
||
"viewLoadFailed": "Diese Ansicht konnte nicht geladen werden.",
|
||
"retry": "Erneut versuchen",
|
||
"noMapboxToken": "Kein Mapbox-Token",
|
||
"noMapboxTokenDetail": "Kein Mapbox-Token konfiguriert. Liste und Legende sind nicht betroffen.",
|
||
"loadingBoundaries": "Grenzen werden geladen…",
|
||
"fetchingUupgs": "{n} UUPGs werden abgerufen…",
|
||
"mapStatusCounts": "Flächen: {polys} · Zonen: {zones}/{total} · Pins: {pins}",
|
||
"tapTerritoriesHint": "Tippen Sie auf Gebiete auf der Karte oder auf Legendenzeilen, um sie hinzuzufügen · erneut tippen zum Entfernen",
|
||
"territoriesSelected": "Gebiete: {count}",
|
||
"bandInRange": "✓ Bereich 50–100",
|
||
"bandOutOfRange": "Bereich 50–100",
|
||
"mapContextLost": "Diese Karte wurde entladen, um Grafikspeicher freizugeben.",
|
||
"nOfTotal": "{n} von {total}",
|
||
"mapInitFailed": "Karte konnte nicht initialisiert werden — Token und Container prüfen",
|
||
"countryWallIntroA": "Ein Poster pro Land, bereit zum Beten, Drucken und Aufhängen — und für sie beten ",
|
||
"countryWallIntroB": ". Regionen und Länder sind danach geordnet, wie viele unerreichte Volksgruppen sie umfassen, damit der größte Bedarf vorne steht.",
|
||
"countryWallSoon": "Demnächst: Für jedes Land wird eine Gebetsliste erstellt, die jede unerreichte Volksgruppe darin mit Namen nennt.",
|
||
"countryWallHeading": "Länderposter — Gebetslisten und Poster",
|
||
"largerScreenNotice": "Diese experimentelle Karte ist für große Bildschirme gebaut. Sie öffnet sich hier, aber Teile passen oder funktionieren auf einem Telefon womöglich nicht gut.",
|
||
"desktopOnlyNotice": "{label} funktioniert nur am Desktop – öffnen Sie diese Seite an einem Computer.",
|
||
"noticeDismiss": "Schließen",
|
||
"countryPosterTooMany": "Zu viele Volksgruppen, um lesbar auf ein Plakat zu passen – an einer Lösung wird gearbeitet."
|
||
}
|