feat: AI Directory Platform 底座升级 + 五套主题站点
- 数据模型: vote/review/submission/claim/use_case/audience/collection/event (+tool 冗余统计列) - 社区: 投票(限流+原子toggle+API) / 评论(评分+优缺点+Helpful+聚合回写) / 提交(重复检测+审批发布) / 认领(Owner白名单编辑) - Ranking Engine: trending/popular/most-voted/most-saved/highest-rated/new/editors-choice (纯函数可测) - 发现体系: Use Case + Audience + Collection 三维发现 / /ai-tools-for / /best SEO 页 - Programmatic SEO: 页面生成器 / sitemap 270条 / AggregateRating/FAQPage/Breadcrumb/ItemList schema / alternatives + vs 对比页 - Analytics: event 事件流 + 外链跳转埋点 + /admin/analytics CTR 与搜索词分析 - Admin: submissions/claims/reviews/discovery/vote-audit/analytics 六个新后台 + 仪表盘扩展 - 主题系统: themes registry + 五套站点 (classic/product/editorial/niche/minimal) 构建期注入 - 认证: GitHub OAuth (env门控) + 登录回跳 redirect - i18n: 新增 7 个命名空间中英文案 (546 键一致) - 测试: bun test 32 用例 (ranking/slug/去重/SEO生成器) + Playwright e2e 脚本 - 种子: 14分类/16用例/9受众/40工具/6用户/投票/评论/6合集/7718事件
This commit is contained in:
+119
-2
@@ -208,7 +208,8 @@
|
||||
},
|
||||
"social": {
|
||||
"googleSignIn": "Continue with Google",
|
||||
"or": "Or continue with"
|
||||
"or": "Or continue with",
|
||||
"githubSignIn": "Continue with GitHub"
|
||||
},
|
||||
"checkEmail": {
|
||||
"title": "Check Your Email",
|
||||
@@ -255,7 +256,13 @@
|
||||
"categories": "Categories",
|
||||
"tags": "Tags",
|
||||
"users": "Users",
|
||||
"backToDashboard": "Back to User Dashboard"
|
||||
"backToDashboard": "Back to User Dashboard",
|
||||
"submissions": "Submissions",
|
||||
"claims": "Claims",
|
||||
"reviews": "Reviews",
|
||||
"discovery": "Discovery",
|
||||
"votes": "Vote Audit",
|
||||
"analytics": "Analytics"
|
||||
},
|
||||
"header": {
|
||||
"welcome": "Welcome",
|
||||
@@ -621,6 +628,23 @@
|
||||
},
|
||||
"categoryPage": {
|
||||
"viewAll": "View all {count} tools"
|
||||
},
|
||||
"reviewCta": "Ratings and reviews come from verified community members. Voted Helpful counts are shown next to each review.",
|
||||
"alternatives": "Alternatives",
|
||||
"seeAllAlternatives": "See all alternatives",
|
||||
"stats": {
|
||||
"votes": "Upvotes",
|
||||
"views": "Views"
|
||||
},
|
||||
"share": {
|
||||
"share": "Share",
|
||||
"copy": "Copy",
|
||||
"copyLink": "Copy link",
|
||||
"copied": "Link copied to clipboard"
|
||||
},
|
||||
"sort": {
|
||||
"latest": "Latest",
|
||||
"trending": "Trending"
|
||||
}
|
||||
},
|
||||
"seo": {
|
||||
@@ -675,5 +699,98 @@
|
||||
"visitWebsite": "Visit website",
|
||||
"empty": "No tools yet. Add some in the admin panel.",
|
||||
"viewAll": "View All Tools"
|
||||
},
|
||||
"voting": {
|
||||
"vote": "Upvote",
|
||||
"voted": "Upvoted",
|
||||
"unvote": "Remove vote",
|
||||
"loginRequired": "Please sign in to vote — you'll be brought right back.",
|
||||
"rateLimited": "Slow down a bit — too many votes in a short time.",
|
||||
"error": "Vote failed. Please try again."
|
||||
},
|
||||
"reviews": {
|
||||
"title": "Reviews",
|
||||
"writeReview": "Write a review",
|
||||
"empty": "No reviews yet — be the first to share your experience.",
|
||||
"loadMore": "Load more",
|
||||
"loading": "Loading...",
|
||||
"helpful": "Helpful",
|
||||
"verifiedUser": "Verified user",
|
||||
"pros": "Pros",
|
||||
"cons": "Cons",
|
||||
"yourRating": "Your rating",
|
||||
"ratingRequired": "Please pick a star rating first.",
|
||||
"titlePlaceholder": "Sum it up in one line (optional)",
|
||||
"contentPlaceholder": "What did you use it for? How well does it work?",
|
||||
"prosPlaceholder": "What do you like about it?",
|
||||
"consPlaceholder": "What could be better?",
|
||||
"useCasePlaceholder": "Your use case (e.g. social media content)",
|
||||
"saving": "Saving...",
|
||||
"submit": "Publish review",
|
||||
"update": "Update review",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete my review",
|
||||
"deleted": "Review deleted",
|
||||
"tooShort": "Review is a bit short — tell us at least a sentence.",
|
||||
"error": "Could not save your review. Please try again.",
|
||||
"basedOn": "Based on {count} reviews"
|
||||
},
|
||||
"submission": {
|
||||
"name": "Tool name",
|
||||
"websiteUrl": "Website URL",
|
||||
"tagline": "Tagline",
|
||||
"taglinePlaceholder": "One-line pitch shown on cards",
|
||||
"description": "Description",
|
||||
"descriptionPlaceholder": "What does it do? Who is it for? What makes it different?",
|
||||
"logoUrl": "Logo URL",
|
||||
"category": "Category",
|
||||
"pricingLabel": "Pricing model",
|
||||
"pricing": {
|
||||
"free": "Free",
|
||||
"freemium": "Freemium",
|
||||
"paid": "Paid",
|
||||
"freeTrial": "Free Trial",
|
||||
"openSource": "Open Source",
|
||||
"contact": "Contact for pricing"
|
||||
},
|
||||
"founderName": "Founder / company",
|
||||
"contactEmail": "Contact email",
|
||||
"socialLinks": "Social links",
|
||||
"note": "Notes for the editors",
|
||||
"notePlaceholder": "Anything that helps us review faster (launch date, metrics...)",
|
||||
"selectPlaceholder": "Select...",
|
||||
"submit": "Submit for review",
|
||||
"submitting": "Submitting...",
|
||||
"submitted": "Submitted! We'll review it within 48 hours.",
|
||||
"reviewNote": "Free listing · reviewed within 48h",
|
||||
"duplicateFound": "Looks like this tool may already be listed:",
|
||||
"duplicateBlocked": "This tool appears to be already listed. Duplicate submissions are not allowed.",
|
||||
"error": "Submission failed. Please check your inputs."
|
||||
},
|
||||
"claim": {
|
||||
"claimThisTool": "Claim this tool",
|
||||
"verifiedOwner": "Verified owner",
|
||||
"formTitle": "Claim ownership of this listing",
|
||||
"rolePlaceholder": "Your role (e.g. Founder, Marketing lead)",
|
||||
"messagePlaceholder": "How should we verify you? (same-domain email, press page...)",
|
||||
"proofPlaceholder": "Proof URL (optional)",
|
||||
"submit": "Send claim",
|
||||
"submitting": "Sending...",
|
||||
"submitted": "Claim sent! We'll review it shortly.",
|
||||
"pendingExists": "You already have a pending claim for this tool.",
|
||||
"cancel": "Cancel",
|
||||
"error": "Could not send your claim."
|
||||
},
|
||||
"rankings": {
|
||||
"title": "Community Rankings",
|
||||
"subtitle": "Seven live leaderboards powered by votes, reviews, saves and engagement — not sponsored placement.",
|
||||
"trending": "Trending",
|
||||
"popular": "Popular",
|
||||
"mostVoted": "Most Voted",
|
||||
"mostSaved": "Most Saved",
|
||||
"highestRated": "Highest Rated",
|
||||
"new": "New",
|
||||
"editorsChoice": "Editor's Choice",
|
||||
"empty": "No tools on this board yet."
|
||||
}
|
||||
}
|
||||
|
||||
+119
-2
@@ -208,7 +208,8 @@
|
||||
},
|
||||
"social": {
|
||||
"googleSignIn": "使用 Google 继续",
|
||||
"or": "或者继续使用"
|
||||
"or": "或者继续使用",
|
||||
"githubSignIn": "使用 GitHub 登录"
|
||||
},
|
||||
"checkEmail": {
|
||||
"title": "请查收您的邮件",
|
||||
@@ -255,7 +256,13 @@
|
||||
"categories": "分类管理",
|
||||
"tags": "标签管理",
|
||||
"users": "用户管理",
|
||||
"backToDashboard": "返回用户面板"
|
||||
"backToDashboard": "返回用户面板",
|
||||
"submissions": "提交审核",
|
||||
"claims": "认领审核",
|
||||
"reviews": "评论审核",
|
||||
"discovery": "发现管理",
|
||||
"votes": "投票审计",
|
||||
"analytics": "数据分析"
|
||||
},
|
||||
"header": {
|
||||
"welcome": "欢迎",
|
||||
@@ -629,6 +636,23 @@
|
||||
},
|
||||
"categoryPage": {
|
||||
"viewAll": "查看该分类全部 {count} 个工具"
|
||||
},
|
||||
"reviewCta": "评分与评论来自已验证的社区用户,每条评论旁展示“有用”计数。",
|
||||
"alternatives": "替代品",
|
||||
"seeAllAlternatives": "查看全部替代品",
|
||||
"stats": {
|
||||
"votes": "票数",
|
||||
"views": "浏览量"
|
||||
},
|
||||
"share": {
|
||||
"share": "分享",
|
||||
"copy": "复制",
|
||||
"copyLink": "复制链接",
|
||||
"copied": "链接已复制"
|
||||
},
|
||||
"sort": {
|
||||
"latest": "最新",
|
||||
"trending": "最热"
|
||||
}
|
||||
},
|
||||
"seo": {
|
||||
@@ -683,5 +707,98 @@
|
||||
"visitWebsite": "访问网站",
|
||||
"empty": "暂无工具,请先在后台添加",
|
||||
"viewAll": "查看全部工具"
|
||||
},
|
||||
"voting": {
|
||||
"vote": "投票",
|
||||
"voted": "已投",
|
||||
"unvote": "取消投票",
|
||||
"loginRequired": "投票需要先登录,登录后会自动回到本页。",
|
||||
"rateLimited": "操作太快了,请稍后再试。",
|
||||
"error": "投票失败,请重试。"
|
||||
},
|
||||
"reviews": {
|
||||
"title": "用户评论",
|
||||
"writeReview": "写评论",
|
||||
"empty": "还没有评论——来分享你的使用体验吧。",
|
||||
"loadMore": "加载更多",
|
||||
"loading": "加载中...",
|
||||
"helpful": "有用",
|
||||
"verifiedUser": "已验证用户",
|
||||
"pros": "优点",
|
||||
"cons": "缺点",
|
||||
"yourRating": "你的评分",
|
||||
"ratingRequired": "请先选择星级评分。",
|
||||
"titlePlaceholder": "一句话总结(可选)",
|
||||
"contentPlaceholder": "你用它做什么?效果如何?",
|
||||
"prosPlaceholder": "它哪里做得好?",
|
||||
"consPlaceholder": "哪里还可以改进?",
|
||||
"useCasePlaceholder": "你的使用场景(如 社媒内容创作)",
|
||||
"saving": "保存中...",
|
||||
"submit": "发布评论",
|
||||
"update": "更新评论",
|
||||
"cancel": "取消",
|
||||
"delete": "删除我的评论",
|
||||
"deleted": "评论已删除",
|
||||
"tooShort": "评论有点短——至少写一句话吧。",
|
||||
"error": "评论保存失败,请重试。",
|
||||
"basedOn": "共 {count} 条评论"
|
||||
},
|
||||
"submission": {
|
||||
"name": "工具名称",
|
||||
"websiteUrl": "官网地址",
|
||||
"tagline": "一句话简介",
|
||||
"taglinePlaceholder": "展示在卡片上的一句话卖点",
|
||||
"description": "详细介绍",
|
||||
"descriptionPlaceholder": "它是做什么的?适合谁?有什么不同?",
|
||||
"logoUrl": "Logo 地址",
|
||||
"category": "分类",
|
||||
"pricingLabel": "定价模式",
|
||||
"pricing": {
|
||||
"free": "免费",
|
||||
"freemium": "免费增值",
|
||||
"paid": "付费",
|
||||
"freeTrial": "免费试用",
|
||||
"openSource": "开源",
|
||||
"contact": "联系定价"
|
||||
},
|
||||
"founderName": "创始人 / 公司",
|
||||
"contactEmail": "联系邮箱",
|
||||
"socialLinks": "社交链接",
|
||||
"note": "给编辑的备注",
|
||||
"notePlaceholder": "任何能加快审核的信息(上线时间、数据等)",
|
||||
"selectPlaceholder": "请选择...",
|
||||
"submit": "提交审核",
|
||||
"submitting": "提交中...",
|
||||
"submitted": "已提交!我们会在 48 小时内完成审核。",
|
||||
"reviewNote": "免费收录 · 48 小时内审核",
|
||||
"duplicateFound": "这个工具可能已经被收录:",
|
||||
"duplicateBlocked": "该工具似乎已被收录,不允许重复提交。",
|
||||
"error": "提交失败,请检查填写内容。"
|
||||
},
|
||||
"claim": {
|
||||
"claimThisTool": "认领此工具",
|
||||
"verifiedOwner": "已认证所有者",
|
||||
"formTitle": "认领该收录页的所有权",
|
||||
"rolePlaceholder": "你的身份(如 创始人、市场负责人)",
|
||||
"messagePlaceholder": "我们如何验证你的身份?(同域名邮箱、官方报道页等)",
|
||||
"proofPlaceholder": "证明链接(可选)",
|
||||
"submit": "发送认领申请",
|
||||
"submitting": "发送中...",
|
||||
"submitted": "认领申请已发送,我们会尽快审核。",
|
||||
"pendingExists": "你已有一条待审核的认领申请。",
|
||||
"cancel": "取消",
|
||||
"error": "认领申请发送失败。"
|
||||
},
|
||||
"rankings": {
|
||||
"title": "社区榜单",
|
||||
"subtitle": "七个实时榜单由投票、评论、收藏与互动数据驱动——不接受赞助排名。",
|
||||
"trending": "趋势榜",
|
||||
"popular": "热门榜",
|
||||
"mostVoted": "最多投票",
|
||||
"mostSaved": "最多收藏",
|
||||
"highestRated": "最高评分",
|
||||
"new": "最新收录",
|
||||
"editorsChoice": "编辑精选",
|
||||
"empty": "该榜单暂无工具。"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user