Javascript 在Laravel中编辑登录路径以更改语言首选项
如何编辑Laravel的默认登录页面以添加lanugage更改功能。现在我使用这个软件包,但问题是它不包括登录表单。所以,现在我有这样的东西:,或者。。。但对于登录,它只是 在login.blade.php中,我有以下内容:Javascript 在Laravel中编辑登录路径以更改语言首选项,javascript,php,laravel,Javascript,Php,Laravel,如何编辑Laravel的默认登录页面以添加lanugage更改功能。现在我使用这个软件包,但问题是它不包括登录表单。所以,现在我有这样的东西:,或者。。。但对于登录,它只是 在login.blade.php中,我有以下内容: <select id="changeLang"> <option value="">{{ trans('language.languageChange') }}</option> <option value="/en
<select id="changeLang">
<option value="">{{ trans('language.languageChange') }}</option>
<option value="/en">English</option>
<option value="/de">Deutsch</option>
</select>
这是:
<script type="text/javascript">
$('#changeLang').change(function (e) {
var locAppend = $(this).find('option:selected').val(),
locSnip = "login";
window.location.href = locAppend + "/" + locSnip;
});
</script>
此脚本使用所选语言重新加载页面。现在它显示了一个错误,即路由不存在。此外,我需要能够保持登录后选定的语言。因此,当用户在登录表单中选择英语时,我希望为整个应用程序选择英语。在路由文件中,确保Auth::routes的前缀为LaravelLocalization::setLocale
Route::group([ 'prefix' => LaravelLocalization::setLocale(), 'middleware' => ['localeSessionRedirect', 'localizationRedirect']], function () {
Route::auth();
// other routes here
});
我还建议在登录刀片视图中执行类似操作:
@foreach(LaravelLocalization::getSupportedLocales() as $localeCode => $properties)
<li>
<a rel="alternate" hreflang="{{$localeCode}}" href="{{LaravelLocalization::getLocalizedURL($localeCode) }}">
<img class="flag" src="/assets/plugins/lang/icons/{{$localeCode}}.png" alt="" />
{{ $properties['native'] }}
<span class="value">{{$localeCode}}</span>
</a>
</li>
@endforeach
好的,它用于重定向。在我点击语言并登录后,它工作正常。但是当我单击语言时,页面会再次加载到,并始终显示英语。请删除您的javascript代码,$'changeLang'。changefunction e。。。。试着用我所拥有的每一个片段。但它只是重新加载页面。我希望我的意思是,请检查配置文件config/laravellocalization.php,并确保您取消了对您支持的地区的注释取消注释这一行://'de'=>['name'=>'derman','script'=>'Latn','native'=>'Deutsch','regional'=>'deu de'],