Merge origin/main: GNSS integrity, geo file import and cockpit emergencies meet i18n

Conflicts resolved by keeping both sides: the Events group gains
gnss-integrity with a translated label, the cockpit aircraft line shows
main's transponder emergency through a localized formatter (cockpitMath.js
stays i18n-free, like the Context scope line), and the boundary lists keep
both the i18n modules and main's new data modules.

Main's new UI is translated into es and ru: the GNSS Integrity row, legend
and notes; geo file import (button, hints, list actions, every import
error, with numbers passed as placeholders); transponder status names.
Also formats kartaview/viewer.js so format:check passes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-15 16:55:45 +04:00
commit 8029747b7e
88 files changed
+11991 -137

No files matched your search

+89 -1
View File
@@ -2156,5 +2156,93 @@
"fire confidence|low": "низкая",
"age|<1h": "<1 ч",
"age|{count}h": "{count} ч",
"age|{count}d": "{count} д"
"age|{count}d": "{count} д",
"General emergency": "Общая авария",
"Unlawful interference": "Незаконное вмешательство",
"Radio failure": "Отказ радиосвязи",
"Downed aircraft": "Вынужденная посадка",
"Minimum fuel": "Минимум топлива",
"Lifeguard (medical priority)": "Санитарный рейс (медицинский приоритет)",
"That file is not valid JSON.": "Этот файл — некорректный JSON.",
"That JSON file is not GeoJSON.": "Этот файл JSON не является GeoJSON.",
"That FeatureCollection has no features list.": "В этой FeatureCollection нет списка features.",
"Every GeoJSON feature must have type Feature.": "У каждого объекта GeoJSON должен быть тип Feature.",
"That GeoJSON has invalid geometries.": "В этом GeoJSON некорректные геометрии.",
"That GeoJSON contains an unsupported geometry.": "В этом GeoJSON есть неподдерживаемая геометрия.",
"That GeoJSON has invalid coordinates.": "В этом GeoJSON некорректные координаты.",
"That file creates more than {limit} map objects (the limit).": "Файл создаёт больше объектов на карте, чем позволяет лимит: {limit}.",
"That file has more than {limit} style definitions and image links after cleanup (the limit).": "После очистки в файле больше стилей и ссылок на изображения, чем позволяет лимит: {limit}.",
"That file has more than {limit} features (the limit).": "В файле больше объектов, чем позволяет лимит: {limit}.",
"That file has more than {limit} points (the limit) across {features} features.": "В файле больше точек, чем позволяет лимит: {limit} (объектов: {features}).",
"That file has more than {limit} points (the limit).": "В файле больше точек, чем позволяет лимит: {limit}.",
"That KMZ unpacks to more than the import limit.": "После распаковки этот KMZ превышает лимит импорта.",
"That KMZ is damaged and could not be unpacked.": "Этот KMZ повреждён, распаковать его не удалось.",
"That KMZ is not a readable zip archive.": "Этот KMZ — не читаемый zip-архив.",
"That KMZ uses a zip format this import does not read.": "Этот KMZ использует формат zip, который импорт не читает.",
"That KMZ is encrypted.": "Этот KMZ зашифрован.",
"That KMZ uses a compression method this import does not read.": "Этот KMZ использует метод сжатия, который импорт не читает.",
"That KML has invalid geometry bounds.": "В этом KML некорректные границы геометрии.",
"That KML has invalid coordinates.": "В этом KML некорректные координаты.",
"That GPX file has no <gpx> document.": "В этом файле GPX нет документа <gpx>.",
"That {format} file is not valid XML.": "Этот файл {format} — некорректный XML.",
"That file has an unreadable image or exceeds the 16-megapixel image limit.": "В файле есть нечитаемое изображение или изображение больше лимита в 16 мегапикселей.",
"That KML could not be read.": "Не удалось прочитать этот KML.",
"That file has invalid point coordinates.": "В файле некорректные координаты точек.",
"Ground heights are not available for that file. Try again when the map has loaded.": "Высоты рельефа для этого файла недоступны. Попробуйте ещё раз, когда карта загрузится.",
"That file took too long to read.": "Файл читался слишком долго.",
"Nothing to import.": "Нечего импортировать.",
"That file is larger than {size} MiB.": "Файл больше {size} МиБ.",
"Only GeoJSON, KML, KMZ and GPX files can be imported.": "Импортировать можно только файлы GeoJSON, KML, KMZ и GPX.",
"That file has nothing to draw.": "В файле нечего показать на карте.",
"That KMZ holds no KML document.": "В этом KMZ нет документа KML.",
"That {format} file could not be read.": "Не удалось прочитать этот файл {format}.",
"That file has {count} map objects; the limit is {limit}.": "Объектов на карте в файле: {count}; лимит: {limit}.",
"Ground heights could not be read. Try that file again.": "Не удалось получить высоты рельефа. Попробуйте импортировать файл ещё раз.",
"That file has invalid point graphics.": "В файле некорректное оформление точек.",
"Low-accuracy score < 2%": "Доля неточных < 2%",
"Low-accuracy score 2–10%": "Доля неточных 2–10%",
"Low-accuracy score > 10%": "Доля неточных > 10%",
"GNSS integrity source unavailable": "Источник целостности GNSS недоступен",
"Regional sample · 250 nm radius · cells from visited views over 30 min": "Региональная выборка · радиус 250 мор. миль · ячейки из просмотренных видов за 30 мин",
"Retrying automatically at {time} UTC": "Автоматический повтор в {time} UTC",
"Retrying automatically after provider cooldown": "Автоматический повтор после паузы провайдера",
"Updates automatically after pan or zoom and once a minute. The public feed covers a 250-nautical-mile circle around the view centre; zooming out does not make it a worldwide snapshot. Blank cells are outside sampled coverage or have insufficient observations.": "Обновляется автоматически после сдвига или масштабирования карты и раз в минуту. Публичный поток данных охватывает круг радиусом 250 морских миль вокруг центра вида; при отдалении карта не становится снимком всего мира. Пустые ячейки — вне охвата выборки или с недостаточным числом наблюдений.",
"Low-accuracy score = 100 × max(0, bad − 1) / total: one aircraft is discounted, so this is not the raw share. Cells need {aircraft} aircraft over {minutes} minutes. Navigation-integrity anomalies are not a detection of jamming or spoofing.": "Доля неточных = 100 × max(0, неточные − 1) / всего: один самолёт не учитывается, поэтому это не прямая доля. Для ячейки нужно самолётов: {aircraft} за {minutes} мин. Аномалии целостности навигации — не обнаружение глушения или подмены сигнала.",
"SQUAWK {code} · {status}": "СКВОК {code} · {status}",
"ADS-B PRIORITY · {status}": "ADS-B ПРИОРИТЕТ · {status}",
"ADS-B EMERGENCY · {status}": "ADS-B АВАРИЯ · {status}",
"{aircraftClass} · {emergency} · {feedState}": "{aircraftClass} · {emergency} · {feedState}",
"Ground heights could not be refreshed. Try the file again when the map has loaded.": "Не удалось обновить высоты рельефа. Попробуйте импортировать файл ещё раз, когда карта загрузится.",
"{count} map objects": {
"one": "{count} объект на карте",
"few": "{count} объекта на карте",
"many": "{count} объектов на карте",
"other": "{count} объекта на карте"
},
", drawn with its own styles": ", со своими стилями",
"Hide {name}": "Скрыть: {name}",
"Show {name}": "Показать: {name}",
"Fly to {name}": "Перелёт: {name}",
"Remove {name}": "Удалить: {name}",
"At most {count} files at once — remove one first.": "Не больше {count} файлов одновременно — сначала удалите один.",
"Reading {name}…": "Чтение: {name}…",
"That file could not be read.": "Не удалось прочитать этот файл.",
"Added {count} files.": {
"one": "Добавлен {count} файл.",
"few": "Добавлено {count} файла.",
"many": "Добавлено {count} файлов.",
"other": "Добавлено {count} файла."
},
"{count} files could not be added ({name}: {error})": {
"one": "Не удалось добавить {count} файл ({name}: {error})",
"few": "Не удалось добавить {count} файла ({name}: {error})",
"many": "Не удалось добавить {count} файлов ({name}: {error})",
"other": "Не удалось добавить {count} файла ({name}: {error})"
},
"Some KML content was left out.": "Часть содержимого KML пропущена.",
"GNSS Integrity": "Целостность GNSS",
"Show your own GeoJSON, KML, KMZ or GPX files on the globe (or drop them onto it). File bytes stay on this device; overlays can appear in map screenshots shared with voice.": "Показать на глобусе свои файлы GeoJSON, KML, KMZ или GPX (или перетащите их на глобус). Содержимое файлов остаётся на этом устройстве; наложения могут попасть в снимки карты, которые передаются голосовому ассистенту.",
"Import": "Импорт",
"Choose GeoJSON, KML, KMZ or GPX files": "Выберите файлы GeoJSON, KML, KMZ или GPX",
"Imported files": "Импортированные файлы"
}