Skip to content

Commit 3cae211

Browse files
committed
translations Media-Picker
1 parent 93ecaeb commit 3cae211

File tree

5 files changed

+88
-51
lines changed

5 files changed

+88
-51
lines changed

packages/media/resources/lang/de/fields.php

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
// Metadata
5050
'metadata' => 'Metadaten',
5151
'alt_text' => 'Alternativer Text',
52-
'internal_notes' => 'Interne Notizen',
52+
'internal_note' => 'Interne Notizen',
5353
'name' => 'Name',
5454
'title' => 'Titel',
5555
'description' => 'Beschreibung',
@@ -59,4 +59,25 @@
5959
'week' => 'Diese Woche',
6060
'month' => 'Diesen Monat',
6161
'year' => 'Dieses Jahr',
62+
63+
// Media Types
64+
'images' => 'Bilder',
65+
'videos' => 'Videos',
66+
'audios' => 'Audios',
67+
'documents' => 'Dokumente',
68+
69+
// Errors
70+
'class_not_found' => 'Die Klasse ":class" existiert nicht.',
71+
72+
// Media Picker
73+
'upload_and_select_media' => 'Hochladen und Medien auswählen',
74+
'no_media_selected' => 'Keine Medien ausgewählt.',
75+
'select_media' => 'Medien auswählen',
76+
'search' => 'Nach Medien suchen...',
77+
'all_types' => 'Alle Typen',
78+
'all_periods' => 'Alle Zeiträume',
79+
'edit_metadata' => 'Metadaten bearbeiten',
80+
'file_type' => 'Dateityp',
81+
'apply_selection' => 'Auswahl übernehmen',
82+
'close' => 'Schließen',
6283
];

packages/media/resources/lang/en/fields.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
// Metadata
5050
'metadata' => 'Metadata',
5151
'alt_text' => 'Alt Text',
52-
'internal_notes' => 'Internal Notes',
52+
'internal_note' => 'Internal Notes',
5353
'name' => 'Name',
5454
'title' => 'Title',
5555
'description' => 'Description',
@@ -60,10 +60,26 @@
6060
'month' => 'This Month',
6161
'year' => 'This Year',
6262

63-
// Additional keys
63+
// Media Types
6464
'uploaded' => 'Uploaded',
6565
'images' => 'Images',
6666
'videos' => 'Videos',
6767
'audios' => 'Audios',
6868
'documents' => 'Documents',
69+
70+
// Errors
71+
'class_not_found' => 'The class ":class" does not exist.',
72+
73+
// Media Picker
74+
'upload_and_select_media' => 'Upload & Select Media',
75+
'no_media_selected' => 'No media selected.',
76+
'select_media' => 'Select Media',
77+
'search' => 'Search for media...',
78+
'all_types' => 'All Types',
79+
'all_periods' => 'All Periods',
80+
'edit_metadata' => 'Edit Metadata',
81+
'file_type' => 'File Type',
82+
'apply_selection' => 'Apply Selection',
83+
'close' => 'Close',
84+
6985
];

packages/media/resources/views/forms/components/media-picker.blade.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@
4141
@if ($this instanceof \Filament\Resources\Pages\EditRecord || $this instanceof \Filament\Resources\Pages\CreateRecord)
4242
<x-filament::button color="primary" size="sm" class="w-full flex items-center justify-center space-x-2"
4343
x-on:click="
44-
$dispatch('set-media-picker-model', {
45-
modelId: {{ $getRecord()?->id ?? 0 }},
46-
modelClass: '{{ $getRecord() ? addslashes($getRecord()::class) : addslashes($this->getResource()::getModel()) }}'
47-
});
48-
$dispatch('open-modal', { id: 'mediaPickerModal' });
49-
">
50-
<span>Bild auswählen</span>
44+
$dispatch('set-media-picker-model', {
45+
modelId: {{ $getRecord()?->id ?? 0 }},
46+
modelClass: '{{ $getRecord() ? addslashes($getRecord()::class) : addslashes($this->getResource()::getModel()) }}'
47+
});
48+
$dispatch('open-modal', { id: 'mediaPickerModal' });
49+
">
50+
<span>{{ __('media::fields.select_media') }}</span>
5151
</x-filament::button>
5252
@endif
5353

@@ -79,7 +79,7 @@ class="relative group bg-white rounded-lg shadow hover:shadow-md transition-shad
7979

8080
<div x-show="selectedMedia.length === 0"
8181
class="border border-dashed border-gray-300 rounded-lg p-4 bg-gray-50 flex items-center justify-center text-sm text-gray-500">
82-
Kein Bild ausgewählt.
82+
{{ __('media::fields.no_media_selected') }}
8383
</div>
8484

8585
<livewire:media-picker-modal id="media-picker-modal" :multiple="$field->isMultiple()"

packages/media/resources/views/livewire/media-picker-modal.blade.php

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<x-filament::modal id="mediaPickerModal" width="7xl">
22
<x-slot name="header">
3-
<h2 class="text-lg font-bold">Upload & Select Media</h2>
3+
<h2 class="text-lg font-bold">{{ __('media::fields.upload_and_select_media') }}</h2>
44
</x-slot>
55

66
<div class="min-w-[1000px]">
@@ -24,21 +24,21 @@ class="block w-full border-gray-300 rounded-md shadow-sm focus:ring-blue-500 foc
2424

2525
<x-filament::input.wrapper class="w-1/6">
2626
<x-filament::input.select wire:model.live="fileTypeFilter">
27-
<option value="">Alle Typen</option>
28-
<option value="images">Bilder</option>
29-
<option value="videos">Videos</option>
30-
<option value="audios">Audios</option>
31-
<option value="documents">Dokumente</option>
27+
<option value="">{{ __('media::fields.all_types') }}</option>
28+
<option value="images">{{ __('media::fields.images') }}</option>
29+
<option value="videos">{{ __('media::fields.videos') }}</option>
30+
<option value="audios">{{ __('media::fields.audios') }}</option>
31+
<option value="documents">{{ __('media::fields.documents') }}</option>
3232
</x-filament::input.select>
3333
</x-filament::input.wrapper>
3434

3535
<x-filament::input.wrapper class="w-1/6">
3636
<x-filament::input.select wire:model.live="dateFilter">
37-
<option value="">Alle Zeiträume</option>
38-
<option value="today">Heute</option>
39-
<option value="week">7 Tage</option>
40-
<option value="month">Monat</option>
41-
<option value="year">Jahr</option>
37+
<option value="">{{ __('media::fields.all_periods') }}</option>
38+
<option value="today">{{ __('media::fields.today') }}</option>
39+
<option value="week">{{ __('media::fields.week') }}</option>
40+
<option value="month">{{ __('media::fields.month') }}</option>
41+
<option value="year">{{ __('media::fields.year') }}</option>
4242
</x-filament::input.select>
4343
</x-filament::input.wrapper>
4444
</div>
@@ -82,8 +82,8 @@ class="block w-full border-gray-300 rounded-md shadow-sm focus:ring-blue-500 foc
8282

8383
<div wire:click="toggleMediaSelection({{ $item['id'] }})"
8484
class="relative rounded-lg shadow-md overflow-hidden bg-gray-100 hover:shadow-lg transition cursor-pointer
85-
{{ in_array($item['id'], $selectedMediaIds) ? 'ring-2 ring-blue-600' : 'border border-gray-200' }}
86-
{{ $selectedMediaMeta['id'] == $item['id'] ? 'ring-4 ring-blue-700 border-2 border-blue-700' : '' }}">
85+
{{ in_array($item['id'], $selectedMediaIds) ? 'ring-2 ring-blue-600' : 'border border-gray-200' }}
86+
{{ $selectedMediaMeta['id'] == $item['id'] ? 'ring-4 ring-blue-700 border-2 border-blue-700' : '' }}">
8787
@if ($fileData)
8888
<div class="flex flex-col justify-between items-center w-full h-32 bg-gray-200">
8989
<x-filament::icon icon="{{ $fileData['icon'] }}" class="w-16 h-16 text-gray-600" />
@@ -117,67 +117,67 @@ class="text-xs text-gray-700 w-full mt-2 overflow-hidden text-ellipsis whitespac
117117

118118
<div class="w-full md:w-2/5 lg:w-1/3 max-w-md flex-shrink-0 border-l pl-4">
119119
<x-filament::section>
120-
<h3 class="text-lg font-semibold mb-4">Metadaten bearbeiten</h3>
120+
<h3 class="text-lg font-semibold mb-4">{{ __('media::fields.edit_metadata') }}</h3>
121121

122122
@if(!empty($selectedMediaMeta['id']))
123123
<form wire:submit.prevent="saveMetadata">
124124
<x-filament-forms::field-wrapper.label class="block text-sm font-medium text-gray-700 mb-1">
125-
Title
125+
{{ __('media::fields.title') }}
126126
</x-filament-forms::field-wrapper.label>
127127
<x-filament::input.wrapper class="mb-4">
128-
<x-filament::input type="text" wire:model.lazy="selectedMediaMeta.title" placeholder="Title"
128+
<x-filament::input type="text" wire:model.lazy="selectedMediaMeta.title" placeholder="{{ __('media::fields.title') }}"
129129
:disabled="(bool) $selectedMediaMeta['write_protected']"
130130
class="block w-full border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" />
131131
</x-filament::input.wrapper>
132132

133133
<x-filament-forms::field-wrapper.label class="block text-sm font-medium text-gray-700 mb-1">
134-
Description
134+
{{ __('media::fields.description') }}
135135
</x-filament-forms::field-wrapper.label>
136136
<x-filament::input.wrapper class="mb-4">
137137
<x-filament::input type="text" wire:model.lazy="selectedMediaMeta.description"
138-
placeholder="Description" :disabled="$selectedMediaMeta['write_protected'] === true"
138+
placeholder="{{ __('media::fields.description') }}" :disabled="$selectedMediaMeta['write_protected'] === true"
139139
class="block w-full border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" />
140140
</x-filament::input.wrapper>
141141

142142
<x-filament-forms::field-wrapper.label class="block text-sm font-medium text-gray-700 mb-1">
143-
Internal Note
143+
{{ __('media::fields.internal_note') }}
144144
</x-filament-forms::field-wrapper.label>
145145
<x-filament::input.wrapper class="mb-4">
146146
<x-filament::input type="text" wire:model.lazy="selectedMediaMeta.internal_note"
147-
placeholder="Internal note" :disabled="$selectedMediaMeta['write_protected'] === true"
147+
placeholder="{{ __('media::fields.internal_note') }}" :disabled="$selectedMediaMeta['write_protected'] === true"
148148
class="block w-full border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" />
149149
</x-filament::input.wrapper>
150150

151151
<x-filament-forms::field-wrapper.label class="block text-sm font-medium text-gray-700 mb-1">
152-
Alt
152+
{{ __('media::fields.alt_text') }}
153153
</x-filament-forms::field-wrapper.label>
154154
<x-filament::input.wrapper class="mb-4">
155-
<x-filament::input type="text" wire:model.lazy="selectedMediaMeta.alt" placeholder="Alt text"
155+
<x-filament::input type="text" wire:model.lazy="selectedMediaMeta.alt" placeholder="{{ __('media::fields.alt_text') }}"
156156
:disabled="$selectedMediaMeta['write_protected'] === true"
157157
class="block w-full border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" />
158158
</x-filament::input.wrapper>
159159

160160
<x-filament-forms::field-wrapper.label class="block text-sm font-medium text-gray-700 mb-1">
161-
File Type
161+
{{ __('media::fields.file_type') }}
162162
</x-filament-forms::field-wrapper.label>
163163
<x-filament::input.wrapper class="mb-4">
164164
<x-filament::input type="text" disabled wire:model.lazy="selectedMediaMeta.mime_type"
165165
class="block w-full border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" />
166166
</x-filament::input.wrapper>
167167
</form>
168168
@else
169-
<p class="text-gray-500">Kein Bild ausgewählt.</p>
169+
<p class="text-gray-500">{{ __('media::fields.no_media_selected') }}</p>
170170
@endif
171171
</x-filament::section>
172172
</div>
173173
</div>
174174

175175
<x-slot name="footer">
176176
<x-filament::button wire:click="applySelection" color="primary" class="mb-4">
177-
Auswahl übernehmen
177+
{{ __('media::fields.apply_selection') }}
178178
</x-filament::button>
179179
<x-filament::button wire:click="$dispatch('close-modal', { id: 'mediaPickerModal' })">
180-
Schließen
180+
{{ __('media::fields.close') }}
181181
</x-filament::button>
182182
</x-slot>
183183
</x-filament::modal>

packages/media/src/Http/Livewire/MediaPickerModal.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -68,36 +68,36 @@ public function mount(?int $modelId = null, ?string $modelClass = null): void
6868
$this->modelClass = $modelClass;
6969
$this->modelId = $modelId;
7070

71-
if (! $this->modelClass) {
71+
if (!$this->modelClass) {
7272
$this->modelClass = Media::class;
7373
}
7474

7575
$this->modelClass = str_replace('\\\\', '\\', $this->modelClass);
7676

77-
if (! class_exists($this->modelClass)) {
78-
throw new \Exception("Die Klasse {$this->modelClass} existiert nicht.");
77+
if (!class_exists($this->modelClass)) {
78+
throw new \Exception(__('media::fields.class_not_found', ['class' => $this->modelClass]));
7979
}
8080

8181
if ($this->modelId) {
8282
$this->model = app($this->modelClass)::find($this->modelId);
8383
}
8484

85-
if (! $this->modelId || ! $this->model) {
85+
if (!$this->modelId || !$this->model) {
8686
$this->modelId = 0;
8787
}
8888
}
8989

9090
public function form(Form $form): Form
9191
{
92-
$upload = FileUpload::make('files')
92+
$upload = FileUpload::make('')
9393
->afterStateUpdated(function ($state) {
94-
if (! $state) {
94+
if (!$state) {
9595
return;
9696
}
9797

9898
$processedFiles = session('processed_files', []);
9999

100-
if (! is_array($state)) {
100+
if (!is_array($state)) {
101101
$model = new Media;
102102
$model->exists = true;
103103

@@ -241,7 +241,7 @@ public function toggleMediaSelection(int $mediaId)
241241
$this->selectedMediaIds[] = $mediaId;
242242
}
243243
} else {
244-
if (! empty($this->selectedMediaIds) && $this->selectedMediaIds[0] === $mediaId) {
244+
if (!empty($this->selectedMediaIds) && $this->selectedMediaIds[0] === $mediaId) {
245245
$this->selectedMediaIds = [];
246246
} else {
247247
$this->selectedMediaIds = [$mediaId];
@@ -280,15 +280,15 @@ public function applySelection()
280280
$selectedMedia = Media::whereIn('id', $this->selectedMediaIds)->get();
281281

282282
if ($selectedMedia->isNotEmpty()) {
283-
if (! $this->multiple) {
283+
if (!$this->multiple) {
284284
$media = $selectedMedia->first();
285285
$this->dispatch('mediaSelected', [
286286
'id' => $media->id,
287287
'url' => $media->getUrl(),
288288
'file_name' => $media->file_name,
289289
]);
290290
} else {
291-
$selectedMediaData = $selectedMedia->map(fn ($media) => [
291+
$selectedMediaData = $selectedMedia->map(fn($media) => [
292292
'id' => $media->id,
293293
'url' => $media->getUrl(),
294294
'file_name' => $media->file_name,
@@ -339,10 +339,10 @@ public function render()
339339
$media = Media::query()
340340
->when($this->searchQuery, function ($query) {
341341
$query->where(function ($subQuery) {
342-
$subQuery->where('file_name', 'like', '%'.$this->searchQuery.'%')
343-
->orWhere('title', 'like', '%'.$this->searchQuery.'%')
344-
->orWhere('description', 'like', '%'.$this->searchQuery.'%')
345-
->orWhere('alt', 'like', '%'.$this->searchQuery.'%');
342+
$subQuery->where('file_name', 'like', '%' . $this->searchQuery . '%')
343+
->orWhere('title', 'like', '%' . $this->searchQuery . '%')
344+
->orWhere('description', 'like', '%' . $this->searchQuery . '%')
345+
->orWhere('alt', 'like', '%' . $this->searchQuery . '%');
346346
});
347347
})
348348
->when($this->fileTypeFilter, function ($query) {

0 commit comments

Comments
 (0)