如何更好的实现动态修改多语言
##动态修改多语言,目前我能想到的解决办法如下:(eg:中文 or 英文)config
app
默认
'locale' => 'en',
resources
lang
en
下新建phphub.php
<?php
return [
'Hello' => 'Hello World',
];
resources
lang
zh_CN
下新建phphub.php
<?php
return [
'Hello' => '你好,世界',
];
前端页面调用
<h1>{{ lang('phphub.Hello') }}</h1>
当用户点击修改语言时,存session 设置 $locale(en or zh-CN)
public function changeLanguage($locale){
session(['Language' => $locale]);
config(['app.locale' => $locale]);
}
Middleware
中新建 ChangeLanguage
中间件
public function handle($request, Closure $next)
{
if(session('Language')){
config(['app.locale' => session('Language')]);
}
return $next($request);
}
在用户点击修改语言时,此时的config(['app.locale' => $locale]);
只是修改当前请求的配置为参数语言吗?测试了一下,调用了此方法后,执行其他路由,结果就又回到了默认语言,这个地方不太理解,解决办法就是建个中间件,然后,每次请求修改配置文件
麻烦问一下各位大牛,是不是有更好的解决办法,或是,本来多语言动态设置就不是这个逻辑,请大神指教,非常感谢
推荐文章: