{
  "title": "Боты",
  "subtitle": "Управление адаптерами платформ для подключения к мессенджерам",
  "adapters": "Адаптеры платформ",
  "addAdapter": "Создать бота",
  "emptyText": "Боты не настроены. Нажмите «Создать бота», чтобы начать.",
  "viewWebhook": "Показать Webhook",
  "webhookCopied": "URL скопирован в буфер обмена",
  "webhookCopyFailed": "Не удалось скопировать, сделайте это вручную",
  "webhookDialog": {
    "title": "Адрес Webhook",
    "description": "Используйте этот адрес для обратных вызовов. Убедитесь, что ваш AstrBot доступен из интернета. Рекомендуется указать «Внешний URL для Webhook» в Конфигурация -> Система.",
    "close": "Закрыть"
  },
  "details": {
    "adapterType": "Тип адаптера",
    "token": "Токен",
    "description": "Описание"
  },
  "logs": {
    "title": "Логи платформы",
    "expand": "Развернуть",
    "collapse": "Свернуть"
  },
  "dialog": {
    "add": "Добавить",
    "edit": "Изменить",
    "adapter": "Бот",
    "refresh": "Обновить",
    "cancel": "Отмена",
    "save": "Сохранить",
    "addPlatform": "Создать бота",
    "connectTitle": "Подключение к {name}",
    "viewTutorial": "Открыть руководство",
    "noTemplates": "Шаблоны не найдены",
    "idConflict": {
      "title": "Конфликт ID",
      "message": "Бот с ID «{id}» уже существует. Пожалуйста, используйте уникальный ID.",
      "confirm": "Понятно"
    },
    "securityWarning": {
      "title": "Безопасность",
      "aiocqhttpTokenMissing": "Для защиты соединения крайне рекомендуется установить ws_reverse_token. Работа без токена небезопасна.",
      "learnMore": "Подробнее"
    },
    "invalidPlatformId": "ID платформы не может содержать символы ':' или '!'."
  },
  "createDialog": {
    "step1Title": "Выберите мессенджер",
    "step1Hint": "Куда вы хотите подключить бота? (QQ, Telegram, Discord, WeChat и др.)",
    "platformTypeLabel": "Платформа",
    "configFileTitle": "Файл конфигурации",
    "optional": "опционально",
    "configHint": "Как настроить бота? Конфиг содержит модель, персонажа, базу знаний и набор плагинов.",
    "configDefaultHint": "По умолчанию используется профиль «default». Вы сможете изменить его позже.",
    "useExistingConfig": "Использовать существующий конфиг",
    "selectConfigLabel": "Выберите профиль",
    "createNewConfig": "Создать новый профиль",
    "newConfigNameLabel": "Имя нового профиля",
    "newConfigTitle": "Создание нового профиля",
    "newConfigLoadFailed": "Не удалось загрузить шаблон конфигурации",
    "addRouteRule": "Добавить правило маршрутизации",
    "viewMode": "Просмотр",
    "editMode": "Редактирование",
    "noRouteRules": "Правила маршрутизации не заданы, будет использоваться профиль по умолчанию",
    "sessionIdPlaceholder": "ID сессии или *",
    "routeSource": {
      "selectPlaceholder": "Выберите источник сессии",
      "noData": "Для этого бота пока нет унифицированных источников сообщений. Они появятся здесь после первого сообщения боту на соответствующей платформе.",
      "switchToKnown": "Переключиться на выбор источника",
      "switchToManual": "Переключиться на ручной ввод"
    },
    "allSessions": "Все сессии",
    "configMissing": "Файл конфигурации не найден",
    "routeHint": "* При получении сообщения AstrBot ищет первое совпадение в списке сверху вниз. Используйте слэш-команду /sid, чтобы узнать ID текущей сессии. Если совпадений нет, используется профиль по умолчанию.",
    "warningContinue": "Игнорировать и создать",
    "warningEditAgain": "Вернуться к редактированию",
    "configDrawerTitle": "Управление профилями",
    "configDrawerIdLabel": "ID",
    "configTableHeaders": {
      "configId": "ID связанного профиля",
      "scope": "Область применения"
    },
    "routeTableHeaders": {
      "source": "Источник (тип:ID)",
      "config": "Файл конфига",
      "actions": "Действия"
    },
    "messageTypeOptions": {
      "all": "Все сообщения",
      "group": "Групповые (GroupMessage)",
      "friend": "Личные (FriendMessage)"
    },
    "messageTypeLabels": {
      "all": "Все",
      "group": "Группа",
      "friend": "ЛС"
    }
  },
  "messages": {
    "updateSuccess": "Обновлено!",
    "addSuccess": "Добавлено!",
    "deleteSuccess": "Удалено!",
    "statusUpdateSuccess": "Статус обновлен!",
    "deleteConfirm": "Вы уверены, что хотите удалить этого бота?",
    "configNotFoundOpenConfig": "Целевой конфиг не найден. Открыта страница настроек для проверки.",
    "updateMissingPlatformId": "Ошибка обновления: отсутствует ID платформы.",
    "platformUpdateFailed": "Не удалось обновить платформу.",
    "addSuccessWithConfig": "Бот успешно добавлен, профиль обновлен",
    "configIdMissing": "Не удалось получить ID конфигурации.",
    "routingUpdateFailed": "Ошибка обновления маршрутов: {message}",
    "createConfigFailed": "Ошибка создания профиля: {message}",
    "platformIdMissing": "Не удалось получить ID платформы.",
    "routingSaveFailed": "Ошибка сохранения маршрутов: {message}"
  },
  "status": {
    "enabled": "Включен",
    "disabled": "Выключен",
    "connecting": "Подключение",
    "connected": "Подключен",
    "disconnected": "Отключен",
    "error": "Ошибка"
  },
  "runtimeStatus": {
    "running": "Работает",
    "error": "Ошибка",
    "pending": "Ожидание",
    "stopped": "Остановлен",
    "unknown": "Неизвестно",
    "errors": "ошибок"
  },
  "platformQr": {
    "title": "QR вход",
    "show": "Показать QR",
    "status": "Статус QR",
    "waiting": "Ожидание QR",
    "close": "Закрыть"
  },
  "registrationAction": {
    "lark": {
      "title": "Настройка по QR",
      "show": "Настройка по QR",
      "scanTitle": "Отсканируйте в мобильном Feishu",
      "feishu": "Feishu China",
      "lark": "Lark Global"
    },
    "weixinOc": {
      "title": "QR вход в WeChat",
      "scanTitle": "Отсканируйте в мобильном WeChat",
      "created": "Вход выполнен",
      "status": {
        "idle": "Не начато",
        "starting": "Получение QR",
        "pending": "Ожидание сканирования",
        "created": "Вход выполнен - не забудьте нажать кнопку сохранения!",
        "denied": "Отменено",
        "expired": "Истекло",
        "error": "Ошибка входа"
      }
    },
    "dingtalk": {
      "title": "Создание DingTalk по QR",
      "scanTitle": "Отсканируйте в мобильном DingTalk",
      "created": "Настройка завершена"
    },
    "qqOfficial": {
      "title": "Привязка QQ Official Bot по QR",
      "scanTitle": "Отсканируйте в мобильном QQ",
      "created": "Привязка завершена",
      "status": {
        "idle": "Не начато",
        "starting": "Получение QR",
        "pending": "Ожидание сканирования",
        "created": "Привязка завершена - не забудьте нажать кнопку сохранения!",
        "denied": "Отменено",
        "expired": "Истекло",
        "error": "Ошибка привязки"
      }
    },
    "start": "Начать настройку",
    "created": "Настройка завершена",
    "startFailed": "Не удалось начать QR настройку",
    "pollFailed": "Не удалось проверить статус QR настройки",
    "mode": {
      "title": "Выберите способ создания",
      "scan": "Создать через QR",
      "manual": "Создать вручную",
      "larkManual": "Создать вручную (поддерживает self-hosted Feishu)"
    },
    "scanTitle": "Отсканируйте в мобильном Feishu",
    "status": {
      "idle": "Не начато",
      "starting": "Запуск",
      "pending": "Ожидание сканирования",
      "slow_down": "Опрос замедлен",
      "created": "Настройка завершена - не забудьте нажать кнопку сохранения!",
      "denied": "Отменено",
      "expired": "Истекло",
      "error": "Ошибка настройки"
    }
  },
  "errorDialog": {
    "title": "Детали ошибки",
    "platformId": "ID платформы",
    "errorCount": "Кол-во ошибок",
    "lastError": "Последняя ошибка",
    "occurredAt": "Время",
    "traceback": "Стек вызовов",
    "close": "Закрыть"
  }
}
