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
4.7 KiB
JSON
45 lines
4.7 KiB
JSON
{
|
||
"menuComingSoon": "Меню скоро появится",
|
||
"pinHint": {
|
||
"tapDot": "Нажмите на цветную точку — кому-то всё ещё нужна молитва"
|
||
},
|
||
"upg100WallHeading": "Мой список UPG 100 — молитвенные списки и плакаты",
|
||
"upg100WallTag": "Молитвенная мобилизация",
|
||
"upg100WallIntroA": "Как накормить толпу в пять тысяч человек? Иисус рассадил их группами по пятьдесят и по сто, и невозможное стало посильным (Лк. 9:14). Мы поступили так же с 2 106 неохваченными народами: 27 списков примерно по пятьдесят-сто. Каждый список печатается как молитвенный пакет и плакат, чтобы 27 учеников, церквей или местных служителей взяли по одному — молясь о них ",
|
||
"upg100WallIntroEmph": "по имени их народа",
|
||
"upg100WallIntroB": ".",
|
||
"loadingNamed": "Загрузка {name}…",
|
||
"couldNotLoadNamed": "Не удалось загрузить {name}.",
|
||
"engineMissing": "Картографический движок {engine} не загрузился.",
|
||
"packetFailed": "Не удалось создать буклет: {reason}",
|
||
"selectionPacketFailed": "Не удалось создать буклет выбора: {reason}",
|
||
"posterOneTerritory": "Плакат печатает по одной территории — выбрано {count}.",
|
||
"selectionPosterFailed": "Не удалось создать плакат выбора: {reason}",
|
||
"mapUnavailable": "Карта недоступна",
|
||
"copied": "Скопировано!",
|
||
"copyFailed": "Не удалось скопировать — нажмите Ctrl/Cmd-C",
|
||
"engineNotLoaded": "движок карты не загружен",
|
||
"engineNotLoadedDetail": "Движок карты {engine} не загрузился. Список и легенда не затронуты.",
|
||
"viewLoadFailed": "Не удалось загрузить этот раздел.",
|
||
"retry": "Повторить",
|
||
"noMapboxToken": "Нет токена Mapbox",
|
||
"noMapboxTokenDetail": "Токен Mapbox не настроен. Список и легенда не затронуты.",
|
||
"loadingBoundaries": "Загрузка границ…",
|
||
"fetchingUupgs": "Загрузка UUPG: {n}…",
|
||
"mapStatusCounts": "Области: {polys} · зоны: {zones}/{total} · метки: {pins}",
|
||
"tapTerritoriesHint": "Нажимайте на территории на карте или строки легенды, чтобы добавить · нажмите ещё раз, чтобы убрать",
|
||
"territoriesSelected": "Территории: {count}",
|
||
"bandInRange": "✓ диапазон 50–100",
|
||
"bandOutOfRange": "диапазон 50–100",
|
||
"mapContextLost": "Эта карта выгружена, чтобы освободить графическую память.",
|
||
"nOfTotal": "{n} из {total}",
|
||
"mapInitFailed": "Не удалось инициализировать карту — проверьте токен и контейнер",
|
||
"countryWallIntroA": "Один плакат на страну — чтобы молиться, распечатать и повесить на стену, молясь за них ",
|
||
"countryWallIntroB": ". Регионы и страны упорядочены по числу неохваченных народов, чтобы самая большая нужда стояла первой.",
|
||
"countryWallSoon": "Скоро: для каждой страны будет создан молитвенный список с названием каждого неохваченного народа в ней.",
|
||
"countryWallHeading": "Плакаты по странам — молитвенные списки и плакаты",
|
||
"largerScreenNotice": "Эта экспериментальная карта рассчитана на большие экраны. Она откроется, но на телефоне часть элементов может не поместиться или работать плохо.",
|
||
"desktopOnlyNotice": "{label} работает только на компьютере — откройте эту страницу на компьютере.",
|
||
"noticeDismiss": "Закрыть",
|
||
"countryPosterTooMany": "Слишком много народов, чтобы разборчиво уместить их на одном плакате, — решение готовится."
|
||
}
|