// Simplified Chinese (zh).
export default {
  'brand': 'WebBrain',

  'sp.status.disconnected': '未连接',
  'sp.status.connected': '已连接 ({model})',
  'sp.status.error': '错误：{msg}',
  'sp.status.failed': '连接失败',
  'sp.btn.verbose': '切换详细工具日志',
  'sp.btn.language': '语言',
  'sp.btn.settings': '设置',
  'sp.btn.clear': '新建会话（清除历史）',
  'sp.btn.send': '发送',
  'sp.btn.stop.title': '停止代理',
  'sp.btn.stop.label': '停止',

  'sp.inspection': 'WebBrain 已开始检查此页面',

  'sp.greeting.html': '你好！我是 <strong>WebBrain</strong>。我可以阅读此页面、回答问题、点击按钮、填写表单以及执行多步骤自动化任务。',
  'sp.greeting.hint': '试试：「总结此页面」或「查找所有关于定价的链接」',
  'sp.help_message': '需要我在此页面做什么？',
  'sp.cleared_message': '会话已清除。有什么可以帮你的？',

  'sp.mode.ask': '问',
  'sp.mode.ask.title': '就页面提问 — 不做任何修改',
  'sp.mode.act': '执行',
  'sp.mode.act.title': '让 WebBrain 代你点击、输入和导航',
  'sp.mode.act.warning': '执行模式：WebBrain 将代你操作页面。请自行承担风险。',
  'sp.mode.act.confirm': '执行模式允许 WebBrain 代你点击、输入、滚动和导航。\n\n它在你已登录的浏览器会话中运行，因此在每个你登录的站点上拥有和你一样的权限。\n\n请注意观察其行为，并可随时通过 ◼ 按钮停止。\n\n是否继续？',

  'sp.input.ask_placeholder': '针对此页面随便问点什么...',
  'sp.input.act_placeholder': '告诉我在此页面要做什么...',

  'sp.activity.thinking': '思考中...',
  'sp.activity.thinking_step': '思考中（第 {step} 步）...',
  'sp.activity.continuing': '继续中...',
  'sp.activity.stopping': '正在停止...',

  'sp.copy': '复制',
  'sp.copied': '已复制！',
  'sp.copy.code.title': '复制代码',

  'sp.error_prefix': '错误：{msg}',
  'sp.stopped_by_user': '[用户已停止]',
  'sp.stopped_by_user_html': '<em>用户已停止。</em>',

  'sp.continue_bar': '已达到步骤上限（{steps} 步）。要我继续吗？',
  'sp.continue_btn': '继续',

  'sp.step.details': '详情',
  'sp.step.input_label': '输入',
  'sp.step.result_label': '结果',

  'sp.api.enabled_html': '🔓 本次会话已<strong>启用 API 变更</strong>。当代理判断 API 比界面更可靠时，可以通过 fetch_url 和 execute_js 使用 POST/PUT/PATCH/DELETE。默认仍优先使用界面。重置会话后此标志会清除。',
  'sp.api.badge_html': '<span>🔓 已允许 API 变更</span>',

  'tool.read_page': '正在阅读页面',
  'tool.get_interactive_elements': '扫描可交互元素',
  'tool.click': '点击',
  'tool.type_text': '输入',
  'tool.scroll': '滚动',
  'tool.navigate': '导航',
  'tool.extract_data': '提取数据',
  'tool.wait_for_element': '等待元素',
  'tool.get_selection': '读取选中内容',
  'tool.execute_js': '执行脚本',
  'tool.new_tab': '打开新标签页',
  'tool.screenshot': '截取屏幕',
  'tool.done': '收尾中',
  'tool.click.selector': '点击「{selector}」',
  'tool.click.index': '点击第 {index} 个元素',
  'tool.type_text.text': '输入「{text}」',
  'tool.navigate.url': '前往 {url}',
  'tool.new_tab.url': '打开 {url}',
  'tool.scroll.direction': '向 {direction} 滚动',
  'tool.extract_data.type': '提取 {type}',
  'tool.wait_for_element.selector': '等待「{selector}」',

  'st.title': 'WebBrain 设置',
  'st.subtitle': '配置你的 LLM 提供商和显示偏好 · v{version}',
  'st.tab.display': '显示',
  'st.tab.providers': '提供商',
  'st.tab.vision': '视觉',
  'st.tab.profile': '个人资料',
  'st.tab.account': '账户',

  'st.account.not_signed_in': '未登录',
  'st.account.sign_in': '登录 / 注册',
  'st.account.sign_out': '退出',
  'st.account.provider_name': 'WebBrain Cloud',

  'st.display.language.label': '语言',
  'st.display.language.desc': 'WebBrain 插件的界面语言。',
  'st.display.verbose.label': '详细模式',
  'st.display.verbose.desc': '显示完整的工具调用详情、参数和原始 JSON 结果。默认关闭，以获得更清爽的聊天体验。',
  'st.display.screenshot.label': '截图备用',
  'st.display.screenshot.desc': '当 DOM 读取失败或内容不足时捕获页面截图。需要支持视觉的模型。',
  'st.display.site_adapters.label': '站点适配器',
  'st.display.site_adapters.desc': '为已知的高流量站点（GitHub、Gmail、Stripe、AWS 等）在代理首条消息中注入简短的人工指引。帮助代理避开常见的死胡同。会在匹配站点的首轮对话增加少量 token 成本。',
  'st.display.auto_screenshot.label': '自动截图',
  'st.display.auto_screenshot.desc': '代理对页面操作后自动截取视口截图，让支持视觉的模型看到变化。会消耗更多 token。如果当前模型不支持图像，会静默禁用。',
  'st.display.auto_screenshot.off': '关闭',
  'st.display.auto_screenshot.navigation': '导航时',
  'st.display.auto_screenshot.state_change': '状态变化时（默认）',
  'st.display.auto_screenshot.every_step': '每一步',
  'st.display.tracing.label': '记录轨迹（用于模型对比）',
  'st.display.tracing.desc_html': '将每次运行（LLM 请求、响应、工具调用、截图）持久化到本地 IndexedDB，以便并排查看和对比模型。在独立的轨迹页打开。因为每步都会写盘，默认关闭。<a href="traces.html" target="_blank" style="color:var(--accent);">打开轨迹页 →</a>',
  'st.display.allow_local_network.label': '允许代理访问本地网络',
  'st.display.allow_local_network.desc': '允许代理的 fetch_url 工具访问回环（127.0.0.1、localhost）和私有/RFC1918 地址（10.x、192.168.x、172.16–31.x）。用于本地开发服务器、内网工具或自托管 API。默认关闭 — 关闭时，含 prompt 注入的页面无法引导代理探测你的本地网络。即使开启，云元数据地址（169.254.169.254）和 *.internal/*.local 主机名仍然会被阻止。',
  'st.display.notify_sound.label': '完成提示音',
  'st.display.notify_sound.desc': '代理完成任务时在侧边栏播放短促的提示音。取消运行则不播放。',
  'st.display.max_steps.label': '代理最大步骤数',
  'st.display.max_steps.desc': '代理每条消息可执行的最大工具调用步数。更高的值允许更复杂的多步任务，但可能消耗更多 token。',
  'st.display.traces_link.label': '轨迹',
  'st.display.traces_link.desc': '并排查看已记录的运行。仅在轨迹记录开启时可用。',
  'st.display.traces_link.open': '打开轨迹 →',

  'st.providers.info.html': '<strong>llama.cpp 快速上手：</strong><br>运行 <code>llama-server -m 你的模型.gguf --port 8080</code> 启动本地服务器。<br>无需 API 密钥 — 完全在你的机器上运行。',
  'st.providers.save': '保存',
  'st.providers.test': '测试连接',
  'st.providers.set_active': '设为启用',
  'st.providers.active': '已启用',
  'st.providers.saved': '已保存！',
  'st.providers.testing': '测试中...',
  'st.providers.connected': '连接成功！模型：{model}',
  'st.providers.unknown_model': '未知',
  'st.providers.failed': '失败：{error}',
  'st.providers.load_models': '加载模型',
  'st.providers.loading': '加载中…',
  'st.providers.models_loaded': '已加载 {count} 个模型',

  'st.provider.field.server_url': '服务器 URL',
  'st.provider.field.api_base_url': 'API 基础 URL',
  'st.provider.field.api_key': 'API 密钥',
  'st.provider.field.model': '模型',
  'st.provider.field.model_optional': '模型（可选）',
  'st.provider.field.supports_vision': '模型支持视觉（多模态）',
  'st.provider.field.compact_prompt': '精简提示（推荐小模型使用，默认开启）',
  'st.provider.field.model_loaded_hint': '留空则使用已加载的模型',

  'st.vision.desc': '设置后，页面阅读的截图会发送给此模型，而当前提供商负责规划和工具调用。留空则视觉也使用当前提供商。仅限 OpenAI 兼容的端点。',
  'st.vision.save': '保存',
  'st.vision.test': '测试连接',
  'st.vision.clear': '清除',
  'st.vision.cleared': '已清除。',
  'st.vision.saved': '已保存！',
  'st.vision.testing': '测试中...',
  'st.vision.connected': '连接成功！模型：{model}',
  'st.vision.failed': '失败：{error}',
  'st.vision.fill_required': '请先填写基础 URL 和模型。',

  'st.profile.desc_html': '存一段简短的自述，供代理填写注册表单时自动使用，无需每次询问 — 姓名、工作邮箱、公司，以及用于低风险注册的<em>一次性</em>密码。启用后，下面的文本会在每次对话中追加到代理的系统提示里。',
  'st.profile.enabled.label': '启用个人资料自动填充',
  'st.profile.enabled.desc': '将个人资料文本注入代理的系统提示。关闭后代理永远看不到此文本。',
  'st.profile.text.label': '个人资料文本',
  'st.profile.text.placeholder': '我是 Jane Doe。我的邮箱是 jane@example.com。我在 Acme Inc. 工作。我用于低风险注册的默认密码是 SomePhrase-42!。我住在柏林。',
  'st.profile.save': '保存',
  'st.profile.clear': '清除',
  'st.profile.saved': '已保存。',
  'st.profile.cleared': '已清除。',
  'st.profile.security_html': '<strong>安全提示 — 请阅读：</strong><br><ul style="margin:6px 0 0 18px;padding:0;line-height:1.55;"><li>你在这里输入的文本以<strong>明文</strong>保存在浏览器的本地存储中。它<strong>不会</strong>被发送到 WebBrain 项目 — 但<strong>会</strong>在每一轮作为系统提示的一部分发送给你所配置的 LLM 提供商。</li><li><strong>不要在这里放重要账户的密码</strong>（Google、Apple、iCloud、银行、工作 SSO、主邮箱）。这些账户应启用 2FA，也本就不该交给代理。</li><li>适合此处的是你用于低风险注册（时事通讯、免费试用、论坛账户）的<strong>一次性密码</strong>。</li><li>如果此浏览器配置文件被攻破，能访问磁盘的攻击者就能读到此文本。请尽量精简。</li></ul>',

  'tr.title': 'WebBrain 轨迹',
  'tr.runs': '{n} 次运行',
  'tr.run': '{n} 次运行',
  'tr.btn.refresh': '↻ 刷新',
  'tr.btn.refresh.title': '重新加载运行列表',
  'tr.btn.compare': '⇔ 对比',
  'tr.btn.compare.title': '进入对比模式（选择 2 次运行）',
  'tr.btn.compare.picking': '⇔ 对比（选择 2 次）',
  'tr.btn.export': '⇩ 导出 JSON',
  'tr.btn.export.title': '将选中的运行导出为 JSON',
  'tr.btn.delete': '✕ 删除',
  'tr.btn.delete.title': '删除选中的运行',
  'tr.btn.clear_all': '全部清除',
  'tr.btn.clear_all.title': '删除所有已保存的运行',

  'tr.filter.placeholder': '按任务 / 模型 / URL 过滤',
  'tr.filter.all_models': '全部模型',
  'tr.no_match': '没有匹配的运行。',
  'tr.no_task': '（无任务）',

  'tr.conversation.label': '对话',
  'tr.conversation.turn_of': '第 {n} 轮 / 共 {total} 轮',
  'tr.conversation.tooltip': '属于一个 {n} 轮对话（{id}）。打开运行以在各轮之间跳转。',

  'tr.cost.label': '费用：',
  'tr.cost.tooltip': '提供商报告的 LLM 总费用（美元）。当 ≥ $0.50 但没有最终回答时，会以橙色高亮 — 可能是一次浪费的运行。',

  'tr.empty.title': '未选中任何运行。',
  'tr.empty.hint_html': '从左侧选一个运行以查看其逐步时间线。点击<b>对比</b>选择两次运行并排查看。',

  'tr.compare_mode.title': '对比模式',
  'tr.compare_mode.picked': '已选 {n}/2。点击另一次运行以完成对比。',
  'tr.compare_mode.hint': '点击列表中的两次运行以并排对比。',

  'tr.status.label': '状态',
  'tr.steps.label': '步骤',
  'tr.step': '{n} 步',
  'tr.steps_plural': '{n} 步',
  'tr.duration.label': '耗时',
  'tr.intokens.label': '输入 token',
  'tr.outtokens.label': '输出 token',
  'tr.tokens_short': '{n} tok',
  'tr.unknown_model': '未知',
  'tr.final_label': '结束：',

  'tr.deleted': '已删除。',
  'tr.all_deleted': '全部运行已删除。',
  'tr.select_first': '请先选择一个运行。',
  'tr.confirm_delete': '删除此运行？',
  'tr.confirm_delete_all': '删除所有已记录的运行？此操作无法撤销。',

  'tr.event.llm_request': '→ LLM 请求',
  'tr.event.llm_response': '← LLM 响应',
  'tr.event.vision_sub_call': '👁 视觉子调用',
  'tr.event.error_kind': '⚠ 错误',
  'tr.event.messages_tools': '{m} 条消息，{t} 个工具 · {model}',
  'tr.event.screenshot_caption': '截图',
  'tr.event.screenshot_missing': '（截图 blob 缺失）',
  'tr.event.description_truncated': '... [在对比视图中截断]',
  'tr.event.vision_failed': '视觉子调用失败：{error}',
  'tr.event.description': '描述',
  'tr.event.args': '参数',
  'tr.event.result': '结果',
  'tr.event.step': '第 {step} 步',
};
