Files
agent-fox/packages/web/src/lib/i18n/en.ts
YANG JIANKUAN 8ed857c31c merge: 合并 main 分支的 i18n 重构到 login-page 功能分支
解决冲突:
- i18n.tsx: 采用 main 的独立文件架构(en.ts/zh.ts),新增 OAuth/branding 翻译 key
- Login.tsx: 保留左右分栏布局,合入 main 的验证消息 i18n 化
- Register.tsx: 同上,合入 main 的 placeholder i18n 化

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:31:41 +08:00

381 lines
20 KiB
TypeScript

const en = {
// ===== Landing Page =====
// Nav
'nav.features': 'Features',
'nav.tools': 'Tools',
'nav.testimonials': 'Testimonials',
'nav.pricing': 'Pricing',
'nav.faq': 'FAQ',
'nav.signIn': 'Sign In',
'nav.getStarted': 'Get Started',
'nav.dashboard': 'Dashboard',
// Hero
'hero.badge': 'MCP-Powered API Intelligence',
'hero.title': 'API Docs for LLMs,',
'hero.titleHighlight': 'Done Right',
'hero.subtitle': 'Let AI agents query your OpenAPI documentation with surgical precision. Multi-level retrieval serves exactly the tokens needed — not the entire spec.',
'hero.cta': 'Start Free',
'hero.ctaSecondary': 'View Documentation',
'hero.terminal.comment': '# Connect your AI tool to any API documentation',
'hero.terminal.cmd1': 'get_project_overview',
'hero.terminal.res1': '{ "name": "Stripe API", "modules": 12, "endpoints": 247 }',
'hero.terminal.cmd2': 'list_endpoints moduleId="payments"',
'hero.terminal.res2': '[ "POST /charges", "GET /charges/:id", "POST /refunds" ... ]',
'hero.terminal.cmd3': 'get_endpoint_detail endpointId="create-charge"',
'hero.terminal.res3': '{ params: [...], requestBody: {...}, responses: {...} } // ~800 tokens',
// Features
'features.label': 'Features',
'features.title': 'Intelligent API Retrieval',
'features.subtitle': 'Five specialized MCP tools designed for minimal token usage per call',
'features.progressive.title': 'Progressive Drill-Down',
'features.progressive.desc': 'Navigate from project overview to module list to endpoint detail — retrieve only what you need.',
'features.token.title': 'Token Efficient',
'features.token.desc': '~200-2,000 tokens per call vs 10,000+ for dumping the full OpenAPI spec into context.',
'features.spec.title': 'Full Spec Support',
'features.spec.desc': 'Import OpenAPI 3.x and Swagger 2.0 docs. All $refs are dereferenced automatically.',
'features.import.title': 'One-Click Import',
'features.import.desc': 'Paste a URL or upload JSON/YAML — your API docs are parsed and indexed instantly.',
'features.projects.title': 'Multi-Project',
'features.projects.desc': 'Organize APIs into isolated projects, each with its own MCP endpoint and API key.',
'features.security.title': 'Secure by Default',
'features.security.desc': 'Project-level API keys with bcrypt hashing. JWT auth for the dashboard. Zero shared secrets.',
// Tools
'tools.label': 'Compatibility',
'tools.title': 'Works with Your Favorite AI Tools',
'tools.subtitle': 'AgentFox speaks MCP — the universal protocol supported by leading AI coding assistants',
'tools.claude.name': 'Claude Code',
'tools.claude.desc': 'Anthropic CLI',
'tools.codex.name': 'Codex',
'tools.codex.desc': 'OpenAI CLI',
'tools.cursor.name': 'Cursor',
'tools.cursor.desc': 'AI Code Editor',
'tools.copilot.name': 'GitHub Copilot',
'tools.copilot.desc': 'GitHub AI Pair',
'tools.gemini.name': 'Gemini CLI',
'tools.gemini.desc': 'Google AI CLI',
'tools.antigravity.name': 'Antigravity',
'tools.antigravity.desc': 'AI Dev Platform',
'tools.openclaw.name': 'OpenClaw',
'tools.openclaw.desc': 'AI Dev Platform',
// Testimonials
'testimonials.label': 'Testimonials',
'testimonials.title': 'Loved by Developers',
'testimonials.1.quote': 'AgentFox cut our API integration time in half. Instead of copy-pasting docs, Claude just queries what it needs through MCP.',
'testimonials.1.name': 'Sarah Chen',
'testimonials.1.role': 'Staff Engineer at Vercel',
'testimonials.2.quote': 'The token savings are real — our Cursor workflow went from burning 15K tokens per API call to under 1K. Game changer for complex integrations.',
'testimonials.2.name': 'Marcus Rivera',
'testimonials.2.role': 'CTO at Stackblitz',
'testimonials.3.quote': 'We onboarded 50+ internal APIs to AgentFox in a week. Now every team\'s AI assistant can discover and use any service endpoint.',
'testimonials.3.name': 'Yuki Tanaka',
'testimonials.3.role': 'Platform Lead at Shopify',
// Pricing
'pricing.label': 'Pricing',
'pricing.title': 'Simple, Transparent Pricing',
'pricing.subtitle': 'Start free, scale as you grow',
'pricing.free.name': 'Free',
'pricing.free.price': '$0',
'pricing.free.period': '/month',
'pricing.free.desc': 'Perfect for trying out MCP-powered API docs',
'pricing.free.f1': '1 project',
'pricing.free.f2': '100 MCP queries/day',
'pricing.free.f3': 'OpenAPI 3.x & Swagger 2.0',
'pricing.free.f4': 'Community support',
'pricing.free.cta': 'Get Started',
'pricing.pro.name': 'Pro',
'pricing.pro.price': '$29',
'pricing.pro.period': '/month',
'pricing.pro.badge': 'Most Popular',
'pricing.pro.desc': 'For teams shipping with AI-assisted development',
'pricing.pro.f1': 'Unlimited projects',
'pricing.pro.f2': 'Unlimited MCP queries',
'pricing.pro.f3': 'Priority import queue',
'pricing.pro.f4': 'Team collaboration',
'pricing.pro.f5': 'Priority support',
'pricing.pro.cta': 'Start Free Trial',
'pricing.enterprise.name': 'Enterprise',
'pricing.enterprise.price': 'Custom',
'pricing.enterprise.period': '',
'pricing.enterprise.desc': 'For organizations with advanced requirements',
'pricing.enterprise.f1': 'Self-hosted deployment',
'pricing.enterprise.f2': 'SSO / SAML',
'pricing.enterprise.f3': 'SLA guarantee',
'pricing.enterprise.f4': 'Dedicated support',
'pricing.enterprise.f5': 'Custom integrations',
'pricing.enterprise.cta': 'Contact Sales',
// FAQ
'faq.label': 'FAQ',
'faq.title': 'Frequently Asked Questions',
'faq.1.q': 'What is MCP and how does AgentFox use it?',
'faq.1.a': 'MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data sources. AgentFox exposes your API documentation through MCP tools, so AI coding assistants like Claude Code, Cursor, and Copilot can query endpoint details on demand — without dumping the entire spec into their context window.',
'faq.2.q': 'Which OpenAPI formats are supported?',
'faq.2.a': 'AgentFox supports both OpenAPI 3.x and Swagger 2.0 specifications. You can import documents in JSON or YAML format, or provide a URL to fetch them directly. All $ref references are automatically dereferenced during import.',
'faq.3.q': 'How much does it reduce token usage?',
'faq.3.a': 'Each MCP tool call returns ~200-2,000 tokens of focused information, compared to 10,000+ tokens for dumping a full API spec. For a typical integration task, this means 80-95% reduction in token consumption.',
'faq.4.q': 'Is my API documentation secure?',
'faq.4.a': 'Yes. Each project has its own API key (bcrypt hashed, never stored in plain text). The MCP endpoint requires authentication for every request. User dashboard access uses JWT with automatic token rotation.',
'faq.5.q': 'Which AI tools are compatible?',
'faq.5.a': 'Any tool that supports the MCP protocol can connect to AgentFox. This includes Claude Code, OpenAI Codex CLI, OpenClaw, Gemini CLI, Cursor, GitHub Copilot (via MCP plugins), Antigravity, and more. If your tool supports MCP, it works with AgentFox.',
'faq.6.q': 'Can I self-host AgentFox?',
'faq.6.a': 'Yes! AgentFox is designed for both cloud and self-hosted deployment. The Enterprise plan includes full self-hosted support with Docker Compose, along with SSO integration and dedicated support.',
// Footer
'footer.product': 'Product',
'footer.features': 'Features',
'footer.pricing': 'Pricing',
'footer.docs': 'Documentation',
'footer.changelog': 'Changelog',
'footer.resources': 'Resources',
'footer.github': 'GitHub',
'footer.community': 'Community',
'footer.blog': 'Blog',
'footer.legal': 'Legal',
'footer.privacy': 'Privacy',
'footer.terms': 'Terms',
'footer.copyright': '© 2026 AgentFox. All rights reserved.',
'footer.tagline': 'MCP-powered API documentation for AI agents.',
// ===== Common =====
'common.cancel': 'Cancel',
'common.confirm': 'Confirm',
'common.delete': 'Delete',
'common.save': 'Save',
'common.back': 'Back',
'common.done': 'Done',
'common.copy': 'Copy',
'common.copied': 'Copied',
'common.continue': 'Continue',
'common.import': 'Import',
'common.importing': 'Importing...',
'common.signOut': 'Sign Out',
'common.signOutConfirm': 'Are you sure you want to sign out?',
'common.settings': 'Settings',
'common.modules': 'Modules',
'common.endpoints': 'Endpoints',
'common.total': 'total',
'common.add': 'Add',
'common.fromUrl': 'From URL',
'common.uploadFile': 'Upload File',
'common.dropFile': 'Drop your OpenAPI file here',
'common.jsonOrYaml': 'JSON or YAML',
// ===== Theme =====
'theme.light': 'Light',
'theme.dark': 'Dark',
'theme.system': 'System',
// ===== Auth =====
// Login
'auth.login.title': 'Sign in to AgentFox',
'auth.login.subtitle': 'API documentation for LLMs',
'auth.login.email': 'Email',
'auth.login.password': 'Password',
'auth.login.submit': 'Sign In',
'auth.login.submitting': 'Signing in...',
'auth.login.noAccount': 'Don\'t have an account?',
'auth.login.signUp': 'Sign Up',
'auth.login.emailRequired': 'Email is required',
'auth.login.emailInvalid': 'Please enter a valid email address',
'auth.login.passwordRequired': 'Password is required',
'auth.login.passwordPlaceholder': 'Enter your password',
'auth.login.or': 'or continue with',
// Branding
'auth.productName': 'AgentFox',
'auth.slogan': 'API Docs for LLMs, Done Right',
'auth.feature1': 'Multi-level API retrieval for minimal token usage',
'auth.feature2': 'Import OpenAPI specs in seconds',
'auth.feature3': 'Works with any MCP-compatible LLM',
// Register
'auth.register.title': 'Create your account',
'auth.register.subtitle': 'Get started with AgentFox',
'auth.register.name': 'Name',
'auth.register.email': 'Email',
'auth.register.password': 'Password',
'auth.register.submit': 'Create Account',
'auth.register.submitting': 'Creating account...',
'auth.register.hasAccount': 'Already have an account?',
'auth.register.signIn': 'Sign In',
'auth.register.nameRequired': 'Name is required',
'auth.register.emailRequired': 'Email is required',
'auth.register.emailInvalid': 'Please enter a valid email address',
'auth.register.passwordRequired': 'Password is required',
'auth.register.passwordMin': 'Password must be at least 8 characters',
'auth.register.namePlaceholder': 'Your name',
'auth.register.passwordPlaceholder': 'At least 8 characters',
'auth.register.or': 'or continue with',
// OAuth
'auth.oauth.google': 'Google',
'auth.oauth.github': 'GitHub',
'auth.oauth.apple': 'Apple',
// Callback
'auth.callback.loading': 'Completing sign in...',
'auth.callback.error': 'Sign in failed',
'auth.callback.retry': 'Try again',
// ===== Dashboard Layout =====
'dashboard.layout.projects': 'Projects',
'dashboard.layout.allProjects': 'All Projects',
'dashboard.layout.onboardingTitle': 'Welcome! Generate an API key to start using MCP services.',
'dashboard.layout.onboardingDesc': 'You\'ll need an API key to connect your LLM client to your projects.',
'dashboard.layout.generateApiKey': 'Generate API Key',
// ===== Dashboard Projects =====
'dashboard.projects.title': 'Projects',
'dashboard.projects.importBtn': 'Import API Doc',
'dashboard.projects.emptyTitle': 'No projects yet',
'dashboard.projects.emptyDesc': 'Import an OpenAPI document to get started with MCP-powered API documentation.',
'dashboard.projects.importFirst': 'Import Your First API',
'dashboard.projects.deleteTitle': 'Delete project',
'dashboard.projects.deleteDesc': 'Are you sure you want to delete "{name}"? This will permanently remove all modules, endpoints, and MCP configuration.',
'dashboard.projects.deleteBtn': 'Delete project',
// ===== Project Detail =====
'dashboard.projectDetail.breadcrumbProjects': 'Projects',
'dashboard.projectDetail.notFound': 'Project not found',
'dashboard.projectDetail.backToProjects': 'Back to projects',
'dashboard.projectDetail.tabMcp': 'MCP',
'dashboard.projectDetail.tabDocs': 'Documentation',
'dashboard.projectDetail.tabModules': 'Modules',
'dashboard.projectDetail.tabSettings': 'Settings',
// ===== Import Dialog =====
'dashboard.import.title': 'Import OpenAPI Document',
'dashboard.import.desc': 'Import a Swagger 2.0 or OpenAPI 3.x document to create a new project.',
'dashboard.import.successTitle': 'Import Successful',
'dashboard.import.goToProject': 'Go to Project',
// ===== Reimport Dialog =====
'dashboard.reimport.title': 'Re-import API Document',
'dashboard.reimport.subtitle': 'This action will replace all existing data.',
'dashboard.reimport.warningTitle': 'The following data will be permanently deleted:',
'dashboard.reimport.warningModules': '{count} module(s)',
'dashboard.reimport.warningEndpoints': '{count} endpoint(s)',
'dashboard.reimport.warningNote': 'New modules and endpoints will be created from the imported document. The API key will remain unchanged.',
'dashboard.reimport.importTitle': 'Import New Document',
'dashboard.reimport.importDesc': 'Provide a Swagger 2.0 or OpenAPI 3.x document.',
'dashboard.reimport.submit': 'Re-import',
'dashboard.reimport.successTitle': 'Re-import Successful',
'dashboard.reimport.successDesc': 'API documentation has been updated.',
// ===== MCP Integration =====
'dashboard.mcp.urlTitle': 'MCP Service URL',
'dashboard.mcp.urlDesc': 'Connect your LLM client to this endpoint.',
'dashboard.mcp.configTitle': 'Configuration for Claude Code / Cursor',
'dashboard.mcp.configDesc': 'Add this to your MCP client configuration.',
'dashboard.mcp.keyGenerated': 'API key generated. Copy it from',
'dashboard.mcp.keyReplace': 'and replace',
'dashboard.mcp.keyAbove': 'above.',
'dashboard.mcp.noKeyWarning': 'You need to generate an API key before using MCP.',
'dashboard.mcp.openSettings': 'Open Settings',
'dashboard.mcp.toolsTitle': 'Available MCP Tools',
'dashboard.mcp.toolsDesc': '5 tools for progressive drill-down, designed for minimal token usage.',
'dashboard.mcp.tool1Desc': 'Get project name, version, base URL, and module summary. Call this first.',
'dashboard.mcp.tool2Desc': 'List all modules with descriptions and endpoint counts.',
'dashboard.mcp.tool3Desc': 'List endpoints in a module. Provide moduleId.',
'dashboard.mcp.tool4Desc': 'Get full endpoint details: parameters, request body, responses.',
'dashboard.mcp.tool5Desc': 'Search by keyword across all endpoints. Optional moduleId filter.',
// ===== Project Settings =====
'dashboard.projectSettings.generalTitle': 'General',
'dashboard.projectSettings.generalDesc': 'Update your project name and description.',
'dashboard.projectSettings.projectName': 'Project Name',
'dashboard.projectSettings.description': 'Description',
'dashboard.projectSettings.saveChanges': 'Save Changes',
'dashboard.projectSettings.saved': 'Saved',
'dashboard.projectSettings.reimportTitle': 'Re-import API Document',
'dashboard.projectSettings.reimportDesc': 'Replace the current API documentation with a new OpenAPI document. This will clear all existing modules ({modules}) and endpoints ({endpoints}), then recreate them from the new document.',
'dashboard.projectSettings.reimportBtn': 'Re-import Document',
'dashboard.projectSettings.dangerZone': 'Danger Zone',
'dashboard.projectSettings.dangerDesc': 'Permanently delete this project and all its data. This action cannot be undone.',
'dashboard.projectSettings.deleteProject': 'Delete Project',
'dashboard.projectSettings.deleteTitle': 'Delete project',
'dashboard.projectSettings.deleteDesc': 'Permanently delete "{name}"? All modules, endpoints, and MCP configuration will be removed.',
// ===== Module Management =====
'dashboard.modules.addTitle': 'Add Manual Module',
'dashboard.modules.placeholder': 'Module name',
'dashboard.modules.allModules': 'All Modules',
'dashboard.modules.emptyTitle': 'No modules yet',
'dashboard.modules.emptyDesc': 'Modules are automatically created when you import an API document. You can also add manual modules above.',
'dashboard.modules.deleteTitle': 'Delete module',
'dashboard.modules.deleteDesc': 'Delete "{name}"? This will also remove its {count} endpoints.',
'dashboard.modules.deleteBtn': 'Delete module',
// ===== Doc Preview =====
'dashboard.docs.modules': 'Modules',
'dashboard.docs.noModules': 'No modules',
'dashboard.docs.allEndpoints': 'All endpoints',
'dashboard.docs.noEndpoints': 'No endpoints',
'dashboard.docs.noEndpointsModule': 'This module has no endpoints.',
'dashboard.docs.noEndpointsProject': 'No endpoints in this project yet. Import an API document to get started.',
'dashboard.docs.deprecated': 'deprecated',
'dashboard.docs.operationId': 'Operation ID',
// ===== Schema View =====
'dashboard.schema.parameters': 'Parameters',
'dashboard.schema.name': 'Name',
'dashboard.schema.in': 'In',
'dashboard.schema.type': 'Type',
'dashboard.schema.required': 'required',
'dashboard.schema.optional': 'optional',
'dashboard.schema.descriptionCol': 'Description',
'dashboard.schema.requestBody': 'Request Body',
'dashboard.schema.responses': 'Responses',
'dashboard.schema.noSchema': 'No schema',
'dashboard.schema.ofObjects': 'of objects:',
'dashboard.schema.enum': 'enum:',
'dashboard.schema.default': 'default:',
'dashboard.schema.nullable': 'nullable',
// ===== Settings Dialog =====
'dashboard.settings.title': 'Settings',
'dashboard.settings.profileTitle': 'Profile',
'dashboard.settings.profileDesc': 'Manage your personal information.',
'dashboard.settings.displayName': 'Display Name',
'dashboard.settings.saveProfile': 'Save Profile',
'dashboard.settings.saving': 'Saving...',
'dashboard.settings.profileUpdated': 'Profile updated',
'dashboard.settings.apiKeyTitle': 'API Key',
'dashboard.settings.apiKeyDesc': 'Used to authenticate all MCP requests across your projects.',
'dashboard.settings.keySaveWarning': 'Save this key now — you won\'t be able to see it again.',
'dashboard.settings.copyToClipboard': 'Copy to Clipboard',
'dashboard.settings.keySaved': 'I\'ve saved it, continue',
'dashboard.settings.noKey': 'No API key generated yet. Generate one to use MCP services.',
'dashboard.settings.generateKey': 'Generate API Key',
'dashboard.settings.generating': 'Generating...',
'dashboard.settings.rotateKey': 'Rotate API Key',
'dashboard.settings.rotateTitle': 'Rotate API Key',
'dashboard.settings.rotateDesc': 'The current API key will be invalidated immediately. All MCP clients using the old key will stop working. A new key will be generated.',
'dashboard.settings.rotateConfirm': 'Rotate Key',
'dashboard.settings.passwordPrompt': 'Enter your password to {action} the API key.',
'dashboard.settings.passwordPromptCopy': 'copy',
'dashboard.settings.passwordPromptReveal': 'reveal',
'dashboard.settings.currentPassword': 'Current password',
'dashboard.settings.verifying': 'Verifying...',
'dashboard.settings.changePasswordTitle': 'Change Password',
'dashboard.settings.changePasswordDesc': 'Update your password to keep your account secure.',
'dashboard.settings.currentPasswordLabel': 'Current Password',
'dashboard.settings.newPasswordLabel': 'New Password',
'dashboard.settings.confirmPasswordLabel': 'Confirm New Password',
'dashboard.settings.changePassword': 'Change Password',
'dashboard.settings.changingPassword': 'Changing...',
'dashboard.settings.passwordMismatch': 'Passwords do not match',
'dashboard.settings.passwordChanged': 'Password changed successfully',
'dashboard.settings.enterCurrentPassword': 'Enter current password',
'dashboard.settings.atLeast8Chars': 'At least 8 characters',
'dashboard.settings.confirmNewPassword': 'Confirm new password',
};
export default en;