Files
ai-stylegallery/resources/lang/en/filament.php
soeren f5da8ed877 - Galerien sind nun eine Entität - es kann mehrere geben
- Neues Sparkbooth-Upload-Feature: Endpoint /api/sparkbooth/upload (Token-basiert pro Galerie), Controller Api/SparkboothUploadController, Migration 2026_01_21_000001_add_upload_fields_to_galleries_table.php mit Upload-Flags/Token/Expiry;
    Galerie-Modell und Factory/Seeder entsprechend erweitert.
  - Filament: Neue Setup-Seite SparkboothSetup (mit View) zur schnellen Galerie- und Token-Erstellung inkl. QR/Endpoint/Snippet;
    Galerie-Link-Views nutzen jetzt simple-qrcode (Composer-Dependency hinzugefügt) und bieten PNG-Download.
  - Galerie-Tabelle: Slug/Pfad-Spalten entfernt, Action „Link-Details“ mit Modal; Created-at-Spalte hinzugefügt.
  - Zugriffshärtung: Galerie-IDs in API (ImageController, Download/Print) geprüft; GalleryAccess/Middleware + Gallery-Modell/Slug-UUID
    eingeführt; GalleryAccess-Inertia-Seite.
  - UI/UX: LoadingSpinner/StyledImageDisplay verbessert, Delete-Confirm, Übersetzungen ergänzt.
2025-12-04 07:52:50 +01:00

197 lines
7.6 KiB
PHP

<?php
return [
'resource' => [
'ai_model' => [
'form' => [
'name' => 'Name',
'model_id' => 'Model ID',
'model_type' => 'Model Type',
'enabled' => 'Enabled',
'parameters_help_title' => 'Model parameters',
'parameters_help_text' => 'Parameters are plugin-specific: Runware/ComfyUI expect workflow JSON; Leonardo v2 can use width/height/style_ids/prompt_enhance. Values not supported by the plugin are ignored.',
'api_providers' => 'API Providers',
'api_provider' => 'API Provider',
'search_model' => 'Search Model',
'parameters' => 'Parameters',
'parameters_help' => 'For ComfyUI, paste the workflow JSON here. Use __PROMPT__, __FILENAME__, and __MODEL_ID__ as placeholders.',
],
'table' => [
'name' => 'Name',
'model_id' => 'Model ID',
'model_type' => 'Model Type',
'enabled' => 'Enabled',
'api_providers' => 'API Providers',
],
'action' => [
'duplicate' => 'Duplicate',
],
],
'api_provider' => [
'form' => [
'name' => 'Name',
'api_url' => 'API URL',
'username' => 'Username',
'password' => 'Password',
'token' => 'Token',
'plugin' => 'Plugin',
'enabled' => 'Enabled',
],
'table' => [
'name' => 'Name',
'api_url' => 'API URL',
'plugin' => 'Plugin',
'enabled' => 'Enabled',
],
'action' => [
'enable' => 'Enable',
'disable' => 'Disable',
'delete' => 'Delete',
'enable_selected' => 'Enable Selected',
'disable_selected' => 'Disable Selected',
'test_connection' => 'Test Connection',
],
'notification' => [
'connection_successful' => 'Connection successful!',
'connection_failed' => 'Connection failed.',
],
],
'image' => [
'form' => [
'path' => 'Path',
],
'table' => [
'path' => 'Path',
'image' => 'Image',
],
],
'role' => [
'navigation' => [
'group' => 'User Management',
'label' => 'User Roles',
],
'form' => [
'name' => 'Name',
],
'table' => [
'name' => 'Name',
],
],
'style' => [
'form' => [
'title' => 'Title',
'prompt' => 'Prompt',
'description' => 'Description',
'preview_image' => 'Preview Image',
'preview_source' => 'Reference Image for Preview',
'parameters' => 'Parameters',
'parameters_help' => 'For ComfyUI, paste the workflow JSON here. Use __PROMPT__, __FILENAME__, and __MODEL_ID__ as placeholders.',
'api_provider' => 'API Provider',
'ai_model' => 'AI Model',
'enabled' => 'Enabled',
'sort_order' => 'Sort Order',
],
'table' => [
'title' => 'Title',
'ai_model' => 'AI Model',
'preview_image' => 'Preview Image',
'enabled' => 'Enabled',
'sort_order' => 'Sort Order',
],
'action' => [
'duplicate' => 'Duplicate',
'enable_selected' => 'Enable Selected',
'disable_selected' => 'Disable Selected',
'reassign_model' => 'Assign AI Model',
'duplicate_to_model' => 'Duplicate to another model',
],
'import' => [
'title' => 'Import Styles',
'file_label' => 'CSV/Excel (Title,Prompt,[Description])',
'model_label' => 'AI Model',
'success' => 'Styles imported. Please add preview images.',
'empty' => 'No valid rows found.',
],
'preview' => [
'generate' => 'Generate preview',
'missing_image' => 'Please upload a reference image.',
'missing_model' => 'Please select an AI model.',
'missing_prompt' => 'Prompt must not be empty.',
'provider_invalid' => 'API provider is not configured or disabled.',
'no_image' => 'No image data received.',
'done' => 'Preview generated',
'saved_hint' => 'Preview image set. Save the style to keep it.',
'failed' => 'Preview failed',
],
],
'setting' => [
'form' => [
'image_refresh_interval' => 'Image Refresh Interval (seconds)',
'new_image_timespan_minutes' => 'New Image Timespan (minutes)',
'gallery_heading' => 'Gallery Heading',
'require_gallery_password' => 'Require gallery password',
'require_gallery_password_help' => 'Enable this to ask guests for a password before showing the gallery.',
'gallery_password' => 'New gallery password',
'gallery_password_help' => 'Leave empty to keep the current password. Disable password protection to clear it.',
'gallery_expires_at' => 'Gallery expires at',
'gallery_access_duration_minutes' => 'Keep access active for (minutes)',
'gallery_access_duration_help' => 'Optional rolling access window that starts when a guest unlocks the gallery.',
'gallery_password_missing' => 'Please provide a password or disable password protection.',
'max_number_of_copies' => 'Max Number of Copies',
'show_print_button' => "Show 'Print' button on image",
],
],
'user' => [
'navigation' => [
'group' => 'User Management',
],
'form' => [
'name' => 'Name',
'email' => 'Email',
'password' => 'Password',
'role' => 'Role',
'locale' => 'Language',
'email_notifications_enabled' => 'Email notifications',
'theme_preference' => 'Theme preference',
'theme_light' => 'Light',
'theme_dark' => 'Dark',
],
'table' => [
'name' => 'Name',
'email' => 'Email',
'role' => 'Role',
],
],
],
'pages' => [
'global_settings' => 'Global Settings',
],
'navigation' => [
'groups' => [
'ai_models' => 'AI models',
'content' => 'Content',
'plugins' => 'Plugins',
'settings' => 'Settings',
'user_management' => 'User Management',
],
'install_plugin' => 'Install Plugin',
'plugin_list' => 'Plugin List',
'users' => 'Users',
'user_roles' => 'User Roles',
'ai_models' => 'AI Models',
'api_providers' => 'API Providers',
'styles' => 'Styles',
'images' => 'Images',
],
'widgets' => [
'app_stats' => [
'ai_models' => 'AI models',
'api_providers' => 'API providers',
'styles' => 'Styles',
],
],
'loading_spinner' => [
'processing_image' => 'Processing image...',
],
];