refactor(i18n): key messages by English text; add Russian

Replace the semantic keys with the English source text, so code reads as the
UI does and English needs no catalog: t('Save keys'), tn(count, one, other)
for plurals, msg() for text stored in data, and bare data-i18n* markup that
translates the element's own English. Other languages are one flat JSON each.

- Simplify src/i18n: drop namespaces, the configurable locale pair
  (GEV_DEFAULT_LOCALE / GEV_SECONDARY_LOCALE) and its build defines. Locale
  comes from ?lang=, the stored choice, then browser languages.
- Add scripts/i18n.mjs (npm run i18n): extracts every message from t/tn/msg
  and markup, and fails on missing, unused, placeholder-mismatched or
  wrongly-shaped plural entries. npm test runs it via catalog.test.mjs.
- Add Russian (src/i18n/locales/ru.json, 833 messages), started from the
  community catalog in #312 and reviewed against the current English.
- Fix data-i18n placed on parents that would wipe their children (cockpit
  LEVEL and local weather cells, first-run EXPLORE MANUALLY tile), and a
  doubled degree sign in the TRACK ACQUIRED signal.
- Rewrite docs/TRANSLATORS.md for the new workflow; drop sections the earlier
  merge resurrected in docs/CURRENT-STATE.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-12 13:48:56 +04:00
1 parent dfbaeafbd8
commit 13efd411b6
112 files changed
+4419 -4856

No files matched your search

+870
View File
@@ -0,0 +1,870 @@
{
"Flying to Austin, TX...": "Перелёт в Остин, Техас...",
"Restoring shared view...": "Восстановление общего вида...",
"Initializing systems...": "Инициализация систем...",
"Configuring viewer...": "Настройка просмотрщика...",
"Loading Google 3D Tiles...": "Загрузка Google 3D Tiles...",
"Loading the keyless globe...": "Загрузка глобуса без ключа...",
"Google 3D Tiles unavailable ({detail}). Loading the keyless globe...": "Google 3D Tiles недоступны ({detail}). Загрузка глобуса без ключа...",
"Close data attribution": "Закрыть атрибуцию данных",
"observed or mapped nearby context": "наблюдаемое или картографированное окружение",
"no observed or mapped objects in current feeds": "нет наблюдаемых или картографированных объектов в текущих потоках",
"feed unavailable": "поток данных недоступен",
"feed stale": "поток данных устарел",
"Brightest naked-eye objects — CelesTrak visual group": "Самые яркие объекты невооружённым глазом — визуальная группа CelesTrak",
"COMMS": "СВЯЗЬ",
"Broadband constellation shell — shown only in DENSE mode": "Оболочка широкополосной группировки — только в режиме ПЛОТНО",
"STATION": "СТАНЦИЯ",
"Crewed stations and their visiting vehicles": "Пилотируемые станции и прибывающие к ним корабли",
"NAV": "NAV",
"GNSS navigation — GPS, GLONASS, Galileo": "Навигация GNSS — GPS, ГЛОНАСС, Galileo",
"GEO": "GEO",
"Geostationary belt — comms and weather, fixed over the equator": "Геостационарный пояс — связь и погода, неподвижно над экватором",
"VISUAL": "ВИДИМЫЕ",
"FISHING": "РЫБОЛОВНОЕ",
"TOWING": "БУКСИРОВКА",
"DREDGER": "ЗЕМСНАРЯД",
"DIVE OPS": "ВОДОЛАЗНОЕ",
"MILITARY": "ВОЕННОЕ",
"SAILING": "ПАРУСНИК",
"PLEASURE": "ПРОГУЛОЧНОЕ",
"PILOT": "ЛОЦМАН",
"SAR": "СПАСАТЕЛЬНОЕ",
"TUG": "БУКСИР",
"PORT TENDER": "ПОРТОВОЕ",
"ANTI-POLLUTION": "НЕФТЕСБОРЩИК",
"LAW ENFORCE": "ПАТРУЛЬНОЕ",
"MEDICAL": "МЕДИЦИНСКОЕ",
"HIGH-SPEED": "СКОРОСТНОЕ",
"PASSENGER": "ПАССАЖИРСКОЕ",
"CARGO": "ГРУЗОВОЕ",
"TANKER": "ТАНКЕР",
"OTHER": "ДРУГОЕ",
"Starting live contacts…": "Запуск контактов в реальном времени…",
"Opening space missions…": "Открытие космических миссий…",
"Scanning active events…": "Сканирование активных событий…",
"Live earthquakes and active fires, from USGS and NASA": "Землетрясения и активные пожары в реальном времени от USGS и NASA",
"It feels like a forbidden cockpit—then you realize the sources are public and the data is real.": "Будто вы в запретной кабине — а потом понимаете: источники открыты, а данные настоящие.",
"ENVIRONMENTAL": "ПРИРОДА",
"EARTH WATCH": "ДОЗОР ЗЕМЛИ",
"ACTIVE EVENTS": "АКТИВНЫЕ СОБЫТИЯ",
"Working…": "Работаем…",
"Could not open that mission{detail}. Retry or explore manually.": "Не удалось открыть эту миссию{detail}. Повторите попытку или исследуйте вручную.",
"This browser is blocking storage, so that could not be saved.": "Браузер блокирует хранилище, поэтому сохранить не удалось.",
"SUMMARY": "СВОДКА",
"Awaiting telemetry...": "Ожидание телеметрии...",
"REC": "REC",
"REMOVE": "УДАЛИТЬ",
"Remove {title} from this app's saved keys": "Удалить {title} из сохранённых ключей этого приложения",
"POWER UP · {count} KEYS WAITING": {
"one": "ЗАПУСК · {count} КЛЮЧ В ОЖИДАНИИ",
"few": "ЗАПУСК · {count} КЛЮЧА В ОЖИДАНИИ",
"many": "ЗАПУСК · {count} КЛЮЧЕЙ В ОЖИДАНИИ",
"other": "ЗАПУСК · {count} КЛЮЧА В ОЖИДАНИИ"
},
"POWERED UP": "ЗАПУЩЕНО",
"your app configuration": "ваша конфигурация приложения",
"your local .env": "ваш локальный .env",
"Saving…": "Сохранение…",
"Save failed ({status}).": "Не удалось сохранить ({status}).",
"Save failed: {detail}": "Не удалось сохранить: {detail}",
"Paste at least one key first.": "Сначала вставьте хотя бы один ключ.",
"Saved to {store}. Restarting — this page reloads itself.": "Сохранено: {store}. Перезапуск — страница перезагрузится сама.",
"Remove this key from your saved configuration?": "Удалить этот ключ из сохранённой конфигурации?",
"Removed from {store}. Restarting — this page reloads itself.": "Удалено: {store}. Перезапуск — страница перезагрузится сама.",
"More flight-polling credits (anonymous works without)": "Больше кредитов на опрос рейсов (анонимно работает и без ключа)",
"Street-level imagery and coverage in the Street Level layer. Free: register an app in the Mapillary developer dashboard and paste its Client Token": "Уличные снимки и покрытие в слое «Street Level». Бесплатно: зарегистрируйте приложение в панели разработчика Mapillary и вставьте его Client Token",
"Higher space-missions request allowance": "Повышенный лимит запросов для космических миссий",
"The photorealistic 3D planet + place search": "Фотореалистичная 3D-планета + поиск мест",
"Places context + Street View fallback; optional separate key": "Контекст Places + резервный Street View; отдельный ключ — по желанию",
"Voice control — API key or ChatGPT OAuth": "Голосовое управление — ключ API или ChatGPT OAuth",
"Live ships, worldwide": "Суда в реальном времени по всему миру",
"Live active-fire detections": "Обнаружение активных пожаров в реальном времени",
"Real live traffic (keyless runs a simulation)": "Реальные пробки в реальном времени (без ключа — симуляция)",
"Bing imagery map stacks + world terrain": "Наборы карт Bing imagery + рельеф мира",
"Global Context navigation": "Навигация глобального контекста",
"Previous — prior visited contact in the 250 km window": "Назад — предыдущий посещённый контакт в радиусе 250 км",
"PREVIOUS": "ПРЕД.",
"FOCUS": "ФОКУС",
"Next — nearest unvisited contact in the 250 km window": "Далее — ближайший непосещённый контакт в радиусе 250 км",
"NEXT": "СЛЕД.",
"Open-source mapped/observed context. Missing broadcasts, unloaded map areas, or unmapped sites are not evidence of absence.": "Контекст из открытых источников. Отсутствие трансляций, незагруженные области карты или неотмеченные объекты — не доказательство отсутствия.",
"CONTEXT READY": "КОНТЕКСТ ГОТОВ",
"GLOBAL CONTEXT OFF": "ГЛОБАЛЬНЫЙ КОНТЕКСТ ВЫКЛ.",
"SELECT A FLIGHT, VESSEL, OR MAPPED INSTALLATION": "ВЫБЕРИТЕ РЕЙС, СУДНО ИЛИ ОБЪЕКТ НА КАРТЕ",
"ENABLE TO LOAD OBSERVED / MAPPED PROXIMITY": "ВКЛЮЧИТЕ ДЛЯ ЗАГРУЗКИ НАБЛЮДАЕМОГО / КАРТОГРАФИРОВАННОГО ОКРУЖЕНИЯ",
"Unavailable": "Недоступно",
"Focus {label}": "Фокус на {label}",
"HDG {value}°": "КУРС {value}°",
"BRG {value}°": "ПЕЛ. {value}°",
"BRG —": "ПЕЛ. —",
"CRS {value}°": "ПУТЬ {value}°",
"Military flights": "Военные рейсы",
"AIS vessels": "Суда AIS",
"Mapped installations": "Картографированные объекты",
"CURRENT VIEWPORT ONLY": "ТОЛЬКО ТЕКУЩАЯ ОБЛАСТЬ ОБЗОРА",
"WITHIN {km} KM": "В РАДИУСЕ {km} КМ",
"Flights": "Рейсы",
"syncing {count} city feeds...": "синхронизация городских потоков: {count}...",
"scanning nearby systems...": "поиск ближайших систем...",
"Station {id}": "Станция {id}",
"Station": "Станция",
"🚲 {bikes} avail · {docks} docks · {capacity} cap": "🚲 доступно {bikes} · своб. мест {docks} · вмест. {capacity}",
"⚠️ Not installed": "⚠️ Не установлена",
"⚠️ Not renting": "⚠️ Не выдаёт",
"⚠️ Not returning": "⚠️ Не принимает",
"HDG {value}° (ESTIMATED)": "КУРС {value}° (ОЦЕНКА)",
"{count} CAMERAS STANDING BY · NO CAMERA SELECTED · CLICK A CAMERA TO ACTIVATE": "КАМЕР В ГОТОВНОСТИ: {count} · КАМЕРА НЕ ВЫБРАНА · НАЖМИТЕ КАМЕРУ ДЛЯ АКТИВАЦИИ",
"No cameras available in catalog.": "В каталоге нет доступных камер.",
"{city} CCTV": "CCTV: {city}",
"FOV {value}°": "ОБЗОР {value}°",
"COVERAGE {value}km²": "ОХВАТ {value} КМ²",
"OVERLAP {count} cams": "ПЕРЕКРЫТИЕ {count} кам.",
"ISOLATED VIEW": "ИЗОЛИРОВАННЫЙ ВИД",
"PROJ MONITOR": "ПРОЕКЦ. МОНИТОР",
"PROJ OFF": "ПРОЕКЦ. ВЫКЛ.",
"VIEWSHED": "ЗОНА ВИДИМОСТИ",
"CAL {value}": "КАЛИБР. {value}",
"SRC {value}": "ИСТ. {value}",
"{value} CONTEXT": "КОНТЕКСТ {value}",
"Focus fire detection {title}, {details}": "Фокус на очаге пожара {title}, {details}",
"{value} conf": "увер. {value}",
"{value} ago": "{value} назад",
"sensor n/a": "сенсор н/д",
"FIRE · {frp} MW": "ПОЖАР · {frp} МВт",
"NIGHT": "НОЧЬ",
"▲ {frp} MW": "▲ {frp} МВт",
"FIRE": "ПОЖАР",
"FIRES": "ПОЖ.",
"max {value} MW": "макс. {value} МВт",
"new {value}": "последний {value}",
"just now": "только что",
"<1m ago": "<1 мин назад",
"{count}m ago": "{count} мин назад",
"{count}h ago": "{count} ч назад",
"STALE · cached {age}": "УСТАРЕЛ · кэш {age}",
"STALE": "УСТАРЕЛ",
"refreshing...": "обновление...",
"loading...": "загрузка...",
"KEY REQUIRED": "ТРЕБУЕТСЯ КЛЮЧ",
"LIVE · updated {age}": "ОНЛАЙН · обновлено {age}",
"Retrying mapped sites…": "Повторный запрос объектов…",
"Fetching mapped sites…": "Загрузка объектов…",
"Zoom in to search mapped installations": "Приблизьте, чтобы искать картографированные объекты",
"Showing cached mapped sites": "Показаны объекты из кэша",
"Mapped sites not loaded": "Объекты не загружены",
"Mapped sites loaded": "Объекты загружены",
"Overpass rate-limited": "Overpass: превышен лимит запросов",
"Overpass timed out": "Overpass: истекло время ожидания",
"Overpass could not complete the query": "Overpass не смог завершить запрос",
"Overpass temporarily unavailable": "Overpass временно недоступен",
"loading mapped installation context": "загрузка контекста объектов",
"{reason} — retrying in {seconds}s": "{reason} — повтор через {seconds} с",
"{reason} — retry pending": "{reason} — ожидается повтор",
"MAPPED INSTALLATION": "КАРТОГРАФИРОВАННЫЙ ОБЪЕКТ",
"LAUNCH SITE · {site}": "МЕСТО ПУСКА · {site}",
"LAUNCH SITE": "МЕСТО ПУСКА",
"T−{time} · {mission}": "T−{time} · {mission}",
"LAUNCH STANDBY": "ОЖИДАНИЕ ПУСКА",
"LIFTOFF · {mission}": "СТАРТ · {mission}",
"ASCENT REPLAY · {mission}": "ПОВТОР ВЫВЕДЕНИЯ · {mission}",
"ASCENT ESTIMATE · {mission}": "РАСЧЁТНОЕ ВЫВЕДЕНИЕ · {mission}",
"STAGE RE-ENTRY / RECOVERY · {mission}": "ВХОД В АТМОСФЕРУ / ВОЗВРАТ СТУПЕНИ · {mission}",
"ORBIT REPLAY · {mission}": "ПОВТОР ОРБИТЫ · {mission}",
"PAUSED · {title}": "ПАУЗА · {title}",
"UNSPECIFIED": "НЕ УКАЗАНО",
"UNAVAILABLE": "НЕДОСТУПНО",
"+{count} additional payload records": "+{count} доп. записи о полезной нагрузке",
"PAYLOAD DATA UNAVAILABLE": "ДАННЫЕ ПОЛЕЗНОЙ НАГРУЗКИ НЕДОСТУПНЫ",
"{value} KM DOWNRANGE": "{value} КМ ПО ТРАССЕ",
"POSITION UNAVAILABLE": "ПОЗИЦИЯ НЕДОСТУПНА",
"FLIGHT {count}": "ПОЛЁТ {count}",
"REUSED": "ЛЕТАВШАЯ",
"NO STAGE RE-ENTRY / RECOVERY DATA": "НЕТ ДАННЫХ О ВХОДЕ В АТМОСФЕРУ / ВОЗВРАТЕ СТУПЕНИ",
"{count} / 30D": "{count} / 30 ДН.",
"NO MISSIONS AVAILABLE IN THE CURRENT 30-DAY WINDOW": "НЕТ МИССИЙ В ТЕКУЩЕМ 30-ДНЕВНОМ ОКНЕ",
"DATE UNAVAILABLE": "ДАТА НЕДОСТУПНА",
"UNSPECIFIED OPERATOR": "ОПЕРАТОР НЕ УКАЗАН",
"Select {mission}": "Выбрать {mission}",
"{value} KM": "{value} КМ",
"{value} KM/S": "{value} КМ/С",
"SELECTED SPACE MISSION": "ВЫБРАННАЯ КОСМИЧЕСКАЯ МИССИЯ",
"Show all missions": "Показать все миссии",
"Deselect mission": "Снять выбор миссии",
"MISSION": "МИССИЯ",
"STATUS · ": "СТАТУС · ",
"LAUNCH SITE · ": "МЕСТО ПУСКА · ",
"LAUNCH TIME · ": "ВРЕМЯ ПУСКА · ",
"ORBIT · ": "ОРБИТА · ",
"ASCENT PATH · ": "ТРАЕКТОРИЯ ВЫВЕДЕНИЯ · ",
"CURRENT DISTANCE FROM EARTH · ": "ТЕКУЩЕЕ РАССТОЯНИЕ ОТ ЗЕМЛИ · ",
"SATELLITE SPEED · ": "СКОРОСТЬ СПУТНИКА · ",
"PAYLOAD": "ПОЛЕЗНАЯ НАГРУЗКА",
"NAME": "НАЗВАНИЕ",
"TYPE": "ТИП",
"DESTINATION": "ПУНКТ НАЗНАЧЕНИЯ",
"STAGE / RE-ENTRY / RECOVERY": "СТУПЕНЬ / ВХОД В АТМОСФЕРУ / ВОЗВРАТ",
"STAGE": "СТУПЕНЬ",
"STATUS": "СТАТУС",
"FINAL POSITION": "КОНЕЧНОЕ ПОЛОЖЕНИЕ",
"REPLAY SPEED": "СКОРОСТЬ ПОВТОРА",
"Replay speed multiplier": "Множитель скорости повтора",
"REPLAY ASCENT": "ПОВТОРИТЬ ВЫВЕДЕНИЕ",
"Previous mission": "Предыдущая миссия",
"PREV": "ПРЕД.",
"Next mission": "Следующая миссия",
"SHOW ALL / DESELECT": "ПОКАЗАТЬ ВСЕ / СНЯТЬ ВЫБОР",
"Pause replay": "Приостановить повтор",
"Cancel replay": "Отменить повтор",
"EST. DOWNRANGE": "РАСЧЁТ ПО ТРАССЕ",
"PLANNED · ": "ПЛАН · ",
"SUPPLIED TRAJECTORY POINTS": "ПРЕДОСТАВЛЕННЫЕ ТОЧКИ ТРАЕКТОРИИ",
"RECONSTRUCTED ESTIMATE": "РЕКОНСТРУИРОВАННАЯ ОЦЕНКА",
"Replay the estimated ascent with a following camera": "Повторить расчётное выведение с камерой сопровождения",
"Resume replay": "Возобновить повтор",
"T minus {seconds}": "T минус {seconds}",
"Preparing launch site": "Подготовка стартовой площадки",
"Liftoff": "Старт",
"Ascent replay": "Повтор выведения",
"Orbit replay": "Повтор: орбита",
", paused": ", пауза",
"Alt unknown": "Высота неизвестна",
"Type unknown": "Тип неизвестен",
"Reg unknown": "Рег. номер неизвестен",
"Operator unknown": "Оператор неизвестен",
"All": "Все",
"News": "Новости",
"Talk": "Ток-радио",
"Weather / Emergency": "Погода / ЧС",
"Public Safety": "Общественная безопасность",
"Aviation / Marine": "Авиация / Море",
"Traffic / Transit": "Трафик / Транспорт",
"Music": "Музыка",
"Other": "Другое",
"Add the full Starlink broadband shell (thousands of extra points)": "Добавить полную широкополосную оболочку Starlink (тысячи дополнительных точек)",
"Loading the Starlink shell…": "Загрузка оболочки Starlink…",
"Starlink {detail} — click to retry": "Starlink: {detail} — нажмите, чтобы повторить",
"load failed": "ошибка загрузки",
"Showing the full Starlink shell — click for the core catalog only": "Показана полная оболочка Starlink — нажмите, чтобы оставить только основной каталог",
"DENSE ···": "ПЛОТНО ···",
"DENSE ✕": "ПЛОТНО ✕",
"DENSE": "ПЛОТНО",
"Syncing flow · Roads: {source}": "Синхронизация потока · Дороги: {source}",
"LIVE · Roads: {source} · Roads without flow hidden": "ОНЛАЙН · Дороги: {source} · Дороги без потока скрыты",
"LIVE · Roads: {source} · No flow roads in view": "ОНЛАЙН · Дороги: {source} · В кадре нет дорог с потоком",
"LIVE · Roads: {source} · Flow {percent}%": "ОНЛАЙН · Дороги: {source} · Поток {percent}%",
"SIMULATED · Roads: {source} · Flow {percent}%": "СИМУЛЯЦИЯ · Дороги: {source} · Поток {percent}%",
"Syncing flow · Roads: OpenStreetMap · Flow: TomTom · Unmatched: simulated": "Синхронизация потока · Дороги: OpenStreetMap · Поток: TomTom · Без совпадений: симуляция",
"LIVE · Roads: OpenStreetMap · Flow: TomTom · {percent}% cov · Unmatched: simulated": "ОНЛАЙН · Дороги: OpenStreetMap · Поток: TomTom · охват {percent}% · Без совпадений: симуляция",
"LIVE · Roads: OpenStreetMap · Flow: TomTom · {percent}% cov": "ОНЛАЙН · Дороги: OpenStreetMap · Поток: TomTom · охват {percent}%",
"SIMULATED · Roads: OpenStreetMap · Flow: TomTom (no matches)": "СИМУЛЯЦИЯ · Дороги: OpenStreetMap · Поток: TomTom (нет совпадений)",
"SIMULATED — traffic service unreachable": "СИМУЛЯЦИЯ — сервис трафика недоступен",
"SIMULATED — add TomTom key for live": "СИМУЛЯЦИЯ — добавьте ключ TomTom для режима онлайн",
"POS: LIVE": "ПОЗ: ОНЛАЙН",
"POS: {time}Z": "ПОЗ: {time}Z",
"AIS: {name}": "AIS: {name}",
"{type} SPD: {speed} HDG: {heading}": "{type} СКОР: {speed} КУРС: {heading}",
"VESSEL": "СУДНО",
"AIS: --": "AIS: --",
"awaiting first AIS position…": "ожидание первой позиции AIS…",
"awaiting usable AIS positions…": "ожидание пригодных позиций AIS…",
"awaiting first AIS message…": "ожидание первого сообщения AIS…",
"{label} unavailable: {hint}": "{label}: недоступно — {hint}",
"Needs {envVars} — add it in Provider Settings": "Нужен {envVars} — добавьте его в «Настройках провайдеров»",
"{label} is unavailable": "{label}: недоступно",
"This map stack": "Этот набор карт",
"Updated: {scene} / {shot}": "Обновлено: {scene} / {shot}",
"Camera unavailable — exit cockpit first": "Камера недоступна — сначала выйдите из кабины",
"No shots to run": "Нет кадров для воспроизведения",
"Error: {message}": "Ошибка: {message}",
"Project exported": "Проект экспортирован",
"Ready": "Готово",
"Could not exit {mode} — scene layers may be refused": "Не удалось выйти из режима {mode} — слои сцены могут быть отклонены",
"Loaded: {scene} / {shot}": "Загружено: {scene} / {shot}",
"Global Flights Radar": "Глобальный радар рейсов",
"Orbital Watch": "Орбитальный дозор",
"Thermal Threat Board": "Панель тепловых угроз",
"City Overload": "Перегрузка города",
"Omniscience Pullback": "Отъезд к всевидению",
"Cannot capture shot: camera not ready": "Не удалось сделать кадр: камера не готова",
"Shot {n}": "Кадр {n}",
"Captured: {scene} / {shot}": "Снято: {scene} / {shot}",
"Select a shot first": "Сначала выберите кадр",
"Running {index}/{total}: {scene} / {shot}": "Воспроизведение {index}/{total}: {scene} / {shot}",
"Scene run complete": "Воспроизведение сцены завершено",
"CCTV layer unavailable": "Слой CCTV недоступен",
"Link copied!": "Ссылка скопирована!",
"Copy failed": "Не удалось скопировать",
"VISUAL PRESETS": "ВИЗУАЛЬНЫЕ ПРЕСЕТЫ",
"LOCATION": "МЕСТО",
"DISPLAY": "ЭКРАН",
"CONTACT": "КОНТАКТ",
"CONTACTS — nearest planes · vessels · sites": "КОНТАКТЫ — ближайшие самолёты · суда · объекты",
"SPACE MISSIONS — launches & orbital assets": "КОСМИЧЕСКИЕ МИССИИ — пуски и орбитальные аппараты",
"LIVE SIGNALS": "СИГНАЛЫ ОНЛАЙН",
"MAP SOURCE": "ИСТОЧНИК КАРТЫ",
"Map source": "Источник карты",
"CCTV calibration saved": "Калибровка CCTV сохранена",
"ADJUST ON": "НАСТРОЙКА ВКЛ",
"ADJUST": "НАСТРОЙКА",
"CCTV calibration reset": "Калибровка CCTV сброшена",
"FRAME · UNAVAILABLE": "КАДР · НЕДОСТУПЕН",
"SOURCE · UNKNOWN": "ИСТОЧНИК · НЕИЗВЕСТЕН",
"FRAME · LOADING": "КАДР · ЗАГРУЗКА",
"VIEWSHED ON": "ВИДИМОСТЬ ВКЛ",
"COVERAGE ON": "ОХВАТ ВКЛ",
"COVERAGE OFF": "ОХВАТ ВЫКЛ",
"RAW PRIOR": "ИСХОДНАЯ ОЦЕНКА",
"AUTO HOP ON": "АВТОПЕРЕХОД ВКЛ",
"AUTO HOP OFF": "АВТОПЕРЕХОД ВЫКЛ",
"PROJECTION ON": "ПРОЕКЦИЯ ВКЛ",
"PROJECTION OFF": "ПРОЕКЦИЯ ВЫКЛ",
"CAL · EDITED (UNSAVED)": "КАЛИБР. · ИЗМЕНЕНО (НЕ СОХР.)",
"CAL · {badge}": "КАЛИБР. · {badge}",
"MONITOR": "МОНИТОР",
"OFF": "ВЫКЛ",
"{city} · HDG {heading} · FOV {fov} · RANGE {range}m · {projection}{calBadge} · {provider}{status}": "{city} · КУРС {heading} · ОБЗОР {fov} · ДАЛЬН. {range} м · {projection}{calBadge} · {provider}{status}",
"{count} cameras loaded · click a camera to activate": {
"one": "Загружена {count} камера · нажмите на камеру, чтобы активировать",
"few": "Загружено {count} камеры · нажмите на камеру, чтобы активировать",
"many": "Загружено {count} камер · нажмите на камеру, чтобы активировать",
"other": "Загружено {count} камеры · нажмите на камеру, чтобы активировать"
},
"{count} cameras loaded · enable CCTV to activate": {
"one": "Загружена {count} камера · включите CCTV, чтобы активировать",
"few": "Загружено {count} камеры · включите CCTV, чтобы активировать",
"many": "Загружено {count} камер · включите CCTV, чтобы активировать",
"other": "Загружено {count} камеры · включите CCTV, чтобы активировать"
},
"Enable CCTV to load camera intersections": "Включите CCTV, чтобы загрузить камеры на перекрёстках",
"Enable CCTV to start camera-linked intelligence summaries.": "Включите CCTV, чтобы запускать сводки по камерам.",
"No summary available.": "Сводка недоступна.",
"loading frames": "загрузка кадров",
"camera grid ready": "сетка камер готова",
"CCTV ON": "CCTV ВКЛ",
"CCTV OFF": "CCTV ВЫКЛ",
"CALIBRATED": "ОТКАЛИБРОВАНО",
"CURATED": "ВЫВЕРЕНО",
"Clearing selected data layers": "Очистка выбранных слоёв данных",
"Clear selected data layers": "Очистить выбранные слои данных",
"CONDITIONS UNKNOWN": "УСЛОВИЯ НЕИЗВЕСТНЫ",
"CLEAR": "ЯСНО",
"PARTLY CLOUDY": "ПЕРЕМЕННАЯ ОБЛАЧНОСТЬ",
"OVERCAST": "ПАСМУРНО",
"ACQUIRING REGIONAL NEWS": "ЗАГРУЗКА РЕГИОНАЛЬНЫХ НОВОСТЕЙ",
"REGIONAL NEWS UNAVAILABLE": "РЕГИОНАЛЬНЫЕ НОВОСТИ НЕДОСТУПНЫ",
"RESOLVING REGION": "ОПРЕДЕЛЕНИЕ РЕГИОНА",
"REGION UNAVAILABLE": "РЕГИОН НЕДОСТУПЕН",
"FOG": "ТУМАН",
"NO RECENT LOCATION MATCHES": "НЕТ СВЕЖИХ СОВПАДЕНИЙ ПО МЕСТУ",
"DRIZZLE": "МОРОСЬ",
"RAIN": "ДОЖДЬ",
"{domain} · {age}": "{domain} · {age}",
"SOURCE": "ИСТОЧНИК",
"SNOW": "СНЕГ",
"RAIN SHOWERS": "ЛИВНИ",
"SNOW SHOWERS": "ЛИВНЕВЫЙ СНЕГ",
"THUNDERSTORM": "ГРОЗА",
"CLOUD {pct}%": "ОБЛАЧНОСТЬ {pct}%",
"CLOUD UNKNOWN": "ОБЛАЧНОСТЬ НЕИЗВЕСТНА",
"MIXED CONDITIONS": "СМЕШАННЫЕ УСЛОВИЯ",
"{source} · LOCATION QUERY": "{source} · ЗАПРОС ПО МЕСТУ",
"REGIONAL NEWS": "РЕГИОНАЛЬНЫЕ НОВОСТИ",
"CYCLE ON": "АВТОЛИСТАНИЕ ВКЛ",
"CYCLE OFF": "АВТОЛИСТАНИЕ ВЫКЛ",
"Stop automatic page cycling. Previous, Next, and the SIG/NEWS/LOCAL tabs stay available.": "Остановить автоматическое листание страниц. Кнопки ПРЕД./СЛЕД. и вкладки SIG/NEWS/LOCAL остаются доступны.",
"Cycle briefing pages automatically every 9 seconds (Signals → News → Local). Pauses while you hover or focus the panel. Live signal data refreshes continuously either way.": "Автоматически листать страницы брифинга каждые 9 секунд (Сигналы → Новости → Местное). При наведении или фокусе на панели листание приостанавливается. Данные сигналов в реальном времени в любом случае обновляются непрерывно.",
"{cohort}, Unavailable": "{cohort}, недоступно",
"AHEAD": "ПО КУРСУ",
"{side} {angle}": "{side} {angle}",
"L": "Л",
"R": "П",
"{count} INPUTS UNKNOWN · NOT AN ALL-CLEAR": {
"one": "{count} ИСТОЧНИК ДАННЫХ НЕИЗВЕСТЕН · БЕЗОПАСНОСТЬ НЕ ПОДТВЕРЖДЕНА",
"few": "{count} ИСТОЧНИКА ДАННЫХ НЕИЗВЕСТНЫ · БЕЗОПАСНОСТЬ НЕ ПОДТВЕРЖДЕНА",
"many": "{count} ИСТОЧНИКОВ ДАННЫХ НЕИЗВЕСТНО · БЕЗОПАСНОСТЬ НЕ ПОДТВЕРЖДЕНА",
"other": "{count} ИСТОЧНИКА ДАННЫХ НЕИЗВЕСТНО · БЕЗОПАСНОСТЬ НЕ ПОДТВЕРЖДЕНА"
},
"AVAILABLE INPUTS CURRENT · NOT AN ALL-CLEAR": "ДОСТУПНЫЕ ДАННЫЕ АКТУАЛЬНЫ · БЕЗОПАСНОСТЬ НЕ ПОДТВЕРЖДЕНА",
"CONTEXT STANDBY": "КОНТЕКСТ В ОЖИДАНИИ",
"ENABLE GLOBAL CONTEXT FOR PROXIMITY PINGS": "ВКЛЮЧИТЕ ГЛОБАЛЬНЫЙ КОНТЕКСТ ДЛЯ ПИНГОВ ПОБЛИЗОСТИ",
"CONTACT LOST · LAST KNOWN READOUT · NOT AN ALL-CLEAR": "КОНТАКТ ПОТЕРЯН · ПОСЛЕДНИЕ ИЗВЕСТНЫЕ ДАННЫЕ · БЕЗОПАСНОСТЬ НЕ ПОДТВЕРЖДЕНА",
"CONTACT LOST · {subject}": "КОНТАКТ ПОТЕРЯН · {subject}",
"SUBJECT LEFT ITS FEED · READOUT HOLDING LAST KNOWN": "ОБЪЕКТ ВЫПАЛ ИЗ ПОТОКА · ПОКАЗАНЫ ПОСЛЕДНИЕ ДАННЫЕ",
"{cohort} · {contact}": "{cohort} · {contact}",
"NO AVAILABLE EXAMPLE": "НЕТ ДОСТУПНОГО ПРИМЕРА",
"ACQUIRING SURFACE": "ЗАХВАТ ПОВЕРХНОСТИ",
"SURFACE FALLBACK": "РЕЗЕРВНАЯ ПОВЕРХНОСТЬ",
"STALE FEED": "ПОТОК УСТАРЕЛ",
"LIVE TRACK": "ТРЕК ОНЛАЙН",
"{aircraftClass} · {feedState} · COURSE ALIGNED": "{aircraftClass} · {feedState} · КУРС СОВМЕЩЁН",
"COMMERCIAL": "ГРАЖДАНСКИЙ",
"UNKNOWN": "НЕИЗВЕСТНО",
"ARROW · ESTIMATED DIRECTION": "СТРЕЛКА · РАСЧЁТНОЕ НАПРАВЛЕНИЕ",
"ROUTE DATA UNAVAILABLE": "ДАННЫЕ МАРШРУТА НЕДОСТУПНЫ",
"DEST {bearing}": "НАЗН. {bearing}",
"Disable cockpit weather effects": "Выключить погодные эффекты кабины",
"Enable cockpit weather effects": "Включить погодные эффекты кабины",
"ON": "ВКЛ",
"Night vision": "Ночное видение",
"Thermal": "Тепловизор",
"Anime": "Аниме",
"Noir": "Нуар",
"Snow": "Снег",
"Current cockpit vision style: {style}. Activate for next style.": "Текущий стиль обзора кабины: {style}. Активируйте, чтобы переключить на следующий.",
"Current style: {style} — click for next": "Текущий стиль: {style} — нажмите для следующего",
"AIRCRAFT": "САМОЛЁТ",
"Expand Contact panel": "Развернуть панель контактов",
"Collapse Contact panel": "Свернуть панель контактов",
"Expand contact panel": "Развернуть панель контактов",
"Collapse contact panel": "Свернуть панель контактов",
"Collapse cockpit briefing panel": "Свернуть панель брифинга кабины",
"Expand cockpit briefing panel": "Развернуть панель брифинга кабины",
"Collapse briefing panel": "Свернуть панель брифинга",
"Expand briefing panel": "Развернуть панель брифинга",
"OBSERVED / MAPPED PINGS": "НАБЛЮДАЕМЫЕ / НАНЕСЁННЫЕ ПИНГИ",
"SOURCE-BACKED EVENTS · NO SYNTHETIC NEWS": "СОБЫТИЯ С ИСТОЧНИКАМИ · БЕЗ СИНТЕТИЧЕСКИХ НОВОСТЕЙ",
"LATEST LOCATION-MATCHED REPORTING": "СВЕЖИЕ НОВОСТИ ПО МЕСТУ",
"LOCAL INFO": "МЕСТНЫЕ ДАННЫЕ",
"PLACE / CONDITIONS / POSITION": "МЕСТО / УСЛОВИЯ / ПОЗИЦИЯ",
"TIME UNKNOWN": "ВРЕМЯ НЕИЗВЕСТНО",
"{count}M AGO": "{count} МИН НАЗАД",
"{count}H AGO": "{count} Ч НАЗАД",
"{count}D AGO": "{count} ДН. НАЗАД",
"DIR UNKNOWN": "НАПР. НЕИЗВЕСТНО",
"{aircraftClass} · CURRENT": "{aircraftClass} · ТЕКУЩИЙ",
"MILITARY FLIGHT": "ВОЕННЫЙ РЕЙС",
"COMMERCIAL FLIGHT": "ГРАЖДАНСКИЙ РЕЙС",
"{aircraftClass} · {distance}": "{aircraftClass} · {distance}",
"DISTANCE UNKNOWN": "ДИСТАНЦИЯ НЕИЗВЕСТНА",
"{count} INPUTS UNKNOWN": {
"one": "{count} ИСТОЧНИК ДАННЫХ НЕИЗВЕСТЕН",
"few": "{count} ИСТОЧНИКА ДАННЫХ НЕИЗВЕСТНЫ",
"many": "{count} ИСТОЧНИКОВ ДАННЫХ НЕИЗВЕСТНО",
"other": "{count} ИСТОЧНИКА ДАННЫХ НЕИЗВЕСТНО"
},
"SOURCE STATUS UNAVAILABLE": "СТАТУС ИСТОЧНИКА НЕДОСТУПЕН",
"Select flight {title}": "Выбрать рейс {title}",
"TRACK ACQUIRED": "ЦЕЛЬ ЗАХВАЧЕНА",
"{label} · COURSE {heading}°": "{label} · КУРС {heading}°",
"Restore real aircraft": "Вернуть реальный самолёт",
"Reclassify as TR-3B": "Переклассифицировать как TR-3B",
"No selected data layers": "Нет выбранных слоёв данных",
"{count} data layers could not be cleared": {
"one": "Не удалось очистить {count} слой данных",
"few": "Не удалось очистить {count} слоя данных",
"many": "Не удалось очистить {count} слоёв данных",
"other": "Не удалось очистить {count} слоя данных"
},
"Cleared {count} data layers": {
"one": "Очищен {count} слой данных",
"few": "Очищено {count} слоя данных",
"many": "Очищено {count} слоёв данных",
"other": "Очищено {count} слоя данных"
},
"Selected data layers could not be cleared": "Не удалось очистить выбранные слои данных",
"Context could not restore every layer; try again": "Контекст: не удалось восстановить все слои; попробуйте снова",
"Nearby installations refreshed": "Ближайшие объекты обновлены",
"Nearby installations could not be refreshed; try again": "Не удалось обновить ближайшие объекты; попробуйте снова",
"Contacts could not complete the requested transition; try again": "Не удалось переключить режим «Контакты»; попробуйте снова",
"Space Missions could not complete the requested transition; try again": "Не удалось переключить режим «Космические миссии»; попробуйте снова",
"{layerId} could not {action} cleanly": "Не удалось корректно {action} слой {layerId}",
"start": "запустить",
"stop": "остановить",
"Space Missions cancellation could not restore the previous layer state": "Не удалось восстановить прежнее состояние слоёв после отмены космических миссий",
"That layer is unavailable in the current Context mode": "Этот слой недоступен в текущем режиме контекста",
"{mode} could not start because another layer did not stop cleanly": "Не удалось запустить режим «{mode}»: другой слой не остановился корректно",
"Space Missions": "Космические миссии",
"Context": "Контекст",
"LOADING": "ЗАГРУЗКА",
"DEGRADED": "ПЕРЕБОИ",
"PARTIAL": "ЧАСТИЧНО",
"FALLBACK": "РЕЗЕРВ",
"Live Flights": "Рейсы в реальном времени",
"Military Flights": "Военные рейсы",
"Earthquakes (24h)": "Землетрясения (24 ч)",
"Satellites": "Спутники",
"Space Missions (30d)": "Космические миссии (30 дн.)",
"Street Traffic": "Уличный трафик",
"CCTV": "CCTV",
"Radio": "Радио",
"Bikeshare": "Велошеринг",
"Live AIS Vessels": "Суда AIS в реальном времени",
"Mapped Installations": "Объекты на карте",
"Global Context": "Глобальный контекст",
"Datacenters": "Дата-центры",
"Dams": "Плотины",
"Submarine Cables": "Подводные кабели",
"FIRMS Active Fires": "Активные пожары FIRMS",
"ENABLING": "ВКЛЮЧЕНИЕ",
"DISABLING": "ВЫКЛЮЧЕНИЕ",
"{state} · {source}": "{state} · {source}",
"UNCERTAIN · {source} · lifecycle state requires reconciliation": "НЕОПРЕД. · {source} · требуется сверка состояния",
"{state} · {source} · {detail} · retry {seconds}s": "{state} · {source} · {detail} · повтор через {seconds} с",
"{state} · {source} · {detail}": "{state} · {source} · {detail}",
"never": "никогда",
"{source} · {loadingLabel}": "{source} · {loadingLabel}",
"{accepted} of {raw} records accepted": "принято записей: {accepted} из {raw}",
"incomplete snapshot": "неполный снимок",
"{state} · {source} · {detail} · {ago}": "{state} · {source} · {detail} · {ago}",
"{state} · {source} · {ago} · retrying in {seconds}s": "{state} · {source} · {ago} · повтор через {seconds} с",
"{state} · {source} · {ago}": "{state} · {source} · {ago}",
"{source} · {ago}": "{source} · {ago}",
"UNCERTAIN": "НЕОПРЕД.",
"Data source unavailable": "Источник данных недоступен",
"{name}: {state}": "{name}: {state}",
"{count}s ago": "{count} с назад",
"📍 Location: --": "📍 Место: --",
"Landmark: --": "Ориентир: --",
"Searched location": "Найденное место",
"ORBIT": "ОРБИТА",
"Fly to a POI first": "Сначала перелетите к точке интереса",
"Reset to full globe view": "Сбросить к виду всего глобуса",
"Reset cockpit to full globe view": "Сбросить кабину к виду всего глобуса",
"Resetting to full globe view": "Сброс к виду всего глобуса",
"Resetting cockpit to full globe view": "Сброс кабины к виду всего глобуса",
"Location not found": "Место не найдено",
"Search failed": "Не удалось выполнить поиск",
"MAP": "КАРТА",
"panel": "панель",
"Expand {name}": "Развернуть {name}",
"Collapse {name}": "Свернуть {name}",
"Expand Radio": "Развернуть радио",
"Collapse Radio": "Свернуть радио",
"Expand Radio section": "Развернуть раздел радио",
"Collapse Radio section": "Свернуть раздел радио",
"Panel layout updated — positions reset to new defaults": "Макет панелей обновлён — позиции сброшены к новым значениям по умолчанию",
"NO STATIONS": "НЕТ СТАНЦИЙ",
"NO STATION AVAILABLE": "НЕТ ДОСТУПНЫХ СТАНЦИЙ",
"{name}, station {index} of {total}": "{name}, станция {index} из {total}",
"No station available": "Нет доступной станции",
"OFF AIR": "НЕ В ЭФИРЕ",
"STATION UNAVAILABLE": "СТАНЦИЯ НЕДОСТУПНА",
"Radio could not {action} cleanly": "Не удалось корректно {action} радио",
"Collapse Cockpit display options": "Свернуть параметры экрана кабины",
"Expand Cockpit display options": "Развернуть параметры экрана кабины",
"Collapse Cockpit Radio controls": "Свернуть управление радио кабины",
"Expand Cockpit Radio controls": "Развернуть управление радио кабины",
"Close compact Radio controls": "Закрыть компактное управление радио",
"Open compact Radio controls": "Открыть компактное управление радио",
"DIRECTORY BAND": "ДИАПАЗОН КАТАЛОГА",
"{category} BAND": "ДИАПАЗОН {category}",
"NO STATION SELECTED": "СТАНЦИЯ НЕ ВЫБРАНА",
"Directory metadata only": "Только метаданные каталога",
"Loading station directory…": "Загрузка каталога станций…",
"Choose a globe marker or use next.": "Выберите маркер на глобусе или нажмите «След.».",
"TAGS · {tags}": "ТЕГИ · {tags}",
"Pause": "Приостановить",
"Resume": "Продолжить",
"Play": "Воспроизвести",
"selected": "выбранную",
"nearest": "ближайшую",
"{action} {target} radio station": "{action} {target} радиостанцию",
"RADIO STATE UNCERTAIN": "СОСТОЯНИЕ РАДИО НЕОПРЕДЕЛЁННО",
"SYNCING DIRECTORY": "СИНХРОНИЗАЦИЯ КАТАЛОГА",
"RADIO READY": "РАДИО ГОТОВО",
"SYNCING": "СИНХРОНИЗАЦИЯ",
"READY": "ГОТОВО",
"station": "станция",
" · stale/degraded directory": " · каталог устарел/с перебоями",
" · degraded directory": " · каталог с перебоями",
" · stale directory": " · каталог устарел",
" · outside current filter": " · вне текущего фильтра",
"Ready — playback starts only from your action": "Готово — воспроизведение начнётся только по вашей команде",
"Radio off": "Радио выключено",
"Connecting directly to broadcaster…": "Прямое подключение к вещателю…",
"Buffering broadcaster stream…": "Буферизация потока вещателя…",
"Playing {station}": "Играет {station}",
"Paused {station}": "{station} на паузе",
"Broadcaster stream unavailable": "Поток вещателя недоступен",
" · muted during voice interaction": " · приглушено во время голосовой сессии",
" · restoring volume after voice": " · восстановление громкости после голосовой сессии",
" · static indicates no broadcaster audio": " · шум означает отсутствие аудио вещателя",
" · tuning static until broadcaster starts": " · шум настройки, пока не начнётся вещание",
"Station unavailable after directory refresh — choose another channel": "Станция недоступна после обновления каталога — выберите другой канал",
"Radio is enabling…": "Радио включается…",
"Radio is disabling…": "Радио выключается…",
"Radio lifecycle is uncertain — use Enable or Disable to reconcile": "Состояние радио не определено — нажмите «Включить» или «Выключить» для сверки",
"SYNC": "СИНХР.",
"RECONCILE": "СВЕРИТЬ",
"DISABLE": "ВЫКЛЮЧИТЬ",
"ENABLE": "ВКЛЮЧИТЬ",
"Reconcile Radio — lifecycle uncertain": "Сверить радио — состояние не определено",
"Disable Radio": "Выключить радио",
"Enable Radio": "Включить радио",
"Scene action failed": "Не удалось выполнить действие со сценой",
"Delete shot \"{shot}\"?": "Удалить кадр «{shot}»?",
"ACQUIRING": "ЗАХВАТ",
"SHARED {subject}": "ПО ССЫЛКЕ: {subject}",
"entity": "объект",
"Shared {subject} follow expired": "Срок отслеживания {subject} по ссылке истёк",
"Shared {subject} could not be restored — feed unavailable": "Не удалось восстановить {subject} по ссылке — поток данных недоступен",
"Shared {subject} is unavailable": "{subject} по ссылке недоступен",
"LOADING LIVE DATA": "ЗАГРУЗКА ОНЛАЙН-ДАННЫХ",
"LOAD COMPLETE": "ЗАГРУЗКА ЗАВЕРШЕНА",
"LOAD CANCELLED": "ЗАГРУЗКА ОТМЕНЕНА",
"LOAD FAILED": "ОШИБКА ЗАГРУЗКИ",
"LIVE DATA OFF": "ОНЛАЙН-ДАННЫЕ ВЫКЛ.",
"MAPPED SITES LOADED": "ОБЪЕКТЫ ЗАГРУЖЕНЫ",
"RETRYING MAPPED SITES": "ПОВТОРНАЯ ЗАГРУЗКА ОБЪЕКТОВ",
"FETCHING MAPPED SITES": "ЗАГРУЗКА ОБЪЕКТОВ",
"TURNING OFF LIVE DATA": "ОТКЛЮЧЕНИЕ ОНЛАЙН-ДАННЫХ",
"REFRESHING LIVE DATA": "ОБНОВЛЕНИЕ ОНЛАЙН-ДАННЫХ",
"syncing road network": "синхронизация дорожной сети",
"retrying in {seconds}s": "повтор через {seconds} с",
"retry pending": "повтор ожидается",
"Contact cockpit summary": "Сводка по контакту в кабине",
"Cockpit briefing carousel": "Карусель брифингов кабины",
"Cockpit display and Radio controls": "Управление экраном и радио кабины",
"Previous cockpit vision style": "Предыдущий стиль обзора кабины",
"Previous vision style": "Предыдущий стиль обзора",
"Current cockpit vision style: NORMAL. Activate for next style.": "Текущий стиль обзора кабины: NORMAL. Активируйте для следующего стиля.",
"Current style: NORMAL — click for next": "Текущий стиль: NORMAL — нажмите для следующего",
"Next cockpit vision style": "Следующий стиль обзора кабины",
"Next vision style": "Следующий стиль обзора",
"Previous briefing page": "Предыдущая страница брифинга",
"Next briefing page": "Следующая страница брифинга",
"Show Live Signals": "Показать сигналы в реальном времени",
"Show Regional News": "Показать региональные новости",
"Show Local Info": "Показать местную информацию",
"Previous filtered radio station": "Предыдущая отфильтрованная радиостанция",
"Play selected radio station": "Воспроизвести выбранную радиостанцию",
"Next filtered radio station": "Следующая отфильтрованная радиостанция",
"Exit cockpit and return to full globe view": "Выйти из кабины и вернуться к виду всего глобуса",
"Exit cockpit view": "Выйти из кабины",
"Estimated destination direction": "Расчётное направление на пункт назначения",
"OPTICAL PLANE · 01": "ОПТИЧЕСКАЯ ПЛОСКОСТЬ · 01",
"VISOR LOCK · ACTIVE": "БЛОКИРОВКА ВИЗОРА · АКТИВНА",
"Cockpit vision style": "Стиль обзора кабины",
"Current aircraft heading": "Текущий курс самолёта",
"Nearby cohort counts": "Счётчики контактов поблизости",
"Cockpit display options": "Параметры экрана кабины",
"Cockpit compact Radio controls": "Компактное управление радио кабины",
"Cockpit Radio volume": "Громкость радио кабины",
"Contact navigation": "Навигация по контактам",
"Cockpit briefing controls": "Управление брифингом кабины",
"View switcher": "Переключатель вида",
"Aircraft cockpit view": "Вид кабины самолёта",
"Estimated flight plan": "Расчётный план полёта",
"Live signals": "Сигналы в реальном времени",
"Latest regional news": "Последние региональные новости",
"Location-based information": "Информация по текущему месту",
"LEVEL": "ГОРИЗОНТ",
"DEST ---°": "НАЗН. ---°",
"CURRENT": "ТЕКУЩИЙ",
"NEAREST OBSERVED / MAPPED": "БЛИЖАЙШИЕ НАБЛЮДАЕМЫЕ / НА КАРТЕ",
"GROUND SPEED · KTS": "ПУТЕВАЯ СКОРОСТЬ · УЗ",
"ALTITUDE · FT": "ВЫСОТА · ФТ",
"FIRST PERSON": "ОТ ПЕРВОГО ЛИЦА",
"LIVE TRACK · COURSE ALIGNED": "ТРЕК ОНЛАЙН · КУРС СОВМЕЩЁН",
"GROUND SPEED": "ПУТЕВАЯ СКОРОСТЬ",
"ALTITUDE": "ВЫСОТА",
"CONTEXT ONLY": "ТОЛЬКО КОНТЕКСТ",
"AVAILABLE INPUTS ONLY · NOT AN ALL-CLEAR": "ТОЛЬКО ДОСТУПНЫЕ ДАННЫЕ · БЕЗОПАСНОСТЬ НЕ ПОДТВЕРЖДЕНА",
"ESTIMATED FLIGHT PLAN": "РАСЧЁТНЫЙ ПЛАН ПОЛЁТА",
"FROM": "ОТКУДА",
"TO": "КУДА",
"TEMP": "ТЕМП.",
"WIND": "ВЕТЕР",
"SKY": "НЕБО",
"PRECIP": "ОСАДКИ",
"RADIO": "РАДИО",
"VOLUME": "ГРОМКОСТЬ",
"RESET": "СБРОС",
"EXIT COCKPIT": "ВЫЙТИ ИЗ КАБИНЫ",
"CONTACTS · 250 KM": "КОНТАКТЫ · 250 КМ",
"Expand Visual Presets": "Развернуть визуальные пресеты",
"Pin visual presets": "Закрепить визуальные пресеты",
"Keep visual presets open": "Держать визуальные пресеты открытыми",
"Show the globe without a visual filter.": "Показывает глобус без визуального фильтра.",
"Emulate a green phosphor CRT with scanlines and screen curvature.": "Имитирует CRT-экран с зелёным люминофором, строками развёртки и кривизной экрана.",
"Simulate night-vision goggles with green intensification and a tube vignette.": "Имитирует приборы ночного видения с зелёным усилением изображения и виньеткой трубки.",
"Simulate FLIR-style thermal contrast. Turn up Ironbow for color.": "Имитирует тепловой контраст в стиле FLIR. Для цвета увеличьте Ironbow.",
"Apply bright cel-shaded color and illustrated outlines.": "Применяет яркие cel-shading-цвета и рисованные контуры.",
"Apply high-contrast monochrome film-noir grading.": "Применяет высококонтрастную монохромную цветокоррекцию в стиле нуар.",
"Add a cold, snowy whiteout treatment to the scene.": "Добавляет в сцену холодный снежный эффект «белой мглы».",
"Expand LOCATION": "Развернуть панель «Место»",
"Collapse panel": "Свернуть панель",
"Pin location tray": "Закрепить панель места",
"Keep location tray open": "Держать панель места открытой",
"Search any location": "Поиск любого места",
"Navigation, voice, and visual preset controls": "Управление навигацией, голосом и визуальными пресетами",
"Language": "Язык",
"Search location by name or coordinates": "Поиск места по названию или координатам",
"Search any location...": "Поиск любого места...",
"Normal": "Обычный",
"CRT": "CRT",
"NVG": "NVG",
"FLIR": "FLIR",
"Style": "Стиль",
"STATION SITE": "САЙТ СТАНЦИИ",
"Open detailed Radio controls": "Открыть подробное управление радио",
"Previous station": "Предыдущая станция",
"Next station": "Следующая станция",
"Expand panel": "Развернуть панель",
"CONTACTS": "КОНТАКТЫ",
"Cycles the nearest contacts of whatever type you select — planes, vessels, installations. Satellites track independently.": "Перебирает ближайшие контакты выбранного типа — самолёты, суда, объекты. Спутники отслеживаются отдельно.",
"SEARCH NEARBY SITES": "ПОИСК ОБЪЕКТОВ РЯДОМ",
"Reclassify tracked contact as TR-3B": "Переклассифицировать отслеживаемый контакт как TR-3B",
"Previous filtered station": "Предыдущая отфильтрованная станция",
"PLAY": "ПУСК",
"Play selected station": "Воспроизвести выбранную станцию",
"Next filtered station": "Следующая отфильтрованная станция",
"STOP": "СТОП",
"Stop radio playback": "Остановить воспроизведение радио",
"Compact Radio controls": "Компактное управление радио",
"Context mode": "Режим контекста",
"Contact Context actions": "Действия контекста контакта",
"Available Space Missions": "Доступные космические миссии",
"LOADING 30-DAY MISSION INDEX": "ЗАГРУЗКА ИНДЕКСА МИССИЙ ЗА 30 ДНЕЙ",
"Radio playback": "Воспроизведение радио",
"Compact Radio volume": "Громкость компактного радио",
"Radio volume": "Громкость радио",
"STATION TAG": "ТЕГ СТАНЦИИ",
"DRAG TO TUNE": "ТЯНИТЕ ДЛЯ НАСТРОЙКИ",
"TAB PREVIEWS · ENTER / SPACE SELECTS": "TAB — ПРОСМОТР · ENTER / SPACE — ВЫБОР",
"Audio connects directly to the broadcaster after you press play. Your IP is visible to that broadcaster.": "После нажатия «Пуск» аудио подключается напрямую к вещателю. Ваш IP виден этому вещателю.",
"Internet radio and local SDR": "Интернет-радио и локальный SDR",
"Filter stations by station tag": "Фильтровать станции по тегу",
"CONTEXT": "КОНТЕКСТ",
"SPACE MISSIONS": "КОСМИЧЕСКИЕ МИССИИ",
"COCKPIT": "КАБИНА",
"SELECT CONTACTS TO LOAD OBSERVED / MAPPED PROXIMITY": "ВЫБЕРИТЕ КОНТАКТЫ, ЧТОБЫ ЗАГРУЗИТЬ НАБЛЮДАЕМОЕ / КАРТОГРАФИРОВАННОЕ ОКРУЖЕНИЕ",
"SELECT A MISSION TO INSPECT": "ВЫБЕРИТЕ МИССИЮ ДЛЯ ПРОСМОТРА",
"Enable Radio, then choose a globe marker or use next.": "Включите радио, затем выберите маркер на глобусе или переключите на следующую станцию.",
"ALL · DRAG THE NEEDLE": "ВСЕ · ТЯНИТЕ СТРЕЛКУ",
"SNAPS TO AVAILABLE STATIONS": "ПРИВЯЗКА К ДОСТУПНЫМ СТАНЦИЯМ",
"SELECT CONTEXT": "ВЫБЕРИТЕ КОНТЕКСТ",
"CONTACTS CONTEXT OFF": "КОНТЕКСТ КОНТАКТОВ ВЫКЛЮЧЕН",
"AVAILABLE MISSIONS": "ДОСТУПНЫЕ МИССИИ",
"Intelligence HUD (H)": "HUD разведки (H)",
"Detection Overlay (D)": "Слой детекции (D)",
"Detection overlay": "Слой детекции",
"Elastic": "Гибкое",
"Weighted": "Взвешенное",
"3D aircraft — flat icons zoomed out, 3D models up close": "3D-самолёты — издалека плоские иконки, вблизи 3D-модели",
"Proximity": "Вблизи",
"Scope — the circular viewport mask": "Прицел — круглая маска области просмотра",
"Hide UI chrome": "Скрыть элементы интерфейса",
"Bloom / Glow": "Bloom / свечение",
"Sharpening": "Повышение резкости",
"EXIT CLEAN VIEW": "ВЫЙТИ ИЗ ЧИСТОГО ВИДА",
"Return UI controls": "Вернуть управление интерфейсом",
"Detection label allocation": "Размещение меток детекции",
"3D model coverage": "Охват 3D-моделей",
"Detection label density": "Плотность меток детекции",
"Detection fade distance": "Дистанция затухания детекции",
"World-overlay fade distance outside the keyhole as a percentage of its radius": "Дистанция затухания мирового слоя за пределами маски в процентах от её радиуса",
"Detection opacity outside the keyhole": "Непрозрачность детекции за пределами маски",
"World-overlay label and card opacity beyond the fade distance": "Непрозрачность меток и карточек мирового слоя за пределами дистанции затухания",
"Scope edge feather": "Растушёвка края прицела",
"Scope edge feather as a percentage of the keyhole radius": "Растушёвка края прицела в процентах от радиуса маски",
"Bloom intensity": "Интенсивность bloom",
"Sharpen intensity": "Интенсивность резкости",
"Density": "Плотность",
"Fade": "Затухание",
"Outside": "Снаружи",
"Tactical": "Тактический",
"Operator": "Операторский",
"Minimal": "Минимальный",
"HUD layout": "Макет HUD",
"Layout": "Макет",
"Allocation": "Размещение",
"PARAMETERS": "ПАРАМЕТРЫ",
"Models": "Модели",
"Scope": "Прицел",
"Feather": "Растушёвка",
"Celestial": "Небо",
"Clean UI": "Чистый интерфейс",
"Bloom": "Bloom",
"Sharpen": "Резкость",
"Initializing photorealistic world...": "Инициализация фотореалистичного мира...",
"NEAREST": "БЛИЖАЙШАЯ",
"Drag the camera in the world: rings rotate, arrows move, handles set range/FOV": "Перетащите камеру в мире: кольца вращают, стрелки перемещают, маркеры задают дальность и угол обзора",
"Heading (compass °) — click to type": "Курс (° по компасу) — нажмите для ввода",
"Pitch (° up/down) — click to type": "Тангаж (° вверх/вниз) — нажмите для ввода",
"Horizontal FOV (°) — click to type": "Горизонтальный угол обзора (°) — нажмите для ввода",
"Range / monitor-plane distance (m) — click to type": "Дальность / расстояние до плоскости монитора (м) — нажмите для ввода",
"Mount height above ground (m) — click to type": "Высота крепления над землёй (м) — нажмите для ввода",
"North offset from catalog position (m) — click to type": "Смещение на север от позиции каталога (м) — нажмите для ввода",
"East offset from catalog position (m) — click to type": "Смещение на восток от позиции каталога (м) — нажмите для ввода",
"SAVE CAL": "СОХРАНИТЬ КАЛИБР.",
"RESET CAL": "СБРОСИТЬ КАЛИБР.",
"NEW": "НОВАЯ",
"DEL": "УДАЛ.",
"CAPTURE SHOT": "СДЕЛАТЬ КАДР",
"UPDATE SHOT": "ОБНОВИТЬ КАДР",
"START": "СТАРТ",
"EXPORT PRESETS": "ЭКСПОРТ ПРЕСЕТОВ",
"IMPORT": "ИМПОРТ",
"RUN LOG": "ЖУРНАЛ ЗАПУСКОВ",
"CALIBRATION": "КАЛИБРОВКА",
"Camera pose — click a value to type": "Поза камеры — нажмите на значение для ввода",
"SCENE SUMMARY": "СВОДКА ПО СЦЕНЕ",
"CCTV camera": "Камера CCTV",
"Scene recipe": "Рецепт сцены",
"DATA LAYERS": "СЛОИ ДАННЫХ",
"SCENES": "СЦЕНЫ",
"Close key setup": "Закрыть настройку ключей",
"SAVE KEYS": "СОХРАНИТЬ КЛЮЧИ",
"Power up the globe": "Запустите глобус",
"The globe already flies keyless. Every key below switches on another real feed — paste one and it's saved into this app's local configuration, then the server restarts itself. Server-side keys stay on this machine; Google Maps and Cesium ion run in the browser and must be provider-restricted. Keys you configured elsewhere are shown but never touched.": "Глобус уже работает без ключей. Каждый ключ ниже включает ещё один реальный поток данных — вставьте ключ, и он сохранится в локальной конфигурации приложения, после чего сервер перезапустится сам. Серверные ключи остаются на этом компьютере; Google Maps и Cesium ion работают в браузере, поэтому их ключи нужно ограничить на стороне провайдера. Ключи, настроенные в другом месте, отображаются, но не изменяются.",
"The Google Maps key buys the photorealistic planet — everything else stacks on top.": "Ключ Google Maps открывает фотореалистичную планету — всё остальное надстраивается поверх неё.",
"POWER UP": "ЗАПУСК",
"GROUND STATION · PROVIDER SETTINGS": "НАЗЕМНАЯ СТАНЦИЯ · НАСТРОЙКИ ПРОВАЙДЕРОВ",
"ESC to close": "ESC — закрыть",
"Turn off all selected data layers": "Выключить все выбранные слои данных",
"Copy share link": "Скопировать ссылку",
"Reset camera and return to full globe view": "Сбросить камеру и вернуть полный вид глобуса",
"Visible map targets": "Видимые цели на карте",
"Globe actions": "Действия с глобусом",
"NO PLACE LEFT BEHIND": "НИ ОДНА ТОЧКА НЕ ОСТАНЕТСЯ ПОЗАДИ",
"ACTIVE STYLE": "АКТИВНЫЙ СТИЛЬ",
"Choose your first view": "Выберите первый вид",
"Tip: the GEV MIC button in the dock lets you talk to the map.": "Совет: кнопка GEV MIC в доке позволяет говорить с картой.",
"Aircraft, vessels and nearby intelligence": "Самолёты, суда и разведданные поблизости",
"Launches, spacecraft and orbital context": "Пуски, космические аппараты и орбитальный контекст",
"Begin with a clean globe": "Начните с чистого глобуса",
"MISSION CONTROL · FIRST LAUNCH": "ЦЕНТР УПРАВЛЕНИЯ · ПЕРВЫЙ ЗАПУСК",
"Don't show this again": "Больше не показывать",
"ESC to dismiss": "ESC — скрыть",
"LIVE CONTACTS": "КОНТАКТЫ ОНЛАЙН",
"EXPLORE MANUALLY": "ИЗУЧИТЬ ВРУЧНУЮ",
"Celestial ring — reveal the full globe": "Небесное кольцо — показать весь глобус",
"Celestial ring — available in Normal style": "Небесное кольцо — доступно в стиле «Обычный»",
"Detection overlay: {mode}": "Слой детекции: {mode}",
"Detection overlay: off": "Слой детекции: выкл.",
"SPARSE": "РЕДКО",
"BALANCED": "УМЕРЕННО",
"DETECT": "ДЕТЕКЦИЯ",
"AI AGENT": "ИИ-АГЕНТ",
"Voice model tier — applies next session": "Уровень голосовой модели — вступит в силу со следующей сессии",
"Estimated session cost": "Оценочная стоимость сессии",
"Voice control — activate to toggle voice; hold Space to speak": "Голосовое управление — активируйте, чтобы включить или выключить голос; удерживайте Space, чтобы говорить",
"VOICE STANDBY": "ГОЛОС В ОЖИДАНИИ",
"VOICE CONTROL": "ГОЛОСОВОЕ УПРАВЛЕНИЕ",
"Hold Space to speak · tap Space to activate focused controls": "Удерживайте Space, чтобы говорить · нажатие Space активирует элемент в фокусе",
"VOICE SYSTEM ERROR": "ОШИБКА ГОЛОСОВОЙ СИСТЕМЫ",
"DISMISS": "СКРЫТЬ",
"Check microphone permission and network access, then try again.": "Проверьте разрешение на микрофон и доступ к сети, затем попробуйте снова.",
"Release Space to send": "Отпустите Space, чтобы отправить",
"Hold Space to talk": "Удерживайте Space, чтобы говорить",
"Ask or command": "Спросите или дайте команду",
"WebRTC microphone support unavailable": "Поддержка микрофона WebRTC недоступна",
"Requesting microphone": "Запрос доступа к микрофону",
"Voice off": "Голос выключен",
"VOICE UNAVAILABLE": "ГОЛОС НЕДОСТУПЕН",
"VOICE ACTIVE": "ГОЛОС АКТИВЕН",
"Voice session could not be started.": "Не удалось запустить голосовую сессию.",
"CONNECTING": "ПОДКЛЮЧЕНИЕ",
"LISTENING": "СЛУШАЮ",
"EXECUTING": "ВЫПОЛНЕНИЕ",
"ERROR": "ОШИБКА",
"{tier} applies next session": "{tier} вступит в силу со следующей сессии",
"Session ended — cost cap {cost}": "Сессия завершена — лимит стоимости {cost}",
"Next session: {pendingId} — this session stays on {modelId}": "Следующая сессия: {pendingId} — текущая остаётся на {modelId}",
"Voice model: {pendingId} — click to switch to {target}; applies next session": "Голосовая модель: {pendingId} — нажмите, чтобы переключиться на {target}; вступит в силу со следующей сессии",
"Estimated session cost on {modelId} — {responses} response(s). Warns at {warn}, ends the session at {cap}.": "Оценочная стоимость сессии на {modelId} — ответов: {responses}. Предупреждение при {warn}, завершение сессии при {cap}.",
"Radio did not start": "Не удалось запустить радио",
"Running command": "Выполнение команды"
}