Newer
Older
gn-synapse / frontend / src / i18n / messages / uk.js
// Словарь uk: ті самі slugs, що й у en/ru.
export default {
  "app.docTitle": "Synapse Admin",
  "app.subtitle": "Хаб сповіщень Gnexus",
  "app.loading": "Завантаження…",

  "common.signOut": "Вийти",

  "nav.dashboard": "Огляд",
  "nav.sources": "Джерела",
  "nav.types": "Типи",
  "nav.targets": "Цілі",
  "nav.rules": "Правила",
  "nav.deliveries": "Доставки",
  "nav.mcpKeys": "MCP-ключі",
  "nav.myEvents": "Мої події",
  "nav.settings": "Налаштування",
  "settings.language": "Мова інтерфейсу",
  "settings.languageAuto": "Авто",
  "settings.languageHelp": "«Авто» — мова акаунта gnexus-auth; вибір перекриває її лише для Synapse і переживає вихід.",
  "settings.languageSaved": "Мову змінено",
  "dashboard.title": "Огляд",
  "dashboard.subtitle": "Стан хаба сповіщень",
  "dashboard.loaderChecking": "Опитую сервіс…",
  "dashboard.errorUnavailable": "Сервіс недоступний: {message}",
  "dashboard.metricService": "Сервіс",
  "dashboard.getStartTitle": "З чого почати",
  "dashboard.getStartText": "Порядок налаштування: Джерела — зареєструвати сервіс і видати йому API-ключ; Цілі — куди доставляти (журнал, сервіс через s2s); Правила — яка подія та в яку ціль іде. Доставки покажуть, що реально пішло.",
  "deliveries.title": "Доставки",
  "deliveries.subtitle": "Лог спроб: канал, ціль, статус, ретраї та текст, реально надісланий у канал",
  "deliveries.filterAll": "всі",
  "deliveries.filterStatus": "Статус",
  "deliveries.filterChannel": "Канал",
  "deliveries.refresh": "Оновити",
  "deliveries.loading": "Завантаження…",
  "deliveries.empty": "Доставок ще не було",
  "deliveries.colTime": "Час",
  "deliveries.colEvent": "Подія",
  "deliveries.colEventHint": "Ідентифікатор події, що породила доставку",
  "deliveries.colChannel": "Канал",
  "deliveries.colTarget": "Ціль",
  "deliveries.colStatus": "Статус",
  "deliveries.colStatusHint": "delivered — доставлено; pending — чекає надсилання або ретраю; skipped — відфільтровано як шум; failed — спроби вичерпано",
  "deliveries.colAttempts": "Спроби",
  "deliveries.colAttemptsHint": "Скільки разів намагалися надіслати (ретраї 30с → 2хв → 10хв → 30хв)",
  "deliveries.colError": "Помилка",
  "deliveries.colMessage": "Повідомлення",
  "denied.cardTitle": "Доступ заборонено",
  "denied.cardText": "Налаштування Synapse доступні ролі admin і вище; особистий розділ — за посиланням «Мої події». Зазвичай сюди потрапляють лише за застарілим посиланням на адмін-частину.",
  "denied.backToLogin": "На сторінку входу",
  "login.title": "Вітаємо в Synapse",
  "login.subtitle": "Увійдіть, щоб отримати доступ до хаба сповіщень",
  "login.signInButton": "Увійти через GNEXUS",
  "oauth.checkingLabel": "Перевірка входу…",
  "myEvents.title": "Мої події",
  "myEvents.subtitle": "Події, скеровані особисто вам правилами маршрутизації: що сталося і що про це сказали",
  "myEvents.loading": "Завантаження…",
  "myEvents.empty": "Ще немає подій, скерованих особисто вам: вони з'являються, коли правило маршрутизації надсилає подію в канал user",
  "myEvents.colTime": "Час",
  "myEvents.colEvent": "Подія",
  "myEvents.colPriority": "Пріоритет",
  "myEvents.priorityTip": "Пріоритет події з конверта: low, normal, high, critical",
  "myEvents.colMessage": "Повідомлення",
  "sources.pageTitle": "Джерела",
  "sources.pageSubtitle": "Сервіси, які надсилають події в хаб. Опис, ключі та типи — на сторінці джерела",
  "sources.toastCreated": "Джерело створено",
  "sources.toastDeleted": "Джерело видалено",
  "sources.createButton": "Джерело",
  "sources.loading": "Завантаження…",
  "sources.empty": "Джерел ще немає — створіть перше",
  "sources.colSlug": "Slug",
  "sources.colSlugHelp": "Ім'я джерела в події (поле source конверта). Клік — сторінка джерела",
  "sources.colLabel": "Назва",
  "sources.colCreated": "Створено",
  "sources.rowDelete": "Видалити джерело",
  "sources.createTitle": "Нове джерело",
  "sources.formSlugLabel": "Slug (name)",
  "sources.formSlugHelp": "Наприклад monitoring; лише a-z 0-9 . _ -",
  "sources.formLabelHelp": "Людиночитаєма назва",
  "sources.formDescriptionLabel": "Опис",
  "sources.formDescriptionHelp": "Що це за сервіс — побачать людина й ІІ-агент в адмінці",
  "sources.cancel": "Скасувати",
  "sources.create": "Створити",
  "sources.confirmTitle": "Видалити джерело?",
  "sources.confirmMessage": "Джерело «{name}» буде видалене разом із типами та ключами. Якщо в джерела є події, видалення буде відхилено.",
  "sources.delete": "Видалити",
  "sourceDetail.notFound": "Джерело не знайдено",
  "sourceDetail.toastKeyRevoked": "Ключ відкликано",
  "sourceDetail.toastDeleted": "Джерело видалено",
  "sourceDetail.backToList": "До списку джерел",
  "sourceDetail.kicker": "Synapse · Джерело",
  "sourceDetail.actions": "Дії",
  "sourceDetail.issueKey": "Випустити ключ",
  "sourceDetail.deleteSource": "Видалити джерело",
  "sourceDetail.loading": "Завантаження…",
  "sourceDetail.aboutTitle": "Про сервіс",
  "sourceDetail.dtSlug": "Slug",
  "sourceDetail.dtName": "Назва",
  "sourceDetail.dtDescription": "Опис",
  "sourceDetail.dtCreated": "Створено",
  "sourceDetail.keysTitle": "API-ключі",
  "sourceDetail.tokenLabel": "Токен",
  "sourceDetail.tokenNote": " показується лише один раз під час випуску — у Synapse зберігається тільки sha256-хеш.",
  "sourceDetail.keysEmpty": "Ключів немає — випустіть перший",
  "sourceDetail.colKey": "Ключ",
  "sourceDetail.colTail": "Хвіст",
  "sourceDetail.colCreatedHelp": "Момент випуску ключа",
  "sourceDetail.colUsed": "Використано",
  "sourceDetail.colUsedHelp": "Остання подія з цим ключем",
  "sourceDetail.colStatus": "Статус",
  "sourceDetail.keyRevoked": "відкликано",
  "sourceDetail.keyActive": "активний",
  "sourceDetail.revoke": "Відкликати",
  "sourceDetail.typesTitle": "Типи подій",
  "sourceDetail.allTypes": "Усі типи",
  "sourceDetail.typesEmpty": "Типів не зареєстровано — подія з незнайомою трійкою буде відхилена з 422",
  "sourceDetail.colSubject": "Subject",
  "sourceDetail.colSubjectHelp": "Сутність події: container, issue, build…",
  "sourceDetail.colAction": "Action",
  "sourceDetail.colActionHelp": "Що сталося: down, created, resolved…",
  "sourceDetail.colTypeCreatedHelp": "Момент реєстрації типу",
  "sourceDetail.tokenModalTitle": "Токен — показується один раз",
  "sourceDetail.tokenModalText": "Токен більше не буде показаний: у Synapse зберігається тільки sha256-хеш. Скопіюйте його зараз і передайте власнику джерела.",
  "sourceDetail.copy": "Копіювати",
  "sourceDetail.done": "Готово",
  "sourceDetail.confirmTitle": "Видалити джерело?",
  "sourceDetail.confirmMessage": "Джерело «{name}» буде видалене разом із типами та ключами. Якщо в джерела є події, видалення буде відхилено.",
  "sourceDetail.delete": "Видалити",
  "sourceDetail.cancel": "Скасувати",
  "types.pickSource": "— оберіть джерело —",
  "types.toastCreated": "Тип створено",
  "types.toastDeleted": "Тип видалено",
  "types.pageTitle": "Типи",
  "types.pageSubtitle": "Реєстр (source, subject, action). Подія з незареєстрованою трійкою відхиляється з 422",
  "types.createButton": "Тип",
  "types.loading": "Завантаження…",
  "types.empty": "Типів немає — створіть перший",
  "types.colSource": "Source",
  "types.colSubject": "Subject",
  "types.colAction": "Action",
  "types.colCreated": "Створено",
  "types.rowDelete": "Видалити тип",
  "types.createTitle": "Новий тип",
  "types.formSourceLabel": "Джерело",
  "types.formSubjectHelp": "Сутність: container, issue, build…",
  "types.formActionHelp": "Що сталося: down, created, resolved…",
  "types.cancel": "Скасувати",
  "types.create": "Створити",
  "types.confirmTitle": "Видалити тип?",
  "types.confirmMessage": "Тип ({name}, {subject}, {action}) буде видалений — події такої трійки відхилятимуться з 422.",
  "types.delete": "Видалити",
  "targets.invalidConfigJson": "Config — некоректний JSON",
  "targets.toastCreated": "Ціль створена",
  "targets.toastDeleted": "Ціль видалена",
  "targets.title": "Цілі",
  "targets.subtitle": "Куди доставляти: TG-чати, SMTP, s2s-точки. Креди каналів — лише в .env (gnexus-creds)",
  "targets.createButton": "Додати ціль",
  "targets.loading": "Завантаження…",
  "targets.empty": "Цілей немає — наприклад, створіть ціль для internal_log",
  "targets.colChannel": "Канал",
  "targets.colName": "Назва",
  "targets.colCreatedAt": "Створена",
  "targets.rowDelete": "Видалити ціль",
  "targets.modalCreate": "Нова ціль",
  "targets.formChannel": "Канал",
  "targets.formName": "Назва",
  "targets.formDescription": "Опис",
  "targets.formConfigLabel": "Config (JSON)",
  "targets.nameHelp": "Наприклад infra-alerts",
  "targets.descriptionHelp": "Для чого ця ціль (для ІІ-агента і людини)",
  "targets.configHelp": "Для s2s: {\"endpoint\":\"http://…\",\"token_ref\":\"navi-rei\"}; для TG: {\"chat_id\":\"@…\"}",
  "targets.cancel": "Скасувати",
  "targets.create": "Створити",
  "targets.confirmTitle": "Видалити ціль?",
  "targets.confirmMessage": "Ціль «{name}» ({channel}) буде видалена. Посилання з правил і доставок обнуляться, історія залишиться.",
  "targets.confirmDelete": "Видалити",
  "targetDetail.notFound": "Ціль не знайдено",
  "targetDetail.invalidConfigJson": "Config — некоректний JSON",
  "targetDetail.toastSaved": "Збережено",
  "targetDetail.toastEnabled": "Ціль увімкнено",
  "targetDetail.toastDisabled": "Ціль вимкнено",
  "targetDetail.toastDeleted": "Ціль видалено",
  "targetDetail.hintS2s": "system-to-system: Synapse підписує та надсилає подію на endpoint цілі. Секрет — у .env воркера під іменем S2S_SECRET_<TOKEN_REF>.",
  "targetDetail.hintTelegram": "Telegram-канал (#29, ще не реалізовано). Config зберігає ідентифікатор чату.",
  "targetDetail.hintEmail": "Email-канал (#29, ще не реалізовано). Config зберігає адреси/тему.",
  "targetDetail.hintInternalLog": "Внутрішній журнал Synapse: доставку записано в БД як деградацію та для аудиту.",
  "targetDetail.backLink": "До списку цілей",
  "targetDetail.kickerTarget": "Ціль",
  "targetDetail.unnamed": "…",
  "targetDetail.enabled": "Увімкнена",
  "targetDetail.disabled": "Вимкнена",
  "targetDetail.statusOn": "увімкнена",
  "targetDetail.statusOff": "вимкнена",
  "targetDetail.actions": "Дії",
  "targetDetail.edit": "Редагувати",
  "targetDetail.delete": "Видалити",
  "targetDetail.loading": "Завантаження…",
  "targetDetail.about": "Про ціль",
  "targetDetail.fieldChannel": "Канал",
  "targetDetail.fieldStatus": "Статус",
  "targetDetail.fieldName": "Назва",
  "targetDetail.fieldDescription": "Опис",
  "targetDetail.fieldCreatedAt": "Створена",
  "targetDetail.configTitle": "Config",
  "targetDetail.copy": "Копіювати",
  "targetDetail.configNote": "Ідентифікатори точки доставки. Секрети й креди в config не пишуться — лише в .env (gnexus-creds).",
  "targetDetail.modalEdit": "Редагувати ціль",
  "targetDetail.formName": "Назва",
  "targetDetail.nameHelp": "Показується в правилах і логі доставок",
  "targetDetail.formDescription": "Опис",
  "targetDetail.descriptionHelp": "Для чого ця ціль (для ІІ-агента і людини)",
  "targetDetail.formConfigLabel": "Config (JSON)",
  "targetDetail.configExample": "Наприклад: {\"endpoint\":\"http://…\",\"token_ref\":\"navi-rei\"}",
  "targetDetail.credsNote": "Креди в config не пишуться — лише .env (gnexus-creds)",
  "targetDetail.cancel": "Скасувати",
  "targetDetail.save": "Зберегти",
  "targetDetail.confirmTitle": "Видалити ціль?",
  "targetDetail.confirmMessage": "Ціль «{name}» буде видалена. Посилання з правил і доставок обнуляться, історія доставок залишиться.",
  "targetDetail.confirmDelete": "Видалити",
  "rules.weightTip": "Вага визначає порядок застосування правил у режимі «перше збігле» (ROUTING_MATCH_MODE=first): менша — важливіша, спрацьовує раніше. У режимі «всі» на результат не впливає.",
  "rules.throttleTip": "Шумодав: не частіше однієї реальної доставки в цю ціль за N секунд. Приглушені доставки отримують статус skipped, critical проходить завжди.",
  "rules.toastCreated": "Правило створено",
  "rules.toastEnabled": "Правило увімкнено",
  "rules.toastDisabled": "Правило вимкнено",
  "rules.toastDeleted": "Правило видалено",
  "rules.title": "Правила",
  "rules.subtitle": "Кожну подію проганяють через правила: як тільки умови збіглися — створюється доставка в канали дії. Шумодав ріже повтори, critical проходить завжди",
  "rules.createButton": "Правило",
  "rules.loading": "Завантаження…",
  "rules.emptyText": "Правил немає — подія, що не потрапила жодному правилу, лише фіксується історією",
  "rules.colName": "Правило",
  "rules.colWeight": "Вага",
  "rules.colThrottle": "Шумодав",
  "rules.colActions": "Дії",
  "rules.actionsTip": "Куди доставити: канал і ціль. internal_log без цілі пише журнал Synapse. Умови — на сторінці правила",
  "rules.colEnabled": "Увімк./вимк.",
  "rules.secondsShort": "с",
  "rules.deleteRule": "Видалити правило",
  "rules.newRuleTitle": "Нове правило",
  "rules.cancel": "Скасувати",
  "rules.create": "Створити",
  "rules.deleteTitle": "Видалити правило?",
  "rules.deleteMessage": "Правило «{name}» буде видалене разом з діями. Історія доставок залишиться.",
  "rules.delete": "Видалити",
  "ruleDetail.condSource": "Джерело: ім'я source з реєстру",
  "ruleDetail.condSubjects": "Subject'и події (будь-який з)",
  "ruleDetail.condActions": "Action'и події (будь-який з)",
  "ruleDetail.condPriorityMin": "Мінімальний пріоритет (low/normal/high/critical)",
  "ruleDetail.condPayload": "Вимоги до полів payload (усі вказані; значення-список = будь-який з)",
  "ruleDetail.notFound": "Правило не знайдено",
  "ruleDetail.toastEnabled": "Правило увімкнено",
  "ruleDetail.toastDisabled": "Правило вимкнено",
  "ruleDetail.toastSaved": "Збережено",
  "ruleDetail.toastDeleted": "Правило видалено",
  "ruleDetail.weightTip": "Вага визначає порядок застосування правил у режимі «перше збігле» (ROUTING_MATCH_MODE=first): менша — важливіша, спрацьовує раніше. У режимі «всі» на результат не впливає.",
  "ruleDetail.throttleTip": "Шумодав: не частіше однієї реальної доставки в цю ціль за N секунд. Приглушені доставки отримують статус skipped, critical проходить завжди.",
  "ruleDetail.backToList": "До списку правил",
  "ruleDetail.kicker": "Synapse · Правило",
  "ruleDetail.noName": "…",
  "ruleDetail.subtitle": "Умови → дії маршрутизації",
  "ruleDetail.enabled": "Увімкнено",
  "ruleDetail.disabled": "Вимкнено",
  "ruleDetail.actionsLabel": "Дії",
  "ruleDetail.edit": "Редагувати",
  "ruleDetail.delete": "Видалити",
  "ruleDetail.loading": "Завантаження…",
  "ruleDetail.paramsTitle": "Параметри",
  "ruleDetail.statusLabel": "Статус",
  "ruleDetail.stateOn": "увімкнено",
  "ruleDetail.stateOff": "вимкнено",
  "ruleDetail.weightLabel": "Вага",
  "ruleDetail.throttleLabel": "Шумодав",
  "ruleDetail.createdLabel": "Створено",
  "ruleDetail.secondsShort": "с",
  "ruleDetail.conditionsTitle": "Умови",
  "ruleDetail.conditionsNote": "Подія проходить за правилом, лише коли всі умови нижче збіглися. Якщо умов немає — правило підходить до будь-якої події.",
  "ruleDetail.templateTitle": "Шаблон повідомлення",
  "ruleDetail.templateNote1": "Текст Jinja2, який піде в канал:",
  "ruleDetail.templateNote2": "підставить значення з payload події. Якщо шаблону немає — у дії нижче може бути свій.",
  "ruleDetail.templateEmpty": "— не задано",
  "ruleDetail.actionsTitle": "Дії",
  "ruleDetail.actionsNote": "Коли подія збігається з умовами, для кожної дії створюється доставка. internal_log пише в журнал Synapse (аудит і деградація), s2s — підписане надсилання в сервіс; канали telegram/email — #29, ще не працюють.",
  "ruleDetail.withoutTarget": "без цілі",
  "ruleDetail.actionTemplate": "шаблон дії:",
  "ruleDetail.noTemplate": "шаблон не задано",
  "ruleDetail.editTitle": "Редагувати правило",
  "ruleDetail.cancel": "Скасувати",
  "ruleDetail.save": "Зберегти",
  "ruleDetail.deleteTitle": "Видалити правило?",
  "ruleDetail.deleteMessage": "Правило «{name}» буде видалене разом з діями. Історія доставок залишиться.",
  "ruleForm.priorityAny": "— будь-який —",
  "ruleForm.weightTip": "Вага визначає порядок застосування правил у режимі «перше збігле» (ROUTING_MATCH_MODE=first): менша — важливіша, спрацьовує раніше. У режимі «всі» на результат не впливає.",
  "ruleForm.throttleTip": "Шумодав: не частіше однієї реальної доставки в цю ціль за N секунд. Приглушені доставки отримують статус skipped, critical проходить завжди.",
  "ruleForm.anySource": "— будь-яке джерело —",
  "ruleForm.errName": "Задайте назву правила",
  "ruleForm.errPayloadJson": "Вимоги payload — некоректний JSON",
  "ruleForm.errNoActions": "Додайте принаймні одну дію — куди доставляти",
  "ruleForm.nameLabel": "Назва",
  "ruleForm.nameHelp": "Як правило підписане в списку, наприклад «контейнери впали»",
  "ruleForm.weightLabel": "Вага (weight)",
  "ruleForm.throttleLabel": "Шумодав, с",
  "ruleForm.conditionsTitle": "Умови",
  "ruleForm.conditionsNote": "Правило застосовується до події, лише коли всі задані умови збіглися. Порожні умови = підходить завжди.",
  "ruleForm.sourceLabel": "Джерело",
  "ruleForm.subjectsHelp": "Сутності через кому: container, build…; порожньо = будь-які",
  "ruleForm.actionsHelp": "Дії події через кому: down, created…; порожньо = будь-які",
  "ruleForm.payloadLabel": "Вимоги до payload (JSON)",
  "ruleForm.payloadHelp": "Наприклад {\"host\": [\"melody\",\"pilar\"]} — подія має нести host melody або pilar; порожньо = без вимоги",
  "ruleForm.actionsTitle": "Дії",
  "ruleForm.actionsNote": "Що робити, коли правило збіглося: створити доставку в кожному каналі нижче. internal_log без цілі — запис у журнал Synapse (аудит); user — особистий лог користувача з payload.user_id; s2s — підписане надсилання в сервіс; канали telegram/email — #29, ще не працюють.",
  "ruleForm.tplLabel": "Шаблон за замовчуванням (Jinja2)",
  "ruleForm.tplHelp": "{{ payload.поле }} — значення з payload події, наприклад \"Контейнер {{ payload.container }} впав\"; у дії може бути свій шаблон",
  "ruleForm.channelLabel": "Канал",
  "ruleForm.targetLabel": "Ціль",
  "ruleForm.noTarget": "— без цілі —",
  "ruleForm.removeAction": "Прибрати дію",
  "ruleForm.addAction": "Дія",
  "ruleForm.errTitle": "Помилка форми",
  "settings.title": "Налаштування",
  "settings.subtitleAdmin": "Особисте підписання на пуші та конфігурація Synapse (перебиває дефолти .env)",
  "settings.subtitleUser": "Особисте: підписання на push-повідомлення цього браузера",
  "settings.loading": "Завантаження…",
  "settings.toastDeviceRemoved": "Підписку видалено",
  "settings.toastNotConfigured": "Пуші ще не налаштовані — адміністратор задасть VAPID-ключі в налаштуваннях",
  "settings.toastPermissionDenied": "Браузеру заборонено показувати повідомлення для цього сайту — увімкніть їх у налаштуваннях сайту",
  "settings.toastPushEnabled": "Пуші увімкнено",
  "settings.toastPushDisabled": "Пуші вимкнено",
  "settings.toastSaved": "Налаштування збережено",
  "settings.sectionRouting": "Маршрутизація",
  "settings.sectionPush": "Web Push",
  "settings.sectionTelegram": "Telegram",
  "settings.sectionSmtp": "Email · SMTP",
  "settings.deviceTip": "Пристрій, підписаний на ваші пуші (один рядок — один браузер). Видаліть рядок, якщо пристрою більше немає.",
  "settings.pushTitle": "Push-повідомлення цього браузера",
  "settings.pushUnsupportedTitle": "Пуші недоступні",
  "settings.pushUnsupportedText": "Браузер не підтримує web-push (потрібні Service Worker і Notification API; на http-сторінці — лише https/localhost).",
  "settings.pushNotConfiguredTitle": "Сервер ще не налаштований",
  "settings.pushNotConfiguredText": "Адміністратор не задав VAPID-ключі — увімкніть після налаштування (адмін: Налаштування → Web Push).",
  "settings.permissionDeniedNote": "Дозвіл на повідомлення заборонено — увімкніть його в налаштуваннях сайту браузера.",
  "settings.permissionUnsupportedNote": "Браузер не вміє web-push.",
  "settings.pushSwitchLabel": "Отримувати пуші від Synapse",
  "settings.pushActiveNote": "Підписання цього браузера активне",
  "settings.pushInactiveNote": "Події з адресатом саме вам (payload.user_id) відкриватимуться як системні повідомлення",
  "settings.removeDeviceLabel": "Видалити підписку",
  "settings.secretSetPlaceholder": "••••• задано — залишіть порожнім, щоб не змінювати",
  "settings.notSetPlaceholder": "не задано",
  "settings.writeOnlyHelp": "write-only: {text}",
  "settings.overrideButton": "Перебити дефолти",
  "settings.overrideHint": "Значення звідси перекривають .env на льоту — контейнер перезапускати не потрібно",
  "mcpKeys.title": "MCP-ключі",
  "mcpKeys.subtitle": "Особисті токени доступу до MCP-сервера Synapse: агент із ключом діє вашою роллю",
  "mcpKeys.loading": "Завантаження…",
  "mcpKeys.myKeys": "Мої ключі",
  "mcpKeys.tokenWord": "Токен",
  "mcpKeys.myKeysNote": "показується один раз під час випуску — в Synapse зберігається лише sha256-хеш. Діє роллю власника на момент випуску: після зміни ролі випустіть ключ заново, а старий відкличте. Одночасно активно до 10 ключів.",
  "mcpKeys.namePlaceholder": "Назва ключа: «агент Navi rei»",
  "mcpKeys.generate": "Згенерувати ключ",
  "mcpKeys.defaultName": "ключ",
  "mcpKeys.toastRevoked": "Ключ відкликано",
  "mcpKeys.emptyOwn": "Ключів немає — згенеруйте перший і віддайте його своєму ІІ-агенту",
  "mcpKeys.colKey": "Ключ",
  "mcpKeys.colTail": "Хвіст",
  "mcpKeys.colRole": "Роль",
  "mcpKeys.colCreated": "Створено",
  "mcpKeys.colCreatedTip": "Момент випуску ключа",
  "mcpKeys.colUsed": "Використано",
  "mcpKeys.colUsedTip": "Останній MCP-запрос цим ключем",
  "mcpKeys.colStatus": "Статус",
  "mcpKeys.badgeRevoked": "відкликано",
  "mcpKeys.badgeActive": "активний",
  "mcpKeys.revoke": "Відкликати",
  "mcpKeys.howToConnect": "Як підключити агента",
  "mcpKeys.connectNoteBefore": "Клієнту MCP (Claude Code, IDE тощо) потрібна URL-адреса ендпоінта",
  "mcpKeys.connectNoteAfter": "цього Synapse та Bearer-ключ із випуску: той, хто отримав ключ, діє роллю власника (адмін-тули — лише для ролей admin+).",
  "mcpKeys.copyConfig": "Копіювати конфіг",
  "mcpKeys.allKeysAdmin": "Усі ключі (адмін)",
  "mcpKeys.allKeysNote": "Випуск — самостійний (кожен на своїй сторінці /mcp-keys); тут — огляд усіх і відкликання, наприклад після зміни ролі користувача на gnexus-auth.",
  "mcpKeys.emptyAll": "Персональних ключів ще немає — вони з'являться, коли користувачі випустять собі їх",
  "mcpKeys.colOwner": "Власник",
  "mcpKeys.modalTitle": "Токен — показується один раз",
  "mcpKeys.modalAlert": "Налаштуйте агента зараз: у Synapse зберігається лише sha256-хеш, токен більше не буде показано.",
  "mcpKeys.copy": "Копіювати",
  "mcpKeys.done": "Готово",
  "mcpKeys.revokeConfirmTitle": "Відкликати чужий ключ?",
  "mcpKeys.revokeConfirmMessage": "Ключ «{name}» ({owner}) перестане працювати в його агента. Користувач випустить собі новий за потреби.",
  "mcpKeys.cancel": "Скасувати",
  'push.unsupported': 'Браузер не підтримує web-push',
  'push.swNotReady': 'Service worker ще не готовий (оновіть сторінку)',
};