feat: 初始化 Toolso.AI 开源 AI 工具导航站项目

🎯 项目概述
- 一个开源的 AI 工具导航站,帮助用户发现和探索优秀的 AI 工具
- 基于 Next.js 16 + React 19 构建的现代化全栈应用

✨ 核心功能
- AI 工具目录:分类展示、搜索筛选、工具详情页
- 工具提交:用户可提交新工具,社区驱动
- 管理后台:工具审核、用户管理、角色权限控制
- 博客系统:MDX 驱动,AI 资讯和教程
- 国际化支持:中文/英文双语 (next-intl)
- 用户认证:Better Auth + Google OAuth
- 深色/浅色主题切换

🛠 技术栈
- 前端:Next.js 16 (App Router) + React 19 + TypeScript
- 样式:Tailwind CSS + Framer Motion 动画
- UI 组件:自定义组件库 + Radix UI
- 表单验证:React Hook Form + Zod
- 数据库:PostgreSQL + Drizzle ORM
- 认证:Better Auth (邮箱密码 + Google OAuth)
- 邮件:Resend (验证邮件 + Newsletter)
- 存储:Cloudflare R2 / AWS S3 兼容

📁 项目结构
- src/app/[locale]/(auth) - 认证页面
- src/app/[locale]/(marketing) - 营销页面 (首页、博客、工具目录)
- src/app/[locale]/(protected) - 受保护页面 (仪表板、个人资料)
- src/app/[locale]/(admin) - 管理后台
- src/features - 功能模块
- src/lib - 核心业务逻辑
- messages - 国际化翻译文件

🗄 数据库
- 包含 user, session, account, verification, passwordResetToken 等核心表
- 支持 Drizzle ORM 迁移管理

📝 文档
- 完整的 CLAUDE.md 项目指南
- 环境变量配置示例 (.env.example)
- MIT 开源许可证
This commit is contained in:
CoolChange.AI
2026-01-03 23:52:28 +08:00
commit 8976caaaad
191 changed files with 37184 additions and 0 deletions
+627
View File
@@ -0,0 +1,627 @@
{
"common": {
"brand": {
"name": "Toolso.AI",
"tagline": "Discover the Best AI Tools",
"copyright": "Copyright © 2025",
"allRightsReserved": "All rights reserved"
},
"actions": {
"signIn": "Sign in",
"signUp": "Sign Up",
"signOut": "Sign Out",
"getStarted": "Get Started",
"startFree": "Start Free",
"learnMore": "Learn More",
"viewAll": "View All",
"submit": "Submit",
"cancel": "Cancel",
"save": "Save",
"delete": "Delete",
"edit": "Edit",
"update": "Update",
"continue": "Continue",
"back": "Back",
"next": "Next"
},
"status": {
"loading": "Loading...",
"verified": "Verified",
"pending": "Pending",
"active": "Active",
"inactive": "Inactive"
}
},
"navigation": {
"main": {
"tools": "Tools",
"blog": "Blog",
"contact": "Contact",
"dashboard": "Dashboard",
"profile": "Profile"
},
"footer": {
"legal": {
"terms": "Terms of Service",
"privacy": "Privacy Policy",
"cookies": "Cookie Policy"
},
"social": {
"twitter": "Twitter",
"linkedin": "LinkedIn",
"github": "GitHub"
}
}
},
"hero": {
"badge": "Discover the Best AI Tools",
"title": "Discover the Best AI Tools",
"description": "Explore our curated collection of AI tools. Find the perfect tools for productivity, creativity, development, and more.",
"cta": {
"primary": "Explore Tools",
"secondary": "Read Blog"
}
},
"features": {
"title": "Everything You Need to Build Fast",
"subtitle": "Stop wasting time on boilerplate. Focus on your unique features while this template handles the foundation.",
"items": {
"aiOptimized": {
"title": "Modern Tech Stack",
"description": "Built with Next.js 14, TypeScript, Tailwind CSS, and PostgreSQL. Production-ready from day one."
},
"zeroPipeline": {
"title": "Authentication Ready",
"description": "Email/password and Google OAuth configured. Session management and protected routes ready to use."
},
"nonTechnical": {
"title": "Admin Dashboard",
"description": "Complete admin panel for user management. Monitor your users and manage permissions easily."
},
"productionGrade": {
"title": "Blog System Included",
"description": "MDX-powered blog with i18n support. Create content in multiple languages with SEO optimization."
}
}
},
"testimonials": {
"title": "Trusted by AI Enthusiasts",
"subtitle": "Join thousands of users discovering the best AI tools for their workflows.",
"items": [
{
"name": "Sarah Chen",
"quote": "Toolso.AI helped me find the perfect AI writing assistant. The categorization makes discovery so easy!",
"designation": "Content Creator"
},
{
"name": "Michael Park",
"quote": "Finally, a comprehensive AI tools directory that's well-organized. Saved me hours of research.",
"designation": "Product Manager"
},
{
"name": "Emily Rodriguez",
"quote": "I discover new AI tools every week on Toolso.AI. It's become my go-to resource for AI exploration.",
"designation": "Startup Founder"
},
{
"name": "David Kim",
"quote": "The search and filter features are incredibly helpful. Found exactly what I needed in minutes.",
"designation": "Software Engineer"
},
{
"name": "Lisa Wang",
"quote": "Love the multilingual support! Makes it easy to explore AI tools in both English and Chinese.",
"designation": "Digital Marketer"
},
{
"name": "James Liu",
"quote": "Great resource for staying up-to-date with the latest AI tools. The blog section is also very informative.",
"designation": "AI Researcher"
}
]
},
"companies": {
"title": "Built with Industry-Leading Technologies",
"subtitle": "Built on modern stack trusted by the world's best teams"
},
"gridFeatures": {
"aiReady": {
"title": "Extensible Architecture",
"description": "Clean, modular code structure. Easy to add new features and integrations."
},
"creem": {
"title": "Database Ready",
"description": "PostgreSQL with Drizzle ORM configured. Type-safe queries and migrations ready."
},
"auth": {
"title": "Authentication System",
"description": "Better Auth with email/password and OAuth. Session management and protected routes ready."
},
"deploy": {
"title": "One-Click Deploy",
"description": "Deploy to Vercel, Railway, or any platform instantly. Production-ready from day one."
},
"typescript": {
"title": "TypeScript + Tailwind",
"description": "Modern tech stack with Next.js 14, TypeScript, Tailwind CSS, and shadcn/ui components."
},
"database": {
"title": "Admin Dashboard",
"description": "Complete admin panel for user management and system monitoring."
},
"seo": {
"title": "SEO & Marketing",
"description": "Meta tags, Open Graph, sitemap, and analytics. Everything for organic growth."
},
"vibeCoding": {
"title": "Blog System",
"description": "MDX-powered blog with multi-language support. Create content that ranks."
}
},
"cta": {
"title": "Find Your Perfect AI Tool",
"description": "Browse our curated collection of AI tools and discover what works best for you.",
"button": "Explore Tools"
},
"auth": {
"login": {
"title": "Sign in to your account",
"emailLabel": "Email address",
"emailPlaceholder": "hello@example.com",
"passwordLabel": "Password",
"passwordPlaceholder": "••••••••",
"forgotPassword": "Forgot password?",
"noAccount": "Don't have an account?",
"signUpLink": "Sign Up",
"signInButton": "Sign in",
"signingIn": "Signing in...",
"errors": {
"invalidEmail": "Please enter valid email",
"emailRequired": "Please enter email",
"passwordRequired": "Please enter password",
"loginFailed": "Login failed. Please try again.",
"googleLoginFailed": "Google login failed. Please try again."
}
},
"signup": {
"title": "Sign up for an account",
"nameLabel": "Full name",
"namePlaceholder": "John Doe",
"emailLabel": "Email address",
"emailPlaceholder": "hello@example.com",
"passwordLabel": "Password",
"passwordPlaceholder": "••••••••",
"hasAccount": "Already have an account?",
"signInLink": "Sign in",
"signUpButton": "Sign Up",
"signingUp": "Signing up...",
"errors": {
"nameRequired": "Please enter your name",
"invalidEmail": "Please enter valid email",
"emailRequired": "Please enter email",
"passwordRequired": "Please enter password",
"signupFailed": "Sign up failed. Please try again.",
"googleSignupFailed": "Google sign up failed. Please try again."
}
},
"social": {
"googleSignIn": "Continue with Google",
"or": "Or continue with"
},
"checkEmail": {
"title": "Check Your Email",
"description": "We've sent a verification link to your email address. Please click the link to verify your account and get started.",
"notReceived": "Didn't receive the email?",
"checkSpam": "Check your spam or junk folder",
"checkEmailCorrect": "Make sure you entered the correct email",
"waitAndCheck": "Wait a few minutes and check again",
"resendButton": "Resend Verification Email",
"resending": "Sending...",
"resendSuccess": "Verification email sent successfully! Please check your inbox.",
"resendError": "Failed to resend verification email.",
"backToLogin": "Back to Login",
"securityNote": "For your security, the verification link will expire in 24 hours."
},
"verifyEmail": {
"verifying": "Verifying Email",
"verifyingDescription": "Please wait while we verify your email address...",
"success": "Email Verified!",
"successDescription": "Your email has been successfully verified! Redirecting to login...",
"alreadyVerified": "Already Verified",
"failed": "Verification Failed",
"goToLogin": "Go to Login",
"backToSignUp": "Back to Sign Up",
"requestNew": "Request New Verification Email",
"checkSpamNote": "Check your spam folder if you don't see our emails"
},
"emailVerifiedGuard": {
"title": "Email Verification Required",
"description": "Please verify your email address to access this page. Check your inbox for the verification link we sent to:",
"resendButton": "Resend Verification Email",
"resending": "Sending...",
"resendSuccess": "Verification email sent! Please check your inbox.",
"resendError": "Failed to send verification email. Please try again.",
"signOutLink": "Sign out and try a different account"
}
},
"Admin": {
"sidebar": {
"title": "Admin Panel",
"subtitle": "System Management",
"dashboard": "Dashboard",
"tools": "Tools",
"categories": "Categories",
"tags": "Tags",
"users": "Users",
"backToDashboard": "Back to User Dashboard"
},
"header": {
"welcome": "Welcome",
"adminBadge": "Admin"
},
"dashboard": {
"title": "Admin Dashboard",
"totalUsers": "Total Users",
"activeUsers": "Active Users",
"recentUsers": "Recent Users",
"viewAllUsers": "View All Users"
},
"toolsManagement": {
"title": "Tools Management",
"totalCount": "{count} tools",
"searchPlaceholder": "Search tool name or slug...",
"allStatus": "All Status",
"published": "Published",
"draft": "Draft",
"addTool": "Add Tool",
"tool": "Tool",
"slug": "Slug",
"status": "Status",
"createdAt": "Created",
"actions": "Actions",
"noData": "No tools data",
"previous": "Previous",
"next": "Next",
"confirmDelete": "Are you sure you want to delete \"{name}\"? This action cannot be undone.",
"deleted": "Tool deleted",
"deleteFailed": "Delete failed",
"statusUpdated": "Status updated",
"statusUpdateFailed": "Status update failed",
"toDraft": "Set to draft",
"publish": "Publish",
"edit": "Edit",
"visitWebsite": "Visit website",
"delete": "Delete",
"modal": {
"editTitle": "Edit Tool",
"addTitle": "Add Tool",
"basicInfo": "Basic Information",
"linksAndImages": "Links & Images",
"categories": "Categories",
"tags": "Tags",
"slug": "Slug",
"status": "Status",
"nameEn": "English Name",
"nameZh": "Chinese Name",
"descriptionEn": "English Description",
"descriptionZh": "Chinese Description",
"domain": "Domain",
"websiteUrl": "Website URL",
"logoUrl": "Logo URL",
"coverImageUrl": "Cover Image URL",
"cancel": "Cancel",
"saving": "Saving...",
"saveChanges": "Save Changes",
"createTool": "Create Tool",
"requiredField": "Please fill in required fields",
"updated": "Tool updated",
"created": "Tool created",
"updateFailed": "Update failed",
"createFailed": "Create failed"
}
},
"categoriesManagement": {
"title": "Categories Management",
"addCategory": "Add Category",
"order": "Order",
"category": "Category",
"slug": "Slug",
"toolCount": "Tools",
"toolCountLabel": "{count} tools",
"actions": "Actions",
"noData": "No categories data",
"edit": "Edit",
"delete": "Delete",
"cannotDelete": "This category has {count} tools, cannot delete",
"confirmDelete": "Are you sure you want to delete category \"{name}\"?",
"deleted": "Category deleted",
"deleteFailed": "Delete failed",
"modal": {
"editTitle": "Edit Category",
"addTitle": "Add Category",
"slug": "Slug",
"icon": "Icon (emoji)",
"nameEn": "English Name",
"nameZh": "Chinese Name",
"sortOrder": "Sort Order",
"descriptionEn": "English Description",
"descriptionZh": "Chinese Description",
"cancel": "Cancel",
"saving": "Saving...",
"saveChanges": "Save Changes",
"createCategory": "Create Category",
"requiredField": "Please fill in required fields",
"updated": "Category updated",
"created": "Category created",
"updateFailed": "Update failed",
"createFailed": "Create failed"
}
},
"tagsManagement": {
"title": "Tags Management",
"searchPlaceholder": "Search tags...",
"addTag": "Add Tag",
"toolCountLabel": "{count} tools",
"noData": "No tags data",
"edit": "Edit",
"delete": "Delete",
"confirmDeleteWithTools": "This tag is used by {count} tools. Deleting it will remove the tag from these tools. Continue?",
"confirmDelete": "Are you sure you want to delete tag \"{name}\"?",
"deleted": "Tag deleted",
"deleteFailed": "Delete failed",
"modal": {
"editTitle": "Edit Tag",
"addTitle": "Add Tag",
"slug": "Slug",
"nameEn": "English Name",
"nameZh": "Chinese Name",
"cancel": "Cancel",
"saving": "Saving...",
"saveChanges": "Save Changes",
"createTag": "Create Tag",
"requiredField": "Please fill in required fields",
"updated": "Tag updated",
"created": "Tag created",
"updateFailed": "Update failed",
"createFailed": "Create failed"
}
},
"users": {
"searchPlaceholder": "Search by name or email...",
"user": "User",
"role": "Role",
"status": "Status",
"joined": "Joined",
"actions": "Actions",
"admin": "Admin",
"banned": "Banned",
"active": "Active",
"unverified": "Unverified",
"verified": "Verified",
"emailVerified": "Email Verified",
"edit": "Edit",
"ban": "Ban",
"unban": "Unban",
"viewDetails": "View Details",
"banReason": "Ban Reason",
"banExpires": "Ban Expires",
"userDetails": "User Details",
"name": "Name",
"email": "Email",
"lastActive": "Last Active",
"close": "Close",
"roleUpdated": "Role updated successfully",
"roleUpdateFailed": "Failed to update role",
"userBanned": "User has been banned",
"userUnbanned": "User has been unbanned",
"banFailed": "Failed to ban/unban user",
"cancel": "Cancel",
"pagination": {
"previous": "Previous",
"next": "Next",
"page": "Page {current} of {total}"
}
}
},
"dashboard": {
"title": "Dashboard",
"welcome": "Welcome back",
"cards": {
"personalInfo": {
"title": "Personal Info",
"labels": {
"name": "Name",
"email": "Email",
"status": "Status",
"notSet": "Not set"
}
},
"quickActions": {
"title": "Quick Actions",
"editProfile": "Edit Profile",
"accountSettings": "Account Settings",
"securitySettings": "Security Settings"
}
}
},
"profile": {
"title": "Profile",
"subtitle": "Manage your account settings and preferences",
"sections": {
"basicInfo": {
"title": "Basic Information",
"fullName": "Full Name",
"email": "Email Address",
"verificationStatus": "Verification Status",
"notSet": "Not set",
"nameNotSet": "Name not set",
"accountId": "Account ID"
},
"accountSettings": {
"title": "Account Settings",
"memberSince": "Member Since"
}
}
},
"contact": {
"title": "Contact Us",
"subtitle": "We'd love to hear from you. Send us a message and we'll respond as soon as possible.",
"description": "Please reach out to us and we will get back to you shortly.",
"testimonial": {
"title": "We're here to help",
"description": "Our team is ready to assist you with any questions or feedback."
},
"form": {
"nameLabel": "Full Name",
"namePlaceholder": "John Doe",
"emailLabel": "Email address",
"emailPlaceholder": "hello@example.com",
"companyLabel": "Company",
"companyPlaceholder": "Your Company",
"messageLabel": "Message",
"messagePlaceholder": "Enter your message here",
"submitButton": "Submit",
"submitting": "Sending...",
"submitSuccess": "Message sent successfully!",
"submitError": "Failed to send message. Please try again."
}
},
"blog": {
"title": "Blog",
"subtitle": "Latest insights and updates from our team",
"readMore": "Read More",
"minRead": "min read"
},
"errors": {
"404": {
"title": "404 - Page Not Found",
"message": "The page you are looking for doesn't exist.",
"backHome": "Go to Homepage"
},
"500": {
"title": "Something Went Wrong",
"message": "We're experiencing technical difficulties. Please try again later.",
"backHome": "Back to Home"
},
"general": {
"title": "An Error Occurred",
"message": "Something unexpected happened. Please try again.",
"tryAgain": "Try Again"
}
},
"featuredTestimonials": {
"people": [
{
"name": "John Doe",
"designation": "Software Engineer"
},
{
"name": "Jane Smith",
"designation": "Product Manager"
},
{
"name": "Bob Johnson",
"designation": "Designer"
},
{
"name": "Alice Brown",
"designation": "Developer"
}
]
},
"footer": {
"tagline": "Discover the best AI tools to boost your productivity.",
"product": {
"title": "Product",
"features": "Features",
"documentation": "Documentation"
},
"company": {
"title": "Company",
"about": "About",
"blog": "Blog"
},
"legal": {
"title": "Legal",
"privacy": "Privacy",
"terms": "Terms",
"cookies": "Cookies"
},
"social": {
"title": "Social",
"twitter": "Twitter",
"linkedin": "LinkedIn",
"github": "GitHub"
},
"newsletter": {
"title": "Subscribe to Newsletter",
"description": "Get the latest updates and news directly in your inbox.",
"placeholder": "Enter your email",
"subscribe": "Subscribe"
}
},
"tools": {
"title": "AI Tools Directory",
"subtitle": "Discover the best AI tools to boost your productivity",
"searchPlaceholder": "Search tools...",
"all": "All",
"foundTools": "Found {count} tools",
"visitWebsite": "Visit website",
"noTools": "No tools found",
"backToTools": "Back to tools",
"about": "About",
"categories": "Categories",
"tags": "Tags",
"visitButton": "Visit Website",
"toolInfo": "Tool Info",
"domain": "Domain",
"added": "Added",
"notFound": "Tool Not Found"
},
"seo": {
"home": {
"title": "Toolso.AI - Discover the Best AI Tools Directory",
"description": "Explore our curated collection of AI tools across various categories. Find the perfect AI tools for productivity, creativity, development, and more.",
"ogImage": "https://toolso.ai/banner.png"
},
"blog": {
"title": "Blog - Toolso.AI",
"description": "Latest insights, tutorials and updates about AI tools. Stay informed about the best AI tools and industry trends.",
"ogImage": "https://toolso.ai/banner.png"
},
"contact": {
"title": "Contact Us - Toolso.AI",
"description": "Get in touch with us. We'd love to hear your feedback and tool suggestions.",
"ogImage": "https://toolso.ai/banner.png"
},
"login": {
"title": "Login - Toolso.AI",
"description": "Sign in to your account to submit tools, save favorites, and contribute to our AI tools directory.",
"ogImage": "https://toolso.ai/banner.png"
},
"signup": {
"title": "Sign Up - Toolso.AI",
"description": "Create your account and start contributing to our AI tools directory. Submit tools and join our community.",
"ogImage": "https://toolso.ai/banner.png"
},
"terms": {
"title": "Terms of Service - Toolso.AI",
"description": "Read our terms of service to understand the rules and guidelines for using Toolso.AI.",
"ogImage": "https://toolso.ai/banner.png"
},
"privacy": {
"title": "Privacy Policy - Toolso.AI",
"description": "Learn how we collect, use, and protect your personal information and data on Toolso.AI.",
"ogImage": "https://toolso.ai/banner.png"
},
"cookies": {
"title": "Cookie Policy - Toolso.AI",
"description": "Understand how we use cookies and similar tracking technologies on Toolso.AI.",
"ogImage": "https://toolso.ai/banner.png"
},
"tools": {
"title": "AI Tools Directory - Discover the Best AI Tools",
"description": "Explore our curated collection of AI tools. Find the best AI tools for productivity, creativity, and more."
}
}
}
+649
View File
@@ -0,0 +1,649 @@
{
"common": {
"brand": {
"name": "Toolso.AI",
"tagline": "发现最好的 AI 工具",
"copyright": "版权所有 © 2025",
"allRightsReserved": "保留所有权利"
},
"actions": {
"signIn": "登录",
"signUp": "注册",
"signOut": "退出登录",
"getStarted": "开始使用",
"startFree": "免费开始",
"startTrial": "开始试用",
"contactSales": "联系销售",
"learnMore": "了解更多",
"viewAll": "查看全部",
"submit": "提交",
"cancel": "取消",
"save": "保存",
"delete": "删除",
"edit": "编辑",
"update": "更新",
"continue": "继续",
"back": "返回",
"next": "下一步"
},
"status": {
"loading": "加载中...",
"verified": "已验证",
"pending": "待处理",
"active": "已激活",
"inactive": "未激活"
}
},
"navigation": {
"main": {
"tools": "工具库",
"blog": "博客",
"contact": "联系我们",
"dashboard": "仪表盘",
"profile": "个人资料"
},
"footer": {
"legal": {
"terms": "服务条款",
"privacy": "隐私政策",
"cookies": "Cookie 政策"
},
"social": {
"twitter": "Twitter",
"linkedin": "领英",
"github": "GitHub"
}
}
},
"hero": {
"badge": "发现最好的 AI 工具",
"title": "发现最好的AI工具",
"description": "精选优质 AI 工具集合,涵盖效率提升、创意设计、开发辅助等多个领域,帮你找到最适合的 AI 助手。",
"cta": {
"primary": "探索工具",
"secondary": "阅读博客"
}
},
"features": {
"title": "开始构建所需的一切",
"subtitle": "告别重复的样板代码。专注于你的独特功能,基础设施已为你准备就绪。",
"items": {
"aiOptimized": {
"title": "现代技术栈",
"description": "基于 Next.js 14、TypeScript、Tailwind CSS 和 PostgreSQL 构建。采用行业最佳实践和企业级架构。"
},
"zeroPipeline": {
"title": "开箱即用的认证",
"description": "Better Auth 驱动的完整认证系统,支持邮箱密码和 OAuth 登录、邮箱验证、密码重置和会话管理。"
},
"nonTechnical": {
"title": "管理后台",
"description": "功能齐全的管理面板,包含用户管理、角色权限控制和业务数据监控。轻松扩展满足你的需求。"
},
"productionGrade": {
"title": "博客系统",
"description": "内置 MDX 博客系统,支持语法高亮、SEO 优化和国际化。非常适合内容营销和产品更新。"
}
}
},
"testimonials": {
"title": "用户评价",
"subtitle": "来自使用 Toolso.AI 发现优质 AI 工具的真实用户反馈。",
"items": [
{
"name": "张伟",
"quote": "Toolso.AI 帮我找到了完美的 AI 写作助手,分类清晰让发现变得非常简单!",
"designation": "内容创作者"
},
{
"name": "王强",
"quote": "终于有了一个组织良好的 AI 工具目录,节省了我大量的研究时间。",
"designation": "产品经理"
},
{
"name": "李娜",
"quote": "每周都能在 Toolso.AI 上发现新的 AI 工具,已经成为我探索 AI 的首选资源。",
"designation": "创业者"
},
{
"name": "陈婷",
"quote": "搜索和筛选功能非常好用,几分钟就找到了我需要的工具。",
"designation": "软件工程师"
},
{
"name": "赵明",
"quote": "喜欢中英文双语支持!可以轻松探索各种 AI 工具。",
"designation": "数字营销专家"
},
{
"name": "朱悦",
"quote": "了解最新 AI 工具的好资源,博客板块也很有价值。",
"designation": "AI 研究员"
}
]
},
"companies": {
"title": "采用行业领先技术构建",
"subtitle": "基于现代技术栈,被全球顶尖团队信赖"
},
"gridFeatures": {
"aiReady": {
"title": "可扩展架构",
"description": "模块化设计,轻松添加新功能。遵循 Next.js 最佳实践,便于维护。"
},
"creem": {
"title": "邮件系统",
"description": "集成 Resend 邮件服务,支持交易邮件、验证邮件和新闻通讯。"
},
"auth": {
"title": "身份认证",
"description": "Better Auth 提供邮箱密码和 OAuth 支持。会话管理和路由保护已就绪。"
},
"deploy": {
"title": "一键部署",
"description": "即刻部署到 Vercel、Railway 或任何平台。从第一天起即可投入生产。"
},
"typescript": {
"title": "TypeScript + Tailwind",
"description": "现代技术栈包括 Next.js 14、TypeScript、Tailwind CSS 和 shadcn/ui 组件。"
},
"database": {
"title": "数据库 + ORM",
"description": "PostgreSQL 配合 Drizzle ORM。类型安全的查询和迁移已配置。"
},
"seo": {
"title": "SEO 和营销",
"description": "元标签、Open Graph、站点地图和分析。为有机增长准备的一切。"
},
"vibeCoding": {
"title": "国际化支持",
"description": "内置中英文支持,使用 next-intl 实现。轻松添加更多语言。"
}
},
"cta": {
"title": "找到最适合你的 AI 工具",
"description": "浏览精选 AI 工具集合,发现能帮助你提升效率的最佳工具。",
"button": "探索工具"
},
"auth": {
"login": {
"title": "登录您的账户",
"emailLabel": "邮箱地址",
"emailPlaceholder": "hello@example.com",
"passwordLabel": "密码",
"passwordPlaceholder": "••••••••",
"forgotPassword": "忘记密码?",
"noAccount": "还没有账户?",
"signUpLink": "注册",
"signInButton": "登录",
"signingIn": "登录中...",
"errors": {
"invalidEmail": "请输入有效的邮箱地址",
"emailRequired": "请输入邮箱地址",
"passwordRequired": "请输入密码",
"loginFailed": "登录失败,请重试。",
"googleLoginFailed": "Google 登录失败,请重试。"
}
},
"signup": {
"title": "注册一个新账户",
"nameLabel": "姓名",
"namePlaceholder": "张三",
"emailLabel": "邮箱地址",
"emailPlaceholder": "hello@example.com",
"passwordLabel": "密码",
"passwordPlaceholder": "••••••••",
"hasAccount": "已经有账户了?",
"signInLink": "登录",
"signUpButton": "注册",
"signingUp": "注册中...",
"errors": {
"nameRequired": "请输入您的姓名",
"invalidEmail": "请输入有效的邮箱地址",
"emailRequired": "请输入邮箱地址",
"passwordRequired": "请输入密码",
"signupFailed": "注册失败,请重试。",
"googleSignupFailed": "Google 注册失败,请重试。"
}
},
"social": {
"googleSignIn": "使用 Google 继续",
"or": "或者继续使用"
},
"checkEmail": {
"title": "请查收您的邮件",
"description": "我们已向您的邮箱发送了验证链接。请点击链接验证您的账户并开始使用。",
"notReceived": "没有收到邮件?",
"checkSpam": "检查垃圾邮件文件夹",
"checkEmailCorrect": "确认输入的邮箱地址是否正确",
"waitAndCheck": "等待几分钟后再次查看",
"resendButton": "重新发送验证邮件",
"resending": "发送中...",
"resendSuccess": "验证邮件发送成功!请查收您的邮箱。",
"resendError": "发送验证邮件失败,请重试。",
"backToLogin": "返回登录",
"securityNote": "为了您的安全,验证链接将在24小时后失效。"
},
"verifyEmail": {
"verifying": "正在验证邮箱",
"verifyingDescription": "请稍候,我们正在验证您的邮箱地址...",
"success": "邮箱验证成功!",
"successDescription": "您的邮箱已成功验证!正在跳转到登录页面...",
"alreadyVerified": "已验证",
"failed": "验证失败",
"goToLogin": "前往登录",
"backToSignUp": "返回注册",
"requestNew": "重新发送验证邮件",
"checkSpamNote": "如果没有收到邮件,请检查垃圾邮件文件夹"
},
"emailVerifiedGuard": {
"title": "需要验证邮箱",
"description": "请验证您的邮箱地址以访问此页面。请查收我们发送到以下邮箱的验证链接:",
"resendButton": "重新发送验证邮件",
"resending": "发送中...",
"resendSuccess": "验证邮件已发送!请查收您的邮箱。",
"resendError": "发送验证邮件失败,请重试。",
"signOutLink": "退出并使用其他账户"
}
},
"Admin": {
"sidebar": {
"title": "管理后台",
"subtitle": "系统管理",
"dashboard": "仪表板",
"tools": "工具管理",
"categories": "分类管理",
"tags": "标签管理",
"users": "用户管理",
"backToDashboard": "返回用户面板"
},
"header": {
"welcome": "欢迎",
"adminBadge": "管理员"
},
"dashboard": {
"title": "管理员仪表板",
"totalUsers": "总用户数",
"activeUsers": "活跃用户",
"recentUsers": "最近注册用户",
"viewAllUsers": "查看所有用户"
},
"toolsManagement": {
"title": "工具管理",
"totalCount": "共 {count} 个工具",
"searchPlaceholder": "搜索工具名称或 slug...",
"allStatus": "全部状态",
"published": "已发布",
"draft": "草稿",
"addTool": "添加工具",
"tool": "工具",
"slug": "Slug",
"status": "状态",
"createdAt": "创建时间",
"actions": "操作",
"noData": "暂无工具数据",
"previous": "上一页",
"next": "下一页",
"confirmDelete": "确定要删除工具 \"{name}\" 吗?此操作不可恢复。",
"deleted": "工具已删除",
"deleteFailed": "删除失败",
"statusUpdated": "状态已更新",
"statusUpdateFailed": "状态更新失败",
"toDraft": "转为草稿",
"publish": "发布",
"edit": "编辑",
"visitWebsite": "访问网站",
"delete": "删除",
"modal": {
"editTitle": "编辑工具",
"addTitle": "添加工具",
"basicInfo": "基本信息",
"linksAndImages": "链接和图片",
"categories": "分类",
"tags": "标签",
"slug": "Slug",
"status": "状态",
"nameEn": "英文名称",
"nameZh": "中文名称",
"descriptionEn": "英文描述",
"descriptionZh": "中文描述",
"domain": "域名",
"websiteUrl": "网站链接",
"logoUrl": "Logo URL",
"coverImageUrl": "封面图 URL",
"cancel": "取消",
"saving": "保存中...",
"saveChanges": "保存更改",
"createTool": "创建工具",
"requiredField": "请填写必填字段",
"updated": "工具已更新",
"created": "工具已创建",
"updateFailed": "更新失败",
"createFailed": "创建失败"
}
},
"categoriesManagement": {
"title": "分类管理",
"addCategory": "添加分类",
"order": "排序",
"category": "分类",
"slug": "Slug",
"toolCount": "工具数",
"toolCountLabel": "{count} 个工具",
"actions": "操作",
"noData": "暂无分类数据",
"edit": "编辑",
"delete": "删除",
"cannotDelete": "该分类下有 {count} 个工具,无法删除",
"confirmDelete": "确定要删除分类 \"{name}\" 吗?",
"deleted": "分类已删除",
"deleteFailed": "删除失败",
"modal": {
"editTitle": "编辑分类",
"addTitle": "添加分类",
"slug": "Slug",
"icon": "图标 (emoji)",
"nameEn": "英文名称",
"nameZh": "中文名称",
"sortOrder": "排序",
"descriptionEn": "英文描述",
"descriptionZh": "中文描述",
"cancel": "取消",
"saving": "保存中...",
"saveChanges": "保存更改",
"createCategory": "创建分类",
"requiredField": "请填写必填字段",
"updated": "分类已更新",
"created": "分类已创建",
"updateFailed": "更新失败",
"createFailed": "创建失败"
}
},
"tagsManagement": {
"title": "标签管理",
"searchPlaceholder": "搜索标签...",
"addTag": "添加标签",
"toolCountLabel": "{count} 个工具",
"noData": "暂无标签数据",
"edit": "编辑",
"delete": "删除",
"confirmDeleteWithTools": "该标签被 {count} 个工具使用,删除后这些工具将失去该标签。确定要删除吗?",
"confirmDelete": "确定要删除标签 \"{name}\" 吗?",
"deleted": "标签已删除",
"deleteFailed": "删除失败",
"modal": {
"editTitle": "编辑标签",
"addTitle": "添加标签",
"slug": "Slug",
"nameEn": "英文名称",
"nameZh": "中文名称",
"cancel": "取消",
"saving": "保存中...",
"saveChanges": "保存更改",
"createTag": "创建标签",
"requiredField": "请填写必填字段",
"updated": "标签已更新",
"created": "标签已创建",
"updateFailed": "更新失败",
"createFailed": "创建失败"
}
},
"users": {
"searchPlaceholder": "搜索用户姓名或邮箱...",
"user": "用户",
"role": "角色",
"status": "状态",
"joined": "加入时间",
"actions": "操作",
"admin": "管理员",
"banned": "已禁用",
"active": "活跃",
"unverified": "未验证",
"edit": "编辑",
"ban": "禁用",
"unban": "解禁",
"viewDetails": "查看详情",
"banReason": "禁用原因",
"banExpires": "禁用到期",
"userDetails": "用户详情",
"name": "姓名",
"email": "邮箱",
"emailVerified": "邮箱验证",
"verified": "已验证",
"lastActive": "最后活跃",
"close": "关闭",
"roleUpdated": "角色已更新",
"roleUpdateFailed": "角色更新失败",
"userBanned": "用户已禁用",
"userUnbanned": "用户已解禁",
"banFailed": "禁用操作失败",
"pagination": {
"previous": "上一页",
"next": "下一页",
"page": "第 {current} / {total} 页"
}
}
},
"dashboard": {
"title": "仪表盘",
"welcome": "欢迎回来",
"cards": {
"personalInfo": {
"title": "个人信息",
"labels": {
"name": "姓名",
"email": "邮箱",
"status": "状态",
"notSet": "未设置"
}
},
"quickActions": {
"title": "快捷操作",
"editProfile": "编辑个人资料",
"accountSettings": "账户设置",
"securitySettings": "安全设置"
}
}
},
"profile": {
"title": "个人资料",
"subtitle": "管理您的账户设置和偏好",
"sections": {
"basicInfo": {
"title": "基本信息",
"fullName": "姓名",
"email": "邮箱地址",
"verificationStatus": "验证状态",
"notSet": "未设置",
"nameNotSet": "姓名未设置",
"accountId": "账户 ID"
},
"accountSettings": {
"title": "账户详情",
"memberSince": "注册于",
"lastLogin": "最近登录",
"accountType": "账户类型"
}
},
"form": {
"nameLabel": "姓名",
"namePlaceholder": "请输入您的姓名",
"emailLabel": "邮箱",
"emailPlaceholder": "请输入您的邮箱地址",
"updateButton": "更新资料",
"updating": "更新中...",
"updateSuccess": "个人资料更新成功",
"updateError": "个人资料更新失败"
}
},
"contact": {
"title": "联系我们",
"subtitle": "我们很乐意倾听您的声音。给我们发送消息,我们会尽快回复。",
"description": "请联系我们,我们会尽快回复。",
"testimonial": {
"title": "帮助用户发现最佳 AI 工具",
"description": "Toolso.AI 致力于为用户提供精选的 AI 工具目录,帮助大家找到最适合的 AI 助手。"
},
"form": {
"nameLabel": "姓名",
"namePlaceholder": "张三",
"emailLabel": "邮箱地址",
"emailPlaceholder": "hello@example.com",
"companyLabel": "公司",
"companyPlaceholder": "某某科技有限公司",
"messageLabel": "消息",
"messagePlaceholder": "请在此处输入您的消息",
"submitButton": "提交",
"submitting": "发送中...",
"submitSuccess": "消息发送成功!",
"submitError": "消息发送失败,请重试。"
}
},
"blog": {
"title": "博客",
"subtitle": "来自我们团队的最新见解与更新",
"readMore": "阅读更多",
"minRead": "分钟阅读"
},
"errors": {
"404": {
"title": "404 - 页面未找到",
"message": "您正在寻找的页面不存在。",
"backHome": "返回首页"
},
"500": {
"title": "出错了",
"message": "我们遇到了一些技术问题,请稍后重试。",
"backHome": "返回首页"
},
"general": {
"title": "发生错误",
"message": "发生了一些意外情况,请重试。",
"tryAgain": "重试"
}
},
"featuredTestimonials": {
"people": [
{
"name": "张伟",
"designation": "软件工程师"
},
{
"name": "王强",
"designation": "产品经理"
},
{
"name": "李娜",
"designation": "数据科学家"
},
{
"name": "陈婷",
"designation": "UX设计师"
},
{
"name": "赵明",
"designation": "全栈开发者"
},
{
"name": "朱悦",
"designation": "独立开发者"
}
]
},
"footer": {
"tagline": "发现最好的 AI 工具,提升你的工作效率。",
"product": {
"title": "产品",
"features": "功能",
"documentation": "文档"
},
"company": {
"title": "公司",
"about": "关于我们",
"blog": "博客",
"careers": "招聘"
},
"legal": {
"title": "法律",
"privacy": "隐私政策",
"terms": "服务条款",
"cookies": "Cookie 政策"
},
"social": {
"title": "社交",
"twitter": "Twitter",
"linkedin": "领英",
"github": "GitHub"
},
"newsletter": {
"title": "订阅邮件",
"description": "获取最新动态和资讯,直接发送到您的邮箱。",
"placeholder": "输入您的邮箱",
"subscribe": "订阅"
}
},
"tools": {
"title": "AI 工具库",
"subtitle": "发现最好的 AI 工具,提升您的工作效率",
"searchPlaceholder": "搜索工具...",
"all": "全部",
"foundTools": "共找到 {count} 个工具",
"visitWebsite": "访问网站",
"noTools": "暂无工具",
"backToTools": "返回工具列表",
"about": "介绍",
"categories": "分类",
"tags": "标签",
"visitButton": "访问网站",
"toolInfo": "工具信息",
"domain": "域名",
"added": "添加时间",
"notFound": "工具未找到"
},
"seo": {
"home": {
"title": "Toolso.AI - 发现最好的 AI 工具导航站",
"description": "探索精选的 AI 工具集合,涵盖多个类别。找到最适合效率提升、创意设计、开发辅助等场景的 AI 工具。",
"ogImage": "https://toolso.ai/banner.png"
},
"blog": {
"title": "博客 - Toolso.AI",
"description": "关于 AI 工具的最新资讯、教程和更新。了解最佳 AI 工具和行业趋势。",
"ogImage": "https://toolso.ai/banner.png"
},
"contact": {
"title": "联系我们 - Toolso.AI",
"description": "与我们取得联系。我们期待听到您的反馈和工具推荐建议。",
"ogImage": "https://toolso.ai/banner.png"
},
"login": {
"title": "登录 - Toolso.AI",
"description": "登录您的账户,提交工具、收藏喜爱的工具,为 AI 工具目录做贡献。",
"ogImage": "https://toolso.ai/banner.png"
},
"signup": {
"title": "注册 - Toolso.AI",
"description": "创建您的账户,开始为 AI 工具目录做贡献。提交工具、加入我们的社区。",
"ogImage": "https://toolso.ai/banner.png"
},
"terms": {
"title": "服务条款 - Toolso.AI",
"description": "阅读我们的服务条款,了解使用 Toolso.AI 的规则和指南。",
"ogImage": "https://toolso.ai/banner.png"
},
"privacy": {
"title": "隐私政策 - Toolso.AI",
"description": "了解我们如何在 Toolso.AI 上收集、使用和保护您的个人信息和数据。",
"ogImage": "https://toolso.ai/banner.png"
},
"cookies": {
"title": "Cookie 政策 - Toolso.AI",
"description": "了解我们如何在 Toolso.AI 上使用 cookies 和类似的跟踪技术。",
"ogImage": "https://toolso.ai/banner.png"
},
"tools": {
"title": "AI 工具库 - 发现最好的 AI 工具",
"description": "浏览精选的 AI 工具集合。找到提升效率、激发创意的最佳 AI 工具。"
}
}
}