From 7a18e0093b78127eb5afe7c82c98baa30e843697 Mon Sep 17 00:00:00 2001 From: German Khokhlov Date: Wed, 28 Oct 2026 17:08:36 +0400 Subject: [PATCH] i18n(uk): apply review round 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix meaning errors flagged by the three-model review: downed aircraft (Аварія літака), fast jet, the straight-ahead lane, road traffic, pilot vessel, nearby contact counts, the low-accuracy score. - Terms: CRS/TRK → ШК (шляховий кут), ascent → виведення, booster flight → ПОЛІТ, session → сеанс, sequence → послідовність, place search → пошук місця, CCTV pitch → нахил, mapped sites → нанесені обʼєкти everywhere; glossary updated. - Grammar: case agreement in the radio aria label and the key-store message, «прицілу», у/в euphony, payload count after a colon, FIRES as ПОЖ. so any count reads correctly. - The cockpit current-style button widens to fit ЗВИЧАЙНИЙ; other languages keep the 58px minimum. Co-Authored-By: Claude Opus 5.5 --- docs/translations/uk.md | 95 ++++++++++-------- src/i18n/locales/uk.json | 204 +++++++++++++++++++------------------- src/ui/styles/cockpit.css | 3 +- 3 files changed, 155 insertions(+), 147 deletions(-) diff --git a/docs/translations/uk.md b/docs/translations/uk.md index cd90b7b01..765be0233 100644 --- a/docs/translations/uk.md +++ b/docs/translations/uk.md @@ -30,47 +30,54 @@ A `tn()` entry needs four forms. `Intl.PluralRules('uk')` picks: ## Glossary -| English | Українська | -| ------------------------------------------ | ---------------------------------------------------- | -| layer / data layer | шар / шар даних | -| feed | потік даних (short: потік) | -| source / data source | джерело / джерело даних | -| LIVE (status) / live data | ОНЛАЙН / у реальному часі | -| SIMULATED / SYNTHETIC | ІМІТАЦІЯ | -| stale / degraded / unavailable | застарів / з перебоями (chip: ПЕРЕБОЇ) / недоступний | -| retry | повтор | -| key (API key) / POWER UP | ключ / ЗАПУСК | -| Provider Settings / provider | Налаштування постачальників / постачальник | -| globe / map / map source / basemap | глобус / карта / джерело карти / підкладка | -| aircraft / flight / military flights | літак (short HUD: борт) / рейс / військові рейси | -| vessel, ship / vessels | судно / судна (gen. pl. суден) | -| satellite | супутник | -| launch (rocket) / space mission | запуск / космічна місія | -| contact / tracking | контакт / стеження | -| installation, site / mapped | обʼєкт / нанесений на карту | -| camera / CCTV camera | камера / камера CCTV | -| earthquake / active fire / fire perimeter | землетрус / активна пожежа / контур пожежі | -| advisory (NHC/CPHC cyclone) | зведення | -| scene / shot / scene recipe | сцена / кадр / рецепт сцени | -| briefing / panel / dock | брифінг / панель / док | -| preset / visual preset | пресет / візуальний пресет | -| Scope (circular viewport mask) | приціл | -| overlay (detection overlay) | накладка | -| heading / altitude / ground speed | курс / висота / шляхова швидкість | -| HDG / BRG / CRS / FOV / DEST / SPD / RANGE | КУРС / ПЕЛ. / ШЛЯХ / ОГЛЯД / ПРИЗН. / ШВИД / ДАЛЬН. | -| Street View (Google) | Перегляд вулиць (as in Ukrainian Google Maps) | -| Street Level (layer) | Вуличні знімки | -| imagery / recent imagery | знімки / свіжі знімки | -| radar reflectivity / lightning density | радіолокаційна відбивність / щільність блискавок | -| infrared | інфрачервоний (short: ІЧ) | -| receiver / gain / decoder | приймач / підсилення / декодер | -| broadcaster | мовник | -| CONUS, WHOT/BHOT, Ironbow, CRT, NVG, FLIR | без перекладу | -| PREV / NEXT (HUD) / Previous / Next | ПОПЕР. / ДАЛІ / Попередній / Наступний | -| anchor / data pack / bundle (scene) | якір / пакет даних / архів | -| box (Recent Imagery area) | область | -| camera move | переліт | -| SIG / NEWS / LOCAL (briefing tabs) | СИГН. / НОВИНИ / МІСЦ. | -| compass points (N, NNE, NE, …) | Пн, ПнПнСх, ПнСх, … | -| L / R (relative bearing) | Л / П | -| click / tap | клацнути / натиснути | +| English | Українська | +| ----------------------------------------------- | ---------------------------------------------------------------- | +| layer / data layer | шар / шар даних | +| feed | потік даних (short: потік) | +| source / data source | джерело / джерело даних | +| LIVE (status) / live data | ОНЛАЙН / у реальному часі | +| SIMULATED / SYNTHETIC | ІМІТАЦІЯ | +| stale / degraded / unavailable | застарів / з перебоями (chip: ПЕРЕБОЇ) / недоступний | +| retry | повтор | +| key (API key) / POWER UP | ключ / ЗАПУСК | +| Provider Settings / provider | Налаштування постачальників / постачальник | +| globe / map / map source / basemap | глобус / карта / джерело карти / підкладка | +| aircraft / flight / military flights | літак (short HUD: борт) / рейс / військові рейси | +| vessel, ship / vessels | судно / судна (gen. pl. суден) | +| satellite | супутник | +| launch (rocket) / space mission | запуск / космічна місія | +| ascent (rocket) / booster FLIGHT {n} | виведення / ПОЛІТ {n} (not рейс) | +| contact / tracking | контакт / стеження | +| installation, site / mapped | обʼєкт / нанесений на карту | +| camera / CCTV camera | камера / камера CCTV | +| earthquake / active fire / fire perimeter | землетрус / активна пожежа / контур пожежі | +| advisory (NHC/CPHC cyclone) | зведення | +| scene / shot / scene recipe | сцена / кадр / рецепт сцени | +| briefing / panel / dock | брифінг / панель / док | +| preset / visual preset | пресет / візуальний пресет | +| Scope (circular viewport mask) | приціл | +| overlay (detection overlay) | накладка | +| heading / altitude / ground speed | курс / висота / шляхова швидкість | +| HDG / BRG / CRS, TRK / FOV / DEST / SPD / RANGE | КУРС / ПЕЛ. / ШК (шляховий кут) / ОГЛЯД / ПРИЗН. / ШВИД / ДАЛЬН. | +| Street View (Google) | Перегляд вулиць (as in Ukrainian Google Maps) | +| Street Level (layer) | Вуличні знімки | +| imagery / recent imagery | знімки / свіжі знімки | +| radar reflectivity / lightning density | радіолокаційна відбивність / щільність блискавок | +| infrared | інфрачервоний (short: ІЧ) | +| receiver / gain / decoder | приймач / підсилення / декодер | +| broadcaster | мовник | +| CONUS, WHOT/BHOT, Ironbow, CRT, NVG, FLIR | без перекладу | +| PREV / NEXT (HUD) / Previous / Next | ПОПЕР. / ДАЛІ / Попередній / Наступний | +| anchor / data pack / bundle (scene) | якір / пакет даних / архів | +| box (Recent Imagery area) | область | +| camera move | переліт | +| SIG / NEWS / LOCAL (briefing tabs) | СИГН. / НОВИНИ / МІСЦ. | +| compass points (N, NNE, NE, …) | Пн, ПнПнСх, ПнСх, … | +| L / R (relative bearing) | Л / П | +| click / tap | клацнути / натиснути | +| session (voice, OAuth) | сеанс | +| sequence (street-level photos) | послідовність | +| search (place search) | пошук місця | +| pitch (CCTV camera pose) | нахил | +| traffic (road traffic layer) | дорожній рух | +| phosphor (CRT) | люмінофор | diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index bc98109cf..6467d0996 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -38,13 +38,13 @@ "Widebody": "Широкофюзеляжний літак", "Four-engine jet": "Чотиримоторний реактивний літак", "Helicopter": "Гелікоптер", - "Fast jet": "Високоманеврений літак", + "Fast jet": "Швидкісний реактивний літак", "Business jet": "Бізнес-джет", "Drone": "Безпілотник", "General emergency": "Загальна аварійна ситуація", "Unlawful interference": "Незаконне втручання", "Radio failure": "Відмова радіозвʼязку", - "Downed aircraft": "Вимушена посадка", + "Downed aircraft": "Аварія літака", "Minimum fuel": "Мінімальний залишок пального", "Lifeguard (medical priority)": "Санітарний рейс (медичний пріоритет)", "Rasuwagadhi witness video": "Відео очевидця в Rasuwagadhi", @@ -255,7 +255,7 @@ "Mapped sites loaded": "Нанесені обʼєкти завантажено", "Military airfield": "Військовий аеродром", "Naval base": "Військово-морська база", - "Firing range": "Стрільбище", + "Firing range": "Полігон", "Military land": "Військова територія", "Mapped installation": "Обʼєкт на карті", "Military area": "Військова зона", @@ -270,7 +270,7 @@ "Directions": "Маршрути", "Recent imagery": "Свіжі знімки", "STATION": "СТАНЦІЇ", - "Crewed stations and their visiting vehicles": "Пілотовані станції та кораблі відвідування", + "Crewed stations and their visiting vehicles": "Пілотовані станції та кораблі, що їх відвідують", "NAV": "НАВ", "GNSS navigation — GPS, GLONASS, Galileo": "Навігація GNSS — GPS, GLONASS, Galileo", "GEO": "ГЕО", @@ -286,7 +286,7 @@ "MILITARY": "ВІЙСЬКОВЕ", "SAILING": "ВІТРИЛЬНЕ", "PLEASURE": "ПРОГУЛКОВЕ", - "PILOT": "ЛОЦМАН", + "PILOT": "ЛОЦМАНСЬКЕ", "SAR": "РЯТУВАЛЬНЕ", "TUG": "БУКСИР", "PORT TENDER": "ПОРТОВИЙ КАТЕР", @@ -391,8 +391,8 @@ "VOICE AUTH · API KEY": "ГОЛОС: КЛЮЧ API", "USE API KEY": "ВИКОРИСТАТИ КЛЮЧ API", "USE CHATGPT OAUTH": "ВИКОРИСТАТИ CHATGPT OAUTH", - "Use OPENAI_API_KEY for the next cloud voice session": "Використати OPENAI_API_KEY для наступної хмарної голосової сесії", - "Use the signed-in local ChatGPT/Codex OAuth session for the next cloud voice session": "Використати локальну OAuth-сесію ChatGPT/Codex, у яку виконано вхід, для наступної хмарної голосової сесії", + "Use OPENAI_API_KEY for the next cloud voice session": "Використати OPENAI_API_KEY для наступного хмарного голосового сеансу", + "Use the signed-in local ChatGPT/Codex OAuth session for the next cloud voice session": "Використати локальний OAuth-сеанс ChatGPT/Codex, у який виконано вхід, для наступного хмарного голосового сеансу", "Metered — a billing-enabled account": "Платний — потрібен обліковий запис з увімкненою оплатою", "Optional paid token — public access works without one": "Необовʼязковий платний токен — публічний доступ працює без нього", "Free key — register, paste, done": "Безкоштовний ключ — зареєструйтеся, вставте, готово", @@ -413,8 +413,8 @@ "Saving…": "Збереження…", "Save failed: {detail}": "Не вдалося зберегти: {detail}", "Paste at least one key first.": "Спочатку вставте принаймні один ключ.", - "Saved to {store}. Restarting — this page reloads itself.": "Збережено в {store}. Перезапуск — сторінка перезавантажиться сама.", - "Cloud voice will use OPENAI_API_KEY on the next session.": "Наступна хмарна голосова сесія використовуватиме OPENAI_API_KEY.", + "Saved to {store}. Restarting — this page reloads itself.": "Збережено до {store}. Перезапуск — сторінка перезавантажиться сама.", + "Cloud voice will use OPENAI_API_KEY on the next session.": "Наступний хмарний голосовий сеанс використовуватиме OPENAI_API_KEY.", "Checking local ChatGPT OAuth sign-in…": "Перевірка локального входу в ChatGPT через OAuth…", "Could not check ChatGPT sign-in.": "Не вдалося перевірити вхід у ChatGPT.", "ChatGPT OAuth selected for cloud voice. Your API key stays saved and available.": "Для хмарного голосу вибрано ChatGPT OAuth. Ваш ключ API залишається збереженим і доступним.", @@ -423,7 +423,7 @@ "Could not start ChatGPT sign-in on this machine.": "Не вдалося почати вхід у ChatGPT на цьому компʼютері.", "Finish ChatGPT sign-in in the browser. Waiting for it to complete…": "Завершіть вхід у ChatGPT у браузері. Очікування завершення…", "ChatGPT sign-in timed out. Click {button} to try again.": "Час на вхід у ChatGPT минув. Натисніть «{button}», щоб спробувати ще раз.", - "ChatGPT sign-in complete. OAuth will be used for the next cloud voice session.": "Вхід у ChatGPT виконано. У наступній хмарній голосовій сесії використовуватиметься OAuth.", + "ChatGPT sign-in complete. OAuth will be used for the next cloud voice session.": "Вхід у ChatGPT виконано. У наступному хмарному голосовому сеансі використовуватиметься OAuth.", "Remove this key from your saved configuration?": "Видалити цей ключ із вашої збереженої конфігурації?", "Removed from {store}. Restarting — this page reloads itself.": "Видалено з {store}. Перезапуск — сторінка перезавантажиться сама.", "The photorealistic 3D planet, place search + Street View": "Фотореалістична 3D-планета, пошук місць + Перегляд вулиць", @@ -432,7 +432,7 @@ "Gemini Live voice control": "Голосове керування через Gemini Live", "Live ships, worldwide": "Судна в реальному часі по всьому світу", "Live active-fire detections": "Виявлення активних пожеж у реальному часі", - "Real live traffic (keyless runs a simulation)": "Справжні затори в реальному часі (без ключа — імітація)", + "Real live traffic (keyless runs a simulation)": "Дорожній рух у реальному часі (без ключа — імітація)", "Bing imagery map stacks + world terrain": "Знімки Bing + рельєф світу", "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": "Вуличні знімки й покриття в шарі «Вуличні знімки». Безкоштовно: зареєструйте застосунок у панелі розробника Mapillary і вставте його клієнтський токен (Client Token)", @@ -515,7 +515,7 @@ "HDG {value}°": "КУРС {value}°", "BRG {value}°": "ПЕЛ. {value}°", "BRG —": "ПЕЛ. —", - "CRS {value}°": "ШЛЯХ {value}°", + "CRS {value}°": "ШК {value}°", "CURRENT VIEWPORT ONLY": "ЛИШЕ ПОТОЧНА ОБЛАСТЬ ОГЛЯДУ", "WITHIN {km} KM": "У РАДІУСІ {km} КМ", "Flights": "Рейси", @@ -559,7 +559,7 @@ "Subtropical storm": "Субтропічний шторм", "Subtropical depression": "Субтропічна депресія", "Track and cone match this advisory": "Трек і конус відповідають цьому зведенню", - "Track/cone awaiting advisory {number}": "Трек і конус зʼявляться зі зведенням № {number}", + "Track/cone awaiting advisory {number}": "Очікуються трек і конус для зведення № {number}", "Track/cone unavailable": "Трек/конус недоступні", "Cached advisory · stale source": "Зведення з кешу · джерело застаріло", "Loading advisories…": "Завантаження зведень…", @@ -582,7 +582,7 @@ "Wind unavailable": "Вітер: немає даних", "Advisory center / forecast track": "Центр циклону за зведенням / прогнозний трек", "Center-track uncertainty cone": "Конус невизначеності треку центру", - "Select a storm on the map, or choose a storm in the list to select it and move the camera. Click empty map space to clear the selection. NOAA NHC/CPHC advisory context. The cone describes forecast center-track uncertainty, not storm size or the full hazard area. Forecast point labels are source lead hours, not times computed from advisory issuance. Geometry follows the surface; height is not weather altitude. Consult the official advisory.": "Виберіть шторм на карті або в списку, щоб виділити його й перемістити до нього камеру. Клацніть на порожньому місці карти, щоб зняти виділення. Контекст зведень NOAA NHC/CPHC. Конус описує невизначеність прогнозного треку центру, а не розмір шторму чи всю зону небезпеки. Підписи прогнозних точок — завчасність джерела в годинах, а не час, розрахований від випуску зведення. Геометрія повторює поверхню; висота не відображає висоту погодних явищ. Звіряйтеся з офіційним зведенням.", + "Select a storm on the map, or choose a storm in the list to select it and move the camera. Click empty map space to clear the selection. NOAA NHC/CPHC advisory context. The cone describes forecast center-track uncertainty, not storm size or the full hazard area. Forecast point labels are source lead hours, not times computed from advisory issuance. Geometry follows the surface; height is not weather altitude. Consult the official advisory.": "Виберіть шторм на карті або в списку, щоб виділити його й перемістити до нього камеру. Клацніть на порожньому місці карти, щоб зняти виділення. Контекст зведень NOAA NHC/CPHC. Конус описує невизначеність прогнозного треку центру, а не розмір шторму чи всю зону небезпеки. Підписи прогнозних точок показують завчасність прогнозу в годинах за даними джерела, а не час, розрахований від випуску зведення. Геометрія повторює поверхню; висота не відображає висоту погодних явищ. Звіряйтеся з офіційним зведенням.", "DRIVE": "АВТО", "Drive": "Автомобілем", "WALK": "ПІШКИ", @@ -618,7 +618,7 @@ "lane direction|slightly right": "праву", "lane direction|sharply left": "крайню ліву", "lane direction|sharply right": "крайню праву", - "lane direction|straight": "середню", + "lane direction|straight": "призначену для руху прямо", "ordinal|{number}st": "{number}-й", "ordinal|{number}nd": "{number}-й", "ordinal|{number}rd": "{number}-й", @@ -710,7 +710,7 @@ "Then: {instruction}": "Потім: {instruction}", "No route found between A and B": "Маршрут між A і B не знайдено", "Routing failed: {error}": "Не вдалося побудувати маршрут: {error}", - "Routing timed out": "Минув час побудови маршруту", + "Routing timed out": "Минув час очікування маршруту", "Routing unavailable — no response from the routing service": "Побудова маршруту недоступна — сервіс маршрутизації не відповідає", "Earthquake source unavailable": "Джерело даних про землетруси недоступне", "Focus fire detection {title}, {details}": "Фокус на виявленні пожежі {title}, {details}", @@ -722,9 +722,9 @@ "NIGHT": "НІЧ", "▲ {frp} MW": "▲ {frp} МВт", "FIRE": "ПОЖЕЖА", - "FIRES": "ПОЖЕЖІ", + "FIRES": "ПОЖ.", "max {value} MW": "макс. {value} МВт", - "new {value}": "нова {value}", + "new {value}": "останнє: {value} тому", "{value}°N": "{value}° пн. ш.", "{value}°S": "{value}° пд. ш.", "{value}°E": "{value}° сх. д.", @@ -746,11 +746,11 @@ "LIVE · updated {age}": "ОНЛАЙН · оновлено {age}", "Source snapshot time unavailable": "Час знімка джерела невідомий", "Live data unavailable": "Дані в реальному часі недоступні", - "Intel Picture": "Розвідкартина", - "Kinetic 30d": "Бойові 30 дн", + "Intel Picture": "Розвідувальна обстановка", + "Kinetic 30d": "Бойові дії, 30 дн", "Border Crisis": "Криза на кордоні", - "Iran Picture": "Іран: картина", - "Iran Kinetic": "Іран: бойові", + "Iran Picture": "Іран: обстановка", + "Iran Kinetic": "Іран: бойові дії", "Yemen FLOT": "Ємен: лінія фронту", "Latest Drop": "Новий випуск", "GhostMaps file could not be read": "Не вдалося прочитати файл GhostMaps", @@ -775,15 +775,15 @@ }, "S2 Underground publishes these KMZ products to GitHub. New uploads are detected within seconds and replace the previous edition automatically. Click a marker for its report.": "S2 Underground публікує ці продукти KMZ на GitHub. Нові файли виявляються за лічені секунди й автоматично замінюють попередній випуск. Клацніть мітку, щоб відкрити її зведення.", "Malformed GhostMaps catalog": "Пошкоджений каталог GhostMaps", - "Low-accuracy score < 2%": "Частка неточних < 2%", - "Low-accuracy score 2–10%": "Частка неточних 2–10%", - "Low-accuracy score > 10%": "Частка неточних > 10%", + "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 хв", + "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} хв. Аномалії цілісності навігації — не виявлення глушіння чи підміни сигналу.", + "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} хв. Аномалії цілісності навігації не означають виявлення глушіння чи підміни сигналу.", "GNSS snapshot needs a view anchor": "Для знімка GNSS потрібна опорна точка вигляду", "GNSS feed rate limited (HTTP 429)": "Потік GNSS: перевищено ліміт запитів (HTTP 429)", "Malformed GNSS integrity snapshot": "Некоректний знімок цілісності GNSS", @@ -821,17 +821,17 @@ "T−{time} · {mission}": "T−{time} · {mission}", "LAUNCH STANDBY": "ГОТОВНІСТЬ ДО ЗАПУСКУ", "LIFTOFF · {mission}": "СТАРТ · {mission}", - "ASCENT REPLAY · {mission}": "ПОВТОР ЗЛЬОТУ · {mission}", - "ASCENT ESTIMATE · {mission}": "РОЗРАХУНКОВИЙ ЗЛІТ · {mission}", + "ASCENT REPLAY · {mission}": "ПОВТОР ВИВЕДЕННЯ · {mission}", + "ASCENT ESTIMATE · {mission}": "РОЗРАХУНКОВЕ ВИВЕДЕННЯ · {mission}", "STAGE RE-ENTRY / RECOVERY · {mission}": "ВХІД В АТМОСФЕРУ / ПОВЕРНЕННЯ · {mission}", "ORBIT REPLAY · {mission}": "ПОВТОР ОРБІТИ · {mission}", "PAUSED · {title}": "ПАУЗА · {title}", "UNSPECIFIED": "НЕ ВКАЗАНО", - "+{count} additional payload records": "+{count} додаткових записів корисного навантаження", + "+{count} additional payload records": "Додаткові записи корисного навантаження: +{count}", "PAYLOAD DATA UNAVAILABLE": "ДАНІ КОРИСНОГО НАВАНТАЖЕННЯ НЕДОСТУПНІ", "{value} KM DOWNRANGE": "{value} КМ УЗДОВЖ ТРАСИ", "POSITION UNAVAILABLE": "ПОЗИЦІЯ НЕДОСТУПНА", - "FLIGHT {count}": "РЕЙС {count}", + "FLIGHT {count}": "ПОЛІТ {count}", "REUSED": "ПОВТОРНО ВИКОРИСТАНИЙ", "NO STAGE RE-ENTRY / RECOVERY DATA": "НЕМАЄ ДАНИХ ПРО ВХІД В АТМОСФЕРУ / ПОВЕРНЕННЯ", "{count} / 30D": "{count} / 30 ДН", @@ -863,7 +863,7 @@ "FINAL POSITION": "КІНЦЕВА ПОЗИЦІЯ", "REPLAY SPEED": "ШВИДКІСТЬ ПОВТОРУ", "Replay speed multiplier": "Множник швидкості повтору", - "REPLAY ASCENT": "ПОВТОР ЗЛЬОТУ", + "REPLAY ASCENT": "ПОВТОР ВИВЕДЕННЯ", "Previous mission": "Попередня місія", "PREV": "ПОПЕР.", "Next mission": "Наступна місія", @@ -874,12 +874,12 @@ "PLANNED · ": "ПЛАН · ", "SUPPLIED TRAJECTORY POINTS": "НАДАНІ ТОЧКИ ТРАЄКТОРІЇ", "RECONSTRUCTED ESTIMATE": "ВІДТВОРЕНА ОЦІНКА", - "Replay the estimated ascent with a following camera": "Відтворити розрахунковий зліт із камерою-супроводом", + "Replay the estimated ascent with a following camera": "Відтворити розрахункове виведення з камерою супроводу", "Resume replay": "Продовжити повтор", "T minus {seconds}": "T мінус {seconds}", "Preparing launch site": "Підготовка місця запуску", "Liftoff": "Старт", - "Ascent replay": "Повтор зльоту", + "Ascent replay": "Повтор виведення", "Orbit replay": "Повтор орбіти", ", paused": ", пауза", "Malformed launch snapshot": "Некоректний знімок запусків", @@ -892,7 +892,7 @@ "Your decoder feed": "Ваш потік декодера", "Your RTL-SDR receiver": "Ваш приймач RTL-SDR", "NO CALLSIGN": "БЕЗ ПОЗИВНОГО", - "ALT {altitude} FT · GS {speed} KT · TRK {track}": "ВИС. {altitude} ФТ · ШЛЯХ. ШВ. {speed} ВУЗ · ШЛЯХ {track}", + "ALT {altitude} FT · GS {speed} KT · TRK {track}": "ВИС. {altitude} ФТ · ШЛЯХ. ШВ. {speed} ВУЗ · ШК {track}", "V/S {rate}": "ВЕРТ. ШВ. {rate}", "V/S {rate} FPM": "ВЕРТ. ШВ. {rate} ФТ/ХВ", "POSITION {age}": "ПОЗИЦІЯ {age}", @@ -959,7 +959,7 @@ "50–99% contained": "Локалізовано на 50–99%", "Fully contained": "Повністю локалізовано", "Colour shows reported containment. Perimeters are simplified to about 100 m.": "Колір показує заявлений ступінь локалізації. Контури спрощено приблизно до 100 м.", - "Malformed perimeter snapshot": "Некоректний знімок периметрів", + "Malformed perimeter snapshot": "Некоректний знімок контурів пожеж", "radio tag|All": "Усі", "News": "Новини", "Talk": "Розмовні", @@ -982,7 +982,7 @@ "radio|MUSIC": "МУЗИКА", "radio|OTHER": "ІНШЕ", "Broadcaster stream is unavailable or blocked by the browser.": "Потік мовника недоступний або заблокований браузером.", - "Playback requires a direct click or tap.": "Щоб почати відтворення, натисніть кнопку відтворення.", + "Playback requires a direct click or tap.": "Для відтворення потрібне безпосереднє натискання.", "Broadcaster stream could not be started.": "Не вдалося запустити потік мовника.", "Alternative": "Альтернатива", "Ambient": "Ембієнт", @@ -1055,10 +1055,10 @@ "Point the camera at the ground for street-level coverage": "Спрямуйте камеру на землю, щоб побачити покриття вуличних знімків", "Coverage tile failed": "Не вдалося завантажити тайл покриття", "The photo could not be loaded": "Не вдалося завантажити фото", - "{name} photo. ← and → step along the sequence. On a 360° photo, drag or use Shift+← →, ↑ ↓ to look around, and + − to zoom": "Фото {name}. ← і → гортають зйомку. На 360°-фото перетягуйте або використовуйте Shift+← →, ↑ ↓ для огляду, + − для масштабу", + "{name} photo. ← and → step along the sequence. On a 360° photo, drag or use Shift+← →, ↑ ↓ to look around, and + − to zoom": "Фото {name}. ← і → гортають послідовність. На 360°-фото перетягуйте або використовуйте Shift+← →, ↑ ↓ для огляду, + − для масштабу", "{name} street-level photo": "Вуличне фото {name}", - "Previous photo in this sequence (←)": "Попереднє фото зйомки (←)", - "Next photo in this sequence (→)": "Наступне фото зйомки (→)", + "Previous photo in this sequence (←)": "Попереднє фото послідовності (←)", + "Next photo in this sequence (→)": "Наступне фото послідовності (→)", "Aim the middle of the view at a street to look for imagery there": "Наведіть центр вигляду на вулицю, щоб пошукати там знімки", "KEY REJECTED": "КЛЮЧ ВІДХИЛЕНО", "GOOGLE_MAPS_API_KEY is not set": "GOOGLE_MAPS_API_KEY не задано", @@ -1279,7 +1279,7 @@ "{source} HTTP {status}": "{source}: HTTP {status}", "Wind": "Вітер", "Wind source unavailable": "Джерело вітру недоступне", - "Forecast · does not follow history": "Прогноз · не йде за історією", + "Forecast · does not follow history": "Прогноз · не синхронізується з історією", "Wind motion": "Рух вітру", "Wind speed": "Швидкість вітру", "Sea-level pressure": "Тиск на рівні моря", @@ -1303,9 +1303,9 @@ "Wind trails with no field shading": "Сліди вітру без заливки поля", "How hard the surface wind is blowing": "Наскільки сильно дме приземний вітер", "Sea-level air pressure: broad highs and lows": "Тиск на рівні моря: великі області високого й низького тиску", - "Air temperature two meters above the surface": "Температура повітря за два метри над поверхнею", + "Air temperature two meters above the surface": "Температура повітря на висоті двох метрів над поверхнею", "Wind speed units": "Одиниці швидкості вітру", - "Read wind at map center": "Дізнатися вітер у центрі карти", + "Read wind at map center": "Показати вітер у центрі карти", "Read the forecast at the center of the map without changing selection": "Отримати прогноз у центрі карти, не змінюючи вибору", "{model} forecast · {field} ({unit})": "Прогноз {model} · {field} ({unit})", "Valid: {time}": "Чинний на: {time}", @@ -1426,14 +1426,14 @@ "Select a feature or use Tab and Enter to choose an action.": "Виберіть обʼєкт на карті або скористайтеся Tab і Enter, щоб вибрати дію.", "Selected feature: {feature}. Choose an action.": "Вибрано обʼєкт: {feature}. Виберіть дію.", "Running {index}/{total}: {scene} / {shot}": "Виконання {index}/{total}: {scene} / {shot}", - "Scene run complete": "Запуск сцени завершено", + "Scene run complete": "Відтворення сцени завершено", "Bhote Koshi Evidence Sequence": "Послідовність свідчень: Bhote Koshi", "Nepal Flood Incident": "Паводок у Непалі", "Global Flights Radar": "Глобальний радар польотів", "Orbital Watch": "Орбітальний нагляд", "Thermal Threat Board": "Панель теплових загроз", "City Overload": "Міське перевантаження", - "Omniscience Pullback": "Всевидючий відʼїзд", + "Omniscience Pullback": "Всевидющий відʼїзд", "Global Incident Context": "Глобальний контекст події", "Nepal-Focused Globe Rotation": "Поворот глобуса до Непалу", "Bhote Koshi Regional Approach": "Підліт до регіону Bhote Koshi", @@ -1578,7 +1578,7 @@ "North up": "Північ угорі", "CCTV calibration saved": "Калібрування CCTV збережено", "HDG": "КУРС", - "PITCH": "ТАНГАЖ", + "PITCH": "НАХИЛ", "FOV": "ОГЛЯД", "RANGE": "ДАЛЬН.", "HGT": "ВИС.", @@ -1609,7 +1609,7 @@ "No source configured": "Джерело не налаштовано", "Configured source": "Налаштоване джерело", "Configured Source": "Налаштоване джерело", - "Synthetic fallback": "Синтетичний резерв", + "Synthetic fallback": "Резервна імітація", "Upstream HTTP {status}": "Джерело: HTTP {status}", "Unexpected media type {type}": "Неочікуваний тип медіа: {type}", "SOURCE · UNKNOWN": "ДЖЕРЕЛО · НЕВІДОМЕ", @@ -1644,7 +1644,7 @@ "many": "{count} камер завантажено · увімкніть CCTV, щоб активувати", "other": "{count} камери завантажено · увімкніть CCTV, щоб активувати" }, - "Enable CCTV to load camera intersections": "Увімкніть CCTV, щоб завантажити перехрестя камер", + "Enable CCTV to load camera intersections": "Увімкніть CCTV, щоб завантажити камери на перехрестях", "Enable CCTV to start camera-linked intelligence summaries.": "Увімкніть CCTV, щоб почати зведення розвідки за камерами.", "No summary available.": "Зведення недоступне.", "loading frames": "завантаження кадрів", @@ -1659,7 +1659,7 @@ "DRIZZLE": "МЖИЧКА", "RAIN": "ДОЩ", "RAIN SHOWERS": "ЗЛИВИ", - "SNOW SHOWERS": "СНІЖНІ ЗЛИВИ", + "SNOW SHOWERS": "ЗЛИВОВИЙ СНІГ", "THUNDERSTORM": "ГРОЗА", "MIXED CONDITIONS": "ЗМІШАНІ УМОВИ", "CYCLE ON": "ЦИКЛ УВІМКНЕНО", @@ -1683,7 +1683,7 @@ "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": "ОБʼЄКТ ЗНИК ІЗ ПОТОКУ · ПОКАЗНИКИ ОСТАННІ ВІДОМІ", + "SUBJECT LEFT ITS FEED · READOUT HOLDING LAST KNOWN": "ОБʼЄКТ ЗНИК ІЗ ПОТОКУ · ПОКАЗАНО ОСТАННІ ВІДОМІ ДАНІ", "{cohort} · {contact}": "{cohort} · {contact}", "NO AVAILABLE EXAMPLE": "НЕМАЄ ДОСТУПНОГО ПРИКЛАДУ", "{cohort}, Unavailable": "{cohort}, недоступно", @@ -1735,7 +1735,7 @@ "SOURCE-BACKED EVENTS · NO SYNTHETIC NEWS": "ПОДІЇ ПІДТВЕРДЖЕНІ ДЖЕРЕЛАМИ · БЕЗ ШТУЧНИХ НОВИН", "LATEST LOCATION-MATCHED REPORTING": "ОСТАННІ ПУБЛІКАЦІЇ ЗА РОЗТАШУВАННЯМ", "{source} · LOCATION QUERY · RECENT": "{source} · ЗАПИТ ЗА МІСЦЕМ · НЕЩОДАВНІ", - "LOCAL INFO": "МІСЦЕВА ІНФОРМАЦІЯ", + "LOCAL INFO": "МІСЦЕВІ ДАНІ", "PLACE / CONDITIONS / POSITION": "МІСЦЕ / УМОВИ / ПОЗИЦІЯ", "TIME UNKNOWN": "ЧАС НЕВІДОМИЙ", "{count}M AGO": "{count} ХВ ТОМУ", @@ -1826,10 +1826,10 @@ "Earthquakes (24h)": "Землетруси (24 год)", "Satellites": "Супутники", "Space Missions (30d)": "Космічні місії (30 дн)", - "Street Traffic": "Вуличний рух", + "Street Traffic": "Дорожній рух", "CCTV": "CCTV", "Radio": "Радіо", - "Bikeshare": "Велопрокат", + "Bikeshare": "Прокат велосипедів", "Live AIS Vessels": "Судна AIS онлайн", "Mapped Installations": "Нанесені обʼєкти", "Global Context": "Глобальний контекст", @@ -1940,8 +1940,8 @@ "📍 Location: --": "📍 Розташування: --", "Landmark: --": "Орієнтир: --", "Searched location": "Знайдене розташування", - "ORBIT": "ОРБІТА", - "Location not found": "Розташування не знайдено", + "ORBIT": "ОБЛІТ", + "Location not found": "Місце не знайдено", "Check the spelling and press Enter to search again.": "Перевірте написання й натисніть Enter, щоб повторити пошук.", "Search failed": "Пошук не вдався", "Press Enter to try again.": "Натисніть Enter, щоб спробувати знову.", @@ -2000,7 +2000,7 @@ "Enable Radio": "Увімкнути радіо", "{category} ({count})": "{category} ({count})", "DIRECTORY BAND": "ДІАПАЗОН КАТАЛОГУ", - "{category} BAND": "{category} ДІАПАЗОН", + "{category} BAND": "ДІАПАЗОН: {category}", "NO STATION SELECTED": "СТАНЦІЮ НЕ ВИБРАНО", "Directory metadata only": "Лише метадані каталогу", "Loading station directory…": "Завантаження каталогу станцій…", @@ -2010,9 +2010,9 @@ "PAUSE": "ПАУЗА", "RESUME": "ПРОДОВЖ.", "PLAY": "ВІДТВОРИТИ", - "selected": "вибрану", - "nearest": "найближчу", - "{action} {target} radio station": "{action} {target} радіостанцію", + "selected": "вибрана", + "nearest": "найближча", + "{action} {target} radio station": "{action}: {target} радіостанція", "RADIO STATE UNCERTAIN": "СТАН РАДІО НЕВИЗНАЧЕНИЙ", "SYNCING DIRECTORY": "СИНХРОНІЗАЦІЯ КАТАЛОГУ", "RADIO READY": "РАДІО ГОТОВЕ", @@ -2030,8 +2030,8 @@ "Playing {station}": "Відтворюється: {station}", "Paused {station}": "Пауза: {station}", "Broadcaster stream unavailable": "Потік мовника недоступний", - " · muted during voice interaction": " · приглушено під час голосової сесії", - " · restoring volume after voice": " · відновлення гучності після голосової сесії", + " · 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": "Станція недоступна після оновлення каталогу — виберіть інший канал", @@ -2039,9 +2039,9 @@ "Radio is disabling…": "Радіо вимикається…", "Radio lifecycle is uncertain — use Enable or Disable to reconcile": "Стан радіо невизначений — звірте через «Увімкнути» або «Вимкнути»", "Clear reading": "Очистити покази", - "Earlier observation": "Раніше спостереження", + "Earlier observation": "Попереднє спостереження", "Observed history": "Історія спостережень", - "Later observation": "Пізніше спостереження", + "Later observation": "Наступне спостереження", "Latest": "Останні", "Newest frame per product": "Найсвіжіший кадр кожного продукту", "Replay observed history": "Відтворити історію спостережень", @@ -2192,10 +2192,10 @@ "LOAD COMPLETE": "ЗАВАНТАЖЕННЯ ЗАВЕРШЕНО", "LOAD CANCELLED": "ЗАВАНТАЖЕННЯ СКАСОВАНО", "LOAD FAILED": "ПОМИЛКА ЗАВАНТАЖЕННЯ", - "LIVE DATA OFF": "ДАНІ У РЕАЛЬНОМУ ЧАСІ ВИМКНЕНО", - "MAPPED SITES LOADED": "МІСЦЯ НА КАРТІ ЗАВАНТАЖЕНО", - "RETRYING MAPPED SITES": "ПОВТОРНЕ ЗАВАНТАЖЕННЯ МІСЦЬ НА КАРТІ", - "FETCHING MAPPED SITES": "ЗАВАНТАЖЕННЯ МІСЦЬ НА КАРТІ", + "LIVE DATA OFF": "ДАНІ В РЕАЛЬНОМУ ЧАСІ ВИМКНЕНО", + "MAPPED SITES LOADED": "НАНЕСЕНІ ОБʼЄКТИ ЗАВАНТАЖЕНО", + "RETRYING MAPPED SITES": "ПОВТОРНЕ ЗАВАНТАЖЕННЯ НАНЕСЕНИХ ОБʼЄКТІВ", + "FETCHING MAPPED SITES": "ЗАВАНТАЖЕННЯ НАНЕСЕНИХ ОБʼЄКТІВ", "RETRYING ALPR CAMERAS": "ПОВТОРНЕ ЗАВАНТАЖЕННЯ КАМЕР ALPR", "FETCHING ALPR CAMERAS": "ЗАВАНТАЖЕННЯ КАМЕР ALPR", "OVERPASS TEMPORARILY UNAVAILABLE": "OVERPASS ТИМЧАСОВО НЕДОСТУПНИЙ", @@ -2319,10 +2319,10 @@ "other": "{n} вулиці в кадрі · клацніть лінію, щоб відкрити найближче фото" }, "{n} sequences in view · click a line for its nearest photo": { - "one": "{n} зйомка в кадрі · клацніть лінію, щоб відкрити найближче фото", - "few": "{n} зйомки в кадрі · клацніть лінію, щоб відкрити найближче фото", - "many": "{n} зйомок у кадрі · клацніть лінію, щоб відкрити найближче фото", - "other": "{n} зйомки в кадрі · клацніть лінію, щоб відкрити найближче фото" + "one": "{n} послідовність у кадрі · клацніть лінію, щоб відкрити найближче фото", + "few": "{n} послідовності в кадрі · клацніть лінію, щоб відкрити найближче фото", + "many": "{n} послідовностей у кадрі · клацніть лінію, щоб відкрити найближче фото", + "other": "{n} послідовності в кадрі · клацніть лінію, щоб відкрити найближче фото" }, "{n} sequences in view · click a line for its photos": { "one": "{n} послідовність у кадрі · клацніть лінію, щоб відкрити знімки", @@ -2344,7 +2344,7 @@ "s": "с", "dB": "дБ", "Celestial ring — reveal the full globe": "Небесне кільце — показати весь глобус", - "Celestial ring — available in Normal style": "Небесне кільце — доступне у стилі «Звичайний»", + "Celestial ring — available in Normal style": "Небесне кільце — доступне в стилі «Звичайний»", "Detection overlay: {mode}": "Накладка виявлення: {mode}", "Detection overlay: off": "Накладка виявлення: вимк.", "DETECT": "ВИЯВЛЕННЯ", @@ -2352,7 +2352,7 @@ "Active weather": "Активні погодні шари", "LATEST · newest per product": "ОСТАННІ · найсвіжіші для кожного продукту", "Forecast · valid {valid} · issued {issued}": "Прогноз · чинний на {valid} · випущено {issued}", - "{detail} · Does not follow history": "{detail} · не йде за історією", + "{detail} · Does not follow history": "{detail} · не синхронізується з історією", "Forecast · valid {valid}": "Прогноз · чинний на {valid}", "voice|OFF": "ВИМК.", "voice|CONNECTING": "ЗʼЄДНАННЯ", @@ -2363,9 +2363,9 @@ "Changing provider reconnects voice if it is on.": "Зміна постачальника перепідключає голосовий режим, якщо його ввімкнено.", "Voice Settings": "Налаштування голосу", "AI AGENT": "ШІ-АГЕНТ", - "Voice model tier — applies next session": "Рівень голосової моделі — застосовується з наступної сесії", + "Voice model tier — applies next session": "Рівень голосової моделі — застосовується з наступного сеансу", "STD": "СТД", - "Estimated session cost": "Орієнтовна вартість сесії", + "Estimated session cost": "Орієнтовна вартість сеансу", "Voice control — activate to toggle voice; hold Space to speak": "Голосове керування — активуйте, щоб увімкнути або вимкнути голос; утримуйте Space, щоб говорити", "ON/OFF": "ПЕРЕМК.", "VOICE STANDBY": "ГОЛОС ОЧІКУЄ", @@ -2452,21 +2452,21 @@ "WebRTC microphone support unavailable": "Підтримка мікрофона WebRTC недоступна", "VOICE UNAVAILABLE": "ГОЛОС НЕДОСТУПНИЙ", "VOICE ACTIVE": "ГОЛОС АКТИВНИЙ", - "Voice session could not be started.": "Не вдалося запустити голосову сесію.", + "Voice session could not be started.": "Не вдалося запустити голосовий сеанс.", "MINI": "МІНІ", - "Next session: {pendingId} — this session stays on {modelId}": "Наступна сесія: {pendingId} — поточна залишається на {modelId}", - "Voice model: {pendingId} — click to switch to {target}; applies next session": "Голосова модель: {pendingId} — натисніть, щоб перейти на {target}; застосовується з наступної сесії", + "Next session: {pendingId} — this session stays on {modelId}": "Наступний сеанс: {pendingId} — поточний залишається на {modelId}", + "Voice model: {pendingId} — click to switch to {target}; applies next session": "Голосова модель: {pendingId} — натисніть, щоб перейти на {target}; застосовується з наступного сеансу", "standard": "стандартну", "mini": "міні", "COST UNKNOWN": "ВАРТІСТЬ НЕВІДОМА", - "ChatGPT OAuth session: {responses} response(s), {input} input and {output} output tokens, {captions} caption transcription(s) reported.": "Сесія ChatGPT OAuth: відповідей — {responses}, вхідних токенів — {input}, вихідних токенів — {output}, транскрипцій субтитрів — {captions}.", + "ChatGPT OAuth session: {responses} response(s), {input} input and {output} output tokens, {captions} caption transcription(s) reported.": "Сеанс ChatGPT OAuth: відповідей — {responses}, вхідних токенів — {input}, вихідних токенів — {output}, транскрипцій субтитрів — {captions}.", "USD cost and the API spend cap are unavailable for this auth mode.": "Вартість у USD і ліміт витрат API недоступні в цьому режимі авторизації.", - "Usage is incomplete because a response was still in flight when the session ended.": "Дані про використання неповні: на момент завершення сесії одну з відповідей ще не було отримано.", - "Estimated session cost on {modelId} — {responses} response(s). Warns at {warn}, ends the session at {cap}.": "Орієнтовна вартість сесії на {modelId} — відповідей: {responses}. Попереджає при {warn}, завершує сесію при {cap}.", - "Estimate is incomplete — a response was still in flight when the session ended, so its usage was never reported.": "Оцінка неповна: на момент завершення сесії одну з відповідей ще не було отримано, тому її використання не враховано.", + "Usage is incomplete because a response was still in flight when the session ended.": "Дані про використання неповні: на момент завершення сеансу одну з відповідей ще не було отримано.", + "Estimated session cost on {modelId} — {responses} response(s). Warns at {warn}, ends the session at {cap}.": "Орієнтовна вартість сеансу на {modelId} — відповідей: {responses}. Попереджає при {warn}, завершує сеанс при {cap}.", + "Estimate is incomplete — a response was still in flight when the session ended, so its usage was never reported.": "Оцінка неповна: на момент завершення сеансу одну з відповідей ще не було отримано, тому її використання не враховано.", "STANDARD": "СТАНДАРТ", - "{tier} applies next session": "{tier} застосовується з наступної сесії", - "Session ended — cost cap {cost}": "Сесію завершено — ліміт витрат {cost}", + "{tier} applies next session": "{tier} застосовується з наступного сеансу", + "Session ended — cost cap {cost}": "Сеанс завершено — ліміт витрат {cost}", "MIC": "МІК", "Radio did not start": "Радіо не запустилося", "{n} aircraft": { @@ -2610,7 +2610,7 @@ "Activate to toggle voice": "Активуйте, щоб увімкнути або вимкнути голос", "Voice active": "Голос активний", "Voice could not be started.": "Не вдалося запустити голос.", - "the active voice session": "активна голосова сесія", + "the active voice session": "активний голосовий сеанс", "{value} feet": "{value} фт", "Fire · FRP {frp} MW": "Пожежа · FRP {frp} МВт", "The flights layer is not enabled": "Шар рейсів не ввімкнено", @@ -2762,7 +2762,7 @@ "Recent speech": "Нещодавнє мовлення", "HERE": "ТУТ", "Aircraft cockpit view": "Вигляд кабіни повітряного судна", - "LEVEL": "РІВЕНЬ", + "LEVEL": "ГОРИЗОНТ", "Estimated destination direction": "Орієнтовний напрямок до пункту призначення", "DEST ---°": "ПРИЗН. ---°", "OPTICAL PLANE · 01": "ОПТИЧНА ПЛОЩИНА · 01", @@ -2789,7 +2789,7 @@ "CONTACTS · 250 KM": "КОНТАКТИ · 250 КМ", "Contact navigation": "Навігація контактами", "CONTEXT ONLY": "ЛИШЕ КОНТЕКСТ", - "Nearby cohort counts": "Кількість найближчих груп", + "Nearby cohort counts": "Кількість контактів поблизу за типами", "FLT": "РЕЙСИ", "MIL": "ВІЙСЬК.", "SITE": "ОБʼЄКТИ", @@ -2819,7 +2819,7 @@ "NEWS": "НОВИНИ", "Show Regional News": "Показати регіональні новини", "LOCAL": "МІСЦ.", - "Show Local Info": "Показати місцеву інформацію", + "Show Local Info": "Показати місцеві дані", "Cockpit display and Radio controls": "Керування дисплеєм і радіо кабіни", "DISPLAY": "ДИСПЛЕЙ", "Cockpit display options": "Параметри дисплея кабіни", @@ -2842,12 +2842,12 @@ "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-монітор із зеленим фосфором, рядками розгортки та вигнутим екраном.", + "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.": "Застосовує яскраву мультяшну заливку та ілюстровані контури.", "Apply high-contrast monochrome film-noir grading.": "Застосовує висококонтрастну чорно-білу обробку в стилі нуар.", - "Add a cold, snowy whiteout treatment to the scene.": "Додає до сцени холодний засніжений білий ефект.", + "Add a cold, snowy whiteout treatment to the scene.": "Додає до сцени холодний ефект снігової імли.", "MAP SOURCE": "ДЖЕРЕЛО КАРТИ", "Map source": "Джерело карти", "Style": "Стиль", @@ -2855,9 +2855,9 @@ "Collapse panel": "Згорнути панель", "Pin location tray": "Закріпити панель розташування", "Keep location tray open": "Тримати панель розташування відкритою", - "Search any location": "Шукати будь-яке розташування", - "Search location by name or coordinates": "Шукати розташування за назвою або координатами", - "Search any location...": "Шукати будь-яке розташування...", + "Search any location": "Пошук місця", + "Search location by name or coordinates": "Пошук місця за назвою або координатами", + "Search any location...": "Пошук місця...", "WEATHER": "ПОГОДА", "Active weather products": "Активні погодні продукти", "RECENT IMAGERY": "СВІЖІ ЗНІМКИ", @@ -2903,7 +2903,7 @@ "Radio volume": "Гучність радіо", "STATION SITE": "САЙТ СТАНЦІЇ", "DIRECTORY: RADIO BROWSER": "КАТАЛОГ: RADIO BROWSER", - "Audio connects directly to the broadcaster after you press play. Your IP is visible to that broadcaster.": "Після натискання відтворення аудіо зʼєднується напряму з мовником. Мовник бачить вашу IP-адресу.", + "Audio connects directly to the broadcaster after you press play. Your IP is visible to that broadcaster.": "Після натискання «Відтворити» звук надходить безпосередньо від мовника. Мовник бачить вашу IP-адресу.", "Local RTL-SDR receiver": "Локальний приймач RTL-SDR", "LOCAL RTL-SDR": "ЛОКАЛЬНИЙ RTL-SDR", "Chrome/Edge · WebUSB · one local tuner shared by FM and the Local ADS-B layer.": "Chrome/Edge · WebUSB · один локальний тюнер для FM і шару «Локальний ADS-B».", @@ -2949,7 +2949,7 @@ "Detection label density": "Щільність підписів виявлення", "Allocation": "Розподіл", "Detection label allocation": "Розподіл підписів виявлення", - "Elastic": "Пружний", + "Elastic": "Гнучкий", "Weighted": "Зважений", "Fade": "Згасання", "Detection fade distance": "Відстань згасання виявлення", @@ -2965,8 +2965,8 @@ "Scope — the circular viewport mask": "Приціл — кругла маска вікна перегляду", "Scope": "Приціл", "Feather": "Розмиття", - "Scope edge feather": "Розмиття краю приціла", - "Scope edge feather as a percentage of the keyhole radius": "Розмиття краю приціла у відсотках радіуса ілюмінатора", + "Scope edge feather": "Розмиття краю прицілу", + "Scope edge feather as a percentage of the keyhole radius": "Розмиття краю прицілу у відсотках від радіуса ілюмінатора", "Draw on the world — click vertices, double-click or Enter to finish, Esc to cancel": "Малювати на карті світу — клацайте вершини, подвійне клацання або Enter — завершити, Esc — скасувати", "Shape": "Фігура", "Shape to draw": "Фігура для малювання", @@ -2988,7 +2988,7 @@ "Choose GeoJSON, KML, KMZ or GPX files": "Виберіть файли GeoJSON, KML, KMZ або GPX", "Imported files": "Імпортовані файли", "Celestial": "Небо", - "Hide UI chrome": "Сховати оформлення інтерфейсу", + "Hide UI chrome": "Сховати елементи інтерфейсу", "Clean UI": "Чистий інтерфейс", "Bloom / Glow": "Світіння / Ореол", "Bloom intensity": "Інтенсивність світіння", @@ -3003,17 +3003,17 @@ "NEAREST": "НАЙБЛИЖЧА", "CCTV camera": "Камера CCTV", "CALIBRATION": "КАЛІБРУВАННЯ", - "Drag the camera in the world: rings rotate, arrows move, handles set range/FOV": "Перетягніть камеру у сцені: кільця обертаються, стрілки переміщуються, маркери задають дальність/FOV", + "Drag the camera in the world: rings rotate, arrows move, handles set range/FOV": "Перетягніть камеру в сцені: кільця — обертання, стрілки — переміщення, маркери — дальність/FOV", "Camera pose — click a value to type": "Позиція камери — клацніть значення, щоб увести", "Heading (compass °) — click to type": "Курс (° за компасом) — клацніть, щоб увести", - "Pitch (° up/down) — click to type": "Тангаж (° вгору/вниз) — клацніть, щоб увести", + "Pitch (° up/down) — click to type": "Нахил (° вгору/вниз) — клацніть, щоб увести", "Horizontal FOV (°) — click to type": "Горизонтальний FOV (°) — клацніть, щоб увести", "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": "СКИНУТИ КАЛ.", + "SAVE CAL": "ЗБЕРЕГТИ КАЛІБР.", + "RESET CAL": "СКИНУТИ КАЛІБР.", "SCENE SUMMARY": "ЗВЕДЕННЯ СЦЕНИ", "STREET LEVEL": "ВУЛИЧНІ ЗНІМКИ", "Turn Street Level on or off": "Увімкнути або вимкнути «Вуличні знімки»", diff --git a/src/ui/styles/cockpit.css b/src/ui/styles/cockpit.css index d54e09f8d..8116380b3 100644 --- a/src/ui/styles/cockpit.css +++ b/src/ui/styles/cockpit.css @@ -730,7 +730,8 @@ html:not([lang='en']) .cockpit-roll-token.is-separator { } .cockpit-vision-controls { display: grid; - grid-template-columns: 48px 58px 48px; + /* The current style grows for a long translated name (ЗВИЧАЙНИЙ). */ + grid-template-columns: 48px minmax(58px, max-content) 48px; align-items: stretch; gap: 2px; margin-top: 2px;