1 <?php namespace BookStack\Http\Middleware;
5 use Illuminate\Http\Request;
10 * Handle an incoming request.
12 * @param \Illuminate\Http\Request $request
13 * @param \Closure $next
16 public function handle($request, Closure $next)
18 $defaultLang = config('app.locale');
20 if (user()->isDefault() && config('app.auto_detect_locale')) {
21 $locale = $this->autoDetectLocale($request, $defaultLang);
23 $locale = setting()->getUser(user(), 'language', $defaultLang);
26 app()->setLocale($locale);
27 Carbon::setLocale($locale);
28 return $next($request);
32 * Autodetect the visitors locale by matching locales in their headers
33 * against the locales supported by BookStack.
34 * @param Request $request
35 * @param string $default
38 protected function autoDetectLocale(Request $request, string $default)
40 $availableLocales = config('app.locales');
41 foreach ($request->getLanguages() as $lang) {
42 if (in_array($lang, $availableLocales)) {