19e1f57983
- Campo "Idioma por defecto" al crear/editar usuario (columna locale ya existente),
como desplegable Alpine con banderas SVG reales (no emoji, que en Windows se ven
como "ES"/"GB") servidas localmente: public/images/flags/{es,gb}.svg.
- User: locale añadido a fillable. UserForm: propiedad/validación/guardado de locale.
- LanguageSwitcher de la cabecera usa las mismas banderas SVG.
- Regla CSS [x-cloak] en el layout para evitar parpadeo de desplegables Alpine.
Tests: UserLocaleTest (2) — crear/editar persisten el idioma.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 lines
722 B
PHP
12 lines
722 B
PHP
<div class="flex items-center gap-1"
|
|
x-on:locale-changed.window="window.location.reload()">
|
|
@foreach(['es' => ['flag' => 'es.svg', 'label' => 'ES'], 'en' => ['flag' => 'gb.svg', 'label' => 'EN']] as $code => $lang)
|
|
<button wire:click="switchLanguage('{{ $code }}')"
|
|
class="btn btn-xs gap-1.5 {{ $currentLocale === $code ? 'btn-primary' : 'btn-ghost' }}"
|
|
title="{{ __('Language') }}: {{ __($code === 'en' ? 'English' : 'Spanish') }}">
|
|
<img src="{{ asset('images/flags/' . $lang['flag']) }}"
|
|
class="w-4 h-auto rounded-sm border border-base-300" alt="{{ $lang['label'] }}">
|
|
{{ $lang['label'] }}
|
|
</button>
|
|
@endforeach
|
|
</div> |