{
  "app": {
    "name": "Відеоспостереження"
  },
  "nav": {
    "main": "Головне меню",
    "cameras": "Камери",
    "groups": "Групи",
    "members": "Користувачі",
    "log": "Журнал",
    "account": "Акаунт",
    "logout": "Вийти",
    "more": "Ще",
    "skip": "До вмісту",
    "overview": "Огляд",
    "subscribers": "Абоненти",
    "incidents": "Збої",
    "billing": "Білінг",
    "metrics": "Навантаження",
    "playback": "Архів",
    "wall": "Відеостіна",
    "settings": "Налаштування"
  },
  "role": {
    "subscriber": "абонент",
    "member": "користувач акаунта",
    "admin": "адміністратор",
    "operator": "оператор"
  },
  "common": {
    "back": "Назад",
    "close": "Закрити",
    "save": "Зберегти",
    "saved": "Збережено",
    "cancel": "Скасувати",
    "create": "Створити",
    "delete": "Видалити",
    "edit": "Змінити",
    "confirm_delete": "Натисніть ще раз",
    "retry": "Повторити",
    "refresh": "Оновити",
    "search": "Пошук",
    "all": "Усі",
    "nothing": "Нічого немає",
    "load_more": "Показати ще",
    "shown": {
      "one": "{n} запис",
      "few": "{n} записи",
      "many": "{n} записів",
      "other": "{n} запису"
    },
    "more_info": "Пояснення",
    "about": "Що означає «{title}»"
  },
  "auth": {
    "title": "Вхід",
    "hint": "Логін і пароль — як в особистому кабінеті провайдера. Після першого входу задасте власний пароль.",
    "login": "Логін",
    "password": "Пароль",
    "sign_in": "Увійти",
    "session_expired": "Сесія закінчилась — увійдіть знову",
    "sso_progress": "Входимо з кабінету провайдера…",
    "to_login": "До сторінки входу",
    "sso_title": "Вхід з кабінету провайдера",
    "sso_as": "Ви входите як",
    "sso_continue": "Увійти",
    "sso_warn": "Якщо це не ваш акаунт — натисніть «Скасувати»: посилання могли надіслати навмисно, щоб ви додали свої камери в чужий кабінет.",
    "idle_logout": "Ви вийшли через бездіяльність"
  },
  "password": {
    "set_title": "Задайте власний пароль",
    "set_hint_billing": "Пароль від кабінету провайдера могли бачити інші люди або він міг потрапити у злиті бази. Для відеоспостереження потрібен окремий пароль.",
    "set_hint": "Адміністратор видав тимчасовий пароль. Задайте власний, щоб продовжити.",
    "current": "Поточний пароль",
    "current_billing": "Пароль від кабінету провайдера",
    "new": "Новий пароль",
    "repeat": "Повторіть пароль",
    "rules": "Щонайменше 8 символів, літери різного регістру або цифри, без логіна.",
    "save": "Зберегти пароль",
    "mismatch": "Паролі не збігаються",
    "changed": "Пароль змінено",
    "change": "Зміна пароля",
    "billing_note": "Зараз ви входите паролем від кабінету провайдера. Після зміни він для відеоспостереження діяти не буде."
  },
  "cameras": {
    "title": "Камери",
    "add": "Додати камеру",
    "added": "Камеру додано",
    "all": "Усі",
    "density": "Кількість колонок",
    "density_auto": "Авто",
    "empty_title": "Камер ще немає",
    "empty_owner": "Додайте камеру, яка стоїть за вашим підключенням.",
    "empty_member": "Власник акаунта ще не відкрив вам доступ до камер."
  },
  "player": {
    "live": "Наживо",
    "connecting": "Підключення…",
    "connecting_transcode": "Підключення… (перекодування, кілька секунд)",
    "no_signal": "Немає сигналу",
    "denied": "Немає доступу до цієї камери",
    "mute": "Вимкнути звук",
    "unmute": "Увімкнути звук",
    "no_audio": "Камера не передає звук"
  },
  "camera": {
    "view_mode": "Режим перегляду",
    "not_found": "Камеру не знайдено",
    "archive": "Архів",
    "download": "Завантажити",
    "today": "Сьогодні",
    "pick_day": "Обрати день",
    "prev_day": "Попередній день",
    "next_day": "Наступний день",
    "timeline": "Шкала архіву",
    "zoom": "Масштаб",
    "pick_moment": "Оберіть момент на шкалі або подію",
    "no_events": "За цей день подій немає",
    "event_active": "триває",
    "no_recording_here": "У цей момент запису немає",
    "cannot_play": "Цей фрагмент не відтворюється в браузері",
    "legend_rec": "запис",
    "legend_motion": "рух",
    "events": "Події",
    "status": "Стан",
    "state": "Стан",
    "reason": "Причина",
    "bitrate": "Потік",
    "codecs": "Кодеки",
    "live_mode": "Живий перегляд",
    "motion": "Виявлення руху",
    "owner": "Власник",
    "incidents": "Збої зв'язку",
    "ongoing": "триває",
    "settings": "Налаштування",
    "settings_of": "Налаштування: {name}",
    "delete": "Видалити камеру",
    "deleted": "Камеру видалено",
    "support_logged": "Перегляд службою підтримки (за згодою абонента). Перегляди фіксуються в журналі адмін-панелі.",
    "disable": "Вимкнути",
    "enable": "Увімкнути",
    "disabled_ok": "Камеру вимкнено",
    "enabled_ok": "Камеру увімкнено",
    "disabled_note": "Камеру вимкнено: запис і живе відео зупинено. Наявний архів можна переглянути, доки його не видалить строк зберігання.",
    "archive_source": "Звідки архів",
    "archive_source_hint": "Архів цієї камери є і в хмарі, і на диску реєстратора: оберіть, який дивитись",
    "src_cloud": "Хмара",
    "src_nvr": "Реєстратор",
    "archive_where": "Архів",
    "where_cloud": "у хмарі",
    "where_nvr": "на диску реєстратора",
    "where_both": "у хмарі й на диску реєстратора"
  },
  "zoom": {
    "d1": "Доба",
    "h6": "6 год",
    "h1": "1 год",
    "m10": "10 хв"
  },
  "state": {
    "recording": "Пише",
    "offline": "Немає зв'язку",
    "pending": "Підключення",
    "unknown": "Стан невідомий",
    "api_error": "Помилка сервера",
    "over_limit": "Понад тариф",
    "no_tariff": "Немає тарифу",
    "disabled": "Вимкнена",
    "user_inactive": "Акаунт вимкнено",
    "since": "з {time}"
  },
  "reason": {
    "probe_error": "Помилка перевірки камери",
    "ok": "Камера відповідає",
    "checking": "Перевіряємо причину…",
    "dns_error": "Адресу камери не знайдено (DNS)",
    "timeout": "Камера не відповідає (тайм-аут)",
    "refused": "Порт камери закритий",
    "unreachable": "Камера недосяжна в мережі",
    "tls_error": "Помилка шифрування (RTSPS)",
    "auth_required": "Камера вимагає логін і пароль",
    "auth_failed": "Невірний логін або пароль камери",
    "not_found": "На камері немає такого потоку — перевірте шлях",
    "rtsp_error": "Камера повернула помилку RTSP",
    "bad_response": "На порту не RTSP-сервер",
    "no_video": "У потоці немає відео",
    "bad_url": "Невірна адреса камери",
    "recorder_not_receiving": "Камера відповідає, але потік до сервера не йде"
  },
  "live_kind": {
    "main": "основний потік",
    "direct": "другий потік камери",
    "transcode": "перекодування в H.264"
  },
  "live_mode": {
    "auto": "Автоматично (перекодувати, якщо браузер не покаже)",
    "direct": "Без перекодування",
    "transcode": "Завжди перекодовувати в H.264"
  },
  "motion_source": {
    "onvif": "камера (ONVIF)",
    "detector": "сервер",
    "recorder": "реєстратор"
  },
  "vendor": {
    "hikvision": "Hikvision / HiWatch",
    "dahua": "Dahua / Imou",
    "uniview": "Uniview",
    "reolink": "Reolink",
    "tapo": "TP-Link Tapo",
    "ezviz": "EZVIZ",
    "go2rtc": "Через go2rtc (Xiaomi тощо)",
    "other": "Інша / вручну"
  },
  "form": {
    "general": "Загальне",
    "name": "Назва",
    "enabled": "Камера увімкнена",
    "connection": "Підключення",
    "vendor": "Виробник",
    "host": "Адреса камери",
    "host_hint": "Ваша адреса підключення: {hosts}",
    "port": "Порт RTSP",
    "user": "Логін камери",
    "password": "Пароль камери",
    "keep_password": "Не змінювати",
    "path": "Шлях основного потоку",
    "sub_path": "Шлях другого потоку",
    "sub_path_hint": "Менша роздільність для перегляду наживо; запис іде з основного.",
    "optional": "необов'язково",
    "manual_url": "Ввести адресу вручну",
    "url": "Адреса RTSP",
    "url_hint": "rtsp://логін:пароль@адреса:порт/шлях",
    "probe": "Перевірити",
    "probing": "Перевіряємо…",
    "probe_ok": "Камера відповідає. Кодеки: {codecs}",
    "probe_hevc": "Камера віддає H.265: наживо перекодуємо в H.264, архів у браузері не відтвориться (лише завантаження).",
    "view_and_motion": "Перегляд і рух",
    "live_mode": "Живий перегляд",
    "live_mode_hint": "Перекодування потрібне камерам із H.265 і займає ресурси сервера, поки хтось дивиться.",
    "onvif": "Камера сама повідомляє про рух (ONVIF)",
    "onvif_user": "Логін ONVIF",
    "onvif_password": "Пароль ONVIF",
    "same_as_rtsp": "як для RTSP",
    "onvif_port": "Порт ONVIF",
    "onvif_hint": "Без ONVIF рух визначає сервер (за зміною кадру)."
  },
  "tariff": {
    "none": "Без тарифу",
    "motion": "Рух {days} дн.",
    "continuous": "24/7 {days} дн.",
    "live": "Перегляд",
    "cameras": {
      "one": "{n} камера",
      "few": "{n} камери",
      "many": "{n} камер",
      "other": "{n} камери"
    }
  },
  "account": {
    "profile": "Профіль",
    "login": "Логін",
    "name": "Ім'я",
    "role": "Роль",
    "tariff": "Тариф",
    "cameras": "Камери",
    "owner": "Власник акаунта",
    "allowed_hosts": "Адреси камер",
    "allowed_hosts_hint": "Камеру можна підключити лише з цих адрес — так ніхто не направить запис на чужу камеру. Без пароля з цих адрес ніхто нічого не бачить.",
    "support_access": "Доступ підтримки до відео",
    "support_yes": "Дозволено договором",
    "support_no": "Заборонено",
    "support_always": "Увімкнено на час налагодження",
    "support_hint": "Підтримка відкриває відео лише на ваш запит (наприклад, коли потрібно знайти чи завантажити запис).",
    "last_login": "Останній вхід",
    "preferences": "Налаштування",
    "language": "Мова",
    "theme": "Тема",
    "sessions": "Сесії",
    "sessions_hint": "«Вийти» завершує сесію на цьому пристрої. «Вийти на всіх пристроях» — ще й на інших (телефон, чужий комп'ютер): там потрібно буде увійти знову.",
    "logout_all": "Вийти на всіх пристроях",
    "cameras_cloud": "Камери в хмарі",
    "recorders": "Реєстратори",
    "recorders_usage": "{rec} · каналів без хмари {ch}",
    "recorders_hint": "Входить у послугу «Камери»: живе відео й архів з диска реєстратора. Одночасно — до {streams} переглядів архіву реєстратора.",
    "idle": "Виходити автоматично після бездіяльності",
    "idle_default": "Як на сервері ({v})",
    "idle_min": "{n} хв",
    "idle_h": "{n} год",
    "idle_d1": "1 доба",
    "idle_d": "{n} днів",
    "idle_hint": "Поки ви працюєте з порталом (миша, клавіатура, дотик), сесія подовжується; перегляд відео без дій — це бездіяльність. Незалежно від цього пароль потрібно ввести знову через {max} після входу.",
    "remember": "Залишатися в системі після закриття браузера",
    "remember_hint": "Лише на цьому пристрої. Не вмикайте на чужому чи спільному комп'ютері.",
    "recorders_none": "Доступні з послугою «Камери» (будь-який тариф)",
    "sessions_active": "Активні сесії",
    "sessions_none": "Активних сесій немає",
    "device_unknown": "Невідомий пристрій",
    "this_device": "цей пристрій",
    "session_where": "IP {ip} · вхід: {method}",
    "session_when": "Увійшли {start} · активність: {seen}",
    "now": "зараз",
    "session_end": "Завершити",
    "session_ended": "Сесію завершено",
    "method_password": "пароль",
    "method_billing": "пароль білінгу",
    "method_sso": "з кабінету білінгу",
    "plan_custom": "Індивідуальні умови; оплата — за тарифом «{name}»"
  },
  "theme": {
    "system": "Як у системі",
    "light": "Світла",
    "dark": "Темна"
  },
  "members": {
    "title": "Користувачі акаунта",
    "add": "Додати користувача",
    "lead": "Окремі входи для інших людей: наприклад, голова ОСББ бачить усе, а кожен під'їзд — лише свої камери. Доступ дається на групи камер.",
    "login": "Логін",
    "name": "Ім'я",
    "password": "Пароль",
    "new_password": "Новий пароль",
    "keep_password": "Не змінювати",
    "password_hint": "Користувач змінить його при першому вході.",
    "access": "Доступ",
    "groups": "Доступ до груп",
    "archive": "Архів",
    "live_only": "лише наживо",
    "no_access": "Немає доступу",
    "no_groups": "Спершу створіть групу камер.",
    "state": "Стан",
    "active": "Активний",
    "disabled": "Вимкнений",
    "last_login": "Останній вхід",
    "never": "ще не входив",
    "empty_title": "Користувачів ще немає",
    "empty_text": "Додайте користувача і відкрийте йому доступ до групи камер."
  },
  "groups": {
    "title": "Групи камер",
    "create": "Створити групу",
    "name": "Назва групи",
    "cameras": "Камери",
    "open": "Відкрити",
    "lead": "Групи впорядковують камери на головному екрані і визначають, що бачать користувачі акаунта.",
    "no_cameras": "У групі немає камер",
    "no_own_cameras": "Спершу додайте камеру.",
    "visible_to": "Бачать:",
    "shared": "Відкрито вам",
    "empty_title": "Груп ще немає",
    "empty_text": "Наприклад: «Двір», «Під'їзд 1», «Магазин»."
  },
  "log": {
    "title": "Журнал доступу",
    "filter": "Що показати",
    "kind_all": "Усе",
    "kind_logins": "Входи",
    "kind_views": "Перегляди й завантаження",
    "kind_changes": "Зміни",
    "time": "Час",
    "who": "Хто",
    "action": "Дія",
    "object": "Деталі",
    "ip": "IP",
    "account": "Акаунт",
    "empty": "Записів немає",
    "lead_owner": "Входи (вдалі й невдалі) — ваші і користувачів акаунта, перегляди спільних камер, зміни налаштувань.",
    "lead_member": "Ваші входи й дії.",
    "tariff_nvr": "Змінено ліміти реєстраторів тарифу",
    "session_end": "Завершено сесію"
  },
  "login_via": {
    "local": "власним паролем",
    "billing": "паролем провайдера",
    "sso": "з кабінету провайдера"
  },
  "action": {
    "recorder_add": "Додано реєстратор",
    "recorder_delete": "Видалено реєстратор",
    "recorder_patch": "Змінено реєстратор",
    "session_end": "Завершено сесію",
    "tariff_nvr": "Змінено ліміти реєстраторів тарифу",
    "login": "Вхід",
    "login_blocked": "Вхід заблоковано (забагато спроб)",
    "password_change": "Зміна пароля",
    "password_reset": "Скидання пароля",
    "media_session": "Перегляд камер",
    "media_token": "Токен для плеєра",
    "support_view": "Перегляд підтримкою",
    "support_download": "Завантаження підтримкою",
    "shared_view": "Перегляд за спільним доступом",
    "download": "Завантаження фрагмента",
    "camera_add": "Додано камеру",
    "camera_patch": "Змінено камеру",
    "camera_delete": "Видалено камеру",
    "member_add": "Додано користувача",
    "member_patch": "Змінено користувача",
    "member_delete": "Видалено користувача",
    "group_add": "Створено групу",
    "group_patch": "Змінено групу",
    "group_delete": "Видалено групу",
    "user_add": "Створено абонента",
    "user_patch": "Змінено абонента",
    "user_delete": "Видалено абонента",
    "billing_create": "Заведено з білінгу",
    "billing_update": "Оновлено з білінгу",
    "billing_map": "Змінено відповідність тарифів",
    "access_patch": "Видано камери",
    "support_access_bulk": "Згода — масова зміна",
    "logout_all": "Вихід на всіх пристроях",
    "settings_change": "Змінено налаштування сервера"
  },
  "admin": {
    "subscribers": "Абоненти",
    "active_total": "активних / усього",
    "from_billing": "З білінгу",
    "members_n": {
      "one": "{n} користувач акаунтів",
      "few": "{n} користувачі акаунтів",
      "many": "{n} користувачів акаунтів",
      "other": "{n} користувача акаунтів"
    },
    "cameras_online": "Камер на зв'язку",
    "cameras_offline": "Без зв'язку",
    "not_recording": "Не пишуться",
    "events_24h": "Подій за добу",
    "failed_logins_24h": "Невдалих входів за добу",
    "support_views_24h": "Переглядів підтримкою за добу",
    "disk": "Архів на диску",
    "disk_free": "вільно {free} з {total}",
    "services": "Сервіси",
    "ago_s": "{n} с тому",
    "offline_cameras": "Камери без зв'язку",
    "all_online": "Усі камери на зв'язку",
    "camera": "Камера",
    "subscriber": "Абонент",
    "since": "Відколи",
    "reason": "Причина",
    "motion_problems": "Проблеми з виявленням руху",
    "failed_logins": "Останні невдалі входи",
    "codecs": "Кодеки камер",
    "search_users": "Логін, ім'я, UID, телефон, IP",
    "all_roles": "Усі ролі",
    "add_user": "Додати абонента",
    "billing_uid": "UID у білінгу",
    "cameras": "Камери",
    "offline_n": {
      "one": "{n} без зв'язку",
      "few": "{n} без зв'язку",
      "many": "{n} без зв'язку",
      "other": "{n} без зв'язку"
    },
    "local_user_hint": "Локальний абонент — без білінгу (тест, корпоративний клієнт). Абоненти з білінгу заводяться самі.",
    "temp_password": "Тимчасовий пароль",
    "temp_password_hint": "Користувач змінить його при першому вході.",
    "user": "Абонент",
    "source": "Джерело",
    "source_billing": "білінг, UID {uid}",
    "source_local": "локальний",
    "billing_services": "Послуги в білінгу",
    "password": "Пароль",
    "own_password": "власний",
    "billing_password": "пароль білінгу (ще не задав власний)",
    "must_change": "має змінити",
    "created": "Створено",
    "billing_managed": "Тариф, стан, ім'я й адреси цього абонента веде білінг — змінюйте їх у білінгу.",
    "hosts_from_billing": "з білінгу",
    "extra_hosts": "Додаткові адреси камер",
    "extra_hosts_hint": "Напр., камера на дачі з іншою IP. Через кому.",
    "phone": "Телефон",
    "email": "Email",
    "support_access": "Згода на перегляд відео адміністратором",
    "support_hint": "Без згоди адміністратор бачить лише стан камер, не відео, і не може видати ці камери операторам. Для абонентів провайдера — за договором.",
    "reset_password": "Скинути пароль",
    "reset_billing_hint": "Порожнє поле — абонент знову увійде паролем білінгу і задасть власний. Або вкажіть тимчасовий.",
    "reset_local_hint": "Вкажіть тимчасовий пароль — користувач змінить його при вході.",
    "reset_empty_billing": "Порожньо — пароль білінгу.",
    "reset_done": "Пароль скинуто",
    "source_url": "Адреса",
    "search_cameras": "Камера, абонент, UID",
    "all_states": "Усі стани",
    "group_by": "Групувати",
    "group_by_owner": "За абонентом",
    "group_by_state": "За станом",
    "group_by_none": "Без групування",
    "no_cameras": "Камер не знайдено",
    "groups_lead": "Групи між акаунтами — центральний пульт: напр., голова ОСББ бачить камери всіх під'їздів, кожен під'їзд — свої.",
    "group_owner": "Власник",
    "group_cross": "між акаунтами",
    "group_owned_hint": "Група абонента: доступ — лише користувачам його акаунта.",
    "n_cameras": {
      "one": "{n} камера",
      "few": "{n} камери",
      "many": "{n} камер",
      "other": "{n} камери"
    },
    "open_only": "Лише поточні",
    "started": "Початок",
    "ended": "Кінець",
    "duration": "Тривалість",
    "search_log": "Логін, деталі, IP",
    "all_actions": "Усі дії",
    "any_result": "Будь-який результат",
    "ok": "Успішно",
    "failed": "Невдало",
    "result": "Результат",
    "operator_hint": "Оператор (напр. охорона, диспетчер) не має власних камер і тарифу — бачить лише групи й камери, які йому видали.",
    "subscriber_hint": "Абонент — власник камер і реєстраторів (клієнт провайдера; в окремій системі — об'єкт, напр. «Склад №2»): сам дивиться й налаштовує свої камери, додає користувачів свого акаунта.",
    "nvr_title": "Реєстратори",
    "nvr_lead": "Ліміти саме цього абонента — поверх ліміту його тарифу. Порожнє поле — ліміт тарифу (Білінг → Ліміти реєстраторів за тарифами), 0 — вимкнено.",
    "nvr_usage": "Зайнято: реєстраторів {rec}, каналів без хмари {ch}, камер у хмарі {cloud}",
    "nvr_recorders": "Реєстраторів",
    "nvr_channels": "Каналів «лише реєстратор»",
    "nvr_channels_hint": "Разом на всі реєстратори; канали з записом у хмару обмежує кількість камер тарифу.",
    "nvr_streams": "Одночасних переглядів архіву реєстратора",
    "nvr_streams_hint": "Для всіх користувачів акаунта разом. Живий перегляд не обмежує.",
    "nvr_default": "з тарифу: {n}",
    "admin_hint": "Адміністратор — повний доступ до порталу: абоненти, камери всіх абонентів, налаштування сервера, журнали. Відео абонента бачить лише з його згоди (перегляди — у журналі).",
    "hosts_hint": "IP-адреси абонента в мережі провайдера, на яких можуть бути його камери й реєстратори. Абонент сам додає камери лише з цих адрес — так він не підключить чужий пристрій. Через кому; порожньо — камери додає лише адміністратор.",
    "tariff_hint": "Скільки камер можна писати в хмару і скільки днів зберігається архів. Реєстратори без запису в хмару тарифу не потребують.",
    "role_hint": "Визначає, що бачить і може змінювати користувач:",
    "nvr_no_tariff": "Тарифу немає — реєстратори недоступні: вони входять у послугу «Камери» на будь-якому тарифі.",
    "nvr_default_server": "типово: {n}",
    "limits_title": "Тариф і ліміти абонента",
    "limits_lead": "Абонент платить за тарифом, а ліміти тут можна підняти чи змінити саме для нього. Порожнє поле — як у тарифі (для реєстраторів — ліміт тарифу з Білінгу), 0 — вимкнено.",
    "plan_title": "Умови тарифу",
    "plan_custom": "індивідуальні",
    "plan_cameras": "Камер з записом у хмару",
    "plan_cameras_hint": "Окремі камери й канали реєстраторів з «Також у хмару».",
    "plan_days": "Днів архіву",
    "plan_mode": "Режим запису",
    "plan_cap": "Ліміт архіву подій на камеру, ГБ",
    "plan_cap_hint": "Лише для «Рух»: коли вичерпано, найстаріші події видаляються раніше строку. 0 — без ліміту.",
    "plan_unlimited": "без ліміту",
    "mode_motion": "Рух",
    "mode_continuous": "24/7",
    "mode_live": "Лише перегляд",
    "services_hint": "Фонові процеси сервера, без яких не працює запис, події чи синхронізація. Зелена крапка — процес працює і нещодавно звітував (час праворуч — коли востаннє); червона — завершився з помилкою або давно не звітує. Натисніть «i» біля назви: що робить сервіс, у якому контейнері працює й причина збою. Перезапуск — на сервері: podman-compose restart <контейнер>; з веба сервіси не перезапускаються, бо для цього API потрібен повний доступ до контейнерів (рівний root).",
    "svc_reconcile": "Звіряє камери з записувачем (MediaMTX): вмикає й вимикає запис, перегляд і субпотоки відповідно до бази й тарифу; прибирає записи видалених камер. Червоний — частина камер не налаштована.",
    "svc_billing": "Синхронізація з білінгом провайдера: заводить абонентів з послугою відеоспостереження, оновлює тариф, IP і стан, вимикає зниклих.",
    "svc_events": "Події руху: ONVIF-події камер, події реєстраторів і серверний детектор. Без нього на тарифі «Рух» не з'являються нові події.",
    "svc_health": "Стан зв'язку з камерами: онлайн/офлайн, причина збою (пароль, тайм-аут), бітрейт і історія збоїв.",
    "svc_keeper": "Прибирання архіву: стирає запис без руху й старіший за строк тарифу, тримає ліміти місця, чистить старі сесії.",
    "svc_metrics": "Збирає метрики для сторінки «Навантаження»: процесор, пам'ять, диск, трафік відео, глядачі.",
    "svc_media_worker": "ffmpeg в окремому контейнері без ключів і бази: детектор руху, перекодування архіву H.265 → H.264, архів реєстраторів. Червоний — недоступний: не працюють детектор і перекодування.",
    "svc_where": "Контейнер: {box}. Перезапуск на сервері: podman-compose restart {box}",
    "svc_stale": "Давно не звітував — процес завис або зупинився.",
    "svc_failed_paths": "Не налаштовано: {list}"
  },
  "billing": {
    "status": "Синхронізація",
    "driver": "Драйвер",
    "last_sync": "Остання синхронізація",
    "every": "Інтервал",
    "error": "Помилка",
    "password_login": "Вхід паролем білінгу",
    "pw_first": "лише перший раз, далі власний пароль",
    "pw_always": "завжди",
    "pw_never": "ні",
    "in_billing": "Результат",
    "result": "у білінгу {subscribers}, з послугою {with_tariff}, нових {created}, змінено {updated}, вимкнено {deactivated}",
    "conflicts": "Конфлікти",
    "open": "Відкрити білінг",
    "sync_now": "Синхронізувати зараз",
    "drivers_hint": "Підтримуються: ABillS, MikBiLL, Ubilling, NoDeny (пряме читання БД), Userside API, довільний SQL або HTTP JSON. Налаштування — у billing.toml на сервері.",
    "tariff_map": "Послуги білінгу → тарифи",
    "tariff_map_hint": "Абонент з'являється в системі, коли в білінгу в нього є послуга відеоспостереження. Білінг може передати її як vsaas:<код тарифу> (напр. vsaas:motion14-2) — тоді ця таблиця не потрібна. Якщо в білінгу в послуги своя назва чи номер (напр. «Відеонагляд 4 камери» або 57), вкажіть тут, якому тарифу вона відповідає. «Не відеоспостереження» — для інших послуг (інтернет, ТБ), щоб вони не з'являлися серед нерозпізнаних.",
    "billing_id": "Ідентифікатор у білінгу",
    "note": "Примітка",
    "add_row": "Додати",
    "unmapped": "Нерозпізнані послуги",
    "unmapped_hint": "Послуги з білінгу в абонентів, у яких немає відеоспостереження. Зазвичай це інтернет, ТБ тощо — натисніть «Не відеоспостереження», і послуга зникне зі списку. Якщо це послуга камер — «Призначити тариф» і «Зберегти»: абоненти з нею з'являться в системі з наступною синхронізацією.",
    "nvr_title": "Ліміти реєстраторів за тарифами",
    "nvr_hint": "Реєстратори доступні абонентам з послугою «Камери» — на будь-якому тарифі; у хмару пишеться не більше камер, ніж дозволяє тариф. Порожнє поле — типове значення сервера (Налаштування → Реєстратори). Окремий ліміт у картці абонента діє поверх тарифу.",
    "nvr_tariff": "Тариф",
    "nvr_subs": "Абонентів",
    "nvr_saved": "Збережено тарифів: {n}",
    "col_service": "Послуга в білінгу",
    "col_tariff": "Тариф відеоспостереження",
    "pick_tariff": "— оберіть тариф —",
    "not_video": "Не відеоспостереження",
    "pick_tariff_err": "Оберіть тариф або «Не відеоспостереження» для «{svc}»",
    "map_empty": "Відповідностей немає — так і має бути, якщо білінг передає послугу як vsaas:<код тарифу>.",
    "map_stats": "З відеоспостереженням: {n} — напряму з білінгу (vsaas:<код>): {direct}, через цю таблицю: {map}.",
    "unmapped_n": {
      "one": "{n} абонент без відео",
      "few": "{n} абоненти без відео",
      "many": "{n} абонентів без відео",
      "other": "{n} абонента без відео"
    },
    "assign": "Призначити тариф",
    "ignore": "Не відеоспостереження",
    "ignored": "«{svc}» більше не показується серед нерозпізнаних"
  },
  "arrange": {
    "edit": "Розташування",
    "done": "Готово",
    "earlier": "Перемістити раніше",
    "later": "Перемістити далі",
    "size": "Збільшити або зменшити плитку",
    "movable": "плитка, яку можна перемістити"
  },
  "playback": {
    "title": "Архів кількох камер",
    "pick": "Обрати камери",
    "apply": "Показати",
    "chosen": "Обрано {n} з {max}",
    "search": "Камера або абонент",
    "empty_title": "Оберіть камери",
    "empty_pick": "Оберіть до {max} камер — архів гратиме синхронно.",
    "no_archive": "У вас немає камер з доступом до архіву.",
    "play": "Грати",
    "pause": "Пауза",
    "back30": "Назад на 30 с",
    "fwd30": "Вперед на 30 с",
    "speed": "Швидкість",
    "no_recording": "У цей момент запису немає",
    "admin_denied_hint": "Приберіть з вибору камери абонентів, які не дали згоди на перегляд адміністратором.",
    "max_speed": "до {rate}×",
    "rate_limit": "{n} камер одночасно — швидкість до {rate}× (до 4 камер — 8×, до 8 — 4×, більше — 2×), щоб не перевантажити диски сервера",
    "stop": "Стоп — зупинити перегляд",
    "stopped": "Перегляд зупинено",
    "earlier": "Раніше по шкалі",
    "later": "Пізніше по шкалі",
    "fullscreen": "На весь екран (F)",
    "exit_fullscreen": "Вийти з повного екрана (F)",
    "transcoding": "Підготовка відео H.265…",
    "transcode_failed": "Фрагмент не відтворюється — повтор за кілька секунд",
    "fullscreen_short": "На весь екран",
    "exit_fullscreen_short": "Згорнути",
    "help": "Підказки",
    "help_title": "Як користуватися програвачем",
    "help_play": "▶ / ❚❚ — грати або пауза (клавіша Пробіл). ⏪ ⏩ — на 30 с назад / вперед. 1×–8× — швидкість.",
    "help_stop": "■ Стоп — зупинити перегляд і звільнити відео; позиція на шкалі лишається, ▶ продовжить з неї.",
    "help_timeline": "Шкала: клік — перейти до моменту. Світлі смуги — запис, темні — рух. Клавіші ← → — крок по шкалі.",
    "help_zoom_tl": "Масштаб шкали: Доба / 6 год / 1 год / 10 хв або Ctrl + колесо миші над шкалою. При меншому масштабі шкалу можна перетягувати мишею, гортати колесом або кнопками ‹ ›.",
    "help_zoom_video": "Наближення відео: колесо миші над відео (до 6×), перетягування — зсунути збільшене зображення, подвійний клік або значок «×» — скинути.",
    "help_zoom_video_ctrl": "Наближення відео: Ctrl + колесо миші над камерою (у повноекранному режимі — просто колесо), перетягування — зсунути, подвійний клік або значок «×» — скинути.",
    "help_fullscreen": "«На весь екран» (клавіша F) — відео, шкала й події разом; Esc або «Згорнути» — назад.",
    "help_events": "Події: клік — перегляд з {pre} с до руху; подія, яку зараз видно, підсвічена в таблиці й на шкалі.",
    "help_live": "«Наживо» — живе відео; клік по шкалі, події чи ⏪ переходить в архів.",
    "audio_prep": "Підготовка звуку…",
    "rate_nvr": "Архів реєстратора відтворюється лише зі звичайною швидкістю (1×): реєстратор віддає запис у реальному часі",
    "nvr_loading": "Запит архіву з реєстратора…",
    "events_chain": "події підряд",
    "waiting_event": "Чекаємо на наступну подію…",
    "waiting_event_short": "чекаємо на наступну подію",
    "last_event": "Це остання подія за цю добу"
  },
  "metrics": {
    "range": "Період",
    "live": "Наживо",
    "r_1h": "1 год",
    "r_2h": "2 год",
    "r_4h": "4 год",
    "r_12h": "12 год",
    "r_24h": "Доба",
    "r_7d": "7 днів",
    "r_30d": "30 днів",
    "cpu": "Процесор",
    "mem": "Пам'ять",
    "mem_used": "Зайнято",
    "net": "Трафік відео",
    "net_in": "Від камер",
    "net_out": "До глядачів",
    "io": "Диск: читання і запис",
    "io_read": "Читання",
    "io_write": "Запис",
    "disk": "Місце на диску",
    "disk_used": "Зайнято на диску",
    "rec_bytes": "Архів відео",
    "cams": "Камери і перегляди",
    "cams_online": "Камер онлайн",
    "viewers": "Глядачів наживо",
    "transcodes": "Перекодувань",
    "transcodes_n": "перекодувань: {n}",
    "load": "Load average: {n}",
    "of": "з {total}",
    "updated": "Оновлено {time}",
    "table": "Таблиця",
    "time": "Час",
    "peak": "пік {v}",
    "no_data": "Немає даних за цей період",
    "aria_hint": "стрілки вліво і вправо показують значення в точках; усі значення — у таблиці",
    "about": "Що показує «{title}»",
    "peak_legend": "пік за крок",
    "peak_hint": "Світла смуга — найбільше значення за кожен крок графіка, лінія — середнє. Широка смуга — короткі сплески, яких не видно в середньому.",
    "hint_cpu": "Зайнятість усіх ядер процесора сервера, %. Лінія — середнє за крок графіка, світла смуга — пік за той самий крок. Найбільше навантажують перекодування H.265 → H.264 і детектор руху.",
    "hint_mem": "Оперативна пам'ять сервера, зайнята процесами (без кешу файлів, який система звільняє за потреби). Верх осі — увесь обсяг пам'яті.",
    "hint_net": "Трафік відео через медіасервер, Мбіт/с: «від камер» — потоки, які сервер тягне з камер і реєстраторів; «до глядачів» — живий перегляд у браузерах (WebRTC).",
    "hint_io": "Швидкість читання й запису дисків сервера, МБ/с: запис архіву камер, читання при перегляді й завантаженні архіву, база даних.",
    "hint_disk": "Місце на диску з архівом: усього зайнято на файловій системі і скільки з цього — сам архів відео. Верх осі — розмір диска.",
    "hint_cams": "Камер онлайн — з потоком на сервері; глядачів наживо — відкритих живих переглядів; перекодувань — живих потоків H.265 → H.264 для браузерів (найважчі для процесора)."
  },
  "units": {
    "sec": "{n} с",
    "min_sec": "{m} хв {s} с",
    "hour_min": "{h} год {m} хв",
    "day_hour": "{d} дн {h} год",
    "kbps": "{n} кбіт/с",
    "mbps": "{n} Мбіт/с",
    "mbs": "{n} МБ/с",
    "bytes": "Б,КБ,МБ,ГБ,ТБ",
    "gb_short": "ГБ"
  },
  "access": {
    "title": "Доступ до камер",
    "lead": "Групи адміністратора й окремі камери, які бачить цей користувач.",
    "groups": "Групи",
    "no_groups": "Груп адміністратора ще немає — створіть у розділі «Групи».",
    "cameras": "Окремі камери",
    "search": "Знайти камеру за назвою або абонентом",
    "no_consent": "без згоди — не видно",
    "no_cameras": "Окремих камер не видано",
    "view": "Бачить"
  },
  "wall": {
    "lead": "Усі камери; групи адміністратора — окремі сітки.",
    "empty": "Камер ще немає",
    "no_consent": "Немає згоди власника на перегляд",
    "limit": "Відео відкрито для перших {n} камер — оберіть групу, щоб бачити решту.",
    "pick": "Обрати камери",
    "picked": "Обрані ({n})",
    "pick_title": "Камери на відеостіні",
    "pick_hint": "Позначте камери, які показувати на відеостіні (за абонентами або цілими групами). Вибір зберігається у вашому профілі; «Усі камери» лишаються поруч.",
    "add_group": "Додати групу",
    "pick_clear": "Показувати всі",
    "no_owner": "Без власника"
  },
  "consent": {
    "title": "Згода на перегляд відео адміністратором",
    "lead": "Абонентам провайдера (з білінгу) згода за замовчуванням вимкнена — адміністратор бачить лише стан камер. Створеним вручну (окрема система) — {local}.",
    "on": "увімкнена",
    "off": "вимкнена",
    "always": "Сервер у режимі SUPPORT_VIEW=always — згода не перевіряється.",
    "counts": "З білінгу: зі згодою {bon}, без {boff}. Створені вручну: зі згодою {lon}, без {loff}.",
    "billing_on": "Увімкнути всім з білінгу",
    "billing_off": "Вимкнути всім з білінгу",
    "local_on": "Увімкнути всім створеним вручну",
    "local_off": "Вимкнути всім створеним вручну",
    "done": "Змінено: {n}"
  },
  "errors": {
    "decrypt_error": "Не вдається розшифрувати збережені облікові дані — введіть їх ще раз",
    "transcode_busy": "Забагато одночасних перекодувань — спробуйте за хвилину",
    "token_revoked": "Пароль змінено — увійдіть знову",
    "probe_rate": "Забагато перевірок — спробуйте за хвилину",
    "probe_busy": "Сервер зайнятий перевірками — спробуйте ще раз",
    "bad_prefs": "Неприпустимий ключ налаштувань",
    "prefs_too_large": "Забагато налаштувань інтерфейсу",
    "unknown": "Щось пішло не так",
    "network": "Немає зв'язку з сервером",
    "network_timeout": "Сервер не відповідає — спробуйте ще раз",
    "validation": "Перевірте поля форми",
    "unauthorized": "Потрібен вхід",
    "forbidden": "Немає доступу",
    "not_found": "Не знайдено",
    "not_allowed": "Дія недоступна",
    "http": "Помилка сервера",
    "archive_unavailable": "Архів тимчасово недоступний",
    "login_required": "Потрібен вхід",
    "token_invalid": "Сесія закінчилась — увійдіть знову",
    "user_disabled": "Користувача вимкнено",
    "password_change_required": "Спершу задайте власний пароль",
    "owner_only": "Доступно лише власнику акаунта",
    "admin_only": "Лише для адміністратора",
    "bad_credentials": "Невірний логін або пароль",
    "too_many_attempts": "Забагато невдалих спроб — спробуйте за {minutes} хв",
    "billing_unavailable": "Білінг тимчасово недоступний, спробуйте за хвилину",
    "billing_error": "Помилка білінгу: {error}",
    "bad_current_password": "Поточний пароль невірний",
    "password_short": "Пароль має бути не коротший за {min} символів",
    "password_long": "Пароль задовгий: не більше {max} байтів (≈36 літер кирилицею або 72 латиницею)",
    "password_same": "Новий пароль має відрізнятися від поточного",
    "password_has_login": "Пароль не повинен містити логін",
    "password_weak": "Пароль занадто простий: додайте літери різного регістру або цифри",
    "password_required": "Вкажіть пароль",
    "camera_not_found": "Камеру не знайдено",
    "support_access_denied": "Абонент не дав згоди на перегляд відео підтримкою",
    "archive_denied": "Вам доступний лише живий перегляд цієї камери",
    "manage_denied": "Налаштовувати камеру може лише власник акаунта",
    "camera_limit": "Тариф дозволяє не більше {max} камер із записом у хмару — змініть тариф або вимкніть запис іншої камери",
    "no_tariff": "Немає активного тарифу",
    "host_not_allowed": "Камера має бути за вашою адресою підключення ({hosts})",
    "host_forbidden": "Ця адреса недозволена",
    "bad_url": "Невірна адреса камери",
    "bad_url_format": "Адреса має бути {hint}",
    "bad_port": "Невірний порт",
    "password_masked": "Введіть пароль камери",
    "onvif_credentials": "Для ONVIF потрібні логін і пароль камери",
    "source_required": "Основний потік обов'язковий",
    "cameras_required": "Оберіть камери для перегляду",
    "bad_duration": "Фрагмент — до 1 години",
    "admin_use_session": "Адміністратор дивиться через сторінку камери",
    "user_not_found": "Немає такого користувача",
    "login_taken": "Логін зайнятий",
    "member_limit": "Не більше {max} користувачів в акаунті",
    "group_not_found": "Групу не знайдено",
    "grant_foreign": "Групу абонента можна відкрити лише користувачам його акаунта",
    "owner_not_subscriber": "Власником групи може бути лише абонент",
    "tariff_unknown": "Немає тарифу {code}",
    "billing_managed": "Це поле веде білінг — змініть його у білінгу",
    "billing_delete": "Абонента з білінгу не видаляють тут — зніміть послугу в білінгу",
    "admin_delete": "Адміністратора не видаляють через панель",
    "sso_disabled": "Вхід з кабінету провайдера не налаштовано",
    "sso_invalid": "Посилання недійсне або застаріло — відкрийте його з кабінету ще раз",
    "sso_no_service": "Послугу відеоспостереження не підключено",
    "grant_admin": "Адміністратор і так бачить усі камери",
    "too_many": "Забагато камер",
    "bad_mask": "Невірний формат зон руху",
    "mask_full": "Не можна виключити весь кадр: тоді подій не буде ніколи, а запис зітреться як «без руху»",
    "group_foreign_camera": "У групу абонента можна додати лише його камери",
    "group_required": "Оберіть групу",
    "no_recording": "На цей момент запису немає",
    "nvr_auth": "Реєстратор не прийняв логін або пароль",
    "nvr_timeout": "Реєстратор не відповідає — перевірте адресу й HTTP-порт",
    "nvr_unreachable": "Немає з'єднання з реєстратором",
    "nvr_unknown": "Не вдалося визначити реєстратор — оберіть тип вручну або «Інший»",
    "nvr_no_channels": "Реєстратор не повідомив жодного каналу",
    "nvr_bad_reply": "Незрозуміла відповідь реєстратора",
    "nvr_template": "Шлях: починається з /, містить {ch}, без пробілів і лапок",
    "nvr_channels": "Кількість каналів: 1–128",
    "nvr_channel_unknown": "Немає такого каналу",
    "recorder_not_found": "Реєстратор не знайдено",
    "bad_host": "Потрібна IP-адреса, а не доменне ім'я",
    "bad_url_chars": "Адреса містить недозволені символи — у паролі закодуйте їх як %XX",
    "nvr_no_archive": "Для цієї камери немає архіву на реєстраторі",
    "nvr_no_events": "Цей тип реєстратора не передає події руху",
    "nvr_search": "Реєстратор не виконав пошук записів",
    "nvr_busy": "Забагато пошуків в архівах реєстраторів — спробуйте ще раз",
    "nvr_archive_unavailable": "Архів реєстратора недоступний",
    "cloud_only": "Окрема камера має лише хмарний архів",
    "bad_duration_nvr": "З реєстратора можна завантажити фрагмент до 10 хвилин",
    "setting_invalid": "{key}: {error}",
    "setting_readonly": "Це налаштування змінюється лише у конфіг-файлі: {key}",
    "nvr_channel_limit": "Без запису в хмару можна підключити не більше {max} каналів реєстраторів — щоб збільшити ліміт, зверніться до підтримки",
    "nvr_recorder_limit": "Можна підключити не більше {max} реєстраторів — щоб збільшити ліміт, зверніться до підтримки",
    "nvr_disabled": "Підключення реєстраторів для цього акаунта вимкнено",
    "nvr_streams_limit": "Одночасно можна дивитись не більше {max} фрагментів архіву реєстратора — закрийте інший перегляд",
    "nvr_streams_busy": "Сервер зайнятий іншими переглядами архіву реєстраторів — спробуйте за хвилину",
    "session_idle_invalid": "Недозволений час автовиходу",
    "session_max": "Час сесії вичерпано — увійдіть знову",
    "nvr_no_tariff": "Реєстратори доступні з послугою «Камери» — підключіть її, щоб додати реєстратор",
    "session_not_found": "Сесію вже завершено"
  },
  "detector": {
    "title": "Детектор руху",
    "sensitivity": "Чутливість",
    "low": "Низька",
    "high": "Висока",
    "level_value": "{n} — {label}: рух, якщо змінилось понад {pct} кадру",
    "level_default": "типова",
    "level_low": "менше хибних спрацювань",
    "level_high": "ловить дрібний і далекий рух",
    "sensitivity_hint": "Зменште, якщо події з'являються від тіней, дощу, листя чи нічного режиму. Збільште, якщо камера далеко й людина займає малу частину кадру.",
    "zones": "Зони, де рух не враховується",
    "zones_hint": "Проведіть по сітці, щоб виключити дорогу, дерево, телевізор. Повторний дотик повертає клітинку. Частка руху рахується від решти кадру.",
    "zones_aria": "Сітка зон детектора руху",
    "masked_none": "Враховується весь кадр",
    "masked_count": "Виключено {pct}% кадру",
    "clear": "Очистити",
    "invert": "Інвертувати",
    "reset": "Скасувати зміни",
    "preview_hint": "Попередній перегляд: жовтим — де змінюється картинка зараз.",
    "motion_yes": "Рух",
    "motion_no": "Руху немає",
    "score": "зміна {pct} · поріг {thr}",
    "no_picture": "Немає зображення — зони можна позначити й так",
    "onvif_note": "Рух визначає сама камера (ONVIF): чутливість і зони налаштовуються в її вебінтерфейсі. Зніміть позначку ONVIF, щоб рух визначав сервер із цими налаштуваннями.",
    "tariff_note": "На тарифі із записом 24/7 сервер не розбирає запис на події. Ці налаштування почнуть діяти на тарифі «Рух».",
    "after_add": "Чутливість і зони можна налаштувати після додавання камери."
  },
  "zoom_video": {
    "tip": "Колесо миші — наблизити, подвійний клік — скинути",
    "tip_ctrl": "Ctrl + колесо миші — наблизити, подвійний клік — скинути",
    "reset": "Скинути наближення",
    "badge": "{x}× ✕"
  },
  "events_table": {
    "time": "Дата й час",
    "event": "Подія",
    "camera": "Камера",
    "duration": "Тривалість",
    "motion": "Рух"
  },
  "bulk": {
    "title": "Групові дії",
    "select": "Вибрати",
    "select_hint": "Позначте камери, щоб увімкнути, вимкнути, додати в групу чи видалити кілька одразу",
    "selected": {
      "one": "Обрано {n} камеру",
      "few": "Обрано {n} камери",
      "many": "Обрано {n} камер",
      "other": "Обрано {n} камери"
    },
    "all": "Усі",
    "clear": "Зняти вибір",
    "to_group": "Додати в групу…",
    "from_group": "Прибрати з «{name}»",
    "confirm_delete": "Видалити обрані? Ще раз",
    "done": "Готово: {n}",
    "partial": "Виконано: {ok}, не вдалося: {failed} — {reason}",
    "pick_hint": "Позначте камери кліком"
  },
  "recorders": {
    "add": "Додати реєстратор",
    "standalone": "Окремі камери",
    "device": "Реєстратор",
    "ch": "кан.",
    "n_cameras": {
      "one": "{n} камера",
      "few": "{n} камери",
      "many": "{n} камер",
      "other": "{n} камери"
    },
    "lead": "Відеореєстратор (NVR/DVR) підключається одним кроком: вкажіть його адресу, логін і пароль — портал знайде всі канали, їхні назви й стан, і ви оберете, які камери підключити. Кожен канал працює як окрема камера: наживо, запис, архів, рух.",
    "vendor": "Тип реєстратора",
    "vendor_auto": "Визначити автоматично (Hikvision, HiWatch, Dahua)",
    "vendor_hikvision": "Hikvision / HiWatch (ISAPI)",
    "vendor_dahua": "Dahua / Imou (HTTP API)",
    "vendor_manual": "Інший (шаблон RTSP і кількість каналів)",
    "http_port": "HTTP-порт",
    "rtsp_port": "RTSP-порт",
    "preset": "Виробник",
    "count": "Кількість каналів",
    "template": "Шлях основного потоку",
    "template_hint": "{ch} — номер каналу, напр. /unicast/c{ch}/s0/live",
    "sub_template": "Шлях другого (малого) потоку",
    "tpl_uniview": "Uniview",
    "tpl_hikvision": "Hikvision-сумісний",
    "tpl_dahua": "Dahua-сумісний",
    "tpl_custom": "Власний шлях",
    "find": "Знайти канали",
    "finding": "Звертаємось до реєстратора…",
    "default_name": "Реєстратор",
    "pick_channels": "Які канали підключити",
    "connect": "Підключити",
    "added": "Реєстратор додано, підключено каналів: {n}",
    "partial": "Підключено: {ok}, не вдалося: {failed} — {reason}",
    "name": "Назва реєстратора",
    "model": "Модель",
    "device_name": "Ім'я на пристрої",
    "serial": "Серійний номер",
    "firmware": "Прошивка",
    "channels": "Канали",
    "offline_n": "без зв'язку: {n}",
    "disks": "Диски реєстратора",
    "disk": "Диск",
    "disk_status": "Стан",
    "capacity": "Обсяг",
    "free": "Вільно",
    "ch_online": "на зв'язку",
    "ch_offline": "без зв'язку",
    "not_found": "Реєстратор не знайдено",
    "unreachable": "Реєстратор не відповідає: {error}",
    "checked": "Стан перевірено {time}",
    "apply": "Зберегти зміни каналів",
    "disconnect_warn": "Відключений канал видаляється разом зі своїм архівом на порталі.",
    "watch": "Дивитись канали",
    "delete": "Видалити реєстратор",
    "confirm_delete": "Разом з камерами каналів? Ще раз",
    "deleted": "Реєстратор видалено",
    "host": "IP-адреса реєстратора",
    "user": "Логін реєстратора",
    "password": "Пароль реєстратора",
    "archive": "Архів",
    "cloud_too": "Також записувати в хмару",
    "cloud_hint": "Без позначки архів лишається лише на диску реєстратора (дивиться звідти, місце в хмарі не займає). З позначкою канал пишеться ще й у хмару за вашим тарифом — запис збережеться, навіть якщо реєстратор вимкнуть чи вкрадуть.",
    "motion": "Хто визначає рух",
    "motion_recorder": "Реєстратор (його детекція руху)",
    "motion_detector": "Сервер (наш детектор)",
    "motion_hint": "«Реєстратор» — події руху надходять із самого реєстратора: детекцію руху треба увімкнути на реєстраторі для кожного каналу, а користувачу — дати право на сповіщення. «Сервер» — рух визначає наш детектор (потрібен запис у хмару).",
    "manual_cloud_note": "Для цього типу реєстратора архів на його диску й події руху недоступні — канали пишуться в хмару, рух визначає сервер.",
    "storage_title": "Запис, архів і рух",
    "storage_lead": "Архів каналів — на диску реєстратора; окремі канали можна записувати ще й у хмару.",
    "cloud_channels": "Записувати в хмару",
    "no_connected": "Ще немає підключених каналів.",
    "archive_time": "Час архіву реєстратора",
    "time_local": "Місцевий час реєстратора (більшість моделей)",
    "time_utc": "UTC (деякі нові прошивки)",
    "archive_time_hint": "Годинник реєстратора: {clock}. Якщо записи на шкалі зміщені на кілька годин відносно подій — перемкніть.",
    "chosen_nvr": "Обрано {n}; без запису в хмару можна ще {left} канал(и)",
    "chosen_cloud": "Обрано {n}; тариф дозволяє ще {left} камер(и) в хмарі",
    "cloud_quota": "Хмара за тарифом: зайнято {used} з {max}",
    "cloud_no_tariff": "Тарифу (послуги «Камери») зараз немає — реєстратор не обслуговується. Зверніться до підтримки.",
    "free_note": "Реєстратор входить у послугу «Камери» на будь-якому тарифі: живе відео й архів з його диска. У хмару пишуться лише канали, які ви оберете, — скільки дозволяє тариф."
  },
  "settings": {
    "lead": "Налаштування сервера. Ті, що можна змінити тут, діють без перезапуску (кожен сервіс підвантажує їх за ~10 с) і мають пріоритет над конфіг-файлом {file}; «Скинути» повертає значення з файла або типове. Інфраструктура й секрети — лише у файлі чи змінних оточення (.env): тут видно, звідки значення і де його змінити.",
    "file_errors": "У конфіг-файлі {file} є помилки — ці рядки не застосовано:",
    "filter": "Пошук налаштування…",
    "reset": "Скинути",
    "reset_hint": "Повернути значення з файла/типове: {value}",
    "default_is": "Типово: {value}",
    "base_is": "у файлі/оточенні: {value}",
    "file_only": {
      "one": "Лише у конфіг-файлі ({n})",
      "few": "Лише у конфіг-файлі ({n})",
      "many": "Лише у конфіг-файлі ({n})",
      "other": "Лише у конфіг-файлі ({n})"
    },
    "where": "Файл: {file_key} · змінна оточення: {env}",
    "nothing": "Нічого не змінено",
    "enabled": "Увімкнено",
    "yes": "так",
    "no": "ні",
    "secret_set": "задано (приховано)",
    "secret_unset": "не задано",
    "source_web": "адмін-панель",
    "source_file": "файл",
    "source_env": "оточення",
    "source_default": "типове",
    "source_web_hint": "Значення збережене в адмін-панелі (перекриває файл і оточення)",
    "source_file_hint": "Значення з конфіг-файла",
    "source_env_hint": "Значення зі змінної оточення (.env / compose)",
    "source_default_hint": "Типове значення",
    "unit_s": "с",
    "unit_days": "діб",
    "unit_%": "%",
    "expand_all": "Розгорнути всі",
    "collapse_all": "Згорнути всі",
    "count": {
      "one": "{n} опція",
      "few": "{n} опції",
      "many": "{n} опцій",
      "other": "{n} опції"
    },
    "changed_here": "змінено тут"
  },
  "dash": {
    "attention": "Потребує уваги:",
    "all_ok": "Усе працює.",
    "all_ok_detail": "Камери на зв'язку ({n} з {total}), сервіси й білінг — у нормі.",
    "issue_offline": "камер без зв'язку: {n}",
    "issue_motion": "проблеми з визначенням руху: {n}",
    "issue_services": "не відповідають: {list}",
    "issue_billing": "помилка синхронізації з білінгом",
    "issue_disk": "на диску менше 10% вільного місця",
    "active_total": "Активні / усього",
    "members": "Користувачі акаунтів",
    "storage": "Сховище",
    "recordings": "записів",
    "disk_free": "Вільно",
    "disk_total": "Диск",
    "disk_used": "Зайнято диска",
    "last_24h": "За 24 години",
    "events": "подій руху",
    "down_n": "не працює: {n}",
    "ok": "у нормі"
  },
  "live": {
    "stream": "Потік наживо",
    "stream_hint": "Субпотік — легший (менше трафіку, швидший старт); основний — повна якість камери.",
    "sub": "Субпотік",
    "main": "Основний",
    "sub_hint": "Легший потік камери: менше трафіку, швидший старт",
    "main_hint": "Основний потік: повна якість камери (більше трафіку)",
    "main_hevc": "Основний потік — H.265: цей браузер не відтворює його наживо"
  }
}
