Files
larablog/lang/en/admin.php
T
ak 263b98b218 Initial baseline: LaraBlog core with plugin commerce surface.
Captures the current working tree after theme slots, ArticleAccess, and the payment / paid-content plugins so subsequent work has a reviewable git history.
2026-08-12 01:15:38 +08:00

385 lines
15 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
return [
'brand' => 'LaraBlog Admin',
'dashboard' => 'Dashboard',
'groups' => [
'content' => 'Content',
'system' => 'System',
'plugins' => 'Plugins',
],
'nav' => [
'articles' => 'Articles',
'categories' => 'Categories',
'comments' => 'Comments',
'tags' => 'Tags',
'links' => 'Links',
'attachments' => 'Attachments',
'stylevars' => 'Stylevars',
'users' => 'Users',
'themes' => 'Themes',
'plugins' => 'Plugins',
'settings' => 'Settings',
'cache' => 'Clear cache',
'payment' => 'Payment',
'orders' => 'Orders',
'payment_settings' => 'Payment settings',
'membership' => 'Membership',
'plugin_marketplace' => 'Plugin marketplace',
'theme_marketplace' => 'Theme marketplace',
],
'models' => [
'article' => 'Article',
'articles' => 'Articles',
'category' => 'Category',
'categories' => 'Categories',
'comment' => 'Comment',
'comments' => 'Comments',
'tag' => 'Tag',
'tags' => 'Tags',
'link' => 'Link',
'links' => 'Links',
'attachment' => 'Attachment',
'attachments' => 'Attachments',
'stylevar' => 'Stylevar',
'stylevars' => 'Stylevars',
'user' => 'User',
'users' => 'Users',
'plugin' => 'Plugin',
'plugins' => 'Plugins',
'order' => 'Order',
'orders' => 'Orders',
],
'actions' => [
'save' => 'Save',
'edit' => 'Edit',
'delete' => 'Delete',
'create' => 'Create',
'cancel' => 'Cancel',
'confirm' => 'Confirm',
'mark_paid' => 'Mark as paid',
],
'fields' => [
'id' => 'ID',
'title' => 'Title',
'name' => 'Name',
'display_name' => 'Display name',
'username' => 'Username',
'email' => 'Email',
'password' => 'Password',
'url' => 'URL',
'website' => 'Website',
'roles' => 'Roles',
'category' => 'Category',
'author' => 'Author',
'user' => 'User',
'article' => 'Article',
'description' => 'Description',
'keywords' => 'Keywords',
'slug' => 'Slug',
'published_at' => 'Published at',
'created_at' => 'Created at',
'updated_at' => 'Updated at',
'login_at' => 'Last login',
'views' => 'Views',
'comments_count' => 'Comments',
'stick' => 'Sticky',
'visible' => 'Visible',
'close_comment' => 'Comments closed',
'content_format' => 'Content format',
'content' => 'Content',
'content_markdown' => 'Content (Markdown)',
'content_html' => 'Content (HTML)',
'read_password' => 'Read password',
'ai_summary' => 'AI summary',
'display_order' => 'Order',
'articles_count' => 'Articles',
'use_count' => 'Usage count',
'note' => 'Note',
'ip' => 'IP',
'moderation_status' => 'Moderation status',
'disk' => 'Disk',
'path' => 'Path',
'thumb_path' => 'Thumbnail path',
'filename' => 'Filename',
'mime' => 'MIME type',
'size' => 'Size',
'checksum' => 'Checksum',
'visibility' => 'Visibility',
'legacy_filepath' => 'Legacy path',
'synced_at' => 'Synced at',
'downloads' => 'Downloads',
'upload' => 'Upload file',
'version' => 'Version',
'enabled' => 'Enabled',
'config' => 'Config',
'value' => 'Value',
'status' => 'Status',
'amount' => 'Amount',
'currency' => 'Currency',
'gateway' => 'Gateway',
'paid_at' => 'Paid at',
'price' => 'Price',
'paid_enabled' => 'Paid reading',
'trial_value' => 'Teaser characters',
],
'options' => [
'markdown' => 'Markdown',
'markdown_recommended' => 'Markdown (recommended)',
'html' => 'HTML',
'html_legacy' => 'HTML (legacy posts)',
'comment_order_asc' => 'Oldest first',
'comment_order_desc' => 'Newest first',
'ai_provider_stub' => 'Stub (local acceptance)',
'ai_provider_openai' => 'OpenAI-compatible API',
'moderation' => [
'pending' => 'Pending',
'pending_ai' => 'AI pending',
'approved' => 'Approved',
'rejected' => 'Rejected',
'needs_human' => 'Needs human review',
],
],
'helpers' => [
'article_content' => 'For Markdown use ![alt](attach:ID) or [name](attach:ID); HTML may keep [attach=ID]. Resolved at render time — do not paste object-storage URLs into the body.',
'attachment_upload' => 'Files go to object storage (or the local attachments disk), not long-term app storage.',
'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.',
],
'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.',
'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.',
'slots_missing_prefix' => 'Missing: ',
'mark_paid_success' => 'Order marked as paid',
'mark_paid_failed' => 'Could not mark order as paid',
'plugin_requires' => 'Cannot enable :plugin; enable dependencies first: :requires',
'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',
],
'pages' => [
'themes_title' => 'Themes',
'plugins_title' => 'Plugins',
'plugin_docs' => 'Docs',
'plugin_requires' => 'Requires',
'settings_title' => 'Site settings',
'cache_title' => 'Clear cache',
'themes_publish' => 'Publish theme assets',
'themes_refresh' => 'Refresh',
'plugins_sync' => 'Sync plugins',
'activate' => 'Activate',
'disable' => 'Disable',
'enable' => 'Enable',
'current' => 'Active',
'enabled' => 'Enabled',
'disabled' => 'Disabled',
'preview' => 'Preview',
'version' => 'Version',
'no_plugins' => 'No plugins found. Check plugins/ then sync.',
'no_themes' => 'No themes found. Check themes/.',
'cache_hint' => 'Clear application, view, route and config caches. Database and attachments are untouched.',
'cache_run' => 'Clear cache',
'cache_confirm' => 'Clear application, view, route and config caches? Database and attachments are untouched.',
'cache_cleared' => 'Cache cleared',
'skeleton_note' => 'Skeleton only in phase 1 — no real payment or remote marketplace.',
'status' => 'Status',
'payment_settings_empty' => 'No README found for larablog/payment.',
],
'settings' => [
'tabs' => [
'site' => 'Site',
'reading' => 'Reading & lists',
'comments' => 'Comments',
'seo' => 'SEO / GEO',
'storage' => 'Storage',
'ai' => 'AI',
'snippets' => 'Inject / ads / analytics',
],
'paid_content' => 'Paid reading',
'snippet_groups' => [
'analytics' => 'Analytics & scripts',
'analytics_help' => 'Scripts for document head / end of body',
'ads' => 'Ad slots',
'ads_help' => 'Header banner, sidebar and article ad HTML',
'misc' => 'Temp links & footer',
'misc_help' => 'Campaign links and footer HTML',
],
'site_name' => 'Site name',
'site_url' => 'Site URL',
'site_description' => 'Site description',
'active_theme' => 'Active theme slug',
'attachments_url_prefix' => 'Attachments URL prefix',
'default_content_format' => 'Default content format',
'import_content_format' => 'Import default format',
'import_convert_html_to_markdown' => 'Convert HTML to Markdown on import',
'posts_per_page' => 'Posts per page',
'date_format' => 'Date format',
'show_views' => 'Show view count',
'show_author' => 'Show author',
'allow_comments' => 'Allow comments site-wide',
'comment_order' => 'Comment order',
'close_comments_on_old_posts' => 'Auto-close comments on old posts',
'close_comments_days' => 'Close after days',
'guest_can_comment' => 'Allow guest comments',
'require_moderation' => 'Require human moderation (non-AI)',
'rate_limit_per_minute' => 'Comments per minute limit',
'enable_website_field' => 'Show website field',
'forbidden_words' => 'Forbidden words (comma-separated)',
'meta_title_suffix' => 'Title suffix',
'default_description' => 'Default description',
'default_keywords' => 'Default keywords',
'json_ld_enabled' => 'Enable JSON-LD',
'robots_index' => 'Allow search engine indexing',
'twitter_site' => 'X (Twitter) @site',
'canonical_force_https' => 'Force HTTPS canonical URLs',
'attachments_legacy_prefix' => 'Attachments legacy prefix',
'ai_provider' => 'AI provider',
'ai_api_base_url' => 'API base URL',
'ai_api_key' => 'API key',
'ai_model' => 'Model',
'comment_moderation_enabled' => 'AI comment moderation',
'content_optimization_enabled' => 'AI content optimization',
'analytics_head' => 'Analytics code (document head)',
'body_end' => 'Footer scripts (before body end)',
'header_banner' => 'Header banner / notice HTML',
'ads_sidebar' => 'Sidebar ad HTML',
'custom_links_html' => 'Temporary links / sidebar HTML',
'ads_article_top' => 'Article top ad',
'ads_article_bottom' => 'Article bottom ad',
'footer_html' => 'Footer HTML',
],
'slots' => [
'hint' => ':place · :size · slot theme.:slot · multiple allowed',
'custom' => 'theme.:slot (custom; theme must call @themeslot)',
'status_full' => 'Slots complete',
'status_partial' => 'Missing :count standard slots',
'status_mismatch' => 'Declaration mismatches views',
'status_undeclared' => 'slots not declared',
'head' => [
'label' => 'Document head',
'place' => 'Before </head>; analytics, extra CSS/JS',
'size' => 'No layout size (scripts/meta)',
],
'body_start' => [
'label' => 'Body start',
'place' => 'Immediately after <body>',
'size' => 'No layout size',
],
'body_end' => [
'label' => 'Body end',
'place' => 'Before </body>',
'size' => 'No layout size',
],
'header_after' => [
'label' => 'Header banner',
'place' => 'Below site header/nav, above main',
'size' => 'Full width, ~60120px tall',
],
'nav_after' => [
'label' => 'After nav',
'place' => 'After primary nav links',
'size' => 'Text links / small buttons',
],
'content_before' => [
'label' => 'Before content',
'place' => 'Before main content yield',
'size' => 'Main column width (~640760px)',
],
'content_after' => [
'label' => 'After content',
'place' => 'After main content yield',
'size' => 'Same as main column',
],
'article_top' => [
'label' => 'Article top',
'place' => 'Above title (article page)',
'size' => 'Main width × ~90250px',
],
'article_bottom' => [
'label' => 'Article bottom',
'place' => 'After body, before comments',
'size' => 'Main width × ~90250px',
],
'sidebar_before' => [
'label' => 'Sidebar before',
'place' => 'Before first sidebar panel',
'size' => 'Sidebar ~280320px',
],
'sidebar' => [
'label' => 'Sidebar',
'place' => 'Ad panel after categories/stylevars',
'size' => 'Sidebar ~280320px; stacks vertically',
],
'sidebar_after' => [
'label' => 'Sidebar after',
'place' => 'Later sidebar (temp links)',
'size' => 'Sidebar width; text links',
],
'footer_before' => [
'label' => 'Before footer',
'place' => 'Before <footer>',
'size' => 'Full or wrap width',
],
'footer_after' => [
'label' => 'After footer',
'place' => 'After </footer>, before </body>',
'size' => 'Full width; scripts OK',
],
],
'plugins' => [
'larablog/payment' => [
'title' => 'Payment',
'description' => 'Orders, Stub checkout, entitlements, and admin order management.',
],
'larablog/paid-content' => [
'title' => 'Paid content',
'description' => 'Article pricing, teasers, and paywall; requires the payment plugin.',
],
'larablog/membership' => [
'title' => 'Membership',
'description' => 'Membership tiers and entitlements skeleton.',
],
'larablog/plugin-marketplace' => [
'title' => 'Plugin marketplace',
'description' => 'Remote plugin catalog skeleton; local plugins/ sync only for now.',
],
'larablog/theme-marketplace' => [
'title' => 'Theme marketplace',
'description' => 'Remote theme catalog skeleton; local themes/ switch only for now.',
],
'larablog/ai-comment-moderation' => [
'title' => 'AI comment moderation',
'description' => 'Queues AI moderation after comment create (stub OK).',
],
],
'themes' => [
'default' => [
'title' => 'Default (teal)',
'description' => 'Fraunces + teal accent for everyday reading.',
],
'example' => [
'title' => 'Example (amber)',
'description' => 'Newsreader + amber accent; second theme demo.',
],
],
];