Sistema multilingüe EN/ES: middleware SetLocale, LanguageSwitcher, campo locale en users, traducciones en dashboard/mapa/proyectos/gestores
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Livewire;
|
||||
|
||||
use Livewire\Component;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
|
||||
class LanguageSwitcher extends Component
|
||||
{
|
||||
public $currentLocale;
|
||||
|
||||
public function mount()
|
||||
{
|
||||
$this->currentLocale = App::getLocale();
|
||||
}
|
||||
|
||||
public function switchLanguage($locale)
|
||||
{
|
||||
if (!in_array($locale, ['en', 'es'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
App::setLocale($locale);
|
||||
Session::put('locale', $locale);
|
||||
|
||||
if (Auth::check()) {
|
||||
$user = Auth::user();
|
||||
$user->locale = $locale;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
$this->currentLocale = $locale;
|
||||
$this->dispatch('localeChanged', $locale);
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.language-switcher');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user