0

我正在尝试在我的网站上设置本地化。但是,当用户单击他的首选语言时,默认重定向函数back()会返回默认值 appLocale。

请求使用更改语言:

<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
    @if (app()->getLocale() !== 'en')
        <a href="/en" class="dropdown-item">
        <span>
            <img class="flag" src="{{asset('images/bg/gb.svg')}}" alt=""/> {{__('English')}}
        </span>
        </a>
    @endif
    @if (app()->getLocale() !== 'fr')
        <a href="/fr" class="dropdown-item">
        <span>
            <img class="flag" src="{{asset('images/bg/fr.svg')}}" alt=""/> {{__('Français')}}
         </span>
        </a>
    @endif
</div>

路线

Route::get('/{locale}', 'LangController@index');

语言控制器

class LangController extends Controller
{
    public function index($locale)
    {
        app()->setLocale($locale);

        return back()->permanent();
    }
}

当我通过将语言环境的值dd(App::getLocale())设置为新值来检查它时,但是一旦执行了重定向功能,它的值就会从config/app. 关于如何在重定向后保留更改的任何想法。

4

0 回答 0