framework icon indicating copy to clipboard operation
framework copied to clipboard

多应用模式下, \think\Lang 没有使用 index/config/lang.php 的配置

Open 956569011 opened this issue 5 years ago • 6 comments

tp6.0.4下多应用的时候,开启多语言分组不好使 // 开启多语言分组 'allow_group' => true

在多应用控制器下获取多语言变量获取不到 \think\facade\Lang::get('user.welcome')

956569011 avatar Sep 30 '20 07:09 956569011

如果安装了多应用模式扩展,需要在应用下的中间件配置加载 \think\middleware\LoadLangPack::class

image

big-dream avatar Jun 25 '24 10:06 big-dream

加了也不行,你测试一下就知道了.在控制器或者模版里面都获取不到.

956569011 avatar Jun 26 '24 02:06 956569011

加了也不行,你测试一下就知道了.在控制器或者模版里面都获取不到.

这是我的测试代码: image

big-dream avatar Jun 26 '24 02:06 big-dream

刚试了下,allow_group,我定义到了具体的模块语言配置文件,\app\admin\config\lang.php,导致不能重写覆盖,导致不能访问定义的二维语言变量,要定义在根config/lang.php才行. 加个QQ 956569011 ,遇到其他问题方便讨论.

956569011 avatar Jun 26 '24 03:06 956569011

经过复现,还没运行到多应用模块时,\think\Lang 就已经构造,后续多应用加载 lang 配置时,虽然 \think\Config 中的配置已更新,但是 \think\Lang 中的配置没有进行更新。

类似问题:#2341

big-dream avatar Jun 27 '24 02:06 big-dream

反正现在allow_group选项只有在全局的config/lang.php定义才有效果,在分组的模块单独定义这个选项并没有效果

  • 在全局confg/lang.php定义了allow_group为true,才有效果,
  • 在全局confg/lang.php定义了allow_group为false,模块app/admin/config/lang.php定义为allow_group为true,没效果不能访问二维变量

956569011 avatar Jun 27 '24 02:06 956569011