讨论 使用交流 升级新版后为什么按照教程用session设置语言不起作用呢?

升级新版后为什么按照教程用session设置语言不起作用呢?

seals 发表于    阅读:175    回复:3

问题描述:

\Illuminate\Support\Facades\Session::put('_locale','zh')

这是官方教程里的方法,但我在controller里使用后不起作用

环境信息:

PHP 7

复现步骤:

在/module/Cms/Web/Controller下修改任一文件,比如IndexController,

use Illuminate\Support\Facades\Session;

  public function index()

    {

        Session::put('_locale','en');

        return $this->view('cms.index');

    }

首页中的任何L('index.关键字),还是显示中文,根本没有去查找对应en目录下的关键字,只能手动更改/config/app.php中的Locale为'en'才行


评论

系统如何确定多语言?

系统按照以下顺序来确定当前语言:

  • routeLocale:路由中的语言参数,比如 http://example.com/zh/xxx 中的 zh,需要指定路由参数为 locale

  • sessionLocale:当前会话使用的语言,由 Session 中的 _locale 值决定;

  • i18nLocale:模块 I18n 模块设定的默认语言,如果没安装 I18n 模块,则忽略。

  • locale:系统设定的默认语言,为 config('app.locale') 的值;

  • fallbackLocale:系统设定的回退语言,为 config('app.fallback_locale') 的值。

如果确定没有locale并且sessionLocale未生效,可QQ联系MZ远程解决查看。

 

如何QQ联系?

 

@seals: QQ群直接找MZ

 
1
我来评论
QQ
微信