Files
clawpanel/src/locales/modules/engine.js
2026-05-24 20:54:29 +08:00

1310 lines
142 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', '討論串也依成員隔離'),
hermesSessionRuntimeFootnote: _('推荐保持群聊隔离开启。关闭后,同一群/频道会共用上下文和中断状态。', 'Keeping group isolation on is recommended. Turning it off shares context and interrupt state across the same group or channel.', '建議保持群聊隔離開啟。關閉後,同一群組/頻道會共用上下文和中斷狀態。'),
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', '容器資源限制'),
hermesTerminalConfigContainerCpu: _('CPU 核数', 'CPU cores', 'CPU 核心數'),
hermesTerminalConfigContainerMemory: _('内存 MB', 'Memory MB', '記憶體 MB'),
hermesTerminalConfigContainerDisk: _('磁盘 MB', 'Disk MB', '磁碟 MB'),
hermesTerminalConfigFootnote: _('Docker 挂载启动目录会把宿主目录暴露给沙箱仅在可信项目和无人值守任务中开启SSH、镜像、环境变量等高级参数仍可在 raw YAML 中编辑。', 'Mounting the launch cwd exposes host files to the sandbox. Enable it only for trusted projects or unattended jobs. SSH, image, and env advanced fields remain editable in raw YAML.', 'Docker 掛載啟動目錄會把宿主目錄暴露給沙箱僅在可信專案和無人值守任務中開啟SSH、映像、環境變數等進階參數仍可在 raw YAML 中編輯。'),
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', '委派深度上限'),
hermesExecutionLimitsDelegationOrchestratorEnabled: _('允许中间协调 Agent', 'Allow orchestrator children', '允許中間協調 Agent'),
hermesExecutionLimitsDelegationInheritMcp: _('保留父任务 MCP 工具集', 'Inherit parent MCP toolsets', '保留父任務 MCP 工具集'),
hermesExecutionLimitsDelegationAutoApprove: _('自动批准子任务危险命令', 'Auto-approve child dangerous commands', '自動批准子任務危險命令'),
hermesExecutionLimitsFootnote: _('默认会拒绝子任务危险命令审批,适合交互式和长跑任务。只有在完全信任无人值守环境时才开启自动批准。', '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.', '預設會拒絕子任務危險命令審批,適合互動式和長跑任務。只有在完全信任無人值守環境時才啟用自動批准。'),
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 日誌調整。'),
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 中。'),
// 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', '不引用回覆'),
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', '幫助中心'),
}