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": "Прозорец за обединяване на съобщения (ms)",
|
||
"channel.debounceMsHint": "Колко време да се изчака за допълнителни съобщения преди изпращане към агента (ms)",
|
||
"channel.deleteAllChannels": "Премахване на всички канали",
|
||
"channel.deleteAllConfirm": "Сигурни ли сте, че искате да премахнете всички канали?",
|
||
"channel.deleteAllConfirmDesc": "Това действие ще премахне окончателно всички съобщителни канали и техните конфигурации за този агент. Това не може да бъде отменено.",
|
||
"channel.deleteAllFailed": "Неуспешно премахване на всички канали",
|
||
"channel.deleteAllSuccess": "Всички канали са премахнати",
|
||
"channel.deleteConfirm": "Сигурни ли сте, че искате да премахнете този канал?",
|
||
"channel.deleteConfirmDesc": "Това действие ще премахне окончателно този канал за съобщения и неговата конфигурация. Това не може да бъде отменено.",
|
||
"channel.devWebhookProxyUrl": "HTTPS тунел URL",
|
||
"channel.devWebhookProxyUrlHint": "По избор. HTTPS тунел URL за пренасочване на заявки за уебхук към локален dev сървър.",
|
||
"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}} Developer Portal.",
|
||
"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": "Вашият QQ Bot App ID от 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 на сървъра или гилдията по подразбиране на тази платформа. AI го използва, за да изброи каналите без да пита.",
|
||
"channel.settings": "Разширени настройки",
|
||
"channel.settingsResetConfirm": "Сигурни ли сте, че искате да върнете разширените настройки към техните стойности по подразбиране?",
|
||
"channel.settingsResetDefault": "Връщане към стойности по подразбиране",
|
||
"channel.setupGuide": "Ръководство за настройка",
|
||
"channel.showUsageStats": "Показване на статистики за използване",
|
||
"channel.showUsageStatsHint": "Показване на статистики за използване на токени, разходи и продължителност в отговорите на бота",
|
||
"channel.signingSecret": "Тайна за подписване",
|
||
"channel.signingSecretHint": "Използва се за проверка на заявки към уебхук.",
|
||
"channel.slack.appIdHint": "Вашият Slack App ID от таблото за управление на Slack API (започва с A).",
|
||
"channel.slack.description": "Свържете този асистент със Slack за разговори в канали и директни съобщения.",
|
||
"channel.telegram.description": "Свържете този асистент с Telegram за лични и групови чатове.",
|
||
"channel.testConnection": "Тестване на връзката",
|
||
"channel.testFailed": "Тестът на връзката неуспешен",
|
||
"channel.testSuccess": "Тестът на връзката успешен",
|
||
"channel.updateFailed": "Неуспешно актуализиране на статуса",
|
||
"channel.userId": "Вашият потребителски ID на платформата",
|
||
"channel.userIdHint": "Вашият потребителски ID на тази платформа. AI може да го използва, за да ви изпраща директни съобщения.",
|
||
"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": "WeChat потребителски ID",
|
||
"channel.wechatUserIdHint": "Идентификатор на WeChat акаунт, върнат от процеса на оторизация."
|
||
}
|