3 namespace BookStack\Http\Middleware;
5 use BookStack\Util\LanguageManager;
11 protected LanguageManager $languageManager;
13 public function __construct(LanguageManager $languageManager)
15 $this->languageManager = $languageManager;
19 * Handle an incoming request.
21 * @param \Illuminate\Http\Request $request
22 * @param \Closure $next
26 public function handle($request, Closure $next)
28 // Get and record the default language in the config
29 $defaultLang = config('app.locale');
30 config()->set('app.default_locale', $defaultLang);
32 // Get the user's language and record that in the config for use in views
33 $userLang = $this->languageManager->getUserLanguage($request, $defaultLang);
34 config()->set('app.lang', str_replace('_', '-', $this->languageManager->getIsoName($userLang)));
37 if ($this->languageManager->isRTL($userLang)) {
38 config()->set('app.rtl', true);
41 app()->setLocale($userLang);
42 Carbon::setLocale($userLang);
43 $this->languageManager->setPhpDateTimeLocale($userLang);
45 return $next($request);