- 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.
222 lines
8.8 KiB
PHP
222 lines
8.8 KiB
PHP
<?php
|
|
|
|
return [
|
|
'resource' => [
|
|
'ai_model' => [
|
|
'form' => [
|
|
'name' => 'Name',
|
|
'model_id' => 'Modell ID',
|
|
'model_type' => 'Modell Typ',
|
|
'enabled' => 'Aktiviert',
|
|
'parameters_help_title' => 'Model-Parameter',
|
|
'parameters_help_text' => 'Parameter sind plugin-spezifisch: Runware/ComfyUI erwarten Workflow-JSON; Leonardo v2 kann width/height/style_ids/prompt_enhance nutzen. Nicht unterstützte Felder werden ignoriert.',
|
|
'api_providers' => 'API Provider',
|
|
'api_provider' => 'API Provider',
|
|
'search_model' => 'Modell suchen',
|
|
'parameters' => 'Parameter',
|
|
'parameters_help' => 'Für ComfyUI, fügen Sie hier das Workflow-JSON ein. Verwenden Sie __PROMPT__, __FILENAME__ und __MODEL_ID__ als Platzhalter.',
|
|
],
|
|
'table' => [
|
|
'name' => 'Name',
|
|
'model_id' => 'Modell ID',
|
|
'model_type' => 'Modell Typ',
|
|
'enabled' => 'Aktiviert',
|
|
'api_providers' => 'API Anbieter',
|
|
],
|
|
'action' => [
|
|
'duplicate' => 'Duplizieren',
|
|
],
|
|
],
|
|
'api_provider' => [
|
|
'form' => [
|
|
'name' => 'Name',
|
|
'api_url' => 'API URL',
|
|
'username' => 'Benutzername',
|
|
'password' => 'Passwort',
|
|
'token' => 'Token',
|
|
'plugin' => 'Plugin',
|
|
'enabled' => 'Aktiviert',
|
|
],
|
|
'table' => [
|
|
'name' => 'Name',
|
|
'api_url' => 'API URL',
|
|
'plugin' => 'Plugin',
|
|
'enabled' => 'Aktiviert',
|
|
],
|
|
'action' => [
|
|
'enable' => 'Aktivieren',
|
|
'disable' => 'Deaktivieren',
|
|
'delete' => 'Löschen',
|
|
'enable_selected' => 'Ausgewählte aktivieren',
|
|
'disable_selected' => 'Ausgewählte deaktivieren',
|
|
'test_connection' => 'Verbindung testen',
|
|
],
|
|
'notification' => [
|
|
'connection_successful' => 'Verbindung erfolgreich!',
|
|
'connection_failed' => 'Verbindung fehlgeschlagen.',
|
|
],
|
|
],
|
|
'image' => [
|
|
'form' => [
|
|
'path' => 'Pfad',
|
|
],
|
|
'table' => [
|
|
'path' => 'Pfad',
|
|
'image' => 'Bild',
|
|
],
|
|
],
|
|
'role' => [
|
|
'navigation' => [
|
|
'group' => 'Benutzerverwaltung',
|
|
'label' => 'Benutzerrollen',
|
|
],
|
|
'form' => [
|
|
'name' => 'Name',
|
|
],
|
|
'table' => [
|
|
'name' => 'Name',
|
|
],
|
|
],
|
|
'style' => [
|
|
'form' => [
|
|
'title' => 'Titel',
|
|
'prompt' => 'Prompt',
|
|
'description' => 'Beschreibung',
|
|
'preview_image' => 'Vorschaubild',
|
|
'preview_source' => 'Referenzbild für Vorschau',
|
|
'parameters' => 'Parameter',
|
|
'parameters_help' => 'Für ComfyUI, fügen Sie hier das Workflow-JSON ein. Verwenden Sie __PROMPT__, __FILENAME__ und __MODEL_ID__ als Platzhalter.',
|
|
'api_provider' => 'API Anbieter',
|
|
'ai_model' => 'AI Modell',
|
|
'enabled' => 'Aktiviert',
|
|
'sort_order' => 'Sortierreihenfolge',
|
|
],
|
|
'table' => [
|
|
'title' => 'Titel',
|
|
'ai_model' => 'AI Modell',
|
|
'preview_image' => 'Vorschaubild',
|
|
'enabled' => 'Aktiviert',
|
|
'sort_order' => 'Sortierreihenfolge',
|
|
],
|
|
'action' => [
|
|
'duplicate' => 'Duplizieren',
|
|
'enable_selected' => 'Ausgewählte aktivieren',
|
|
'disable_selected' => 'Ausgewählte deaktivieren',
|
|
'reassign_model' => 'AI-Modell zuweisen',
|
|
'duplicate_to_model' => 'Duplizieren auf anderes Modell',
|
|
],
|
|
'import' => [
|
|
'title' => 'Styles importieren',
|
|
'file_label' => 'CSV/Excel (Titel,Prompt,[Beschreibung])',
|
|
'model_label' => 'AI Modell',
|
|
'success' => 'Styles importiert. Bitte Vorschau-Bilder ergänzen.',
|
|
'empty' => 'Keine gültigen Zeilen gefunden.',
|
|
],
|
|
'preview' => [
|
|
'generate' => 'Vorschau generieren',
|
|
'missing_image' => 'Bitte ein Referenzbild hochladen.',
|
|
'missing_model' => 'Bitte ein AI Modell auswählen.',
|
|
'missing_prompt' => 'Prompt darf nicht leer sein.',
|
|
'provider_invalid' => 'API Provider ist nicht korrekt konfiguriert oder deaktiviert.',
|
|
'no_image' => 'Keine Bilddaten erhalten.',
|
|
'done' => 'Vorschau erstellt',
|
|
'saved_hint' => 'Das Vorschaubild wurde gesetzt. Speichere den Style, um es zu behalten.',
|
|
'failed' => 'Vorschau fehlgeschlagen',
|
|
],
|
|
],
|
|
'setting' => [
|
|
'form' => [
|
|
'image_refresh_interval' => 'Bildaktualisierungsintervall (Sekunden)',
|
|
'new_image_timespan_minutes' => 'Neue Bilder Zeitspanne (Minuten)',
|
|
'gallery_heading' => 'Galerie Überschrift',
|
|
'require_gallery_password' => 'Galerie mit Passwort schützen',
|
|
'require_gallery_password_help' => 'Aktivieren, um Gäste vor dem Zugriff ein Passwort eingeben zu lassen.',
|
|
'gallery_password' => 'Neues Galerie-Passwort',
|
|
'gallery_password_help' => 'Leer lassen, um das aktuelle Passwort zu behalten. Deaktiviere den Schutz, um es zu entfernen.',
|
|
'gallery_expires_at' => 'Galerie läuft ab am',
|
|
'gallery_access_duration_minutes' => 'Zugriff aktiv halten für (Minuten)',
|
|
'gallery_access_duration_help' => 'Optionale Zeitspanne, die beim ersten Entsperren startet.',
|
|
'gallery_password_missing' => 'Bitte ein Passwort setzen oder den Passwortschutz deaktivieren.',
|
|
'max_number_of_copies' => 'Maximale Anzahl an Kopien',
|
|
'show_print_button' => 'Button \'Drucken\' beim Bild anzeigen',
|
|
'printer' => 'Drucker',
|
|
'custom_printer' => 'Eigener Drucker/Adresse',
|
|
'custom_printer_address' => 'Druckername oder -adresse',
|
|
],
|
|
],
|
|
'plugin' => [
|
|
'navigation' => [
|
|
'group' => 'Plugins',
|
|
'label' => 'Plugins',
|
|
],
|
|
'table' => [
|
|
'name' => 'Name',
|
|
'identifier' => 'Bezeichner',
|
|
'enabled' => 'Aktiviert',
|
|
'file_path' => 'Dateipfad',
|
|
],
|
|
'action' => [
|
|
'enable' => 'Aktivieren',
|
|
'disable' => 'Deaktivieren',
|
|
'delete' => 'Löschen',
|
|
],
|
|
],
|
|
'user' => [
|
|
'navigation' => [
|
|
'group' => 'Benutzerverwaltung',
|
|
],
|
|
'form' => [
|
|
'name' => 'Name',
|
|
'email' => 'E-Mail',
|
|
'password' => 'Passwort',
|
|
'role' => 'Rolle',
|
|
'locale' => 'Sprache',
|
|
'email_notifications_enabled' => 'E-Mail-Benachrichtigungen',
|
|
'theme_preference' => 'Theme-Einstellung',
|
|
'theme_light' => 'Hell',
|
|
'theme_dark' => 'Dunkel',
|
|
],
|
|
'table' => [
|
|
'name' => 'Name',
|
|
'email' => 'E-Mail',
|
|
'role' => 'Rolle',
|
|
],
|
|
],
|
|
],
|
|
'pages' => [
|
|
'global_settings' => 'Globale Einstellungen',
|
|
],
|
|
'navigation' => [
|
|
'groups' => [
|
|
'ai_models' => 'AI-Modelle',
|
|
'content' => 'Inhalte',
|
|
'plugins' => 'Plugins',
|
|
'settings' => 'Einstellungen',
|
|
'user_management' => 'Benutzerverwaltung',
|
|
],
|
|
'install_plugin' => 'Plugin installieren',
|
|
'plugin_list' => 'Plugin-Liste',
|
|
'users' => 'Benutzer',
|
|
'user_roles' => 'Benutzerrollen',
|
|
'ai_models' => 'AI-Modelle',
|
|
'api_providers' => 'API Provider',
|
|
'styles' => 'Styles',
|
|
'images' => 'Bilder',
|
|
],
|
|
'widgets' => [
|
|
'app_stats' => [
|
|
'ai_models' => 'AI-Modelle',
|
|
'api_providers' => 'API-Provider',
|
|
'styles' => 'Styles',
|
|
],
|
|
],
|
|
'styled_image_display' => [
|
|
'title' => 'Neu gestyltes Bild',
|
|
'keep_button' => 'Behalten',
|
|
'delete_button' => 'Löschen',
|
|
],
|
|
'loading_spinner' => [
|
|
'processing_image' => 'Bild wird verarbeitet...',
|
|
],
|
|
];
|