mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-05-29 04:10:00 +08:00
450 lines
74 KiB
JavaScript
450 lines
74 KiB
JavaScript
import { _ } from '../helper.js'
|
||
|
||
export default {
|
||
title: _('消息渠道', 'Channels', '訊息頻道', 'チャンネル', '채널', 'Kênh', 'Canales', 'Canais', 'Каналы', 'Canaux', 'Kanäle'),
|
||
desc: _('渠道列表管理接入;在 Agent 对接页为每个 Agent 绑定多条渠道路由,配置相互独立,并支持渠道连通性测试', 'Manage channel integrations; bind multiple channel routes per Agent with independent configs and connectivity testing', '頻道列表管理接入;在 Agent 对接頁為每個 Agent 綁定多條頻道路由,設定相互獨立,並支援頻道連通性測試', 'メッセージチャンネルの管理とプラットフォーム接続', '메시지 채널 관리 및 플랫폼 연결', 'Quản lý kênh tin nhắn và kết nối nền tảng', 'Gestionar canales de mensajería y conexiones de plataforma', 'Gerenciar canais de mensagens e conexões de plataforma', 'Управление каналами сообщений и подключение платформ', 'Gérer les canaux de messagerie et les connexions de plateforme', 'Nachrichtenkanäle und Plattformverbindungen verwalten'),
|
||
tabChannels: _('渠道列表', 'Channel List', '頻道列表'),
|
||
tabAgents: _('Agent 对接', 'Agent Binding'),
|
||
configured: _('已接入', 'Connected'),
|
||
available: _('可接入平台', 'Available Platforms'),
|
||
accountCount: _('{count} 个账号', '{count} accounts', '{count} 個账號'),
|
||
editAccount: _('编辑', 'Edit', '編輯'),
|
||
addAccount: _('添加账号', 'Add Account', '新增账號'),
|
||
editDefault: _('编辑默认', 'Edit Default', '編輯預設'),
|
||
noGuide: _('无向导', 'No guide', '無向导'),
|
||
disable: _('禁用', 'Disable', '停用', '無効化', '비활성화'),
|
||
enable: _('启用', 'Enable', '啟用', '有効化', '활성화'),
|
||
loadFailed: _('加载平台列表失败', 'Failed to load platform list', '載入平台列表失敗', 'チャンネルの読み込みに失敗', '채널 로드 실패', 'Tải thất bại', 'Error al cargar', 'Falha ao carregar', 'Ошибка загрузки', 'Échec du chargement', 'Laden fehlgeschlagen'),
|
||
agentBindHint: _('每个 Agent 可绑定多条路由(例如不同账号或匹配条件);绑定之间互不影响。请先在「渠道列表」中完成渠道接入。', 'Each Agent can have multiple route bindings (e.g. different accounts or match conditions). Bindings are independent. Complete channel setup in "Channel List" first.', '每個 Agent 可綁定多條路由(例如不同账號或匹配條件);綁定之間互不影響。請先在「頻道列表」中完成頻道接入。'),
|
||
createAgentFirst: _('请先在「Agent 管理」中创建 Agent', 'Please create an Agent in "Agent Management" first', '請先在「Agent 管理」中建立 Agent'),
|
||
qqbotLabel: _('QQ 机器人', 'QQ Bot', 'QQ 機器人'),
|
||
qqbotDesc: _('通过 QQ 开放平台接入,支持私聊和群聊', 'Connect via QQ Open Platform, supports DM and group chat', '通過 QQ 開放平台接入,支援私聊和群聊'),
|
||
qqbotGuide1: _('前往 <a href="https://q.qq.com" target="_blank" rel="noopener">QQ 开放平台</a> 创建机器人', '前往 <a href="https://q.qq.com" target="_blank" rel="noopener">QQ 开放平台</a> 创建机器人', '前往 <a href="https://q.qq.com" target="_blank" rel="noopener">QQ 開放平台</a> 建立機器人'),
|
||
qqbotGuide2: _('在「开发 → 开发设置」中获取 <strong>AppID</strong> 和 <strong>ClientSecret</strong>', '在「开发 → 开发设置」中获取 <strong>AppID</strong> 和 <strong>ClientSecret</strong>', '在「開發 → 開發設定」中取得 <strong>AppID</strong> 和 <strong>ClientSecret</strong>'),
|
||
qqbotGuide3: _('沙箱模式下可跳过审核直接测试', 'You can skip review and test directly in sandbox mode', '沙箱模式下可略過審核直接測試'),
|
||
qqbotGuide4: _('将机器人添加到你的 QQ 群(沙箱频道亦可)', 'Add the bot to your QQ group (sandbox channel also works)', '將機器人新增到你的 QQ 群(沙箱頻道亦可)'),
|
||
qqbotGuide5: _('填入下方凭证并保存,面板会自动安装插件、写入配置并重启 Gateway', 'Fill in credentials and save; the panel will auto-install the plugin, write config, and restart Gateway', '填入下方憑證並儲存,面板會自動安裝外掛、写入設定並重啟 Gateway'),
|
||
qqbotGuide6: _('在群里 @机器人 发消息即可开始对话', '@mention the bot in the group to start chatting', '在群里 @機器人 發訊息即可開始對話'),
|
||
qqbotGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">遇到问题?参考 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">OpenClaw × QQ 常见问题</a></div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">遇到问题?参考 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">OpenClaw × QQ 常见问题</a></div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">遇到問題?參考 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">OpenClaw × QQ 常见問題</a></div>'),
|
||
qqbotAppIdPh: _('QQ 开放平台 AppID', 'QQ Open Platform AppID', 'QQ 開放平台 AppID'),
|
||
qqbotSecretPh: _('QQ 开放平台 ClientSecret', 'QQ Open Platform ClientSecret', 'QQ 開放平台 ClientSecret'),
|
||
dingtalkLabel: _('钉钉', 'DingTalk', '釘釘'),
|
||
dingtalkDesc: _('通过钉钉企业内部应用接入,支持单聊和群聊', 'Connect via DingTalk enterprise internal app, supports DM and group chat', '通過釘釘企業內部應用接入,支援單聊和群聊', 'DingTalk に接続'),
|
||
dingtalkGuide1: _('前往 <a href="https://open-dev.dingtalk.com" target="_blank" rel="noopener">钉钉开放平台</a>,创建「企业内部应用」', '前往 <a href="https://open-dev.dingtalk.com" target="_blank" rel="noopener">钉钉开放平台</a>,创建「企业内部应用」', '前往 <a href="https://open-dev.dingtalk.com" target="_blank" rel="noopener">釘釘開放平台</a>,建立「企業內部應用」'),
|
||
dingtalkGuide2: _('在「应用功能 → 机器人」中启用机器人能力', 'Enable Robot capability under "App Features → Robot"', '在「應用功能 → 機器人」中啟用機器人能力'),
|
||
dingtalkGuide3: _('消息接收模式选择 <strong>Stream 模式</strong>(推荐)', 'Set message receive mode to <strong>Stream Mode</strong> (recommended)', '訊息接收模式選擇 <strong>Stream 模式</strong>(推薦)'),
|
||
dingtalkGuide4: _('在「凭证与基础信息」中获取 <strong>Client ID (AppKey)</strong> 和 <strong>Client Secret (AppSecret)</strong>', 'Get <strong>Client ID (AppKey)</strong> and <strong>Client Secret (AppSecret)</strong> from credentials page', '在「憑證與基礎資訊」中取得 <strong>Client ID (AppKey)</strong> 和 <strong>Client Secret (AppSecret)</strong>'),
|
||
dingtalkGuide5: _('权限管理中添加 <code>qyapi_robot_sendmsg</code>、<code>Card.Streaming.Write</code>、<code>Card.Instance.Write</code>', '权限管理中添加 <code>qyapi_robot_sendmsg</code>、<code>Card.Streaming.Write</code>、<code>Card.Instance.Write</code>', '權限管理中新增 <code>qyapi_robot_sendmsg</code>、<code>Card.Streaming.Write</code>、<code>Card.Instance.Write</code>'),
|
||
dingtalkGuide6: _('发布应用版本后,将机器人添加到目标群', 'Publish the app version, then add the bot to the target group', '發佈應用版本后,將機器人新增到目標群'),
|
||
dingtalkGuide7: _('填入下方凭证并保存,面板会自动安装插件并重启 Gateway', 'Fill in credentials and save; the panel will auto-install the plugin and restart Gateway', '填入下方憑證並儲存,面板會自動安裝外掛並重啟 Gateway'),
|
||
dingtalkGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">注意:Stream 模式需要钉钉服务端主动推送,确保网络可达</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">注意:Stream 模式需要钉钉服务端主动推送,确保网络可达</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">注意:Stream 模式需要釘釘伺服端主動推送,確保網路可達</div>'),
|
||
dingtalkClientIdPh: _('AppKey / Client ID', 'AppKey / Client ID'),
|
||
dingtalkClientSecretPh: _('AppSecret / Client Secret', 'AppSecret / Client Secret'),
|
||
feishuLabel: _('飞书', 'Feishu', '飛書'),
|
||
feishuDesc: _('通过飞书企业自建应用接入,支持单聊和群聊', 'Connect via Feishu custom enterprise app, supports DM and group chat', '通過飛書企業自建應用接入,支援單聊和群聊', 'Feishu に接続'),
|
||
feishuGuide1: _('前往 <a href="https://open.feishu.cn/app" target="_blank" rel="noopener">飞书开放平台</a> 创建企业自建应用', '前往 <a href="https://open.feishu.cn/app" target="_blank" rel="noopener">飞书开放平台</a> 创建企业自建应用', '前往 <a href="https://open.feishu.cn/app" target="_blank" rel="noopener">飛書開放平台</a> 建立企業自建應用'),
|
||
feishuGuide2: _('在「添加应用能力」中添加「机器人」', 'Add "Bot" capability under "Add App Capabilities"', '在「新增應用能力」中新增「機器人」'),
|
||
feishuGuide3: _('在「凭证与基础信息」中获取 <strong>App ID</strong> 和 <strong>App Secret</strong>', 'Get <strong>App ID</strong> and <strong>App Secret</strong> from credentials page', '在「憑證與基礎資訊」中取得 <strong>App ID</strong> 和 <strong>App Secret</strong>'),
|
||
feishuGuide4: _('事件回调选择「长连接」方式(无需公网 IP)', 'Select "Long Connection" for event callback (no public IP needed)', '事件回調選擇「長連線」方式(無需公網 IP)'),
|
||
feishuGuide5: _('权限管理中搜索并开通 <code>im:message</code>、<code>im:message.group_at_msg</code> 等消息权限', '权限管理中搜索并开通 <code>im:message</code>、<code>im:message.group_at_msg</code> 等消息权限', '權限管理中搜尋並開通 <code>im:message</code>、<code>im:message.group_at_msg</code> 等訊息權限'),
|
||
feishuGuide6: _('创建版本并发布后,将机器人添加到目标群', 'Create a version, publish, then add the bot to the target group', '建立版本並發佈后,將機器人新增到目標群'),
|
||
feishuGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">推荐使用长连接方式,无需公网地址即可接收消息</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">推荐使用长连接方式,无需公网地址即可接收消息</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">推薦使用長連線方式,無需公網位址即可接收訊息</div>'),
|
||
feishuAppIdPh: _('飞书应用 App ID', 'Feishu App ID', '飛書應用 App ID'),
|
||
feishuAppSecretPh: _('飞书应用 App Secret', 'Feishu App Secret', '飛書應用 App Secret'),
|
||
feishuDomainLabel: _('平台域名', 'Platform Domain'),
|
||
feishuDomainFeishu: _('飞书 (feishu.cn)', 'Feishu (feishu.cn)', '飛書 (feishu.cn)'),
|
||
feishuDomainLark: _('Lark (larksuite.com)', 'Lark (larksuite.com)'),
|
||
telegramDesc: _('接入 Telegram Bot,支持私聊和群组', 'Connect a Telegram Bot, supports DM and groups', '接入 Telegram Bot,支援私聊和群組', 'Telegram Bot に接続'),
|
||
telegramGuide1: _('在 Telegram 中搜索 <a href="https://t.me/BotFather" target="_blank" rel="noopener">@BotFather</a> 并发送 <code>/newbot</code>', '在 Telegram 中搜索 <a href="https://t.me/BotFather" target="_blank" rel="noopener">@BotFather</a> 并发送 <code>/newbot</code>', '在 Telegram 中搜尋 <a href="https://t.me/BotFather" target="_blank" rel="noopener">@BotFather</a> 並發送 <code>/newbot</code>'),
|
||
telegramGuide2: _('按提示设置机器人名称和用户名', 'Follow prompts to set bot name and username', '按提示設定機器人名稱和使用者名'),
|
||
telegramGuide3: _('复制 BotFather 返回的 <strong>Bot Token</strong>', 'Copy the <strong>Bot Token</strong> returned by BotFather', '複製 BotFather 返回的 <strong>Bot Token</strong>'),
|
||
telegramGuide4: _('填入下方凭证并保存', 'Fill in credentials below and save', '填入下方憑證並儲存'),
|
||
telegramGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要公网可达的服务器或使用 polling 模式</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要公网可达的服务器或使用 polling 模式</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要公網可達的伺服器或使用 polling 模式</div>'),
|
||
zaloDesc: _('接入 Zalo Bot API,适合越南用户场景的私聊和群组消息', 'Connect Zalo Bot API for DM and group messaging in Vietnam-focused scenarios', '接入 Zalo Bot API,適合越南使用者場景的私聊和群組訊息'),
|
||
zaloGuide1: _('前往 <a href="https://bot.zaloplatforms.com" target="_blank" rel="noopener">Zalo Bot Platform</a> 创建或打开机器人', 'Open <a href="https://bot.zaloplatforms.com" target="_blank" rel="noopener">Zalo Bot Platform</a> and create or open your bot', '前往 <a href="https://bot.zaloplatforms.com" target="_blank" rel="noopener">Zalo Bot Platform</a> 建立或開啟機器人'),
|
||
zaloGuide2: _('获取 <strong>Bot Token</strong>;如果使用 SecretRef 或外部文件,也可以填写 Token File', 'Get the <strong>Bot Token</strong>; if you use SecretRef or an external file, fill Token File instead', '取得 <strong>Bot Token</strong>;如果使用 SecretRef 或外部檔案,也可以填寫 Token File'),
|
||
zaloGuide3: _('如使用 webhook 模式,填写 Webhook URL / Secret / Path;否则可先留空使用默认接收方式', 'For webhook mode, fill Webhook URL / Secret / Path; otherwise leave them empty for the default receive mode', '如使用 webhook 模式,填寫 Webhook URL / Secret / Path;否則可先留空使用預設接收方式'),
|
||
zaloGuide4: _('设置私信策略、群组策略和允许列表,保存后面板会安装插件并重载 Gateway', 'Set DM policy, group policy, and allowlists; after saving, the panel installs the plugin and reloads Gateway', '設定私信策略、群組策略和允許列表,儲存後面板會安裝外掛並重載 Gateway'),
|
||
zaloGuide5: _('如果收不到消息,请确认机器人已在 Zalo 侧启用并查看 Gateway 日志', 'If messages do not arrive, confirm the bot is enabled on Zalo and inspect Gateway logs', '如果收不到訊息,請確認機器人已在 Zalo 側啟用並查看 Gateway 日誌'),
|
||
zaloGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Zalo Bot 至少需要 Bot Token 或 Token File 其中一项。</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Zalo Bot requires either Bot Token or Token File.</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Zalo Bot 至少需要 Bot Token 或 Token File 其中一項。</div>'),
|
||
zaloBotTokenPh: _('Zalo Bot Token', 'Zalo Bot Token'),
|
||
zaloBotTokenHint: _('与 Token File 二选一;如果当前值来自 SecretRef,保持占位不变即可保留引用。', 'Use either this or Token File; keep the SecretRef placeholder unchanged to preserve the reference.'),
|
||
zaloTokenFilePh: _('可选,例如 /etc/openclaw/zalo-token.txt', 'Optional, e.g. /etc/openclaw/zalo-token.txt'),
|
||
zaloTokenFileHint: _('当 token 由文件管理时填写;在线校验只会直接校验 Bot Token,不会读取外部文件。', 'Use this when the token is file-managed; online verification only checks Bot Token directly and will not read external files.'),
|
||
zaloWebhookSecretPh: _('至少 8 位的 Webhook Secret', 'Webhook Secret with at least 8 characters'),
|
||
zaloAllowFromPh: _('可选,逗号分隔 Zalo 用户 ID', 'Optional, comma-separated Zalo user IDs'),
|
||
zaloAllowFromHint: _('Zalo 官方 Bot 推荐使用数字用户 ID;留空表示按策略默认处理。', 'Numeric user IDs are recommended for Zalo Bot; leave empty to use policy defaults.'),
|
||
zaloGroupAllowFromPh: _('可选,逗号分隔群组或会话 ID', 'Optional, comma-separated group or thread IDs'),
|
||
groupAllowFromHint: _('限制允许的群组或会话 ID,留空不限制。', 'Restrict allowed group or thread IDs; leave empty for no restriction.'),
|
||
zaloTokenOrFile: _('Bot Token 或 Token File', 'Bot Token or Token File'),
|
||
zalouserDesc: _('通过二维码登录接入 Zalo 个人账号,支持私聊和群组', 'Connect a Zalo personal account via QR login, with DM and group support', '透過 QR code 登入接入 Zalo 個人帳號,支援私聊和群組'),
|
||
zalouserGuide1: _('先安装 <strong>@openclaw/zalouser</strong> 插件,保存配置时面板会自动尝试安装', 'Install the <strong>@openclaw/zalouser</strong> plugin first; the panel will try to install it on save', '先安裝 <strong>@openclaw/zalouser</strong> 外掛,儲存設定時面板會自動嘗試安裝'),
|
||
zalouserGuide2: _('保存后在终端执行 <code>openclaw channels login --channel zalouser</code> 并用 Zalo 手机端扫码', 'After saving, run <code>openclaw channels login --channel zalouser</code> and scan with the Zalo mobile app', '儲存後在終端執行 <code>openclaw channels login --channel zalouser</code> 並用 Zalo 手機端掃碼'),
|
||
zalouserGuide3: _('多账号时填写账号标识,并在命令后追加 <code>--account 账号标识</code>', 'For multi-account setup, fill Account Identifier and add <code>--account account-id</code> to the command', '多帳號時填寫帳號標識,並在命令後追加 <code>--account 帳號標識</code>'),
|
||
zalouserGuide4: _('Allow From / Group Allow From 推荐使用数字 ID;名称匹配存在误配风险,默认关闭', 'Numeric IDs are recommended for Allow From / Group Allow From; name matching is risky and disabled by default', 'Allow From / Group Allow From 推薦使用數字 ID;名稱匹配存在誤配風險,預設關閉'),
|
||
zalouserGuide5: _('如登录状态异常,可执行 <code>openclaw channels logout --channel zalouser</code> 后重新登录', 'If login state is unhealthy, run <code>openclaw channels logout --channel zalouser</code> and log in again', '如登入狀態異常,可執行 <code>openclaw channels logout --channel zalouser</code> 後重新登入'),
|
||
zalouserGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Zalo Personal 是非官方个人号自动化集成,存在账号风控风险,请谨慎使用。</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Zalo Personal is an unofficial personal-account automation integration and may carry account risk. Use carefully.</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Zalo Personal 是非官方個人號自動化整合,存在帳號風控風險,請謹慎使用。</div>'),
|
||
zalouserProfileHint: _('默认可留空;多账号建议与账号标识一致,例如 work。', 'Leave empty for default; for multi-account setup, match the account identifier, e.g. work.'),
|
||
zalouserNameMatching: _('允许名称匹配', 'Allow Name Matching'),
|
||
zalouserNameMatchingHint: _('关闭时仅使用稳定 ID 匹配,避免同名联系人或群组误匹配。', 'When disabled, only stable IDs are matched to avoid wrong matches with duplicate names.'),
|
||
zalouserAllowFromPh: _('可选,逗号分隔用户 ID 或精确名称', 'Optional, comma-separated user IDs or exact names'),
|
||
zalouserAllowFromHint: _('推荐使用 Zalo 用户 ID;只有确认安全时才开启名称匹配。', 'Zalo user IDs are recommended; enable name matching only when you understand the risk.'),
|
||
zalouserGroupAllowFromPh: _('可选,逗号分隔群组 ID 或精确群名', 'Optional, comma-separated group IDs or exact group names'),
|
||
zalouserManualLoginHint: _('插件安装并保存配置后,在终端运行此命令完成二维码登录。多账号请追加 --account 账号标识。', 'After installing the plugin and saving config, run this command in your terminal to complete QR login. For multi-account setup, append --account account-id.'),
|
||
lineDesc: _('接入 LINE Messaging API,支持私聊、群组和 webhook 回调', 'Connect LINE Messaging API with DM, group, and webhook support'),
|
||
lineGuide1: _('前往 <a href="https://developers.line.biz/console/" target="_blank" rel="noopener">LINE Developers Console</a> 创建或打开 Messaging API Channel', 'Open <a href="https://developers.line.biz/console/" target="_blank" rel="noopener">LINE Developers Console</a> and create or open a Messaging API Channel'),
|
||
lineGuide2: _('在「Messaging API」页获取 <strong>Channel Access Token</strong>,在「Basic settings」页获取 <strong>Channel Secret</strong>', 'Get <strong>Channel Access Token</strong> from Messaging API and <strong>Channel Secret</strong> from Basic settings'),
|
||
lineGuide3: _('如果凭证由外部文件或 SecretRef 管理,可分别填写 Token File 与 Secret File', 'If credentials are managed by files or SecretRef, use Token File and Secret File instead'),
|
||
lineGuide4: _('配置 Webhook URL 指向 Gateway 暴露的 LINE webhook path,并在 LINE 控制台启用 Webhook', 'Set the Webhook URL to the Gateway LINE webhook path and enable Webhook in LINE Console'),
|
||
lineGuide5: _('设置私信/群组策略与允许列表,保存后面板会安装插件并重载 Gateway', 'Set DM/group policy and allowlists; after saving, the panel installs the plugin and reloads Gateway'),
|
||
lineGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">LINE 至少需要 Channel Access Token 或 Token File 其中一项,并且需要 Channel Secret 或 Secret File 其中一项。</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">LINE requires either Channel Access Token or Token File, and either Channel Secret or Secret File.</div>'),
|
||
lineAccessTokenPh: _('LINE Channel Access Token', 'LINE Channel Access Token'),
|
||
lineAccessTokenHint: _('与 Token File 二选一;如果当前值来自 SecretRef,保持占位不变即可保留引用。', 'Use either this or Token File; keep the SecretRef placeholder unchanged to preserve the reference.'),
|
||
lineTokenFilePh: _('可选,例如 /etc/openclaw/line-token.txt', 'Optional, e.g. /etc/openclaw/line-token.txt'),
|
||
lineTokenFileHint: _('当 Channel Access Token 由文件管理时填写;在线校验只会直接校验表单 Token。', 'Use this when Channel Access Token is file-managed; online verification only checks the form token directly.'),
|
||
lineChannelSecretPh: _('LINE Channel Secret', 'LINE Channel Secret'),
|
||
lineChannelSecretHint: _('与 Secret File 二选一,用于校验 LINE webhook 签名。', 'Use either this or Secret File; used to verify LINE webhook signatures.'),
|
||
lineSecretFilePh: _('可选,例如 /etc/openclaw/line-secret.txt', 'Optional, e.g. /etc/openclaw/line-secret.txt'),
|
||
lineSecretFileHint: _('当 Channel Secret 由文件管理时填写。', 'Use this when Channel Secret is file-managed.'),
|
||
lineAllowFromPh: _('可选,逗号分隔 LINE 用户 ID', 'Optional, comma-separated LINE user IDs'),
|
||
lineAllowFromHint: _('LINE 用户 ID 通常以 U 开头;留空表示按策略默认处理。', 'LINE user IDs usually start with U; leave empty to use policy defaults.'),
|
||
lineGroupAllowFromPh: _('可选,逗号分隔群组或聊天室 ID', 'Optional, comma-separated group or room IDs'),
|
||
lineTokenOrFile: _('Channel Access Token 或 Token File', 'Channel Access Token or Token File'),
|
||
lineSecretOrFile: _('Channel Secret 或 Secret File', 'Channel Secret or Secret File'),
|
||
mattermostDesc: _('接入自托管 Mattermost,支持私信、频道、slash command 和交互按钮', 'Connect self-hosted Mattermost with DMs, channels, slash commands, and interactions'),
|
||
mattermostGuide1: _('在 Mattermost 中创建 Bot Account,并复制 Personal Access Token 作为 Bot Token', 'Create a Bot Account in Mattermost and copy its Personal Access Token as Bot Token'),
|
||
mattermostGuide2: _('填写 Mattermost 站点 Base URL,例如 <code>https://mattermost.example.com</code>', 'Fill the Mattermost site Base URL, for example <code>https://mattermost.example.com</code>'),
|
||
mattermostGuide3: _('如启用 slash command,配置 Callback Path / URL,并确保 Mattermost 服务端能访问 Gateway', 'If slash commands are enabled, configure Callback Path / URL and ensure the Mattermost server can reach Gateway'),
|
||
mattermostGuide4: _('自托管内网地址需要显式开启 Private Network 开关,避免误连不受信任地址', 'For self-hosted private-network URLs, explicitly enable Private Network to avoid unsafe internal access'),
|
||
mattermostGuide5: _('设置私信/频道策略与允许列表,保存后面板会安装插件并重载 Gateway', 'Set DM/channel policy and allowlists; after saving, the panel installs the plugin and reloads Gateway'),
|
||
mattermostGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Mattermost 最小配置需要 Bot Token 与 Base URL。</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Mattermost minimally requires Bot Token and Base URL.</div>'),
|
||
mattermostBotTokenPh: _('Mattermost Bot Personal Access Token', 'Mattermost Bot Personal Access Token'),
|
||
mattermostBaseUrlHint: _('填写站点根地址,不要包含 /api/v4;末尾斜杠会在运行时自动归一化。', 'Use the site root URL without /api/v4; trailing slash is normalized at runtime.'),
|
||
mattermostAllowFromPh: _('可选,逗号分隔用户名或用户 ID', 'Optional, comma-separated usernames or user IDs'),
|
||
mattermostAllowFromHint: _('用户名可带 @;选择“允许所有私信”时会自动加入 *。', 'Usernames may include @; choosing Allow all DMs automatically adds *.'),
|
||
mattermostGroupAllowFromPh: _('可选,逗号分隔频道 ID 或频道名称', 'Optional, comma-separated channel IDs or channel names'),
|
||
mattermostCallbackPathHint: _('用于 slash command/交互回调的 Gateway HTTP path。', 'Gateway HTTP path for slash command and interaction callbacks.'),
|
||
mattermostNameMatching: _('允许名称匹配', 'Allow Name Matching'),
|
||
mattermostNameMatchingHint: _('关闭时优先使用稳定 ID,避免同名用户或频道误匹配。', 'When disabled, prefer stable IDs to avoid wrong matches with duplicate users or channels.'),
|
||
mattermostPrivateNetwork: _('允许内网地址', 'Allow Private Network'),
|
||
mattermostPrivateNetworkHint: _('仅在 Mattermost 部署于可信内网时开启。', 'Enable only when Mattermost is deployed on a trusted private network.'),
|
||
synologyChatDesc: _('接入群晖 Synology Chat,适合 NAS 内网团队协作', 'Connect Synology Chat for NAS-hosted team messaging'),
|
||
synologyChatGuide1: _('在 Synology Chat 管理后台创建 Bot,并复制 Token', 'Create a bot in Synology Chat administration and copy its Token'),
|
||
synologyChatGuide2: _('配置 Incoming Webhook 或机器人发消息 URL,填入 Incoming URL', 'Configure an Incoming Webhook or bot post URL, then paste it as Incoming URL'),
|
||
synologyChatGuide3: _('在 Synology Chat 中配置 Outgoing Webhook,路径建议使用 /webhook/synology', 'Configure the Outgoing Webhook path in Synology Chat; /webhook/synology is recommended'),
|
||
synologyChatGuide4: _('保存后重启或重载 Gateway,再在目标频道测试消息', 'Save, reload Gateway, then test from the target channel'),
|
||
synologyChatGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">内网 NAS 场景如需访问私有地址,请确认 Gateway 网络能访问 NAS。</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">For private NAS networks, make sure Gateway can reach the NAS host.</div>'),
|
||
synologyChatTokenPh: _('Synology Chat Bot Token', 'Synology Chat Bot Token'),
|
||
synologyChatIncomingUrlHint: _('Synology Chat Incoming Webhook URL,用于机器人发送回复', 'Synology Chat Incoming Webhook URL used to send bot replies'),
|
||
synologyChatAllowedUserIdsHint: _('DM 白名单用户 ID,逗号分隔;dmPolicy=allowlist 时生效', 'Comma-separated DM allowlist user IDs; used when dmPolicy=allowlist'),
|
||
synologyChatNameMatching: _('允许名称匹配', 'Allow name matching'),
|
||
synologyChatNameMatchingHint: _('仅在无法稳定获取用户 ID 时使用;更推荐填写用户 ID', 'Use only when stable user IDs are unavailable; IDs are safer'),
|
||
synologyChatInheritedWebhookPath: _('允许继承 Webhook Path', 'Allow inherited Webhook Path'),
|
||
synologyChatInheritedWebhookPathHint: _('多账号共享根配置 webhookPath 时开启', 'Enable when multiple accounts share the root webhookPath'),
|
||
synologyChatAllowInsecureSsl: _('允许不安全 SSL', 'Allow insecure SSL'),
|
||
synologyChatAllowInsecureSslHint: _('仅用于自签名证书或内网测试环境', 'Use only for self-signed certificates or trusted internal testing'),
|
||
googleChatDesc: _('接入 Google Chat App,支持空间消息和私聊', 'Connect a Google Chat App for spaces and direct messages'),
|
||
googleChatGuide1: _('在 Google Cloud 中创建 Chat App,并启用 Google Chat API', 'Create a Chat App in Google Cloud and enable the Google Chat API'),
|
||
googleChatGuide2: _('创建 Service Account,下载 JSON 文件或准备内联 JSON', 'Create a Service Account, then download its JSON file or prepare inline JSON'),
|
||
googleChatGuide3: _('配置 Google Chat 回调 URL,并设置 audienceType 与 audience', 'Configure the Google Chat callback URL and set audienceType plus audience'),
|
||
googleChatGuide4: _('保存后重启或重载 Gateway,再邀请应用到目标 Space 测试', 'Save, reload Gateway, then invite the app to a target Space for testing'),
|
||
googleChatGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">建议优先使用 Service Account File,避免在配置文件中直接粘贴长 JSON。</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Prefer Service Account File in production to avoid storing long JSON inline.</div>'),
|
||
googleChatServiceAccountFileHint: _('Service Account JSON 文件路径,推荐用于生产环境', 'Path to the Service Account JSON file; recommended for production'),
|
||
googleChatServiceAccountHint: _('可直接粘贴 Service Account JSON;保存后会写入 openclaw.json', 'Paste Service Account JSON inline; it will be written to openclaw.json'),
|
||
googleChatServiceAccountRefHint: _('已有 SecretRef 时可保留或手动填写,如 SecretRef(env:default:GOOGLE_CHAT_SERVICE_ACCOUNT)', 'Preserve or enter an existing SecretRef, e.g. SecretRef(env:default:GOOGLE_CHAT_SERVICE_ACCOUNT)'),
|
||
googleChatAudienceHint: _('app-url 模式填回调 URL;project-number 模式填 Google Cloud 项目编号', 'Use callback URL for app-url mode; use Google Cloud project number for project-number mode'),
|
||
googleChatAllowFromHint: _('DM 白名单,使用 users/<id> 或邮箱,逗号分隔', 'DM allowlist, using users/<id> or email entries separated by commas'),
|
||
googleChatGroupAllowFromHint: _('Space 白名单,使用 spaces/<id>,逗号分隔', 'Space allowlist, using spaces/<id> entries separated by commas'),
|
||
googleChatNameMatching: _('允许名称匹配', 'Allow name matching'),
|
||
googleChatNameMatchingHint: _('默认建议使用稳定 ID;仅在邮箱/名称匹配必需时开启', 'Stable IDs are preferred; enable only when email/name matching is required'),
|
||
googleChatRequireMention: _('群组要求提及', 'Require mention in groups'),
|
||
googleChatServiceAccountRequired: _('Service Account File / JSON / SecretRef', 'Service Account File / JSON / SecretRef'),
|
||
discordDesc: _('接入 Discord Bot,支持服务器频道和私信', 'Connect a Discord Bot, supports server channels and DMs', '接入 Discord Bot,支援伺服器頻道和私信', 'Discord Bot に接続'),
|
||
discordGuide1: _('前往 <a href="https://discord.com/developers/applications" target="_blank" rel="noopener">Discord Developer Portal</a> 创建 Application', '前往 <a href="https://discord.com/developers/applications" target="_blank" rel="noopener">Discord Developer Portal</a> 创建 Application', '前往 <a href="https://discord.com/developers/applications" target="_blank" rel="noopener">Discord Developer Portal</a> 建立 Application'),
|
||
discordGuide2: _('在 Bot 页面点击「Reset Token」获取 <strong>Bot Token</strong>', 'Click "Reset Token" on the Bot page to get the <strong>Bot Token</strong>', '在 Bot 頁面点擊「Reset Token」取得 <strong>Bot Token</strong>'),
|
||
discordGuide3: _('开启 <strong>MESSAGE CONTENT INTENT</strong>', 'Enable <strong>MESSAGE CONTENT INTENT</strong>', '開啟 <strong>MESSAGE CONTENT INTENT</strong>'),
|
||
discordGuide4: _('使用 OAuth2 URL Generator 邀请 Bot 加入服务器', 'Use OAuth2 URL Generator to invite the Bot to your server', '使用 OAuth2 URL Generator 邀請 Bot 加入伺服器'),
|
||
discordGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">确保开启 Message Content Intent 以接收消息内容</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">确保开启 Message Content Intent 以接收消息内容</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">確保開啟 Message Content Intent 以接收訊息內容</div>'),
|
||
slackDesc: _('接入 Slack App,支持频道和私信', 'Connect a Slack App, supports channels and DMs', '接入 Slack App,支援頻道和私信', 'Slack に接続'),
|
||
slackGuide1: _('前往 <a href="https://api.slack.com/apps" target="_blank" rel="noopener">Slack API</a> 创建 App(推荐 From a manifest)', '前往 <a href="https://api.slack.com/apps" target="_blank" rel="noopener">Slack API</a> 创建 App(推荐 From a manifest)', '前往 <a href="https://api.slack.com/apps" target="_blank" rel="noopener">Slack API</a> 建立 App(推薦 From a manifest)'),
|
||
slackGuide2: _('在 OAuth & Permissions 中添加 Bot Token Scopes:<code>chat:write</code>、<code>app_mentions:read</code> 等', 'Add Bot Token Scopes in OAuth & Permissions: <code>chat:write</code>, <code>app_mentions:read</code>, etc.', '在 OAuth & Permissions 中新增 Bot Token Scopes:<code>chat:write</code>、<code>app_mentions:read</code> 等'),
|
||
slackGuide3: _('安装 App 到工作区,获取 <strong>Bot Token</strong>(xoxb-)', 'Install the App to your workspace and get the <strong>Bot Token</strong> (xoxb-)', '安裝 App 到工作區,取得 <strong>Bot Token</strong>(xoxb-)'),
|
||
slackGuide4: _('Socket Mode:在 Basic Information 中开启 Socket Mode,获取 <strong>App-Level Token</strong>(xapp-)', 'Socket Mode: Enable Socket Mode in Basic Information and get the <strong>App-Level Token</strong> (xapp-)', 'Socket Mode:在 Basic Information 中開啟 Socket Mode,取得 <strong>App-Level Token</strong>(xapp-)'),
|
||
slackGuide5: _('HTTP Mode:在 Event Subscriptions 中填入请求 URL', 'HTTP Mode: Fill in the Request URL under Event Subscriptions', 'HTTP Mode:在 Event Subscriptions 中填入請求 URL'),
|
||
slackGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Socket Mode 无需公网地址;HTTP Mode 需要配置事件回调 URL</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Socket Mode 无需公网地址;HTTP Mode 需要配置事件回调 URL</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">Socket Mode 無需公網位址;HTTP Mode 需要設定事件回調 URL</div>'),
|
||
modeLabel: _('连接模式', 'Connection Mode', '連線模式'),
|
||
slackSocketMode: _('Socket Mode(推荐)', 'Socket Mode (recommended)', 'Socket Mode(推薦)'),
|
||
slackHttpMode: _('HTTP Mode', 'HTTP Mode'),
|
||
slackAppTokenHint: _('Socket Mode 需要 App-Level Token (xapp-)', 'Socket Mode requires App-Level Token (xapp-)'),
|
||
slackSigningSecretPh: _('Signing Secret', 'Signing Secret'),
|
||
slackSigningSecretHint: _('HTTP Mode 下用于验证请求签名', 'Used to verify request signatures in HTTP Mode', 'HTTP Mode 下用於驗證請求簽章'),
|
||
slackTeamIdPh: _('可选,如 T01234567', 'Optional, e.g. T01234567', '可選,如 T01234567'),
|
||
slackWebhookPathPh: _('可选,如 /slack/events', 'Optional, e.g. /slack/events', '可選,如 /slack/events'),
|
||
dmPolicy: _('私信策略', 'DM Policy'),
|
||
policyDefault: _('默认', 'Default', '預設'),
|
||
dmAllow: _('允许私信', 'Allow DMs', '允許私信'),
|
||
dmDeny: _('拒绝私信', 'Deny DMs', '拒絕私信'),
|
||
dmPairing: _('配对 / 白名单', 'Pairing / allowlist', '配對 / 白名單'),
|
||
dmOpen: _('允许所有私信', 'Allow all DMs', '允許所有私信'),
|
||
dmAllowlist: _('仅白名单私信', 'Allowlist only', '僅白名單私信'),
|
||
dmDisabled: _('禁用私信', 'Disable DMs', '停用私信'),
|
||
groupPolicy: _('群组策略', 'Group Policy', '群組策略'),
|
||
groupAllChannels: _('所有频道', 'All channels', '所有頻道'),
|
||
groupAllSpaces: _('所有 Space', 'All Spaces'),
|
||
groupMentionOnly: _('仅 @提及时', 'Only when @mentioned', '僅 @提及時'),
|
||
groupAllowlist: _('白名单', 'Allowlist', '白名單'),
|
||
groupDisabled: _('禁用群组', 'Disable groups', '停用群組'),
|
||
allowFromPh: _('可选,逗号分隔用户/频道 ID', 'Optional, comma-separated user/channel IDs', '可選,逗號分隔使用者/頻道 ID'),
|
||
allowFromHint: _('限制允许的用户或频道 ID,留空不限制', 'Restrict to specific user or channel IDs; leave empty for no restriction', '限制允許的使用者或頻道 ID,留空不限制'),
|
||
accountName: _('账号名称', 'Account Name'),
|
||
weixinLabel: _('微信', 'WeChat'),
|
||
weixinDesc: _('通过 openclaw-weixin 插件接入个人微信', 'Connect personal WeChat via the openclaw-weixin plugin', '通過 openclaw-weixin 外掛接入個人微信'),
|
||
weixinGuide1: _('本功能基于 <strong>openclaw-weixin</strong> 插件', 'This feature is powered by the <strong>openclaw-weixin</strong> plugin', '本功能基於 <strong>openclaw-weixin</strong> 外掛'),
|
||
weixinGuide2: _('点击下方「一键安装插件」自动安装', 'Click "Install Plugin" below to auto-install', '点擊下方「一鍵安裝外掛」自動安裝'),
|
||
weixinGuide3: _('安装完成后点击「扫码登录」,用手机微信扫描二维码', 'After installation, click "Scan to Login" and scan the QR code with your phone', '安裝完成后点擊「掃碼登入」,用手機微信掃描二维碼'),
|
||
weixinGuide4: _('登录成功后 Gateway 会自动接管消息', 'Once logged in, Gateway will automatically handle messages', '登入成功后 Gateway 會自動接管訊息'),
|
||
weixinGuide5: _('若掉线需重新扫码登录', 'Re-scan is needed if disconnected', '若掉線需重新掃碼登入'),
|
||
weixinGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">注意:个人微信接入存在风控风险,建议使用小号</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">注意:个人微信接入存在风控风险,建议使用小号</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">注意:個人微信接入存在風控風險,建議使用小號</div>'),
|
||
weixinInstall: _('一键安装插件', 'Install Plugin', '一鍵安裝外掛'),
|
||
weixinInstallHint: _('自动下载并安装 openclaw-weixin 插件', 'Auto-download and install the openclaw-weixin plugin', '自動下載並安裝 openclaw-weixin 外掛'),
|
||
weixinLogin: _('扫码登录', 'Scan to Login', '掃碼登入'),
|
||
weixinLoginHint: _('启动微信登录流程,扫码后自动接管消息', 'Start the WeChat login flow; messages are handled after scanning', '啟動微信登入流程,掃碼后自動接管訊息'),
|
||
weixinScanQr: _('用手机微信扫描此二维码', 'Scan this QR code with WeChat on your phone', '用手機微信掃描此二维碼'),
|
||
msteamsDesc: _('接入 Microsoft Teams Bot', 'Connect a Microsoft Teams Bot'),
|
||
msteamsGuide1: _('在 <a href="https://portal.azure.com" target="_blank" rel="noopener">Azure Portal</a> 注册 Bot Channel Registration', '在 <a href="https://portal.azure.com" target="_blank" rel="noopener">Azure Portal</a> 注册 Bot Channel Registration', '在 <a href="https://portal.azure.com" target="_blank" rel="noopener">Azure Portal</a> 註冊 Bot Channel Registration'),
|
||
msteamsGuide2: _('获取 <strong>App ID</strong> 和 <strong>App Password</strong>', 'Get the <strong>App ID</strong> and <strong>App Password</strong>', '取得 <strong>App ID</strong> 和 <strong>App Password</strong>'),
|
||
msteamsGuide3: _('在 Teams 中安装自定义 App', 'Install the custom App in Teams', '在 Teams 中安裝自定義 App'),
|
||
msteamsGuide4: _('配置消息端点 URL', 'Configure the messaging endpoint URL', '設定訊息端点 URL'),
|
||
msteamsGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要 Azure AD 应用注册和 Teams 管理员权限</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要 Azure AD 应用注册和 Teams 管理员权限</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要 Azure AD 應用註冊和 Teams 管理員權限</div>'),
|
||
msteamsAppPasswordHint: _('Client Secret 模式必填;Federated / Managed Identity 可留空', 'Required for Client Secret mode; leave empty for Federated / Managed Identity', 'Client Secret 模式必填;Federated / Managed Identity 可留空'),
|
||
msteamsTenantIdPh: _('可选,单租户时填写', 'Optional, fill for single-tenant', '可選,單租戶時填写'),
|
||
msteamsAllowFromPh: _('可选,逗号分隔', 'Optional, comma-separated', '可選,逗號分隔'),
|
||
msteamsGroupAllowFromPh: _('可选,逗号分隔 Team 或 Channel ID', 'Optional, comma-separated Team or Channel IDs', '可選,逗號分隔 Team 或 Channel ID'),
|
||
msteamsPromptStartersPh: _('可选,逗号分隔,例如 help, status', 'Optional, comma-separated, e.g. help, status', '可選,逗號分隔,例如 help, status'),
|
||
msteamsDelegatedScopesPh: _('可选,逗号分隔 Microsoft Graph scopes', 'Optional, comma-separated Microsoft Graph scopes', '可選,逗號分隔 Microsoft Graph scopes'),
|
||
signalDesc: _('接入 Signal Messenger', 'Connect to Signal Messenger', '', 'Signal に接続'),
|
||
signalGuide1: _('安装 <a href="https://github.com/AsamK/signal-cli" target="_blank" rel="noopener">signal-cli</a> 并注册/链接账号', '安装 <a href="https://github.com/AsamK/signal-cli" target="_blank" rel="noopener">signal-cli</a> 并注册/链接账号', '安裝 <a href="https://github.com/AsamK/signal-cli" target="_blank" rel="noopener">signal-cli</a> 並註冊/連結账號'),
|
||
signalGuide2: _('确保 signal-cli 可正常收发消息', 'Ensure signal-cli can send and receive messages', '確保 signal-cli 可正常收發訊息'),
|
||
signalGuide3: _('填入账号信息和 signal-cli 路径', 'Fill in account info and signal-cli path', '填入账號資訊和 signal-cli 路徑'),
|
||
signalGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要本地安装 signal-cli 并完成账号注册</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要本地安装 signal-cli 并完成账号注册</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">需要本地安裝 signal-cli 並完成账號註冊</div>'),
|
||
signalAccountLabel: _('Signal 账号', 'Signal Account', 'Signal 账號'),
|
||
signalAccountPh: _('+1234567890', '+1234567890'),
|
||
signalCliPathLabel: _('signal-cli 路径', 'signal-cli Path', 'signal-cli 路徑'),
|
||
signalCliPathPh: _('可选,默认从 PATH 查找', 'Optional, defaults to PATH lookup', '可選,預設從 PATH 尋找'),
|
||
signalAllowFromPh: _('可选,逗号分隔', 'Optional, comma-separated', '可選,逗號分隔'),
|
||
signalGroupAllowFromPh: _('可选,逗号分隔群组 ID', 'Optional, comma-separated group IDs', '可選,逗號分隔群組 ID'),
|
||
signalBlockStreaming: _('阻止流式分块', 'Block streaming chunks', '阻止串流分塊'),
|
||
matrixDesc: _('接入 Matrix 协议(Element 等客户端)', 'Connect via Matrix protocol (Element and other clients)', '接入 Matrix 协議(Element 等用戶端)', 'Matrix プロトコルに接続'),
|
||
matrixGuide1: _('在 Matrix 服务器上注册 Bot 账号', 'Register a Bot account on a Matrix server', '在 Matrix 伺服器上註冊 Bot 账號'),
|
||
matrixGuide2: _('获取 <strong>Access Token</strong>(或使用用户名密码)', 'Get an <strong>Access Token</strong> (or use username & password)', '取得 <strong>Access Token</strong>(或使用使用者名密碼)'),
|
||
matrixGuide3: _('邀请 Bot 加入目标房间', 'Invite the Bot to the target room', '邀請 Bot 加入目標房間'),
|
||
matrixGuideFooter: _('<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">支持任何兼容 Matrix 协议的服务器</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">支持任何兼容 Matrix 协议的服务器</div>', '<div style="margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)">支援任何相容 Matrix 协議的伺服器</div>'),
|
||
matrixAccessTokenHint: _('使用 Access Token 或 User ID + Password 二选一', 'Use either Access Token or User ID + Password', '使用 Access Token 或 User ID + Password 二選一'),
|
||
matrixPasswordPh: _('使用 Access Token 时可留空', 'Leave empty when using Access Token', '使用 Access Token 時可留空'),
|
||
matrixAllowFromPh: _('可选,逗号分隔用户 ID', 'Optional, comma-separated user IDs', '可選,逗號分隔使用者 ID'),
|
||
matrixAuthRequired: _('Matrix 需要填写 Access Token,或填写 User ID + Password', 'Matrix requires an Access Token, or User ID + Password'),
|
||
groupAllGroups: _('所有群组', 'All groups', '所有群組'),
|
||
groupAllRooms: _('所有房间', 'All rooms', '所有房間'),
|
||
groupAllTeams: _('所有团队', 'All teams', '所有團队'),
|
||
groupMentionBot: _('仅 @机器人时', 'Only when @bot', '僅 @機器人時'),
|
||
optionalEg: _('可选,如 {example}', 'Optional, e.g. {example}', '可選,如 {example}'),
|
||
editAccountLabel: _('编辑 {id}', 'Edit {id}', '編輯 {id}'),
|
||
bound: _('已绑定', 'Bound', '已綁定'),
|
||
notBoundAgent: _('未绑定 Agent', 'No Agent bound', '未綁定 Agent'),
|
||
addAgentBindingForAccount: _('添加 Agent 绑定', 'Add Agent Binding', '新增 Agent 綁定'),
|
||
addAgentBindingSub: _('为该账号添加新的 Agent 路由', 'Add a new Agent route for this account', '為該账號新增新的 Agent 路由'),
|
||
editConfig: _('编辑配置', 'Edit Config', '編輯設定'),
|
||
addAgentBinding: _('添加 Agent 绑定', 'Add Agent Binding', '新增 Agent 綁定'),
|
||
routeToAgent: _('将收到的消息路由到指定 Agent', 'Route incoming messages to a specific Agent', '將收到的訊息路由到指定 Agent'),
|
||
addNewAccount: _('添加新账号', 'Add New Account', '新增新账號'),
|
||
addNewAccountSub: _('创建一个新的机器人账号配置', 'Create a new bot account configuration', '建立一個新的機器人账號設定'),
|
||
actions: _('操作', 'Actions', '', '操作'),
|
||
bindAgentTitle: _('绑定 Agent', 'Bind Agent', '綁定 Agent'),
|
||
targetAgent: _('目标 Agent', 'Target Agent', '目標 Agent'),
|
||
targetAgentHint: _('选择接收消息的 Agent', 'Select the Agent to receive messages', '選擇接收訊息的 Agent'),
|
||
peerScope: _('匹配范围', 'Match Scope', '匹配範圍'),
|
||
peerAll: _('全部(私聊+群聊)', 'All (DM + Group)'),
|
||
peerAllHint: _('接收该渠道所有消息', 'Receive all messages from this channel', '接收該頻道所有訊息'),
|
||
peerDirect: _('仅私聊', 'DM Only', '僅私聊'),
|
||
peerDirectHint: _('仅接收一对一私聊消息', 'Only receive one-on-one direct messages', '僅接收一对一私聊訊息'),
|
||
peerDirectLabel: _('私聊', 'DM'),
|
||
peerGroup: _('仅群聊', 'Group Only', '僅群聊'),
|
||
peerGroupHint: _('仅接收群组/频道消息', 'Only receive group/channel messages', '僅接收群組/頻道訊息'),
|
||
peerGroupLabel: _('群聊', 'Group'),
|
||
peerIdHint: _('目标 ID', 'Target ID', '目標 ID'),
|
||
peerIdHintDetailed: _('限定特定群/用户 ID,留空则匹配所有', 'Restrict to a specific group/user ID; leave empty to match all', '限定特定群/使用者 ID,留空則匹配所有'),
|
||
targetId: _('目标 ID', 'Target ID', '目標 ID'),
|
||
saveBinding: _('保存绑定', 'Save Binding', '儲存綁定'),
|
||
duplicateBinding: _('已存在相同的绑定配置', 'A binding with the same configuration already exists', '已存在相同的綁定設定'),
|
||
saving: _('保存中...', 'Saving...', '儲存中...', '保存中...', '저장 중...'),
|
||
bindingSaved: _('绑定已保存', 'Binding saved', '綁定已儲存'),
|
||
saveFailed: _('保存失败', 'Save failed', '儲存失敗', '保存失敗', '저장 실패', 'Lưu thất bại', 'Error al guardar', 'Falha ao salvar', 'Ошибка сохранения', 'Échec de la sauvegarde', 'Speichern fehlgeschlagen'),
|
||
accountLabel: _('账号', 'Account', '账號'),
|
||
defaultAccount: _('默认账号', 'Default Account', '預設账號'),
|
||
accountShort: _('账号', 'Acct', '账號'),
|
||
peerDm: _('私聊', 'DM'),
|
||
peerGroupShort: _('群聊', 'Group'),
|
||
peerChannelShort: _('频道', 'Channel', '頻道'),
|
||
noAgents: _('暂无 Agent', 'No Agents', '暫無 Agent'),
|
||
orphanAgent: _('配置中存在绑定,但当前 Agent 列表中无此 ID', 'Binding exists in config but Agent ID not found in current list', '設定中存在綁定,但目前 Agent 列表中無此 ID'),
|
||
diagnose: _('联通诊断', 'Diagnose', '聯通诊斷'),
|
||
remove: _('移除', 'Remove'),
|
||
noBindings: _('尚未绑定任何渠道', 'No channel bindings yet', '尚未綁定任何頻道'),
|
||
addChannelBinding: _('添加渠道绑定', 'Add Channel Binding', '新增頻道綁定'),
|
||
enableChannelFirst: _('请先在「渠道列表」中接入并启用至少一个渠道', 'Please connect and enable at least one channel in "Channel List" first', '請先在「頻道列表」中接入並啟用至少一個頻道'),
|
||
confirmRemoveBinding: _('确定移除该绑定?', 'Remove this binding?', '確定移除該綁定?'),
|
||
removeBindingTitle: _('移除 Agent 绑定', 'Remove Agent binding', '移除 Agent 綁定', 'Agent 連携を削除', 'Agent 연결 제거', 'Xoá liên kết Agent', 'Eliminar vinculación de Agent', 'Remover vínculo de Agent', 'Удалить привязку Agent', 'Supprimer la liaison Agent', 'Agent-Verknüpfung entfernen'),
|
||
removeBindingBtn: _('移除', 'Remove', '移除', '削除', '제거', 'Xoá', 'Eliminar', 'Remover', 'Удалить', 'Supprimer', 'Entfernen'),
|
||
removeBindingCancel: _('保留', 'Keep', '保留', '保持', '유지', 'Giữ lại', 'Conservar', 'Manter', 'Оставить', 'Conserver', 'Behalten'),
|
||
removeBindingImpactAgent: _('该 Agent 将不再通过此渠道接收消息', 'The Agent will stop receiving messages from this channel', '該 Agent 將不再透過此頻道接收訊息', 'この Agent はこのチャンネルからメッセージを受信しなくなります', '이 Agent는 이 채널을 통한 메시지 수신을 중지합니다', 'Agent sẽ không nhận tin nhắn qua kênh này nữa', 'El Agent dejará de recibir mensajes por este canal', 'O Agent deixará de receber mensagens por este canal', 'Agent перестанет принимать сообщения по этому каналу', 'L\u2019Agent ne recevra plus de messages via ce canal', 'Der Agent erhält keine Nachrichten mehr über diesen Kanal'),
|
||
removeBindingImpactConfig: _('渠道平台本身的配置和凭证会被保留', 'The channel platform configuration and credentials will be kept', '頻道平台本身的設定和憑證會被保留', 'チャンネルプラットフォーム自体の設定と認証情報は保持されます', '채널 플랫폼 자체의 설정과 자격 증명은 유지됩니다', 'Cấu hình và thông tin xác thực của nền tảng kênh sẽ được giữ lại', 'La configuración y credenciales de la plataforma del canal se conservarán', 'A configuração e credenciais da plataforma do canal serão mantidas', 'Конфигурация и учётные данные платформы канала будут сохранены', 'La configuration et les identifiants de la plateforme du canal seront conservés', 'Konfiguration und Anmeldedaten der Kanalplattform bleiben erhalten'),
|
||
bindingRemoved: _('绑定已移除', 'Binding removed', '綁定已移除'),
|
||
addBindingForAgent: _('为 {agent} 添加渠道绑定', 'Add channel binding for {agent}', '為 {agent} 新增頻道綁定'),
|
||
channel: _('渠道', 'Channel', '頻道'),
|
||
bindingIndependentHint: _('每条绑定独立生效,可为同一渠道添加多条不同匹配规则', 'Each binding works independently; you can add multiple rules for the same channel', '每條綁定獨立生效,可為同一頻道新增多條不同匹配規則'),
|
||
subAccount: _('子账号', 'Sub-account', '子账號'),
|
||
noMultiAccount: _('该渠道不支持多账号', 'This channel does not support multiple accounts', '該頻道不支援多账號'),
|
||
noMultiAccountHint: _('请先在渠道列表中添加多个账号', 'Add multiple accounts in the channel list first', '請先在頻道列表中新增多個账號'),
|
||
confirmRemoveAccount: _('确定移除该账号及其所有配置?', 'Remove this account and all its config?', '確定移除該账號及其所有設定?'),
|
||
removed: _('已移除', 'Removed'),
|
||
removeFailed: _('移除失败', 'Remove failed', '移除失敗'),
|
||
disabled: _('已禁用', 'Disabled', '已停用'),
|
||
enabled: _('已启用', 'Enabled', '已啟用'),
|
||
operationFailed: _('操作失败', 'Operation failed', '操作失敗'),
|
||
confirmRemovePlatform: _('确定移除该平台及其所有配置?', 'Remove this platform and all its config?', '確定移除該平台及其所有設定?'),
|
||
removePlatformTitle: _('移除平台「{name}」', 'Remove platform "{name}"', '移除平台「{name}」', 'プラットフォーム「{name}」を削除', '플랫폼「{name}」 제거', 'Xoá nền tảng "{name}"', 'Eliminar plataforma "{name}"', 'Remover plataforma "{name}"', 'Удалить платформу "{name}"', 'Supprimer la plateforme "{name}"', 'Plattform "{name}" entfernen'),
|
||
removePlatformBtn: _('移除', 'Remove', '移除', '削除', '제거', 'Xoá', 'Eliminar', 'Remover', 'Удалить', 'Supprimer', 'Entfernen'),
|
||
removePlatformCancel: _('保留', 'Keep', '保留', '保持', '유지', 'Giữ lại', 'Conservar', 'Manter', 'Оставить', 'Conserver', 'Behalten'),
|
||
removePlatformImpactBindings: _('解除该平台关联的 {n} 个 Agent 绑定', 'Unbind the {n} Agent binding(s) linked to this platform', '解除該平台關聯的 {n} 個 Agent 綁定', 'このプラットフォームに紐づく {n} 件の Agent 連携を解除', '이 플랫폼과 연결된 {n}개 Agent 연결을 해제', 'Huỷ {n} liên kết Agent gắn với nền tảng này', 'Se desvincularán los {n} Agent vinculados a esta plataforma', 'Serão removidas as {n} vinculações de Agent ligadas a esta plataforma', 'Будут отменены {n} привязок Agent к этой платформе', 'Les {n} liaisons d\u2019Agent associées à cette plateforme seront supprimées', '{n} Agent-Verknüpfungen mit dieser Plattform werden aufgehoben'),
|
||
removePlatformImpactConfig: _('该平台的配置和凭证将被删除', 'Platform configuration and credentials will be deleted', '該平台的設定和憑證將被刪除', 'プラットフォームの設定と認証情報が削除されます', '플랫폼 설정과 자격 증명이 삭제됩니다', 'Cấu hình và thông tin xác thực của nền tảng sẽ bị xoá', 'La configuración y las credenciales de la plataforma serán eliminadas', 'A configuração e credenciais da plataforma serão excluídas', 'Конфигурация и учётные данные платформы будут удалены', 'La configuration et les identifiants de la plateforme seront supprimés', 'Konfiguration und Anmeldedaten der Plattform werden gelöscht'),
|
||
removePlatformImpactStop: _('Gateway 重启后该平台将停止接收消息', 'After Gateway restart, this platform will stop receiving messages', 'Gateway 重啟後該平台將停止接收訊息', 'Gateway 再起動後、このプラットフォームはメッセージの受信を停止', 'Gateway 재시작 후 이 플랫폼은 메시지 수신을 중지', 'Sau khi khởi động lại Gateway, nền tảng này sẽ ngừng nhận tin nhắn', 'Tras reiniciar el Gateway, esta plataforma dejará de recibir mensajes', 'Após reiniciar o Gateway, esta plataforma deixará de receber mensagens', 'После перезапуска Gateway эта платформа перестанет принимать сообщения', 'Après le redémarrage du Gateway, cette plateforme cessera de recevoir les messages', 'Nach Gateway-Neustart wird diese Plattform keine Nachrichten mehr empfangen'),
|
||
supportsActions: _('支持操作', 'Supports actions', '支援操作'),
|
||
connectedClickEdit: _('已接入,点击编辑', 'Connected, click to edit', '已接入,点擊編輯'),
|
||
qqDiagAllPassed: _('全部检查通过 ✓', 'All checks passed ✓', '全部檢查通過 ✓'),
|
||
qqDiagHasFailed: _('存在未通过的检查项', 'Some checks failed', '存在未通過的檢查項'),
|
||
qqRepairHint: _('可尝试一键修复:重新安装插件并重启 Gateway', 'Try one-click repair: reinstall plugin and restart Gateway', '可尝試一鍵修复:重新安裝外掛並重啟 Gateway'),
|
||
qqRepairBtn: _('一键修复', 'One-Click Repair', '一鍵修复'),
|
||
qqFaqBtn: _('打开 QQ OpenClaw 常见问题', 'Open QQ OpenClaw FAQ', '開啟 QQ OpenClaw 常见問題'),
|
||
qqDiagTitle: _('QQ 联通诊断', 'QQ Connectivity Diagnosis', 'QQ 聯通诊斷'),
|
||
channelDiagTitle: _('{platform} 联通诊断', '{platform} Connectivity Diagnosis', '{platform} 聯通诊斷'),
|
||
channelDiagAllPassed: _('配置侧检查已通过', 'Configuration checks passed', '設定側檢查已通過'),
|
||
channelDiagHasFailed: _('存在需要处理的检查项', 'Some checks need attention', '存在需要處理的檢查項'),
|
||
channelDiagPassed: _('通过', 'Passed', '通過'),
|
||
channelDiagNeedsAction: _('需处理', 'Needs action', '需處理'),
|
||
channelDiagNoChecks: _('暂无诊断结果', 'No diagnosis results yet', '暫無诊斷結果'),
|
||
notes: _('说明', 'Notes', '說明'),
|
||
processing: _('处理中...', 'Processing...', '處理中...'),
|
||
repairDone: _('修复完成', 'Repair complete'),
|
||
repairFailed: _('修复失败', 'Repair failed', '修复失敗'),
|
||
unknownChannelType: _('无法识别渠道类型', 'Unrecognized channel type', '無法識別頻道類型'),
|
||
diagnosing: _('诊断中...', 'Diagnosing...', '诊斷中...'),
|
||
testing: _('测试中...', 'Testing...', '測試中...', 'テスト中...', '테스트 중...', 'Đang kiểm tra...', 'Probando...', 'Testando...', 'Проверка...', 'Test en cours...', 'Wird getestet...'),
|
||
noCredentialsFound: _('未找到该渠道在配置中的凭证', 'No credentials found for this channel in config', '未找到該頻道在設定中的憑證'),
|
||
testPassed: _('渠道测试通过', 'Channel test passed', '頻道測試通過'),
|
||
verifyFailed: _('校验失败', 'Verification failed', '校驗失敗'),
|
||
testFailed: _('渠道测试失败', 'Channel test failed', '頻道測試失敗', '接続失敗', '연결 실패', 'Kết nối thất bại', 'Conexión fallida', 'Conexão falhou', 'Ошибка подключения', 'Connexion échouée', 'Verbindung fehlgeschlagen'),
|
||
diagFailed: _('诊断失败', 'Diagnosis failed', '诊斷失敗'),
|
||
connectingGateway: _('连接 Gateway...', 'Connecting Gateway...', '連線 Gateway...'),
|
||
gatewayNotConnected: _('Gateway 未连接', 'Gateway not connected', 'Gateway 未連線'),
|
||
generatingQr: _('正在生成二维码...', 'Generating QR code...', '正在生成二维碼...'),
|
||
generatingQrShort: _('生成二维码...', 'Generating QR...', '生成二维碼...'),
|
||
whatsappScanQr: _('用手机 WhatsApp 扫描此二维码', 'Scan this QR code with WhatsApp on your phone', '用手機 WhatsApp 掃描此二维碼'),
|
||
whatsappScanPath: _('WhatsApp → 已连接的设备 → 连接设备', 'WhatsApp → Linked Devices → Link a Device', 'WhatsApp → 已連線的設備 → 連線設備'),
|
||
waitingScan: _('等待扫码...', 'Waiting for scan...', '等待掃碼...'),
|
||
whatsappLinked: _('WhatsApp 链接成功!', 'WhatsApp linked successfully!', 'WhatsApp 連結成功!'),
|
||
whatsappAlreadyLinked: _('WhatsApp 已链接,无需重新扫码', 'WhatsApp is already linked, no need to re-scan', 'WhatsApp 已連結,無需重新掃碼'),
|
||
linkedSuccess: _('链接成功!', 'Linked successfully!', '連結成功!'),
|
||
scanTimeout: _('扫码超时', 'Scan timed out', '掃碼逾時'),
|
||
scanTimeoutRetry: _('扫码超时或未完成,请重试', 'Scan timed out or not completed, please retry', '掃碼逾時或未完成,請重試'),
|
||
whatsappNotAvailableHint: _('WhatsApp 插件未加载', 'WhatsApp plugin not loaded', 'WhatsApp 外掛未載入'),
|
||
scanLoginFailed: _('扫码登录失败', 'Scan login failed', '掃碼登入失敗'),
|
||
unknownPlatform: _('未知平台', 'Unknown platform'),
|
||
setupSteps: _('接入步骤', 'Setup Steps', '接入步驟'),
|
||
clickToExpand: _('点击展开', 'click to expand', '点擊展開'),
|
||
docsOnlyTitle: _('当前面板暂未完成该渠道的可用配置向导', 'Configuration wizard for this channel is not yet available', '目前面板暂未完成該頻道的可用設定向导'),
|
||
docsOnlyDefault: _('请先按上游文档或 CLI 完成接入', 'Please complete setup via upstream docs or CLI first', '請先按上游文件或 CLI 完成接入'),
|
||
setupGuide: _('接入说明', 'Setup Guide', '接入說明'),
|
||
gotIt: _('知道了', 'Got It'),
|
||
detectingPlugin: _('检测插件状态...', 'Detecting plugin status...', '檢測外掛狀態...'),
|
||
operations: _('操作', 'Operations'),
|
||
setup: _('接入', 'Setup'),
|
||
close: _('关闭', 'Close', '關閉'),
|
||
manualCommands: _('手动命令', 'Manual Commands', '手動命令'),
|
||
manualCommandsHint: _('如果面板自动安装失败,可以复制下面的命令到终端手动执行。', 'If panel-based installation fails, copy the commands below and run them manually in your terminal.', '如果面板自動安裝失敗,可以複製下面的命令到終端手動執行。'),
|
||
manualInstallCommand: _('手动安装命令', 'Manual Install Command', '手動安裝命令'),
|
||
manualInstallHint: _('用于手动安装 {platform} 对应插件。', 'Use this command to manually install the plugin for {platform}.', '用於手動安裝 {platform} 對應外掛。'),
|
||
manualLoginCommand: _('手动登录命令', 'Manual Login Command', '手動登入命令'),
|
||
manualLoginHint: _('插件安装完成后,可在终端执行此命令继续登录流程。', 'After plugin installation completes, run this command in your terminal to continue the login flow.', '外掛安裝完成後,可在終端執行此命令繼續登入流程。'),
|
||
copyCommandFailed: _('复制命令失败', 'Failed to copy command', '複製命令失敗'),
|
||
pluginStatusFailed: _('无法获取插件状态', 'Failed to get plugin status', '無法取得外掛狀態'),
|
||
pluginInstalled: _('已安装', 'Installed', '已安裝', 'プラグインインストール済み'),
|
||
version: _('版本', 'Version'),
|
||
unknown: _('未知', 'Unknown'),
|
||
newVersionAvailable: _('新版 {version} 可用,点击「升级插件」更新', 'New version {version} available, click "Upgrade Plugin" to update', '新版 {version} 可用,点擊「升級外掛」更新'),
|
||
upgradePlugin: _('升级插件', 'Upgrade Plugin', '升級外掛'),
|
||
upToDate: _('已是最新', 'Up to date'),
|
||
pluginNotInstalled: _('未安装', 'Not installed', '未安裝', 'プラグイン未インストール'),
|
||
latestVersion: _('最新版', 'Latest version'),
|
||
clickInstallBelow: _('点击下方「一键安装插件」开始', 'Click "Install Plugin" below to get started', '点擊下方「一鍵安裝外掛」開始'),
|
||
pluginCompatErrorHint: _('请点击「一键安装插件」重新安装兼容版本', 'Click "Install Plugin" to reinstall a compatible version', '請點擊「一鍵安裝外掛」重新安裝相容版本'),
|
||
executing: _('正在执行', 'Executing', '正在執行'),
|
||
executingShort: _('执行中...', 'Executing...', '執行中...'),
|
||
executingAction: _('正在执行渠道动作', 'Executing channel action', '正在執行頻道動作'),
|
||
executionDone: _('执行完成', 'Execution complete', '執行完成'),
|
||
executionFailed: _('执行失败', 'Execution failed', '執行失敗'),
|
||
unknownError: _('未知错误', 'Unknown error', '未知錯誤'),
|
||
downloadingPlugin: _('正在下载,请稍候(首次安装可能需要几分钟)...', 'Downloading, please wait (the first install may take a few minutes)...', '正在下載,請稍候(首次安裝可能需要幾分鐘)...'),
|
||
weixinOpenInBrowser: _('或点击此链接在浏览器中打开', 'Or open this link in your browser', '或點擊此連結在瀏覽器中打開'),
|
||
execute: _('执行', 'Execute', '執行'),
|
||
channelConnected: _('🎉 渠道连接成功!正在刷新列表…', '🎉 Channel connected! Refreshing list...', '🎉 頻道連線成功!正在重新整理列表…'),
|
||
reDetecting: _('重新检测…', 'Re-detecting...', '重新檢測…'),
|
||
actionDone: _('渠道动作执行完成', 'Channel action completed', '頻道動作執行完成'),
|
||
actionFailed: _('渠道动作执行失败', 'Channel action failed', '頻道動作執行失敗'),
|
||
accountIdentifier: _('账号标识', 'Account Identifier', '账號標識'),
|
||
accountIdPlaceholder: _('留空为默认账号;修改会创建新账号', 'Leave empty for default account; changing creates a new account', '留空為預設账號;修改會建立新账號'),
|
||
accountIdHint: _('每个账号对应一个独立机器人。不同账号可绑定不同 Agent。', 'Each account corresponds to an independent bot. Different accounts can bind to different Agents.', '每個账號对應一個獨立機器人。不同账號可綁定不同 Agent。'),
|
||
bindAgent: _('绑定 Agent', 'Bind Agent', '綁定 Agent', 'Agent をバインド', 'Agent 바인딩', 'Liên kết Agent', 'Vincular Agent', 'Vincular Agent', 'Привязать агента', 'Lier un Agent', 'Agent verknüpfen'),
|
||
bindAgentHint: _('该账号收到的消息路由到哪个 Agent(可在「Agent 对接」页添加更多绑定)。', 'Which Agent receives messages for this account (add more bindings in "Agent Binding" tab).', '該账號收到的訊息路由到哪個 Agent(可在「Agent 对接」頁新增更多綁定)。'),
|
||
show: _('显示', 'Show', '顯示'),
|
||
hide: _('隐藏', 'Hide', '隱藏'),
|
||
pairingApproval: _('配对审批', 'Pairing Approval', '配对審批'),
|
||
pairingApprovalHint: _('当机器人提示 <code>access not configured</code>、<code>Pairing code</code> 或要求执行 <code>openclaw pairing approve</code> 时,可直接在这里完成批准。', 'When the bot shows <code>access not configured</code>, <code>Pairing code</code>, or asks to run <code>openclaw pairing approve</code>, you can approve directly here.', '當機器人提示 <code>access not configured</code>、<code>Pairing code</code> 或要求執行 <code>openclaw pairing approve</code> 時,可直接在這裡完成批準。'),
|
||
pairingCodePlaceholder: _('例如 R3ZFPWZP', 'e.g. R3ZFPWZP', '', 'ペアリングコードを入力'),
|
||
viewPending: _('查看待审批', 'View Pending', '查看待審批'),
|
||
approvePairingCode: _('批准配对码', 'Approve Pairing Code', '批準配对碼'),
|
||
preActions: _('运行前动作', 'Pre-run Actions', '執行前動作'),
|
||
preActionsHint: _('适用于需要先执行 CLI 登录、扫码或初始化命令的渠道。', 'For channels that require CLI login, scanning, or initialization commands first.', '適用於需要先執行 CLI 登入、掃碼或初始化命令的頻道。'),
|
||
gatewayAuthAutoFilled: _('已从当前 Gateway 鉴权配置中自动带出 {type},通常无需手填', 'Auto-filled {type} from current Gateway auth config; usually no need to fill manually', '已從目前 Gateway 鉴權設定中自動帶出 {type},通常無需手填'),
|
||
existingConfigHint: _('当前已有配置,修改后点击保存即可覆盖', 'Existing config found; edit and click Save to overwrite', '目前已有設定,修改后点擊儲存即可覆蓋'),
|
||
secretRefPreserveHint: _('当前密钥由 SecretRef 管理;保持占位不变会保留原引用,输入新值才会替换。', 'This secret is managed by SecretRef. Leave the placeholder unchanged to keep the reference; enter a new value to replace it.', '目前密鑰由 SecretRef 管理;保持占位不變會保留原引用,輸入新值才會替換。'),
|
||
fullDiagnose: _('完整联通诊断', 'Full Connectivity Diagnosis', '完整聯通诊斷'),
|
||
qqDiagHint: _('检查<strong>已保存到配置文件</strong>的凭证、本机 Gateway 端口、<code>/__api/health</code>、QQ 插件与 chatCompletions。QQ 提示「灵魂不在线」时优先看此处,并参考 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">OpenClaw × QQ 常见问题</a>。', '检查<strong>已保存到配置文件</strong>的凭证、本机 Gateway 端口、<code>/__api/health</code>、QQ 插件与 chatCompletions。QQ 提示「灵魂不在线」时优先看此处,并参考 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">OpenClaw × QQ 常见问题</a>。', '檢查<strong>已儲存到設定檔案</strong>的憑證、本機 Gateway 連接埠、<code>/__api/health</code>、QQ 外掛與 chatCompletions。QQ 提示「靈魂不線上」時優先看此處,並參考 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">OpenClaw × QQ 常见問題</a>。'),
|
||
edit: _('编辑', 'Edit', '編輯', '編集', '편집', 'Sửa', 'Editar', 'Editar', 'Редактировать', 'Modifier', 'Bearbeiten'),
|
||
connect: _('接入', 'Connect'),
|
||
verifyCredentials: _('校验凭证', 'Verify Credentials', '校驗憑證'),
|
||
save: _('保存', 'Save', '儲存', '保存', '저장', 'Lưu', 'Guardar', 'Salvar', 'Сохранить', 'Enregistrer', 'Speichern'),
|
||
connectAndSave: _('接入并保存', 'Connect & Save', '接入並儲存'),
|
||
reading: _('读取中...', 'Reading...', '讀取中...'),
|
||
pendingRequests: _('待审批请求', 'Pending Requests', '待審批請求'),
|
||
noPendingRequests: _('暂无待审批请求', 'No pending requests', '暫無待審批請求'),
|
||
readFailed: _('读取失败', 'Read failed', '讀取失敗'),
|
||
enterPairingCode: _('请输入配对码', 'Please enter pairing code', '請輸入配对碼'),
|
||
approving: _('批准中...', 'Approving...', '批準中...', '承認中...'),
|
||
pairingApproved: _('配对已批准', 'Pairing approved', '配对已批準'),
|
||
operationComplete: _('操作完成', 'Operation complete'),
|
||
approveFailed: _('批准失败', 'Approve failed', '批準失敗', '承認失敗', '승인 실패'),
|
||
pleaseFill: _('请填写「{field}」', 'Please fill in "{field}"', '請填写「{field}」'),
|
||
verifying: _('校验中...', 'Verifying...', '校驗中...'),
|
||
credentialsValid: _('凭证有效', 'Credentials valid', '憑證有效'),
|
||
qqVerifyNote: _('此项只验证 AppID/Secret 能否向腾讯换 token。<strong>不能</strong>代表 QQ 里机器人已在线;若提示「灵魂不在线」,请使用下方 <strong>完整联通诊断</strong> 并对照 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">QQ OpenClaw 常见问题</a>。', '此项只验证 AppID/Secret 能否向腾讯换 token。<strong>不能</strong>代表 QQ 里机器人已在线;若提示「灵魂不在线」,请使用下方 <strong>完整联通诊断</strong> 并对照 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">QQ OpenClaw 常见问题</a>。', '此項只驗證 AppID/Secret 能否向腾訊換 token。<strong>不能</strong>代表 QQ 里機器人已線上;若提示「靈魂不線上」,請使用下方 <strong>完整聯通诊斷</strong> 並对照 <a href="https://q.qq.com/qqbot/openclaw/faq.html" target="_blank" rel="noopener">QQ OpenClaw 常见問題</a>。'),
|
||
verifyRequestFailed: _('校验请求失败', 'Verification request failed', '校驗請求失敗'),
|
||
installingPlugin: _('安装插件中...', 'Installing plugin...', '安裝外掛中...'),
|
||
installPlugin: _('安装插件', 'Install Plugin', '安裝外掛', 'プラグインインストール', '플러그인 설치', 'Cài đặt plugin', 'Instalar plugin', 'Instalar plugin', 'Установить плагин', 'Installer le plugin', 'Plugin installieren'),
|
||
pluginInstallFailed: _('插件安装失败', 'Plugin installation failed', '外掛安裝失敗'),
|
||
pluginDetected: _('已检测到插件,无需重复安装,本次仅更新配置', 'Plugin detected, no need to reinstall; only updating config', '已檢測到外掛,無需重複安裝,本次僅更新設定'),
|
||
writingConfig: _('写入配置...', 'Writing config...', '写入設定...'),
|
||
configSaved: _('{platform} 配置已保存,Gateway 正在重载', '{platform} config saved, Gateway is reloading', '{platform} 設定已儲存,Gateway 正在重載'),
|
||
pluginIncompatible: _('插件版本不兼容', 'Plugin version incompatible', '外掛版本不相容', 'プラグインバージョン非互換', '플러그인 버전 호환되지 않음', 'Phiên bản plugin không tương thích', 'Versión de plugin incompatible', 'Versão do plugin incompatível', 'Несовместимая версия плагина', 'Version de plugin incompatible', 'Plugin-Version inkompatibel'),
|
||
reinstallCompatible: _('重新安装兼容版本', 'Reinstall compatible version', '重新安裝相容版本', '互換バージョンを再インストール', '호환 버전 재설치', 'Cài đặt lại phiên bản tương thích', 'Reinstalar versión compatible', 'Reinstalar versão compatível', 'Переустановить совместимую версию', 'Réinstaller la version compatible', 'Kompatible Version neu installieren'),
|
||
}
|