Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

onurzdgn's avatar

Livewire and Change Language

Hi everyone, I am using Livewire 10 and Livewire 3. I want to change language without refreshing page. Only my change lang button created with Livewire. Other texts are not created with livewire.

0 likes
2 replies
onurzdgn's avatar

@vincent15000 View:

 @if (app()->getLocale() == 'eng')
                                    <a class="site-logo" href="{{ route('lang', 'tr') }}">
                                        <i class="fa-thin fa-language translate-btn"></i>
                                    </a>
                                @else
                                    <a class="site-logo" href="{{ route('lang', 'eng') }}">
                                        <i class="fa-thin fa-language translate-btn"></i>
                                    </a>
                                @endif

Controller:

public function changeLanguage($lang)
    {
        session()->put('lang', $lang);
        // Get the previous url
        $url = url()->previous();
        // Redirect to the previous url
        return redirect()->intended($url);
    }

Route: Route::get('lang/{lang}', 'changeLanguage')->name('lang'); (Inside route group) Middleware:

 public function handle(Request $request, Closure $next): Response
    {
        if (session()->has('lang')) {
            app()->setLocale(session('lang'));
        }
        return $next($request);
    }

I want to turn livewire because I can't want refresh the page for change language and texts

Please or to participate in this conversation.