php - "App::getLocale()" 返回默认语言而不是自定义服务提供者中的当前语言
问题描述
我正在使用服务提供商制作一个 js 本地化器,我需要获取当前语言环境以获取当前语言翻译并传递给 js。一切正常,但 App::getLocale() 不断返回默认应用程序语言。
我尝试使用 middlware 和基于 laracasts 和 stackoverflow 中的其他问题线程的视图作曲家来做到这一点,但没有任何帮助。这里是链接
https://laracasts.com/discuss/channels/laravel/get-current-locale-in-app-service-provider
Laravel 在 AppServiceProvider 中获取 getCurrentLocale()
class JstranslateServiceProvider extends ServiceProvider
{
protected $langPath;
public function __construct()
{
$locale = App::getLocale();
$this->langPath = resource_path('lang/'.$locale);
dd($locale);
}
}
dd($locale);
'en'
尽管使用当前语言,但输出始终为 。
我使用本指南链接进行了 js 本地化,它似乎对他们有用
解决方案
在服务提供者的构造函数之外执行此操作。
这些类是在 Laravel 执行任何操作之前实例化的,因此很可能您在中间件/视图编写器中编写的任何内容都没有生效。
相反,您应该在boot
orregister
方法中执行此操作。
推荐阅读
- python - ModuleNotFoundError:没有名为错误python 3.8.2的模块
- swift - 在 iOS 中导航回特定屏幕时出现问题
- php - PHP - 只声明一次变量
- sql-server - 如果找不到多个实例,则强制 CharIndex 仅返回 0?
- javascript - 数据结构过滤
- rx-java2 - Vertx 网络和 graphql
- android - Android id is change 同一个app运行在两个不同的Monitor和apk build上怎么解决?请告诉我答案
- php - 在 PHP/Symfony 中匹配 2 个用户函数
- google-chrome-extension - 您能否更好地为 Chrome 扩展清单中的主机权限定义 file:/// URL 模式?
- r - 运行 spacyr 错误找不到 ludwig/python.exe