Sistema multilingüe EN/ES: middleware SetLocale, LanguageSwitcher, campo locale en users, traducciones en dashboard/mapa/proyectos/gestores

This commit is contained in:
2026-05-09 23:14:48 +02:00
parent 7bf5a90a24
commit 3e8b6f1eb3
22 changed files with 798 additions and 131 deletions
@@ -9,31 +9,31 @@
{{-- Subida --}}
<div class="card bg-base-100 shadow-xl mb-4">
<div class="card-body">
<h3 class="card-title text-sm">Subir archivos</h3>
<h3 class="card-title text-sm">{{ __("Upload files") }}</h3>
<form wire:submit.prevent="upload" class="space-y-3">
<div class="form-control">
<label class="label-text">Archivos (hasta 100MB c/u)</label>
<label class="label-text">{{ __("Upload files") }} (100MB {{ __("each") }})</label>
<input type="file" wire:model="uploadFiles" multiple class="file-input file-input-bordered file-input-sm" />
@error('uploadFiles.*') <span class="text-error text-xs">{{ $message }}</span> @enderror
</div>
<div class="grid grid-cols-2 gap-2">
<div class="form-control">
<label class="label-text">Categoría</label>
<label class="label-text">{{ __("Category") }}</label>
<select wire:model="uploadCategory" class="select select-bordered select-sm">
<option value="image">Imagen</option>
<option value="document">Documento</option>
<option value="other">Otro</option>
<option value="image">{{ __("Image") }}</option>
<option value="document">{{ __("Document") }}</option>
<option value="other">{{ __("Other") }}</option>
</select>
</div>
<div class="form-control">
<label class="label-text">Descripción</label>
<label class="label-text">{{ __("Description") }}</label>
<input type="text" wire:model="uploadDescription" class="input input-bordered input-sm" placeholder="Opcional" />
</div>
</div>
<button type="submit" class="btn btn-primary btn-sm w-full">Subir archivos</button>
<button type="submit" class="btn btn-primary btn-sm w-full">{{ __("Upload files") }}</button>
</form>
</div>
</div>
@@ -42,7 +42,7 @@
@if($images->isNotEmpty())
<div class="card bg-base-100 shadow-xl mb-4">
<div class="card-body">
<h3 class="card-title text-sm">Imágenes ({{ $images->count() }})</h3>
<h3 class="card-title text-sm">{{ __("Images") }} ({{ $images->count() }})</h3>
<div class="grid grid-cols-3 gap-2">
@foreach($images as $media)
<div class="relative group cursor-pointer" wire:click="viewMedia({{ $media->id }})">
@@ -61,11 +61,11 @@
</div>
@endif
{{-- Documentos --}}
{{-- {{ __("Document") }}s --}}
@if($documents->isNotEmpty())
<div class="card bg-base-100 shadow-xl mb-4">
<div class="card-body">
<h3 class="card-title text-sm">Documentos ({{ $documents->count() }})</h3>
<h3 class="card-title text-sm">{{ __("Document") }}s ({{ $documents->count() }})</h3>
<div class="space-y-1">
@foreach($documents as $media)
<div class="flex items-center gap-2 p-2 border rounded text-sm hover:bg-base-200">
@@ -95,7 +95,7 @@
@if($mediaItems->isEmpty())
<div class="text-center text-gray-400 py-6 text-sm">
<p class="text-2xl mb-2">📁</p>
<p>No hay archivos. Sube imágenes o documentos.</p>
<p>{{ __("No files yet") }}. Sube imágenes o documentos.</p>
</div>
@endif