mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 09:37:28 +00:00
* ✨ feat: add cross-platform message tool for AI bot channel operations Implement a unified message tool (`lobe-message`) that provides AI with messaging capabilities across Discord, Telegram, Slack, Google Chat, and IRC through a single interface with platform-specific extensions. Core APIs: sendMessage, readMessages, editMessage, deleteMessage, searchMessages, reactToMessage, getReactions, pin/unpin management, channel/member info, thread operations, and polls. Architecture follows the established builtin-tool pattern: - Package: @lobechat/builtin-tool-message (manifest, types, executor, ExecutionRuntime, client components) - Registry: registered in builtin-tools (renders, inspectors, interventions, streamings) - Server runtime: stub service ready for platform adapter integration https://claude.ai/code/session_011sHc6R7V4cSYKere9RY1QM * feat: implement platform specific message service * chore: add wechat platform * chore: update wechat api service * chore: update protocol implementation * chore: optimize platform api test * fix: lark domain error * feat: support bot message cli * chore: refactor adapter to service * chore: optimize bot status fetch * fix: bot status * fix: channel nav ignore * feat: message tool support bot manage * feat: add lobe-message runtime * feat: support direct message * feat: add history limit * chore: update const limit * feat: optimize server id message history limit * chore: optimize system role & inject platform environment info * chore: update readMessages vibe * fix: form body width 50% * chore: optimize tool prompt * chore: update i18n files * chore: optimize read message system role and update bot message lh * updage readMessage api rate limit * chore: comatible for readMessages * fix: feishu readMessage implementation error * fix: test case * chore: update i18n files * fix: lint error * chore: add timeout for conversaction case * fix: message test case * fix: vite gzip error --------- Co-authored-by: Claude <noreply@anthropic.com>
121 lines
12 KiB
JSON
121 lines
12 KiB
JSON
{
|
||
"channel.appSecret": "Секрет приложения",
|
||
"channel.appSecretHint": "Секретное приложение вашего бота. Оно будет зашифровано и надежно сохранено.",
|
||
"channel.appSecretPlaceholder": "Вставьте секрет вашего приложения здесь",
|
||
"channel.applicationId": "ID приложения / Имя пользователя бота",
|
||
"channel.applicationIdHint": "Уникальный идентификатор для вашего приложения-бота.",
|
||
"channel.applicationIdPlaceholder": "например, 1234567890",
|
||
"channel.botToken": "Токен бота / API ключ",
|
||
"channel.botTokenEncryptedHint": "Токен будет зашифрован и сохранен безопасно.",
|
||
"channel.botTokenHowToGet": "Как получить?",
|
||
"channel.botTokenPlaceholderExisting": "Токен скрыт для безопасности",
|
||
"channel.botTokenPlaceholderNew": "Вставьте токен вашего бота здесь",
|
||
"channel.charLimit": "Ограничение символов",
|
||
"channel.charLimitHint": "Максимальное количество символов в сообщении",
|
||
"channel.concurrency": "Режим параллельности",
|
||
"channel.concurrencyDebounce": "Дебаунс",
|
||
"channel.concurrencyHint": "Очередь обрабатывает сообщения по одному; Дебаунс ожидает завершения серии сообщений перед обработкой",
|
||
"channel.concurrencyQueue": "Очередь",
|
||
"channel.connectFailed": "Подключение бота не удалось",
|
||
"channel.connectQueued": "Подключение бота поставлено в очередь. Оно начнется в ближайшее время.",
|
||
"channel.connectStarting": "Бот запускается. Пожалуйста, подождите немного.",
|
||
"channel.connectSuccess": "Бот успешно подключен",
|
||
"channel.connecting": "Подключение...",
|
||
"channel.connectionConfig": "Конфигурация подключения",
|
||
"channel.copied": "Скопировано в буфер обмена",
|
||
"channel.copy": "Копировать",
|
||
"channel.credentials": "Учетные данные",
|
||
"channel.debounceMs": "Окно объединения сообщений (мс)",
|
||
"channel.debounceMsHint": "Время ожидания дополнительных сообщений перед отправкой агенту (мс)",
|
||
"channel.deleteAllChannels": "Удалить все каналы",
|
||
"channel.deleteAllConfirm": "Вы уверены, что хотите удалить все каналы?",
|
||
"channel.deleteAllConfirmDesc": "Это действие навсегда удалит все каналы сообщений и их настройки для этого агента. Это действие нельзя отменить.",
|
||
"channel.deleteAllFailed": "Не удалось удалить все каналы",
|
||
"channel.deleteAllSuccess": "Все каналы удалены",
|
||
"channel.deleteConfirm": "Вы уверены, что хотите удалить этот канал?",
|
||
"channel.deleteConfirmDesc": "Это действие навсегда удалит этот канал сообщений и его настройки. Это действие нельзя отменить.",
|
||
"channel.devWebhookProxyUrl": "URL HTTPS туннеля",
|
||
"channel.devWebhookProxyUrlHint": "Необязательно. URL HTTPS туннеля для перенаправления запросов вебхука на локальный сервер разработки.",
|
||
"channel.disabled": "Отключено",
|
||
"channel.discord.description": "Подключите этого помощника к серверу Discord для общения в канале и личных сообщений.",
|
||
"channel.dm": "Личные сообщения",
|
||
"channel.dmEnabled": "Включить личные сообщения",
|
||
"channel.dmEnabledHint": "Разрешить боту получать и отвечать на личные сообщения",
|
||
"channel.dmPolicy": "Политика личных сообщений",
|
||
"channel.dmPolicyAllowlist": "Список разрешенных",
|
||
"channel.dmPolicyDisabled": "Отключено",
|
||
"channel.dmPolicyHint": "Управляйте тем, кто может отправлять личные сообщения боту",
|
||
"channel.dmPolicyOpen": "Открыто",
|
||
"channel.documentation": "Документация",
|
||
"channel.enabled": "Включено",
|
||
"channel.encryptKey": "Ключ шифрования",
|
||
"channel.encryptKeyHint": "Необязательно. Используется для расшифровки зашифрованных данных событий.",
|
||
"channel.encryptKeyPlaceholder": "Необязательный ключ шифрования",
|
||
"channel.endpointUrl": "URL вебхука",
|
||
"channel.endpointUrlHint": "Пожалуйста, скопируйте этот URL и вставьте его в поле <bold>{{fieldName}}</bold> на портале разработчика {{name}}.",
|
||
"channel.exportConfig": "Экспортировать конфигурацию",
|
||
"channel.feishu.description": "Подключите этого помощника к Feishu для общения в личных и групповых чатах.",
|
||
"channel.historyLimit": "Лимит сообщений в истории",
|
||
"channel.historyLimitHint": "Количество сообщений по умолчанию для загрузки при просмотре истории канала",
|
||
"channel.importConfig": "Импортировать конфигурацию",
|
||
"channel.importFailed": "Не удалось импортировать конфигурацию",
|
||
"channel.importInvalidFormat": "Неверный формат файла конфигурации",
|
||
"channel.importSuccess": "Конфигурация успешно импортирована",
|
||
"channel.lark.description": "Подключите этого помощника к Lark для общения в личных и групповых чатах.",
|
||
"channel.openPlatform": "Открытая платформа",
|
||
"channel.platforms": "Платформы",
|
||
"channel.publicKey": "Открытый ключ",
|
||
"channel.publicKeyHint": "Необязательно. Используется для проверки запросов взаимодействия от Discord.",
|
||
"channel.publicKeyPlaceholder": "Требуется для проверки взаимодействия",
|
||
"channel.qq.appIdHint": "Ваш App ID бота QQ с платформы QQ Open Platform",
|
||
"channel.qq.description": "Подключите этого ассистента к QQ для групповых чатов и личных сообщений.",
|
||
"channel.removeChannel": "Удалить канал",
|
||
"channel.removeFailed": "Не удалось удалить канал",
|
||
"channel.removed": "Канал удален",
|
||
"channel.runtimeDisconnected": "Бот отключен",
|
||
"channel.save": "Сохранить конфигурацию",
|
||
"channel.saveFailed": "Не удалось сохранить конфигурацию",
|
||
"channel.saveFirstWarning": "Пожалуйста, сначала сохраните конфигурацию",
|
||
"channel.saved": "Конфигурация успешно сохранена",
|
||
"channel.secretToken": "Секретный токен вебхука",
|
||
"channel.secretTokenHint": "Необязательно. Используется для проверки запросов вебхука от Telegram.",
|
||
"channel.secretTokenPlaceholder": "Необязательный секрет для проверки вебхука",
|
||
"channel.serverId": "ID сервера / гильдии по умолчанию",
|
||
"channel.serverIdHint": "Ваш ID сервера или гильдии по умолчанию на этой платформе. ИИ использует его для отображения списка каналов без запроса.",
|
||
"channel.settings": "Расширенные настройки",
|
||
"channel.settingsResetConfirm": "Вы уверены, что хотите сбросить расширенные настройки до значений по умолчанию?",
|
||
"channel.settingsResetDefault": "Сбросить до значений по умолчанию",
|
||
"channel.setupGuide": "Руководство по настройке",
|
||
"channel.showUsageStats": "Показать статистику использования",
|
||
"channel.showUsageStatsHint": "Показывать использование токенов, стоимость и статистику продолжительности в ответах бота",
|
||
"channel.signingSecret": "Секрет подписи",
|
||
"channel.signingSecretHint": "Используется для проверки запросов вебхуков.",
|
||
"channel.slack.appIdHint": "Ваш ID приложения Slack из панели управления API Slack (начинается с A).",
|
||
"channel.slack.description": "Подключите этого помощника к Slack для общения в каналах и личных сообщениях.",
|
||
"channel.telegram.description": "Подключите этого помощника к Telegram для общения в личных и групповых чатах.",
|
||
"channel.testConnection": "Проверить подключение",
|
||
"channel.testFailed": "Тест подключения не удался",
|
||
"channel.testSuccess": "Тест подключения успешно пройден",
|
||
"channel.updateFailed": "Не удалось обновить статус",
|
||
"channel.userId": "Ваш ID пользователя на платформе",
|
||
"channel.userIdHint": "Ваш ID пользователя на этой платформе. ИИ может использовать его для отправки вам личных сообщений.",
|
||
"channel.validationError": "Пожалуйста, заполните ID приложения и токен",
|
||
"channel.verificationToken": "Токен проверки",
|
||
"channel.verificationTokenHint": "Необязательно. Используется для проверки источника событий вебхука.",
|
||
"channel.verificationTokenPlaceholder": "Вставьте ваш токен проверки здесь",
|
||
"channel.wechat.description": "Подключите этого помощника к WeChat через iLink Bot для частных и групповых чатов.",
|
||
"channel.wechatBotId": "ID бота",
|
||
"channel.wechatBotIdHint": "Идентификатор бота, назначенный после авторизации через QR-код.",
|
||
"channel.wechatConnectedInfo": "Подключенный аккаунт WeChat",
|
||
"channel.wechatManagedCredentials": "Этот канал уже подключен через авторизацию по QR-коду. Учетные данные управляются автоматически.",
|
||
"channel.wechatQrExpired": "Срок действия QR-кода истек. Пожалуйста, обновите, чтобы получить новый.",
|
||
"channel.wechatQrRefresh": "Обновить QR-код",
|
||
"channel.wechatQrScaned": "QR-код отсканирован. Пожалуйста, подтвердите вход в WeChat.",
|
||
"channel.wechatQrWait": "Откройте WeChat и отсканируйте QR-код для подключения.",
|
||
"channel.wechatRebind": "Переподключение через QR-код",
|
||
"channel.wechatScanTitle": "Подключить бота WeChat",
|
||
"channel.wechatScanToConnect": "Сканируйте QR-код для подключения",
|
||
"channel.wechatTips": "Пожалуйста, обновите WeChat до последней версии и перезапустите его. Плагин ClawBot постепенно разворачивается, поэтому проверьте доступ в разделе Настройки > Плагины.",
|
||
"channel.wechatUserId": "ID пользователя WeChat",
|
||
"channel.wechatUserIdHint": "Идентификатор аккаунта WeChat, возвращаемый в процессе авторизации."
|
||
}
|