我正在尝试在我的网站上设置本地化。但是,当用户单击他的首选语言时,默认重定向函数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
. 关于如何在重定向后保留更改的任何想法。