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
9 KiB
JSON
121 lines
9 KiB
JSON
{
|
|
"channel.appSecret": "Secret de l'application",
|
|
"channel.appSecretHint": "Le secret de l'application de votre bot. Il sera chiffré et stocké en toute sécurité.",
|
|
"channel.appSecretPlaceholder": "Collez votre secret d'application ici",
|
|
"channel.applicationId": "ID de l'application / Nom d'utilisateur du bot",
|
|
"channel.applicationIdHint": "Identifiant unique pour votre application bot.",
|
|
"channel.applicationIdPlaceholder": "ex. 1234567890",
|
|
"channel.botToken": "Jeton du bot / Clé API",
|
|
"channel.botTokenEncryptedHint": "Le jeton sera crypté et stocké en toute sécurité.",
|
|
"channel.botTokenHowToGet": "Comment l'obtenir ?",
|
|
"channel.botTokenPlaceholderExisting": "Le jeton est masqué pour des raisons de sécurité",
|
|
"channel.botTokenPlaceholderNew": "Collez votre jeton de bot ici",
|
|
"channel.charLimit": "Limite de caractères",
|
|
"channel.charLimitHint": "Nombre maximum de caractères par message",
|
|
"channel.concurrency": "Mode de Concurrence",
|
|
"channel.concurrencyDebounce": "Anti-rebond",
|
|
"channel.concurrencyHint": "La file d'attente traite les messages un par un ; l'anti-rebond attend qu'une rafale de messages soit terminée avant de les traiter.",
|
|
"channel.concurrencyQueue": "File d'attente",
|
|
"channel.connectFailed": "Connexion au bot échouée",
|
|
"channel.connectQueued": "Connexion du bot mise en file d'attente. Elle commencera sous peu.",
|
|
"channel.connectStarting": "Le bot démarre. Veuillez patienter un moment.",
|
|
"channel.connectSuccess": "Bot connecté avec succès",
|
|
"channel.connecting": "Connexion en cours...",
|
|
"channel.connectionConfig": "Configuration de la connexion",
|
|
"channel.copied": "Copié dans le presse-papiers",
|
|
"channel.copy": "Copier",
|
|
"channel.credentials": "Identifiants",
|
|
"channel.debounceMs": "Fenêtre de fusion des messages (ms)",
|
|
"channel.debounceMsHint": "Durée d'attente pour des messages supplémentaires avant de les envoyer à l'agent (ms)",
|
|
"channel.deleteAllChannels": "Supprimer tous les canaux",
|
|
"channel.deleteAllConfirm": "Êtes-vous sûr de vouloir supprimer tous les canaux ?",
|
|
"channel.deleteAllConfirmDesc": "Cette action supprimera définitivement tous les canaux de messages et leurs configurations pour cet agent. Cette action est irréversible.",
|
|
"channel.deleteAllFailed": "Échec de la suppression de tous les canaux",
|
|
"channel.deleteAllSuccess": "Tous les canaux ont été supprimés",
|
|
"channel.deleteConfirm": "Êtes-vous sûr de vouloir supprimer ce canal ?",
|
|
"channel.deleteConfirmDesc": "Cette action supprimera définitivement ce canal de messages et sa configuration. Cela ne peut pas être annulé.",
|
|
"channel.devWebhookProxyUrl": "URL du tunnel HTTPS",
|
|
"channel.devWebhookProxyUrlHint": "Optionnel. URL du tunnel HTTPS pour transférer les requêtes webhook vers le serveur de développement local.",
|
|
"channel.disabled": "Désactivé",
|
|
"channel.discord.description": "Connectez cet assistant au serveur Discord pour les discussions de canal et les messages directs.",
|
|
"channel.dm": "Messages directs",
|
|
"channel.dmEnabled": "Activer les messages directs",
|
|
"channel.dmEnabledHint": "Permettre au bot de recevoir et de répondre aux messages directs",
|
|
"channel.dmPolicy": "Politique de messages directs",
|
|
"channel.dmPolicyAllowlist": "Liste autorisée",
|
|
"channel.dmPolicyDisabled": "Désactivé",
|
|
"channel.dmPolicyHint": "Contrôler qui peut envoyer des messages directs au bot",
|
|
"channel.dmPolicyOpen": "Ouvert",
|
|
"channel.documentation": "Documentation",
|
|
"channel.enabled": "Activé",
|
|
"channel.encryptKey": "Clé de cryptage",
|
|
"channel.encryptKeyHint": "Optionnel. Utilisé pour décrypter les charges utiles des événements cryptés.",
|
|
"channel.encryptKeyPlaceholder": "Clé de cryptage optionnelle",
|
|
"channel.endpointUrl": "URL du webhook",
|
|
"channel.endpointUrlHint": "Veuillez copier cette URL et la coller dans le champ <bold>{{fieldName}}</bold> du portail développeur {{name}}.",
|
|
"channel.exportConfig": "Exporter la configuration",
|
|
"channel.feishu.description": "Connectez cet assistant à Feishu pour les discussions privées et de groupe.",
|
|
"channel.historyLimit": "Limite des messages historiques",
|
|
"channel.historyLimitHint": "Nombre par défaut de messages à récupérer lors de la lecture de l'historique du canal",
|
|
"channel.importConfig": "Importer la configuration",
|
|
"channel.importFailed": "Échec de l'importation de la configuration",
|
|
"channel.importInvalidFormat": "Format de fichier de configuration invalide",
|
|
"channel.importSuccess": "Configuration importée avec succès",
|
|
"channel.lark.description": "Connectez cet assistant à Lark pour les discussions privées et de groupe.",
|
|
"channel.openPlatform": "Plateforme ouverte",
|
|
"channel.platforms": "Plateformes",
|
|
"channel.publicKey": "Clé publique",
|
|
"channel.publicKeyHint": "Optionnel. Utilisé pour vérifier les requêtes d'interaction provenant de Discord.",
|
|
"channel.publicKeyPlaceholder": "Requis pour la vérification des interactions",
|
|
"channel.qq.appIdHint": "Votre ID d'application Bot QQ de la plateforme QQ Open",
|
|
"channel.qq.description": "Connectez cet assistant à QQ pour des discussions de groupe et des messages directs.",
|
|
"channel.removeChannel": "Supprimer le canal",
|
|
"channel.removeFailed": "Échec de la suppression du canal",
|
|
"channel.removed": "Canal supprimé",
|
|
"channel.runtimeDisconnected": "Bot déconnecté",
|
|
"channel.save": "Enregistrer la configuration",
|
|
"channel.saveFailed": "Échec de l'enregistrement de la configuration",
|
|
"channel.saveFirstWarning": "Veuillez d'abord enregistrer la configuration",
|
|
"channel.saved": "Configuration enregistrée avec succès",
|
|
"channel.secretToken": "Jeton secret du webhook",
|
|
"channel.secretTokenHint": "Optionnel. Utilisé pour vérifier les requêtes webhook provenant de Telegram.",
|
|
"channel.secretTokenPlaceholder": "Secret optionnel pour la vérification du webhook",
|
|
"channel.serverId": "ID du serveur / guilde par défaut",
|
|
"channel.serverIdHint": "Votre ID de serveur ou de guilde par défaut sur cette plateforme. L'IA l'utilise pour lister les canaux sans demander.",
|
|
"channel.settings": "Paramètres avancés",
|
|
"channel.settingsResetConfirm": "Êtes-vous sûr de vouloir réinitialiser les paramètres avancés par défaut ?",
|
|
"channel.settingsResetDefault": "Réinitialiser par défaut",
|
|
"channel.setupGuide": "Guide de configuration",
|
|
"channel.showUsageStats": "Afficher les statistiques d'utilisation",
|
|
"channel.showUsageStatsHint": "Afficher les statistiques d'utilisation des tokens, des coûts et de la durée dans les réponses du bot",
|
|
"channel.signingSecret": "Secret de signature",
|
|
"channel.signingSecretHint": "Utilisé pour vérifier les requêtes webhook.",
|
|
"channel.slack.appIdHint": "Votre ID d'application Slack depuis le tableau de bord API Slack (commence par A).",
|
|
"channel.slack.description": "Connectez cet assistant à Slack pour des conversations de canal et des messages directs.",
|
|
"channel.telegram.description": "Connectez cet assistant à Telegram pour les discussions privées et de groupe.",
|
|
"channel.testConnection": "Tester la connexion",
|
|
"channel.testFailed": "Échec du test de connexion",
|
|
"channel.testSuccess": "Test de connexion réussi",
|
|
"channel.updateFailed": "Échec de la mise à jour du statut",
|
|
"channel.userId": "Votre ID utilisateur sur la plateforme",
|
|
"channel.userIdHint": "Votre ID utilisateur sur cette plateforme. L'IA peut l'utiliser pour vous envoyer des messages directs.",
|
|
"channel.validationError": "Veuillez remplir l'ID de l'application et le jeton",
|
|
"channel.verificationToken": "Jeton de vérification",
|
|
"channel.verificationTokenHint": "Optionnel. Utilisé pour vérifier la source des événements webhook.",
|
|
"channel.verificationTokenPlaceholder": "Collez votre jeton de vérification ici",
|
|
"channel.wechat.description": "Connectez cet assistant à WeChat via iLink Bot pour des chats privés et de groupe.",
|
|
"channel.wechatBotId": "ID du Bot",
|
|
"channel.wechatBotIdHint": "Identifiant du bot attribué après l'autorisation par code QR.",
|
|
"channel.wechatConnectedInfo": "Compte WeChat Connecté",
|
|
"channel.wechatManagedCredentials": "Ce canal est déjà connecté via une autorisation par code QR. Les identifiants sont gérés automatiquement.",
|
|
"channel.wechatQrExpired": "Le code QR a expiré. Veuillez actualiser pour en obtenir un nouveau.",
|
|
"channel.wechatQrRefresh": "Actualiser le code QR",
|
|
"channel.wechatQrScaned": "Code QR scanné. Veuillez confirmer la connexion dans WeChat.",
|
|
"channel.wechatQrWait": "Ouvrez WeChat et scannez le code QR pour vous connecter.",
|
|
"channel.wechatRebind": "Relier via le Code QR",
|
|
"channel.wechatScanTitle": "Connecter le bot WeChat",
|
|
"channel.wechatScanToConnect": "Scannez le code QR pour vous connecter",
|
|
"channel.wechatTips": "Veuillez mettre à jour WeChat vers la dernière version et le redémarrer. Le plugin ClawBot est en déploiement progressif, vérifiez donc dans Paramètres > Plugins pour confirmer l'accès.",
|
|
"channel.wechatUserId": "ID Utilisateur WeChat",
|
|
"channel.wechatUserIdHint": "Identifiant du compte WeChat renvoyé par le processus d'autorisation."
|
|
}
|