Problem z wersjami językowymi po zalogowaniu użytkownika w Laravelu

0

Witajcie :)
Jestem początkujący w Laravel. W moim projekcie używam Laravela 5.8.

Stworzyłem sobie middleware:

class Localization
{
    public function handle($request, Closure $next)
    {
        if (session()->has('locale')) {
            App::setLocale(session()->get('locale'));
        }
        return $next($request);
    }
}

Pliki z tłumaczeniami trzymam standardowo:

  • resources/lang/de/messages.php
  • resources/lang/en/messages.php
  • resources/lang/pl/messages.php

Domyślna wersja aplikacji = pl.

Wszystko działa poprawnie do momentu zalogowania użytkownika.
Po zalogowaniu tracę tłumaczenia (pomimo wybranej wersji językowej widzę treści po polsku).

W jaki sposób można to naprawić?

Domyślna wersja strony to PL. Zmieniam język na Angielski. Strona działa poprawnie. Po zalogowaniu strona zmienia język na Polski - pomimo wcześniejszego wybrania języka polskiego

Bardzo proszę o pomoc :)

0

Twój błąd to trzymanie języka w sesji. Przy niektórych operacjach takich jak logowanie czy wylogowywanie poprzednia sesja jest usuwana i tworzona nowa.

0

czyli lepiej zrobić z tego np. cookie?

0

tak

0

W którym miejscu musiałbym nanieść zmiany? W sensie gdzie mogę się podpiąć i zmienić sesje na cookie?

Zakładam że muszę w jakimś miejscu zmienić zapis + mój middleware podmienić na:


if (isset($request->cookie('name'))) {
            App::setLocale($request->cookie('name'));
        }
        return $next($request);


??:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1