wip: article AI polish, category SEO fields, cover generator, membership plan seeder
CI / PHPUnit (PHP 8.3) (push) Failing after 4s
CI / PHPUnit (PHP 8.2) (push) Failing after 1m9s
CI / Deploy (manual gate) (push) Skipped

This commit is contained in:
2026-09-07 18:48:37 +00:00
parent 263b98b218
commit 3cec4c5e18
121 changed files with 4701 additions and 313 deletions
+39 -4
View File
@@ -27,6 +27,7 @@ return [
'orders' => '订单',
'payment_settings' => '支付说明',
'membership' => '会员',
'membership_plans' => '会员套餐',
'plugin_marketplace' => '插件商城',
'theme_marketplace' => '皮肤商城',
],
@@ -52,6 +53,8 @@ return [
'plugins' => '插件',
'order' => '订单',
'orders' => '订单',
'membership_plan' => '会员套餐',
'membership_plans' => '会员套餐',
],
'actions' => [
@@ -62,6 +65,7 @@ return [
'cancel' => '取消',
'confirm' => '确认',
'mark_paid' => '标记已支付',
'close' => '关闭',
],
'fields' => [
@@ -97,8 +101,15 @@ return [
'content_html' => '正文(HTML',
'read_password' => '阅读密码',
'ai_summary' => 'AI 摘要',
'ai_polished_content' => 'AI 润色稿',
'ai_suggestions' => 'AI 写作建议',
'cover_path' => '封面路径/URL',
'cover_source' => '封面来源',
'cover_status' => '封面状态',
'display_order' => '排序',
'articles_count' => '文章数',
'intro' => '分类介绍',
'article_excerpt' => '文章摘要',
'use_count' => '使用次数',
'note' => '备注',
'ip' => 'IP',
@@ -126,6 +137,9 @@ return [
'paid_at' => '支付时间',
'price' => '价格',
'paid_enabled' => '启用付费阅读',
'membership_enabled' => '仅会员可见',
'required_plan' => '所需套餐',
'duration_days' => '有效天数',
'trial_value' => '试读字数',
],
@@ -138,6 +152,8 @@ return [
'comment_order_desc' => '新 → 旧',
'ai_provider_stub' => 'Stub(本地验收)',
'ai_provider_openai' => 'OpenAI 兼容接口',
'lifetime' => '终身',
'any_membership' => '任意有效会员',
'moderation' => [
'pending' => '待审核',
'pending_ai' => 'AI 审核中',
@@ -153,13 +169,28 @@ return [
'attachments_prefix' => '对应 /attachments/{path} 解析;磁盘由环境变量中的附件驱动配置控制。',
'analytics_extra' => '可与插件脚本并存。',
'ads_sidebar_extra' => '后台片段与多个插件会依次拼接。',
'ai_polished_content' => '由「AI 润色」生成的草稿,不会自动覆盖正文;确认后点顶部「采用润色稿」。',
'ai_suggestions' => '润色任务附带的写作建议,只读展示。',
'cover_path' => '可填附件相对路径或 https 图片地址;也可用顶部「自动配图」从正文/附件挑选。',
'category_description' => '用于分类页 meta description、OG/Twitter 与搜索摘要。',
'category_intro' => '显示在分类列表页顶部,供读者和爬虫了解该分类。',
'category_cover' => '可填相对路径或 https 图片地址,用于分类页头图与 OG 图。',
'duration_days' => '留空表示终身;填写天数则从支付成功起算。',
],
'messages' => [
'settings_saved' => '设置已保存',
'ai_optimize' => 'AI 内容优化',
'ai_optimize_queued' => '已投递到内容优化队列',
'ai_optimize_queue_hint' => '请确保队列 Worker(或 Workerman)正在消费。',
'ai_optimize' => 'AI 润色',
'ai_optimize_queued' => '已投递到润色队列',
'ai_optimize_queue_hint' => '请确保队列 Worker(或 Workerman)正在消费;完成后刷新本页查看润色稿。',
'ai_apply_polish' => '采用润色稿',
'ai_apply_polish_confirm' => '将用 AI 润色稿覆盖当前正文。可先对照润色稿字段,确认后再采用。',
'ai_apply_polish_done' => '已将润色稿写入正文',
'ai_polish_missing' => '还没有润色稿,请先执行 AI 润色',
'auto_cover' => '自动配图',
'auto_cover_queued' => '已投递自动配图任务',
'generate_cover' => '生成封面',
'generate_cover_queued' => '已投递封面生成任务',
'upload_required' => '请上传附件文件。',
'mime_not_allowed' => '不允许的 MIME 类型::mime',
'theme_slots_warn' => '已启用,但槽位声明::label。请在 theme.json 中声明 slots。',
@@ -170,6 +201,9 @@ return [
'plugin_required_by' => '无法禁用 :plugin,仍被以下已启用插件依赖::dependents',
'plugin_docs_missing' => '未找到该插件的使用说明',
'paid_password_mutex' => '阅读密码与付费阅读不能同时启用',
'access_restriction_mutex' => '阅读密码、单篇付费、会员可见不能同时启用',
'membership_plan_in_use_articles' => '仍有文章引用此套餐,无法删除(可先禁用)',
'membership_plan_has_entitlements' => '仍有用户权益绑定此套餐,无法删除(可先禁用)',
],
'pages' => [
@@ -212,6 +246,7 @@ return [
'snippets' => '注入 / 广告 / 统计',
],
'paid_content' => '付费阅读',
'membership' => '会员可见',
'snippet_groups' => [
'analytics' => '统计与脚本',
'analytics_help' => '写入页面 head / body 末尾的统计与第三方脚本',
@@ -355,7 +390,7 @@ return [
],
'larablog/membership' => [
'title' => '会员',
'description' => '会员等级、权益与订阅周期占位。',
'description' => '会员套餐、Stub 订阅与会员可见文章(依赖 payment)。',
],
'larablog/plugin-marketplace' => [
'title' => '插件商城',