diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 8c033f7d..b5cdc265 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -45,6 +45,7 @@ class Kernel extends HttpKernel 'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth', 'csrf' => 'Illuminate\Foundation\Http\Middleware\VerifyCsrfToken', 'guest' => 'CachetHQ\Cachet\Http\Middleware\RedirectIfAuthenticated', + 'localize' => 'CachetHQ\Cachet\Http\Middleware\Localize', 'throttling' => 'GrahamCampbell\Throttle\Http\Middleware\ThrottleMiddleware', ]; } diff --git a/app/Http/Middleware/Localize.php b/app/Http/Middleware/Localize.php new file mode 100644 index 00000000..e17e2790 --- /dev/null +++ b/app/Http/Middleware/Localize.php @@ -0,0 +1,70 @@ +config = $config; + $this->langs = $config->get('langs'); + } + + /** + * Handle an incoming request. + * + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * + * @return mixed + */ + public function handle($request, Closure $next) + { + $supportedLanguages = $request->getLanguages(); + $userLanguage = $this->config->get('app.locale'); + + foreach ($supportedLanguages as $language) { + $language = substr($language, 0, 2); + + if (isset($this->langs[$language])) { + $userLanguage = $language; + break; + } + } + + app('translator')->setLocale($userLanguage); + + return $next($request); + } +} diff --git a/app/Http/Routes/StatusPageRoutes.php b/app/Http/Routes/StatusPageRoutes.php index 43e77855..c75e5402 100644 --- a/app/Http/Routes/StatusPageRoutes.php +++ b/app/Http/Routes/StatusPageRoutes.php @@ -28,7 +28,7 @@ class StatusPageRoutes public function map(Registrar $router) { $router->get('/', [ - 'middleware' => 'app.hasSetting', + 'middleware' => ['app.hasSetting', 'localize'], 'setting' => 'app_name', 'as' => 'status-page', 'uses' => 'HomeController@showIndex', diff --git a/app/Http/Routes/SubscribeRoutes.php b/app/Http/Routes/SubscribeRoutes.php index 08f9a2ce..89dd08a8 100644 --- a/app/Http/Routes/SubscribeRoutes.php +++ b/app/Http/Routes/SubscribeRoutes.php @@ -28,7 +28,7 @@ class SubscribeRoutes public function map(Registrar $router) { $router->group([ - 'middleware' => 'app.hasSetting', + 'middleware' => ['app.hasSetting', 'localize'], 'setting' => 'app_name', 'as' => 'subscribe.', ], function ($router) {