中 / 英 / 繁 三种语言包在 Laravel5.4 死活只能相互切 2 中,求大神指点一下蒙圈了?
中间件代码
`class Language
{
public function handle($request, Closure $next)
{
if($request->session()->has('language')){
App::setLocale($request->session()->get('language'));
}else{
App::setLocale(Config::get('app.locale'));
}
return $next($request);
}
}`
//前端页面设置语言包
<span>
<a href="javascript:void(0)" onclick="changelanguage('zh_CN');return false;">
@if(\App::getLocale() == 'zh_CN') <span style="color:#1088C6;">中文</span> @else 中文 @endif
</a>
</span>
<span class="title_content_right_shu">
|
</span>
<span>
<a href="javascript:void(0)" onclick="changelanguage('zh_TW');return false;">
@if(\App::getLocale() == 'zh_TW') <span style="color:#1088C6;">繁体</span> @else 繁体 @endif
</a>
</span>
<span class="title_content_right_shu">
|
</span>
<span>
<a href="javascript:void(0)" onclick="changelanguage('en');return false;">
@if(\App::getLocale() == 'en') <span style="color:#1088C6;">English</span> @else English @endif
</a>
</span>
<script>
function changelanguage(val){
$.ajax({
type:'get',
url: '/change_lang',
data:{
'_token':"{{csrf_token()}}",
'lang':val,
},
dataType:'json',
success:function(data){
console.log(data);
location.reload();
}
});
}
</script>
路由:Route::get('change_lang','IndexController@set_lang');
控制器:
public function set_lang(Request $request){
if($request->ajax()) { //Ajax请求访问
$lang = $request->all();
$lang = $lang['lang'];
\App::setLocale($lang); //配置默认语言
$request->session()->put('language',$lang); //存到session
$seccess = array(
'code'=>200,
'data'=> \App::getLocale('language')
);
return response()->json($seccess);
// return \App::getLocale();
}else{
if($request->session()->has('language')){
$res = $request->session()->get('language'); //获取session
$seccess = array(
'code'=>200,
'data'=> \App::getLocale('language')
);
return response()->json($seccess);
// return $res;
}
}
}
app/config中配置的语言:
'locale' => 'zh-CN',
'locales' => ['zh-CN','en','zh-TW'],
/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/
'fallback_locale' => 'zh-TW',
每次点击切换语言包都能切换
dump(\App::getLocale());
但是模版中
{{trans('index.research')}}
问题:切换中和繁体 字都显示繁体
lang中都已经配置各自的包了如图:,在线等......
推荐文章: