import type { TranslationMap } from "../lib/types.ts";

// Generated by scripts/control-ui-i18n.ts.
export const uk: TranslationMap = {
  common: {
    health: "Стан",
    ok: "OK",
    yes: "Так",
    no: "Ні",
    active: "Активно",
    loading: "Завантаження…",
    refreshing: "Оновлення…",
    online: "Онлайн",
    offline: "Офлайн",
    connect: "Підключити",
    connected: "Підключено",
    refresh: "Оновити",
    reload: "Перезавантажити",
    probe: "Перевірити",
    call: "Виклик",
    confirm: "Підтвердити",
    cancel: "Скасувати",
    unselect: "Зняти вибір",
    enabled: "Увімкнено",
    disabled: "Вимкнено",
    na: "н/д",
    configured: "Налаштовано",
    running: "Запущено",
    linked: "Пов’язано",
    mode: "Режим",
    baseUrl: "Базовий URL",
    lastStart: "Останній запуск",
    lastProbe: "Остання перевірка",
    lastInbound: "Останній вхідний",
    lastConnect: "Останнє підключення",
    lastMessage: "Останнє повідомлення",
    authAge: "Термін автентифікації",
    credential: "Облікові дані",
    audience: "Аудиторія",
    publicKey: "Публічний ключ",
    probeOk: "Перевірку пройдено",
    probeFailed: "Перевірка не пройдена",
    reloadConfig: "Перезавантажити конфігурацію",
    loadConfig: "Завантажити конфігурацію",
    loadApprovals: "Завантажити схвалення",
    settingsSections: "Розділи налаштувань",
    version: "Версія",
    docs: "Документація",
    theme: "Тема",
    resources: "Ресурси",
    search: "Пошук",
    save: "Зберегти",
    saving: "Збереження…",
    saveAndPublish: "Зберегти й опублікувати",
    importing: "Імпортування…",
    importFromRelays: "Імпортувати з Relays",
    showAdvanced: "Показати додаткові",
    hideAdvanced: "Сховати додаткові",
    unsavedChanges: "У вас є незбережені зміни",
    secondsAgo: "{count} с тому",
    working: "Виконується…",
    showQr: "Показати QR",
    relink: "Пов’язати знову",
    waitForScan: "Очікування сканування",
    logout: "Вийти",
  },
  channels: {
    health: {
      title: "Стан каналу",
      subtitle: "Знімки стану каналу з Gateway.",
      noSnapshotYet: "Ще немає знімка.",
    },
    generic: {
      subtitle: "Стан каналу та конфігурація.",
    },
    gatewayUrlConfirmation: {
      title: "Змінити URL Gateway",
      subtitle: "Це перепідключить до іншого сервера Gateway",
      warning:
        "Підтверджуйте лише якщо довіряєте цьому URL. Шкідливі URL можуть скомпрометувати вашу систему.",
    },
    nostr: {
      profile: "Профіль",
      editProfile: "Редагувати профіль",
      profilePicture: "Зображення профілю",
      noProfile: "Профіль не налаштовано.",
      noProfileHint: 'Натисніть "Edit Profile", щоб додати своє ім’я, біографію та аватар.',
      name: "Ім’я",
      displayName: "Відображуване ім’я",
      about: "Про себе",
      advanced: "Додатково",
      profilePicturePreview: "Попередній перегляд зображення профілю",
      account: "Обліковий запис",
      username: "Ім’я користувача",
      usernameHelp: "Коротке ім’я користувача (наприклад, satoshi)",
      bio: "Біографія",
      bioPlaceholder: "Розкажіть людям про себе...",
      bioHelp: "Коротка біографія або опис",
      displayNameHelp: "Ваше повне відображуване ім’я",
      avatarUrl: "URL аватара",
      avatarHelp: "HTTPS URL вашого зображення профілю",
      bannerUrl: "URL банера",
      bannerHelp: "HTTPS URL зображення банера",
      website: "Вебсайт",
      websiteHelp: "Ваш особистий вебсайт",
      nip05Identifier: "Ідентифікатор NIP-05",
      nip05Help: "Ідентифікатор, який можна перевірити (наприклад, you@domain.com)",
      lightningAddress: "Lightning Address",
      lightningHelp: "Lightning-адреса для чайових (LUD-16)",
    },
  },
  nodes: {
    binding: {
      loadConfigHint: "Завантажте конфігурацію, щоб редагувати прив’язки.",
      formModeHint: "Перемкніть вкладку Config у режим Form, щоб редагувати прив’язки тут.",
      execNodeBinding: "Прив’язка exec-вузла",
      execNodeBindingSubtitle:
        "Закріплюйте агентів за певним вузлом під час використання exec host=node.",
      defaultBinding: "Прив’язка за замовчуванням",
      defaultBindingHint: "Використовується, коли агенти не перевизначають прив’язку вузла.",
      node: "Вузол",
    },
  },
  instances: {
    title: "Підключені інстанси",
    subtitle: "Маячки присутності від Gateway і клієнтів.",
    showHosts: "Показати хости й IP-адреси",
    hideHosts: "Сховати хости й IP-адреси",
    toggleHostVisibility: "Перемкнути видимість хостів",
    noInstances: "Ще немає повідомлень про інстанси.",
    lastInput: "Останнє введення {time}",
    reason: "Причина {reason}",
  },
  agentTools: {
    connectedSource: "Підключено: {id}",
    connected: "Підключено",
    channelSource: "Канал: {id}",
    channel: "Канал",
    builtIn: "Вбудований",
  },
  nav: {
    chat: "Чат",
    control: "Керування",
    agent: "Агент",
    settings: "Налаштування",
    expand: "Розгорнути бічну панель",
    collapse: "Згорнути бічну панель",
    resize: "Змінити розмір бічної панелі",
  },
  tabs: {
    agents: "Агенти",
    overview: "Огляд",
    channels: "Канали",
    instances: "Екземпляри",
    sessions: "Сеанси",
    usage: "Використання",
    cron: "Завдання Cron",
    skills: "Навички",
    nodes: "Вузли",
    chat: "Чат",
    config: "Конфігурація",
    communications: "Комунікації",
    appearance: "Зовнішній вигляд",
    automation: "Автоматизація",
    infrastructure: "Інфраструктура",
    aiAgents: "AI та агенти",
    debug: "Налагодження",
    logs: "Журнали",
    dreams: "Сни",
  },
  subtitles: {
    agents: "Робочі простори, інструменти, ідентичності.",
    overview: "Стан, точки входу, справність.",
    channels: "Канали та налаштування.",
    instances: "Підключені клієнти та вузли.",
    sessions: "Активні сеанси та типові значення.",
    usage: "Використання API та витрати.",
    cron: "Пробудження та повторювані запуски.",
    skills: "Навички та API-ключі.",
    nodes: "Спарені пристрої та команди.",
    chat: "Чат шлюзу для швидких втручань.",
    config: "Редагування openclaw.json.",
    communications: "Канали, повідомлення та налаштування аудіо.",
    appearance: "Тема, інтерфейс і налаштування майстра налаштування.",
    automation: "Команди, хуки, cron і плагіни.",
    infrastructure: "Налаштування шлюзу, вебу, браузера та медіа.",
    aiAgents: "Агенти, моделі, навички, інструменти, пам’ять, сеанс.",
    debug: "Знімки, події, RPC.",
    logs: "Журнали шлюзу в реальному часі.",
    dreams: "Консолідація пам’яті під час сну.",
  },
  overview: {
    access: {
      title: "Доступ до шлюзу",
      subtitle: "Куди підключається панель керування та як вона автентифікується.",
      wsUrl: "URL WebSocket",
      token: "Токен шлюзу",
      password: "Пароль (не зберігається)",
      sessionKey: "Типовий ключ сеансу",
      language: "Мова",
      connectHint: "Натисніть «Підключити», щоб застосувати зміни підключення.",
      trustedProxy: "Автентифіковано через довірений проксі.",
    },
    snapshot: {
      title: "Знімок",
      subtitle: "Остання інформація рукостискання шлюзу.",
      status: "Стан",
      uptime: "Час роботи",
      tickInterval: "Інтервал тіку",
      lastChannelsRefresh: "Останнє оновлення каналів",
      channelsHint:
        "Використовуйте «Канали», щоб прив’язати WhatsApp, Telegram, Discord, Signal або iMessage.",
    },
    stats: {
      instances: "Екземпляри",
      instancesHint: "Маячки присутності за останні 5 хвилин.",
      sessions: "Сеанси",
      sessionsHint: "Нещодавні ключі сеансів, які відстежує шлюз.",
      cron: "Cron",
      cronNext: "Наступне пробудження {time}",
    },
    notes: {
      title: "Нотатки",
      subtitle: "Швидкі нагадування для налаштувань віддаленого керування.",
      tailscaleTitle: "Tailscale serve",
      tailscaleText:
        "Надавайте перевагу режиму serve, щоб шлюз залишався на loopback з автентифікацією tailnet.",
      sessionTitle: "Гігієна сеансів",
      sessionText: "Використовуйте /new або sessions.patch, щоб скинути контекст.",
      cronTitle: "Нагадування Cron",
      cronText: "Використовуйте ізольовані сеанси для повторюваних запусків.",
    },
    auth: {
      required:
        "Цей шлюз потребує автентифікації. Додайте токен або пароль, а потім натисніть «Підключити».",
      failed:
        "Автентифікація не вдалася. Знову скопіюйте URL з токеном за допомогою {command} або оновіть токен, а потім натисніть «Підключити».",
    },
    pairing: {
      hint: "Цей пристрій потребує схвалення спарювання від хоста шлюзу.",
      mobileHint:
        "На мобільному? Скопіюйте повний URL (включно з #token=...) з openclaw dashboard --no-open на вашому комп’ютері.",
    },
    insecure: {
      hint: "Ця сторінка використовує HTTP, тому браузер блокує ідентичність пристрою. Використовуйте HTTPS (Tailscale Serve) або відкрийте {url} на хості шлюзу.",
      stayHttp: "Якщо вам потрібно залишитися на HTTP, установіть {config} (лише токен).",
    },
    connection: {
      title: "Як підключитися",
      step1: "Запустіть шлюз на вашому хості:",
      step2: "Отримайте URL панелі керування з токеном:",
      step3: "Вставте URL WebSocket і токен вище або відкрийте URL з токеном напряму.",
      step4: "Або згенеруйте багаторазовий токен:",
      docsHint: "Для віддаленого доступу рекомендовано Tailscale Serve. ",
      docsLink: "Читати документацію →",
    },
    cards: {
      cost: "Вартість",
      skills: "Навички",
      recentSessions: "Нещодавні сеанси",
      modelAuth: "Авторизація моделей",
      modelAuthOk: "{count} в нормі",
      modelAuthExpired: "{count} прострочено",
      modelAuthExpiring: "{count} скоро спливає",
      modelAuthProviders: "{count} провайдерів",
      modelAuthUsageLeft: "Залишилося {pct}%",
      modelAuthExpiresIn: "спливає {when}",
      modelAuthAttentionExpiredTitle: "Авторизація моделей прострочена",
      modelAuthAttentionExpiringTitle: "Термін авторизації моделей скоро спливає",
      modelAuthAttentionExpiredDesc:
        "{providers} — повторно виконайте авторизацію через openclaw models auth",
      modelAuthAttentionExpiringEntry: "{provider} ({when})",
    },
    attention: {
      title: "Увага",
    },
    eventLog: {
      title: "Журнал подій",
    },
    logTail: {
      title: "Журнали шлюзу",
    },
    quickActions: {
      newSession: "Новий сеанс",
      automation: "Автоматизація",
      refreshAll: "Оновити все",
      terminal: "Термінал",
    },
    palette: {
      placeholder: "Введіть команду…",
      noResults: "Немає результатів",
    },
  },
  dreaming: {
    tabs: {
      scene: "Сцена",
      diary: "Щоденник",
      advanced: "Розширені",
    },
    header: {
      refresh: "Оновити",
      refreshing: "Оновлення…",
      on: "Сновидіння увімкнено",
      off: "Сновидіння вимкнено",
    },
    status: {
      active: "Сновидіння активне",
      idle: "Сновидіння неактивне",
      promotedSuffix: "підвищено",
      nextSweepPrefix: "наступний цикл",
    },
    scene: {
      backfill: "Заповнити пропуски",
      dedupeDiary: "Щоденник дедуплікації",
      reset: "Скинути",
      clearGrounded: "Очистити заземлене",
      repairCache: "Відновити кеш сновидінь",
      working: "Обробка…",
    },
    phase: {
      light: "Легкий",
      deep: "Глибокий",
      rem: "REM",
      off: "вимкнено",
    },
    advanced: {
      eyebrow: "Огляд",
      title: "Огляд щоденного журналу",
      description:
        "Перегляньте, що надійшло зі щоденного журналу, що очікує на підвищення та що було підвищено нещодавно.",
      summaryFromDailyLog: "зі щоденного журналу",
      summaryWaiting: "очікує",
      summaryPromotedToday: "підвищено сьогодні",
      stagedTitle: "Із щоденного журналу",
      stagedDescription:
        "Кандидати для повторного відтворення, взяті зі старіших записів щоденного журналу.",
      shortTermTitle: "Очікують на підвищення",
      shortTermDescription:
        "Поточні короткострокові кандидати, які очікують переходу до справжньої пам’яті.",
      sortRecent: "Найновіші",
      sortSignals: "Найсильніша підтримка",
      originDailyLog: "повторено",
      originLive: "наживо",
      originMixed: "змішано",
      promotedTitle: "Нещодавні підвищення",
      promotedDescription: "Елементи, які вже пройшли підвищення.",
      emptyGrounded: "Зараз немає підготовлених записів відтворення з прив’язкою до джерела.",
      emptyShortTerm: "Немає короткострокових записів для перегляду.",
      emptyPromoted: "Немає нещодавніх підвищень для перегляду.",
      updatedPrefix: "оновлено",
    },
    stats: {
      shortTerm: "Короткостроково",
      grounded: "Заземлене",
      signals: "Сигнали",
      promoted: "Підвищено",
      phaseHits: "Збіги фаз",
    },
    trace: {
      shortTerm: "Короткострокові",
      grounded: "Заземлене",
      signals: "Сигнали",
      promoted: "Підвищено",
      groundedLed: "grounded-led",
      emptyShortTerm: "Немає активних короткострокових елементів.",
      emptyGrounded: "Немає підготовлених заземлених елементів.",
      emptySignals: "Немає активних сигналів.",
      emptyPromoted: "Сьогодні ще нічого не підвищено.",
    },
    diary: {
      title: "Щоденник сновидінь",
      noDreamsYet: "Сновидінь ще немає",
      noDreamsHint: "Сновидіння з’являться тут після завершення першого циклу сновидінь.",
      waitingTitle: "Щоденник очікує",
      waitingHint: "Оповідні записи з’являться після наступного циклу сновидінь.",
      older: "Старіші",
      newer: "Новіші",
      reload: "Перезавантажити",
      reloading: "Перезавантаження…",
    },
    phrases: {
      consolidatingMemories: "консолідація спогадів…",
      tidyingKnowledgeGraph: "упорядкування графа знань…",
      replayingConversations: "відтворення сьогоднішніх розмов…",
      weavingShortTerm: "переплетення короткострокового з довгостроковим…",
      defragmentingMindPalace: "дефрагментація палацу розуму…",
      filingLooseThoughts: "упорядкування розрізнених думок…",
      connectingDots: "поєднання далеких точок…",
      compostingContext: "переробка старих контекстних вікон…",
      alphabetizingSubconscious: "алфавітне впорядкування підсвідомого…",
      promotingHunches: "просування багатообіцяльних здогадок…",
      forgettingNoise: "забування неважливого…",
      dreamingEmbeddings: "сновидіння в embedding-ах…",
      reorganizingAttic: "реорганізація горища пам’яті…",
      indexingDay: "м’яке індексування дня…",
      nurturingInsights: "плекання зародкових осяянь…",
      simmeringIdeas: "томління напівсформованих ідей…",
      whisperingVectorStore: "шепіт до vector store…",
    },
  },
  usage: {
    page: {
      subtitle:
        "Переглядайте, куди йдуть токени, коли зростає кількість сеансів і що формує вартість.",
    },
    common: {
      emptyValue: "—",
      unknown: "невідомо",
    },
    loading: {
      title: "Огляд використання",
      badge: "Завантаження",
    },
    metrics: {
      tokens: "Токени",
      cost: "Вартість",
      session: "сеанс",
      sessions: "сеанси",
    },
    presets: {
      today: "Сьогодні",
      last7d: "7 дн.",
      last30d: "30 дн.",
    },
    filters: {
      title: "Фільтри",
      to: "до",
      startDate: "Дата початку",
      endDate: "Дата завершення",
      timeZone: "Часовий пояс",
      timeZoneLocal: "Локальний",
      timeZoneUtc: "UTC",
      pin: "Закріпити",
      pinned: "Закріплено",
      unpin: "Відкріпити фільтри",
      selectAll: "Вибрати все",
      clear: "Очистити",
      clearAll: "Очистити все",
      remove: "Видалити фільтр",
      all: "Усі",
      days: "Дні",
      hours: "Години",
      session: "Сеанс",
      agent: "Агент",
      channel: "Канал",
      provider: "Провайдер",
      model: "Модель",
      tool: "Інструмент",
      daysCount: "{count} днів",
      hoursCount: "{count} годин",
      sessionsCount: "{count} сеансів",
    },
    query: {
      placeholder:
        "Фільтруйте сеанси (наприклад, key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
      apply: "Фільтрувати (на боці клієнта)",
      matching: "Збігаються {shown} із {total} сеансів",
      inRange: "{total} сеансів у діапазоні",
      tip: "Порада: використовуйте фільтри або натискайте на стовпчики, щоб уточнювати дні.",
    },
    export: {
      label: "Експорт",
      sessionsCsv: "CSV сеансів",
      dailyCsv: "Щоденний CSV",
      json: "JSON",
    },
    empty: {
      title: "Почніть із діапазону дат",
      subtitle:
        "Завантажте дані про використання, щоб порівнювати витрати, переглядати сеанси та деталізувати часові шкали, не залишаючи панель керування.",
      hint: "Виберіть діапазон дат і натисніть «Оновити», щоб завантажити дані про використання.",
      noData: "Немає даних",
      featureOverview: "Картки огляду",
      featureSessions: "Рейтинг сеансів",
      featureTimeline: "Деталізація часової шкали",
    },
    daily: {
      title: "Щоденне використання",
      total: "Усього",
      byType: "За типом",
      tokensTitle: "Щоденне використання токенів",
      costTitle: "Щоденна вартість",
    },
    breakdown: {
      output: "Вивід",
      input: "Ввід",
      cacheWrite: "Запис у кеш",
      cacheRead: "Читання з кешу",
      total: "Усього",
      tokensByType: "Токени за типом",
      costByType: "Вартість за типом",
    },
    overview: {
      title: "Огляд використання",
      messages: "Повідомлення",
      messagesHint: "Загальна кількість повідомлень користувача й асистента в діапазоні.",
      messagesAbbrev: "повід.",
      user: "користувач",
      assistant: "асистент",
      toolCalls: "Виклики інструментів",
      toolCallsHint: "Загальна кількість викликів інструментів у сеансах.",
      toolsUsed: "використано інструментів",
      errors: "Помилки",
      errorsHint: "Загальна кількість помилок повідомлень та інструментів у діапазоні.",
      toolResults: "результати інструментів",
      avgTokens: "Сер. токенів / повід.",
      avgTokensHint: "Середня кількість токенів на повідомлення в цьому діапазоні.",
      avgCost: "Сер. вартість / повід.",
      avgCostHint: "Середня вартість на повідомлення, коли провайдери повідомляють вартість.",
      avgCostHintMissing:
        "Середня вартість на повідомлення, коли провайдери повідомляють вартість. Дані про вартість відсутні для деяких або всіх сеансів у цьому діапазоні.",
      acrossMessages: "Для {count} повідомлень",
      sessions: "Сеанси",
      sessionsHint: "Окремі сеанси в діапазоні.",
      sessionsInRange: "із {count} у діапазоні",
      throughput: "Пропускна здатність",
      throughputHint:
        "Пропускна здатність показує кількість токенів за хвилину активного часу. Більше — краще.",
      tokensPerMinute: "ток/хв",
      perMinute: "/ хв",
      errorRate: "Рівень помилок",
      errorHint: "Рівень помилок = помилки / загальна кількість повідомлень. Менше — краще.",
      avgSession: "сер. сеанс",
      cacheHitRate: "Рівень влучань у кеш",
      cacheHint: "Рівень влучань у кеш = читання з кешу / (ввід + читання з кешу). Більше — краще.",
      cached: "кешовано",
      prompt: "запит",
      calls: "виклики",
      topModels: "Найпопулярніші моделі",
      topProviders: "Найпопулярніші провайдери",
      topTools: "Найпопулярніші інструменти",
      topAgents: "Найпопулярніші агенти",
      topChannels: "Найпопулярніші канали",
      peakErrorDays: "Пікові дні помилок",
      peakErrorHours: "Пікові години помилок",
      noModelData: "Немає даних про моделі",
      noProviderData: "Немає даних про провайдерів",
      noToolCalls: "Немає викликів інструментів",
      noAgentData: "Немає даних про агентів",
      noChannelData: "Немає даних про канали",
      noErrorData: "Немає даних про помилки",
    },
    sessions: {
      title: "Сеанси",
      shown: "Показано: {count}",
      total: "Усього: {count}",
      avg: "сер.",
      all: "Усі",
      recent: "Нещодавно переглянуті",
      recentShort: "Недавні",
      sort: "Сортування",
      ascending: "За зростанням",
      descending: "За спаданням",
      clearSelection: "Очистити вибір",
      noRecent: "Немає нещодавніх сеансів",
      noneInRange: "У діапазоні немає сеансів",
      more: "+{count} ще",
      selected: "Вибрано ({count})",
      copy: "Копіювати",
      copyName: "Копіювати назву сеансу",
      limitReached: "Показано перші 1 000 сеансів. Звузьте діапазон дат для повних результатів.",
    },
    details: {
      noUsageData: "Немає даних про використання для цього сеансу.",
      duration: "Тривалість",
      modelMix: "Розподіл моделей",
      filtered: "(відфільтровано)",
      close: "Закрити деталі сеансу",
      noTimeline: "Немає даних часової шкали",
      noDataInRange: "Немає даних у діапазоні",
      usageOverTime: "Використання з часом",
      reset: "Скинути",
      perTurn: "За хід",
      cumulative: "Накопичувально",
      turnRange: "Ходи {start}–{end} із {total}",
      assistantOutputTokens: "Токени виводу асистента",
      userToolInputTokens: "Токени вводу користувача + інструмента",
      tokensWrittenToCache: "Токени, записані в кеш",
      tokensReadFromCache: "Токени, прочитані з кешу",
      noContextData: "Немає даних контексту",
      systemPromptBreakdown: "Розподіл системного запиту",
      collapse: "Згорнути",
      collapseAll: "Згорнути все",
      expandAll: "Розгорнути все",
      baseContextPerMessage: "Базовий контекст на повідомлення",
      system: "Система",
      systemShort: "Сист.",
      skills: "Навички",
      tools: "Інструменти",
      files: "Файли",
      ofInput: "від вводу",
      of: "з",
      timelineFiltered: "часову шкалу відфільтровано",
      conversation: "Розмова",
      noMessages: "Немає повідомлень",
      tool: "Інструмент",
      toolResult: "Результат інструмента",
      hasTools: "Є інструменти",
      searchConversation: "Пошук у розмові",
      you: "Ви",
      noMessagesMatch: "Жодне повідомлення не відповідає фільтрам.",
    },
    mosaic: {
      title: "Активність за часом",
      subtitleEmpty: "Для оцінок потрібні часові мітки сеансів.",
      subtitle: "Оцінено за межами сеансів (перша/остання активність). Часовий пояс: {zone}.",
      noTimelineData: "Даних часової шкали ще немає.",
      dayOfWeek: "День тижня",
      midnight: "Опівніч",
      fourAm: "4 ранку",
      eightAm: "8 ранку",
      noon: "Полудень",
      fourPm: "4 дня",
      eightPm: "8 вечора",
      legend: "Низька → Висока щільність токенів",
      sun: "Нд",
      mon: "Пн",
      tue: "Вт",
      wed: "Ср",
      thu: "Чт",
      fri: "Пт",
      sat: "Сб",
    },
  },
  login: {
    subtitle: "Панель Gateway",
    passwordPlaceholder: "необов’язково",
  },
  chat: {
    disconnected: "Відключено від шлюзу.",
    refreshTitle: "Оновити дані чату",
    thinkingToggle: "Перемкнути показ мислення/роботи асистента",
    toolCallsToggle: "Перемкнути виклики інструментів і результати інструментів",
    focusToggle: "Перемкнути режим фокусу (сховати бічну панель і заголовок сторінки)",
    hideCronSessions: "Сховати сеанси Cron",
    showCronSessions: "Показати сеанси Cron",
    showCronSessionsHidden: "Показати сеанси Cron ({count} приховано)",
    onboardingDisabled: "Вимкнено під час налаштування",
  },
  languages: {
    en: "Англійська",
    zhCN: "简体中文 (спрощена китайська)",
    zhTW: "繁體中文 (традиційна китайська)",
    ptBR: "Português (бразильська португальська)",
    de: "Deutsch (німецька)",
    es: "Español (іспанська)",
    jaJP: "日本語 (японська)",
    ko: "한국어 (корейська)",
    fr: "Français (французька)",
    tr: "Türkçe (турецька)",
    uk: "Українська (українська)",
    id: "Bahasa Indonesia (індонезійська)",
    pl: "Polski (польська)",
  },
  cron: {
    summary: {
      enabled: "Увімкнено",
      yes: "Так",
      no: "Ні",
      jobs: "Завдання",
      nextWake: "Наступне пробудження",
      refreshing: "Оновлення...",
      refresh: "Оновити",
    },
    jobs: {
      title: "Завдання",
      subtitle: "Усі заплановані завдання, збережені у шлюзі.",
      shownOf: "Показано {shown} із {total}",
      searchJobs: "Пошук завдань",
      searchPlaceholder: "Назва, опис або агент",
      enabled: "Увімкнено",
      schedule: "Розклад",
      lastRun: "Останній запуск",
      all: "Усі",
      sort: "Сортування",
      nextRun: "Наступний запуск",
      recentlyUpdated: "Нещодавно оновлені",
      name: "Назва",
      direction: "Напрямок",
      ascending: "За зростанням",
      descending: "За спаданням",
      reset: "Скинути",
      noMatching: "Немає відповідних завдань.",
      loading: "Завантаження...",
      loadMore: "Завантажити більше завдань",
    },
    runs: {
      title: "Історія запусків",
      subtitleAll: "Останні запуски для всіх завдань.",
      subtitleJob: "Останні запуски для {title}.",
      scope: "Область",
      allJobs: "Усі завдання",
      selectedJob: "Вибране завдання",
      searchRuns: "Пошук запусків",
      searchPlaceholder: "Підсумок, помилка або завдання",
      newestFirst: "Спочатку новіші",
      oldestFirst: "Спочатку старіші",
      status: "Статус",
      delivery: "Доставка",
      clear: "Очистити",
      allStatuses: "Усі статуси",
      allDelivery: "Уся доставка",
      selectJobHint: "Виберіть завдання, щоб переглянути історію запусків.",
      noMatching: "Немає відповідних запусків.",
      loadMore: "Завантажити більше запусків",
      runStatusOk: "OK",
      runStatusError: "Помилка",
      runStatusSkipped: "Пропущено",
      runStatusUnknown: "Невідомо",
      deliveryDelivered: "Доставлено",
      deliveryNotDelivered: "Не доставлено",
      deliveryUnknown: "Невідомо",
      deliveryNotRequested: "Не запитувалось",
    },
    form: {
      editJob: "Редагувати завдання",
      newJob: "Нове завдання",
      updateSubtitle: "Оновіть вибране заплановане завдання.",
      createSubtitle: "Створіть заплановане пробудження або запуск агента.",
      required: "Обов’язково",
      requiredSr: "обов’язково",
      basics: "Основне",
      basicsSub: "Дайте назву, виберіть асистента та встановіть стан увімкнення.",
      fieldName: "Назва",
      description: "Опис",
      agentId: "ID агента",
      namePlaceholder: "Ранковий огляд",
      descriptionPlaceholder: "Необов’язковий контекст для цього завдання",
      agentPlaceholder: "main або ops",
      agentHelp: "Почніть вводити, щоб вибрати відомого агента, або введіть власного.",
      schedule: "Розклад",
      scheduleSub: "Керуйте тим, коли це завдання запускається.",
      every: "Кожні",
      at: "О",
      cronOption: "Cron",
      runAt: "Запустити о",
      unit: "Одиниця",
      minutes: "Хвилини",
      hours: "Години",
      days: "Дні",
      expression: "Вираз",
      expressionPlaceholder: "0 7 * * *",
      everyAmountPlaceholder: "30",
      timezoneOptional: "Часовий пояс (необов’язково)",
      timezonePlaceholder: "America/Los_Angeles",
      timezoneHelp:
        "Виберіть поширений часовий пояс або введіть будь-який дійсний часовий пояс IANA.",
      jitterHelp:
        "Потрібен джитер? Використовуйте Додатково → Вікно розподілу / Одиниця розподілу.",
      execution: "Виконання",
      executionSub: "Виберіть, коли пробуджувати та що має робити це завдання.",
      session: "Сеанс",
      main: "Основний",
      isolated: "Ізольований",
      sessionHelp: "Основний публікує системну подію. Ізольований виконує окремий хід агента.",
      wakeMode: "Режим пробудження",
      now: "Зараз",
      nextHeartbeat: "Наступний heartbeat",
      wakeModeHelp: "Зараз спрацьовує негайно. Наступний heartbeat чекає наступного циклу.",
      payloadKind: "Що слід запустити?",
      systemEvent: "Опублікувати повідомлення в основній часовій шкалі",
      agentTurn: "Запустити завдання асистента (ізольовано)",
      systemEventHelp:
        "Надсилає ваш текст до основної часової шкали шлюзу (добре для нагадувань/тригерів).",
      agentTurnHelp:
        "Запускає виконання асистента у власному сеансі з використанням вашого запиту.",
      timeoutSeconds: "Тайм-аут (секунди)",
      timeoutPlaceholder: "Необов’язково, наприклад 90",
      timeoutHelp:
        "Необов’язково. Залиште порожнім, щоб для цього запуску використовувалася типова поведінка тайм-ауту шлюзу.",
      mainTimelineMessage: "Повідомлення основної часової шкали",
      assistantTaskPrompt: "Запит для завдання асистента",
      deliverySection: "Доставка",
      deliverySub: "Виберіть, куди надсилати підсумки запусків.",
      resultDelivery: "Доставка результату",
      announceDefault: "Оголосити підсумок (типово)",
      webhookPost: "Webhook POST",
      noneInternal: "Немає (внутрішньо)",
      deliveryHelp: "Оголошення публікує підсумок у чаті. Немає — зберігає виконання внутрішнім.",
      webhookUrl: "URL webhook",
      channel: "Канал",
      webhookPlaceholder: "https://example.com/cron",
      channelHelp: "Виберіть, який підключений канал отримуватиме підсумок.",
      webhookHelp: "Надсилати підсумки запусків до endpoint webhook.",
      to: "Кому",
      toPlaceholder: "+1555... або id чату",
      toHelp: "Необов’язкове перевизначення одержувача (id чату, телефон або id користувача).",
      advanced: "Додатково",
      advancedHelp:
        "Необов’язкові перевизначення для гарантій доставки, джитера розкладу та керування моделлю.",
      deleteAfterRun: "Видалити після запуску",
      deleteAfterRunHelp: "Найкраще для одноразових нагадувань, які мають автоматично очищатися.",
      clearAgentOverride: "Очистити перевизначення агента",
      clearAgentHelp: "Примусово використовувати для цього завдання типового асистента шлюзу.",
      exactTiming: "Точний час (без розподілу)",
      exactTimingHelp: "Запускати точно за межами cron без розкиду.",
      staggerWindow: "Вікно розподілу",
      staggerUnit: "Одиниця розподілу",
      staggerPlaceholder: "30",
      seconds: "Секунди",
      model: "Модель",
      modelPlaceholder: "openai/gpt-5.2",
      modelHelp: "Почніть вводити, щоб вибрати відому модель, або введіть власну.",
      thinking: "Обмірковування",
      thinkingPlaceholder: "low",
      thinkingHelp:
        "Використовуйте запропонований рівень або введіть значення, специфічне для провайдера.",
      bestEffortDelivery: "Доставка best effort",
      bestEffortHelp: "Не позначати завдання як помилкове, якщо сама доставка не вдалася.",
      cantAddYet: "Поки що не можна додати завдання",
      fillRequired: "Заповніть обов’язкові поля нижче, щоб увімкнути надсилання.",
      fixFields: "Виправте {count} поле, щоб продовжити.",
      fixFieldsPlural: "Виправте {count} полів, щоб продовжити.",
      saving: "Збереження...",
      saveChanges: "Зберегти зміни",
      addJob: "Додати завдання",
      cancel: "Скасувати",
    },
    jobList: {
      allJobs: "усі завдання",
      selectJob: "(виберіть завдання)",
      enabled: "увімкнено",
      disabled: "вимкнено",
      edit: "Редагувати",
      clone: "Клонувати",
      disable: "Вимкнути",
      enable: "Увімкнути",
      run: "Запустити",
      history: "Історія",
      remove: "Видалити",
    },
    jobDetail: {
      system: "Система",
      prompt: "Запит",
      delivery: "Доставка",
      agent: "Агент",
    },
    jobState: {
      status: "Статус",
      next: "Наступний",
      last: "Останній",
    },
    runEntry: {
      noSummary: "Немає підсумку.",
      runAt: "Час запуску",
      openRunChat: "Відкрити чат запуску",
      next: "Наступний {rel}",
      due: "Має відбутися {rel}",
    },
    errors: {
      nameRequired: "Назва обов’язкова.",
      scheduleAtInvalid: "Введіть дійсні дату й час.",
      everyAmountInvalid: "Інтервал має бути більшим за 0.",
      cronExprRequired: "Вираз Cron є обов’язковим.",
      staggerAmountInvalid: "Розподіл має бути більшим за 0.",
      systemTextRequired: "Системний текст є обов’язковим.",
      agentMessageRequired: "Повідомлення агента є обов’язковим.",
      timeoutInvalid: "Якщо задано, тайм-аут має бути більшим за 0 секунд.",
      webhookUrlRequired: "URL webhook є обов’язковим.",
      webhookUrlInvalid: "URL webhook має починатися з http:// або https://.",
      invalidRunTime: "Недійсний час запуску.",
      invalidIntervalAmount: "Недійсне значення інтервалу.",
      cronExprRequiredShort: "Потрібен вираз Cron.",
      invalidStaggerAmount: "Недійсне значення розподілу.",
      systemEventTextRequired: "Потрібен текст системної події.",
      agentMessageRequiredShort: "Потрібне повідомлення агента.",
      nameRequiredShort: "Потрібна назва.",
    },
  },
};
