import type { Messages } from '../types';

export const zhCNAiMessages: Messages = {
  // AI Settings
  'ai.agentSettings': 'Agent 设置',
  'ai.chat.preparing': '准备中…',
  'ai.title': 'AI',
  'ai.description': '配置 AI 提供商、Agent 和安全设置',
  'ai.providers': '提供商',
  'ai.agents': 'Agent',
  'ai.providers.empty': '尚未配置提供商。添加一个提供商以开始使用。',
  'ai.providers.add': '添加提供商',
  'ai.providers.active': '活跃',
  'ai.providers.apiKeyConfigured': 'API Key 已配置',
  'ai.providers.noApiKey': '未设置 API Key',
  'ai.providers.configure': '配置',
  'ai.providers.remove': '移除',
  'ai.providers.name': '显示名称',
  'ai.providers.name.placeholder': '例如 我的提供商',
  'ai.providers.style': '协议风格',
  'ai.providers.style.anthropic': 'Anthropic 兼容',
  'ai.providers.style.openai': 'OpenAI 兼容',
  'ai.providers.style.google': 'Google 兼容',
  'ai.providers.style.inherited': '默认',
  'ai.providers.style.help': '决定请求使用哪种 API 格式。当第三方端点的协议与其提供商类型不一致时，可手动覆盖。',
  'ai.providers.icon.change': '修改图标',
  'ai.providers.icon.upload': '上传图片',
  'ai.providers.icon.reset': '恢复默认',
  'ai.providers.icon.close': '收起',
  'ai.providers.icon.uploadedNote': '自定义图标（64×64 WebP）',
  'ai.providers.icon.errorType': '请选择图片文件。',
  'ai.providers.apiKey': 'API Key',
  'ai.providers.apiKey.placeholder': '输入 API Key',
  'ai.providers.apiKey.decrypting': '解密中...',
  'ai.providers.baseUrl': 'Base URL',
  'ai.providers.skipTLSVerify': '跳过 TLS 证书验证（用于自签名证书）',
  'ai.providers.defaultModel': '默认模型',
  'ai.providers.defaultModel.placeholder': '例如 gpt-4o, claude-sonnet-4-20250514',
  'ai.providers.contextWindow': '上下文窗口',
  'ai.providers.contextWindow.placeholder': '例如 128000',
  'ai.providers.contextWindow.help': '留空时优先使用模型列表返回的值；如果没有，Netcatty 会使用安全默认值。',
  'ai.providers.contextWindow.error': '请输入正整数，或留空。',
  'ai.providers.refreshModels': '刷新模型列表',
  'ai.providers.searchModel': '搜索或输入模型 ID...',
  'ai.providers.filterModels': '筛选模型...',
  'ai.providers.loadingModels': '加载模型中...',
  'ai.providers.noMatchingModels': '没有匹配的模型',
  'ai.providers.clickToLoadModels': '点击加载模型',
  'ai.providers.showingModels': '显示前 100 个，共 {count} 个模型。输入以筛选。',
  'ai.providers.advancedParams': '高级参数',
  'ai.providers.advancedParams.hint': '留空则使用提供商默认值。',
  'ai.providers.advancedParams.maxTokens.placeholder': '例如 4096',
  'ai.providers.advancedParams.default': '提供商默认',

  // AI Codex
  'ai.codex': 'Codex',
  'ai.codex.title': 'Codex CLI',
  'ai.codex.description': '接入 OpenAI Codex。可以在这里登录 ChatGPT，也可以在设置里启用兼容 OpenAI 的 API Key 和自定义接口地址。',
  'ai.codex.detecting': '检测中...',
  'ai.codex.notFound': '未找到',
  'ai.codex.awaitingLogin': '等待登录',
  'ai.codex.connectedChatGPT': '已通过 ChatGPT 连接',
  'ai.codex.connectedApiKey': '已通过 API Key 连接',
  'ai.codex.connectedCustomConfig': '使用 ~/.codex/config.toml 自定义 provider',
  'ai.codex.customConfigIncomplete': '检测到自定义配置（缺少环境变量）',
  'ai.codex.customConfigHint': '使用 ~/.codex/config.toml 中配置的自定义 provider "{provider}"，无需 ChatGPT 登录。',
  'ai.codex.customConfigMissingEnvKey': '警告：环境变量 {envKey} 未在当前 shell 中设置。请 export 它（或从包含该变量的 shell 启动 netcatty），否则 Codex 无法鉴权。',
  'ai.codex.notConnected': '未连接',
  'ai.codex.statusUnknown': '状态未知',
  'ai.codex.path': '路径：',
  'ai.codex.notFoundHint': '在 PATH 中未找到 codex。请安装或在下方指定可执行文件路径。',
  'ai.codex.customPathPlaceholder': '例如 /usr/local/bin/codex',
  'ai.codex.check': '检查',
  'ai.codex.openLogin': '打开登录',
  'ai.codex.logout': '退出登录',
  'ai.codex.connectChatGPT': '连接 ChatGPT',
  'ai.codex.refreshStatus': '刷新状态',

  // AI Claude Code
  'ai.claude.title': 'Claude Code',
  'ai.claude.description': 'Anthropic 的智能编程助手。需要系统中已安装 Claude Code CLI。',
  'ai.claude.detecting': '检测中...',
  'ai.claude.detected': '已检测到',
  'ai.claude.notFound': '未找到',
  'ai.claude.path': '路径：',
  'ai.claude.notFoundHint': '在 PATH 中未找到 claude。请安装或在下方指定可执行文件路径。',
  'ai.claude.customPathPlaceholder': '例如 /usr/local/bin/claude',
  'ai.claude.configSection': '认证与配置（可选）',
  'ai.claude.configDir': '配置目录',
  'ai.claude.configDir.placeholder': '~/.claude（留空用默认）',
  'ai.claude.configDir.hint': '设置 CLAUDE_CONFIG_DIR —— 指向你已运行 `claude` 登录的目录（含 settings.json 和凭据）。',
  'ai.claude.settings': 'Settings 文件',
  'ai.claude.settings.placeholder': '~/team-settings.json（路径，或内联 {"model":"..."}）',
  'ai.claude.settings.hint': '可选。settings.json 路径或内联 JSON，作为 SDK 的 `settings` 传入。与上面的「配置目录」互补且独立（叠加合并，不是替换）。',
  'ai.claude.envVars': '环境变量',
  'ai.claude.envVars.placeholder': 'ANTHROPIC_BASE_URL=https://...\nANTHROPIC_MODEL=...',
  'ai.claude.envVars.hint': '每行一个 KEY=VALUE，传给 Claude agent。明文存在本地——API key／凭据建议用上面的「配置目录」（claude 登录），不要放这里。',
  'ai.claude.check': '检查',

  // AI GitHub Copilot CLI
  'ai.copilot.title': 'GitHub Copilot CLI',
  'ai.copilot.description': '接入 GitHub Copilot CLI。检测到后即可作为外部编程 Agent 使用。',
  'ai.copilot.detecting': '检测中...',
  'ai.copilot.detected': '已检测到',
  'ai.copilot.notFound': '未找到',
  'ai.copilot.path': '路径：',
  'ai.copilot.notFoundHint': '在 PATH 中未找到 copilot。请安装或在下方指定可执行文件路径。',
  'ai.copilot.customPathPlaceholder': '例如 /usr/local/bin/copilot',
  'ai.copilot.check': '检查',

  // AI Cursor SDK
  'ai.cursor.title': 'Cursor',
  'ai.cursor.description': '使用 Cursor SDK。',
  'ai.cursor.detecting': '检测中...',
  'ai.cursor.detected': '可用',
  'ai.cursor.notFound': '不可用',
  'ai.cursor.path': '运行环境：',
  'ai.cursor.notFoundHint': '填写 API Key 后即可使用。',
  'ai.cursor.notInstalledHint': '未检测到 Cursor SDK。',
  'ai.cursor.installStatus': 'Cursor SDK',
  'ai.cursor.installed': '已检测到',
  'ai.cursor.notInstalled': '未检测到',
  'ai.cursor.apiKeyStatus': 'API Key',
  'ai.cursor.apiKeyConfigured': '已填写',
  'ai.cursor.apiKeyMissing': '未填写',
  'ai.cursor.apiKeyFromEnv': '来自环境变量',
  'ai.cursor.apiKey': 'API Key',
  'ai.cursor.apiKeyPlaceholder': '输入 Cursor API Key',
  'ai.cursor.apiKeyPlaceholder.env': '已使用 CURSOR_API_KEY；填写后会覆盖',
  'ai.cursor.apiKeyEnvHint': '已检测到本机 CURSOR_API_KEY。留空即可继续使用，填写保存后会覆盖它。',
  'ai.cursor.apiKeyOverrideHint': '当前优先使用这里保存的 Key；清空保存后会回到 CURSOR_API_KEY。',
  'ai.cursor.saveApiKey': '保存',
  'ai.cursor.saved': '已保存',
  'ai.cursor.showApiKey': '显示 API Key',
  'ai.cursor.hideApiKey': '隐藏 API Key',
  'ai.cursor.customPathPlaceholder': '例如 /usr/local/bin/cursor',
  'ai.cursor.check': '检查',

  // AI CodeBuddy Code
  'ai.codebuddy.title': 'CodeBuddy Code',
  'ai.codebuddy.description': '通过官方 Agent SDK（`@tencent-ai/agent-sdk`）接入 CodeBuddy Code。检测到后即可作为外部编程 Agent 使用。',
  'ai.codebuddy.detecting': '检测中...',
  'ai.codebuddy.detected': '已检测到',
  'ai.codebuddy.notFound': '未找到',
  'ai.codebuddy.path': '路径：',
  'ai.codebuddy.notFoundHint': '在 PATH 中未找到 codebuddy。请安装或在下方指定可执行文件路径。',
  'ai.codebuddy.customPathPlaceholder': '例如 /usr/local/bin/codebuddy',
  'ai.codebuddy.check': '检查',
  'ai.codebuddy.configSection': '认证与配置（可选）',
  'ai.codebuddy.internetEnv': '网络环境',
  'ai.codebuddy.internetEnv.default': '默认（海外）',
  'ai.codebuddy.internetEnv.internal': 'Internal',
  'ai.codebuddy.internetEnv.ioa': 'IOA',
  'ai.codebuddy.internetEnv.hint': '设置 CODEBUDDY_INTERNET_ENVIRONMENT —— 受限网络环境请选择 Internal 或 IOA。',
  'ai.codebuddy.envVars': '环境变量',
  'ai.codebuddy.envVars.placeholder': 'CODEBUDDY_API_KEY=...\nCODEBUDDY_AUTH_TOKEN=...\nOTHER_VAR=...',
  'ai.codebuddy.envVars.hint': '每行一个 KEY=VALUE，传给 CodeBuddy agent。可在此设置 CODEBUDDY_API_KEY 或 CODEBUDDY_AUTH_TOKEN 完成认证。明文存在本地。',

  // AI Default Agent
  'ai.defaultAgent': '默认 Agent',
  'ai.defaultAgent.description': '创建新 AI 会话时使用的 Agent',
  'ai.defaultAgent.catty': 'Catty（内置）',
  'ai.toolAccess.title': '工具接入',
  'ai.toolAccess.mode': 'Netcatty 接入模式',
  'ai.toolAccess.description': '选择外部 Agent 访问 Netcatty 会话的方式。MCP 会暴露内置服务器，Skills + CLI 会引导 Agent 读取本地 Skill 并调用 Netcatty CLI。',
  'ai.toolAccess.mode.mcp': 'MCP',
  'ai.toolAccess.mode.skills': 'Skills + CLI',
  'ai.userSkills.title': '用户 Skills',
  'ai.userSkills.description': '打开 Netcatty 的 Skills 文件夹以添加你自己的技能目录。Netcatty 会自动扫描这些 skills，默认只注入轻量索引，只有在请求明显命中某个 skill 时才展开正文。',
  'ai.userSkills.openFolder': '打开 Skills 文件夹',
  'ai.userSkills.reload': '重新加载 Skills',
  'ai.userSkills.location': '位置',
  'ai.userSkills.loading': '正在扫描用户 skills...',
  'ai.userSkills.summary': '已就绪 {ready} 个，警告 {warnings} 个',
  'ai.userSkills.empty': '暂未发现用户 skills。打开文件夹后可添加包含 SKILL.md 的技能目录。',
  'ai.userSkills.unavailable': '当前环境不支持用户 skills。',
  'ai.userSkills.status.ready': '正常',
  'ai.userSkills.status.warning': '警告',

  // AI Quick Messages
  'ai.quickMessages.title': '快捷消息',
  'ai.quickMessages.description': '创建常用提示词，在 AI 聊天框输入 / 或点击快捷按钮即可插入到输入框。与用户 Skills 不同，快捷消息会直接填入消息内容。',
  'ai.quickMessages.add': '添加快捷消息',
  'ai.quickMessages.createTitle': '新建快捷消息',
  'ai.quickMessages.editTitle': '编辑快捷消息',
  'ai.quickMessages.name': '名称',
  'ai.quickMessages.name.placeholder': '例如：检查磁盘空间',
  'ai.quickMessages.slug': '命令',
  'ai.quickMessages.slug.placeholder': 'disk-check',
  'ai.quickMessages.descriptionField': '说明（可选）',
  'ai.quickMessages.descriptionField.placeholder': '简短描述这条快捷消息的用途',
  'ai.quickMessages.content': '消息内容',
  'ai.quickMessages.content.placeholder': '输入选择后要插入的完整提示词...',
  'ai.quickMessages.empty': '还没有快捷消息。添加几条常用提示，聊天时就能一键插入。',
  'ai.quickMessages.confirmDelete': '确定删除快捷消息「{name}」吗？',
  'ai.quickMessages.error.nameRequired': '请填写名称。',
  'ai.quickMessages.error.invalidSlug': '命令只能包含小写字母、数字和连字符。',
  'ai.quickMessages.error.contentRequired': '请填写消息内容。',
  'ai.quickMessages.error.slugTaken': '该命令已被其他快捷消息使用。',
  'ai.quickMessages.error.slugConflictsWithSkill': '该命令与用户 Skill「/{slug}」冲突，请换一个命令。',
  'ai.quickMessages.error.maxItems': '最多只能保存 {max} 条快捷消息。',

  // AI Chat
  'ai.chat.noProvider': '尚未配置 AI 提供商。请前往 **设置 → AI → 提供商** 添加并启用一个提供商。',
  'ai.chat.toolDenied': '操作已被用户拒绝。',
  'ai.chat.toolApproved': '已批准',
  'ai.chat.toolApprovalHint': '按回车批准，按 Esc 拒绝',
  'ai.chat.approve': '批准',
  'ai.chat.reject': '拒绝',
  'ai.chat.toolLabel': '工具',
  'ai.chat.targetLabel': '目标',
  'ai.chat.permissionRequired': '需要权限',
  'ai.chat.permissionDescription': 'AI Agent 希望执行一个需要你批准的工具调用。',
  'ai.chat.commandBlocked': '此命令已被安全策略拦截，无法执行。',
  'ai.chat.recommendAllow': '允许',
  'ai.chat.recommendConfirm': '确认',
  'ai.chat.recommendDeny': '拒绝',
  'ai.chat.exportConversation': '导出对话',
  'ai.chat.exportAs': '导出为',
  'ai.chat.exportMarkdown': 'Markdown',
  'ai.chat.exportJSON': 'JSON',
  'ai.chat.exportPlainText': '纯文本',
  'ai.chat.thinking': '思考中',
  'ai.chat.thoughtFor': '思考了 {duration}',
  'ai.chat.thought': '思考',
  'ai.chat.agents': 'Agents',
  'ai.chat.detectedOnMachine': '在本机检测到',
  'ai.chat.rescan': '重新扫描',
  'ai.chat.permObserver': '观察',
  'ai.chat.permConfirm': '确认',
  'ai.chat.permAuto': '自主',
  'ai.chat.permObserverDesc': '只读模式',
  'ai.chat.permConfirmDesc': '操作前询问',
  'ai.chat.permAutoDesc': '自由执行',
  'ai.chat.emptyHint': '询问服务器相关问题、执行命令或获取配置帮助。',
  'ai.chat.placeholder': '向 {agent} 发送消息 — @ 引用上下文，/ 使用命令',
  'ai.chat.placeholderDefault': '向 Catty Agent 发送消息...',
  'ai.chat.noModel': '未选择模型',
  'ai.chat.noProviderModel': '未配置默认模型——前往 设置 → AI → 提供商 设置。',
  'ai.chat.selectProvider': '选择提供商',
  'ai.chat.recent': '最近',
  'ai.chat.viewAll': '查看全部',
  'ai.chat.untitled': '无标题',
  'ai.chat.justNow': '刚刚',
  'ai.chat.minutesAgo': '{n}分钟前',
  'ai.chat.hoursAgo': '{n}小时前',
  'ai.chat.daysAgo': '{n}天前',
  'ai.chat.newChat': '新对话',
  'ai.chat.allSessions': '所有会话',
  'ai.chat.loadEarlierMessages': '加载更早的消息（还有 {n} 条）',
  'ai.chat.usedTools': '已使用 {n} 个工具',
  'ai.chat.loadMoreSessions': '加载更多会话（还有 {n} 条）',
  'ai.chat.noSessions': '没有历史会话',
  'ai.chat.retryHint': '你可以重新发送消息来重试。',
  'ai.chat.approvalTimeout': '工具审批已超时（5 分钟）。你可以重新发送消息来重试。',
  'ai.chat.menuHosts': '主机',
  'ai.chat.menuContext': '上下文',
  'ai.chat.menuFiles': '文件',
  'ai.chat.menuImage': '图片',
  'ai.chat.menuMentionHost': '提及主机',
  'ai.chat.menuUserSkills': '用户 Skills',
  'ai.chat.menuSlashCommands': '快捷命令',
  'ai.chat.slashCommands': '快捷命令',
  'ai.chat.slashQuickMessages': '快捷消息',
  'ai.chat.slashUserSkills': '用户 Skills',
  'ai.chat.quickMessages': '快捷命令',
  'ai.chat.slashNoResults': '没有匹配的命令',
  'ai.chat.slashEmptyHint': '可在 设置 → AI → 快捷消息 中添加常用提示词。',

  // AI 聊天快捷入口
  'ai.chatShortcuts.title': '聊天快捷入口',
  'ai.chatShortcuts.selectionAction': '选中终端内容时显示“添加到对话”',
  'ai.chatShortcuts.selectionAction.description': '在终端里选中文本后显示 AI 快捷按钮。',

  // AI Error
  'ai.codex.bridgeError': 'Codex 主进程处理器尚未加载。请完全重启 Netcatty 或重启 Electron 开发进程，然后重试。',

  // AI Web Search
  'ai.webSearch.title': '网络搜索',
  'ai.webSearch.enable': '启用网络搜索',
  'ai.webSearch.enable.description': '允许 AI 代理搜索互联网获取最新信息。',
  'ai.webSearch.provider': '搜索供应商',
  'ai.webSearch.provider.description': '选择一个网络搜索 API 供应商。',
  'ai.webSearch.apiKey': 'API 密钥',
  'ai.webSearch.apiKey.description': '所选搜索供应商的 API 密钥。',
  'ai.webSearch.apiKey.placeholder': '输入 API 密钥...',
  'ai.webSearch.apiHost': 'API 地址',
  'ai.webSearch.apiHost.description': '自定义 API 端点。除非使用代理，否则保持默认值。',
  'ai.webSearch.apiHost.searxngDescription': 'SearXNG 实例的 URL（必填）。',
  'ai.webSearch.maxResults': '最大结果数',
  'ai.webSearch.maxResults.description': '搜索返回的最大结果数（1-20）。',

  // AI Safety Settings
  'ai.safety.title': '安全',
  'ai.safety.permissionMode': '权限模式',
  'ai.safety.permissionMode.description': '控制 AI 通过 Netcatty 访问终端会话的方式。观察者模式会阻止经由 Netcatty 的写操作；外部 Agent CLI 可能仍有自己的本机工具和审批流程。',
  'ai.safety.permissionMode.observer': '观察者 - 只读，禁止操作',
  'ai.safety.permissionMode.confirm': '确认 - 操作前询问',
  'ai.safety.permissionMode.autonomous': '自主 - 自由执行',
  'ai.safety.commandTimeout': '命令超时',
  'ai.safety.commandTimeout.description': '通过 Netcatty 执行命令时允许运行的最长秒数，超时将被终止。',
  'ai.safety.commandTimeout.unit': '秒',
  'ai.safety.maxIterations': '最大迭代次数',
  'ai.safety.maxIterations.description': '防止 AI 失控执行的最大工具调用循环次数。外部 Agent 可能有自己的内部迭代限制，以其为准。',
  'ai.safety.blocklist': '命令黑名单',
  'ai.safety.blocklist.description': '用于拦截通过 Netcatty 执行的危险命令的正则表达式。',
  'ai.safety.blocklist.placeholder': '正则表达式...',
  'ai.safety.blocklist.reset': '恢复默认',
  'ai.safety.blocklist.add': '添加规则',
  'ai.safety.note': '这些安全设置会约束经由 Netcatty 执行的操作。外部 Agent CLI 也可能提供本机工具，那部分由 Agent 自己的控制规则约束。',

  // 统一终端工作区和顶部标签的 tooltip 文案 (issue #954)
  'terminal.layer.addTerminal': '添加终端',
  'terminal.layer.switchToSplitView': '切换到分屏视图',
  'terminal.layer.sftp': '文件传输',
  'terminal.layer.scripts': '脚本',
  'terminal.layer.history': '命令历史',
  'terminal.layer.theme': '主题',
  'terminal.layer.aiChat': 'AI 助手',
  'terminal.layer.movePanelLeft': '面板移至左侧',
  'terminal.layer.movePanelRight': '面板移至右侧',
  'terminal.layer.closePanel': '关闭面板',
  'terminal.layer.hostTree.search': '搜索主机...',
  'terminal.layer.hostTree.searchButton': '搜索',
  'terminal.layer.hostTree.tagsButton': '按标签筛选',
  'terminal.layer.hostTree.newGroup': '新建分组',
  'terminal.layer.hostTree.localShell': '本地 Shell',
  'terminal.layer.hostTree.tagsEmpty': '暂无标签',
  'terminal.layer.hostTree.clearTags': '清除筛选',
  'terminal.layer.hostTree.collapse': '收起主机列表',
  'terminal.layer.hostTree.expand': '展开主机列表',
  'terminal.layer.hostTree.empty': '没有匹配的主机',
  'terminal.layer.hostTree.details.host': '主机',
  'terminal.layer.hostTree.details.user': '用户',
  'terminal.layer.hostTree.details.port': '端口',
  'terminal.layer.hostTree.details.protocol': '协议',
  'terminal.layer.hostTree.details.group': '分组',
  'terminal.layer.hostTree.details.tags': '标签',
  'terminal.layer.hostTree.details.lastConnected': '最近连接',
  'topTabs.openQuickSwitcher': '打开快速切换',
  'topTabs.moreTabs': '更多标签页',
  'topTabs.aiAssistant': 'AI 助手',
  'topTabs.windowOpacity': '窗口透明度',
  'topTabs.toggleTheme': '切换主题',
  'topTabs.openSettings': '打开设置',
  'ai.chat.sessionHistory': '会话历史',
  'ai.chat.attach': '附件',
  'ai.chat.terminalSelectionAttachment': '终端选区',
  'ai.chat.terminalSelectionLines': '{count} 行',
  'ai.chat.collapse': '收起',
  'ai.chat.expand': '展开',
  'ai.chat.enableAgent': '启用 {name}',
  'zmodem.waitingForRemote': '等待远端...',
  'zmodem.uploading': '上传中',
  'zmodem.downloading': '下载中',
  'zmodem.cancelTransfer': '取消传输 (Ctrl+C)',
  'zmodem.overwrite.title': '远端已存在同名文件',
  'zmodem.overwrite.applyToRest': '应用到其余冲突文件',
  'zmodem.overwrite.overwrite': '覆盖',
  'zmodem.overwrite.skip': '跳过',
  'zmodem.overwrite.cancel': '取消',
  'settings.shortcuts.resetToDefault': '重置为默认',
};
