import { TranslationKeys } from './types';

export const en: TranslationKeys = {
  // Navbar
  'navbar.features': 'Features',
  'navbar.benchmark': 'Benchmark',
  'navbar.quickstart': 'Quick Start',
  'navbar.docs': 'Docs',
  'navbar.blog': 'Blog',
  'navbar.getStarted': 'Get Started',

  // Hero
  'hero.title': 'AI Code Review\nValidated on Millions of\nReal-World Tasks',
  'hero.description': 'Open Code Review brings Alibaba\'s battle-tested code review Agent into your workflow. Connect any LLM, keep data fully private, and get review comments developers actually adopt.',
  'hero.quickStart': 'Quick Start',
  'hero.learnMore': 'Learn More',
  'hero.terminal': 'Terminal',
  'hero.copied': 'Copied!',
  'hero.copyFailed': 'Copy failed',

  // Highlights
  'highlights.stat1Value': '20K+',
  'highlights.stat1Label': 'ACTIVE USERS',
  'highlights.stat1Caption': 'Battle-tested inside Alibaba Group',
  'highlights.stat2Value': '> 30%',
  'highlights.stat2Label': 'ADOPTION RATE',
  'highlights.stat2Caption': 'Battle-tested inside Alibaba Group',
  'highlights.stat3Value': '1M+',
  'highlights.stat3Label': 'REAL-WORLD TASKS',
  'highlights.stat3Caption': 'Code review tasks executed',
  'highlights.stat4Value': '1/9',
  'highlights.stat4Label': 'TOKEN COST',
  'highlights.stat4Caption': 'vs. Claude Code · 1,000 PRs',
  'highlights.stat5Value': '25.10%',
  'highlights.stat5Label': 'AACR-BENCH',
  'highlights.stat5Caption': 'SEM.F1 benchmark score',
  'usecases.sectionLabel': 'USE CASES',
  'usecases.title': 'Who Is Open Code Review For?',
  'usecases.case1Title': 'Individual Developers',
  'usecases.case1Desc': 'Embed Open Code Review in your local AI-assisted development workflow for instant, high-quality code review feedback.',
  'usecases.case2Title': 'Platform Teams',
  'usecases.case2Desc': 'Seamlessly integrate into your internal systems with full control over data flow and review policies.',
  'usecases.case3Title': 'ML Researchers',
  'usecases.case3Desc': 'Use as a code quality verifier in RL training pipelines, providing reliable reward signals for code generation models.',

  // Features
  'features.sectionBadge': 'Core Features',
  'features.title': 'An Agent System Purpose-Built for Code Review',
  'features.subtitle': 'An AI Agent that reads files, searches the codebase, cross-references context, and applies fine-grained rules for deep review.',
  'features.feat1Title': 'Hybrid Architecture: Deterministic + Agent',
  'features.feat1Desc': 'Decouples deterministic engineering (task splitting, file filtering, line-number positioning, rule routing, async scheduling) from LLM Agent reasoning (risk detection, context exploration, issue classification) — engineering modules handle certainty, Agents handle semantics, optimizing quality, token cost, and speed.',
  'features.feat2Title': 'Precise Comment Positioning & Reflection',
  'features.feat2Desc': 'An independent line-level comment positioning module with a 3-tier progressive LLM strategy pinpoints each comment to exact line numbers. A separate reflection module intercepts hallucinations and knowledge drift early.',
  'features.feat3Title': 'Multi-Model Protocol Support',
  'features.feat3Desc': 'Supports both Anthropic Messages API and OpenAI Chat Completions API. Ships with preset providers including Anthropic, OpenAI, DashScope, DeepSeek, and Z.AI for out-of-the-box use, while also supporting custom model endpoints for private deployments.',
  'features.feat4Title': 'Dynamic Concurrent Processing',
  'features.feat4Desc': 'Dynamically splits sub-tasks for parallel review with configurable goroutine workers (default 8). Even large changesets complete quickly.',
  'features.feat5Title': 'Smart Memory Compression',
  'features.feat5Desc': 'Purpose-built memory compression for code review with 3-tier partitioning (frozen/compress/active) context management, breaking token limits for deep review.',
  'features.feat6Title': 'Built-in Review Rules',
  'features.feat6Desc': 'Review rules validated through massive real-world scenarios, covering 10+ languages including Java, TypeScript, Go, Python, Kotlin, Rust, C++, C, with specialized rules for NPE, thread safety, XSS, SQL injection, and more.',

  // Benchmark
  'benchmark.sectionLabel': 'OPEN BENCHMARK',
  'benchmark.title': 'Cross-Validated by 80+ Senior Engineers',
  'benchmark.subtitle': 'A real-world CodeReview benchmark selecting from 50 popular open-source repositories, comprising 200 real PullRequests, covering 10 programming languages, diverse issue types, and varying changeset sizes.',
  'benchmark.colRank': 'RANK',
  'benchmark.colModel': 'MODEL',
  'benchmark.colSource': 'SOURCE',
  'benchmark.colF1': 'F1',
  'benchmark.colPrecision': 'PRECISION',
  'benchmark.colRecall': 'RECALL',
  'benchmark.colAvgTime': 'AVG TIME',
  'benchmark.colAvgToken': 'AVG TOKEN',

  // QuickStart
  'quickstart.sectionLabel': 'QUICK START',
  'quickstart.title': 'Up and Running in Minutes',
  'quickstart.subtitle': 'No complex configuration. No third-party accounts needed beyond your chosen LLM provider.',
  'quickstart.step1Title': 'Install',
  'quickstart.step1Desc': 'One-command global install via npm.',
  'quickstart.step1Label1': 'Install',
  'quickstart.step1Label2': 'Verify Installation',
  'quickstart.step2Title': 'Configure',
  'quickstart.step2Desc': 'Set up your LLM provider interactively, or configure manually.',
  'quickstart.step2Label1': 'Interactive Setup (Recommended)',
  'quickstart.step2Label2': 'Manual Config (Alternative)',
  'quickstart.step2Label3': 'Verify Configuration',
  'quickstart.step3Title': 'Run Review',
  'quickstart.step3Desc': 'Start your first code review.',
  'quickstart.step3Label1': 'Review Commands',
  'quickstart.commentReview': '# Review current changes',
  'quickstart.commentBranch': '# Review diff between branches',
  'quickstart.commentCommit': '# Review a specific commit',
  'quickstart.copied': 'Copied!',

  // Footer
  'footer.brand': 'Open Code Review',
  'footer.copyright': '© Copyright 2026. All rights reserved.',

  // Docs Page (keep existing)
  'docs.toc': 'Table of Contents',
  'docs.install': '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 Integration',
  'docs.installTitle': 'Install',
  'docs.installLabel': 'Install',
  'docs.installVerifyLabel': 'Verify Installation',
  'docs.configTitle': 'Configuration & Verification',
  'docs.configDesc': 'Manage CLI configuration through a unified Provider system. Ships with built-in providers and supports custom providers for private deployments. Config is stored in <code>~/.opencodereview/config.json</code>.',
  'docs.configInteractive': 'Interactive Setup (Recommended)',
  'docs.configInteractiveDesc': 'The easiest way to configure Open Code Review. Select from built-in providers or add a custom one, set your API key, and choose a model.',
  'docs.configModelSelect': 'Model Selection',
  'docs.configModelSelectDesc': 'After choosing a provider, pick the model to use.',
  'docs.configListProviders': 'List Built-in Providers',
  'docs.configListProvidersDesc': 'View all available built-in LLM providers.',
  'docs.configManual': 'Manual Configuration',
  'docs.configManualBuiltin': 'Using a Built-in Provider',
  'docs.configManualBuiltinDesc': 'Built-in providers come with preset API URLs and protocols — just supply an API key.',
  'docs.configManualCustom': 'Using a Custom Provider',
  'docs.configManualCustomDesc': 'Connect to private deployments or other compatible endpoints.',
  'docs.configManualCustomNote': 'url and protocol are required for custom providers. Supported protocols: anthropic, openai.',
  'docs.configKeys': 'Supported Config Keys',
  'docs.configKeyProvider': 'Active provider name',
  'docs.configKeyProviderApiKey': 'API key for the provider',
  'docs.configKeyProviderModel': 'Model name',
  'docs.configKeyProviderUrl': 'API URL override',
  'docs.configKeyProviderExtraBody': 'Custom request body fields (JSON)',
  'docs.configKeyProviderExtraHeaders': 'Custom HTTP headers (key=value)',
  'docs.configKeyLanguage': 'Output Language',
  'docs.configKeyTelemetry': 'Telemetry',
  'docs.configVerify': 'Verify Configuration',
  'docs.configVerifyDesc': 'Run this command after configuration to test the LLM connection and confirm settings are correct.',
  'docs.reviewTitle': 'ocr review',
  'docs.reviewDesc': '<code>ocr review</code> is the core command for initiating AI code review.',
  'docs.reviewModes': 'Review Modes',
  'docs.reviewWorkspace': 'Workspace Mode (Default)',
  'docs.reviewWorkspaceDesc': 'Reviews staged + unstaged + untracked changes in the current workspace.',
  'docs.reviewBranch': 'Branch Diff Mode',
  'docs.reviewBranchDesc': 'Reviews the diff between two refs (based on merge-base).',
  'docs.reviewCommit': 'Single Commit Mode',
  'docs.reviewCommitDesc': 'Reviews a specific commit (diff against its parent).',
  'docs.reviewAdvanced': 'Advanced Usage',
  'docs.reviewBackground': 'Review with Requirement Context',
  'docs.reviewBackgroundDesc': 'Provide the requirement context (including important boundaries) to improve review quality.',
  'docs.reviewJson': 'JSON Output',
  'docs.reviewJsonDesc': 'Output results in structured JSON format for programmatic processing.',
  'docs.reviewAgent': 'Agent Mode',
  'docs.reviewAgentDesc': 'Output only the final summary without execution process, suitable for automation pipelines.',
  'docs.reviewPreviewLabel': 'Dry-Run Preview',
  'docs.reviewPreviewDesc': 'Lists the files that would be reviewed along with stats (file count, changed lines) — no LLM calls, no cost. Useful for checking scope before a full review.',
  'docs.reviewFlags': 'Flag Reference',
  'docs.reviewFlagCol1': 'Flag',
  'docs.reviewFlagCol2': 'Description',
  'docs.reviewFlagCol3': 'Default',
  'docs.reviewFlag1Desc': 'Specify commit hash to review',
  'docs.reviewFlag2Desc': 'Start ref (diff origin)',
  'docs.reviewFlag3Desc': 'Target ref (diff endpoint)',
  'docs.reviewFlag4Desc': 'Output format: text or json',
  'docs.reviewFlag5Desc': 'Git repository root',
  'docs.reviewFlag5Default': 'Current dir',
  'docs.reviewFlag6Desc': 'Path to review rules JSON file',
  'docs.reviewFlag6Default': 'Built-in',
  'docs.reviewFlag7Desc': 'Max concurrent file reviews',
  'docs.reviewFlag8Desc': 'Single task timeout (minutes)',
  'docs.reviewFlag9Desc': 'Output audience: human (show process) or agent (summary only)',
  'docs.reviewFlag10Desc': 'Max tool call rounds per file; only takes effect when greater than template default',
  'docs.reviewFlag10Default': 'Built-in',
  'docs.reviewFlag11Desc': 'Max concurrent git subprocesses',
  'docs.reviewNote': 'Note: <code>--from/--to</code> and <code>--commit</code> cannot be used together. When specifying <code>--from</code>, <code>--to</code> must also be specified.',
  'docs.scanTitle': 'ocr scan',
  'docs.scanDesc': '<code>ocr scan</code> reviews whole files instead of a diff - no Git history or meaningful diff required. Use it to audit an unfamiliar codebase, sweep a directory before a migration, or review any project where there is nothing to diff against.',
  'docs.scanVsTitle': 'ocr scan vs. ocr review',
  'docs.scanVsReviewLabel': 'ocr review',
  'docs.scanVsReview': '<code>ocr review</code> is diff-based: it reviews Git changes - staged/unstaged/untracked in the workspace, a branch range, or a single commit. It requires Git history to compute a diff.',
  'docs.scanVsScanLabel': 'ocr scan',
  'docs.scanVsScan': '<code>ocr scan</code> is full-file based: it reviews complete file contents regardless of Git history. It also works in non-git directories, falling back to a .gitignore-aware filesystem walk.',
  'docs.scanUsage': 'Basic Usage',
  'docs.scanUsageWhole': 'Scan the Entire Repository',
  'docs.scanUsageWholeDesc': 'Default behavior when no --path is given.',
  'docs.scanUsagePath': 'Scan a Specific Path',
  'docs.scanUsagePathDesc': 'Pass a repo-relative directory to narrow the scan.',
  'docs.scanUsageFile': 'Scan Specific Files',
  'docs.scanUsageFileDesc': 'Comma-separated file paths also work.',
  'docs.scanUsagePreviewLabel': 'Dry-Run Preview',
  'docs.scanUsagePreviewDesc': 'Lists every file in scope and reports stats (total count, reviewable vs. excluded with reasons, total lines) — no LLM calls, no cost. Useful for checking scope before spending tokens on a large repository.',
  'docs.scanBatching': 'Batching Strategies',
  'docs.scanBatchingDesc': 'The <code>--batch</code> flag controls how files are grouped into review batches. The scan template defaults to <code>by-language</code>; an empty or unrecognized value falls back to <code>none</code>.',
  'docs.scanBatchingNone': 'none',
  'docs.scanBatchingNoneDesc': 'Every file is its own batch - no grouping.',
  'docs.scanBatchingLang': 'by-language',
  'docs.scanBatchingLangDesc': 'Files are grouped by their (lowercased) file extension. Template default.',
  'docs.scanBatchingDir': 'by-directory',
  'docs.scanBatchingDirDesc': 'Files are grouped by their first-level directory under the repo root; root-level files form their own batch.',
  'docs.scanToggles': 'Stage Toggles: --no-plan, --no-dedup, --no-summary',
  'docs.scanTogglesDesc': 'A scan run has three optional stages beyond the core per-file review. Each can be disabled independently to trade review quality for speed and lower token cost.',
  'docs.scanTogglesPlanDesc': 'Skips the per-file PLAN_TASK pre-pass that scopes focus areas before the main review. Saves one LLM call per file; may reduce review focus.',
  'docs.scanTogglesDedupDesc': 'Skips the per-batch DEDUP_TASK. Keeps all raw comments, including near-duplicates that dedup would normally collapse.',
  'docs.scanTogglesSummaryDesc': 'Skips the post-run PROJECT_SUMMARY_TASK - the repo-level markdown summary generated after all batches finish.',
  'docs.scanBudget': 'Token Budget: --max-tokens-budget',
  'docs.scanBudgetDesc': 'Before dispatching, <code>ocr scan</code> prints a rough order-of-magnitude token-cost estimate. <code>--max-tokens-budget</code> caps total input+output token usage as reported by the LLM API; once the running total exceeds the cap, dispatch stops before starting the next batch. <code>0</code> (default) means unlimited.',
  'docs.scanFlags': 'Flag Reference',
  'docs.scanFlagCol1': 'Flag',
  'docs.scanFlagCol2': 'Description',
  'docs.scanFlagCol3': 'Default',
  'docs.scanFlag1Desc': 'Comma-separated repo-relative dirs/files to scan',
  'docs.scanFlag1Default': 'Whole repo',
  'docs.scanFlag2Desc': 'Comma-separated gitignore-style patterns to exclude; merged with rule.json excludes',
  'docs.scanFlag3Desc': 'Preview which files would be scanned without running the LLM',
  'docs.scanFlag4Desc': 'Cap total token usage (input+output); dispatch stops once exceeded (0 = unlimited)',
  'docs.scanFlag5Desc': 'Skip the per-file PLAN_TASK pre-pass',
  'docs.scanFlag6Desc': 'Skip the per-batch DEDUP_TASK',
  'docs.scanFlag7Desc': 'Skip the post-run PROJECT_SUMMARY_TASK',
  'docs.scanFlag8Desc': 'Batching strategy: none | by-language | by-directory',
  'docs.scanFlag9Desc': 'Output format: text or json',
  'docs.scanFlag10Desc': 'Max concurrent file scans',
  'docs.scanFlag11Desc': 'Concurrent task timeout in minutes',
  'docs.scanFlag12Desc': 'Output audience: human (show progress) or agent (summary only)',
  'docs.scanFlag13Desc': 'Optional requirement/business context for the scan',
  'docs.scanFlag14Desc': 'Max tool call rounds per file; only takes effect when greater than template default',
  'docs.scanFlag14Default': 'Built-in',
  'docs.scanFlag15Desc': 'Max concurrent git subprocesses',
  'docs.scanFlag16Desc': 'Path to custom JSON review rules',
  'docs.scanFlag17Desc': 'Path to custom JSON tools config',
  'docs.scanFlag17Default': 'Built-in',
  'docs.scanFlag18Desc': 'Repository or directory root to scan',
  'docs.scanFlag18Default': 'Current dir',
  'docs.scanNote': 'Note: <code>--max-tools</code> only raises the scan template\'s per-file tool-call budget — it has no effect when set lower than the template default.',
  'docs.viewerTitle': 'ocr viewer',
  'docs.viewerDesc': 'Starts a WebUI session viewer for browsing review session logs in a web interface.',
  'docs.viewerNote': 'After running, a local HTTP server starts providing a visual interface for browsing review session logs.',
  'docs.mcpTitle': 'MCP Server',
  'docs.mcpDesc': 'Open Code Review supports Model Context Protocol (MCP) servers, allowing the review agent to use external tools during code review via the stdio transport.',
  'docs.mcpConfig': 'Configure MCP Servers',
  'docs.mcpConfigLocation': 'MCP server configuration is stored in ~/.opencodereview/config.json.',
  'docs.mcpDelete': 'Delete MCP Servers',
  'docs.mcpFields': 'Configuration Fields',
  'docs.mcpFieldCol': 'Field',
  'docs.mcpRequiredCol': 'Required',
  'docs.mcpDescCol': 'Description',
  'docs.mcpYes': 'Yes',
  'docs.mcpNo': 'No',
  'docs.mcpFieldCommandDesc': 'The executable command to start the MCP server',
  'docs.mcpFieldArgsDesc': 'Command-line arguments passed to the server',
  'docs.mcpFieldEnvDesc': 'Environment variables in KEY=VALUE format',
  'docs.mcpFieldToolsDesc': 'Allowed tool names; if empty, all tools from the server are available',
  'docs.mcpFieldSetupDesc': 'A shell command to run before starting the server, such as building an index',
  'docs.mcpNote': 'If an MCP tool name conflicts with a built-in tool, it will be skipped with a warning. The setup command has a 5-minute timeout.',
  'docs.mcpExample': 'Example: Add CodeGraph for Code Structure Analysis',
  'docs.envTitle': 'Claude Code Integration',
  'docs.envDesc': 'If you are already a Claude Code user with the following environment variables configured, Open Code Review will recognize them automatically — no extra configuration needed:',
  'docs.envNote': 'You can also use <code>ocr config</code> to override or supplement these settings.',
  'docs.copy': 'Copy',

  // Docs Sidebar
  'docs.sidebar.gettingStarted': 'Getting Started',
  'docs.sidebar.userGuide': 'User Guide',
  'docs.sidebar.quickstart': 'QuickStart',
  'docs.sidebar.installation': 'Installation',
  'docs.sidebar.configuration': 'Configuration',
  'docs.sidebar.cliReference': 'CLI Reference',
  'docs.sidebar.reviewRules': 'Review Rules',
  'docs.sidebar.architecture': 'Architecture',
  'docs.sidebar.tools': 'Tools',
  'docs.sidebar.mcp': 'MCP Servers',
  'docs.sidebar.viewer': 'Session Viewer',
  'docs.sidebar.telemetry': 'Telemetry',
  'docs.sidebar.integrations': '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': 'Contributing',
  'docs.sidebar.faq': 'FAQ',
  'docs.search.placeholder': 'Search...',
  'docs.search.noResults': 'No results found',
  'docs.search.hint.select': 'Select',
  'docs.search.hint.open': 'Open',
  'docs.search.hint.close': 'Close',

  // Blog
  'blog.title': 'Blog',
  'blog.allTags': 'All',
  'blog.backToList': '← Back to Blog',
  'blog.toc': 'CONTENTS',
  'blog.noPosts': 'No posts yet.',
  'blog.noPostsForTag': 'No posts found for this tag.',
  'blog.search.placeholder': 'Search posts...',
  'blog.search.noResults': 'No results found',
};
