wip: article AI polish, category SEO fields, cover generator, membership plan seeder
This commit is contained in:
+39
-4
@@ -27,6 +27,7 @@ return [
|
||||
'orders' => 'Orders',
|
||||
'payment_settings' => 'Payment settings',
|
||||
'membership' => 'Membership',
|
||||
'membership_plans' => 'Membership plans',
|
||||
'plugin_marketplace' => 'Plugin marketplace',
|
||||
'theme_marketplace' => 'Theme marketplace',
|
||||
],
|
||||
@@ -52,6 +53,8 @@ return [
|
||||
'plugins' => 'Plugins',
|
||||
'order' => 'Order',
|
||||
'orders' => 'Orders',
|
||||
'membership_plan' => 'Membership plan',
|
||||
'membership_plans' => 'Membership plans',
|
||||
],
|
||||
|
||||
'actions' => [
|
||||
@@ -62,6 +65,7 @@ return [
|
||||
'cancel' => 'Cancel',
|
||||
'confirm' => 'Confirm',
|
||||
'mark_paid' => 'Mark as paid',
|
||||
'close' => 'Close',
|
||||
],
|
||||
|
||||
'fields' => [
|
||||
@@ -97,8 +101,15 @@ return [
|
||||
'content_html' => 'Content (HTML)',
|
||||
'read_password' => 'Read password',
|
||||
'ai_summary' => 'AI summary',
|
||||
'ai_polished_content' => 'AI polished draft',
|
||||
'ai_suggestions' => 'AI writing tips',
|
||||
'cover_path' => 'Cover path / URL',
|
||||
'cover_source' => 'Cover source',
|
||||
'cover_status' => 'Cover status',
|
||||
'display_order' => 'Order',
|
||||
'articles_count' => 'Articles',
|
||||
'intro' => 'Category intro',
|
||||
'article_excerpt' => 'Article excerpt',
|
||||
'use_count' => 'Usage count',
|
||||
'note' => 'Note',
|
||||
'ip' => 'IP',
|
||||
@@ -126,6 +137,9 @@ return [
|
||||
'paid_at' => 'Paid at',
|
||||
'price' => 'Price',
|
||||
'paid_enabled' => 'Paid reading',
|
||||
'membership_enabled' => 'Members only',
|
||||
'required_plan' => 'Required plan',
|
||||
'duration_days' => 'Duration (days)',
|
||||
'trial_value' => 'Teaser characters',
|
||||
],
|
||||
|
||||
@@ -138,6 +152,8 @@ return [
|
||||
'comment_order_desc' => 'Newest first',
|
||||
'ai_provider_stub' => 'Stub (local acceptance)',
|
||||
'ai_provider_openai' => 'OpenAI-compatible API',
|
||||
'lifetime' => 'Lifetime',
|
||||
'any_membership' => 'Any active membership',
|
||||
'moderation' => [
|
||||
'pending' => 'Pending',
|
||||
'pending_ai' => 'AI pending',
|
||||
@@ -153,13 +169,28 @@ return [
|
||||
'attachments_prefix' => 'Used for /attachments/{path} resolution; disk is controlled by attachment driver env vars.',
|
||||
'analytics_extra' => 'Can coexist with plugin scripts.',
|
||||
'ads_sidebar_extra' => 'Admin snippets and plugins are concatenated in order.',
|
||||
'ai_polished_content' => 'Draft from “AI polish”; it does not overwrite the body until you click “Apply polished draft”.',
|
||||
'ai_suggestions' => 'Read-only tips returned with the polish job.',
|
||||
'cover_path' => 'Attachment-relative path or https image URL; or use “Auto cover” to pick from body/attachments.',
|
||||
'category_description' => 'Used for the category page meta description, OG/Twitter, and search snippets.',
|
||||
'category_intro' => 'Shown at the top of the category listing for readers and crawlers.',
|
||||
'category_cover' => 'Relative path or https image URL for the category header and OG image.',
|
||||
'duration_days' => 'Leave empty for lifetime; otherwise counted from payment success.',
|
||||
],
|
||||
|
||||
'messages' => [
|
||||
'settings_saved' => 'Settings saved',
|
||||
'ai_optimize' => 'AI content optimize',
|
||||
'ai_optimize_queued' => 'Queued for content optimization',
|
||||
'ai_optimize_queue_hint' => 'Ensure a queue worker (or Workerman) is consuming jobs.',
|
||||
'ai_optimize' => 'AI polish',
|
||||
'ai_optimize_queued' => 'Queued for AI polish',
|
||||
'ai_optimize_queue_hint' => 'Ensure a queue worker (or Workerman) is consuming jobs; refresh this page when done.',
|
||||
'ai_apply_polish' => 'Apply polished draft',
|
||||
'ai_apply_polish_confirm' => 'Replace the article body with the AI polished draft. Review the draft field first.',
|
||||
'ai_apply_polish_done' => 'Polished draft applied to content',
|
||||
'ai_polish_missing' => 'No polished draft yet — run AI polish first',
|
||||
'auto_cover' => 'Auto cover',
|
||||
'auto_cover_queued' => 'Auto-cover job queued',
|
||||
'generate_cover' => 'Generate cover',
|
||||
'generate_cover_queued' => 'Cover generation job queued',
|
||||
'upload_required' => 'Please upload an attachment.',
|
||||
'mime_not_allowed' => 'MIME type not allowed: :mime',
|
||||
'theme_slots_warn' => 'Activated, but slot declaration: :label. Declare slots in theme.json.',
|
||||
@@ -170,6 +201,9 @@ return [
|
||||
'plugin_required_by' => 'Cannot disable :plugin; still required by: :dependents',
|
||||
'plugin_docs_missing' => 'No usage docs found for this plugin',
|
||||
'paid_password_mutex' => 'Read password and paid reading cannot both be enabled',
|
||||
'access_restriction_mutex' => 'Read password, paid reading, and members-only cannot be combined',
|
||||
'membership_plan_in_use_articles' => 'Plan is still referenced by articles; disable it instead of deleting',
|
||||
'membership_plan_has_entitlements' => 'Plan still has entitlements; disable it instead of deleting',
|
||||
],
|
||||
|
||||
'pages' => [
|
||||
@@ -212,6 +246,7 @@ return [
|
||||
'snippets' => 'Inject / ads / analytics',
|
||||
],
|
||||
'paid_content' => 'Paid reading',
|
||||
'membership' => 'Members only',
|
||||
'snippet_groups' => [
|
||||
'analytics' => 'Analytics & scripts',
|
||||
'analytics_help' => 'Scripts for document head / end of body',
|
||||
@@ -355,7 +390,7 @@ return [
|
||||
],
|
||||
'larablog/membership' => [
|
||||
'title' => 'Membership',
|
||||
'description' => 'Membership tiers and entitlements skeleton.',
|
||||
'description' => 'Plans, stub subscribe, and members-only articles (requires payment).',
|
||||
],
|
||||
'larablog/plugin-marketplace' => [
|
||||
'title' => 'Plugin marketplace',
|
||||
|
||||
@@ -18,12 +18,28 @@ return [
|
||||
'subscribe' => 'Subscribe',
|
||||
'empty_category' => 'No categories',
|
||||
],
|
||||
'category' => [
|
||||
'post_count' => ':count posts',
|
||||
],
|
||||
'article' => [
|
||||
'toc' => 'Contents',
|
||||
'password_error' => 'Incorrect password',
|
||||
'paywall_title' => 'Paid content',
|
||||
'paywall_hint' => 'Purchase to read the full article.',
|
||||
'buy' => 'Buy now',
|
||||
'membership_required' => 'Members only.',
|
||||
],
|
||||
'membership' => [
|
||||
'title' => 'Membership plans',
|
||||
'active' => 'Active plan: :plan',
|
||||
'inactive' => 'You are not a paid member yet.',
|
||||
'expires' => 'Expires: :date',
|
||||
'lifetime' => 'Lifetime',
|
||||
'days' => ':days days',
|
||||
'subscribe' => 'Subscribe',
|
||||
'no_plans' => 'No plans available.',
|
||||
'back_profile' => 'Back to profile',
|
||||
'manage' => 'View / subscribe',
|
||||
],
|
||||
'common' => [
|
||||
'pinned' => 'Pinned',
|
||||
|
||||
Reference in New Issue
Block a user