import { TranslationKeys } from './types';

export const zh: TranslationKeys = {
  // Navbar
  'navbar.features': '核心特性',
  'navbar.benchmark': '基准测试',
  'navbar.quickstart': '快速开始',
  'navbar.docs': '文档',
  'navbar.blog': '博客',
  'navbar.getStarted': '开始使用',

  // Hero
  'hero.title': 'AI 代码审查\n百万真实任务验证',
  'hero.description': 'Open Code Review 将阿里巴巴经过实战检验的代码审查 Agent 引入您的工作流程。连接任意 LLM，数据完全私有，获得开发者真正采纳的审查意见。',
  'hero.quickStart': '快速开始',
  'hero.learnMore': '了解更多',
  'hero.terminal': '终端',
  'hero.copied': '已复制',
  'hero.copyFailed': '复制失败',

  // Highlights
  'highlights.stat1Value': '20K+',
  'highlights.stat1Label': '活跃用户',
  'highlights.stat1Caption': '经阿里巴巴集团内部实战验证',
  'highlights.stat2Value': '> 30%',
  'highlights.stat2Label': '采纳率',
  'highlights.stat2Caption': '经阿里巴巴集团内部实战验证',
  'highlights.stat3Value': '1M+',
  'highlights.stat3Label': '真实任务',
  'highlights.stat3Caption': '已执行的代码审查任务',
  'highlights.stat4Value': '1/9',
  'highlights.stat4Label': 'TOKEN 成本',
  'highlights.stat4Caption': '对比 Claude Code · 1,000 个 PR',
  'highlights.stat5Value': '25.10%',
  'highlights.stat5Label': 'AACR-BENCH',
  'highlights.stat5Caption': 'SEM.F1 基准得分',

  // Use Cases
  'usecases.sectionLabel': '使用场景',
  'usecases.title': 'Open Code Review 适合谁？',
  'usecases.case1Title': '独立开发者',
  'usecases.case1Desc': '将 Open Code Review 嵌入你的本地 AI 辅助开发工作流，获得即时、高质量的代码审查反馈。',
  'usecases.case2Title': '平台团队',
  'usecases.case2Desc': '无缝集成到内部系统中，完全掌控数据流和审查策略。',
  'usecases.case3Title': 'ML 研究者',
  'usecases.case3Desc': '作为 RL 训练流水线中的代码质量验证器，为代码生成模型提供可靠的奖励信号。',

  // Features
  'features.sectionBadge': '核心特性',
  'features.title': '专为代码审查打造的 Agent 系统',
  'features.subtitle': '一个能读取文件、搜索代码库、交叉引用上下文并应用细粒度规则进行深度审查的 AI Agent。',
  'features.feat1Title': '混合架构：确定性 + Agent',
  'features.feat1Desc': '将确定性工程（任务拆分、文件过滤、行号定位、规则路由、异步调度）与 LLM Agent 推理（风险检测、上下文探索、问题分类）解耦——工程模块处理确定性，Agent 处理语义，在质量、Token 成本和速度之间取得最优平衡。',
  'features.feat2Title': '精准评论定位与反思',
  'features.feat2Desc': '独立的行级评论定位模块，采用三级渐进式 LLM 策略精确定位到具体行号。独立的反思模块提前拦截幻觉和知识偏移。',
  'features.feat3Title': '多模型协议支持',
  'features.feat3Desc': '同时支持 Anthropic Messages API 和 OpenAI Chat Completions API。内置 Anthropic、OpenAI、DashScope、DeepSeek、Z.AI 等预设提供商，开箱即用，同时支持自定义模型端点用于私有化部署。',
  'features.feat4Title': '动态并发处理',
  'features.feat4Desc': '动态拆分子任务进行并行审查，支持可配置的 goroutine 工作线程（默认 8 个）。即使是大型变更集也能快速完成。',
  'features.feat5Title': '智能记忆压缩',
  'features.feat5Desc': '专为代码审查构建的记忆压缩方案，采用三级分区（冻结/压缩/活跃）上下文管理，突破 Token 限制实现深度审查。',
  'features.feat6Title': '内置审查规则',
  'features.feat6Desc': '经海量真实场景验证的审查规则，覆盖 Java、TypeScript、Go、Python、Kotlin、Rust、C++、C 等 10+ 种语言，包含 NPE、线程安全、XSS、SQL 注入等专项规则。',

  // Benchmark
  'benchmark.sectionLabel': '公开基准测试',
  'benchmark.title': '80+ 位资深工程师交叉验证',
  'benchmark.subtitle': '一个真实世界的 CodeReview 基准测试，从 50 个热门开源仓库中精选，包含 200 个真实 Pull Request，覆盖 10 种编程语言、多样的问题类型和不同规模的变更集。',
  'benchmark.colRank': '排名',
  'benchmark.colModel': '模型',
  'benchmark.colSource': '来源',
  'benchmark.colF1': 'F1',
  'benchmark.colPrecision': '精确率',
  'benchmark.colRecall': '召回率',
  'benchmark.colAvgTime': '平均耗时',
  'benchmark.colAvgToken': '平均 Token',

  // QuickStart
  'quickstart.sectionLabel': '快速开始',
  'quickstart.title': '几分钟即可上手',
  'quickstart.subtitle': '无需复杂配置，除了您选择的 LLM 提供商外不需要第三方账户。',
  'quickstart.step1Title': '安装',
  'quickstart.step1Desc': '通过 npm 一行命令全局安装。',
  'quickstart.step1Label1': '安装',
  'quickstart.step1Label2': '验证安装',
  'quickstart.step2Title': '配置',
  'quickstart.step2Desc': '交互式设置 LLM 提供商，或手动配置。',
  'quickstart.step2Label1': '交互式设置（推荐）',
  'quickstart.step2Label2': '手动配置（备选）',
  'quickstart.step2Label3': '验证配置',
  'quickstart.step3Title': '运行审查',
  'quickstart.step3Desc': '开始你的第一次代码审查。',
  'quickstart.step3Label1': '运行审查命令',
  'quickstart.commentReview': '# 审查当前变更',
  'quickstart.commentBranch': '# 审查分支间的差异',
  'quickstart.commentCommit': '# 审查特定提交',
  'quickstart.copied': '已复制！',

  // Footer
  'footer.brand': 'Open Code Review',
  'footer.copyright': '© 2026 版权所有。保留所有权利。',

  // Docs Page
  'docs.toc': '目录',
  'docs.install': '安装',
  'docs.config': 'ocr config',
  'docs.review': 'ocr review',
  'docs.scan': 'ocr scan',
  'docs.viewer': 'ocr viewer',
  'docs.mcp': 'MCP Server',
  'docs.env': 'Claude Code 集成',
  'docs.installTitle': '安装',
  'docs.installLabel': '安装',
  'docs.installVerifyLabel': '验证安装',
  'docs.configTitle': '配置与验证',
  'docs.configDesc': '通过统一的 Provider 体系管理 CLI 配置。内置多个主流供应商，同时支持自定义供应商用于私有化部署。配置存储在 <code>~/.opencodereview/config.json</code>。',
  'docs.configInteractive': '交互式设置（推荐）',
  'docs.configInteractiveDesc': '最简单的配置方式。从内置供应商中选择或添加自定义供应商，设置 API 密钥，选择模型。',
  'docs.configModelSelect': '模型选择',
  'docs.configModelSelectDesc': '选择供应商后，选择要使用的模型。',
  'docs.configListProviders': '列出内置供应商',
  'docs.configListProvidersDesc': '查看所有可用的内置 LLM 供应商。',
  'docs.configManual': '手动配置',
  'docs.configManualBuiltin': '使用内置供应商',
  'docs.configManualBuiltinDesc': '内置供应商已预设 API 地址和协议，只需提供 API 密钥即可开始。',
  'docs.configManualCustom': '使用自定义供应商',
  'docs.configManualCustomDesc': '连接到私有化部署或其他兼容端点。',
  'docs.configManualCustomNote': '自定义供应商必须提供 url 和 protocol。支持的协议：anthropic、openai。',
  'docs.configKeys': '支持的配置键',
  'docs.configKeyProvider': '当前活跃供应商名称',
  'docs.configKeyProviderApiKey': '供应商的 API 密钥',
  'docs.configKeyProviderModel': '模型名称',
  'docs.configKeyProviderUrl': 'API 地址覆盖',
  'docs.configKeyProviderExtraBody': '自定义请求体字段 (JSON)',
  'docs.configKeyProviderExtraHeaders': '自定义 HTTP 头 (key=value)',
  'docs.configKeyLanguage': '输出语言',
  'docs.configKeyTelemetry': '遥测',
  'docs.configVerify': '验证配置',
  'docs.configVerifyDesc': '配置后运行此命令以测试 LLM 连接并确认设置正确。',
  'docs.reviewTitle': 'ocr review',
  'docs.reviewDesc': '<code>ocr review</code> 是发起 AI 代码审查的核心命令。',
  'docs.reviewModes': '审查模式',
  'docs.reviewWorkspace': '工作区模式（默认）',
  'docs.reviewWorkspaceDesc': '审查当前工作区中已暂存 + 未暂存 + 未跟踪的变更。',
  'docs.reviewBranch': '分支差异模式',
  'docs.reviewBranchDesc': '审查两个引用之间的差异（基于 merge-base）。',
  'docs.reviewCommit': '单次提交模式',
  'docs.reviewCommitDesc': '审查特定提交（与父提交的差异）。',
  'docs.reviewAdvanced': '高级用法',
  'docs.reviewBackground': '带需求上下文的审查',
  'docs.reviewBackgroundDesc': '提供需求上下文（包括重要边界条件）以提高审查质量。',
  'docs.reviewJson': 'JSON 输出',
  'docs.reviewJsonDesc': '以结构化 JSON 格式输出结果，便于程序化处理。',
  'docs.reviewAgent': 'Agent 模式',
  'docs.reviewAgentDesc': '仅输出最终摘要，不显示执行过程，适用于自动化流水线。',
  'docs.reviewPreviewLabel': 'Dry-Run 预览',
  'docs.reviewPreviewDesc': '列出将被审查的文件及统计信息（文件总数、变更行数），但不调用 LLM，不产生费用 —— 适合在正式审查前确认范围。',
  'docs.reviewFlags': '参数参考',
  'docs.reviewFlagCol1': '参数',
  'docs.reviewFlagCol2': '描述',
  'docs.reviewFlagCol3': '默认值',
  'docs.reviewFlag1Desc': '指定要审查的提交哈希',
  'docs.reviewFlag2Desc': '起始引用（差异起点）',
  'docs.reviewFlag3Desc': '目标引用（差异终点）',
  'docs.reviewFlag4Desc': '输出格式：text 或 json',
  'docs.reviewFlag5Desc': 'Git 仓库根目录',
  'docs.reviewFlag5Default': '当前目录',
  'docs.reviewFlag6Desc': '审查规则 JSON 文件路径',
  'docs.reviewFlag6Default': '内置',
  'docs.reviewFlag7Desc': '最大并发文件审查数',
  'docs.reviewFlag8Desc': '单任务超时时间（分钟）',
  'docs.reviewFlag9Desc': '输出受众：human（显示过程）或 agent（仅摘要）',
  'docs.reviewFlag10Desc': '每个文件的最大工具调用轮数；仅当大于模板默认值时生效',
  'docs.reviewFlag10Default': '内置',
  'docs.reviewFlag11Desc': '最大并发 git 子进程数',
  'docs.reviewNote': '注意：<code>--from/--to</code> 和 <code>--commit</code> 不能同时使用。指定 <code>--from</code> 时，<code>--to</code> 也必须指定。',
  'docs.scanTitle': 'ocr scan',
  'docs.scanDesc': '<code>ocr scan</code> 审查整个文件而非 diff —— 无需 Git 历史或有意义的差异。适用于审计不熟悉的代码库、迁移前的目录扫描，或任何没有可比对内容的项目。',
  'docs.scanVsTitle': 'ocr scan 与 ocr review 的区别',
  'docs.scanVsReviewLabel': 'ocr review',
  'docs.scanVsReview': '<code>ocr review</code> 基于 diff：审查 Git 变更 —— 工作区中已暂存/未暂存/未跟踪的改动、分支范围，或单次提交。需要 Git 历史来计算差异。',
  'docs.scanVsScanLabel': 'ocr scan',
  'docs.scanVsScan': '<code>ocr scan</code> 基于完整文件：无论是否存在 Git 历史，都审查完整的文件内容。它也可以在非 git 目录中工作，回退到遵循 .gitignore 的文件系统遍历。',
  'docs.scanUsage': '基本用法',
  'docs.scanUsageWhole': '扫描整个仓库',
  'docs.scanUsageWholeDesc': '未指定 --path 时的默认行为。',
  'docs.scanUsagePath': '扫描指定路径',
  'docs.scanUsagePathDesc': '传入相对于仓库根目录的目录以缩小扫描范围。',
  'docs.scanUsageFile': '扫描指定文件',
  'docs.scanUsageFileDesc': '也支持以逗号分隔的多个文件路径。',
  'docs.scanUsagePreviewLabel': 'Dry-Run 预览',
  'docs.scanUsagePreviewDesc': '列出扫描范围内的所有文件并报告统计信息（文件总数、可审查/被排除数量及原因、总行数），但不调用 LLM，不产生费用 —— 适合在大型仓库上正式扫描前确认范围。',
  'docs.scanBatching': '批处理策略',
  'docs.scanBatchingDesc': '<code>--batch</code> 参数控制文件如何被分组为审查批次。扫描模板默认使用 <code>by-language</code>；空值或无法识别的值会回退为 <code>none</code>。',
  'docs.scanBatchingNone': 'none',
  'docs.scanBatchingNoneDesc': '每个文件都是独立的批次 —— 不进行分组。',
  'docs.scanBatchingLang': 'by-language',
  'docs.scanBatchingLangDesc': '按文件扩展名（小写）分组。模板默认值。',
  'docs.scanBatchingDir': 'by-directory',
  'docs.scanBatchingDirDesc': '按仓库根目录下的第一级目录分组；根目录下的文件各自组成独立批次。',
  'docs.scanToggles': '阶段开关：--no-plan、--no-dedup、--no-summary',
  'docs.scanTogglesDesc': '除核心的按文件审查外，一次扫描运行还包含三个可选阶段。每个阶段都可以单独关闭，以在审查质量与速度、token 成本之间做取舍。',
  'docs.scanTogglesPlanDesc': '跳过按文件的 PLAN_TASK 预处理阶段（该阶段在主审查前确定关注重点）。每个文件可节省一次 LLM 调用；可能降低审查聚焦度。',
  'docs.scanTogglesDedupDesc': '跳过按批次的 DEDUP_TASK。保留所有原始评论，包括去重通常会合并的相似评论。',
  'docs.scanTogglesSummaryDesc': '跳过运行结束后的 PROJECT_SUMMARY_TASK —— 即所有批次完成后生成的仓库级 markdown 摘要。',
  'docs.scanBudget': 'Token 预算：--max-tokens-budget',
  'docs.scanBudgetDesc': '在分发任务前，<code>ocr scan</code> 会打印一个粗略的 token 费用估算。<code>--max-tokens-budget</code> 限制 LLM API 报告的输入+输出 token 总用量；一旦累计用量超过该上限，将在开始下一批次前停止分发。默认值 <code>0</code> 表示无限制。',
  'docs.scanFlags': '参数参考',
  'docs.scanFlagCol1': '参数',
  'docs.scanFlagCol2': '描述',
  'docs.scanFlagCol3': '默认值',
  'docs.scanFlag1Desc': '以逗号分隔的、相对于仓库的待扫描目录/文件',
  'docs.scanFlag1Default': '整个仓库',
  'docs.scanFlag2Desc': '以逗号分隔的 gitignore 风格排除模式；与 rule.json 中的 excludes 合并',
  'docs.scanFlag3Desc': '预览将被扫描的文件，不运行 LLM',
  'docs.scanFlag4Desc': '限制总 token 用量（输入+输出）；超出后停止分发（0 = 无限制）',
  'docs.scanFlag5Desc': '跳过按文件的 PLAN_TASK 预处理',
  'docs.scanFlag6Desc': '跳过按批次的 DEDUP_TASK',
  'docs.scanFlag7Desc': '跳过运行结束后的 PROJECT_SUMMARY_TASK',
  'docs.scanFlag8Desc': '批处理策略：none | by-language | by-directory',
  'docs.scanFlag9Desc': '输出格式：text 或 json',
  'docs.scanFlag10Desc': '最大并发文件扫描数',
  'docs.scanFlag11Desc': '并发任务超时时间（分钟）',
  'docs.scanFlag12Desc': '输出受众：human（显示进度）或 agent（仅摘要）',
  'docs.scanFlag13Desc': '可选的需求/业务背景信息',
  'docs.scanFlag14Desc': '每个文件的最大工具调用轮数；仅当大于模板默认值时生效',
  'docs.scanFlag14Default': '内置',
  'docs.scanFlag15Desc': '最大并发 git 子进程数',
  'docs.scanFlag16Desc': '自定义 JSON 审查规则的路径',
  'docs.scanFlag17Desc': '自定义 JSON 工具配置的路径',
  'docs.scanFlag17Default': '内置',
  'docs.scanFlag18Desc': '要扫描的仓库或目录根路径',
  'docs.scanFlag18Default': '当前目录',
  'docs.scanNote': '注意：<code>--max-tools</code> 仅会提高扫描模板中按文件的工具调用预算 —— 当设置值低于模板默认值时不生效。',
  'docs.viewerTitle': 'ocr viewer',
  'docs.viewerDesc': '启动 WebUI 会话查看器，在 Web 界面中浏览审查会话日志。',
  'docs.viewerNote': '运行后将启动一个本地 HTTP 服务器，提供可视化界面浏览审查会话日志。',
  'docs.mcpTitle': 'MCP Server',
  'docs.mcpDesc': 'Open Code Review 支持 Model Context Protocol (MCP) 服务器，允许审查 Agent 通过 stdio transport 在代码审查过程中使用外部工具。',
  'docs.mcpConfig': '配置 MCP Server',
  'docs.mcpConfigLocation': 'MCP server 配置存储在 ~/.opencodereview/config.json。',
  'docs.mcpDelete': '删除 MCP Server',
  'docs.mcpFields': '配置字段',
  'docs.mcpFieldCol': '字段',
  'docs.mcpRequiredCol': '必填',
  'docs.mcpDescCol': '描述',
  'docs.mcpYes': '是',
  'docs.mcpNo': '否',
  'docs.mcpFieldCommandDesc': '用于启动 MCP server 的可执行命令',
  'docs.mcpFieldArgsDesc': '传递给 server 的命令行参数',
  'docs.mcpFieldEnvDesc': 'KEY=VALUE 格式的环境变量',
  'docs.mcpFieldToolsDesc': '允许使用的工具名称；为空时可使用该 server 提供的全部工具',
  'docs.mcpFieldSetupDesc': '启动 server 前运行的 shell 命令，例如构建索引',
  'docs.mcpNote': '如果 MCP 工具名称与内置工具冲突，该工具将被跳过并显示警告。setup 命令的超时时间为 5 分钟。',
  'docs.mcpExample': '示例：添加 CodeGraph 进行代码结构分析',
  'docs.envTitle': 'Claude Code 集成',
  'docs.envDesc': '如果您已经是 Claude Code 用户并配置了以下环境变量，Open Code Review 将自动识别——无需额外配置：',
  'docs.envNote': '您也可以使用 <code>ocr config</code> 覆盖或补充这些设置。',
  'docs.copy': '复制',

  // Docs Sidebar
  'docs.sidebar.gettingStarted': '入门指南',
  'docs.sidebar.userGuide': '使用指南',
  'docs.sidebar.quickstart': '快速开始',
  'docs.sidebar.installation': '安装',
  'docs.sidebar.configuration': '配置',
  'docs.sidebar.cliReference': 'CLI 参考',
  'docs.sidebar.reviewRules': '评审规则',
  'docs.sidebar.architecture': '架构',
  'docs.sidebar.tools': '工具',
  'docs.sidebar.mcp': 'MCP 服务器',
  'docs.sidebar.viewer': '会话查看器',
  'docs.sidebar.telemetry': '遥测',
  'docs.sidebar.integrations': '集成',
  'docs.sidebar.agentSkill': 'Agent Skill',
  'docs.sidebar.claudeCode': 'Command（Claude Code）',
  'docs.sidebar.subprocess': 'Direct Subprocess',
  'docs.sidebar.cicd': 'CI/CD',
  'docs.sidebar.contributing': '贡献',
  'docs.sidebar.faq': 'FAQ',
  'docs.search.placeholder': '搜索...',
  'docs.search.noResults': '未找到结果',
  'docs.search.hint.select': '选择',
  'docs.search.hint.open': '打开',
  'docs.search.hint.close': '关闭',

  // Blog
  'blog.title': '博客',
  'blog.allTags': '全部',
  'blog.backToList': '← 返回博客',
  'blog.toc': '目录',
  'blog.noPosts': '暂无文章。',
  'blog.noPostsForTag': '该标签下暂无文章。',
  'blog.search.placeholder': '搜索文章...',
  'blog.search.noResults': '未找到结果',
};
