import type { Translations } from "./types";

export const uk: Translations = {
  common: {
    save: "Зберегти",
    saving: "Збереження...",
    cancel: "Скасувати",
    close: "Закрити",
    confirm: "Підтвердити",
    delete: "Видалити",
    refresh: "Оновити",
    retry: "Повторити",
    search: "Пошук...",
    loading: "Завантаження...",
    create: "Створити",
    creating: "Створення...",
    set: "Встановити",
    replace: "Замінити",
    clear: "Очистити",
    live: "Наживо",
    off: "Вимкнено",
    enabled: "увімкнено",
    disabled: "вимкнено",
    active: "активний",
    inactive: "неактивний",
    unknown: "невідомо",
    untitled: "Без назви",
    none: "Немає",
    form: "Форма",
    noResults: "Немає результатів",
    of: "з",
    page: "Сторінка",
    msgs: "повідомл.",
    tools: "інструменти",
    match: "збіг",
    other: "Інше",
    configured: "налаштовано",
    removed: "видалено",
    failedToToggle: "Не вдалося перемкнути",
    failedToRemove: "Не вдалося видалити",
    failedToReveal: "Не вдалося показати",
    collapse: "Згорнути",
    expand: "Розгорнути",
    general: "Загальне",
    messaging: "Обмін повідомленнями",
    pluginLoadFailed:
      "Не вдалося завантажити скрипт цього плагіна. Перевірте вкладку Network (dashboard-plugins/…) та шлях до плагінів на сервері.",
    pluginNotRegistered:
      "Скрипт плагіна не викликав register(), або у скрипті сталася помилка. Відкрийте консоль браузера, щоб побачити деталі.",
  },

  app: {
    brand: "Hermes Agent",
    brandShort: "HA",
    closeNavigation: "Закрити навігацію",
    closeModelTools: "Закрити модель та інструменти",
    footer: {
      org: "Nous Research",
    },
    activeSessionsLabel: "Активні сесії:",
    gatewayStatusLabel: "Стан шлюзу:",
    gatewayStrip: {
      failed: "Помилка запуску",
      off: "Вимкнено",
      running: "Працює",
      starting: "Запускається",
      stopped: "Зупинено",
    },
    nav: {
      analytics: "Аналітика",
      chat: "Чат",
      config: "Конфігурація",
      cron: "Cron",
      documentation: "Документація",
      keys: "Ключі",
      logs: "Журнали",
      models: "Моделі",
      profiles: "профілі: мульти-агенти",
      plugins: "Плагіни",
      sessions: "Сесії",
      skills: "Навички",
    },
    modelToolsSheetSubtitle: "та інструменти",
    modelToolsSheetTitle: "Модель",
    navigation: "Навігація",
    openDocumentation: "Відкрити документацію в новій вкладці",
    openNavigation: "Відкрити навігацію",
    pluginNavSection: "Плагіни",
    sessionsActiveCount: "{count} активних",
    statusOverview: "Огляд стану",
    system: "Система",
    webUi: "Web UI",
  },

  status: {
    actionFailed: "Дія не вдалася",
    actionFinished: "Завершено",
    actions: "Дії",
    agent: "Агент",
    activeSessions: "Активні сесії",
    connected: "Підключено",
    connectedPlatforms: "Підключені платформи",
    disconnected: "Відключено",
    error: "Помилка",
    failed: "Не вдалося",
    gateway: "Шлюз",
    gatewayFailedToStart: "Не вдалося запустити шлюз",
    lastUpdate: "Останнє оновлення",
    noneRunning: "Немає",
    notRunning: "Не запущено",
    pid: "PID",
    platformDisconnected: "відключено",
    platformError: "помилка",
    recentSessions: "Останні сесії",
    restartGateway: "Перезапустити шлюз",
    restartingGateway: "Перезапуск шлюзу…",
    running: "Працює",
    runningRemote: "Працює (віддалено)",
    startFailed: "Помилка запуску",
    starting: "Запускається",
    startedInBackground: "Запущено у фоні — перевірте журнали для прогресу",
    stopped: "Зупинено",
    updateHermes: "Оновити Hermes",
    updatingHermes: "Оновлення Hermes…",
    waitingForOutput: "Очікування виводу…",
  },

  sessions: {
    title: "Сесії",
    history: "Історія",
    overview: "Огляд",
    searchPlaceholder: "Пошук у вмісті повідомлень...",
    noSessions: "Поки немає сесій",
    noMatch: "Жодна сесія не відповідає вашому пошуку",
    startConversation: "Почніть розмову, щоб побачити її тут",
    noMessages: "Немає повідомлень",
    untitledSession: "Сесія без назви",
    deleteSession: "Видалити сесію",
    confirmDeleteTitle: "Видалити сесію?",
    confirmDeleteMessage:
      "Це назавжди видалить розмову та всі її повідомлення. Цю дію не можна скасувати.",
    sessionDeleted: "Сесію видалено",
    failedToDelete: "Не вдалося видалити сесію",
    deleteEmpty: "Видалити порожні",
    deleteEmptyConfirmTitle: "Видалити порожні сесії?",
    deleteEmptyConfirmMessage:
      "Це остаточно видалить {count} сесій без повідомлень. Активні та архівні сесії пропускаються. Цю дію неможливо скасувати.",
    emptySessionsDeleted: "Видалено порожніх сесій: {count}",
    failedToDeleteEmpty: "Не вдалося видалити порожні сесії",
    selectSession: "Вибрати сесію",
    selectAllOnPage: "Вибрати всі на цій сторінці",
    clearSelection: "Скинути вибір",
    selectedCount: "Вибрано: {count}",
    deleteSelected: "Видалити {count}",
    deleteSelectedConfirmTitle: "Видалити {count} сесій?",
    deleteSelectedConfirmMessage:
      "Це назавжди видалить {count} вибраних сесій і всі їхні повідомлення. Цю дію неможливо скасувати.",
    selectedSessionsDeleted: "Видалено сесій: {count}",
    failedToDeleteSelected: "Не вдалося видалити вибрані сесії",
    resumeInChat: "Продовжити в чаті",
    newChat: "Новий чат",
    previousPage: "Попередня сторінка",
    nextPage: "Наступна сторінка",
    roles: {
      user: "Користувач",
      assistant: "Асистент",
      system: "Система",
      tool: "Інструмент",
    },
  },

  analytics: {
    period: "Період:",
    totalTokens: "Усього токенів",
    totalSessions: "Усього сесій",
    apiCalls: "Виклики API",
    dailyTokenUsage: "Щоденне використання токенів",
    dailyBreakdown: "Щоденна розбивка",
    perModelBreakdown: "Розбивка за моделями",
    topSkills: "Топ навичок",
    skill: "Навичка",
    loads: "Агент завантажив",
    edits: "Агент керує",
    lastUsed: "Останнє використання",
    input: "Вхід",
    output: "Вихід",
    total: "Усього",
    noUsageData: "Немає даних про використання за цей період",
    startSession: "Почніть сесію, щоб побачити аналітику тут",
    date: "Дата",
    model: "Модель",
    tokens: "Токени",
    perDayAvg: "/день у сер.",
    acrossModels: "по {count} моделях",
    inOut: "{input} вх. / {output} вих.",
  },

  models: {
    modelsUsed: "Використано моделей",
    estimatedCost: "Орієнт. вартість",
    tokens: "токени",
    sessions: "сесії",
    avgPerSession: "сер./сесію",
    apiCalls: "виклики API",
    toolCalls: "виклики інструментів",
    noModelsData: "Немає даних про використання моделей за цей період",
    startSession: "Почніть сесію, щоб побачити дані моделей тут",
  },

  logs: {
    title: "Журнали",
    autoRefresh: "Автооновлення",
    file: "Файл",
    level: "Рівень",
    component: "Компонент",
    lines: "Рядки",
    noLogLines: "Записів журналу не знайдено",
  },

  cron: {
    confirmDeleteMessage:
      "Це видаляє завдання з розкладу. Цю дію не можна скасувати.",
    confirmDeleteTitle: "Видалити заплановане завдання?",
    newJob: "Нове Cron-завдання",
    nameOptional: "Назва (необов'язково)",
    namePlaceholder: "напр. Щоденне зведення",
    prompt: "Запит",
    promptPlaceholder: "Що агент має робити при кожному запуску?",
    schedule: "Розклад (cron-вираз)",
    schedulePlaceholder: "0 9 * * *",
    scheduleMode: "Розклад",
    scheduleModes: {
      interval: "Повторюваний інтервал",
      daily: "Щодня",
      weekly: "Щотижня",
      monthly: "Щомісяця",
      once: "Один раз",
      custom: "Користувацьке (cron-вираз)",
      intervalEvery: "Кожні",
      intervalUnit: "Одиниці",
      unitMinutes: "хвилин",
      unitHours: "годин",
      unitDays: "днів",
      timeOfDay: "Час доби",
      weekdays: "Дні тижня",
      weekdaysShort: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
      dayOfMonth: "День місяця",
      onceAt: "Виконати о",
      customLabel: "Cron-вираз",
      customPlaceholder: "0 9 * * *",
      customHint:
        "П'ятиполевий cron-вираз (хвилина, година, день, місяць, день тижня).",
      preview: "Надсилається як",
      previewEmpty: "(не заповнено)",
    },
    scheduleDescribe: {
      none: "—",
      everyMinutes: "Кожні {n} хв",
      everyHours: "Кожні {n} год",
      everyDays: "Кожні {n} дн",
      dailyAt: "Щодня о {time}",
      weeklyAt: "Щотижня у {days} о {time}",
      monthlyAt: "Щомісяця {day} числа о {time}",
      onceAt: "Один раз {time}",
    },
    deliverTo: "Надіслати на",
    scheduledJobs: "Заплановані завдання",
    noJobs: "Cron-завдань не налаштовано. Створіть одне вище.",
    last: "Останнє",
    next: "Наступне",
    pause: "Призупинити",
    resume: "Відновити",
    triggerNow: "Запустити зараз",
    delivery: {
      local: "Локально",
      telegram: "Telegram",
      discord: "Discord",
      slack: "Slack",
      email: "Email",
    },
  },

  profiles: {
    newProfile: "Новий профіль",
    name: "Назва",
    namePlaceholder: "напр. coder, writer тощо.",
    nameRequired: "Назва обов'язкова",
    nameRule:
      "Лише малі літери, цифри, _ та -; має починатися з літери або цифри; до 64 символів.",
    invalidName: "Недопустима назва профілю",
    cloneFrom: "Клонувати з профілю",
    cloneFromNone: "Жоден (порожній)",
    allProfiles: "Профілі",
    noProfiles: "Профілів не знайдено.",
    defaultBadge: "за замовчуванням",
    hasEnv: "env",
    model: "Модель",
    skills: "Навички",
    rename: "Перейменувати",
    editSoul: "Редагувати SOUL.md",
    soulSection: "SOUL.md (особистість / системний запит)",
    soulPlaceholder: "# Як цей агент має поводитися…",
    saveSoul: "Зберегти SOUL",
    soulSaved: "SOUL.md збережено",
    openInTerminal: "Скопіювати CLI-команду",
    commandCopied: "Скопійовано в буфер обміну",
    copyFailed: "Не вдалося скопіювати",
    confirmDeleteTitle: "Видалити профіль?",
    confirmDeleteMessage:
      "Це назавжди видаляє профіль '{name}' — конфігурацію, ключі, спогади, сесії, навички, cron-завдання. Не можна скасувати.",
    created: "Створено",
    deleted: "Видалено",
    renamed: "Перейменовано",
  },

  pluginsPage: {
    contextEngineLabel: "Контекстний рушій",
    dashboardSlots: "Слоти панелі",
    disableRuntime: "Вимкнути",
    enableAfterInstall: "Увімкнути після встановлення",
    enableRuntime: "Увімкнути",
    forceReinstall: "Примусово перевстановити (спершу видалити наявну теку)",
    headline:
      "Знаходьте, встановлюйте, вмикайте та оновлюйте плагіни Hermes (паритет з `hermes plugins`).",
    identifierLabel: "Git URL або owner/repo",
    inactive: "неактивний",
    installBtn: "Встановити",
    installHeading: "Встановити з GitHub / Git URL",
    installHint: "Використовуйте скорочення owner/repo або повну https:// чи git@ URL для клонування.",
    memoryProviderLabel: "Постачальник пам'яті",
    missingEnvWarn: "Встановіть їх у Keys, перш ніж плагін зможе працювати:",
    noDashboardTab: "Немає вкладки панелі",
    openTab: "Відкрити",
    orphanHeading: "Розширення лише для панелі (без відповідного agent plugin.yaml)",
    pluginListHeading: "Встановлені плагіни",
    providerDefaults: "вбудований / за замовчуванням",
    providersHeading: "Плагіни постачальників часу виконання",
    providersHint:
      "Записує memory.provider (порожньо = вбудований) та context.engine у config.yaml. Набуває чинності в наступній сесії.",
    refreshDashboard: "Перескан розширень панелі",
    removeConfirm: "Видалити цей плагін з ~/.hermes/plugins/?",
    removeHint: "Видаляти можна лише плагіни, встановлені користувачем у ~/.hermes/plugins.",
    rescanHeading: "Реєстр SPA-плагінів",
    rescanHint: "Скануйте після додавання файлів на диск, щоб бічна панель підхопила нові маніфести.",
    runtimeHeading: "Час виконання шлюзу (YAML-плагіни)",
    saveProviders: "Зберегти налаштування постачальників",
    savedProviders: "Налаштування постачальників збережено.",
    sourceBadge: "Джерело",
    authRequired: "Потрібна автентифікація",
    authRequiredHint: "Виконайте цю команду, щоб автентифікуватися:",
    updateGit: "Git pull",
    versionBadge: "Версія",
    showInSidebar: "Показати у бічній панелі",
    hideFromSidebar: "Сховати з бічної панелі",
  },

  skills: {
    title: "Навички",
    searchPlaceholder: "Пошук навичок та наборів інструментів...",
    enabledOf: "{enabled}/{total} увімкнено",
    all: "Усі",
    categories: "Категорії",
    filters: "Фільтри",
    noSkills: "Навичок не знайдено. Навички завантажуються з ~/.hermes/skills/",
    noSkillsMatch: "Жодна навичка не відповідає вашому пошуку чи фільтру.",
    skillCount: "{count} навичок",
    resultCount: "{count} результатів",
    noDescription: "Опис відсутній.",
    toolsets: "Набори інструментів",
    toolsetLabel: "Набір {name}",
    noToolsetsMatch: "Жоден набір інструментів не відповідає пошуку.",
    setupNeeded: "Потрібне налаштування",
    disabledForCli: "Вимкнено для CLI",
    more: "+ще {count}",
  },

  config: {
    configPath: "~/.hermes/config.yaml",
    filters: "Фільтри",
    sections: "Розділи",
    exportConfig: "Експортувати конфігурацію як JSON",
    importConfig: "Імпортувати конфігурацію з JSON",
    resetDefaults: "Скинути до значень за замовчуванням",
    resetScopeTooltip: "Скинути {scope} до значень за замовчуванням",
    confirmResetScope: "Скинути всі налаштування {scope} до значень за замовчуванням? Це лише оновлює форму — зміни не записуються до config.yaml, доки ви не натиснете «Зберегти».",
    resetScopeToast: "{scope} скинуто до значень за замовчуванням — перегляньте та збережіть, щоб застосувати",
    rawYaml: "Сирий YAML-конфіг",
    searchResults: "Результати пошуку",
    fields: "поле(ів)",
    noFieldsMatch: 'Немає полів, що відповідають \"{query}\"',
    configSaved: "Конфігурацію збережено",
    yamlConfigSaved: "YAML-конфігурацію збережено",
    failedToSave: "Не вдалося зберегти",
    failedToSaveYaml: "Не вдалося зберегти YAML",
    failedToLoadRaw: "Не вдалося завантажити сирий конфіг",
    configImported: "Конфігурацію імпортовано — перегляньте та збережіть",
    invalidJson: "Недійсний файл JSON",
    categories: {
      general: "Загальне",
      agent: "Агент",
      terminal: "Термінал",
      display: "Відображення",
      delegation: "Делегування",
      memory: "Пам'ять",
      compression: "Стиснення",
      security: "Безпека",
      browser: "Браузер",
      voice: "Голос",
      tts: "Синтез мовлення",
      stt: "Розпізнавання мовлення",
      logging: "Журналювання",
      discord: "Discord",
      auxiliary: "Додатково",
    },
  },

  env: {
    changesNote: "Зміни одразу зберігаються на диск. Активні сесії автоматично підхоплюють нові ключі.",
    confirmClearMessage:
      "Збережене значення цієї змінної буде видалено з вашого .env-файлу. Цю дію не можна скасувати з UI.",
    confirmClearTitle: "Очистити цей ключ?",
    description: "Керуйте API-ключами та секретами, що зберігаються в",
    hideAdvanced: "Сховати розширене",
    showAdvanced: "Показати розширене",
    showLess: "Показати менше",
    showMore: "Показати більше",
    llmProviders: "Постачальники LLM",
    providersConfigured: "Налаштовано {configured} з {total} постачальників",
    getKey: "Отримати ключ",
    notConfigured: "{count} не налаштовано",
    notSet: "Не задано",
    keysCount: "{count} ключ(ів)",
    enterValue: "Введіть значення...",
    replaceCurrentValue: "Замінити поточне значення ({preview})",
    showValue: "Показати справжнє значення",
    hideValue: "Сховати значення",
    customTitle: "Власні ключі",
    customHint: "Довільні змінні середовища, збережені у вашому .env, які Hermes не розпізнає. Використовуйте їх для впровадження змінних середовища для навичок, серверів MCP або власних інструментів.",
    customConfigured: "Задано власних ключів: {count}",
    addCustomKey: "Додати власний ключ",
    customKeyName: "Назва змінної",
    customKeyNamePlaceholder: "напр. MY_SERVICE_API_KEY",
    add: "Додати",
    invalidKeyName: "Використовуйте лише літери, цифри та підкреслення (має починатися з літери або підкреслення).",
  },

  oauth: {
    title: "Входи постачальників (OAuth)",
    providerLogins: "Входи постачальників (OAuth)",
    description:
      "Підключено {connected} з {total} постачальників OAuth. Використовуйте «Увійти» для процесів, підтримуваних панеллю; команди CLI залишаються доступними для зовнішнього або резервного налаштування.",
    connected: "Підключено",
    expired: "Прострочено",
    notConnected: "Не підключено. Використовуйте «Увійти», якщо доступно, або виконайте {command} у терміналі.",
    runInTerminal: "у терміналі.",
    noProviders: "Не виявлено постачальників із підтримкою OAuth.",
    login: "Увійти",
    disconnect: "Відключити",
    managedExternally: "Керується ззовні",
    copied: "Скопійовано ✓",
    copyCode: "Скопіювати код",
    copyFailed: "Не вдалося скопіювати автоматично. Виділіть код і скопіюйте його вручну.",
    cli: "Копіювати",
    copyCliCommand: "Скопіювати CLI-команду (для зовнішнього / резервного варіанту)",
    connect: "Підключити",
    sessionExpires: "Сесія завершиться через {time}",
    initiatingLogin: "Запуск процесу входу…",
    exchangingCode: "Обмін коду на токени…",
    connectedClosing: "Підключено! Закриття…",
    loginFailed: "Помилка входу.",
    sessionExpired: "Сесія прострочена. Натисніть «Повторити», щоб розпочати новий вхід.",
    reOpenAuth: "Знову відкрити сторінку авторизації",
    reOpenVerification: "Знову відкрити сторінку перевірки",
    submitCode: "Надіслати код",
    pasteCode: "Вставте код авторизації (з суфіксом #state теж нормально)",
    waitingAuth: "Очікування на вашу авторизацію в браузері…",
    enterCodePrompt: "Відкрилася нова вкладка. Якщо буде запит, введіть цей код:",
    pkceStep1: "Відкрилася нова вкладка з claude.ai. Увійдіть та натисніть Authorize.",
    pkceStep2: "Скопіюйте код авторизації, що відображається після авторизації.",
    pkceStep3: "Вставте його нижче та надішліть.",
    flowLabels: {
      pkce: "Вхід через браузер (PKCE)",
      device_code: "Код пристрою",
      external: "Зовнішній CLI",
    },
    expiresIn: "завершується через {time}",
  },

  language: {
    switchTo: "Змінити мову",
  },

  theme: {
    title: "Тема",
    switchTheme: "Змінити тему",
  },

  achievements: {
    hero: {
      kicker: "Agentic Gamerscore",
      title: "Hermes Achievements",
      subtitle:
        "Колекційні значки Hermes, отримані з реальної історії сеансів. Відомі, але ще не виконані досягнення показані як Виявлені; Секретні досягнення залишаються прихованими, доки не з'явиться перший відповідний сигнал.",
      scan_subtitle:
        "Сканування історії сеансів Hermes. Перше сканування на великих історіях може тривати 5–10 секунд.",
    },
    actions: {
      rescan: "Повторне сканування",
    },
    stats: {
      unlocked: "Розблоковано",
      unlocked_hint: "отримані значки",
      discovered: "Виявлено",
      discovered_hint: "відомі, ще не отримані",
      secrets: "Секрети",
      secrets_hint: "приховані до першого сигналу",
      highest_tier: "Найвищий рівень",
      highest_tier_hint: "Copper → Silver → Gold → Diamond → Olympian",
      latest: "Останнє",
      latest_hint_empty: "запускайте Hermes частіше",
      none_yet: "Поки немає",
    },
    state: {
      unlocked: "Розблоковано",
      discovered: "Виявлено",
      secret: "Секрет",
    },
    tier: {
      target: "Ціль {tier}",
      hidden: "Приховано",
      complete: "Завершено",
      objective: "Завдання",
    },
    progress: {
      hidden: "приховано",
    },
    scan: {
      building_headline: "Побудова профілю досягнень…",
      building_detail:
        "Читання сеансів, викликів інструментів, метаданих моделей і стану розблокування.",
      starting_headline: "Запуск сканування досягнень…",
      progress_detail:
        "Проскановано {scanned} з {total} сеансів · {pct}%. Значки розблоковуються в міру надходження історії.",
      idle_detail:
        "Читання сеансів, викликів інструментів, метаданих моделей і стану розблокування. Значки з'являються тут у міру розблокування.",
    },
    guide: {
      tiers_header: "Рівні",
      secret_header: "Секретні досягнення",
      secret_body:
        "Секрети приховують свій точний тригер. Щойно Hermes побачить пов'язаний сигнал, картка стає Виявленою та показує свою умову.",
      scan_status_header: "Стан сканування",
      scan_status_body:
        "Hermes одноразово сканує локальну історію, а потім картки з'являться автоматично. Якщо це триває кілька секунд — нічого не зависло.",
      what_scanned_header: "Що сканується",
      what_scanned_body:
        "Сеанси, виклики інструментів, метадані моделей, помилки, досягнення та локальний стан розблокування.",
    },
    card: {
      share_title: "Поділитися цим досягненням",
      share_label: "Поділитися {name}",
      share_text: "Поділитися",
      how_to_reveal: "Як розкрити",
      what_counts: "Що зараховується",
      evidence_label: "Доказ",
      evidence_session_fallback: "сеанс",
      no_evidence: "Доказів поки немає",
    },
    latest: {
      header: "Нещодавні розблокування",
    },
    empty: {
      no_secrets_header: "У цьому скануванні не залишилося прихованих секретів.",
      no_secrets_body:
        "Підказка: секрети зазвичай починаються з незвичних збоїв або шаблонів досвідчених користувачів — конфлікти портів, стіни дозволів, відсутні змінні середовища, помилки YAML, колізії Docker, відкат/контрольні точки, влучання в кеш або дрібні виправлення після купи червоного тексту.",
    },
    filters: {
      all_categories: "Усі",
      visibility_all: "усі",
      visibility_unlocked: "розблоковано",
      visibility_discovered: "виявлено",
      visibility_secret: "секрет",
    },
    share: {
      dialog_label: "Поділитися досягненням",
      header: "Поділитися: {name}",
      close: "Закрити",
      rendering: "Рендеринг…",
      card_alt: "Картка для поширення {name}",
      error_generic: "Щось пішло не так.",
      x_title: "Відкриває X із попередньо заповненим дописом",
      x_button: "Поділитися в X",
      copy_title: "Скопіюйте зображення, щоб вставити у свій допис",
      copy_button: "Копіювати зображення",
      copied: "Скопійовано ✓",
      download_button: "Завантажити PNG",
      hint:
        "«Поділитися в X» відкриває попередньо заповнений допис у новій вкладці. Якщо хочете прикріпити значок 1200×630 — спочатку натисніть «Копіювати зображення»: X дозволить вставити його прямо в редактор твіта. «Завантажити PNG» збереже файл для використання будь-де.",
      clipboard_unsupported:
        "Цей браузер не підтримує копіювання зображень у буфер обміну — використайте «Завантажити».",
      tweet_text: "Just unlocked {tier_part}\"{name}\" in Hermes Agent ☤",
    },
  },
  kanban: {
    loading: "Завантаження дошки Kanban…",
    loadFailed: "Не вдалося завантажити дошку Kanban: ",
    loadFailedHint:
      "Бекенд автоматично створює kanban.db під час першого читання. Якщо помилка не зникає, перевірте журнали панелі.",
    board: "Дошка",
    newBoard: "+ Нова дошка",
    newBoardTitle: "Нова дошка",
    newBoardDescription:
      "Дошки дозволяють розділяти непов'язані потоки роботи — по одній на проєкт, репозиторій або домен. Воркери на одній дошці ніколи не бачать задач іншої дошки.",
    slug: "Slug",
    slugHint: "— рядкові літери, дефіси, напр. atm10-server",
    displayName: "Відображувана назва",
    displayNameHint: "(необов'язково)",
    description: "Опис",
    descriptionHint: "(необов'язково)",
    icon: "Іконка",
    iconHint: "(один символ або емодзі)",
    switchAfterCreate: "Перейти на цю дошку після створення",
    cancel: "Скасувати",
    creating: "Створення…",
    createBoard: "Створити дошку",
    search: "Пошук",
    filterCards: "Фільтрувати картки…",
    tenant: "Орендар",
    allTenants: "Усі орендарі",
    assignee: "Виконавець",
    allProfiles: "Усі профілі",
    showArchived: "Показати архівовані",
    lanesByProfile: "Доріжки за профілем",
    nudgeDispatcher: "Підштовхнути диспетчер",
    refresh: "Оновити",
    selected: "вибрано",
    complete: "Завершити",
    archive: "Архівувати",
    apply: "Застосувати",
    clear: "Очистити",
    createTask: "Створити задачу в цьому стовпці",
    noTasks: "— немає задач —",
    unassigned: "не призначено",
    untitled: "(без назви)",
    loadingDetail: "Завантаження…",
    addComment: "Додати коментар… (Enter для надсилання)",
    comment: "Коментар",
    status: "Статус",
    workspace: "Робоча область",
    skills: "Навички",
    createdBy: "Створив",
    result: "Результат",
    comments: "Коментарі",
    events: "Події",
    runHistory: "Історія запусків",
    workerLog: "Журнал воркера",
    loadingLog: "Завантаження журналу…",
    noWorkerLog:
      "— журналу воркера ще немає (задачу не запущено або журнал ротаційно видалено) —",
    noDescription: "— немає опису —",
    noComments: "— немає коментарів —",
    edit: "редагувати",
    save: "Зберегти",
    dependencies: "Залежності",
    parents: "Батьки:",
    children: "Нащадки:",
    none: "немає",
    addParent: "— додати батька —",
    addChild: "— додати нащадка —",
    removeDependency: "Видалити залежність",
    block: "Заблокувати",
    unblock: "Розблокувати",
    notifyHomeChannels: "Повідомити домашні канали",
    diagnostics: "Діагностика",
    hide: "Приховати",
    show: "Показати",
    attention: "Увага",
    tasksNeedAttention: "задач потребують уваги",
    taskNeedsAttention: "1 задача потребує уваги",
    diagnostic: "діагностика",
    open: "Відкрити",
    close: "Закрити (Esc)",
    reassignTo: "Перепризначити на:",
    copied: "Скопійовано",
    copyCommand: "Скопіювати команду в буфер обміну",
    reclaim: "Повернути",
    reassign: "Перепризначити",
    renderingError: "На вкладці Kanban сталася помилка рендерингу",
    reloadView: "Перезавантажити вигляд",
    wsAuthFailed:
      "Помилка автентифікації WebSocket — перезавантажте сторінку, щоб оновити токен сесії.",
    markDone: "Позначити {n} задач(у) як виконані?",
    markArchived: "Архівувати {n} задач(у)?",
    warning: "Попередження",
    phantomIds: "Фантомні id:",
    active: "активна",
    ended: "завершена",
    noProfile: "(немає профілю)",
    showAllAttempts: "Показати всі спроби",
    sendingUpdates: "Надсилання оновлень до",
    sendNotifications: "Надсилати сповіщення completed / blocked / gave_up до",
    archiveBoardConfirm:
      "Архівувати дошку «{name}»? Її буде переміщено до boards/_archived/, тож пізніше її можна відновити. Задачі цієї дошки більше не з'являтимуться в інтерфейсі.",
    archiveBoardTitle: "Архівувати цю дошку",
    boardSwitcherHint: "Дошки дозволяють розділяти непов'язані потоки роботи",
    taskCreatedWarning: "Задачу створено, але: ",
    moveFailed: "Переміщення не вдалося: ",
    bulkFailed: "Масова дія: ",
    completionBlockedHallucination: "⚠ Завершення заблоковано — фантомні id карток",
    suspectedHallucinatedReferences: "⚠ Текст посилався на фантомні id карток",
    pickProfileFirst: "Спочатку виберіть профіль.",
    unblockedMessage: "{id} розблоковано. Задача готова до наступного тіку.",
    unblockFailed: "Розблокування не вдалося: ",
    reclaimedMessage: "{id} повернуто. Задача знову готова.",
    reclaimFailed: "Повернення не вдалося: ",
    reassignedMessage: "{id} перепризначено на {profile}.",
    reassignFailed: "Перепризначення не вдалося: ",
    selectForBulk: "Вибрати для масових дій",
    clickToEdit: "Клікніть, щоб редагувати",
    clickToEditAssignee: "Клікніть, щоб редагувати виконавця",
    emptyAssignee: "(порожньо = зняти призначення)",
    columnLabels: {
      triage: "Сортування",
      todo: "До виконання",
      scheduled: "Заплановано",
      ready: "Готово",
      running: "У роботі",
      blocked: "Заблоковано",
      done: "Виконано",
      archived: "Архів",
    },
    columnHelp: {
      triage: "Сирі ідеї — специфікатор деталізує специфікацію",
      todo: "Очікує на залежності або не призначено",
      scheduled: "Очікує на відому затримку в часі або заплановане продовження",
      ready: "Залежності задоволені; призначте профіль для диспетчеризації",
      running: "Захоплено воркером — у роботі",
      blocked: "Воркер запитав втручання людини",
      done: "Завершено",
      archived: "Архівовано",
    },
    confirmDone:
      "Позначити цю задачу як виконану? Захоплення воркера буде звільнено, а залежні нащадки стануть готовими.",
    confirmArchive:
      "Архівувати цю задачу? Вона зникне з типового вигляду дошки.",
    confirmBlocked:
      "Позначити цю задачу як заблоковану? Захоплення воркера буде звільнено.",
    completionSummary:
      "Підсумок завершення для {label}. Зберігається як result задачі.",
    completionSummaryRequired:
      "Підсумок завершення обов'язковий перед позначенням задачі виконаною.",
    triagePlaceholder: "Чорнова ідея — ШІ її специфікує…",
    taskTitlePlaceholder: "Назва нової задачі…",
    specifier: "специфікатор",
    assigneePlaceholder: "виконавець",
    priority: "Пріоритет",
    skillsPlaceholder:
      "навички (необов'язково, через кому): translation, github-code-review",
    noParent: "— без батька —",
    workspacePathDir: "шлях робочої області (обов'язково, напр. ~/projects/my-app)",
    workspacePathOptional:
      "шлях робочої області (необов'язково, виводиться з виконавця, якщо порожньо)",
    logTruncated: "(показано останні 100 KB — повний журнал у ",
    logAt: ")",
  },
};
