auth = $auth; $this->translator = $translator; $this->session = $session; } /** * Process an incoming server request and setting the locale if required * */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $query = $request->getQueryParams(); if (isset($query['set-locale']) && $this->translator->hasLocale($query['set-locale'])) { $locale = $query['set-locale']; $this->translator->setLocale($locale); $this->session->set('locale', $locale); $user = $this->auth->user(); if ($user) { $user->settings->language = $locale; $user->settings->save(); } } return $handler->handle($request); } }