Files
clawpanel/src/locales/modules/engine.js
2026-05-27 00:40:37 +08:00

1752 lines
219 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { _ } from '../helper.js'
export default {
switchedTo: _('已切换到 {name} 模式', 'Switched to {name} mode', '已切換到 {name} 模式', '{name} モードに切り替えました', '{name} 모드로 전환됨'),
switchFailed: _('引擎切换失败,请稍后重试', 'Engine switch failed, please try again later', '引擎切換失敗,請稍後重試', 'エンジンの切り替えに失敗しました。後でもう一度お試しください', '엔진 전환에 실패했습니다. 잠시 후 다시 시도해 주세요'),
switcherSectionLabel: _('引擎', 'Engine', '引擎', 'エンジン', '엔진', 'Động cơ', 'Motor', 'Motor', 'Движок', 'Moteur', 'Engine'),
switcherTooltip: _('点击切换引擎', 'Click to switch engine', '點擊切換引擎', 'クリックしてエンジンを切り替え', '엔진 전환하려면 클릭', 'Nhấp để chuyển đổi engine', 'Haga clic para cambiar de motor', 'Clique para alternar o motor', 'Нажмите, чтобы переключить движок', 'Cliquez pour changer de moteur', 'Klicken, um die Engine zu wechseln'),
choiceNav: _('选择引擎', 'Choose Engine', '選擇引擎', 'エンジンを選択', '엔진 선택', 'Choose Engine', 'Choose Engine', 'Choose Engine', 'Choose Engine', 'Choose Engine', 'Choose Engine'),
choiceKicker: _('首次启动', 'First run', '首次啟動'),
choiceTitle: _('选择你要使用的 Agent 引擎', 'Choose your Agent engine', '選擇你要使用的 Agent 引擎'),
choiceSubtitle: _('ClawPanel 支持 OpenClaw 与 Hermes Agent。你可以先安装其中一个也可以稍后再配置。', 'ClawPanel supports OpenClaw and Hermes Agent. Install one now, enable both, or configure later.', 'ClawPanel 支援 OpenClaw 與 Hermes Agent。你可以先安裝其中一個也可以稍後再配置。'),
choiceNoteTitle: _('之后仍可切换', 'You can switch later', '之後仍可切換'),
choiceNoteDesc: _('该选择会保存到 clawpanel.json。安装完成后可通过侧边栏的引擎切换器切换到其他引擎。', 'This choice is saved to clawpanel.json. After setup, use the engine switcher in the sidebar to switch engines.', '該選擇會儲存到 clawpanel.json。安裝完成後可透過側邊欄的引擎切換器切換到其他引擎。'),
choiceSaved: _('已保存引擎选择', 'Engine choice saved', '已儲存引擎選擇'),
choiceSaveFailed: _('保存引擎选择失败', 'Failed to save engine choice', '儲存引擎選擇失敗'),
choiceOpenclawTitle: _('OpenClaw', 'OpenClaw', 'OpenClaw'),
choiceOpenclawDesc: _('完整的 OpenClaw 管理面板适合需要模型、Agent、Gateway、记忆与插件的完整框架用户。', 'The full OpenClaw management panel for models, agents, Gateway, memory, and plugins.', '完整的 OpenClaw 管理面板適合需要模型、Agent、Gateway、記憶與外掛的完整框架使用者。'),
choiceOpenclawMeta: _('推荐给现有 OpenClaw 用户', 'Recommended for existing OpenClaw users', '推薦給現有 OpenClaw 使用者'),
choiceOpenclawBadge: _('推荐', 'Recommended', '推薦'),
choiceHermesTitle: _('Hermes Agent', 'Hermes Agent', 'Hermes Agent'),
choiceHermesDesc: _('轻量 Python Agent 引擎,专注工具调用、任务编排与快速实验。', 'A lightweight Python Agent engine focused on tool calling, orchestration, and fast experiments.', '輕量 Python Agent 引擎,專注工具呼叫、任務編排與快速實驗。'),
choiceHermesMeta: _('直接进入 Hermes 安装向导', 'Go directly to Hermes setup', '直接進入 Hermes 安裝精靈'),
choiceHermesBadge: _('轻量', 'Lightweight', '輕量'),
choiceBothTitle: _('两个都要', 'Use both', '兩個都要'),
choiceBothDesc: _('先完成 OpenClaw 初始化,并保留 Hermes Agent 入口,后续可随时切换配置。', 'Start with OpenClaw setup while keeping Hermes Agent enabled for later configuration.', '先完成 OpenClaw 初始化,並保留 Hermes Agent 入口,後續可隨時切換配置。'),
choiceBothMeta: _('适合同时评估两个引擎', 'Best for evaluating both engines', '適合同時評估兩個引擎'),
choiceBothBadge: _('进阶', 'Advanced', '進階'),
choiceLaterTitle: _('稍后再配置', 'Configure later', '稍後再配置'),
choiceLaterDesc: _('先停留在引擎选择页,不立即安装任何引擎。准备好后再选择即可。', 'Stay on the engine chooser without installing an engine now. Pick one when you are ready.', '先停留在引擎選擇頁,不立即安裝任何引擎。準備好後再選擇即可。'),
choiceLaterMeta: _('不会启动安装流程', 'No setup flow will start', '不會啟動安裝流程'),
choiceLaterBadge: _('跳过', 'Skip', '跳過'),
// —— Monolith 启动选择屏(对角线分割版) ——
choiceTopBanner: _('— 选择你的引擎 —', '— Choose your engine —', '— 選擇你的引擎 —'),
choiceCtaEnter: _('立即进入', 'Enter', '立即進入'),
choiceOpenclawTagline: _('从模型到智能体,一站式打造你的 AI 工作台。', 'From models to agents — your full AI workbench in one panel.', '從模型到智能體,一站式打造你的 AI 工作台。'),
choiceOpenclawFeat1: _('多模型 / 多渠道并行管理', 'Multi-model · multi-channel orchestration', '多模型 / 多渠道並行管理'),
choiceOpenclawFeat2: _('持久化记忆 + 上下文工程', 'Persistent memory + context engineering', '持久化記憶 + 上下文工程'),
choiceOpenclawFeat3: _('无代码搭建智能体', 'No-code agent builder', '無程式碼搭建智能體'),
choiceOpenclawCategory: _('通用助理', 'Universal Assistant', '通用助理'),
choiceHermesTagline: _('让 Agent 真正能干活。工具调用、Profile、Kanban 一应俱全。', 'Make agents actually work — tool calling, profiles, Kanban built-in.', '讓 Agent 真正能幹活。工具調用、Profile、Kanban 一應俱全。'),
choiceHermesFeat1: _('原生工具调用 + Approval Flow', 'Native tool calling + approval flow', '原生工具調用 + Approval Flow'),
choiceHermesFeat2: _('多 Profile 隔离 + 多 Gateway', 'Multi-profile isolation + multi-gateway', '多 Profile 隔離 + 多 Gateway'),
choiceHermesFeat3: _('内置 Kanban / Skills / OAuth', 'Kanban / Skills / OAuth built-in', '內建 Kanban / Skills / OAuth'),
choiceHermesCategory: _('Agent 工作流', 'Agent Workflow', 'Agent 工作流'),
choiceSecondaryBoth: _('两个都要 ↗', 'Use both ↗', '兩個都要 ↗'),
choiceSecondaryLater: _('稍后再说', 'Decide later', '稍後再說'),
hermesSetupDesc: _('安装并配置 Hermes Agent', 'Install and configure Hermes Agent', '安裝並配置 Hermes Agent'),
hermesPhaseClickHint: _('点击可返回此步骤', 'Click to go back to this step', '點擊可返回此步驟', 'このステップに戻るにはクリック', '이 단계로 돌아가려면 클릭'),
// 安装向导 5 个阶段标签
hermesPhaseDetect: _('检测', 'Detect', '檢測', '検出', '감지', 'Phát hiện', 'Detectar', 'Detectar', 'Обнаружение', 'Détection', 'Erkennung'),
hermesPhaseInstall: _('安装', 'Install', '安裝', 'インストール', '설치', 'Cài đặt', 'Instalar', 'Instalar', 'Установка', 'Installer', 'Installieren'),
hermesPhaseConfigure: _('配置', 'Configure', '配置', '設定', '구성', 'Cấu hình', 'Configurar', 'Configurar', 'Настройка', 'Configurer', 'Konfigurieren'),
hermesPhaseGateway: _('启动', 'Start', '啟動', '起動', '시작', 'Khởi động', 'Iniciar', 'Iniciar', 'Запуск', 'Démarrer', 'Starten'),
hermesPhaseComplete: _('完成', 'Complete', '完成', '完了', '완료', 'Hoàn tất', 'Completo', 'Concluído', 'Готово', 'Terminé', 'Fertig'),
// Provider 分组标题
hermesProviderGroupIntl: _('国际 · API Key', 'International · API Key', '國際 · API Key', '海外 · API Key', '국제 · API Key', 'Quốc tế · API Key', 'Internacional · API Key', 'Internacional · API Key', 'Международные · API Key', 'International · API Key', 'International · API Key'),
hermesProviderGroupCn: _('国内 · API Key', 'Mainland · API Key', '中國大陸 · API Key', '中国大陸 · API Key', '중국 본토 · API Key', 'Trung Quốc · API Key', 'China · API Key', 'China · API Key', 'Китай · API Key', 'Chine continentale · API Key', 'China · API Key'),
hermesProviderGroupAggregator: _('聚合 / 路由', 'Aggregator / Router', '聚合 / 路由', 'アグリゲーター / ルーター', '집계 / 라우터', 'Tổng hợp / Định tuyến', 'Agregador / Enrutador', 'Agregador / Roteador', 'Агрегатор / Маршрутизатор', 'Agrégateur / Routeur', 'Aggregator / Router'),
hermesProviderGroupOAuth: _('OAuth 登录(需终端)', 'OAuth Login (Terminal needed)', 'OAuth 登入(需終端)', 'OAuth ログイン(ターミナルが必要)', 'OAuth 로그인 (터미널 필요)', 'Đăng nhập OAuth (cần Terminal)', 'OAuth Login (requiere Terminal)', 'Login OAuth (requer Terminal)', 'OAuth вход (требуется терминал)', 'Connexion OAuth (Terminal requis)', 'OAuth-Login (Terminal erforderlich)'),
hermesProviderOAuthRunHint: _('需运行', 'run', '需執行', '実行', '실행 필요', 'cần chạy', 'ejecuta', 'execute', 'требуется', 'exécuter', 'ausführen'),
hermesProvidersLoadFallback: _(
'未能加载 provider 列表。Web 模式下可手动填写下方 Base URL 与 API Key 完成配置。',
'Failed to load provider list. In Web mode you can fill in Base URL and API Key manually below.',
'未能載入 provider 列表。Web 模式下可手動填寫下方 Base URL 與 API Key 完成設定。',
'プロバイダー一覧の読み込みに失敗しました。Web モードでは下の Base URL と API Key を手動で入力できます。',
'provider 목록을 불러오지 못했습니다. Web 모드에서 아래 Base URL과 API Key를 수동으로 입력할 수 있습니다.',
'Không tải được danh sách provider. Ở chế độ Web bạn có thể điền Base URL và API Key bên dưới.',
'No se pudo cargar la lista de providers. En modo Web puedes rellenar Base URL y API Key abajo.',
'Não foi possível carregar a lista de providers. No modo Web preencha manualmente Base URL e API Key abaixo.',
'Не удалось загрузить список провайдеров. В Web-режиме укажите Base URL и API Key ниже вручную.',
'Impossible de charger la liste des providers. En mode Web, saisissez Base URL et API Key ci-dessous.',
'Provider-Liste konnte nicht geladen werden. Im Web-Modus Base URL und API Key unten manuell eintragen.'
),
hermesSetupIntro: _(
'Hermes Agent 是一个具有工具调用能力的 AI 助手框架。点击下方按钮一键安装,无需终端操作。',
'Hermes Agent is an AI assistant with tool-calling capabilities. Click the button below to install — no terminal needed.',
'Hermes Agent 是一個具有工具調用能力的 AI 助手框架。點擊下方按鈕一鍵安裝,無需終端操作。',
),
// 检测阶段
detecting: _('正在检测环境...', 'Detecting environment...', '正在偵測環境...'),
detectPython: _('检测 Python 环境', 'Detecting Python', '偵測 Python 環境'),
detectHermes: _('检测 Hermes Agent', 'Detecting Hermes Agent', '偵測 Hermes Agent'),
pythonFound: _('Python {version}', 'Python {version}', 'Python {version}'),
pythonNotFound: _('未检测到 Python将自动安装', 'Python not found (will be auto-installed)', '未偵測到 Python將自動安裝'),
pythonTooOld: _('Python {version} 版本过低,需要 3.11+(将自动安装)', 'Python {version} too old, need 3.11+ (will be auto-installed)', 'Python {version} 版本過低,需要 3.11+(將自動安裝)'),
uvFound: _('uv 包管理器已就绪', 'uv package manager ready', 'uv 套件管理器已就緒'),
uvNotFound: _('uv 未安装(将自动下载)', 'uv not installed (will be auto-downloaded)', 'uv 未安裝(將自動下載)'),
gitFound: _('Git 已就绪', 'Git ready', 'Git 已就緒'),
gitNotFound: _('Git 未安装(从 GitHub 安装需要 Git', 'Git not found (required for GitHub install)', 'Git 未安裝(從 GitHub 安裝需要 Git'),
hermesFound: _('Hermes Agent {version} 已安装', 'Hermes Agent {version} installed', 'Hermes Agent {version} 已安裝'),
hermesNotFound: _('Hermes Agent 未安装', 'Hermes Agent not installed', 'Hermes Agent 未安裝'),
hermesReady: _('Hermes Agent 已就绪Gateway 运行中', 'Hermes Agent ready, Gateway running', 'Hermes Agent 已就緒Gateway 運行中'),
// 安装阶段
installTitle: _('安装 Hermes Agent', 'Install Hermes Agent', '安裝 Hermes Agent'),
installDesc: _('通过 uv 自动安装(含 Python 环境),无需手动操作', 'Auto-install via uv (includes Python), no manual steps', '透過 uv 自動安裝(含 Python 環境),無需手動操作'),
installDescSimple: _('一键安装 Hermes Agent 核心包,安装完成后可在管理页面按需添加扩展组件。', 'One-click install of Hermes Agent core package. Extensions can be added later from the management page.', '一鍵安裝 Hermes Agent 核心包,安裝完成後可在管理頁面按需添加擴展組件。'),
installInfoUv: _('自动下载 uv 包管理器(如未安装)', 'Auto-download uv package manager (if not installed)', '自動下載 uv 包管理器(如未安裝)'),
installInfoCore: _('安装 hermes-agent 核心包', 'Install hermes-agent core package', '安裝 hermes-agent 核心包'),
installInfoExtrasLater: _('扩展组件定时任务、MCP、消息渠道等可在安装后按需添加', 'Extensions (cron, MCP, messaging, etc.) can be added later as needed', '擴展組件定時任務、MCP、訊息頻道等可在安裝後按需添加'),
installModeLocal: _('本地', 'Local', '本地'),
installModeCustom: _('自定义', 'Custom', '自訂'),
installCustomDesc: _('连接到已有的 Hermes Agent Gateway 实例,适用于已在其他机器或手动安装的场景。', 'Connect to an existing Hermes Agent Gateway instance, for setups on other machines or manual installations.', '連接到已有的 Hermes Agent Gateway 實例,適用於已在其他機器或手動安裝的場景。'),
installCustomHint: _('输入已运行的 Hermes Agent Gateway 地址,例如 http://192.168.1.100:8642', 'Enter the URL of a running Hermes Agent Gateway, e.g. http://192.168.1.100:8642', '輸入已運行的 Hermes Agent Gateway 地址,例如 http://192.168.1.100:8642'),
installCustomConnect: _('测试连接', 'Test Connection', '測試連接'),
installCustomTesting: _('连接中...', 'Connecting...', '連接中...'),
installCustomEmpty: _('请输入 Gateway URL', 'Please enter Gateway URL', '請輸入 Gateway URL'),
installCustomInvalidUrl: _('URL 格式不正确', 'Invalid URL format', 'URL 格式不正確'),
installCustomNoResponse: _('Gateway 无响应', 'Gateway not responding', 'Gateway 無回應'),
installCustomFailed: _('连接失败: {error}', 'Connection failed: {error}', '連接失敗: {error}'),
installBtn: _('一键安装', 'Install Now', '一鍵安裝'),
installingBtn: _('正在安装...', 'Installing...', '正在安裝...'),
installSuccess: _('安装成功!', 'Installation successful!', '安裝成功!'),
installFailed: _('安装失败', 'Installation failed', '安裝失敗'),
retryBtn: _('重试', 'Retry', '重試'),
// Extras 选择
extrasTitle: _('可选组件', 'Optional Components', '可選組件'),
extrasDesc: _('选择需要安装的额外功能(可稍后更改)', 'Select optional features to install (can change later)', '選擇需要安裝的額外功能(可稍後更改)'),
extraCron: _('定时任务', 'Cron Jobs', '定時任務'),
extraCli: _('CLI 增强', 'CLI Enhanced', 'CLI 增強'),
extraPty: _('终端后端', 'Terminal Backend', '終端後端'),
extraMcp: _('MCP 协议', 'MCP Protocol', 'MCP 協議'),
extraMessaging: _('消息渠道Telegram/Discord 等)', 'Messaging (Telegram/Discord etc.)', '訊息頻道Telegram/Discord 等)'),
extraFeishu: _('飞书', 'Feishu/Lark', '飛書'),
extraDingtalk: _('钉钉', 'DingTalk', '釘釘'),
extraSlack: _('Slack', 'Slack', 'Slack'),
extraVoice: _('语音TTS/STT', 'Voice (TTS/STT)', '語音TTS/STT'),
extraAll: _('全部安装', 'Install All', '全部安裝'),
// 配置阶段
configTitle: _('配置 Hermes Agent', 'Configure Hermes Agent', '配置 Hermes Agent'),
configDesc: _('设置 LLM Provider 以启用 AI 功能', 'Set up LLM Provider to enable AI features', '設置 LLM Provider 以啟用 AI 功能'),
configProvider: _('LLM 提供商', 'LLM Provider', 'LLM 提供商'),
configApiKey: _('API Key', 'API Key', 'API Key'),
configModel: _('模型', 'Model', '模型'),
configBaseUrl: _('自定义 API 地址(可选)', 'Custom API URL (optional)', '自定義 API 地址(可選)'),
configFetchModels: _('获取模型列表', 'Fetch Models', '取得模型列表'),
configFetching: _('获取中...', 'Fetching...', '取得中...'),
configFetchSuccess: _('获取到 {count} 个模型', 'Found {count} models', '取得 {count} 個模型'),
configFetchFailed: _('获取失败: {error}', 'Fetch failed: {error}', '取得失敗: {error}'),
configFetchNotSupported: _('此渠道不支持获取模型列表,请前往平台查看可用模型后手动输入', 'This provider does not support model listing. Please check available models on their platform and enter manually.', '此渠道不支持取得模型列表,請前往平台查看可用模型後手動輸入'),
configFetchNeedKey: _('请先填写 API Key', 'Please enter API Key first', '請先填寫 API Key'),
configFetchNeedUrl: _('请先选择服务商或填写 Base URL', 'Please select a provider or enter Base URL first', '請先選擇服務商或填寫 Base URL'),
configSaveBtn: _('保存配置', 'Save Config', '儲存配置'),
configSkipBtn: _('跳过,稍后配置', 'Skip, configure later', '跳過,稍後配置'),
configSaved: _('配置已保存', 'Configuration saved', '配置已儲存'),
// Gateway 阶段
gatewayTitle: _('启动 Gateway', 'Start Gateway', '啟動 Gateway'),
gatewayDesc: _('启动 HTTP API 服务以连接 ClawPanel', 'Start HTTP API server to connect with ClawPanel', '啟動 HTTP API 服務以連接 ClawPanel'),
gatewayStartBtn: _('启动 Gateway', 'Start Gateway', '啟動 Gateway'),
gatewayStarting: _('正在启动...', 'Starting...', '正在啟動...'),
gatewayStartFailed: _('Gateway 启动失败', 'Gateway failed to start', 'Gateway 啟動失敗'),
gatewayRunning: _('Gateway 运行中 (端口 {port})', 'Gateway running (port {port})', 'Gateway 運行中 (端口 {port})'),
gatewayStopped: _('Gateway 未运行', 'Gateway not running', 'Gateway 未運行'),
// 完成
setupComplete: _('设置完成!', 'Setup Complete!', '設定完成!'),
setupCompleteDesc: _('Hermes Agent 已准备就绪,可以开始使用了。', 'Hermes Agent is ready to use.', 'Hermes Agent 已準備就緒,可以開始使用了。'),
goToDashboard: _('进入仪表盘', 'Go to Dashboard', '進入儀表盤'),
// 日志
viewLogs: _('查看安装日志', 'View install logs', '查看安裝日誌'),
hideLogs: _('隐藏日志', 'Hide logs', '隱藏日誌'),
// 仪表盘
hermesSetupDocLink: _('查看完整文档', 'View full documentation', '查看完整文檔'),
hermesDashboardTitle: _('Hermes 仪表盘', 'Hermes Dashboard', 'Hermes 儀表盤'),
dashGatewayStatus: _('Gateway 状态', 'Gateway Status', 'Gateway 狀態'),
dashRunning: _('运行中', 'Running', '運行中'),
dashStopped: _('已停止', 'Stopped', '已停止'),
dashModel: _('当前模型', 'Current Model', '目前模型'),
dashVersion: _('版本', 'Version', '版本'),
dashPort: _('监听端口', 'Listen Port', '監聽端口'),
dashStartGw: _('启动 Gateway', 'Start Gateway', '啟動 Gateway'),
dashStopGw: _('停止 Gateway', 'Stop Gateway', '停止 Gateway'),
dashRestartGw: _('重启 Gateway', 'Restart Gateway', '重啟 Gateway'),
dashStopping: _('正在停止...', 'Stopping...', '正在停止...'),
dashRestarting: _('正在重启...', 'Restarting...', '正在重啟...'),
dashQuickActions: _('快捷操作', 'Quick Actions', '快捷操作'),
dashOpenChat: _('打开对话', 'Open Chat', '開啟對話'),
dashOpenPanel: _('打开面板', 'Open Panel', '開啟面板'),
dashOpenPanelDesc: _('Hermes 对话面板', 'Hermes Chat Panel', 'Hermes 對話面板'),
// Native Hermes dashboard launcher
dashNativePanel: _('原生 Dashboard', 'Native Dashboard', '原生 Dashboard', 'ネイティブ Dashboard', '네이티브 Dashboard'),
dashNativePanelDesc: _('也可使用原生 hermes dashboard默认 9119需自行启动', 'You can also use the native hermes dashboard (default 9119; start it manually).', '也可使用原生 hermes dashboard預設 9119需自行啟動'),
dashNativePanelOpen: _('打开 9119 →', 'Open 9119 →', '開啟 9119 →', '9119 を開く →', '9119 열기 →'),
dashNativePanelOffline: _('Gateway 未运行', 'Gateway offline', 'Gateway 未執行', 'Gateway 未実行', 'Gateway 미실행'),
dashNativePanelTooOld: _('需 v0.10.0+', 'Requires v0.10.0+', '需 v0.10.0+', 'v0.10.0+ が必要', 'v0.10.0+ 필요'),
dashNativePanelOpenFail: _('打开浏览器失败', 'Failed to open browser', '開啟瀏覽器失敗', 'ブラウザを開くのに失敗しました', '브라우저 열기 실패'),
dashNativePanelChecking: _('检测 Dashboard 端口…', 'Checking dashboard port…', '檢測 Dashboard 連接埠…', 'Dashboard ポートを確認中…', 'Dashboard 포트 확인 중…'),
dashNativePanelStarting: _('正在启动 Dashboard…', 'Starting Dashboard…', '正在啟動 Dashboard…', 'Dashboard を起動中…', 'Dashboard 시작 중…'),
dashNativePanelStartFirstHint: _('首次启动需构建前端,最长约 1-2 分钟…',
'First launch builds the frontend; this can take 1-2 minutes…',
'首次啟動需建構前端,最長約 1-2 分鐘…',
'初回起動はフロントエンドをビルドするため 1-2 分かかる場合があります…',
'첫 실행 시 프론트엔드 빌드로 1-2분 소요될 수 있습니다…'),
dashNativePanelStartTimeout: _('启动超时(端口 {port} 仍未响应)。请稍候再试,或在终端运行 hermes dashboard 查看实际错误。',
'Startup timed out (port {port} still unresponsive). Wait a bit and retry, or run hermes dashboard in a terminal to see the real error.',
'啟動逾時(連接埠 {port} 仍未回應)。請稍候再試,或在終端執行 hermes dashboard 查看實際錯誤。',
'起動タイムアウト(ポート {port} が応答しません)。少し待って再試行するか、ターミナルで hermes dashboard を実行して実際のエラーを確認してください。',
'시작 시간 초과 (포트 {port} 응답 없음). 잠시 후 다시 시도하거나 터미널에서 hermes dashboard를 실행하여 실제 오류를 확인하세요.'),
dashNativePanelStartPortBusy: _('端口 {port} 被占用,可能有别的 Hermes Dashboard 实例在运行。',
'Port {port} is in use; another Hermes Dashboard instance may be running.',
'連接埠 {port} 已被佔用,可能有另一個 Hermes Dashboard 實例在執行。',
'ポート {port} は使用中です。別の Hermes Dashboard インスタンスが実行されている可能性があります。',
'포트 {port}이(가) 사용 중입니다. 다른 Hermes Dashboard 인스턴스가 실행 중일 수 있습니다.'),
dashNativePanelStartGeneric: _('Dashboard 启动失败',
'Failed to start Dashboard',
'Dashboard 啟動失敗',
'Dashboard の起動に失敗しました',
'Dashboard 시작 실패'),
dashNativePanelWindowsTitle: _('原生 Windows 暂不支持 Hermes Dashboard',
'Hermes Dashboard not supported on native Windows',
'原生 Windows 暫不支援 Hermes Dashboard',
'ネイティブ Windows では Hermes Dashboard はサポートされていません',
'네이티브 Windows에서 Hermes Dashboard는 지원되지 않습니다'),
dashNativePanelWindowsDesc: _('当前环境暂不支持直接启动 Hermes Dashboard。请继续使用 ClawPanel 内置面板,或在兼容环境中运行。',
'This environment cannot start Hermes Dashboard directly. Continue using the built-in ClawPanel panel, or run it in a compatible environment.',
'目前環境暫不支援直接啟動 Hermes Dashboard。請繼續使用 ClawPanel 內建面板,或在相容環境中執行。',
'現在の環境では Hermes Dashboard を直接起動できません。ClawPanel 内蔵パネルを使うか、互換環境で実行してください。',
'현재 환경에서는 Hermes Dashboard를 직접 시작할 수 없습니다. ClawPanel 내장 패널을 계속 사용하거나 호환 환경에서 실행하세요.'),
dashNativePanelWindowsAlt1: _('继续使用 ClawPanel 内置的 Hermes 面板(推荐,体验更好)',
'Keep using ClawPanel\'s built-in Hermes panel (recommended, better experience)',
'繼續使用 ClawPanel 內建的 Hermes 面板(推薦,體驗更好)',
'ClawPanel 内蔵の Hermes パネルを使い続ける(推奨、より良い体験)',
'ClawPanel 내장 Hermes 패널을 계속 사용 (권장, 더 나은 경험)'),
dashNativePanelWindowsAlt2: _('在 WSL2 中安装并运行 Hermeshermes dashboard 在 Linux 上工作正常)',
'Install and run Hermes inside WSL2 (hermes dashboard works fine on Linux)',
'在 WSL2 中安裝並執行 Hermeshermes dashboard 在 Linux 上工作正常)',
'WSL2 内で Hermes をインストール・実行Linux 上では hermes dashboard は正常に動作)',
'WSL2 내에서 Hermes 설치 및 실행 (Linux에서는 hermes dashboard 정상 작동)'),
dashNativePanelWindowsReportLink: _('查看详情', 'View details', '檢視詳情', '詳細を見る', '자세히 보기'),
dashNativePanelDown: _('Dashboard 服务未运行(端口 {port} 无响应。请在终端运行hermes dashboard',
'Dashboard service is not running (port {port} unreachable). Run in terminal: hermes dashboard',
'Dashboard 服務未執行(連接埠 {port} 無回應。請在終端執行hermes dashboard',
'Dashboard サービスが実行されていません(ポート {port} に接続できません)。ターミナルで実行: hermes dashboard',
'Dashboard 서비스가 실행 중이 아닙니다 (포트 {port} 연결 불가). 터미널에서 실행: hermes dashboard'),
dashNativePanelDownTitle: _('Hermes Dashboard 未启动', 'Hermes Dashboard not running', 'Hermes Dashboard 未啟動', 'Hermes Dashboard が実行されていません', 'Hermes Dashboard가 실행 중이 아닙니다'),
dashNativePanelStartHint: _('在终端运行下面命令启动 Dashboard 后再试:', 'Run the command below in your terminal to start the Dashboard, then retry:', '在終端執行以下命令啟動 Dashboard 後再試:', 'ターミナルで以下を実行して Dashboard を起動してから再試行してください:', '아래 명령을 터미널에서 실행하여 Dashboard를 시작한 후 다시 시도하세요:'),
dashNativePanelDepHint: _('首次使用需要先安装 Web 依赖fastapi + uvicorn。点击下方按钮自动安装后重试。',
'First-time use requires installing the Web dependencies (fastapi + uvicorn). Click the button below to install them, then retry.',
'首次使用需要先安裝 Web 依賴fastapi + uvicorn。點擊下方按鈕自動安裝後重試。',
'初回使用には Web 依存関係fastapi + uvicornのインストールが必要です。下のボタンでインストールしてから再試行してください。',
'처음 사용 시 Web 종속성(fastapi + uvicorn) 설치가 필요합니다. 아래 버튼으로 설치한 후 다시 시도하세요.'),
dashNativePanelInstallWeb: _('安装 Web 依赖', 'Install Web Deps', '安裝 Web 依賴', 'Web 依存関係をインストール', 'Web 종속성 설치'),
dashNativePanelInstallWebTitle: _('安装 Hermes Web 依赖', 'Installing Hermes Web Dependencies', '安裝 Hermes Web 依賴', 'Hermes Web 依存関係をインストール中', 'Hermes Web 종속성 설치 중'),
dashNativePanelInstallWebDone: _('Web 依赖安装完成请在终端运行hermes dashboard',
'Web dependencies installed. Now run in your terminal: hermes dashboard',
'Web 依賴安裝完成請在終端執行hermes dashboard',
'Web 依存関係のインストールが完了しました。ターミナルで実行hermes dashboard',
'Web 종속성 설치 완료. 터미널에서 실행: hermes dashboard'),
dashNativePanelInstallWebFailed: _('安装失败', 'Install failed', '安裝失敗', 'インストールに失敗しました', '설치 실패'),
dashNativePanelInstallStoppingGw: _('⏸ 停止 Gateway 以释放 hermes.exe 文件锁…',
'⏸ Stopping Gateway to release hermes.exe file lock…',
'⏸ 停止 Gateway 以釋放 hermes.exe 檔案鎖…',
'⏸ hermes.exe ファイルロックを解放するため Gateway を停止中…',
'⏸ hermes.exe 파일 잠금 해제를 위해 Gateway 중지 중…'),
dashNativePanelInstallGwStopped: _('✓ Gateway 已停止', '✓ Gateway stopped', '✓ Gateway 已停止', '✓ Gateway を停止しました', '✓ Gateway 중지됨'),
dashNativePanelInstallRestartingGw: _('▶ 重启 Gateway…', '▶ Restarting Gateway…', '▶ 重新啟動 Gateway…', '▶ Gateway を再起動中…', '▶ Gateway 재시작 중…'),
dashNativePanelInstallGwRestarted: _('✓ Gateway 已重启', '✓ Gateway restarted', '✓ Gateway 已重新啟動', '✓ Gateway を再起動しました', '✓ Gateway 재시작됨'),
dashNativePanelInstallGwWarn: _('⚠ Gateway 操作异常',
'⚠ Gateway operation warning',
'⚠ Gateway 操作異常',
'⚠ Gateway 操作の警告',
'⚠ Gateway 작업 경고'),
dashOpenCron: _('定时任务', 'Cron Jobs', '定時任務'),
dashOpenSetup: _('重新配置', 'Reconfigure', '重新配置'),
dashNoModel: _('未配置', 'Not configured', '未配置'),
dashApiEndpoint: _('API 地址', 'API Endpoint', 'API 地址'),
dashModelConfig: _('模型配置', 'Model Config', '模型配置'),
dashEyebrowLoading: _('HERMES AGENT · GATEWAY', 'HERMES AGENT · GATEWAY', 'HERMES AGENT · GATEWAY'),
dashEyebrowOnline: _('HERMES AGENT · GATEWAY 在线', 'HERMES AGENT · GATEWAY ONLINE', 'HERMES AGENT · GATEWAY 在線'),
dashEyebrowOffline: _('HERMES AGENT · GATEWAY 离线', 'HERMES AGENT · GATEWAY OFFLINE', 'HERMES AGENT · GATEWAY 離線'),
dashRefresh: _('刷新', 'Refresh', '重新整理'),
dashProvider: _('服务商', 'Provider', '服務商'),
dashProviderPresets: _('服务商预设', 'Provider Presets', '服務商預設'),
dashApiBaseUrl: _('API Base URL', 'API Base URL', 'API Base URL'),
dashApiKey: _('API Key', 'API Key', 'API Key'),
dashEnvAdvancedEdit: _('.env 高级编辑 →', '.env Advanced Edit →', '.env 進階編輯 →'),
dashConnectTarget: _('连接目标', 'Connection Target', '連接目標'),
dashDetectEnv: _('探测环境', 'Detect Environments', '探測環境'),
dashDetecting: _('探测中...', 'Detecting...', '探測中...'),
dashConnLocal: _('本地', 'Local', '本地'),
dashConnWsl2: _('WSL2', 'WSL2', 'WSL2'),
dashConnDocker: _('Docker', 'Docker', 'Docker'),
dashConnCustom: _('自定义', 'Custom', '自訂'),
dashConnApply: _('应用', 'Apply', '套用'),
dashQuickSwitch: _('快速切换', 'Quick Switch', '快速切換'),
dashHermesMissing: _('Hermes 未安装', 'Hermes not installed', 'Hermes 未安裝'),
dashGatewayNotRunning: _('Gateway 未运行', 'Gateway not running', 'Gateway 未執行'),
dashNoHermesContainers: _('未发现 Hermes 容器', 'No Hermes containers found', '未發現 Hermes 容器'),
dashInteractiveSession: _('交互式会话 →', 'interactive session →', '互動式會話 →'),
dashInstallerWizard: _('安装向导 →', 'installer wizard →', '安裝精靈 →'),
dashLogsFoot: _('追踪 / 搜索 →', 'tail / search →', '追蹤 / 搜尋 →'),
dashAdvancedEdit: _('高级编辑', 'advanced edit', '進階編輯'),
dashCustomVars: _('自定义变量 →', 'custom vars →', '自訂變數 →'),
dashCliCommand: _('命令', 'Command', '命令'),
dashCliDescription: _('说明', 'Description', '說明'),
dashCliCopy: _('复制', 'Copy', '複製'),
dashGatewayStarted: _('Gateway 已启动', 'Gateway started', 'Gateway 已啟動'),
dashConfigPatched: _('config.yaml 已自动修复', 'config.yaml was auto-repaired', 'config.yaml 已自動修復'),
configModelRequired: _('请输入模型名', 'Enter a model name', '請輸入模型名稱'),
configSaved: _('配置已保存', 'Config saved', '配置已儲存'),
envDetectFailed: _('探测失败', 'Detection failed', '探測失敗'),
connWslGatewayMissing: _('WSL2 Gateway 未运行,请先在 WSL 中启动', 'WSL2 Gateway is not running. Start it in WSL first.', 'WSL2 Gateway 未執行,請先在 WSL 中啟動'),
connDockerCustomHint: _('请切换到“自定义”模式并输入容器的 Gateway URL', 'Switch to Custom mode and enter the container Gateway URL.', '請切換到「自訂」模式並輸入容器的 Gateway URL'),
connUrlRequired: _('请输入 Gateway URL', 'Enter Gateway URL', '請輸入 Gateway URL'),
// 终端命令
dashCliTitle: _('终端命令', 'Terminal Commands', '終端命令'),
dashCliDesc: _('在终端中使用以下命令管理 Hermes Agent点击复制', 'Use these commands in your terminal to manage Hermes Agent. Click to copy.', '在終端中使用以下命令管理 Hermes Agent點擊複製'),
cliChat: _('终端对话', 'Terminal Chat', '終端對話'),
cliChatDesc: _('在终端中直接与 Agent 对话', 'Chat with Agent directly in terminal', '在終端中直接與 Agent 對話'),
cliDoctor: _('诊断检查', 'Diagnostics', '診斷檢查'),
cliDoctorDesc: _('检测配置和环境问题', 'Check config and environment issues', '檢測配置和環境問題'),
cliVersion: _('查看版本', 'Check Version', '查看版本'),
cliVersionDesc: _('显示当前安装版本', 'Show installed version', '顯示目前安裝版本'),
cliGwStart: _('启动服务', 'Start Gateway', '啟動服務'),
cliGwStartDesc: _('在终端前台启动 Gateway', 'Start Gateway in foreground', '在終端前台啟動 Gateway'),
cliGwStop: _('停止服务', 'Stop Gateway', '停止服務'),
cliGwStopDesc: _('停止后台 Gateway 进程', 'Stop background Gateway process', '停止背景 Gateway 進程'),
cliUpgrade: _('升级', 'Upgrade', '升級'),
cliUpgradeDesc: _('从 GitHub 重新安装最新版', 'Reinstall latest from GitHub', '從 GitHub 重新安裝最新版'),
cliUninstall: _('卸载', 'Uninstall', '解除安裝'),
cliUninstallDesc: _('移除 Hermes Agent', 'Remove Hermes Agent', '移除 Hermes Agent'),
cliConfig: _('打开配置目录', 'Open Config Dir', '開啟配置目錄'),
cliConfigDesc: _('在文件管理器中查看配置文件', 'View config files in file manager', '在檔案管理器中查看配置檔案'),
// 对话页面
hermesChatTitle: _('Hermes 对话', 'Hermes Chat', 'Hermes 對話'),
chatPlaceholder: _('输入消息...', 'Type a message...', '輸入訊息...'),
chatSend: _('发送', 'Send', '發送'),
chatNewSession: _('新对话', 'New Chat', '新對話'),
chatUntitledSession: _('未命名 · {id}', 'Untitled · {id}', '未命名 · {id}', '無題 · {id}', '제목 없음 · {id}', 'Chưa đặt tên · {id}', 'Sin título · {id}', 'Sem título · {id}', 'Без названия · {id}', 'Sans titre · {id}', 'Ohne Titel · {id}'),
chatSessionMsgCount: _('{n} 条', '{n} msgs', '{n} 則', '{n} 件', '{n}개', '{n} tin', '{n} mensajes', '{n} mensagens', '{n} сообщ.', '{n} messages', '{n} Nachrichten'),
chatNewChat: _('新建', 'New chat', '新建'),
chatThinking: _('正在思考...', 'Thinking...', '正在思考...'),
chatError: _('发送失败: {error}', 'Send failed: {error}', '發送失敗: {error}'),
chatErrorBadge: _('失败', 'Error', '失敗'),
chatGatewayOffline: _('Gateway 未运行,请先启动', 'Gateway is offline, please start it first', 'Gateway 未運行,請先啟動'),
chatGatewayOnline: _('Gateway 运行中', 'Gateway online', 'Gateway 運行中'),
// Short labels for the header pill — full sentence lives in the tooltip
chatGatewayOfflineShort: _('离线', 'Offline', '離線'),
chatGatewayOnlineShort: _('在线', 'Online', '線上'),
// 健康检查 banner聊天页顶部
chatHealthInstallMissing: _(
'未检测到 Hermes Agent 安装。请在仪表盘完成安装后再开始对话。',
'Hermes Agent is not installed. Please complete installation on the dashboard before chatting.',
'未偵測到 Hermes Agent 安裝。請在儀表板完成安裝後再開始對話。'
),
chatHealthGatewayDown: _(
'Hermes Gateway 未启动,无法发送消息。请在仪表盘启动 Gateway。',
'Hermes Gateway is not running, messages cannot be sent. Please start the Gateway on the dashboard.',
'Hermes Gateway 未啟動,無法發送訊息。請在儀表板啟動 Gateway。'
),
chatHealthGoDashboard: _('去仪表盘', 'Open Dashboard', '去儀表板'),
chatWelcome: _('你好!我是 Hermes Agent有什么可以帮你的', 'Hello! I\'m Hermes Agent, how can I help?', '你好!我是 Hermes Agent有什麼可以幫你的'),
chatEmptyHint: _('开始一段对话吧', 'Start a conversation', '開始一段對話吧'),
chatEmptyTitle: _('和 Hermes Agent 对话', 'Talk to Hermes Agent', '和 Hermes Agent 對話'),
chatEmptySub: _('输入消息开始,或用 /help 查看命令。', 'Type a message to begin, or /help for commands.', '輸入訊息開始,或用 /help 查看命令。'),
chatLoadingMessages: _('正在载入会话', 'Loading session', '正在載入會話', 'セッションを読み込み中', '세션 불러오는 중'),
chatLoadingMessagesSub: _('正在同步 Hermes 历史消息...', 'Syncing Hermes message history…', '正在同步 Hermes 歷史訊息...', 'Hermes の履歴メッセージを同期中...', 'Hermes 메시지 기록 동기화 중...'),
// 会话侧栏
chatSessions: _('会话', 'Sessions', '會話'),
chatPinned: _('置顶', 'Pinned', '釘選'),
chatLoading: _('加载中...', 'Loading...', '載入中...'),
chatNoSessions: _('暂无会话', 'No sessions yet', '暫無會話'),
chatLive: _('活跃', 'Live', '活躍'),
chatToggleSidebar: _('切换侧栏', 'Toggle sidebar', '切換側欄'),
chatShowSessions: _('显示会话', 'Show sessions', '顯示會話', 'セッションを表示', '세션 표시'),
chatHideSessions: _('隐藏会话', 'Hide sessions', '隱藏會話', 'セッションを隠す', '세션 숨기기'),
chatSessionManageHint: _('右键会话,或点 ··· / 删除 管理', 'Right-click a session, or use ··· / Delete', '右鍵會話,或點 ··· / 刪除 管理', '右クリック、または ··· / 削除で管理', '우클릭 또는 ··· / 삭제로 관리'),
chatSessionActions: _('会话操作', 'Session actions', '會話操作', 'セッション操作', '세션 작업'),
chatMoreActions: _('更多操作', 'More actions', '更多操作', 'その他の操作', '더 많은 작업'),
chatDeleteShort: _('删除', 'Delete', '刪除', '削除', '삭제'),
// 输入区
// 占位符直接吸收键位提示,避免输入框下方再来一条同义 hint 形成"套娃"
chatInputPlaceholder: _(
'输入消息... (Enter 发送Shift+Enter 换行,/ 调出命令)',
'Type a message... (Enter to send, Shift+Enter for new line, / for commands)',
'輸入訊息... (Enter 發送Shift+Enter 換行,/ 調出命令)',
'メッセージを入力... (Enter で送信、Shift+Enter で改行、/ でコマンド)',
'메시지 입력... (Enter 전송, Shift+Enter 줄 바꿈, / 명령)',
),
chatStreamingPlaceholder: _('Agent 回答中...', 'Agent is responding...', 'Agent 回答中...'),
// Token 用量条 — 来自 `hermes sessions export` 的累计字段
chatUsageIn: _('输入', 'In', '輸入', '入力', '입력'),
chatUsageOut: _('输出', 'Out', '輸出', '出力', '출력'),
chatUsageCache: _('缓存', 'Cache', '快取', 'キャッシュ', '캐시'),
chatUsageTooltip: _(
'本会话累计 token 用量与估算成本',
'Cumulative token usage and estimated cost for this session',
'本會話累計 token 用量與估算成本',
'このセッションの累積トークン使用量と推定コスト',
'이 세션의 누적 토큰 사용량 및 추정 비용',
),
// 工具调用
chatArguments: _('入参', 'Arguments', '入參'),
chatResult: _('输出', 'Result', '輸出'),
// 上下文菜单
chatPin: _('置顶会话', 'Pin session', '釘選會話'),
chatUnpin: _('取消置顶', 'Unpin session', '取消釘選'),
chatRename: _('重命名', 'Rename', '重新命名'),
chatRenameSession: _('重命名会话', 'Rename session', '重新命名會話'),
chatEnterNewTitle: _('输入新标题...', 'Enter new title…', '輸入新標題...'),
chatRenamed: _('已重命名', 'Renamed', '已重新命名'),
chatRenameFailed: _('重命名失败', 'Rename failed', '重新命名失敗'),
chatCopySessionId: _('复制会话 ID', 'Copy session ID', '複製會話 ID'),
chatCopyMessage: _('复制消息', 'Copy message', '複製訊息', 'メッセージをコピー', '메시지 복사'),
chatCopyMessageShort: _('复制', 'Copy', '複製', 'コピー', '복사'),
chatCopyCode: _('复制代码', 'Copy code', '複製程式碼', 'コードをコピー', '코드 복사'),
chatCopyFailed: _('复制失败', 'Copy failed', '複製失敗'),
chatDeleteSession: _('删除会话', 'Delete session', '刪除會話'),
chatConfirmDelete: _('确认删除此会话?此操作无法撤销。', 'Delete this session? This action cannot be undone.', '確認刪除此會話?此操作無法復原。'),
chatSessionDeleted: _('会话已删除', 'Session deleted', '會話已刪除'),
chatDeleteFailed: _('删除失败', 'Delete failed', '刪除失敗'),
chatDeleteRunningBlocked: _('此会话正在回复中,请先停止当前回复', 'This session is still responding. Stop the run first.', '此會話正在回覆中,請先停止目前回覆', 'このセッションは応答中です。先に停止してください', '이 세션은 응답 중입니다. 먼저 중지하세요'),
chatJumpBottom: _('回到底部', 'Jump to bottom', '回到底部', '一番下へ', '맨 아래로'),
// Profile / Agent 切换
chatProfileTooltip: _('切换 Hermes Profile (多 Agent)', 'Switch Hermes profile (multi-agent)', '切換 Hermes Profile (多 Agent)', 'Hermes プロファイルを切り替え', 'Hermes 프로필 전환'),
chatProfileSingle: _('当前 Profile (未检测到多 Profile)', 'Current profile (no extra profiles detected)', '目前 Profile (未偵測到多 Profile)', '現在のプロファイル', '현재 프로필'),
chatProfileMenuHead: _('Hermes Profile', 'Hermes Profile', 'Hermes Profile'),
chatProfileMenuFoot: _('每个 Profile 对应独立的 Agent / 配置 / 会话', 'Each profile is an isolated agent · config · session set', '每個 Profile 對應獨立的 Agent / 設定 / 會話', '各プロファイルは独立した Agent・設定・セッション群', '각 프로필은 독립된 Agent·설정·세션 집합'),
chatProfileRunning: _('运行中', 'Running', '運行中', '実行中', '실행 중'),
chatProfileSwitched: _('已切换到 {name}', 'Switched to {name}', '已切換到 {name}', '{name} に切り替え済み', '{name} 으로 전환됨'),
chatProfileSwitchBlocked: _('正在回复中,无法切换 Profile', 'A reply is in progress — cannot switch profile', '正在回覆中,無法切換 Profile', '応答中のためプロファイルを切り替えられません', '응답 중이라 프로필을 전환할 수 없습니다'),
// 批量选择
chatBulkSelect: _('多选会话', 'Select multiple sessions', '多選會話', 'セッションを複数選択', '여러 세션 선택'),
chatExitSelect: _('退出多选', 'Exit selection', '退出多選', '選択モード終了', '선택 모드 종료'),
chatSelect: _('选择', 'Select', '選擇'),
chatDeselect: _('取消选择', 'Deselect', '取消選擇'),
chatSelectAll: _('全选', 'Select all', '全選'),
chatSelectNone: _('清空选择', 'Clear selection', '清空選擇'),
chatSelectedCount: _('已选 {n} 项', '{n} selected', '已選 {n} 項', '{n} 件選択', '{n}개 선택됨'),
chatBulkDelete: _('批量删除', 'Delete selected', '批量刪除', '一括削除', '일괄 삭제'),
chatConfirmBulkDelete: _('确认删除 {n} 个会话?此操作无法撤销。', 'Delete {n} sessions? This action cannot be undone.', '確認刪除 {n} 個會話?此操作無法復原。', '{n} 件のセッションを削除しますか?元に戻せません。', '{n}개 세션을 삭제할까요? 되돌릴 수 없습니다.'),
chatBulkDeleted: _('已删除 {n} 个会话', '{n} sessions deleted', '已刪除 {n} 個會話', '{n} 件のセッションを削除', '{n}개 세션 삭제됨'),
chatBulkPartial: _('已删除 {n} 个,{f} 个失败/跳过', '{n} deleted, {f} failed/skipped', '已刪除 {n} 個,{f} 個失敗/跳過', '{n} 件削除、{f} 件失敗/スキップ', '{n}개 삭제, {f}개 실패/건너뜀'),
chatBulkFailed: _('批量删除失败', 'Bulk delete failed', '批量刪除失敗', '一括削除に失敗', '일괄 삭제 실패'),
// 会话浏览页
sessionsPageTitle: _('会话浏览器', 'Session Browser', '會話瀏覽器', 'セッションブラウザ', '세션 브라우저'),
sessionsPageDesc: _('跨 Profile 搜索、审阅和批量管理 Hermes 会话。', 'Search, review and batch-manage Hermes sessions across profiles.', '跨 Profile 搜尋、檢閱和批量管理 Hermes 會話。'),
sessionsSearchPlaceholder: _('搜索标题、模型、来源或消息内容...', 'Search title, model, source or message content...', '搜尋標題、模型、來源或訊息內容...'),
sessionsAllSources: _('全部来源', 'All sources', '全部來源'),
sessionsAllProfiles: _('全部 Profiles', 'All profiles', '全部 Profiles'),
sessionsProfileLoadPartial: _('{n} 个 Profile 加载失败', '{n} profiles failed to load', '{n} 個 Profile 載入失敗'),
sessionsDetailLoadFailed: _('会话详情加载失败', 'Failed to load session details', '會話詳情載入失敗'),
sessionsTotal: _('全部会话', 'Total sessions', '全部會話'),
sessionsShown: _('当前显示', 'Shown', '目前顯示'),
sessionsProfiles: _('Profiles', 'Profiles', 'Profiles'),
sessionsSelected: _('已选择', 'Selected', '已選擇'),
sessionsJustNow: _('刚刚', 'just now', '剛剛'),
sessionsMinutesAgo: _('{n} 分钟前', '{n}m ago', '{n} 分鐘前'),
sessionsHoursAgo: _('{n} 小时前', '{n}h ago', '{n} 小時前'),
sessionsUntitled: _('未命名会话', 'Untitled session', '未命名會話'),
sessionsNoPreview: _('暂无预览', 'No preview', '暫無預覽'),
sessionsEmpty: _('没有匹配的会话', 'No matching sessions', '沒有符合的會話'),
sessionsNoSelection: _('选择一个会话', 'Select a session', '選擇一個會話'),
sessionsNoSelectionDesc: _('从左侧列表选择会话,查看元数据和最近消息。', 'Pick a session from the left to inspect metadata and recent messages.', '從左側列表選擇會話,查看中繼資料和最近訊息。'),
sessionsOpenChat: _('打开聊天', 'Open chat', '開啟聊天'),
sessionsPin: _('置顶', 'Pin', '置頂'),
sessionsUnpin: _('取消置顶', 'Unpin', '取消置頂'),
sessionsMessages: _('消息数', 'Messages', '訊息數'),
sessionsTokens: _('Tokens', 'Tokens', 'Tokens'),
sessionsModel: _('模型', 'Model', '模型'),
sessionsUpdated: _('更新时间', 'Updated', '更新時間'),
sessionsMessagesNotLoaded: _('消息尚未载入,点击左侧会话后会自动同步详情。', 'Messages are not loaded yet; selecting a session syncs details automatically.', '訊息尚未載入,點擊左側會話後會自動同步詳情。'),
// Slash 命令
chatSlashTitle: _('可用命令', 'Available commands', '可用命令'),
chatSlashHelpDesc: _('显示可用命令', 'Show available commands', '顯示可用命令'),
chatSlashStatusDesc: _('查看 Gateway 与模型状态', 'Inspect gateway & model status', '查看 Gateway 與模型狀態'),
chatSlashMemoryDesc: _('打开 Agent 记忆编辑', 'Open Agent memory editor', '開啟 Agent 記憶編輯'),
chatSlashSkillsDesc: _('打开技能库', 'Open skills library', '開啟技能庫'),
chatSlashClearDesc: _('清空当前会话', 'Clear current session', '清空目前會話'),
chatSlashNewDesc: _('新建会话', 'Start a new session', '新建會話'),
chatSlashStatusTitle: _('当前状态', 'Current status', '目前狀態'),
chatSlashGateway: _('Gateway', 'Gateway', 'Gateway'),
chatSlashPort: _('端口', 'Port', '埠'),
chatSlashModel: _('模型', 'Model', '模型'),
chatSlashRedirect: _('正在跳转到 {page}...', 'Redirecting to {page}...', '正在跳轉到 {page}...'),
// Batch 1 §B: Hermes config.js 编辑器(去掉硬编码)
hermesConfigEyebrow: _('HERMES AGENT · 配置', 'HERMES AGENT · CONFIG', 'HERMES AGENT · 設定'),
hermesConfigReload: _('重新加载', 'Reload', '重新載入'),
hermesConfigSave: _('保存配置', 'Save', '儲存設定'),
hermesConfigSaveSuccess: _('配置已保存,建议重启 Hermes Gateway 生效', 'Saved. Restart Hermes Gateway to take effect.', '已儲存設定,建議重啟 Hermes Gateway 生效'),
hermesConfigBackupHint: _('已先创建备份:{path}', 'Backup created first: {path}', '已先建立備份:{path}'),
hermesConfigStatusSaving: _('保存中…', 'Saving…', '儲存中…'),
hermesConfigStatusLoading: _('加载中…', 'Loading…', '載入中…'),
hermesConfigStatusReady: _('raw yaml 编辑器', 'raw yaml editor', 'raw yaml 編輯器'),
hermesConfigRawDesc: _('高级入口,适合编辑尚未做成表单的 Hermes 配置项。保存前会校验 YAML 并保留备份。', 'Advanced editor for Hermes settings that are not exposed as forms yet. YAML is validated and backed up before saving.', '進階入口,適合編輯尚未做成表單的 Hermes 設定項。儲存前會驗證 YAML 並保留備份。'),
hermesSessionRuntimeTitle: _('会话安全', 'Session safety', '會話安全'),
hermesSessionRuntimeDesc: _('控制自动换新会话和群聊上下文隔离,降低长期运行时的串话、误中断和上下文膨胀风险。', 'Control automatic session reset and group chat isolation to reduce context bleed, accidental interrupts, and long-running context growth.', '控制自動換新會話和群聊上下文隔離,降低長期執行時的串話、誤中斷和上下文膨脹風險。'),
hermesSessionRuntimeStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesSessionRuntimeSave: _('保存会话配置', 'Save session settings', '儲存會話設定'),
hermesSessionRuntimeSaveSuccess: _('会话配置已保存,建议重启 Hermes Gateway 生效', 'Session settings saved. Restart Hermes Gateway to take effect.', '會話設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesSessionRuntimeLoadFailed: _('加载会话配置失败', 'Load session settings failed', '載入會話設定失敗'),
hermesSessionRuntimeSaveFailed: _('保存会话配置失败', 'Save session settings failed', '儲存會話設定失敗'),
hermesSessionResetMode: _('自动换新会话', 'Auto reset sessions', '自動換新會話'),
hermesSessionResetMode_both: _('空闲或每日任一触发', 'Idle or daily, whichever comes first', '閒置或每日任一觸發'),
hermesSessionResetMode_idle: _('仅按空闲时间', 'Idle only', '僅依閒置時間'),
hermesSessionResetMode_daily: _('仅按每日时间', 'Daily only', '僅依每日時間'),
hermesSessionResetMode_none: _('不自动换新', 'Never auto reset', '不自動換新'),
hermesSessionIdleMinutes: _('空闲分钟数', 'Idle minutes', '閒置分鐘數'),
hermesSessionAtHour: _('每日换新小时', 'Daily reset hour', '每日換新小時'),
hermesGroupSessionsPerUser: _('群聊按成员隔离会话', 'Isolate group sessions per user', '群聊依成員隔離會話'),
hermesThreadSessionsPerUser: _('线程也按成员隔离', 'Isolate thread sessions per user', '討論串也依成員隔離'),
hermesWorktreeEnabled: _('CLI 会话默认使用 Git worktree 隔离', 'Use Git worktree isolation for CLI sessions by default', 'CLI 會話預設使用 Git worktree 隔離'),
hermesSessionRuntimeFootnote: _('推荐保持群聊隔离开启;多人或多 Agent 同仓库长跑时,可开启 worktree 隔离来减少文件冲突。', 'Keeping group isolation on is recommended. For multi-user or multi-agent long runs in the same repository, enable worktree isolation to reduce file conflicts.', '建議保持群聊隔離開啟;多人或多 Agent 同倉庫長跑時,可啟用 worktree 隔離以減少檔案衝突。'),
hermesTerminalConfigTitle: _('终端执行', 'Terminal execution', '終端執行'),
hermesTerminalConfigDesc: _('控制 Hermes 工具命令的执行环境、工作目录、超时和容器资源,避免长任务卡死或沙箱范围误配。', 'Control command execution backend, working directory, timeouts, and container resources to avoid stuck runs or sandbox misconfiguration.', '控制 Hermes 工具命令的執行環境、工作目錄、逾時和容器資源,避免長任務卡死或沙箱範圍誤配。'),
hermesTerminalConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesTerminalConfigSave: _('保存终端配置', 'Save terminal settings', '儲存終端設定'),
hermesTerminalConfigSaveSuccess: _('终端执行配置已保存,建议重启 Hermes Gateway 生效', 'Terminal execution settings saved. Restart Hermes Gateway to take effect.', '終端執行設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesTerminalConfigLoadFailed: _('加载终端执行配置失败', 'Load terminal execution settings failed', '載入終端執行設定失敗'),
hermesTerminalConfigSaveFailed: _('保存终端执行配置失败', 'Save terminal execution settings failed', '儲存終端執行設定失敗'),
hermesTerminalConfigBackend: _('执行后端', 'Execution backend', '執行後端'),
hermesTerminalConfigBackend_local: _('本机', 'Local machine', '本機'),
hermesTerminalConfigBackend_ssh: _('SSH 远程', 'SSH remote', 'SSH 遠端'),
hermesTerminalConfigBackend_docker: _('Docker 容器', 'Docker container', 'Docker 容器'),
hermesTerminalConfigBackend_singularity: _('Singularity / Apptainer', 'Singularity / Apptainer', 'Singularity / Apptainer'),
hermesTerminalConfigBackend_modal: _('Modal 云沙箱', 'Modal cloud sandbox', 'Modal 雲端沙箱'),
hermesTerminalConfigBackend_daytona: _('Daytona 云沙箱', 'Daytona cloud sandbox', 'Daytona 雲端沙箱'),
hermesTerminalConfigBackend_vercel_sandbox: _('Vercel 沙箱', 'Vercel sandbox', 'Vercel 沙箱'),
hermesTerminalConfigCwd: _('工作目录', 'Working directory', '工作目錄'),
hermesTerminalConfigTimeout: _('命令超时秒数', 'Command timeout seconds', '命令逾時秒數'),
hermesTerminalConfigLifetimeSeconds: _('沙箱生命周期秒数', 'Sandbox lifetime seconds', '沙箱生命週期秒數'),
hermesTerminalConfigDockerMountCwd: _('Docker 挂载启动目录到 /workspace', 'Mount launch cwd into Docker /workspace', 'Docker 掛載啟動目錄到 /workspace'),
hermesTerminalConfigDockerRunAsHostUser: _('Docker 使用宿主用户运行', 'Run Docker as host user', 'Docker 使用宿主使用者執行'),
hermesTerminalConfigContainerPersistent: _('容器文件系统持久化', 'Persist container filesystem', '容器檔案系統持久化'),
hermesTerminalConfigContainerTitle: _('容器资源限制', 'Container resource limits', '容器資源限制'),
hermesTerminalConfigSshTitle: _('SSH 远程执行', 'SSH remote execution', 'SSH 遠端執行'),
hermesTerminalConfigSshHost: _('SSH 主机(可选)', 'SSH host (optional)', 'SSH 主機(可選)'),
hermesTerminalConfigSshUser: _('SSH 用户(可选)', 'SSH user (optional)', 'SSH 使用者(可選)'),
hermesTerminalConfigSshPort: _('SSH 端口', 'SSH port', 'SSH 連接埠'),
hermesTerminalConfigSshKey: _('SSH 密钥路径(可选)', 'SSH key path (optional)', 'SSH 金鑰路徑(可選)'),
hermesTerminalConfigDockerImage: _('Docker 镜像(可选)', 'Docker image (optional)', 'Docker 映像(可選)'),
hermesTerminalConfigDockerForwardEnv: _('Docker 转发环境变量名', 'Docker forwarded env names', 'Docker 轉發環境變數名'),
hermesTerminalConfigSingularityImage: _('Singularity 镜像(可选)', 'Singularity image (optional)', 'Singularity 映像(可選)'),
hermesTerminalConfigModalImage: _('Modal 镜像(可选)', 'Modal image (optional)', 'Modal 映像(可選)'),
hermesTerminalConfigDaytonaImage: _('Daytona 镜像(可选)', 'Daytona image (optional)', 'Daytona 映像(可選)'),
hermesTerminalConfigContainerCpu: _('CPU 核数', 'CPU cores', 'CPU 核心數'),
hermesTerminalConfigContainerMemory: _('内存 MB', 'Memory MB', '記憶體 MB'),
hermesTerminalConfigContainerDisk: _('磁盘 MB', 'Disk MB', '磁碟 MB'),
hermesTerminalConfigFootnote: _('SSH 字段只在 SSH 后端生效,留空会移除主机、用户和密钥覆盖;面板不保存 SSH 密码。镜像字段只在对应 Docker、Singularity、Modal 或 Daytona 后端生效;留空会移除覆盖并使用 Hermes 默认值。Docker 环境变量转发只保存变量名不保存密钥值每行一个变量名留空会移除覆盖。Docker 挂载启动目录会把宿主目录暴露给沙箱,仅在可信项目和无人值守任务中开启。', 'SSH fields only apply to the SSH backend. Leaving them blank removes host, user, and key overrides; the panel does not save SSH passwords. Image fields only apply to the matching Docker, Singularity, Modal, or Daytona backend. Leaving them blank removes the override and uses Hermes defaults. Docker env forwarding stores variable names only, not secret values; use one name per line, or leave blank to remove the override. Mounting the launch cwd exposes host files to the sandbox; enable it only for trusted projects or unattended jobs.', 'SSH 欄位只在 SSH 後端生效,留空會移除主機、使用者和金鑰覆蓋;面板不儲存 SSH 密碼。映像欄位只在對應 Docker、Singularity、Modal 或 Daytona 後端生效;留空會移除覆蓋並使用 Hermes 預設值。Docker 環境變數轉發只儲存變數名不儲存密鑰值每行一個變數名留空會移除覆蓋。Docker 掛載啟動目錄會把宿主目錄暴露給沙箱,僅在可信專案和無人值守任務中開啟。'),
hermesStreamingConfigTitle: _('网关流式输出', 'Gateway streaming output', '閘道流式輸出'),
hermesStreamingConfigDesc: _('控制 Hermes Gateway 回复时是否边生成边更新消息,以及消息刷新节奏。适合需要更快看到长回复进度的渠道。', 'Control whether Hermes Gateway updates messages while replies are generated, plus the refresh cadence. Useful when channels need quicker progress for long replies.', '控制 Hermes Gateway 回覆時是否邊生成邊更新訊息,以及訊息刷新節奏。適合需要更快看到長回覆進度的渠道。'),
hermesStreamingConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesStreamingConfigSave: _('保存流式配置', 'Save streaming settings', '儲存流式設定'),
hermesStreamingConfigSaveSuccess: _('流式配置已保存,建议重启 Hermes Gateway 生效', 'Streaming settings saved. Restart Hermes Gateway to take effect.', '流式設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesStreamingConfigLoadFailed: _('加载流式配置失败', 'Load streaming settings failed', '載入流式設定失敗'),
hermesStreamingConfigSaveFailed: _('保存流式配置失败', 'Save streaming settings failed', '儲存流式設定失敗'),
hermesStreamingConfigEnabled: _('启用流式输出', 'Enable streaming output', '啟用流式輸出'),
hermesStreamingConfigTransport: _('消息更新方式', 'Message update mode', '訊息更新方式'),
hermesStreamingConfigTransport_edit: _('编辑原消息', 'Edit original message', '編輯原訊息'),
hermesStreamingConfigTransport_auto: _('自动选择', 'Auto select', '自動選擇'),
hermesStreamingConfigTransport_draft: _('草稿式更新', 'Draft updates', '草稿式更新'),
hermesStreamingConfigTransport_off: _('关闭更新', 'Disable updates', '關閉更新'),
hermesStreamingConfigEditInterval: _('消息编辑间隔(秒)', 'Message edit interval (s)', '訊息編輯間隔(秒)'),
hermesStreamingConfigBufferThreshold: _('触发刷新字符数', 'Refresh trigger characters', '觸發刷新字元數'),
hermesStreamingConfigFreshFinalAfterSeconds: _('长回复完成新消息时间(秒)', 'Fresh final message after (s)', '長回覆完成新訊息時間(秒)'),
hermesStreamingConfigCursor: _('生成中标记', 'In-progress marker', '生成中標記'),
hermesStreamingConfigFootnote: _('这里写入顶层 streaming 配置;旧版 gateway.streaming、display.streaming 和其他高级字段会保留在 raw YAML 中。将“长回复完成新消息时间”设为 0 可关闭完成后新消息。', 'This writes the top-level streaming settings. Legacy gateway.streaming, display.streaming, and other advanced fields are preserved in raw YAML. Set fresh final message time to 0 to disable the final follow-up message.', '這裡寫入頂層 streaming 設定;舊版 gateway.streaming、display.streaming 和其他進階欄位會保留在 raw YAML 中。將「長回覆完成新訊息時間」設為 0 可關閉完成後新訊息。'),
hermesExecutionLimitsTitle: _('执行与委派限制', 'Execution and delegation limits', '執行與委派限制'),
hermesExecutionLimitsDesc: _('控制 execute_code 沙箱和 delegate_task 子 Agent 的超时、并发、深度与自动批准策略,降低长跑任务失控和成本放大的风险。', 'Control execute_code sandbox and delegate_task child-agent timeouts, concurrency, depth, and auto-approval policy to reduce runaway long-run tasks and cost amplification.', '控制 execute_code 沙箱和 delegate_task 子 Agent 的逾時、並發、深度與自動批准策略,降低長跑任務失控和成本放大的風險。'),
hermesExecutionLimitsStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesExecutionLimitsSave: _('保存执行限制', 'Save execution limits', '儲存執行限制'),
hermesExecutionLimitsSaveSuccess: _('执行与委派限制已保存,建议重启 Hermes Gateway 生效', 'Execution and delegation limits saved. Restart Hermes Gateway to take effect.', '執行與委派限制已儲存,建議重啟 Hermes Gateway 生效'),
hermesExecutionLimitsLoadFailed: _('加载执行与委派限制失败', 'Load execution and delegation limits failed', '載入執行與委派限制失敗'),
hermesExecutionLimitsSaveFailed: _('保存执行与委派限制失败', 'Save execution and delegation limits failed', '儲存執行與委派限制失敗'),
hermesExecutionLimitsCodeTitle: _('代码执行沙箱', 'Code execution sandbox', '程式碼執行沙箱'),
hermesExecutionLimitsCodeMode: _('执行模式', 'Execution mode', '執行模式'),
hermesExecutionLimitsCodeMode_project: _('项目环境', 'Project environment', '專案環境'),
hermesExecutionLimitsCodeMode_strict: _('严格隔离', 'Strict isolation', '嚴格隔離'),
hermesExecutionLimitsCodeTimeout: _('脚本超时(秒)', 'Script timeout (s)', '腳本逾時(秒)'),
hermesExecutionLimitsCodeMaxToolCalls: _('最大工具调用数', 'Max tool calls', '最大工具呼叫數'),
hermesExecutionLimitsDelegationTitle: _('子 Agent 委派', 'Child-agent delegation', '子 Agent 委派'),
hermesExecutionLimitsDelegationMaxIterations: _('每个子任务最大轮数', 'Max turns per child', '每個子任務最大輪數'),
hermesExecutionLimitsDelegationChildTimeout: _('每个子任务超时(秒)', 'Child timeout (s)', '每個子任務逾時(秒)'),
hermesExecutionLimitsDelegationMaxConcurrent: _('最大并发子任务', 'Max concurrent children', '最大並發子任務'),
hermesExecutionLimitsDelegationMaxSpawnDepth: _('委派深度上限', 'Spawn depth limit', '委派深度上限'),
hermesExecutionLimitsDelegationModel: _('子 Agent 模型覆盖(可选)', 'Child model override (optional)', '子 Agent 模型覆蓋(可選)'),
hermesExecutionLimitsDelegationProvider: _('子 Agent Provider 覆盖(可选)', 'Child provider override (optional)', '子 Agent Provider 覆蓋(可選)'),
hermesExecutionLimitsDelegationOrchestratorEnabled: _('允许中间协调 Agent', 'Allow orchestrator children', '允許中間協調 Agent'),
hermesExecutionLimitsDelegationInheritMcp: _('保留父任务 MCP 工具集', 'Inherit parent MCP toolsets', '保留父任務 MCP 工具集'),
hermesExecutionLimitsDelegationAutoApprove: _('自动批准子任务危险命令', 'Auto-approve child dangerous commands', '自動批准子任務危險命令'),
hermesExecutionLimitsFootnote: _('子 Agent 模型和 Provider 留空时继承父任务;只在需要降低成本、隔离慢模型或固定子任务路由时填写。默认会拒绝子任务危险命令审批,适合交互式和长跑任务。只有在完全信任无人值守环境时才开启自动批准。', 'Leave child model and provider blank to inherit the parent task. Fill them only to reduce cost, isolate slower models, or pin child-task routing. By default, dangerous-command approvals from child agents are auto-denied, which fits interactive and long-running tasks. Enable auto-approval only in fully trusted unattended environments.', '子 Agent 模型和 Provider 留空時繼承父任務;只在需要降低成本、隔離慢模型或固定子任務路由時填寫。預設會拒絕子任務危險命令審批,適合互動式和長跑任務。只有在完全信任無人值守環境時才啟用自動批准。'),
hermesIoSafetyTitle: _('输入输出保护', 'Input and output safety', '輸入輸出保護'),
hermesIoSafetyDesc: _('限制单次文件读取和工具输出体量,避免大文件或长日志一次性挤爆上下文。', 'Limit single file reads and tool output size so large files or long logs do not flood the context.', '限制單次檔案讀取和工具輸出體量,避免大型檔案或長日誌一次性擠爆上下文。'),
hermesIoSafetyStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesIoSafetySave: _('保存保护配置', 'Save safety limits', '儲存保護設定'),
hermesIoSafetySaveSuccess: _('输入输出保护已保存,建议重启 Hermes Gateway 生效', 'Input/output safety limits saved. Restart Hermes Gateway to take effect.', '輸入輸出保護已儲存,建議重啟 Hermes Gateway 生效'),
hermesIoSafetyLoadFailed: _('加载输入输出保护失败', 'Load input/output safety failed', '載入輸入輸出保護失敗'),
hermesIoSafetySaveFailed: _('保存输入输出保护失败', 'Save input/output safety failed', '儲存輸入輸出保護失敗'),
hermesIoSafetyFileReadMaxChars: _('单次文件读取字符上限', 'File read character cap', '單次檔案讀取字元上限'),
hermesIoSafetyToolOutputMaxBytes: _('终端输出字符上限', 'Terminal output character cap', '終端輸出字元上限'),
hermesIoSafetyToolOutputMaxLines: _('文件分页最大行数', 'File page line cap', '檔案分頁最大行數'),
hermesIoSafetyToolOutputMaxLineLength: _('单行显示字符上限', 'Per-line character cap', '單行顯示字元上限'),
hermesIoSafetyFootnote: _('默认值适合大多数模型;小上下文模型可降低这些上限。其他 tool_output 高级字段会保留在 raw YAML 中。', 'Defaults fit most models. Lower these limits for small-context models. Other advanced tool_output fields are preserved in raw YAML.', '預設值適合多數模型;小上下文模型可降低這些上限。其他 tool_output 進階欄位會保留在 raw YAML 中。'),
hermesCheckpointsConfigTitle: _('文件快照回滚', 'File checkpoint rollback', '檔案快照回滾'),
hermesCheckpointsConfigDesc: _('在首次写文件或补丁前为工作目录创建快照,便于长跑任务误改后通过 /rollback 恢复。', 'Create a working-directory snapshot before the first file write or patch so long runs can recover with /rollback after accidental edits.', '在首次寫檔或套用補丁前為工作目錄建立快照,便於長跑任務誤改後透過 /rollback 復原。'),
hermesCheckpointsConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesCheckpointsConfigSave: _('保存回滚保护', 'Save rollback protection', '儲存回滾保護'),
hermesCheckpointsConfigSaveSuccess: _('文件快照回滚配置已保存,建议重启 Hermes Gateway 生效', 'File checkpoint rollback settings saved. Restart Hermes Gateway to take effect.', '檔案快照回滾設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesCheckpointsConfigLoadFailed: _('加载文件快照回滚配置失败', 'Load file checkpoint rollback settings failed', '載入檔案快照回滾設定失敗'),
hermesCheckpointsConfigSaveFailed: _('保存文件快照回滚配置失败', 'Save file checkpoint rollback settings failed', '儲存檔案快照回滾設定失敗'),
hermesCheckpointsConfigEnabled: _('启用写入前快照', 'Enable snapshots before writes', '啟用寫入前快照'),
hermesCheckpointsConfigAutoPrune: _('自动清理旧快照', 'Automatically prune old snapshots', '自動清理舊快照'),
hermesCheckpointsConfigDeleteOrphans: _('删除孤儿项目快照', 'Delete orphaned project snapshots', '刪除孤兒專案快照'),
hermesCheckpointsConfigMaxSnapshots: _('每个目录最多快照数', 'Max snapshots per directory', '每個目錄最多快照數'),
hermesCheckpointsConfigMaxTotalSizeMb: _('总容量上限 MB', 'Total size cap MB', '總容量上限 MB'),
hermesCheckpointsConfigMaxFileSizeMb: _('单文件纳入上限 MB', 'Single-file inclusion cap MB', '單檔納入上限 MB'),
hermesCheckpointsConfigRetentionDays: _('保留天数', 'Retention days', '保留天數'),
hermesCheckpointsConfigMinIntervalHours: _('自动清理最小间隔小时', 'Minimum auto-prune interval hours', '自動清理最小間隔小時'),
hermesCheckpointsConfigFootnote: _('这里写入 checkpoints.*。容量上限或单文件上限设为 0 表示关闭对应限制;其他 checkpoints 高级字段会保留在 raw YAML 中。', 'This writes checkpoints.*. Set total size cap or single-file cap to 0 to disable that limit. Other advanced checkpoint fields stay in raw YAML.', '這裡寫入 checkpoints.*。容量上限或單檔上限設為 0 表示關閉對應限制;其他 checkpoints 進階欄位會保留在 raw YAML 中。'),
hermesCronConfigTitle: _('定时任务输出', 'Cron job output', '定時任務輸出'),
hermesCronConfigDesc: _('控制定时任务结果是否包装任务名和提示,并限制同一轮最多并发任务数,降低无人值守长跑时的噪音和资源冲高。', 'Control whether scheduled job results are wrapped with task context, and cap jobs running in parallel per tick to reduce unattended-run noise and resource spikes.', '控制定時任務結果是否包裝任務名稱和提示,並限制同一輪最多並發任務數,降低無人值守長跑時的噪音和資源衝高。'),
hermesCronConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesCronConfigSave: _('保存定时任务配置', 'Save cron settings', '儲存定時任務設定'),
hermesCronConfigSaveSuccess: _('定时任务输出配置已保存,建议重启 Hermes Gateway 生效', 'Cron job output settings saved. Restart Hermes Gateway to take effect.', '定時任務輸出設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesCronConfigLoadFailed: _('加载定时任务输出配置失败', 'Load cron job output settings failed', '載入定時任務輸出設定失敗'),
hermesCronConfigSaveFailed: _('保存定时任务输出配置失败', 'Save cron job output settings failed', '儲存定時任務輸出設定失敗'),
hermesCronConfigWrapResponse: _('结果回传时附加任务名和系统提示', 'Add job name and system notice when delivering results', '結果回傳時附加任務名稱和系統提示'),
hermesCronConfigMaxParallelJobs: _('每轮最多并发任务数', 'Max parallel jobs per tick', '每輪最多並發任務數'),
hermesCronConfigFootnote: _('这里写入 cron.wrap_response 与 cron.max_parallel_jobs。并发数设为 0 表示不额外限制,由 Hermes 按上游默认语义写入 null其他 cron 高级字段会保留在 raw YAML 中。', 'This writes cron.wrap_response and cron.max_parallel_jobs. Set parallel jobs to 0 for no extra cap; Hermes writes null to match upstream semantics. Other advanced cron fields stay in raw YAML.', '這裡寫入 cron.wrap_response 與 cron.max_parallel_jobs。並發數設為 0 表示不額外限制,由 Hermes 依上游預設語義寫入 null其他 cron 進階欄位會保留在 raw YAML 中。'),
hermesLoggingConfigTitle: _('运行日志', 'Runtime logs', '執行日誌'),
hermesLoggingConfigDesc: _('控制 Hermes 日志级别、单文件轮转大小、保留备份数量和 Gateway 内存采样,便于长跑排障并避免日志无限膨胀。', 'Control Hermes log level, per-file rotation size, retained backups, and Gateway memory sampling for easier long-run diagnosis without unbounded logs.', '控制 Hermes 日誌級別、單檔輪轉大小、保留備份數量和 Gateway 記憶體取樣,便於長跑排障並避免日誌無限膨脹。'),
hermesLoggingConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesLoggingConfigSave: _('保存日志配置', 'Save log settings', '儲存日誌設定'),
hermesLoggingConfigSaveSuccess: _('运行日志配置已保存,建议重启 Hermes Gateway 生效', 'Runtime log settings saved. Restart Hermes Gateway to take effect.', '執行日誌設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesLoggingConfigLoadFailed: _('加载运行日志配置失败', 'Load runtime log settings failed', '載入執行日誌設定失敗'),
hermesLoggingConfigSaveFailed: _('保存运行日志配置失败', 'Save runtime log settings failed', '儲存執行日誌設定失敗'),
hermesLoggingConfigLevel: _('日志级别', 'Log level', '日誌級別'),
hermesLoggingConfigLevel_DEBUG: _('DEBUG最详细', 'DEBUG (most detailed)', 'DEBUG最詳細'),
hermesLoggingConfigLevel_INFO: _('INFO推荐', 'INFO (recommended)', 'INFO建議'),
hermesLoggingConfigLevel_WARNING: _('WARNING仅警告和错误', 'WARNING (warnings and errors only)', 'WARNING僅警告和錯誤'),
hermesLoggingConfigMaxSizeMb: _('单个日志文件上限 MB', 'Max size per log file MB', '單一日誌檔上限 MB'),
hermesLoggingConfigBackupCount: _('保留备份文件数', 'Retained backup files', '保留備份檔案數'),
hermesLoggingConfigMemoryMonitorEnabled: _('启用 Gateway 内存采样', 'Enable Gateway memory sampling', '啟用 Gateway 記憶體取樣'),
hermesLoggingConfigMemoryMonitorIntervalSeconds: _('内存采样间隔秒数', 'Memory sampling interval seconds', '記憶體取樣間隔秒數'),
hermesLoggingConfigFootnote: _('这里写入 logging.* 与 logging.memory_monitor.*;其他 logging 高级字段会保留在 raw YAML 中。日志级别越低越详细,可能增加磁盘占用。', 'This writes logging.* and logging.memory_monitor.*. Other advanced logging fields stay in raw YAML. Lower log levels are more detailed and may increase disk usage.', '這裡寫入 logging.* 與 logging.memory_monitor.*;其他 logging 進階欄位會保留在 raw YAML 中。日誌級別越低越詳細,可能增加磁碟占用。'),
hermesApprovalsConfigTitle: _('审批安全', 'Approval safety', '審批安全'),
hermesApprovalsConfigDesc: _('控制危险命令、Cron 任务和破坏性 slash 命令的审批策略,避免无人值守长跑任务误放行高风险操作。', 'Control approval policy for dangerous commands, cron jobs, and destructive slash commands so unattended long runs do not approve risky operations by mistake.', '控制危險命令、Cron 任務和破壞性 slash 命令的審批策略,避免無人值守長跑任務誤放行高風險操作。'),
hermesApprovalsConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesApprovalsConfigSave: _('保存审批配置', 'Save approval settings', '儲存審批設定'),
hermesApprovalsConfigSaveSuccess: _('审批安全配置已保存,建议重启 Hermes Gateway 生效', 'Approval safety settings saved. Restart Hermes Gateway to take effect.', '審批安全設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesApprovalsConfigLoadFailed: _('加载审批安全配置失败', 'Load approval safety settings failed', '載入審批安全設定失敗'),
hermesApprovalsConfigSaveFailed: _('保存审批安全配置失败', 'Save approval safety settings failed', '儲存審批安全設定失敗'),
hermesApprovalsConfigMode: _('交互审批模式', 'Interactive approval mode', '互動審批模式'),
hermesApprovalsConfigMode_manual: _('手动确认', 'Manual confirmation', '手動確認'),
hermesApprovalsConfigMode_smart: _('智能判断', 'Smart decision', '智慧判斷'),
hermesApprovalsConfigMode_off: _('关闭审批', 'Disable approvals', '關閉審批'),
hermesApprovalsConfigTimeout: _('等待审批超时秒数', 'Approval timeout seconds', '等待審批逾時秒數'),
hermesApprovalsConfigCronMode: _('Cron 任务默认策略', 'Default cron-job policy', 'Cron 任務預設策略'),
hermesApprovalsConfigCronMode_deny: _('默认拒绝', 'Deny by default', '預設拒絕'),
hermesApprovalsConfigCronMode_approve: _('默认批准', 'Approve by default', '預設批准'),
hermesApprovalsConfigMcpReloadConfirm: _('重载 MCP 工具前要求确认', 'Confirm before reloading MCP tools', '重載 MCP 工具前要求確認'),
hermesApprovalsConfigDestructiveSlashConfirm: _('破坏性 slash 命令要求确认', 'Confirm destructive slash commands', '破壞性 slash 命令要求確認'),
hermesApprovalsConfigFootnote: _('推荐保持交互审批为手动或智能,并让 Cron 默认拒绝危险命令;只有在完全可信的无人值守环境中才使用默认批准。其他 approvals 高级字段会保留在 raw YAML 中。', 'Manual or smart interactive approval is recommended, with cron jobs denying dangerous commands by default. Use default approval only in fully trusted unattended environments. Other advanced approvals fields stay in raw YAML.', '建議保持互動審批為手動或智慧,並讓 Cron 預設拒絕危險命令;只有在完全可信的無人值守環境中才使用預設批准。其他 approvals 進階欄位會保留在 raw YAML 中。'),
hermesPrivacyConfigTitle: _('隐私脱敏', 'Privacy redaction', '隱私脫敏'),
hermesPrivacyConfigDesc: _('对支持的 Gateway 渠道在送入模型前脱敏用户 ID、手机号和会话标识降低公网渠道泄露风险。', 'Redact user IDs, phone numbers, and chat identifiers before supported Gateway channels send context to the model, reducing public-channel exposure risk.', '對支援的 Gateway 渠道在送入模型前脫敏使用者 ID、電話號碼和會話識別降低公開渠道外洩風險。'),
hermesPrivacyConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesPrivacyConfigSave: _('保存隐私配置', 'Save privacy settings', '儲存隱私設定'),
hermesPrivacyConfigSaveSuccess: _('隐私脱敏配置已保存,建议重启 Hermes Gateway 生效', 'Privacy redaction settings saved. Restart Hermes Gateway to take effect.', '隱私脫敏設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesPrivacyConfigLoadFailed: _('加载隐私脱敏配置失败', 'Load privacy redaction failed', '載入隱私脫敏設定失敗'),
hermesPrivacyConfigSaveFailed: _('保存隐私脱敏配置失败', 'Save privacy redaction failed', '儲存隱私脫敏設定失敗'),
hermesPrivacyConfigRedactPii: _('送入模型前脱敏用户标识和手机号', 'Redact user identifiers and phone numbers before model context', '送入模型前脫敏使用者識別和電話號碼'),
hermesPrivacyConfigFootnote: _('目前主要作用于 WhatsApp、Signal 和 TelegramDiscord 与 Slack 为保持 mention 语义不会脱敏真实用户 ID。其他 privacy 高级字段会保留在 raw YAML 中。', 'Currently applies mainly to WhatsApp, Signal, and Telegram. Discord and Slack keep real user IDs to preserve mention semantics. Other advanced privacy fields are preserved in raw YAML.', '目前主要作用於 WhatsApp、Signal 和 TelegramDiscord 與 Slack 為保持 mention 語義不會脫敏真實使用者 ID。其他 privacy 進階欄位會保留在 raw YAML 中。'),
hermesBrowserConfigTitle: _('浏览器工具', 'Browser tools', '瀏覽器工具'),
hermesBrowserConfigDesc: _('控制浏览器工具的空闲回收、单次命令超时、会话录制和本地引擎,降低长跑浏览器任务卡死和隐私误录风险。', 'Control browser-tool idle cleanup, per-command timeout, session recording, and local engine to reduce stuck long-run browsing tasks and accidental recording risk.', '控制瀏覽器工具的閒置回收、單次命令逾時、工作階段錄製和本機引擎,降低長跑瀏覽器任務卡死和隱私誤錄風險。'),
hermesBrowserConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesBrowserConfigSave: _('保存浏览器配置', 'Save browser settings', '儲存瀏覽器設定'),
hermesBrowserConfigSaveSuccess: _('浏览器工具配置已保存,建议重启 Hermes Gateway 生效', 'Browser tool settings saved. Restart Hermes Gateway to take effect.', '瀏覽器工具設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesBrowserConfigLoadFailed: _('加载浏览器工具配置失败', 'Load browser tool settings failed', '載入瀏覽器工具設定失敗'),
hermesBrowserConfigSaveFailed: _('保存浏览器工具配置失败', 'Save browser tool settings failed', '儲存瀏覽器工具設定失敗'),
hermesBrowserConfigInactivityTimeout: _('空闲回收秒数', 'Idle cleanup seconds', '閒置回收秒數'),
hermesBrowserConfigCommandTimeout: _('单次命令超时秒数', 'Command timeout seconds', '單次命令逾時秒數'),
hermesBrowserConfigRecordSessions: _('录制浏览器会话', 'Record browser sessions', '錄製瀏覽器工作階段'),
hermesBrowserConfigEngine: _('浏览器引擎', 'Browser engine', '瀏覽器引擎'),
hermesBrowserConfigEngine_auto: _('自动选择', 'Auto select', '自動選擇'),
hermesBrowserConfigEngine_lightpanda: _('Lightpanda 快速导航', 'Lightpanda fast navigation', 'Lightpanda 快速導覽'),
hermesBrowserConfigEngine_chrome: _('Chrome 完整浏览器', 'Chrome full browser', 'Chrome 完整瀏覽器'),
hermesBrowserConfigFootnote: _('Lightpanda 导航更快但不支持截图;录制会把 WebM 写入 Hermes browser_recordings 目录请只在需要审计时开启。CDP、Dialog 和 Camofox 高级字段会保留在 raw YAML 中。', 'Lightpanda navigates faster but does not support screenshots. Recording writes WebM files into the Hermes browser_recordings directory, so enable it only for audits. Advanced CDP, Dialog, and Camofox fields stay in raw YAML.', 'Lightpanda 導覽更快但不支援截圖;錄製會把 WebM 寫入 Hermes browser_recordings 目錄請只在需要稽核時開啟。CDP、Dialog 和 Camofox 進階欄位會保留在 raw YAML 中。'),
hermesSttConfigTitle: _('语音转写', 'Speech transcription', '語音轉寫'),
hermesSttConfigDesc: _('控制消息平台语音消息是否自动转写以及本地、OpenAI 和 Mistral 转写模型。适合需要处理语音反馈的渠道。', 'Control automatic voice-message transcription for messaging platforms, plus local, OpenAI, and Mistral transcription models. Useful for channels that receive voice feedback.', '控制訊息平台語音訊息是否自動轉寫以及本機、OpenAI 和 Mistral 轉寫模型。適合需要處理語音回饋的渠道。'),
hermesSttConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesSttConfigSave: _('保存转写配置', 'Save transcription settings', '儲存轉寫設定'),
hermesSttConfigSaveSuccess: _('语音转写配置已保存,建议重启 Hermes Gateway 生效', 'Speech transcription settings saved. Restart Hermes Gateway to take effect.', '語音轉寫設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesSttConfigLoadFailed: _('加载语音转写配置失败', 'Load speech transcription settings failed', '載入語音轉寫設定失敗'),
hermesSttConfigSaveFailed: _('保存语音转写配置失败', 'Save speech transcription settings failed', '儲存語音轉寫設定失敗'),
hermesSttConfigEnabled: _('启用语音消息自动转写', 'Enable voice-message transcription', '啟用語音訊息自動轉寫'),
hermesSttConfigProvider: _('转写服务', 'Transcription provider', '轉寫服務'),
hermesSttConfigProvider_auto: _('自动选择', 'Auto select', '自動選擇'),
hermesSttConfigProvider_local: _('本地 faster-whisper', 'Local faster-whisper', '本機 faster-whisper'),
hermesSttConfigProvider_groq: _('Groq Whisper', 'Groq Whisper', 'Groq Whisper'),
hermesSttConfigProvider_openai: _('OpenAI Whisper / GPT 转写', 'OpenAI Whisper / GPT transcription', 'OpenAI Whisper / GPT 轉寫'),
hermesSttConfigProvider_mistral: _('Mistral Voxtral', 'Mistral Voxtral', 'Mistral Voxtral'),
hermesSttConfigLocalModel: _('本地模型', 'Local model', '本機模型'),
hermesSttConfigLocalModel_tiny: _('tiny最快', 'tiny (fastest)', 'tiny最快'),
hermesSttConfigLocalModel_base: _('base默认', 'base (default)', 'base預設'),
hermesSttConfigLocalModel_small: _('small更准', 'small (more accurate)', 'small更準'),
hermesSttConfigLocalModel_medium: _('medium高精度', 'medium (high accuracy)', 'medium高精度'),
'hermesSttConfigLocalModel_large-v3': _('large-v3最高精度', 'large-v3 (highest accuracy)', 'large-v3最高精度'),
hermesSttConfigLocalModel_turbo: _('turbo速度优先', 'turbo (speed first)', 'turbo速度優先'),
hermesSttConfigLocalLanguage: _('强制语言(可留空)', 'Forced language, optional', '強制語言(可留空)'),
hermesSttConfigOpenaiModel: _('OpenAI 模型', 'OpenAI model', 'OpenAI 模型'),
'hermesSttConfigOpenaiModel_whisper-1': _('whisper-1经典', 'whisper-1 (classic)', 'whisper-1經典'),
'hermesSttConfigOpenaiModel_gpt-4o-mini-transcribe': _('gpt-4o-mini-transcribe低成本', 'gpt-4o-mini-transcribe (lower cost)', 'gpt-4o-mini-transcribe低成本'),
'hermesSttConfigOpenaiModel_gpt-4o-transcribe': _('gpt-4o-transcribe高质量', 'gpt-4o-transcribe (higher quality)', 'gpt-4o-transcribe高品質'),
hermesSttConfigMistralModel: _('Mistral 模型', 'Mistral model', 'Mistral 模型'),
'hermesSttConfigMistralModel_voxtral-mini-latest': _('voxtral-mini-latest推荐', 'voxtral-mini-latest (recommended)', 'voxtral-mini-latest建議'),
'hermesSttConfigMistralModel_voxtral-mini-2602': _('voxtral-mini-2602固定版本', 'voxtral-mini-2602 (pinned version)', 'voxtral-mini-2602固定版本'),
hermesSttConfigFootnote: _('这里写入 stt.*。API Key 仍通过 .env 管理Groq 使用上游默认模型,其他 provider 高级字段会保留在 raw YAML 中。', 'This writes stt.*. API keys are still managed through .env. Groq uses the upstream default model, and other provider advanced fields stay in raw YAML.', '這裡寫入 stt.*。API Key 仍透過 .env 管理Groq 使用上游預設模型,其他 provider 進階欄位會保留在 raw YAML 中。'),
hermesCompressionTitle: _('上下文压缩', 'Context compression', '上下文壓縮'),
hermesCompressionDesc: _('控制长对话何时触发压缩、压缩目标和保留范围,降低上下文过长导致的失败与费用浪费。', 'Control when long conversations are compressed, the target size, and protected message ranges to reduce failures and wasted cost from oversized context.', '控制長對話何時觸發壓縮、壓縮目標和保留範圍,降低上下文過長導致的失敗與費用浪費。'),
hermesCompressionStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesCompressionSave: _('保存压缩配置', 'Save compression settings', '儲存壓縮設定'),
hermesCompressionSaveSuccess: _('压缩配置已保存,建议重启 Hermes Gateway 生效', 'Compression settings saved. Restart Hermes Gateway to take effect.', '壓縮設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesCompressionLoadFailed: _('加载压缩配置失败', 'Load compression settings failed', '載入壓縮設定失敗'),
hermesCompressionSaveFailed: _('保存压缩配置失败', 'Save compression settings failed', '儲存壓縮設定失敗'),
hermesCompressionEnabled: _('启用自动压缩', 'Enable automatic compression', '啟用自動壓縮'),
hermesCompressionThreshold: _('触发阈值', 'Trigger threshold', '觸發閾值'),
hermesCompressionTargetRatio: _('压缩目标比例', 'Target ratio', '壓縮目標比例'),
hermesCompressionProtectLastN: _('保护最近消息数', 'Protect latest messages', '保護最近訊息數'),
hermesCompressionProtectFirstN: _('保护开头消息数', 'Protect first messages', '保護開頭訊息數'),
hermesCompressionAbortOnSummaryFailure: _('摘要失败时中止回复', 'Abort when summarization fails', '摘要失敗時中止回覆'),
hermesCompressionFootnote: _('阈值和目标比例越低,压缩越早、越激进。建议先使用默认值,再根据真实 Gateway 日志调整。', 'Lower thresholds and target ratios compress earlier and more aggressively. Start with the defaults, then tune with real Gateway logs.', '閾值和目標比例越低,壓縮越早、越激進。建議先使用預設值,再根據真實 Gateway 日誌調整。'),
hermesPromptCachingConfigTitle: _('提示缓存', 'Prompt caching', '提示快取'),
hermesPromptCachingConfigDesc: _('控制 Anthropic/OpenRouter 前缀缓存 TTL。长跑任务如果回合间隔较长可以选择 1 小时以降低重复上下文成本。', 'Control the Anthropic/OpenRouter prefix cache TTL. For long runs with longer pauses between turns, choose 1 hour to reduce repeated context cost.', '控制 Anthropic/OpenRouter 前綴快取 TTL。長跑任務如果回合間隔較長可以選擇 1 小時以降低重複上下文成本。'),
hermesPromptCachingConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesPromptCachingConfigSave: _('保存提示缓存', 'Save prompt caching', '儲存提示快取'),
hermesPromptCachingConfigSaveSuccess: _('提示缓存配置已保存,建议重启 Hermes Gateway 生效', 'Prompt caching settings saved. Restart Hermes Gateway to take effect.', '提示快取設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesPromptCachingConfigLoadFailed: _('加载提示缓存配置失败', 'Load prompt caching settings failed', '載入提示快取設定失敗'),
hermesPromptCachingConfigSaveFailed: _('保存提示缓存配置失败', 'Save prompt caching settings failed', '儲存提示快取設定失敗'),
hermesPromptCachingConfigCacheTtl: _('缓存有效期', 'Cache TTL', '快取有效期'),
hermesPromptCachingConfigCacheTtl_5m: _('5 分钟(默认)', '5 minutes (default)', '5 分鐘(預設)'),
hermesPromptCachingConfigCacheTtl_1h: _('1 小时(长跑)', '1 hour (long runs)', '1 小時(長跑)'),
hermesPromptCachingConfigFootnote: _('这里写入 prompt_caching.cache_ttl。上游仅支持 5m 和 1h其他 prompt_caching 高级字段会保留在 raw YAML 中。', 'This writes prompt_caching.cache_ttl. Upstream only supports 5m and 1h; other advanced prompt_caching fields stay in raw YAML.', '這裡寫入 prompt_caching.cache_ttl。上游僅支援 5m 和 1h其他 prompt_caching 進階欄位會保留在 raw YAML 中。'),
hermesOpenrouterCacheConfigTitle: _('OpenRouter 响应缓存', 'OpenRouter response caching', 'OpenRouter 回應快取'),
hermesOpenrouterCacheConfigDesc: _('控制 OpenRouter 的重复响应缓存。长跑和反复调试同类问题时,开启后可减少重复请求成本。', 'Control OpenRouter response caching. For long runs and repeated debugging of similar tasks, enabling it can reduce repeated request cost.', '控制 OpenRouter 的重複回應快取。長跑和反覆調試同類問題時,開啟後可減少重複請求成本。'),
hermesOpenrouterCacheConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesOpenrouterCacheConfigSave: _('保存响应缓存', 'Save response caching', '儲存回應快取'),
hermesOpenrouterCacheConfigSaveSuccess: _('OpenRouter 响应缓存已保存,建议重启 Hermes Gateway 生效', 'OpenRouter response caching saved. Restart Hermes Gateway to take effect.', 'OpenRouter 回應快取已儲存,建議重啟 Hermes Gateway 生效'),
hermesOpenrouterCacheConfigLoadFailed: _('加载 OpenRouter 响应缓存失败', 'Load OpenRouter response caching failed', '載入 OpenRouter 回應快取失敗'),
hermesOpenrouterCacheConfigSaveFailed: _('保存 OpenRouter 响应缓存失败', 'Save OpenRouter response caching failed', '儲存 OpenRouter 回應快取失敗'),
hermesOpenrouterCacheConfigResponseCache: _('启用 response_cache', 'Enable response_cache', '啟用 response_cache'),
hermesOpenrouterCacheConfigResponseCacheTtl: _('缓存有效期(秒)', 'Cache TTL (sec)', '快取有效期(秒)'),
hermesOpenrouterCacheConfigFootnote: _('这里写入 openrouter.response_cache 和 openrouter.response_cache_ttl。OpenRouter 其他高级字段会保留在 raw YAML 中。', 'This writes openrouter.response_cache and openrouter.response_cache_ttl. Other advanced OpenRouter fields stay in raw YAML.', '這裡寫入 openrouter.response_cache 和 openrouter.response_cache_ttl。OpenRouter 其他進階欄位會保留在 raw YAML 中。'),
hermesProviderRoutingConfigTitle: _('OpenRouter 路由', 'OpenRouter provider routing', 'OpenRouter 路由'),
hermesProviderRoutingConfigDesc: _('为 OpenRouter 指定 provider 排序、白名单、黑名单和隐私偏好,用于控制成本、速度和可用性。', 'Set OpenRouter provider sorting, allowlist, blocklist, and privacy preferences to control cost, speed, and availability.', '為 OpenRouter 指定 provider 排序、白名單、黑名單和隱私偏好,用於控制成本、速度和可用性。'),
hermesProviderRoutingConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesProviderRoutingConfigSave: _('保存路由策略', 'Save routing policy', '儲存路由策略'),
hermesProviderRoutingConfigSaveSuccess: _('OpenRouter 路由策略已保存,建议重启 Hermes Gateway 生效', 'OpenRouter routing policy saved. Restart Hermes Gateway to take effect.', 'OpenRouter 路由策略已儲存,建議重啟 Hermes Gateway 生效'),
hermesProviderRoutingConfigLoadFailed: _('加载 OpenRouter 路由策略失败', 'Load OpenRouter routing policy failed', '載入 OpenRouter 路由策略失敗'),
hermesProviderRoutingConfigSaveFailed: _('保存 OpenRouter 路由策略失败', 'Save OpenRouter routing policy failed', '儲存 OpenRouter 路由策略失敗'),
hermesProviderRoutingConfigSort: _('排序策略', 'Sort policy', '排序策略'),
hermesProviderRoutingConfigSort_price: _('优先低价格', 'Prefer lower price', '優先低價格'),
hermesProviderRoutingConfigSort_throughput: _('优先高吞吐', 'Prefer higher throughput', '優先高吞吐'),
hermesProviderRoutingConfigSort_latency: _('优先低延迟', 'Prefer lower latency', '優先低延遲'),
hermesProviderRoutingConfigOnly: _('只使用这些 provider每行一个', 'Only use these providers (one per line)', '只使用這些 provider每行一個'),
hermesProviderRoutingConfigIgnore: _('排除这些 provider每行一个', 'Ignore these providers (one per line)', '排除這些 provider每行一個'),
hermesProviderRoutingConfigOrder: _('优先顺序(每行一个)', 'Preferred order (one per line)', '優先順序(每行一個)'),
hermesProviderRoutingConfigRequireParameters: _('只选择支持当前参数的 provider', 'Only choose providers that support current parameters', '只選擇支援目前參數的 provider'),
hermesProviderRoutingConfigDataCollection: _('数据收集偏好', 'Data collection preference', '資料收集偏好'),
hermesProviderRoutingConfigDataCollection_allow: _('允许', 'Allow', '允許'),
hermesProviderRoutingConfigDataCollection_deny: _('拒绝', 'Deny', '拒絕'),
hermesProviderRoutingConfigFootnote: _('这里写入 provider_routing.sort、only、ignore、order、require_parameters 和 data_collection。未知字段会保留在 raw YAML 中。', 'This writes provider_routing.sort, only, ignore, order, require_parameters, and data_collection. Unknown fields stay in raw YAML.', '這裡寫入 provider_routing.sort、only、ignore、order、require_parameters 和 data_collection。未知欄位會保留在 raw YAML 中。'),
hermesAuxiliaryConfigTitle: _('辅助模型', 'Auxiliary models', '輔助模型'),
hermesAuxiliaryConfigDesc: _('为图片分析、网页提取和历史会话搜索指定独立模型,避免这些任务挤占主对话模型。', 'Assign separate models for image analysis, web extraction, and session search so these tasks do not compete with the main chat model.', '為圖片分析、網頁提取和歷史會話搜尋指定獨立模型,避免這些任務擠占主對話模型。'),
hermesAuxiliaryConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesAuxiliaryConfigSave: _('保存辅助模型', 'Save auxiliary models', '儲存輔助模型'),
hermesAuxiliaryConfigSaveSuccess: _('辅助模型配置已保存,建议重启 Hermes Gateway 生效', 'Auxiliary model settings saved. Restart Hermes Gateway to take effect.', '輔助模型設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesAuxiliaryConfigLoadFailed: _('加载辅助模型配置失败', 'Load auxiliary model settings failed', '載入輔助模型設定失敗'),
hermesAuxiliaryConfigSaveFailed: _('保存辅助模型配置失败', 'Save auxiliary model settings failed', '儲存輔助模型設定失敗'),
hermesAuxiliaryConfigVisionTitle: _('图片分析', 'Image analysis', '圖片分析'),
hermesAuxiliaryConfigVisionProvider: _('图片 provider', 'Image provider', '圖片 provider'),
hermesAuxiliaryConfigVisionModel: _('图片模型', 'Image model', '圖片模型'),
hermesAuxiliaryConfigVisionTimeout: _('图片分析超时(秒)', 'Image analysis timeout (sec)', '圖片分析逾時(秒)'),
hermesAuxiliaryConfigVisionDownloadTimeout: _('图片下载超时(秒)', 'Image download timeout (sec)', '圖片下載逾時(秒)'),
hermesAuxiliaryConfigWebExtractTitle: _('网页提取', 'Web extraction', '網頁提取'),
hermesAuxiliaryConfigWebExtractProvider: _('网页 provider', 'Web provider', '網頁 provider'),
hermesAuxiliaryConfigWebExtractModel: _('网页模型', 'Web model', '網頁模型'),
hermesAuxiliaryConfigSessionSearchTitle: _('会话搜索', 'Session search', '會話搜尋'),
hermesAuxiliaryConfigSessionSearchProvider: _('搜索 provider', 'Search provider', '搜尋 provider'),
hermesAuxiliaryConfigSessionSearchModel: _('搜索模型', 'Search model', '搜尋模型'),
hermesAuxiliaryConfigSessionSearchTimeout: _('搜索超时(秒)', 'Search timeout (sec)', '搜尋逾時(秒)'),
hermesAuxiliaryConfigSessionSearchMaxConcurrency: _('搜索并发数', 'Search concurrency', '搜尋並發數'),
hermesAuxiliaryConfigFootnote: _('这里写入 auxiliary.vision、auxiliary.web_extract 和 auxiliary.session_search。extra_body、自定义任务和未知字段会保留在 raw YAML 中。', 'This writes auxiliary.vision, auxiliary.web_extract, and auxiliary.session_search. extra_body, custom tasks, and unknown fields stay in raw YAML.', '這裡寫入 auxiliary.vision、auxiliary.web_extract 和 auxiliary.session_search。extra_body、自訂任務和未知欄位會保留在 raw YAML 中。'),
hermesAuxiliaryConfigProvider_auto: _('自动选择', 'Auto', '自動選擇'),
hermesAuxiliaryConfigProvider_openrouter: _('OpenRouter', 'OpenRouter', 'OpenRouter'),
hermesAuxiliaryConfigProvider_nous: _('Nous', 'Nous', 'Nous'),
hermesAuxiliaryConfigProvider_gemini: _('Gemini', 'Gemini', 'Gemini'),
'hermesAuxiliaryConfigProvider_ollama-cloud': _('Ollama Cloud', 'Ollama Cloud', 'Ollama Cloud'),
hermesAuxiliaryConfigProvider_codex: _('Codex', 'Codex', 'Codex'),
hermesAuxiliaryConfigProvider_main: _('跟随主模型', 'Use main model', '跟隨主模型'),
hermesToolGuardrailsTitle: _('工具循环防护', 'Tool loop guardrails', '工具循環防護'),
hermesToolGuardrailsDesc: _('当 Agent 重复失败或反复执行无进展工具时,先给模型修正提示;开启硬停止后可主动中止失控循环。', 'Warn the model when tools repeat failures or make no progress. Enable hard stops to halt runaway loops before they spend the full turn budget.', '當 Agent 重複失敗或反覆執行無進展工具時,先給模型修正提示;啟用硬停止後可主動中止失控循環。'),
hermesToolGuardrailsStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesToolGuardrailsSave: _('保存防护配置', 'Save guardrail settings', '儲存防護設定'),
hermesToolGuardrailsSaveSuccess: _('工具循环防护已保存,建议重启 Hermes Gateway 生效', 'Tool loop guardrails saved. Restart Hermes Gateway to take effect.', '工具循環防護已儲存,建議重啟 Hermes Gateway 生效'),
hermesToolGuardrailsLoadFailed: _('加载工具循环防护失败', 'Load tool loop guardrails failed', '載入工具循環防護失敗'),
hermesToolGuardrailsSaveFailed: _('保存工具循环防护失败', 'Save tool loop guardrails failed', '儲存工具循環防護失敗'),
hermesToolGuardrailsWarningsEnabled: _('启用软警告', 'Enable soft warnings', '啟用軟警告'),
hermesToolGuardrailsHardStopEnabled: _('启用硬停止', 'Enable hard stops', '啟用硬停止'),
hermesToolGuardrailsWarnAfterTitle: _('软警告阈值', 'Soft warning thresholds', '軟警告閾值'),
hermesToolGuardrailsHardStopAfterTitle: _('硬停止阈值', 'Hard stop thresholds', '硬停止閾值'),
hermesToolGuardrailsWarnExactFailure: _('相同失败警告', 'Exact failure warning', '相同失敗警告'),
hermesToolGuardrailsWarnSameToolFailure: _('同工具失败警告', 'Same-tool failure warning', '同工具失敗警告'),
hermesToolGuardrailsWarnNoProgress: _('无进展警告', 'No-progress warning', '無進展警告'),
hermesToolGuardrailsHardStopExactFailure: _('相同失败停止', 'Exact failure stop', '相同失敗停止'),
hermesToolGuardrailsHardStopSameToolFailure: _('同工具失败停止', 'Same-tool failure stop', '同工具失敗停止'),
hermesToolGuardrailsHardStopNoProgress: _('无进展停止', 'No-progress stop', '無進展停止'),
hermesToolGuardrailsFootnote: _('默认只提示不拦截,适合交互式使用。硬停止更适合 cron、无人值守和长时间后台任务。', 'By default Hermes only warns and does not block, which fits interactive use. Hard stops are better for cron, unattended, and long-running background jobs.', '預設只提示不攔截,適合互動式使用。硬停止更適合 cron、無人值守和長時間背景任務。'),
hermesMemoryConfigTitle: _('持久记忆', 'Persistent memory', '持久記憶'),
hermesMemoryConfigDesc: _('控制 MEMORY.md 与 USER.md 是否注入系统提示,以及注入字符上限和定期整理提醒,避免长期上下文丢失重要偏好。', 'Control whether MEMORY.md and USER.md are injected, their character limits, and periodic review nudges so long-running sessions keep important preferences.', '控制 MEMORY.md 與 USER.md 是否注入系統提示,以及注入字元上限和定期整理提醒,避免長期上下文遺失重要偏好。'),
hermesMemoryConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesMemoryConfigSave: _('保存记忆配置', 'Save memory settings', '儲存記憶設定'),
hermesMemoryConfigSaveSuccess: _('记忆配置已保存,建议重启 Hermes Gateway 生效', 'Memory settings saved. Restart Hermes Gateway to take effect.', '記憶設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesMemoryConfigLoadFailed: _('加载记忆配置失败', 'Load memory settings failed', '載入記憶設定失敗'),
hermesMemoryConfigSaveFailed: _('保存记忆配置失败', 'Save memory settings failed', '儲存記憶設定失敗'),
hermesMemoryConfigMemoryEnabled: _('启用 Agent 记忆', 'Enable agent memory', '啟用 Agent 記憶'),
hermesMemoryConfigUserProfileEnabled: _('启用用户画像', 'Enable user profile', '啟用使用者画像'),
hermesMemoryConfigMemoryCharLimit: _('记忆字符上限', 'Memory character limit', '記憶字元上限'),
hermesMemoryConfigUserCharLimit: _('用户画像字符上限', 'User profile character limit', '使用者画像字元上限'),
hermesMemoryConfigNudgeInterval: _('整理提醒间隔', 'Review nudge interval', '整理提醒間隔'),
hermesMemoryConfigFlushMinTurns: _('退出/重置前最少轮数', 'Minimum turns before flush', '退出/重置前最少輪數'),
hermesMemoryConfigFootnote: _('提醒间隔按用户消息轮数计算,设为 0 可关闭提醒。flush 最小轮数会影响退出、重置和压缩前是否先写入记忆。外部记忆 provider 等高级字段会保留在 raw YAML 中。', 'The nudge interval is counted in user turns. Set it to 0 to disable nudges. flush minimum turns controls whether memory is written before exit, reset, or compression. Advanced fields such as external memory provider are preserved in raw YAML.', '提醒間隔依使用者訊息輪數計算,設為 0 可關閉提醒。flush 最小輪數會影響退出、重置和壓縮前是否先寫入記憶。外部記憶 provider 等進階欄位會保留在 raw YAML 中。'),
hermesSkillsConfigTitle: _('技能沉淀', 'Skill capture', '技能沉澱'),
hermesSkillsConfigDesc: _('控制 Hermes 何时提醒把可复用经验沉淀为 Skills并指定可共享的外部技能目录。适合长跑任务和团队复用。', 'Control when Hermes nudges users to turn reusable experience into Skills and which external skill directories are shared. Useful for long-running work and team reuse.', '控制 Hermes 何時提醒把可重複使用經驗沉澱為 Skills並指定可共享的外部技能目錄。適合長跑任務和團隊複用。'),
hermesSkillsConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesSkillsConfigSave: _('保存技能配置', 'Save skill settings', '儲存技能設定'),
hermesSkillsConfigSaveSuccess: _('技能配置已保存,建议重启 Hermes Gateway 生效', 'Skill settings saved. Restart Hermes Gateway to take effect.', '技能設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesSkillsConfigLoadFailed: _('加载技能配置失败', 'Load skill settings failed', '載入技能設定失敗'),
hermesSkillsConfigSaveFailed: _('保存技能配置失败', 'Save skill settings failed', '儲存技能設定失敗'),
hermesSkillsConfigCreationNudgeInterval: _('创建提醒间隔', 'Creation nudge interval', '建立提醒間隔'),
hermesSkillsConfigExternalDirs: _('外部技能目录(每行一个)', 'External skill directories, one per line', '外部技能目錄(每行一個)'),
hermesSkillsConfigFootnote: _('提醒间隔按用户消息轮数计算,设为 0 可关闭创建提醒。disabled、custom flag 等高级字段会保留在 raw YAML 中。', 'The nudge interval is counted in user turns. Set it to 0 to disable creation nudges. Advanced fields such as disabled skills and custom flags are preserved in raw YAML.', '提醒間隔依使用者訊息輪數計算,設為 0 可關閉建立提醒。disabled、custom flag 等進階欄位會保留在 raw YAML 中。'),
hermesQuickCommandsConfigTitle: _('快捷命令', 'Quick commands', '快捷命令'),
hermesQuickCommandsConfigDesc: _('配置消息平台和 CLI 可直接触发的零 token 运维命令,例如状态检查、磁盘空间和 Gateway 重启别名。', 'Configure zero-token operations commands that messaging platforms and the CLI can trigger directly, such as status checks, disk usage, and Gateway restart aliases.', '設定訊息平台和 CLI 可直接觸發的零 token 維運命令,例如狀態檢查、磁碟空間和 Gateway 重啟別名。'),
hermesQuickCommandsConfigStatusReady: _('结构化 JSON', 'structured JSON', '結構化 JSON'),
hermesQuickCommandsConfigSave: _('保存快捷命令', 'Save quick commands', '儲存快捷命令'),
hermesQuickCommandsConfigSaveSuccess: _('快捷命令已保存,建议重启 Hermes Gateway 生效', 'Quick commands saved. Restart Hermes Gateway to take effect.', '快捷命令已儲存,建議重啟 Hermes Gateway 生效'),
hermesQuickCommandsConfigLoadFailed: _('加载快捷命令失败', 'Load quick commands failed', '載入快捷命令失敗'),
hermesQuickCommandsConfigSaveFailed: _('保存快捷命令失败', 'Save quick commands failed', '儲存快捷命令失敗'),
hermesQuickCommandsConfigJson: _('quick_commands JSON 映射', 'quick_commands JSON map', 'quick_commands JSON 映射'),
hermesQuickCommandsConfigFootnote: _('键名会变成斜杠命令,例如 status 对应 /status。每个命令必须是对象type 只能为 exec 或 aliasexec 需要 commandalias 的 target 必须以 / 开头。', 'Keys become slash commands, for example status maps to /status. Each command must be an object with type exec or alias; exec needs command, and alias target must start with /.', '鍵名會變成斜線命令,例如 status 對應 /status。每個命令必須是物件type 只能是 exec 或 aliasexec 需要 commandalias 的 target 必須以 / 開頭。'),
hermesModelConfigTitle: _('基础模型', 'Base model', '基礎模型'),
hermesModelConfigDesc: _('配置 Hermes 默认使用的模型、provider 和兼容接口地址。API Key 仍在安装向导或环境变量中管理,这里不会展示密钥。', 'Configure the default model, provider, and compatible API base URL for Hermes. API keys still live in setup or environment variables and are not shown here.', '設定 Hermes 預設使用的模型、provider 和相容介面位址。API Key 仍在安裝精靈或環境變數中管理,這裡不會顯示金鑰。'),
hermesModelConfigStatusReady: _('结构化表单', 'structured form', '結構化表單'),
hermesModelConfigSave: _('保存基础模型', 'Save base model', '儲存基礎模型'),
hermesModelConfigSaveSuccess: _('基础模型已保存,建议重启 Hermes Gateway 生效', 'Base model saved. Restart Hermes Gateway to take effect.', '基礎模型已儲存,建議重啟 Hermes Gateway 生效'),
hermesModelConfigLoadFailed: _('加载基础模型失败', 'Load base model failed', '載入基礎模型失敗'),
hermesModelConfigSaveFailed: _('保存基础模型失败', 'Save base model failed', '儲存基礎模型失敗'),
hermesModelConfigDefault: _('默认模型', 'Default model', '預設模型'),
hermesModelConfigProvider: _('Provider', 'Provider', 'Provider'),
hermesModelConfigBaseUrl: _('兼容接口地址(可选)', 'Compatible API base URL (optional)', '相容介面位址(可選)'),
hermesModelConfigContextLength: _('上下文窗口(可选)', 'Context window (optional)', '上下文視窗(可選)'),
hermesModelConfigMaxTokens: _('单次输出上限(可选)', 'Output token cap (optional)', '單次輸出上限(可選)'),
hermesModelConfigFootnote: _('上下文窗口是输入和输出合计容量,单次输出上限只限制回复长度;两项留空会移除对应字段,由 Hermes 自动检测或使用模型默认值。', 'Context window is the total input plus output capacity. Output token cap only limits reply length. Leave either blank to remove that field so Hermes auto-detects or uses the model default.', '上下文視窗是輸入與輸出合計容量,單次輸出上限只限制回覆長度;兩項留空會移除對應欄位,由 Hermes 自動偵測或使用模型預設值。'),
hermesModelAliasesConfigTitle: _('模型别名', 'Model aliases', '模型別名'),
hermesModelAliasesConfigDesc: _('配置 /model 命令可用的短别名把常用模型、provider 和自定义 base_url 固定下来,减少手输错误。', 'Configure short aliases for the /model command, pinning common models, providers, and custom base_url values to reduce manual input errors.', '設定 /model 命令可用的短別名把常用模型、provider 和自訂 base_url 固定下來,減少手動輸入錯誤。'),
hermesModelAliasesConfigStatusReady: _('结构化 JSON', 'structured JSON', '結構化 JSON'),
hermesModelAliasesConfigSave: _('保存模型别名', 'Save model aliases', '儲存模型別名'),
hermesModelAliasesConfigSaveSuccess: _('模型别名已保存,建议重启 Hermes Gateway 生效', 'Model aliases saved. Restart Hermes Gateway to take effect.', '模型別名已儲存,建議重啟 Hermes Gateway 生效'),
hermesModelAliasesConfigLoadFailed: _('加载模型别名失败', 'Load model aliases failed', '載入模型別名失敗'),
hermesModelAliasesConfigSaveFailed: _('保存模型别名失败', 'Save model aliases failed', '儲存模型別名失敗'),
hermesModelAliasesConfigJson: _('model_aliases JSON 映射', 'model_aliases JSON map', 'model_aliases JSON 映射'),
hermesModelAliasesConfigFootnote: _('键名是 /model 使用的短别名。每项至少需要 model可选 provider 和 base_url未知字段会保留在 raw YAML 中。', 'Keys are short aliases used by /model. Each entry needs at least model, with optional provider and base_url. Unknown fields stay in raw YAML.', '鍵名是 /model 使用的短別名。每項至少需要 model可選 provider 和 base_url未知欄位會保留在 raw YAML 中。'),
hermesHooksConfigTitle: _('Shell Hooks', 'Shell hooks', 'Shell Hooks'),
hermesHooksConfigDesc: _('配置 Hermes 在工具调用、模型调用和会话生命周期中执行的本地脚本。请只添加可信脚本,自动接受会跳过首次确认。', 'Configure local scripts Hermes runs during tool calls, model calls, and session lifecycle events. Only add trusted scripts; auto accept skips first-use confirmation.', '設定 Hermes 在工具呼叫、模型呼叫和工作階段生命週期中執行的本機腳本。請只加入可信腳本,自動接受會略過首次確認。'),
hermesHooksConfigStatusReady: _('结构化 JSON', 'structured JSON', '結構化 JSON'),
hermesHooksConfigSave: _('保存 Hooks', 'Save hooks', '儲存 Hooks'),
hermesHooksConfigSaveSuccess: _('Hooks 配置已保存,建议重启 Hermes Gateway 生效', 'Hook settings saved. Restart Hermes Gateway to take effect.', 'Hooks 設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesHooksConfigLoadFailed: _('加载 Hooks 配置失败', 'Load hook settings failed', '載入 Hooks 設定失敗'),
hermesHooksConfigSaveFailed: _('保存 Hooks 配置失败', 'Save hook settings failed', '儲存 Hooks 設定失敗'),
hermesHooksConfigAutoAccept: _('自动接受已配置 Hooks仅限可信脚本', 'Auto accept configured hooks, trusted scripts only', '自動接受已設定 Hooks僅限可信腳本'),
hermesHooksConfigJson: _('hooks JSON 映射', 'hooks JSON map', 'hooks JSON 映射'),
hermesHooksConfigFootnote: _('键名必须是合法事件,例如 pre_tool_call、post_tool_call、pre_llm_call 或 subagent_stop。每项必须包含 command可选 matcher 和 timeout未知字段会保留在 raw YAML 中。', 'Keys must be valid events such as pre_tool_call, post_tool_call, pre_llm_call, or subagent_stop. Each item needs command, with optional matcher and timeout. Unknown fields stay in raw YAML.', '鍵名必須是合法事件,例如 pre_tool_call、post_tool_call、pre_llm_call 或 subagent_stop。每項必須包含 command可選 matcher 和 timeout未知欄位會保留在 raw YAML 中。'),
hermesProviderOverridesConfigTitle: _('Provider 超时覆盖', 'Provider timeout overrides', 'Provider 逾時覆蓋'),
hermesProviderOverridesConfigDesc: _('为指定 provider 或模型单独设置请求超时和非流式卡死检测,适合本地模型冷启动、慢速大上下文和云端快速失败策略。', 'Set request timeouts and non-streaming stale detection per provider or model. Useful for local cold starts, slow large contexts, and fast-fail cloud routes.', '為指定 provider 或模型單獨設定請求逾時和非串流卡死偵測,適合本地模型冷啟動、慢速大上下文和雲端快速失敗策略。'),
hermesProviderOverridesConfigStatusReady: _('结构化 JSON', 'structured JSON', '結構化 JSON'),
hermesProviderOverridesConfigSave: _('保存超时覆盖', 'Save timeout overrides', '儲存逾時覆蓋'),
hermesProviderOverridesConfigSaveSuccess: _('Provider 超时覆盖已保存,建议重启 Hermes Gateway 生效', 'Provider timeout overrides saved. Restart Hermes Gateway to take effect.', 'Provider 逾時覆蓋已儲存,建議重啟 Hermes Gateway 生效'),
hermesProviderOverridesConfigLoadFailed: _('加载 Provider 超时覆盖失败', 'Load provider timeout overrides failed', '載入 Provider 逾時覆蓋失敗'),
hermesProviderOverridesConfigSaveFailed: _('保存 Provider 超时覆盖失败', 'Save provider timeout overrides failed', '儲存 Provider 逾時覆蓋失敗'),
hermesProviderOverridesConfigJson: _('providers JSON 映射', 'providers JSON map', 'providers JSON 映射'),
hermesProviderOverridesConfigFootnote: _('键名是 provider slug。支持 request_timeout_seconds、stale_timeout_seconds以及 models.<model>.timeout_seconds / stale_timeout_seconds未知字段会保留在 raw YAML 中。', 'Keys are provider slugs. Supports request_timeout_seconds, stale_timeout_seconds, and models.<model>.timeout_seconds / stale_timeout_seconds. Unknown fields stay in raw YAML.', '鍵名是 provider slug。支援 request_timeout_seconds、stale_timeout_seconds以及 models.<model>.timeout_seconds / stale_timeout_seconds未知欄位會保留在 raw YAML 中。'),
hermesMcpServersConfigTitle: _('MCP 服务', 'MCP servers', 'MCP 服務'),
hermesMcpServersConfigDesc: _('配置 Hermes 可连接的 MCP 服务,用于接入外部工具。支持 stdio command/args 和 HTTP url/headers适合团队工具扩展。', 'Configure MCP servers Hermes can connect to for external tools. Supports stdio command/args and HTTP url/headers for team tool integrations.', '設定 Hermes 可連接的 MCP 服務,用於接入外部工具。支援 stdio command/args 和 HTTP url/headers適合團隊工具擴充。'),
hermesMcpServersConfigStatusReady: _('结构化 JSON', 'structured JSON', '結構化 JSON'),
hermesMcpServersConfigSave: _('保存 MCP 服务', 'Save MCP servers', '儲存 MCP 服務'),
hermesMcpServersConfigSaveSuccess: _('MCP 服务配置已保存,建议重启 Hermes Gateway 生效', 'MCP server settings saved. Restart Hermes Gateway to take effect.', 'MCP 服務設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesMcpServersConfigLoadFailed: _('加载 MCP 服务配置失败', 'Load MCP server settings failed', '載入 MCP 服務設定失敗'),
hermesMcpServersConfigSaveFailed: _('保存 MCP 服务配置失败', 'Save MCP server settings failed', '儲存 MCP 服務設定失敗'),
hermesMcpServersConfigJson: _('mcp_servers JSON 映射', 'mcp_servers JSON map', 'mcp_servers JSON 映射'),
hermesMcpServersConfigFootnote: _('键名是 MCP 服务名。stdio 服务使用 command/args/envHTTP 服务使用 url/headerstimeout 和 connect_timeout 单位为秒。未知字段会保留在 raw YAML 中。', 'Keys are MCP server names. Stdio servers use command/args/env, HTTP servers use url/headers; timeout and connect_timeout are in seconds. Unknown fields stay in raw YAML.', '鍵名是 MCP 服務名。stdio 服務使用 command/args/envHTTP 服務使用 url/headerstimeout 和 connect_timeout 單位為秒。未知欄位會保留在 raw YAML 中。'),
hermesAgentToolsetsConfigTitle: _('全局工具开关', 'Global tool switches', '全域工具開關'),
hermesAgentToolsetsConfigDesc: _('在 CLI 和所有 Gateway 渠道里统一禁用指定工具集,适合公网部署、只读模式或临时收紧高风险能力。', 'Disable selected toolsets globally across CLI and all Gateway channels. Useful for public deployments, read-only mode, or temporarily reducing high-risk capabilities.', '在 CLI 和所有 Gateway 渠道裡統一停用指定工具集,適合公開部署、唯讀模式或暫時收緊高風險能力。'),
hermesAgentToolsetsConfigStatusReady: _('结构化列表', 'structured list', '結構化清單'),
hermesAgentToolsetsConfigSave: _('保存工具开关', 'Save tool switches', '儲存工具開關'),
hermesAgentToolsetsConfigSaveSuccess: _('全局工具集配置已保存,建议重启 Hermes Gateway 生效', 'Global toolset settings saved. Restart Hermes Gateway to take effect.', '全域工具集設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesAgentToolsetsConfigLoadFailed: _('加载全局工具集配置失败', 'Load global toolset settings failed', '載入全域工具集設定失敗'),
hermesAgentToolsetsConfigSaveFailed: _('保存全局工具集配置失败', 'Save global toolset settings failed', '儲存全域工具集設定失敗'),
hermesAgentToolsetsConfigDisabledToolsets: _('禁用工具集(每行一个)', 'Disabled toolsets, one per line', '停用工具集(每行一個)'),
hermesAgentToolsetsConfigFootnote: _('常见值包括 terminal、browser、memory、web。该设置会覆盖平台级工具配置留空表示不做全局禁用。高级 agent 字段会保留在 raw YAML 中。', 'Common values include terminal, browser, memory, and web. This setting overrides platform-level tool configuration; leave it empty for no global disables. Advanced agent fields stay in raw YAML.', '常見值包括 terminal、browser、memory、web。此設定會覆蓋平台級工具設定留空表示不做全域停用。進階 agent 欄位會保留在 raw YAML 中。'),
hermesPlatformToolsetsConfigTitle: _('平台工具集', 'Platform toolsets', '平台工具集'),
hermesPlatformToolsetsConfigDesc: _('为 CLI、Telegram、Discord、Slack 等入口指定可用工具集,适合按渠道收紧权限或接入自定义平台。', 'Set available toolsets for CLI, Telegram, Discord, Slack, and custom platforms. Useful for tightening permissions per channel.', '為 CLI、Telegram、Discord、Slack 等入口指定可用工具集,適合依渠道收緊權限或接入自訂平台。'),
hermesPlatformToolsetsConfigStatusReady: _('JSON 映射', 'JSON map', 'JSON 映射'),
hermesPlatformToolsetsConfigSave: _('保存平台工具集', 'Save platform toolsets', '儲存平台工具集'),
hermesPlatformToolsetsConfigSaveSuccess: _('平台工具集配置已保存,建议重启 Hermes Gateway 生效', 'Platform toolsets saved. Restart Hermes Gateway to take effect.', '平台工具集設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesPlatformToolsetsConfigLoadFailed: _('加载平台工具集配置失败', 'Load platform toolsets failed', '載入平台工具集設定失敗'),
hermesPlatformToolsetsConfigSaveFailed: _('保存平台工具集配置失败', 'Save platform toolsets failed', '儲存平台工具集設定失敗'),
hermesPlatformToolsetsConfigJson: _('platform_toolsets JSON 映射', 'platform_toolsets JSON map', 'platform_toolsets JSON 映射'),
hermesPlatformToolsetsConfigFootnote: _('键名是平台名,例如 cli、telegram、discord。值必须是工具集数组例如 ["hermes-cli"];平台名和工具集名只能使用字母、数字、下划线、点和短横线。', 'Keys are platform names, for example cli, telegram, and discord. Values must be toolset arrays such as ["hermes-cli"]; names may only use letters, numbers, underscores, dots, and hyphens.', '鍵名是平台名,例如 cli、telegram、discord。值必須是工具集陣列例如 ["hermes-cli"];平台名和工具集名只能使用字母、數字、底線、點和短橫線。'),
hermesAgentRuntimeConfigTitle: _('Agent 长跑保护', 'Agent runtime guards', 'Agent 長跑保護'),
hermesAgentRuntimeConfigDesc: _('控制 Agent 轮次上限、Gateway 等待、重启排水、重试、超时预警、澄清等待和自动续跑新鲜度,减少长时间任务无人值守失控。', 'Control turn limits, Gateway waits, restart drain, retries, timeout warnings, clarification waits, and auto-continue freshness to keep unattended long runs bounded.', '控制 Agent 輪次上限、Gateway 等待、重啟排水、重試、逾時預警、澄清等待和自動續跑新鮮度,減少長時間任務無人值守失控。'),
hermesAgentRuntimeConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesAgentRuntimeConfigSave: _('保存长跑保护', 'Save runtime guards', '儲存長跑保護'),
hermesAgentRuntimeConfigSaveSuccess: _('Agent 长跑保护配置已保存,建议重启 Hermes Gateway 生效', 'Agent runtime guard settings saved. Restart Hermes Gateway to take effect.', 'Agent 長跑保護設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesAgentRuntimeConfigLoadFailed: _('加载 Agent 长跑保护配置失败', 'Load agent runtime guard settings failed', '載入 Agent 長跑保護設定失敗'),
hermesAgentRuntimeConfigSaveFailed: _('保存 Agent 长跑保护配置失败', 'Save agent runtime guard settings failed', '儲存 Agent 長跑保護設定失敗'),
hermesAgentRuntimeConfigMaxTurns: _('单次运行最大轮数', 'Max turns per run', '單次執行最大輪數'),
hermesAgentRuntimeConfigGatewayTimeout: _('Gateway 等待超时(秒)', 'Gateway timeout (seconds)', 'Gateway 等待逾時(秒)'),
hermesAgentRuntimeConfigRestartDrainTimeout: _('重启排水等待(秒)', 'Restart drain timeout (seconds)', '重啟排水等待(秒)'),
hermesAgentRuntimeConfigApiMaxRetries: _('API 最大重试次数', 'API max retries', 'API 最大重試次數'),
hermesAgentRuntimeConfigGatewayTimeoutWarning: _('超时预警阈值(秒)', 'Timeout warning threshold (seconds)', '逾時預警閾值(秒)'),
hermesAgentRuntimeConfigClarifyTimeout: _('澄清等待超时(秒)', 'Clarification timeout (seconds)', '澄清等待逾時(秒)'),
hermesAgentRuntimeConfigGatewayNotifyInterval: _('Gateway 心跳通知间隔(秒)', 'Gateway notify interval (seconds)', 'Gateway 心跳通知間隔(秒)'),
hermesAgentRuntimeConfigGatewayAutoContinueFreshness: _('自动续跑新鲜度(秒)', 'Auto-continue freshness (seconds)', '自動續跑新鮮度(秒)'),
hermesAgentRuntimeConfigImageInputMode: _('图片输入模式', 'Image input mode', '圖片輸入模式'),
hermesAgentRuntimeConfigImageInputMode_auto: _('自动选择', 'Auto', '自動選擇'),
hermesAgentRuntimeConfigImageInputMode_native: _('原生图片输入', 'Native image input', '原生圖片輸入'),
hermesAgentRuntimeConfigImageInputMode_text: _('转文本描述', 'Convert to text description', '轉文字描述'),
hermesAgentRuntimeConfigVerbose: _('启用详细日志', 'Enable verbose logging', '啟用詳細日誌'),
hermesAgentRuntimeConfigReasoningEffort: _('推理强度', 'Reasoning effort', '推理強度'),
hermesAgentRuntimeConfigReasoningEffort_xhigh: _('最高', 'Extra high', '最高'),
hermesAgentRuntimeConfigReasoningEffort_high: _('高', 'High', '高'),
hermesAgentRuntimeConfigReasoningEffort_medium: _('中', 'Medium', '中'),
hermesAgentRuntimeConfigReasoningEffort_low: _('低', 'Low', '低'),
hermesAgentRuntimeConfigReasoningEffort_minimal: _('极简', 'Minimal', '極簡'),
hermesAgentRuntimeConfigReasoningEffort_none: _('关闭', 'Off', '關閉'),
hermesAgentRuntimeConfigPersonalities: _('人格预设 JSON', 'Personalities JSON', '人格預設 JSON'),
hermesAgentRuntimeConfigFootnote: _('这些字段会写入 agent.*,影响 CLI 与 Gateway 长跑行为。将可选超时设为 0 表示关闭对应限制或通知;人格预设必须是名称到提示词的 JSON 映射disabled_toolsets 和其他高级 agent 字段会保留在 raw YAML 中。', 'These fields are written under agent.* and affect CLI and Gateway long-running behavior. Set optional timeouts to 0 to disable the corresponding limit or notification. Personalities must be a JSON map from name to prompt. disabled_toolsets and other advanced agent fields stay in raw YAML.', '這些欄位會寫入 agent.*,影響 CLI 與 Gateway 長跑行為。將可選逾時設為 0 表示關閉對應限制或通知;人格預設必須是名稱到提示詞的 JSON 映射disabled_toolsets 和其他進階 agent 欄位會保留在 raw YAML 中。'),
hermesUnauthorizedDmConfigTitle: _('未授权私信', 'Unauthorized DMs', '未授權私訊'),
hermesUnauthorizedDmConfigDesc: _('控制陌生用户直接私信 Hermes 时的全局响应策略,适合公网部署时减少无效打扰或保留配对入口。', 'Control the global response when unknown users send Hermes a direct message. Useful for public deployments that need fewer unsolicited replies or a pairing entry point.', '控制陌生使用者直接私訊 Hermes 時的全域回應策略,適合公開部署時減少無效打擾或保留配對入口。'),
hermesUnauthorizedDmConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesUnauthorizedDmConfigSave: _('保存私信策略', 'Save DM policy', '儲存私訊策略'),
hermesUnauthorizedDmConfigSaveSuccess: _('未授权私信策略已保存,建议重启 Hermes Gateway 生效', 'Unauthorized DM policy saved. Restart Hermes Gateway to take effect.', '未授權私訊策略已儲存,建議重啟 Hermes Gateway 生效'),
hermesUnauthorizedDmConfigLoadFailed: _('加载未授权私信策略失败', 'Load unauthorized DM policy failed', '載入未授權私訊策略失敗'),
hermesUnauthorizedDmConfigSaveFailed: _('保存未授权私信策略失败', 'Save unauthorized DM policy failed', '儲存未授權私訊策略失敗'),
hermesUnauthorizedDmConfigBehavior: _('陌生私信处理方式', 'Unknown DM handling', '陌生私訊處理方式'),
hermesUnauthorizedDmConfigBehavior_pair: _('回复配对码', 'Reply with pairing code', '回覆配對碼'),
hermesUnauthorizedDmConfigBehavior_ignore: _('静默忽略', 'Silently ignore', '靜默忽略'),
hermesUnauthorizedDmConfigFootnote: _('pair 是默认值会拒绝访问但在私信中回复一次性配对码ignore 会静默丢弃陌生私信。平台级覆盖仍可在渠道配置或 raw YAML 中单独设置。', 'pair is the default: Hermes denies access but replies with a one-time pairing code in DMs. ignore silently drops unknown DMs. Platform-level overrides can still be set in channel settings or raw YAML.', 'pair 是預設值會拒絕存取但在私訊中回覆一次性配對碼ignore 會靜默丟棄陌生私訊。平台級覆蓋仍可在頻道設定或 raw YAML 中單獨設定。'),
hermesDisplayConfigTitle: _('全局显示与可靠性', 'Global display and reliability', '全域顯示與可靠性'),
hermesDisplayConfigDesc: _('控制消息平台和 CLI 的默认进度展示、工具预览、工具输出前缀、推理展示、进度清理、横幅紧凑模式、显示皮肤、最终回复 Markdown、时间戳、完成提醒、终端输出恢复、忙时输入、后台进程通知、静态提示语言、运行信息页脚以及文件写入失败校验。', 'Control default progress display, tool previews, tool output prefix, reasoning visibility, progress cleanup, compact banner mode, display skin, final-response Markdown, timestamps, completion bell, terminal output recovery, busy input handling, background process notifications, static prompt language, runtime footer, and failed file-mutation verification for messaging platforms and CLI.', '控制訊息平台和 CLI 的預設進度顯示、工具預覽、工具輸出前綴、推理展示、進度清理、橫幅緊湊模式、顯示皮膚、最終回覆 Markdown、時間戳、完成提醒、終端輸出恢復、忙時輸入、背景程序通知、靜態提示語言、執行資訊頁腳以及檔案寫入失敗校驗。'),
hermesDisplayConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesDisplayConfigSave: _('保存显示设置', 'Save display settings', '儲存顯示設定'),
hermesDisplayConfigSaveSuccess: _('显示与可靠性配置已保存,建议重启 Hermes Gateway 生效', 'Display and reliability settings saved. Restart Hermes Gateway to take effect.', '顯示與可靠性設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesDisplayConfigLoadFailed: _('加载显示与可靠性配置失败', 'Load display and reliability settings failed', '載入顯示與可靠性設定失敗'),
hermesDisplayConfigSaveFailed: _('保存显示与可靠性配置失败', 'Save display and reliability settings failed', '儲存顯示與可靠性設定失敗'),
hermesDisplayConfigToolProgress: _('默认工具进度', 'Default tool progress', '預設工具進度'),
hermesDisplayConfigToolProgress_off: _('关闭', 'Off', '關閉'),
hermesDisplayConfigToolProgress_new: _('工具变化时显示', 'Only when tool changes', '工具變化時顯示'),
hermesDisplayConfigToolProgress_all: _('显示每次工具调用', 'Show every tool call', '顯示每次工具呼叫'),
hermesDisplayConfigToolProgress_verbose: _('详细显示参数和结果', 'Verbose args and results', '詳細顯示參數與結果'),
hermesDisplayConfigCompact: _('使用紧凑启动横幅', 'Use compact startup banner', '使用緊湊啟動橫幅'),
hermesDisplayConfigSkin: _('CLI 显示皮肤', 'CLI display skin', 'CLI 顯示皮膚'),
hermesDisplayConfigToolPrefix: _('工具输出前缀', 'Tool output prefix', '工具輸出前綴'),
hermesDisplayConfigSkin_default: _('默认', 'Default', '預設'),
hermesDisplayConfigSkin_ares: _('Ares', 'Ares', 'Ares'),
hermesDisplayConfigSkin_mono: _('Mono', 'Mono', 'Mono'),
hermesDisplayConfigSkin_slate: _('Slate', 'Slate', 'Slate'),
hermesDisplayConfigSkin_daylight: _('Daylight', 'Daylight', 'Daylight'),
'hermesDisplayConfigSkin_warm-lightmode': _('Warm Lightmode', 'Warm Lightmode', 'Warm Lightmode'),
hermesDisplayConfigSkin_poseidon: _('Poseidon', 'Poseidon', 'Poseidon'),
hermesDisplayConfigSkin_sisyphus: _('Sisyphus', 'Sisyphus', 'Sisyphus'),
hermesDisplayConfigSkin_charizard: _('Charizard', 'Charizard', 'Charizard'),
hermesDisplayConfigShowReasoning: _('默认显示推理过程', 'Show reasoning by default', '預設顯示推理過程'),
hermesDisplayConfigToolPreviewLength: _('工具预览长度', 'Tool preview length', '工具預覽長度'),
hermesDisplayConfigCleanupProgress: _('成功后清理进度消息', 'Clean up progress after success', '成功後清理進度訊息'),
hermesDisplayConfigToolProgressCommand: _('在消息平台启用 /verbose 命令', 'Enable /verbose on messaging platforms', '在訊息平台啟用 /verbose 命令'),
hermesDisplayConfigInterimAssistantMessages: _('发送中途状态消息', 'Send interim assistant updates', '傳送中途狀態訊息'),
hermesDisplayConfigRuntimeFooterEnabled: _('在最终回复追加运行信息', 'Append runtime footer to final replies', '在最終回覆追加執行資訊'),
hermesDisplayConfigRuntimeFooterFields: _('运行信息字段(每行一个)', 'Runtime footer fields, one per line', '執行資訊欄位(每行一個)'),
hermesDisplayConfigFileMutationVerifier: _('启用文件写入失败校验', 'Enable failed file-mutation verifier', '啟用檔案寫入失敗校驗'),
hermesDisplayConfigLanguage: _('静态提示语言', 'Static prompt language', '靜態提示語言'),
hermesDisplayConfigLanguage_en: _('英语', 'English', '英語'),
hermesDisplayConfigLanguage_zh: _('简体中文', 'Simplified Chinese', '簡體中文'),
'hermesDisplayConfigLanguage_zh-hant': _('繁体中文', 'Traditional Chinese', '繁體中文'),
hermesDisplayConfigLanguage_ja: _('日语', 'Japanese', '日語'),
hermesDisplayConfigLanguage_de: _('德语', 'German', '德語'),
hermesDisplayConfigLanguage_es: _('西班牙语', 'Spanish', '西班牙語'),
hermesDisplayConfigLanguage_fr: _('法语', 'French', '法語'),
hermesDisplayConfigLanguage_tr: _('土耳其语', 'Turkish', '土耳其語'),
hermesDisplayConfigLanguage_uk: _('乌克兰语', 'Ukrainian', '烏克蘭語'),
hermesDisplayConfigLanguage_af: _('南非荷兰语', 'Afrikaans', '南非荷蘭語'),
hermesDisplayConfigLanguage_ko: _('韩语', 'Korean', '韓語'),
hermesDisplayConfigLanguage_it: _('意大利语', 'Italian', '義大利語'),
hermesDisplayConfigLanguage_ga: _('爱尔兰语', 'Irish', '愛爾蘭語'),
hermesDisplayConfigLanguage_pt: _('葡萄牙语', 'Portuguese', '葡萄牙語'),
hermesDisplayConfigLanguage_ru: _('俄语', 'Russian', '俄語'),
hermesDisplayConfigLanguage_hu: _('匈牙利语', 'Hungarian', '匈牙利語'),
hermesDisplayConfigResumeDisplay: _('恢复会话展示', 'Resume display', '恢復會話顯示'),
hermesDisplayConfigResumeDisplay_full: _('显示完整上下文', 'Show full context', '顯示完整上下文'),
hermesDisplayConfigResumeDisplay_minimal: _('仅显示一行摘要', 'Show one-line summary', '僅顯示一行摘要'),
hermesDisplayConfigBusyInputMode: _('忙时输入处理', 'Busy input handling', '忙時輸入處理'),
hermesDisplayConfigBusyInputMode_interrupt: _('打断当前执行', 'Interrupt current run', '打斷目前執行'),
hermesDisplayConfigBusyInputMode_queue: _('排队到下一轮', 'Queue for next turn', '排隊到下一輪'),
hermesDisplayConfigBusyInputMode_steer: _('尝试中途引导', 'Steer current run', '嘗試中途引導'),
hermesDisplayConfigBackgroundProcessNotifications: _('后台进程通知', 'Background process notifications', '背景程序通知'),
hermesDisplayConfigBackgroundProcessNotifications_off: _('关闭通知', 'Off', '關閉通知'),
hermesDisplayConfigBackgroundProcessNotifications_result: _('仅完成结果', 'Final result only', '僅完成結果'),
hermesDisplayConfigBackgroundProcessNotifications_error: _('仅失败结果', 'Errors only', '僅失敗結果'),
hermesDisplayConfigBackgroundProcessNotifications_all: _('运行输出与结果', 'Running output and result', '執行輸出與結果'),
hermesDisplayConfigFinalResponseMarkdown: _('最终回复 Markdown', 'Final response Markdown', '最終回覆 Markdown'),
hermesDisplayConfigFinalResponseMarkdown_render: _('渲染 Markdown', 'Render Markdown', '渲染 Markdown'),
hermesDisplayConfigFinalResponseMarkdown_strip: _('去除 Markdown 标记', 'Strip Markdown markers', '移除 Markdown 標記'),
hermesDisplayConfigFinalResponseMarkdown_raw: _('保留原始内容', 'Keep raw content', '保留原始內容'),
hermesDisplayConfigTimestamps: _('在输出中显示时间戳', 'Show timestamps in output', '在輸出中顯示時間戳'),
hermesDisplayConfigBellOnComplete: _('任务完成时播放提示音', 'Play bell when runs complete', '任務完成時播放提示音'),
hermesDisplayConfigPersistentOutput: _('保留终端输出用于恢复显示', 'Keep terminal output for display recovery', '保留終端輸出用於恢復顯示'),
hermesDisplayConfigPersistentOutputMaxLines: _('保留输出最大行数', 'Max retained output lines', '保留輸出最大行數'),
hermesDisplayConfigFootnote: _('这里写入全局 display 配置;平台级覆盖仍在渠道页管理。工具预览长度为 0 时使用 Hermes 默认长度;清理进度只会在支持消息删除的平台成功完成后生效。紧凑横幅和显示皮肤影响 CLI 启动展示。忙时输入控制长跑期间新消息如何处理,后台进程通知控制 messaging watcher 噪音。最终回复 Markdown、时间戳、完成铃声和持久输出影响 CLI 可读性与终端重绘恢复。display.streaming 是 CLI-only本面板不会把它误写成 Gateway 全局流式设置。运行信息字段支持 model、context_pct、cwd、duration、tokens、cost。', 'This writes global display settings; per-platform overrides remain in channel settings. Tool preview length 0 lets Hermes use its default length; progress cleanup only applies after successful turns on platforms that support message deletion. Compact banner and display skin affect CLI startup presentation. Busy input controls how new messages are handled during long runs, and background process notifications tune messaging watcher noise. Final-response Markdown, timestamps, completion bell, and persistent output affect CLI readability and terminal redraw recovery. display.streaming is CLI-only, so this panel does not write it as a global Gateway streaming setting. Runtime footer fields support model, context_pct, cwd, duration, tokens, and cost.', '這裡寫入全域 display 設定;平台級覆蓋仍在頻道頁管理。工具預覽長度為 0 時使用 Hermes 預設長度;清理進度只會在支援訊息刪除的平台成功完成後生效。緊湊橫幅和顯示皮膚會影響 CLI 啟動展示。忙時輸入控制長跑期間新訊息如何處理,背景程序通知控制 messaging watcher 噪音。最終回覆 Markdown、時間戳、完成鈴聲和持久輸出會影響 CLI 可讀性與終端重繪恢復。display.streaming 是 CLI-only本面板不會把它誤寫成 Gateway 全域串流設定。執行資訊欄位支援 model、context_pct、cwd、duration、tokens、cost。'),
hermesHumanDelayConfigTitle: _('响应节奏', 'Response pacing', '回應節奏'),
hermesHumanDelayConfigDesc: _('控制消息平台回复分块之间的等待时间,降低刷屏或模拟更自然发送节奏。', 'Control the wait time between reply chunks on messaging platforms to reduce flooding or mimic a more natural sending rhythm.', '控制訊息平台回覆分塊之間的等待時間,降低刷屏或模擬更自然的傳送節奏。'),
hermesHumanDelayConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesHumanDelayConfigSave: _('保存响应节奏', 'Save pacing', '儲存回應節奏'),
hermesHumanDelayConfigSaveSuccess: _('响应节奏已保存,建议重启 Hermes Gateway 生效', 'Response pacing saved. Restart Hermes Gateway to take effect.', '回應節奏已儲存,建議重啟 Hermes Gateway 生效'),
hermesHumanDelayConfigLoadFailed: _('加载响应节奏失败', 'Load response pacing failed', '載入回應節奏失敗'),
hermesHumanDelayConfigSaveFailed: _('保存响应节奏失败', 'Save response pacing failed', '儲存回應節奏失敗'),
hermesHumanDelayConfigMode: _('节奏模式', 'Pacing mode', '節奏模式'),
hermesHumanDelayConfigMode_off: _('关闭', 'Off', '關閉'),
hermesHumanDelayConfigMode_natural: _('自然节奏', 'Natural pacing', '自然節奏'),
hermesHumanDelayConfigMode_custom: _('自定义范围', 'Custom range', '自訂範圍'),
hermesHumanDelayConfigMinMs: _('最小延迟 ms', 'Minimum delay ms', '最小延遲 ms'),
hermesHumanDelayConfigMaxMs: _('最大延迟 ms', 'Maximum delay ms', '最大延遲 ms'),
hermesHumanDelayConfigFootnote: _('natural 使用 800-2500mscustom 使用下方范围。Signal 等平台可能忽略或仅部分支持该设置。', 'natural uses 800-2500ms; custom uses the range below. Platforms such as Signal may ignore or only partially support this setting.', 'natural 使用 800-2500mscustom 使用下方範圍。Signal 等平台可能忽略或僅部分支援此設定。'),
hermesKanbanConfigTitle: _('Kanban 调度稳定性', 'Kanban dispatch reliability', 'Kanban 調度穩定性'),
hermesKanbanConfigDesc: _('控制 Gateway 是否自动派发 Kanban 任务、派发频率、并发上限、失败上限和无心跳回收策略。', 'Control whether Gateway dispatches Kanban work, its interval, concurrency caps, failure limit, and heartbeat reclaim policy.', '控制 Gateway 是否自動派發 Kanban 任務、派發頻率、並發上限、失敗上限和無心跳回收策略。'),
hermesKanbanConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesKanbanConfigSave: _('保存 Kanban 设置', 'Save Kanban settings', '儲存 Kanban 設定'),
hermesKanbanConfigSaveSuccess: _('Kanban 调度配置已保存,建议重启 Hermes Gateway 生效', 'Kanban dispatch settings saved. Restart Hermes Gateway to take effect.', 'Kanban 調度設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesKanbanConfigLoadFailed: _('加载 Kanban 调度配置失败', 'Load Kanban dispatch settings failed', '載入 Kanban 調度設定失敗'),
hermesKanbanConfigSaveFailed: _('保存 Kanban 调度配置失败', 'Save Kanban dispatch settings failed', '儲存 Kanban 調度設定失敗'),
hermesKanbanConfigDispatchInGateway: _('由 Gateway 自动派发任务', 'Dispatch tasks in Gateway', '由 Gateway 自動派發任務'),
hermesKanbanConfigDispatchIntervalSeconds: _('派发检查间隔(秒)', 'Dispatch interval (s)', '派發檢查間隔(秒)'),
hermesKanbanConfigMaxSpawn: _('每轮最多启动任务数', 'Max spawned per tick', '每輪最多啟動任務數'),
hermesKanbanConfigMaxInProgress: _('同时运行任务上限', 'Max running tasks', '同時執行任務上限'),
hermesKanbanConfigFailureLimit: _('失败重试上限', 'Failure retry limit', '失敗重試上限'),
hermesKanbanConfigAutoDecompose: _('自动拆解待办任务', 'Auto decompose tasks', '自動拆解待辦任務'),
hermesKanbanConfigAutoDecomposePerTick: _('每轮自动拆解数量', 'Auto decompose per tick', '每輪自動拆解數量'),
hermesKanbanConfigDispatchStaleTimeoutSeconds: _('无心跳回收时间(秒)', 'Heartbeat reclaim timeout (s)', '無心跳回收時間(秒)'),
hermesKanbanConfigFootnote: _('写入 kanban.dispatch_in_gateway、dispatch_interval_seconds、max_spawn、max_in_progress、failure_limit、auto_decompose、auto_decompose_per_tick、dispatch_stale_timeout_seconds。两个并发上限填 0 表示不写入限制;无心跳回收填 0 表示关闭自动回收。', 'Writes kanban.dispatch_in_gateway, dispatch_interval_seconds, max_spawn, max_in_progress, failure_limit, auto_decompose, auto_decompose_per_tick, and dispatch_stale_timeout_seconds. Set concurrency caps to 0 to omit limits; set heartbeat reclaim to 0 to disable automatic reclaim.', '寫入 kanban.dispatch_in_gateway、dispatch_interval_seconds、max_spawn、max_in_progress、failure_limit、auto_decompose、auto_decompose_per_tick、dispatch_stale_timeout_seconds。兩個並發上限填 0 表示不寫入限制;無心跳回收填 0 表示關閉自動回收。'),
hermesSecurityConfigTitle: _('Tirith 安全扫描', 'Tirith security scanning', 'Tirith 安全掃描'),
hermesSecurityConfigDesc: _('控制终端命令执行前的 Tirith 内容扫描,拦截明显的 URL 伪装、管道执行和注入风险。', 'Control Tirith content scanning before terminal commands run to catch obvious URL spoofing, pipe-to-shell, and injection risks.', '控制終端命令執行前的 Tirith 內容掃描,攔截明顯的 URL 偽裝、管道執行和注入風險。'),
hermesSecurityConfigStatusReady: _('结构化配置', 'structured settings', '結構化設定'),
hermesSecurityConfigSave: _('保存安全设置', 'Save security settings', '儲存安全設定'),
hermesSecurityConfigSaveSuccess: _('Tirith 安全扫描配置已保存,建议重启 Hermes Gateway 生效', 'Tirith security settings saved. Restart Hermes Gateway to take effect.', 'Tirith 安全掃描設定已儲存,建議重啟 Hermes Gateway 生效'),
hermesSecurityConfigLoadFailed: _('加载 Tirith 安全扫描配置失败', 'Load Tirith security settings failed', '載入 Tirith 安全掃描設定失敗'),
hermesSecurityConfigSaveFailed: _('保存 Tirith 安全扫描配置失败', 'Save Tirith security settings failed', '儲存 Tirith 安全掃描設定失敗'),
hermesSecurityConfigTirithEnabled: _('启用 Tirith 扫描', 'Enable Tirith scanning', '啟用 Tirith 掃描'),
hermesSecurityConfigTirithPath: _('Tirith 可执行文件路径', 'Tirith executable path', 'Tirith 可執行檔路徑'),
hermesSecurityConfigTirithTimeout: _('扫描超时(秒)', 'Scan timeout (s)', '掃描逾時(秒)'),
hermesSecurityConfigTirithFailOpen: _('Tirith 不可用时放行', 'Allow when Tirith is unavailable', 'Tirith 不可用時放行'),
hermesSecurityConfigFootnote: _('启用后Hermes 会在终端命令执行前调用 Tirith 进行内容级安全扫描Tirith 不可用时是否放行取决于 fail-open。Windows 平台通常会静默跳过 Tirith真实执行能力仍受宿主环境影响。', 'When enabled, Hermes runs Tirith before terminal commands for content-level scanning. Whether commands pass when Tirith is unavailable depends on fail-open. On Windows, Tirith is usually skipped silently, and actual execution still depends on the host environment.', '啟用後Hermes 會在終端命令執行前呼叫 Tirith 進行內容級安全掃描Tirith 不可用時是否放行取決於 fail-open。Windows 平台通常會靜默跳過 Tirith真實執行能力仍受主機環境影響。'),
// Batch 1 §E: 会话导出
sessionsExport: _('导出', 'Export', '匯出'),
sessionsExportSuccess: _('已导出', 'Exported', '已匯出'),
sessionsExportFailed: _('导出失败', 'Export failed', '匯出失敗'),
// 停止流式
chatStop: _('停止', 'Stop', '停止'),
chatStopped: _('已停止当前回复', 'Run stopped', '已停止目前回覆'),
chatAborting: _('正在中断…', 'Aborting…', '正在中斷…'),
// Batch 1 §C-bis: Approval Flow 工具调用批准
chatApprovalTitle: _('Agent 想调用工具 "{tool}",是否批准?', 'Agent wants to call tool "{tool}". Approve?', 'Agent 想呼叫工具 "{tool}",是否批准?'),
chatApprovalHint: _('「一次性」最安全;「本次会话」让 Agent 自由用;「永久」全局信任此工具。', '"Once" is safest. "Session" lets the agent use it freely this session. "Always" trusts this tool globally.', '「一次性」最安全;「本次會話」讓 Agent 自由用;「永久」全局信任此工具。'),
chatApprovalOnce: _('一次性批准', 'Approve once', '一次性批准'),
chatApprovalSession: _('本次会话', 'This session', '本次會話'),
chatApprovalAlways: _('永久信任', 'Always', '永久信任'),
chatApprovalDeny: _('拒绝', 'Deny', '拒絕'),
chatApprovalFailed: _('批准失败', 'Approval failed', '批准失敗'),
// Batch 3 §K: 多模态图片
chatAttach: _('附加图片', 'Attach image', '附加圖片'),
chatAttachRemove: _('移除', 'Remove', '移除'),
chatAttachOnlyImage: _('只支持图片格式', 'Only image files are supported', '只支援圖片格式'),
chatAttachTooBig: _('图片过大(最大 10 MB', 'Image too large (max 10 MB)', '圖片過大(最大 10 MB'),
chatAttachTooMany: _('最多 5 张图片', 'Up to 5 images', '最多 5 張圖片'),
chatAttachReadFailed: _('读取图片失败', 'Failed to read image', '讀取圖片失敗'),
// Batch 2 §H: Profiles 管理
hermesProfilesTitle: _('Profile 管理', 'Profiles', 'Profile 管理'),
hermesProfilesDesc: _('每个 Profile 是独立的工作区,凭据、记忆、会话彼此隔离', 'Each profile is an isolated workspace — credentials, memory, sessions are kept separate', '每個 Profile 是獨立的工作區,憑證、記憶、會話彼此隔離'),
hermesProfilesEmpty: _('暂无 Profile请先启动 Dashboard', 'No profiles (start Dashboard first)', '暫無 Profile請先啟動 Dashboard'),
hermesProfileNew: _('新建', 'New', '新建'),
hermesProfileNewTitle: _('新建 Profile', 'New profile', '新建 Profile'),
hermesProfileNameLabel: _('Profile 名称', 'Profile name', 'Profile 名稱'),
hermesProfileNameRequired: _('名称不能为空', 'Name is required', '名稱不能為空'),
hermesProfileCloneFromDefault: _('从默认 Profile 复制(推荐)', 'Clone from default (recommended)', '從預設 Profile 複製(推薦)'),
hermesProfileCloneHint: _('打勾会复制 default 的模型、技能、记忆。不勾会创建空白 Profile。', 'Checked: clone default\'s models / skills / memory. Unchecked: empty profile.', '勾選會複製 default 的模型、技能、記憶。不勾建立空白 Profile。'),
hermesProfileSwitch: _('切换到此', 'Switch to', '切換到此'),
hermesProfileSwitched: _('已切换到 {name}', 'Switched to {name}', '已切換到 {name}'),
hermesProfileSwitchFailed: _('切换失败', 'Switch failed', '切換失敗'),
hermesProfileRename: _('重命名', 'Rename', '重新命名'),
hermesProfileRenameTitle: _('重命名 Profile "{name}"', 'Rename profile "{name}"', '重新命名 Profile "{name}"'),
hermesProfileNewNameLabel: _('新名称', 'New name', '新名稱'),
hermesProfileRenamed: _('已重命名: {from} → {to}', 'Renamed: {from} → {to}', '已重新命名: {from} → {to}'),
hermesProfileRenameFailed: _('重命名失败', 'Rename failed', '重新命名失敗'),
hermesProfileDelete: _('删除', 'Delete', '刪除'),
hermesProfileDeleteConfirm: _('确认删除 Profile "{name}"', 'Delete profile "{name}"?', '確認刪除 Profile "{name}"'),
hermesProfileDeleteImpact: _('这会永久清除该 Profile 的会话、凭据和记忆文件', 'This permanently removes the profile\'s sessions, credentials, and memory files', '這會永久清除該 Profile 的會話、憑證和記憶檔案'),
hermesProfileDeleted: _('Profile "{name}" 已删除', 'Profile "{name}" deleted', 'Profile "{name}" 已刪除'),
hermesProfileDeleteFailed: _('删除失败', 'Delete failed', '刪除失敗'),
hermesProfileActive: _('当前', 'Active', '當前'),
hermesProfileCreated: _('已创建 Profile "{name}"', 'Profile "{name}" created', '已建立 Profile "{name}"'),
hermesProfileCreateFailed: _('创建失败', 'Create failed', '建立失敗'),
// Batch 3 §M: Kanban 看板Hermes 已内置,走 /api/plugins/kanban/*
hermesKanbanTitle: _('看板', 'Kanban', '看板'),
hermesKanbanDesc: _('管理 Agent 任务卡片,按状态分列', 'Manage agent tasks by status columns', '管理 Agent 任務卡片,按狀態分欄'),
hermesKanbanEmpty: _('暂无任务(请先启动 Dashboard', 'No tasks (start Dashboard first)', '暫無任務(請先啟動 Dashboard'),
hermesKanbanColEmpty: _('(空)', '(empty)', '(空)'),
hermesKanbanNewTask: _('新任务', 'New task', '新任務'),
hermesKanbanNewTaskTitle: _('新建任务', 'New task', '新建任務'),
hermesKanbanTitleLabel: _('标题', 'Title', '標題'),
hermesKanbanTitleRequired: _('标题不能为空', 'Title is required', '標題不能為空'),
hermesKanbanSummaryLabel: _('摘要', 'Summary', '摘要'),
hermesKanbanDescLabel: _('描述', 'Description', '描述'),
hermesKanbanStatusLabel: _('状态', 'Status', '狀態'),
hermesKanbanPriorityLabel: _('优先级', 'Priority', '優先級'),
hermesKanbanAssigneeLabel: _('指派给', 'Assignee', '指派給'),
hermesKanbanRunSummary: _('最近运行摘要', 'Latest run summary', '最近執行摘要'),
hermesKanbanColTodo: _('待办', 'To do', '待辦'),
hermesKanbanColInProgress: _('进行中', 'In progress', '進行中'),
hermesKanbanColBlocked: _('阻塞', 'Blocked', '阻塞'),
hermesKanbanColDone: _('完成', 'Done', '完成'),
hermesKanbanColArchived: _('归档', 'Archived', '歸檔'),
hermesKanbanTaskCreated: _('任务已创建', 'Task created', '任務已建立'),
hermesKanbanTaskCreateFailed: _('创建任务失败', 'Create task failed', '建立任務失敗'),
hermesKanbanTaskUpdated: _('任务已更新', 'Task updated', '任務已更新'),
hermesKanbanTaskUpdateFailed: _('更新任务失败', 'Update task failed', '更新任務失敗'),
hermesKanbanTaskLoadFailed: _('加载任务失败', 'Load task failed', '載入任務失敗'),
hermesKanbanMoveStatus: _('修改状态', 'Change status', '修改狀態'),
hermesKanbanMoveStatusTitle: _('修改任务状态', 'Change task status', '修改任務狀態'),
hermesKanbanBoardSwitched: _('已切换到看板 "{name}"', 'Switched to board "{name}"', '已切換到看板 "{name}"'),
hermesKanbanBoardSwitchFailed: _('切换看板失败', 'Switch board failed', '切換看板失敗'),
// Hermes UX 小白化services 重启/停止确认
servicesConfirmRestart: _('确认重启 Gateway', 'Restart Gateway?', '確認重啟 Gateway'),
servicesConfirmStop: _('确认停止 Gateway', 'Stop Gateway?', '確認停止 Gateway'),
servicesImpactInflight: _('正在进行的 Agent 会话会被中断', 'In-flight agent runs will be aborted', '正在進行的 Agent 會話會被中斷'),
// Batch 3 §P: TTS 朗读(浏览器原生 Web Speech API
chatSpeak: _('朗读', 'Speak', '朗讀'),
chatSpeakShort: _('朗读', 'Speak', '朗讀'),
chatSpeakFailed: _('朗读失败(浏览器不支持或无可用语音)', 'TTS failed (browser unsupported or no voices)', '朗讀失敗(瀏覽器不支援或無可用語音)'),
// Batch 3 §Q: OAuth 三种登录PKCE / device_code / external CLI
hermesOAuthTitle: _('OAuth 登录', 'OAuth Login', 'OAuth 登入'),
hermesOAuthDesc: _('用 OAuth 连接 Claude / Qwen / GitHub Copilot 等服务,免去手填 API Key', 'Connect to Claude / Qwen / GitHub Copilot via OAuth — no manual API key needed', '用 OAuth 連接 Claude / Qwen / GitHub Copilot 等服務,免去手填 API Key'),
hermesOAuthEmpty: _('未检测到 OAuth Provider请先启动 Dashboard', 'No OAuth providers (start Dashboard first)', '未偵測到 OAuth Provider請先啟動 Dashboard'),
hermesOAuthConnect: _('登录', 'Connect', '登入'),
hermesOAuthDisconnect: _('断开', 'Disconnect', '中斷'),
hermesOAuthDocs: _('文档', 'Docs', '文件'),
hermesOAuthConnected: _('已连接', 'Connected', '已連線'),
hermesOAuthDisconnected: _('未连接', 'Disconnected', '未連線'),
hermesOAuthExpires: _('过期', 'Expires', '到期'),
hermesOAuthFlowPkce: _('PKCE 授权', 'PKCE flow', 'PKCE 授權'),
hermesOAuthFlowDevice: _('设备码流程', 'Device code flow', '裝置碼流程'),
hermesOAuthFlowExternal: _('需通过 CLI 登录', 'CLI-only flow', '需透過 CLI 登入'),
hermesOAuthExternalTitle: _('{id} 需用 CLI 登录', '{id} requires CLI login', '{id} 需用 CLI 登入'),
hermesOAuthExternalHint: _('请在终端运行以下命令完成登录:', 'Please run this command in your terminal:', '請在終端執行以下指令完成登入:'),
hermesOAuthExternalRefresh: _('登录完成后回到此页面点「刷新」', 'After login, click Refresh on this page', '登入完成後回到此頁面點「重新整理」'),
hermesOAuthStartFailed: _('启动登录失败', 'Start login failed', '啟動登入失敗'),
hermesOAuthBadResponse: _('OAuth 响应缺少必要字段', 'OAuth response missing required fields', 'OAuth 回應缺少必要欄位'),
hermesOAuthUnknownFlow: _('未知流程: {flow}', 'Unknown flow: {flow}', '未知流程: {flow}'),
// PKCE
hermesOAuthPkceTitle: _('完成 PKCE 授权', 'Complete PKCE authorization', '完成 PKCE 授權'),
hermesOAuthPkceAuthLink: _('授权链接(已自动打开)', 'Authorization URL (already opened)', '授權連結(已自動開啟)'),
hermesOAuthPkceUrlHint: _('如未自动打开浏览器,请手动复制', 'If browser did not open, copy this URL', '如未自動開啟瀏覽器,請手動複製'),
hermesOAuthPkceCodeLabel: _('粘贴回调 Code', 'Paste callback code', '貼上回呼 Code'),
hermesOAuthPkceCodeHint: _('授权后浏览器会跳转到一个回调页,从 URL 或页面文字复制 code', 'After authorizing, the browser redirects to a callback page — copy the code from URL or text', '授權後瀏覽器會跳轉到一個回呼頁,從 URL 或頁面文字複製 code'),
hermesOAuthCodeRequired: _('请填写授权 code', 'Code is required', '請填寫授權 code'),
hermesOAuthSubmitFailed: _('提交回调 code 失败', 'Submit code failed', '提交回呼 code 失敗'),
// device code
hermesOAuthDeviceTitle: _('完成设备码登录', 'Complete device code login', '完成裝置碼登入'),
hermesOAuthDeviceHint: _('1) 浏览器会自动打开授权页 2) 输入下方 6 位用户码 3) 完成后此处自动刷新', '1) Browser opens the auth page 2) Enter the user code below 3) Page auto-refreshes when done', '1) 瀏覽器會自動開啟授權頁 2) 輸入下方 6 位用戶碼 3) 完成後此處自動重新整理'),
hermesOAuthDeviceWaiting: _('等待你在浏览器完成登录…', 'Waiting for you to complete login in browser…', '等待你在瀏覽器完成登入…'),
hermesOAuthDeviceTimeout: _('登录超时10 分钟未完成)', 'Login timed out (10 min)', '登入逾時10 分鐘未完成)'),
hermesOAuthDeviceFailed: _('授权失败', 'Authorization failed', '授權失敗'),
hermesOAuthDisconnectFailed: _('断开失败', 'Disconnect failed', '中斷失敗'),
// Hermes UX 小白化chat profile 切换错误
chatProfileSwitchFailed: _('切换 Profile 失败', 'Switch profile failed', '切換 Profile 失敗'),
// Batch 2 §G: 多 Gateway 看板
hermesGatewaysTitle: _('多 Gateway 看板', 'Multi Gateway', '多 Gateway 看板'),
hermesGatewaysDesc: _('同时运行多个 Hermes Gateway每个绑不同 Profile方便切换工作环境', 'Run multiple Hermes Gateways simultaneously (each bound to its own profile)', '同時執行多個 Hermes Gateway每個綁不同 Profile方便切換工作環境'),
hermesGatewaysEmpty: _('尚未配置任何 Gateway', 'No gateways configured', '尚未設定任何 Gateway'),
hermesGatewaysEmptyHint: _('点击「+ 添加」给一个 Profile 配置 Gateway 实例', 'Click "+ Add" to configure a gateway instance for a profile', '點擊「+ 新增」給一個 Profile 設定 Gateway 實例'),
hermesGatewayAdd: _('添加', 'Add', '新增'),
hermesGatewayAddTitle: _('添加 Gateway', 'Add Gateway', '新增 Gateway'),
hermesGatewayNameLabel: _('Gateway 名称', 'Gateway name', 'Gateway 名稱'),
hermesGatewayNameHint: _('用于在面板里识别(不影响 Hermes 内部)', 'Just for panel display (does not affect Hermes internals)', '用於在面板中識別(不影響 Hermes 內部)'),
hermesGatewayNameRequired: _('名称不能为空', 'Name is required', '名稱不能為空'),
hermesGatewayProfileLabel: _('绑定 Profile', 'Bind to profile', '綁定 Profile'),
hermesGatewayProfileHint: _('端口从该 Profile 的 config.yaml model.gateway.port 读取', 'Port is read from the profile\'s config.yaml model.gateway.port', '埠號從該 Profile 的 config.yaml model.gateway.port 讀取'),
hermesGatewayAdded: _('Gateway "{name}" 已添加', 'Gateway "{name}" added', 'Gateway "{name}" 已新增'),
hermesGatewayAddFailed: _('添加 Gateway 失败', 'Add gateway failed', '新增 Gateway 失敗'),
hermesGatewayRunning: _('运行中', 'Running', '執行中'),
hermesGatewayStopped: _('已停止', 'Stopped', '已停止'),
hermesGatewayForeign: _('端口已被外部进程占用(非 ClawPanel spawn', 'Port owned by external process (not spawned by ClawPanel)', '埠號已被外部行程佔用'),
hermesGatewayForeignTip: _('只能停止 ClawPanel spawn 的实例', 'Can only stop instances spawned by ClawPanel', '只能停止 ClawPanel spawn 的實例'),
hermesGatewayStarted: _('Gateway "{name}" 已启动', 'Gateway "{name}" started', 'Gateway "{name}" 已啟動'),
hermesGatewayStartedWarning: _('已启动,但 {warning}', 'Started, but {warning}', '已啟動,但 {warning}'),
hermesGatewayStartFailed: _('启动 Gateway 失败', 'Start gateway failed', '啟動 Gateway 失敗'),
hermesGatewayStopConfirm: _('确认停止 Gateway "{name}"', 'Stop Gateway "{name}"?', '確認停止 Gateway "{name}"'),
hermesGatewayStopped2: _('Gateway "{name}" 已停止', 'Gateway "{name}" stopped', 'Gateway "{name}" 已停止'),
hermesGatewayStopFailed: _('停止 Gateway 失败', 'Stop gateway failed', '停止 Gateway 失敗'),
hermesGatewayRemove: _('删除', 'Remove', '刪除'),
hermesGatewayRemoveConfirm: _('确认从面板删除 Gateway "{name}"?(不会影响该 Profile 配置)', 'Remove Gateway "{name}" from panel? (Does not affect profile config)', '確認從面板刪除 Gateway "{name}"?(不會影響該 Profile 設定)'),
hermesGatewayRemoved: _('Gateway "{name}" 已删除', 'Gateway "{name}" removed', 'Gateway "{name}" 已刪除'),
hermesGatewayRemoveFailed: _('删除 Gateway 失败', 'Remove gateway failed', '刪除 Gateway 失敗'),
// Batch 3 §L: 文件管理器
hermesFilesTitle: _('文件管理器', 'Files', '檔案管理器'),
hermesFilesDesc: _('浏览和编辑 ~/.hermes 目录下的配置、记忆、日志等文件(限制 5MB 以内)', 'Browse and edit files under ~/.hermes (config, memory, logs — max 5MB)', '瀏覽和編輯 ~/.hermes 目錄下的設定、記憶、日誌等檔案'),
hermesFilesEmptyDir: _('(空目录)', '(empty directory)', '(空目錄)'),
hermesFilesSelectFile: _('从左侧选一个文件查看 / 编辑', 'Select a file from the left to view / edit', '從左側選一個檔案查看 / 編輯'),
hermesFilesSave: _('保存', 'Save', '儲存'),
hermesFilesSaveDirty: _('保存 *', 'Save *', '儲存 *'),
hermesFilesSaved: _('已保存', 'Saved', '已儲存'),
hermesFilesSaveFailed: _('保存失败', 'Save failed', '儲存失敗'),
hermesFilesBinary: _('二进制文件(不可编辑)', 'Binary file (not editable)', '二進位檔案(不可編輯)'),
hermesFilesUnreadable: _('文件无法读取', 'File unreadable', '檔案無法讀取'),
hermesFilesUnsavedConfirm: _('当前文件有未保存的修改,确认丢弃?', 'Current file has unsaved changes. Discard?', '目前檔案有未儲存的修改,確認丟棄?'),
hermesFilesDiscardChanges: _('丢弃', 'Discard', '丟棄'),
// Batch 3 §N: 群聊(多 Agent 并行响应)
hermesGroupChatTitle: _('群聊', 'Group Chat', '群聊'),
hermesGroupChatDesc: _('选多个 Profile一句话同时问多个 Agent对比不同模型/角色的回答', 'Pick multiple profiles, ask one question to many agents at once, compare answers', '選多個 Profile一句話同時問多個 Agent比較不同模型/角色的回答'),
hermesGroupChatProfiles: _('参与的 Profile', 'Participating profiles', '參與的 Profile'),
hermesGroupChatProfilesHint: _('勾选要一起回复的 Profile每个 Profile 是一个 Agent 配置)', 'Tick profiles that should reply together', '勾選要一起回覆的 Profile'),
hermesGroupChatSelected: _('已选 {n} 个', '{n} selected', '已選 {n} 個'),
hermesGroupChatEmpty: _('选好 Profile 后输入消息发送', 'Pick profiles and send a message to start', '選好 Profile 後輸入訊息發送'),
hermesGroupChatPlaceholder: _('输入消息Enter 发送Shift+Enter 换行)…', 'Type a message (Enter to send, Shift+Enter for newline)…', '輸入訊息Enter 發送Shift+Enter 換行)…'),
hermesGroupChatSend: _('发送', 'Send', '發送'),
hermesGroupChatSending: _('发送中…', 'Sending…', '發送中…'),
hermesGroupChatClear: _('清空', 'Clear', '清空'),
hermesGroupChatRunFailed: _('运行失败', 'Run failed', '執行失敗'),
hermesGroupChatNoOutput: _('(无输出)', '(no output)', '(無輸出)'),
hermesGroupChatWebUnsupported: _('Web 模式不支持群聊(依赖 hermesAgentRun需桌面端事件桥。请用桌面客户端。', 'Group chat is not supported in Web mode (requires desktop event bridge). Use the desktop app.', 'Web 模式不支援群聊(依賴 hermesAgentRun需桌面端事件橋。請用桌面客戶端。'),
// Hermes UX 小白化:补齐 humanizeError fallback 用到的 i18n
sessionsLoadFailed: _('加载会话失败', 'Load sessions failed', '載入會話失敗'),
sessionsSwitchFailed: _('切换会话失败', 'Switch session failed', '切換會話失敗'),
usageLoadFailed: _('加载用量失败', 'Load usage failed', '載入用量失敗'),
extensionsThemeSaveFailed: _('保存主题失败', 'Save theme failed', '儲存主題失敗'),
extensionsLoadFailed: _('加载扩展失败', 'Load extensions failed', '載入擴充功能失敗'),
extensionsRescanFailed: _('重新扫描失败', 'Rescan failed', '重新掃描失敗'),
hermesConfigLoadFailed: _('加载配置失败', 'Load config failed', '載入設定失敗'),
hermesConfigSaveFailed: _('保存配置失败', 'Save config failed', '儲存設定失敗'),
cronLoadFailed: _('加载定时任务失败', 'Load cron jobs failed', '載入定時任務失敗'),
cronSaveFailed: _('保存定时任务失败', 'Save cron job failed', '儲存定時任務失敗'),
// Web 模式(远程浏览器)下流式聊天暂不可用
chatWebModeStreamingUnsupported: _(
'Web 模式暂不支持 Hermes 实时流式聊天(依赖桌面端事件桥)。请打开桌面客户端使用此功能。',
'Hermes streaming chat isn\'t available in Web mode yet (it relies on the desktop event bridge). Please use the desktop app for this.',
'Web 模式暫不支援 Hermes 即時串流聊天(依賴桌面端事件橋)。請開啟桌面客戶端使用此功能。',
),
// 会话搜索 (Ctrl+K)
chatSearchShortcut: _('搜索会话 (Ctrl+K)', 'Search sessions (Ctrl+K)', '搜尋會話 (Ctrl+K)'),
chatSearchPlaceholder: _('搜索会话标题或内容...', 'Search by title or message content…', '搜尋會話標題或內容...'),
chatSearchEmpty: _('没有匹配的会话', 'No matching sessions', '沒有符合的會話'),
chatSearchNavigate: _('导航', 'Navigate', '導覽'),
chatSearchOpen: _('打开', 'Open', '開啟'),
fileAccess: _('文件访问', 'File Access', '檔案存取'),
fileAccessOn: _('已开启文件系统访问Agent 可读取本机文件)', 'File system access enabled (Agent can read local files)', '已開啟檔案系統存取Agent 可讀取本機檔案)'),
fileAccessOff: _('文件系统访问已关闭', 'File system access disabled', '檔案系統存取已關閉'),
// 定时任务
hermesCronTitle: _('定时任务', 'Cron Jobs', '定時任務'),
cronNoJobs: _('暂无定时任务', 'No cron jobs yet', '暫無定時任務'),
cronCreate: _('创建任务', 'Create Job', '建立任務'),
cronName: _('任务名称', 'Job Name', '任務名稱'),
cronSchedule: _('执行周期', 'Schedule', '執行週期'),
cronPrompt: _('AI 指令', 'AI Prompt', 'AI 指令'),
cronActive: _('启用', 'Active', '啟用'),
cronPaused: _('已暂停', 'Paused', '已暫停'),
cronRunNow: _('立即执行', 'Run Now', '立即執行'),
cronDelete: _('删除', 'Delete', '刪除'),
cronSave: _('保存', 'Save', '儲存'),
cronCancel: _('取消', 'Cancel', '取消'),
cronEdit: _('编辑', 'Edit', '編輯'),
cronTotal: _('总任务', 'Total', '總任務'),
cronRunning: _('运行中', 'Running', '運行中'),
cronNoJobsHint: _('点击"创建任务"添加你的第一个定时任务', 'Click "Create Job" to add your first cron job', '點擊「建立任務」添加你的第一個定時任務'),
cronEvery5min: _('每5分钟', 'Every 5 min', '每5分鐘'),
cronEvery15min: _('每15分钟', 'Every 15 min', '每15分鐘'),
cronHourly: _('每小时', 'Hourly', '每小時'),
cronDaily9: _('每天 9:00', 'Daily 9:00', '每天 9:00'),
cronDaily18: _('每天 18:00', 'Daily 18:00', '每天 18:00'),
cronMonday9: _('每周一 9:00', 'Monday 9:00', '每週一 9:00'),
cronMonthly1: _('每月1日 9:00', '1st of Month 9:00', '每月1日 9:00'),
cronEveryMinute: _('每分钟', 'Every minute', '每分鐘'),
cronEveryNMin: _('每 {n} 分钟', 'Every {n} minutes', '每 {n} 分鐘'),
cronHourlyOnTheHour: _('每小时整点', 'Every hour on the hour', '每小時整點'),
cronCustomExpr: _('自定义 cron 表达式', 'Custom cron expression', '自訂 cron 表達式'),
cronPreview: _('预览', 'Preview', '預覽'),
cronConfirmDelete: _('确定要删除任务「{name}」吗?', 'Delete job "{name}"?', '確定要刪除任務「{name}」嗎?'),
cronDeleteTitle: _('删除任务「{name}」', 'Delete job "{name}"', '刪除任務「{name}」', 'ジョブ「{name}」を削除', '작업「{name}」 삭제', 'Xoá tác vụ "{name}"', 'Eliminar tarea "{name}"', 'Excluir tarefa "{name}"', 'Удалить задачу "{name}"', 'Supprimer la tâche "{name}"', 'Aufgabe "{name}" löschen'),
cronDeleteBtn: _('删除', 'Delete', '刪除', '削除', '삭제', 'Xoá', 'Eliminar', 'Excluir', 'Удалить', 'Supprimer', 'Löschen'),
cronDeleteCancel: _('保留', 'Keep', '保留', '保持', '유지', 'Giữ lại', 'Conservar', 'Manter', 'Оставить', 'Conserver', 'Behalten'),
cronDeleteImpactStop: _('任务将停止,不再按计划执行', 'Job will stop and will no longer run on schedule', '任務將停止,不再按計畫執行', 'ジョブは停止し、スケジュール実行されなくなります', '작업이 중지되고 더 이상 예약대로 실행되지 않습니다', 'Tác vụ sẽ dừng và không chạy theo lịch nữa', 'La tarea se detendrá y dejará de ejecutarse según el calendario', 'A tarefa será interrompida e deixará de rodar no agendamento', 'Задача остановится и не будет выполняться по расписанию', 'La tâche s\u2019arrêtera et ne s\u2019exécutera plus selon le planning', 'Die Aufgabe stoppt und wird nicht mehr nach Zeitplan ausgeführt'),
cronDeleteImpactHistory: _('已执行的历史记录会被保留', 'Past execution history will be kept', '已執行的歷史紀錄會被保留', '実行履歴は保持されます', '실행 이력은 유지됩니다', 'Lịch sử thực thi sẽ được giữ lại', 'El historial de ejecuciones se conservará', 'O histórico de execuções será mantido', 'История выполнения будет сохранена', 'L\u2019historique d\u2019exécution sera conservé', 'Der Ausführungsverlauf bleibt erhalten'),
cronSaving: _('保存中...', 'Saving...', '儲存中...'),
cronNameRequired: _('请输入任务名称', 'Job name is required', '請輸入任務名稱'),
cronPromptRequired: _('请输入 AI 指令', 'AI prompt is required', '請輸入 AI 指令'),
cronScheduleRequired: _('请选择执行周期', 'Schedule is required', '請選擇執行週期'),
// --- Phase 2 additions: richer job metadata ---
cronEyebrow: _('AGENT 定时任务', 'AGENT SCHEDULED JOBS', 'AGENT 定時任務'),
cronJobs: _('个任务', 'jobs', '個任務'),
cronFailed: _('失败', 'Failed', '失敗'),
cronPauseBtn: _('暂停', 'Pause', '暫停'),
cronResume: _('恢复', 'Resume', '恢復'),
cronStateRunning: _('运行中', 'running', '運行中'),
cronStatePaused: _('已暂停', 'paused', '已暫停'),
cronStateDisabled: _('已禁用', 'disabled', '已禁用'),
cronStateScheduled: _('待调度', 'scheduled', '待調度'),
cronScheduleLabel: _('执行周期', 'schedule', '執行週期'),
cronNextRun: _('下次执行', 'next run', '下次執行'),
cronLastRun: _('上次执行', 'last run', '上次執行'),
cronDeliverLabel: _('结果回传', 'deliver to', '結果回傳'),
cronRepeatLabel: _('重复', 'repeat', '重複'),
cronSkillsLabel: _('Skills', 'Skills', 'Skills'),
cronLastError: _('上次错误', 'last error', '上次錯誤'),
cronOverdue: _('已逾期', 'overdue', '已逾期'),
cronInSeconds: _('{n} 秒后', 'in {n}s', '{n} 秒後'),
cronInMinutes: _('{n} 分钟后', 'in {n}m', '{n} 分鐘後'),
cronInHours: _('{n} 小时后', 'in {n}h', '{n} 小時後'),
cronInDays: _('{n} 天后', 'in {n}d', '{n} 天後'),
cronDeliverOrigin: _('回传原聊天', 'origin chat', '回傳原聊天'),
cronDeliverLocal: _('仅本地记录', 'local only', '僅本機記錄'),
cronRepeatLimit: _('重复次数', 'repeat limit', '重複次數'),
cronRepeatLimitHint: _('留空表示无限循环', 'Leave empty for unlimited', '留空表示無限迴圈'),
cronInvalidCron: _('无效的 cron 表达式', 'Invalid cron expression', '無效的 cron 表達式'),
cronTriggered: _('任务已触发', 'Job triggered', '任務已觸發'),
cronPausedOk: _('任务已暂停', 'Job paused', '任務已暫停'),
cronResumedOk: _('任务已恢复', 'Job resumed', '任務已恢復'),
cronDeletedOk: _('任务已删除', 'Job deleted', '任務已刪除'),
// 日志页面
hermesLogsTitle: _('Agent 日志', 'Agent Logs', 'Agent 日誌'),
logsRefresh: _('刷新', 'Refresh', '重新整理'),
logsFiles: _('日志文件', 'Log Files', '日誌檔案'),
logsNoFiles: _('暂无日志文件', 'No log files', '暫無日誌檔案'),
logsLines: _('行', 'lines', '行'),
logsSearch: _('搜索日志...', 'Search logs...', '搜尋日誌...'),
logsEntries: _('条记录', 'entries', '條記錄'),
logsLoading: _('加载中...', 'Loading...', '載入中...'),
logsEmpty: _('暂无日志', 'No logs', '暫無日誌'),
logsLoadFailed: _('加载失败', 'Load failed', '載入失敗'),
logsEyebrow: _('AGENT 日志流', 'AGENT LOG STREAM', 'AGENT 日誌流'),
logsTailing: _('实时追踪中', 'TAILING · LIVE', '即時追蹤中'),
logsTailStart: _('追踪', 'Tail', '追蹤'),
logsTailStop: _('暂停', 'Pause', '暫停'),
logsToggleTail: _('开启/停止实时追踪(每 2 秒刷新)', 'Toggle live tail (2s poll)', '開啟/停止即時追蹤(每 2 秒重新整理)'),
logsDownload: _('下载', 'Download', '下載'),
logsDownloadOk: _('日志已保存到 {path}', 'Log saved to {path}', '日誌已儲存到 {path}'),
logsDownloadBrowserOk: _('已交给浏览器下载,请查看默认下载目录。', 'Download started in your browser; check the default downloads folder.', '已交給瀏覽器下載,請查看預設下載目錄。'),
logsDownloadFailed: _('下载失败', 'Download failed', '下載失敗'),
logsClear: _('清空当前显示', 'Clear view', '清空目前顯示'),
logsLevel: _('级别', 'Level', '級別'),
logsLinesLabel: _('行数', 'Limit', '行數'),
logsSearchLabel: _('搜索', 'Search', '搜尋'),
logsFilteredBy: _('过滤自', 'filtered by', '過濾自'),
// Skills 页面
hermesSkillsTitle: _('Agent Skills', 'Agent Skills', 'Agent Skills'),
skillsEyebrow: _('AGENT 技能库', 'AGENT SKILL LIBRARY', 'AGENT 技能庫'),
skillsTotal: _('个技能', 'skills', '個技能'),
skillsActive: _('启用中', 'active', '啟用中'),
skillsSearch: _('搜索技能...', 'Search skills...', '搜尋技能...'),
skillsLoading: _('加载中...', 'Loading...', '載入中...'),
skillsEmpty: _('暂无技能', 'No skills found', '暫無技能'),
skillsNoMatch: _('没有匹配的技能', 'No skills match your search', '沒有符合的技能'),
skillsUncategorized: _('未分类', 'Uncategorized', '未分類'),
skillsSelectHint: _('选择一个技能查看详情', 'Select a skill to view details', '選擇一個技能查看詳情'),
skillsSelectSub: _('从左侧列表点击,或使用搜索快速定位。', 'Click any item on the left, or use search to jump.', '從左側列表點擊,或使用搜尋快速定位。'),
skillsRefresh: _('刷新', 'Refresh', '重新整理'),
skillsEnable: _('启用此技能', 'Enable this skill', '啟用此技能'),
skillsDisable: _('停用此技能', 'Disable this skill', '停用此技能'),
skillsEnabled: _('技能已启用', 'Skill enabled', '技能已啟用'),
skillsDisabled: _('技能已停用', 'Skill disabled', '技能已停用'),
skillsEnabledTag: _('启用', 'Active', '啟用'),
skillsDisabledTag: _('停用', 'Disabled', '停用'),
skillsToggleFailed: _('切换失败', 'Toggle failed', '切換失敗'),
skillsLoadFailed: _('加载失败', 'Load failed', '載入失敗'),
skillsFileLoadFailed: _('文件加载失败', 'File load failed', '檔案載入失敗'),
skillsAttachedFiles: _('附带资源', 'Attached Files', '附帶資源'),
skillsBackTo: _('返回', 'Back to', '返回'),
// Skills 页面 — Toolsets 区hermes tools list --platform cli
toolsetsTitle: _('内置工具集',
'Built-in Toolsets',
'內建工具集',
'組み込みツールセット',
'내장 툴셋'),
toolsetsSubtitle: _('platform: cli · 配置位于 ~/.hermes/config.yaml',
'platform: cli · configured in ~/.hermes/config.yaml',
'platform: cli · 配置位於 ~/.hermes/config.yaml',
'platform: cli · ~/.hermes/config.yaml で設定',
'platform: cli · ~/.hermes/config.yaml에서 설정'),
toolsetsLoading: _('正在读取工具集…', 'Loading toolsets…', '正在讀取工具集…', 'ツールセットを読み込み中…', '툴셋 로드 중…'),
toolsetsEmpty: _('暂无工具集数据。可能 Hermes 未安装或版本过旧。',
'No toolset data. Hermes may not be installed or the version is too old.',
'暫無工具集資料。可能 Hermes 未安裝或版本過舊。',
'ツールセットデータがありません。Hermes がインストールされていないか、バージョンが古い可能性があります。',
'툴셋 데이터가 없습니다. Hermes가 설치되지 않았거나 버전이 너무 오래되었을 수 있습니다.'),
toolsetsParseFailed: _('无法解析输出,下面显示原始内容:',
'Could not parse output. Raw content shown below:',
'無法解析輸出,下面顯示原始內容:',
'出力を解析できませんでした。下に生のコンテンツを表示します:',
'출력을 분석할 수 없습니다. 아래에 원시 콘텐츠를 표시합니다:'),
toolsetsHint: _('要切换某个工具集,运行 hermes tools 进入交互界面,或编辑 config.yaml 的 platforms.cli.toolsets 字段。',
'To toggle a toolset, run hermes tools for the interactive UI or edit platforms.cli.toolsets in config.yaml.',
'要切換某個工具集,執行 hermes tools 進入互動介面,或編輯 config.yaml 的 platforms.cli.toolsets 欄位。',
'ツールセットを切り替えるには、hermes tools で対話 UI を起動するか、config.yaml の platforms.cli.toolsets を編集します。',
'툴셋을 전환하려면 hermes tools 대화형 UI를 실행하거나 config.yaml의 platforms.cli.toolsets를 편집하세요.'),
toolsetsEnabled: _('启用', 'enabled', '啟用', '有効', '활성화'),
toolsetsDisabled: _('停用', 'disabled', '停用', '無効', '비활성화'),
toolsetsActiveCount: _('{n}/{total} 启用', '{n}/{total} active', '{n}/{total} 啟用', '{n}/{total} 有効', '{n}/{total} 활성화'),
// Memory 页面
hermesMemoryTitle: _('Agent 记忆', 'Agent Memory', 'Agent 記憶'),
memoryNotes: _('笔记', 'Notes', '筆記'),
memoryProfile: _('用户画像', 'User Profile', '用戶畫像'),
memoryEdit: _('编辑', 'Edit', '編輯'),
memoryCancel: _('取消', 'Cancel', '取消'),
memorySave: _('保存', 'Save', '儲存'),
memorySaving: _('保存中...', 'Saving...', '儲存中...'),
memorySaveFailed: _('保存失败', 'Save failed', '儲存失敗'),
memoryLoading: _('加载中...', 'Loading...', '載入中...'),
memoryEmpty: _('暂无内容', 'No content', '暫無內容'),
memoryPlaceholder: _('使用 Markdown 格式编写...', 'Write in Markdown format...', '使用 Markdown 格式編寫...'),
memoryUnsaved: _('有未保存的更改,确定离开?', 'Unsaved changes. Leave anyway?', '有未儲存的變更,確定離開?'),
memorySaved: _('已保存', 'Saved', '已儲存'),
memorySaveHint: _('Ctrl/⌘ + S 保存 · Esc 取消', 'Ctrl/⌘ + S to save · Esc to cancel', 'Ctrl/⌘ + S 儲存 · Esc 取消'),
memoryEyebrow: _('AGENT 长期记忆', 'AGENT PERSISTENT MEMORY', 'AGENT 長期記憶'),
memoryOverviewKicker: _('Hermes Memory Fabric', 'Hermes Memory Fabric', 'Hermes Memory Fabric'),
memoryOverviewTitle: _('三份 Markdown组成 Agent 的长期上下文', 'Three Markdown files form the Agents long-term context', '三份 Markdown組成 Agent 的長期上下文'),
memoryOverviewDesc: _('笔记记录事实用户画像沉淀偏好灵魂档案塑造人格。Hermes 会在会话中持续读取这些长期记忆。', 'Notes store facts, profile captures preferences, and soul shapes persona. Hermes continuously reads these persistent memories during conversations.', '筆記記錄事實用戶畫像沉澱偏好靈魂檔案塑造人格。Hermes 會在會話中持續讀取這些長期記憶。'),
memoryFiles: _('记忆文件', 'Memory Files', '記憶檔案'),
memoryFilled: _('已填写', 'Filled', '已填寫'),
memoryTotalWords: _('总词数', 'Total Words', '總詞數'),
memoryLatest: _('最近更新', 'Latest Update', '最近更新'),
memorySoul: _('灵魂档案', 'Soul', '靈魂檔案'),
memoryNotesDesc: _('Agent 的笔记与事实备忘——会话间持续累积的知识。', 'Agent\'s notes and factual memories — knowledge accumulated across sessions.', 'Agent 的筆記與事實備忘——會話間持續累積的知識。'),
memoryProfileDesc: _('用户偏好、身份、背景信息——每次对话都会参考。', 'User preferences, identity, context — referenced in every conversation.', '用戶偏好、身份、背景資訊——每次對話都會參考。'),
memorySoulDesc: _('Agent 的人格、价值观、说话风格——长期塑造。', 'Agent persona, values, voice — shaped over time.', 'Agent 的人格、價值觀、說話風格——長期塑造。'),
memoryWords: _('词', 'words', '詞'),
memoryChars: _('字符', 'chars', '字元'),
memoryJustNow: _('刚刚', 'just now', '剛剛'),
memoryMinAgo: _('{n} 分钟前', '{n}m ago', '{n} 分鐘前'),
memoryHrAgo: _('{n} 小时前', '{n}h ago', '{n} 小時前'),
// 其它页面
hermesServicesTitle: _('Hermes 服务', 'Hermes Services', 'Hermes 服務'),
servicesDesc: _('集中查看 Gateway 运行状态、连接目标、健康检查与维护操作。', 'Inspect gateway status, connection target, health checks, and maintenance actions in one place.', '集中查看 Gateway 運行狀態、連接目標、健康檢查與維護操作。'),
servicesInstallState: _('安装状态', 'Install State', '安裝狀態'),
servicesInstallType: _('安装方式', 'Install Method', '安裝方式'),
servicesInstalled: _('已安装', 'Installed', '已安裝'),
servicesMissing: _('未安装', 'Not Installed', '未安裝'),
servicesUnknown: _('未知', 'Unknown', '未知'),
servicesPath: _('CLI 路径', 'CLI Path', 'CLI 路徑'),
servicesHome: _('主目录', 'Home Directory', '主目錄'),
servicesConfigFiles: _('关键配置文件', 'Key Config Files', '關鍵配置檔'),
servicesNotSet: _('未设置', 'Not set', '未設置'),
servicesCustomUrl: _('自定义 Gateway URL', 'Custom Gateway URL', '自定義 Gateway URL'),
servicesWslHint: _('请先在 WSL2 中启动 Gateway然后再切换。', 'Start the gateway in WSL2 before switching.', '請先在 WSL2 中啟動 Gateway再切換。'),
servicesDockerHint: _('Docker 场景请填写容器对外可访问的 Gateway URL。', 'For Docker, enter the externally reachable gateway URL.', 'Docker 場景請填寫容器對外可訪問的 Gateway URL。'),
servicesDetectFirst: _('请先探测环境并确保目标 Gateway 已启动。', 'Detect environments first and make sure the target gateway is running.', '請先探測環境並確認目標 Gateway 已啟動。'),
servicesHealthTitle: _('健康检查', 'Health Check', '健康檢查'),
servicesRawJson: _('查看原始 JSON', 'View Raw JSON', '查看原始 JSON'),
servicesNoHealth: _('Gateway 未运行或暂时无法返回健康数据。', 'The gateway is offline or health data is temporarily unavailable.', 'Gateway 未運行或暫時無法返回健康資料。'),
servicesMaintenance: _('维护操作', 'Maintenance', '維護操作'),
servicesInstall: _('安装 Hermes', 'Install Hermes', '安裝 Hermes'),
servicesRepairInstall: _('修复/重装 Hermes', 'Repair / Reinstall Hermes', '修復/重裝 Hermes'),
servicesUpgrade: _('升级 Hermes', 'Upgrade Hermes', '升級 Hermes'),
servicesUninstall: _('卸载 Hermes', 'Uninstall Hermes', '解除安裝 Hermes'),
servicesUninstallClean: _('卸载并清理配置', 'Uninstall and Clean Config', '解除安裝並清理配置'),
servicesOpenLogs: _('打开日志', 'Open Logs', '打開日誌'),
servicesOpenConfig: _('打开配置', 'Open Config', '打開配置'),
servicesOpenEnv: _('打开环境变量', 'Open Environment', '打開環境變數'),
servicesOpenSetup: _('返回安装向导', 'Open Setup', '返回安裝精靈'),
servicesEyebrow: _('HERMES AGENT · 服务中心', 'HERMES AGENT · SERVICES', 'HERMES AGENT · 服務中心'),
servicesReadyTag: _('就绪', 'READY', '就緒'),
servicesDefaultDistro: _('默认发行版', 'default distro', '預設發行版'),
servicesContainerCount: _('{n} 个容器', '{n} containers', '{n} 個容器'),
servicesConfirmInstall: _('确认安装 Hermes Agent将通过 uv 安装最新版本及 Web 扩展。', 'Install Hermes Agent? The latest version and Web extensions will be installed via uv.', '確認安裝 Hermes Agent將透過 uv 安裝最新版本及 Web 擴展。'),
servicesConfirmRepairInstall: _('确认修复/重装 Hermes Agent将保留配置并重新安装最新版本及 Web 扩展。', 'Repair / reinstall Hermes Agent? Config will be kept and the latest version with Web extensions will be reinstalled.', '確認修復/重裝 Hermes Agent將保留配置並重新安裝最新版本及 Web 擴展。'),
servicesConfirmUpgrade: _('确认升级 Hermes Agent升级期间可能短暂中断 Gateway。', 'Upgrade Hermes Agent? The gateway may be briefly interrupted during the upgrade.', '確認升級 Hermes Agent升級期間 Gateway 可能短暫中斷。'),
servicesConfirmUninstall: _('确认卸载 Hermes Agent保留现有配置文件。', 'Uninstall Hermes Agent? Existing config files will be kept.', '確認解除安裝 Hermes Agent會保留現有配置檔。'),
servicesConfirmUninstallClean: _('确认卸载 Hermes Agent 并删除配置文件?此操作不可撤销。', 'Uninstall Hermes Agent and remove config files? This cannot be undone.', '確認解除安裝 Hermes Agent 並刪除配置檔?此操作無法撤銷。'),
servicesUpgradeDone: _('Hermes Agent 升级完成', 'Hermes Agent upgraded', 'Hermes Agent 升級完成'),
servicesUninstallDone: _('Hermes Agent 已卸载', 'Hermes Agent uninstalled', 'Hermes Agent 已解除安裝'),
servicesMaintenanceStopGateway: _('正在停止 Gateway释放 Hermes 可执行文件...', 'Stopping gateway to release Hermes executable...', '正在停止 Gateway釋放 Hermes 可執行檔...'),
servicesMaintenanceGatewayStopped: _('Gateway 已停止', 'Gateway stopped', 'Gateway 已停止'),
servicesMaintenanceGatewayStopWarn: _('Gateway 停止失败,继续执行:{error}', 'Failed to stop gateway, continuing: {error}', 'Gateway 停止失敗,繼續執行:{error}'),
servicesMaintenanceRestartGateway: _('正在重新启动 Gateway...', 'Restarting gateway...', '正在重新啟動 Gateway...'),
servicesMaintenanceGatewayRestarted: _('Gateway 已重新启动', 'Gateway restarted', 'Gateway 已重新啟動'),
servicesMaintenanceGatewayRestartWarn: _('Gateway 重启失败,请稍后手动启动:{error}', 'Gateway restart failed; start it manually later: {error}', 'Gateway 重新啟動失敗,請稍後手動啟動:{error}'),
hermesConfigTitle: _('Hermes 配置', 'Hermes Config', 'Hermes 配置'),
hermesChannelsTitle: _('Hermes 渠道', 'Hermes Channels', 'Hermes 頻道'),
hermesChannelsEyebrow: _('HERMES AGENT · 消息渠道', 'HERMES AGENT · MESSAGING', 'HERMES AGENT · 訊息頻道'),
hermesChannelSummary: _('渠道配置摘要', 'Channel configuration summary', '頻道設定摘要'),
hermesChannelEnabledCount: _('已启用', 'Enabled', '已啟用'),
hermesChannelConfiguredCount: _('已填写凭证', 'Credentials set', '已填寫憑證'),
hermesChannelRuntimeWrite: _('写入位置', 'Writes to', '寫入位置'),
hermesChannelRuntimeWriteValue: _('config.yaml + .env', 'config.yaml + .env', 'config.yaml + .env'),
hermesChannelPlatforms: _('渠道', 'Platforms', '頻道'),
hermesChannelTelegram: _('Telegram', 'Telegram', 'Telegram'),
hermesChannelDiscord: _('Discord', 'Discord', 'Discord'),
hermesChannelSlack: _('Slack', 'Slack', 'Slack'),
hermesChannelFeishu: _('飞书 / Lark', 'Feishu / Lark', '飛書 / Lark'),
hermesChannelDingTalk: _('钉钉', 'DingTalk', '釘釘'),
hermesChannelTeams: _('Microsoft Teams', 'Microsoft Teams', 'Microsoft Teams'),
hermesChannelGoogleChat: _('Google Chat', 'Google Chat', 'Google Chat'),
hermesChannelIrc: _('IRC', 'IRC', 'IRC'),
hermesChannelLine: _('LINE', 'LINE', 'LINE'),
hermesChannelSimpleX: _('SimpleX', 'SimpleX', 'SimpleX'),
hermesChannelTelegramDesc: _('通过 Telegram Bot 与 Hermes 对话,适合个人私聊和小群组。', 'Talk to Hermes through a Telegram bot for direct chats and small groups.', '透過 Telegram Bot 與 Hermes 對話,適合個人私聊和小群組。'),
hermesChannelDiscordDesc: _('连接 Discord Bot支持服务器频道和线程里的 Agent 会话。', 'Connect a Discord bot for server channels and threaded agent sessions.', '連接 Discord Bot支援伺服器頻道和討論串裡的 Agent 會話。'),
hermesChannelSlackDesc: _('连接 Slack Bot可用于团队频道、私信和工作流通知。', 'Connect a Slack bot for team channels, direct messages, and workflow notifications.', '連接 Slack Bot可用於團隊頻道、私訊和工作流通知。'),
hermesChannelFeishuDesc: _('连接飞书或 Lark 应用,支持长连接和 Webhook 两种模式。', 'Connect a Feishu or Lark app with WebSocket or webhook mode.', '連接飛書或 Lark 應用,支援長連線和 Webhook 兩種模式。'),
hermesChannelDingTalkDesc: _('连接钉钉机器人应用,支持群聊白名单、用户白名单和 @Bot 唤醒策略。', 'Connect a DingTalk robot app with group allowlists, user allowlists, and @mention wake rules.', '連接釘釘機器人應用,支援群聊白名單、使用者白名單和 @Bot 喚醒策略。'),
hermesChannelTeamsDesc: _('连接 Microsoft Teams Bot支持服务 URL、用户白名单和默认频道。', 'Connect a Microsoft Teams bot with service URL, user allowlists, and a home channel.', '連接 Microsoft Teams Bot支援服務 URL、使用者白名單和預設頻道。'),
hermesChannelGoogleChatDesc: _('连接 Google Chat Pub/Sub 应用,支持项目订阅、服务账号和空间白名单。', 'Connect a Google Chat Pub/Sub app with project subscriptions, service accounts, and space allowlists.', '連接 Google Chat Pub/Sub 應用,支援專案訂閱、服務帳號和空間白名單。'),
hermesChannelIrcDesc: _('连接 IRC 网络,支持 TLS、NickServ 密码、频道和用户白名单。', 'Connect an IRC network with TLS, NickServ passwords, channels, and user allowlists.', '連接 IRC 網路,支援 TLS、NickServ 密碼、頻道和使用者白名單。'),
hermesChannelLineDesc: _('连接 LINE Messaging API支持 Webhook、用户、群组和聊天室白名单。', 'Connect LINE Messaging API with webhook, user, group, and room allowlists.', '連接 LINE Messaging API支援 Webhook、使用者、群組和聊天室白名單。'),
hermesChannelSimpleXDesc: _('连接 SimpleX WebSocket 网关,支持联系人白名单和默认会话。', 'Connect a SimpleX WebSocket gateway with contact allowlists and a home conversation.', '連接 SimpleX WebSocket 閘道,支援聯絡人白名單和預設會話。'),
hermesChannelEnabled: _('已启用', 'Enabled', '已啟用'),
hermesChannelDisabled: _('未启用', 'Disabled', '未啟用'),
hermesChannelSave: _('保存渠道', 'Save Channel', '儲存頻道'),
hermesChannelSaving: _('保存中...', 'Saving...', '儲存中...'),
hermesChannelSaved: _('渠道配置已保存,重启 Hermes Gateway 后生效。', 'Channel configuration saved. Restart Hermes Gateway to apply it.', '頻道設定已儲存,重啟 Hermes Gateway 後生效。'),
hermesChannelLoadFailed: _('加载渠道配置失败', 'Failed to load channel configuration', '載入頻道設定失敗'),
hermesChannelSaveFailed: _('保存渠道配置失败', 'Failed to save channel configuration', '儲存頻道設定失敗'),
hermesChannelCredentials: _('凭证', 'Credentials', '憑證'),
hermesChannelAccessPolicy: _('访问策略', 'Access Policy', '存取策略'),
hermesChannelRuntimeBehavior: _('运行行为', 'Runtime Behavior', '執行行為'),
hermesChannelBotToken: _('Bot Token', 'Bot Token', 'Bot Token'),
hermesChannelDiscordHomeChannel: _('默认频道 ID', 'Home Channel ID', '預設頻道 ID'),
hermesChannelDiscordHomeChannelName: _('默认频道名称', 'Home Channel Name', '預設頻道名稱'),
hermesChannelDiscordFreeResponseChannels: _('免 @ 响应频道', 'Free Response Channels', '免 @ 回應頻道'),
hermesChannelDiscordAllowedChannels: _('允许频道', 'Allowed Channels', '允許頻道'),
hermesChannelDiscordIgnoredChannels: _('忽略频道', 'Ignored Channels', '忽略頻道'),
hermesChannelDiscordNoThreadChannels: _('不自动建线程频道', 'No-thread Channels', '不自動建立討論串頻道'),
hermesChannelDiscordChannelListPh: _('每行或逗号分隔一个 Discord 频道 ID。', 'One Discord channel ID per line or comma-separated.', '每行或逗號分隔一個 Discord 頻道 ID。'),
hermesChannelDiscordFreeResponseChannelsPh: _('这些频道内无需 @Bot 即可响应;支持频道或父频道 ID。', 'Messages in these channels do not require @mention; channel or parent channel IDs are supported.', '這些頻道內無需 @Bot 即可回應;支援頻道或父頻道 ID。'),
hermesChannelDiscordHistoryBackfillLimit: _('上下文回填条数', 'History Backfill Limit', '上下文回填筆數'),
hermesChannelDiscordReplyToMode: _('回复模式', 'Reply Mode', '回覆模式'),
hermesChannelDiscordReplyFirst: _('仅首条回复引用', 'Reply to first message', '僅首則回覆引用'),
hermesChannelDiscordReplyAll: _('每条回复都引用', 'Reply to every message', '每則回覆都引用'),
hermesChannelDiscordReplyOff: _('不引用回复', 'No reply reference', '不引用回覆'),
hermesChannelTelegramReplyToMode: _('Telegram 回复引用', 'Telegram Reply Reference', 'Telegram 回覆引用'),
hermesChannelTelegramReplyFirst: _('仅首条回复引用', 'Reply to first message', '僅首則回覆引用'),
hermesChannelTelegramReplyAll: _('每条回复都引用', 'Reply to every message', '每則回覆都引用'),
hermesChannelTelegramReplyOff: _('不引用回复', 'No reply reference', '不引用回覆'),
hermesChannelTelegramGuestMode: _('允许被 @ 时临时响应非白名单群组', 'Allow explicit @mentions from non-allowlisted groups', '允許被 @ 時臨時回應非白名單群組'),
hermesChannelTelegramDisableLinkPreviews: _('关闭链接预览', 'Disable link previews', '關閉連結預覽'),
hermesChannelDiscordAutoThread: _('自动创建线程', 'Auto-create threads', '自動建立討論串'),
hermesChannelDiscordReactions: _('启用表情反馈', 'Enable reactions', '啟用表情回饋'),
hermesChannelDiscordThreadRequireMention: _('线程内也要求 @Bot', 'Require @mention in threads', '討論串內也要求 @Bot'),
hermesChannelDiscordHistoryBackfill: _('触发时回填频道上下文', 'Backfill channel context on trigger', '觸發時回填頻道上下文'),
hermesChannelSlackBotToken: _('Bot Token (xoxb)', 'Bot Token (xoxb)', 'Bot Token (xoxb)'),
hermesChannelSlackAppToken: _('App Token (xapp)', 'App Token (xapp)', 'App Token (xapp)'),
hermesChannelSigningSecret: _('Signing Secret', 'Signing Secret', 'Signing Secret'),
hermesChannelWebhookPath: _('Webhook 路径', 'Webhook Path', 'Webhook 路徑'),
hermesChannelFeishuAppId: _('App ID', 'App ID', 'App ID'),
hermesChannelFeishuAppSecret: _('App Secret', 'App Secret', 'App Secret'),
hermesChannelDingTalkClientId: _('Client ID / App Key', 'Client ID / App Key', 'Client ID / App Key'),
hermesChannelDingTalkClientSecret: _('Client Secret', 'Client Secret', 'Client Secret'),
hermesChannelTeamsClientId: _('Client ID', 'Client ID', 'Client ID'),
hermesChannelTeamsClientSecret: _('Client Secret', 'Client Secret', 'Client Secret'),
hermesChannelTeamsTenantId: _('Tenant ID', 'Tenant ID', 'Tenant ID'),
hermesChannelGoogleProjectId: _('Project ID', 'Project ID', 'Project ID'),
hermesChannelGoogleSubscriptionName: _('订阅名称', 'Subscription Name', '訂閱名稱'),
hermesChannelGoogleServiceAccount: _('服务账号 JSON / 文件路径', 'Service Account JSON / Path', '服務帳號 JSON / 檔案路徑'),
hermesChannelGoogleServiceAccountPh: _('可填写 JSON 内容或凭证文件路径。', 'Enter JSON content or a credentials file path.', '可填寫 JSON 內容或憑證檔案路徑。'),
hermesChannelIrcServer: _('服务器', 'Server', '伺服器'),
hermesChannelIrcNickname: _('昵称', 'Nickname', '暱稱'),
hermesChannelIrcChannel: _('频道', 'Channel', '頻道'),
hermesChannelIrcServerPassword: _('服务器密码', 'Server Password', '伺服器密碼'),
hermesChannelIrcNickservPassword: _('NickServ 密码', 'NickServ Password', 'NickServ 密碼'),
hermesChannelIrcUseTls: _('启用 TLS', 'Use TLS', '啟用 TLS'),
hermesChannelLineAccessToken: _('Channel Access Token', 'Channel Access Token', 'Channel Access Token'),
hermesChannelLineSecret: _('Channel Secret', 'Channel Secret', 'Channel Secret'),
hermesChannelLineAllowedGroups: _('允许群组', 'Allowed Groups', '允許群組'),
hermesChannelLineAllowedRooms: _('允许聊天室', 'Allowed Rooms', '允許聊天室'),
hermesChannelLineSlowResponse: _('慢响应阈值(秒)', 'Slow Response Threshold (seconds)', '慢回應閾值(秒)'),
hermesChannelSimpleXWsUrl: _('WebSocket 地址', 'WebSocket URL', 'WebSocket 位址'),
hermesChannelPort: _('端口', 'Port', '連接埠'),
hermesChannelHost: _('监听地址', 'Host', '監聽位址'),
hermesChannelPublicUrl: _('公开 URL', 'Public URL', '公開 URL'),
hermesChannelServiceUrl: _('服务 URL', 'Service URL', '服務 URL'),
hermesChannelAllowedUsers: _('允许用户', 'Allowed Users', '允許使用者'),
hermesChannelAllowAllUsers: _('允许所有用户', 'Allow all users', '允許所有使用者'),
hermesChannelHomeChannel: _('默认会话 / 频道', 'Home Conversation / Channel', '預設會話 / 頻道'),
hermesChannelHomeChannelName: _('默认会话名称', 'Home Conversation Name', '預設會話名稱'),
hermesChannelTeamsAllowedUsersPh: _('每行或逗号分隔一个 Microsoft Entra 用户 ID。', 'One Microsoft Entra user ID per line or comma-separated.', '每行或逗號分隔一個 Microsoft Entra 使用者 ID。'),
hermesChannelGoogleAllowedUsersPh: _('每行或逗号分隔一个 Google Chat 用户或空间 ID。', 'One Google Chat user or space ID per line or comma-separated.', '每行或逗號分隔一個 Google Chat 使用者或空間 ID。'),
hermesChannelIrcAllowedUsersPh: _('每行或逗号分隔一个 IRC nick。', 'One IRC nick per line or comma-separated.', '每行或逗號分隔一個 IRC nick。'),
hermesChannelLineAllowedUsersPh: _('每行或逗号分隔一个 LINE 用户 ID。', 'One LINE user ID per line or comma-separated.', '每行或逗號分隔一個 LINE 使用者 ID。'),
hermesChannelLineAllowedGroupsPh: _('每行或逗号分隔一个 LINE 群组 ID。', 'One LINE group ID per line or comma-separated.', '每行或逗號分隔一個 LINE 群組 ID。'),
hermesChannelLineAllowedRoomsPh: _('每行或逗号分隔一个 LINE 聊天室 ID。', 'One LINE room ID per line or comma-separated.', '每行或逗號分隔一個 LINE 聊天室 ID。'),
hermesChannelSimpleXAllowedUsersPh: _('每行或逗号分隔一个 SimpleX 联系人或群组标识。', 'One SimpleX contact or group identifier per line or comma-separated.', '每行或逗號分隔一個 SimpleX 聯絡人或群組識別。'),
hermesChannelFeishuDomain: _('区域', 'Region', '區域'),
hermesChannelFeishuDomainCn: _('中国大陆feishu', 'Mainland China (feishu)', '中國大陸feishu'),
hermesChannelFeishuDomainIntl: _('国际版lark', 'International (lark)', '國際版lark'),
hermesChannelConnectionMode: _('连接模式', 'Connection Mode', '連線模式'),
hermesChannelReactions: _('表情通知', 'Reaction Notifications', '表情通知'),
hermesChannelReactionsOff: _('关闭', 'Off', '關閉'),
hermesChannelReactionsBasic: _('基础通知', 'Basic Notifications', '基礎通知'),
hermesChannelTypingIndicator: _('显示正在输入状态', 'Show typing indicator', '顯示正在輸入狀態'),
hermesChannelResolveSenderNames: _('解析发送者姓名', 'Resolve sender names', '解析傳送者姓名'),
hermesChannelDmPolicy: _('私聊策略', 'Direct Message Policy', '私聊策略'),
hermesChannelGroupPolicy: _('群组策略', 'Group Policy', '群組策略'),
hermesChannelPolicyPair: _('配对后允许', 'Pair before access', '配對後允許'),
hermesChannelPolicyOpen: _('开放', 'Open', '開放'),
hermesChannelPolicyAllowlist: _('白名单', 'Allowlist', '白名單'),
hermesChannelPolicyDisabled: _('禁用', 'Disabled', '停用'),
hermesChannelAllowFrom: _('私聊白名单', 'Direct Allowlist', '私聊白名單'),
hermesChannelGroupAllowFrom: _('群组白名单', 'Group Allowlist', '群組白名單'),
hermesChannelAllowFromPlaceholder: _('每行或逗号分隔一个用户 ID开放策略可留空。', 'One user ID per line or comma-separated. Leave empty for open policy.', '每行或逗號分隔一個使用者 ID開放策略可留空。'),
hermesChannelGroupAllowFromPlaceholder: _('每行或逗号分隔一个群组 / 频道 ID。', 'One group or channel ID per line or comma-separated.', '每行或逗號分隔一個群組 / 頻道 ID。'),
hermesChannelRequireMention: _('群组消息需要 @Bot 才响应', 'Require @mention in groups', '群組訊息需要 @Bot 才回應'),
hermesChannelDisplayBehavior: _('显示与进度', 'Display & Progress', '顯示與進度'),
hermesChannelDisplayHint: _('这些设置只影响当前渠道的推理展示、工具进度和流式输出覆盖;“跟随全局”不会写入平台级流式开关。', 'These settings only affect reasoning display, tool progress, and streaming override for the current platform. “Inherit global” does not write a platform streaming override.', '這些設定只影響目前頻道的推理顯示、工具進度和串流輸出覆蓋;「跟隨全域」不會寫入平台級串流開關。'),
hermesChannelDisplayToolProgress: _('工具进度', 'Tool Progress', '工具進度'),
hermesChannelDisplayToolProgressOff: _('关闭', 'Off', '關閉'),
hermesChannelDisplayToolProgressNew: _('仅新工具', 'New tools only', '僅新工具'),
hermesChannelDisplayToolProgressAll: _('全部工具', 'All tools', '全部工具'),
hermesChannelDisplayToolProgressVerbose: _('详细', 'Verbose', '詳細'),
hermesChannelDisplayStreaming: _('流式输出', 'Streaming', '串流輸出'),
hermesChannelDisplayStreamingInherit: _('跟随全局', 'Inherit global', '跟隨全域'),
hermesChannelDisplayStreamingOn: _('开启', 'On', '開啟'),
hermesChannelDisplayStreamingOff: _('关闭', 'Off', '關閉'),
hermesChannelDisplayToolPreviewLength: _('工具预览长度', 'Tool Preview Length', '工具預覽長度'),
hermesChannelDisplayShowReasoning: _('显示推理过程', 'Show reasoning', '顯示推理過程'),
hermesChannelDisplayCleanupProgress: _('完成后清理进度', 'Clean up progress after completion', '完成後清理進度'),
hermesChannelRestartHint: _('保存会将访问策略等偏好写入 config.yaml并将 Bot Token、App Secret、Client Secret 及 Hermes 运行时兼容环境变量同步到 .env。Hermes Gateway 读取启动时配置,修改后请重启 Gateway。', 'Saving writes access preferences to config.yaml and syncs Bot Token, App Secret, Client Secret, and Hermes runtime compatibility variables to .env. Hermes Gateway reads them on startup, so restart the gateway after changes.', '儲存會將存取策略等偏好寫入 config.yaml並將 Bot Token、App Secret、Client Secret 及 Hermes 執行時相容環境變數同步到 .env。Hermes Gateway 於啟動時讀取設定,修改後請重啟 Gateway。'),
extensionsEyebrow: _('HERMES AGENT · 扩展', 'HERMES AGENT · EXTENSIONS', 'HERMES AGENT · 擴展'),
extensionsTitle: _('文档 / 插件 / 主题', 'Docs / Plugins / Themes', '文件 / 插件 / 主題'),
extensionsDesc: _('集中管理 Dashboard 扩展清单、视觉主题和使用洞察。', 'Manage dashboard extension manifests, visual themes and usage intelligence.', '集中管理 Dashboard 擴展清單、視覺主題和使用洞察。'),
extensionsRefresh: _('刷新', 'Refresh', '刷新'),
extensionsRescan: _('重扫插件', 'Rescan Plugins', '重掃插件'),
extensionsDocs: _('文档', 'Documentation', '文件'),
extensionsAnalytics: _('分析快照', 'Analytics snapshot', '分析快照'),
extensionsSessions: _('会话', 'Sessions', '會話'),
extensionsTokens: _('Tokens', 'Tokens', 'Tokens'),
extensionsCost: _('费用', 'Cost', '費用'),
extensionsThemes: _('Dashboard 主题', 'Dashboard themes', 'Dashboard 主題'),
extensionsActive: _('当前', 'active', '目前'),
extensionsNoThemes: _('未发现主题。', 'No themes discovered.', '未發現主題。'),
extensionsPlugins: _('Dashboard 插件', 'Dashboard plugins', 'Dashboard 插件'),
extensionsManifestCount: _('{n} 个清单', '{n} manifest(s)', '{n} 個清單'),
extensionsNoDescription: _('暂无描述', 'No description', '暫無描述'),
extensionsNoPlugins: _('未在 ~/.hermes/plugins 中发现 Dashboard 插件清单。', 'No dashboard plugin manifests found in ~/.hermes/plugins.', '未在 ~/.hermes/plugins 中發現 Dashboard 插件清單。'),
extensionsThemeSaved: _('Dashboard 主题已保存', 'Dashboard theme saved', 'Dashboard 主題已儲存'),
extensionsPluginsRescanned: _('插件清单已重扫', 'Plugin manifests rescanned', '插件清單已重掃'),
extensionsDocGettingStarted: _('快速开始', 'Getting Started', '快速開始'),
extensionsDocCron: _('Cron 自动化', 'Cron Automation', 'Cron 自動化'),
extensionsDocSkills: _('Skills', 'Skills', 'Skills'),
extensionsDocDashboard: _('Dashboard', 'Dashboard', 'Dashboard'),
comingSoonPhase2: _('即将在 Phase 2 中推出', 'Coming in Phase 2', '即將在 Phase 2 中推出'),
// ============================================================
// 心甜ClawXintian Claw· 产品宣传页
// ============================================================
xintianNavHome: _('产品首页', 'Home', '產品首頁', 'ホーム', '홈', 'Trang chủ', 'Inicio', 'Início', 'Главная', 'Accueil', 'Startseite'),
// Hero
xtHeroEyebrow: _('心甜Claw · 跨平台 AI 省心助手', 'Xintian Claw · Worry-free AI Companion', '心甜Claw · 跨平台 AI 省心助手', '心甜Claw · 手間いらずの AI コンパニオン', '心甜Claw · 근심 없는 AI 동반자'),
xtHeroTitleLead: _('WINDOWS 安装即用', 'READY FOR WINDOWS', 'WINDOWS 安裝即用', 'WINDOWS 用すぐに使える', 'WINDOWS에서 바로 사용'),
xtHeroTitleA: _('不只是对话,是会', 'Not just chat —', '不只是對話,是會'),
xtHeroTitleB: _('记得你', 'an AI that remembers you', '記得你'),
xtHeroTitleC: _('的 AI 管家', '.', '的 AI 管家'),
xtHeroSub: _(
'桌面客户端 + SaaS 后端 + 长期记忆 + 多渠道,一次安装,让 AI 真正长期为你干活。',
'Desktop client, SaaS backend, persistent memory, and multi-channel delivery — install once and let AI keep working for you.',
'桌面客戶端 + SaaS 後端 + 長期記憶 + 多頻道,一次安裝,讓 AI 真正長期為你幹活。',
),
xtCtaDownloadWin: _('下载 Windows 版', 'Download for Windows', '下載 Windows 版', 'Windows 版をダウンロード', 'Windows 버전 다운로드'),
xtCtaVisitSite: _('访问官网', 'Visit website', '訪問官網', '公式サイトへ', '공식 웹사이트'),
xtHeroPlatformWin: _('Windows 10 / 11 · x64', 'Windows 10 / 11 · x64', 'Windows 10 / 11 · x64'),
xtHeroPlatformRest: _('macOS / Linux 即将上线', 'macOS / Linux coming soon', 'macOS / Linux 即將上線', 'macOS / Linux 近日公開', 'macOS / Linux 곧 출시'),
xtHeroFreeTrial: _('预置 2 个免费 Agent', '2 free agents included', '預置 2 個免費 Agent', '2 つの無料エージェント付き', '무료 에이전트 2개 포함'),
// Features 区域
xtFeaturesEyebrow: _('核心能力', 'CORE CAPABILITIES', '核心能力'),
xtFeaturesTitle: _('八种能力,一个助手', 'Eight capabilities, one companion', '八種能力,一個助手'),
xtFeaturesSub: _(
'从聊天、记忆到定时自动化、多渠道通知——把 AI 做到生产可用。',
'From chat and memory to scheduled automation and multi-channel delivery — AI ready for real work.',
'從聊天、記憶到定時自動化、多頻道通知——把 AI 做到生產可用。',
),
// 8 个特性卡片
xtFeatChatTitle: _('流式对话 × 思维链', 'Streaming chat × CoT', '串流對話 × 思維鏈'),
xtFeatChatDesc: _('工具调用与思考过程全程可见Markdown / 代码 / 表格原生渲染。', 'Full visibility into tool calls and reasoning, with native Markdown / code / table rendering.', '工具調用與思考過程全程可見Markdown / 程式碼 / 表格原生渲染。'),
xtFeatAgentTitle: _('多智能体 Agent 体系', 'Multi-agent roster', '多智能體 Agent 體系'),
xtFeatAgentDesc: _('预置心甜 + 晴辰两个助手,独立人设与记忆,可随时自定义。', 'Bundled Xintian & Qingchen assistants, each with its own persona and memory — fully customizable.', '預置心甜 + 晴辰兩個助手,獨立人設與記憶,可隨時自定義。'),
xtFeatMemoryTitle: _('心甜智脑 · 长期记忆', 'Sweet Brain · Long-term memory', '心甜智腦 · 長期記憶'),
xtFeatMemoryDesc: _('事实 + 对话双层记忆,跨渠道共享,桌面说过的话微信也能想起来。', 'Dual-layer memory (facts + conversations) shared across channels — it remembers what you said, everywhere.', '事實 + 對話雙層記憶,跨頻道共享,桌面說過的話微信也能想起來。'),
xtFeatRagTitle: _('知识库 × RAG', 'Knowledge base × RAG', '知識庫 × RAG'),
xtFeatRagDesc: _('拖拽上传 PDF / Word / Markdown回答自动附带引用与跳转链接。', 'Drag-and-drop PDF / Word / Markdown — answers come with citations and jump links.', '拖放上傳 PDF / Word / Markdown回答自動附帶引用與跳轉連結。'),
xtFeatCronTitle: _('定时任务 × 后台任务', 'Scheduled & background tasks', '定時任務 × 背景任務'),
xtFeatCronDesc: _('到点自动跑,长调研一轮一轮来,进度条可暂停可恢复。', 'Cron-triggered runs and multi-round background research with pause/resume progress.', '到點自動跑,長調研一輪一輪來,進度條可暫停可恢復。'),
xtFeatSkillsTitle: _('技能中心 · SkillForge', 'Skill Hub · SkillForge', '技能中心 · SkillForge'),
xtFeatSkillsDesc: _('把常用流程打包成技能 @ 调用,内置抓取 / 日报 / 总结。', 'Package prompts into reusable skills — invoke with @, with built-in scraping, reporting, summarization.', '把常用流程打包成技能 @ 調用,內建抓取 / 日報 / 總結。'),
xtFeatChannelTitle: _('多消息渠道', 'Multi-channel delivery', '多訊息頻道'),
xtFeatChannelDesc: _('飞书 / 微信 / Telegram 等消息渠道互通,一套记忆跟你到每个对话窗。', 'Feishu / WeChat / Telegram all connected — one memory follows you to every conversation.', '飛書 / 微信 / Telegram 等訊息頻道互通,一套記憶跟你到每個對話窗。'),
xtFeatOfflineTitle: _('离线 × 本地优先', 'Offline × local-first', '離線 × 本地優先'),
xtFeatOfflineDesc: _('核心数据存本地 ~/.xintian-claw断网队列补发多后端容灾。', 'Core data stored locally at ~/.xintian-claw, offline queue + multi-backend failover.', '核心資料存本地 ~/.xintian-claw斷網佇列補發多後端容災。'),
// Compare 区域
xtCompareEyebrow: _('产品定位', 'POSITIONING', '產品定位'),
xtCompareTitle: _('同一份心甜 · 不同的打开方式', 'One Xintian, three ways to open it', '同一份心甜 · 不同的打開方式'),
xtCompareSub: _(
'根据你的身份选择最合适的入口:开发者用框架、工程师用 Python、普通用户用桌面版。',
'Pick the entrance that fits you: framework for developers, Python for engineers, desktop client for everyone else.',
'根據你的身份選擇最合適的入口:開發者用框架、工程師用 Python、普通使用者用桌面版。',
),
xtComparePosA: _('开发者 / 架构师', 'DEVELOPER / ARCHITECT', '開發者 / 架構師'),
xtCompareADesc: _('完整 Agent 框架源码,支持自托管、插件扩展,适合深度定制。', 'Full Agent framework source with self-hosting and plugin extensions — for deep customization.', '完整 Agent 框架原始碼,支援自託管、外掛擴充,適合深度自訂。'),
xtCompareAForWho: _('面向团队与工程师', 'For teams and engineers', '面向團隊與工程師'),
xtComparePosB: _('Python 开发者', 'PYTHON DEVELOPER', 'Python 開發者'),
xtCompareBDesc: _('轻量级 Agent 框架,工具调用能力强,一键 uv 安装,快速集成。', 'Lightweight Agent framework with strong tool-calling, one-click uv install, fast integration.', '輕量級 Agent 框架,工具呼叫能力強,一鍵 uv 安裝,快速整合。'),
xtCompareBForWho: _('面向 Python 工程师', 'For Python engineers', '面向 Python 工程師'),
xtComparePosC: _('所有普通用户', 'EVERYONE', '所有普通使用者'),
xtCompareCTitle: _('心甜Claw', 'Xintian Claw', '心甜Claw'),
xtCompareCDesc: _('Windows 双击安装即可用,内置 Agent 与记忆,不写一行代码也能上手。', 'Double-click install on Windows — agents and memory out of the box, zero code required.', 'Windows 雙擊安裝即可用,內建 Agent 與記憶,不寫一行程式碼也能上手。'),
xtCompareCForWho: _('面向日常使用者', 'For everyday users', '面向日常使用者'),
xtCompareRecommend: _('推荐', 'RECOMMENDED', '推薦'),
// CTA 区域
xtCtaEyebrow: _('立即开始', 'GET STARTED', '立即開始'),
xtCtaTitle: _('今天装上 · 明天就离不开', 'Install today, depend on it tomorrow', '今天裝上 · 明天就離不開'),
xtCtaSub: _(
'下载 Windows 安装包、双击运行,登录账号即可开始使用。无需配置 Python、无需命令行。',
'Download the Windows installer, double-click, sign in — ready to chat. No Python, no terminal.',
'下載 Windows 安裝包、雙擊執行,登入帳號即可開始使用。無需配置 Python、無需命令列。',
),
xtBulletInstall: _('一次安装 · 自动更新', 'One-click install · auto update', '一次安裝 · 自動更新'),
xtBulletLogin: _('微信 / 邮箱登录', 'WeChat / Email sign-in', '微信 / 信箱登入'),
xtBulletSync: _('多设备记忆同步', 'Multi-device memory sync', '多裝置記憶同步'),
xtBulletSafe: _('核心数据本地加密', 'Core data encrypted locally', '核心資料本地加密'),
xtCtaPrimary: _('立即下载 Windows 版', 'Download for Windows', '立即下載 Windows 版'),
xtCtaSecondary: _('了解更多', 'Learn more', '了解更多'),
xtCtaLinkLabel: _('官网', 'WEBSITE', '官網'),
// Preview 气泡
xtPreviewGreet: _('你好呀,今天想让我帮你处理什么?', 'Hi! How can I help you today?', '你好呀,今天想讓我幫你處理什麼?'),
xtPreviewUserAsk: _('帮我盯着这条产品线的日报', 'Track the daily report of this product line', '幫我盯著這條產品線的日報'),
xtPreviewAnswer1: _('好的,已为你创建「日报追踪」定时任务。', 'Got it — created a scheduled "Daily Report" task for you.', '好的,已為你建立「日報追蹤」定時任務。'),
xtPreviewAnswer2: _('每天 18:00 推送到飞书群,记忆也会同步。', 'Posts to the Feishu group at 18:00 daily, memory stays in sync.', '每天 18:00 推送到飛書群,記憶也會同步。'),
xtPreviewFoot: _('由 心甜智脑 长期记忆支持', 'Powered by Sweet Brain long-term memory', '由 心甜智腦 長期記憶支援'),
// Footer
xtFootBrand: _('心甜Claw · 跨平台 AI 省心助手', 'Xintian Claw · Worry-free AI Companion', '心甜Claw · 跨平台 AI 省心助手'),
xtFootHome: _('官网', 'Website', '官網'),
xtFootDownload: _('下载', 'Download', '下載'),
xtFootSupport: _('帮助中心', 'Help Center', '幫助中心'),
}