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": "Menu in arrivo",
|
||
"pinHint": {
|
||
"tapDot": "Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"
|
||
},
|
||
"upg100WallHeading": "La mia lista UPG 100 — Liste di preghiera e manifesti",
|
||
"upg100WallTag": "Mobilitazione alla preghiera",
|
||
"upg100WallIntroA": "Come sfameresti una folla di cinquemila? Gesù li fece sedere a gruppi di cinquanta e di cento, e l’impossibile divenne condivisibile (Luca 9:14). Abbiamo fatto lo stesso con i 2.106 popoli non raggiunti: 27 liste di circa cinquanta-cento. Ogni lista si stampa come pacchetto di preghiera e manifesto, così 27 discepoli, chiese o responsabili locali ne portano una ciascuno — pregando per loro ",
|
||
"upg100WallIntroEmph": "con il nome del loro popolo",
|
||
"upg100WallIntroB": ".",
|
||
"loadingNamed": "Caricamento di {name}…",
|
||
"couldNotLoadNamed": "Impossibile caricare {name}.",
|
||
"engineMissing": "Il motore di mappa {engine} non è stato caricato.",
|
||
"packetFailed": "Libretto non riuscito: {reason}",
|
||
"selectionPacketFailed": "Libretto della selezione non riuscito: {reason}",
|
||
"posterOneTerritory": "Il manifesto stampa un territorio alla volta — {count} selezionati.",
|
||
"selectionPosterFailed": "Manifesto della selezione non riuscito: {reason}",
|
||
"mapUnavailable": "Mappa non disponibile",
|
||
"copied": "Copiato!",
|
||
"copyFailed": "Copia non riuscita — premi Ctrl/Cmd-C",
|
||
"engineNotLoaded": "motore di mappe non caricato",
|
||
"engineNotLoadedDetail": "Il motore di mappe {engine} non si è caricato. L’elenco e la legenda non sono interessati.",
|
||
"viewLoadFailed": "Impossibile caricare questa vista.",
|
||
"retry": "Riprova",
|
||
"noMapboxToken": "Nessun token Mapbox",
|
||
"noMapboxTokenDetail": "Nessun token Mapbox configurato. L’elenco e la legenda non sono interessati.",
|
||
"loadingBoundaries": "Caricamento dei confini…",
|
||
"fetchingUupgs": "Recupero di {n} UUPG…",
|
||
"mapStatusCounts": "Aree: {polys} · zone: {zones}/{total} · segnaposto: {pins}",
|
||
"tapTerritoriesHint": "Tocca i territori sulla mappa o le righe della legenda per aggiungerli · tocca di nuovo per rimuoverli",
|
||
"territoriesSelected": "Territori: {count}",
|
||
"bandInRange": "✓ fascia 50–100",
|
||
"bandOutOfRange": "fascia 50–100",
|
||
"mapContextLost": "Questa mappa è stata scaricata per liberare memoria grafica.",
|
||
"nOfTotal": "{n} su {total}",
|
||
"mapInitFailed": "Impossibile inizializzare la mappa — controlla il token e il contenitore",
|
||
"countryWallIntroA": "Un poster per paese, pronto da pregare, stampare e appendere al muro — pregando per loro ",
|
||
"countryWallIntroB": ". Regioni e paesi sono ordinati in base a quanti popoli non raggiunti contengono, perché il bisogno più grande venga per primo.",
|
||
"countryWallSoon": "Prossimamente: per ogni paese verrà generata una lista di preghiera con il nome di ogni popolo non raggiunto che vi abita.",
|
||
"countryWallHeading": "Poster per paese — Liste di preghiera e manifesti",
|
||
"largerScreenNotice": "Questa mappa sperimentale è pensata per schermi grandi. Si apre qui, ma alcune parti potrebbero non entrare o non funzionare bene su un telefono.",
|
||
"desktopOnlyNotice": "{label} funziona solo su desktop: apri questa pagina da un computer per usarlo.",
|
||
"noticeDismiss": "Chiudi",
|
||
"countryPosterTooMany": "Troppi popoli per stare in modo leggibile su un solo manifesto: una soluzione è in arrivo."
|
||
}
|