How to create API that supports localization in laravel 5.4

Submitted by shahid - 2 weeks ago

How to create API that supports localization in laravel 5.4 i have tried the below code but not work and shows the exception (Language not supported) how can i do that support language change in laravel API anybody help thanks in advance.

public function __construct(Application $app)
    {
        $this->app = $app;
    }

    public function handle($request, Closure $lang)
    {
        try 
        {
            // read the language from the request header
            $locale = $request->header('Content-Language');
            // if the header is missed
            if(!$locale)
            {
                // take the default local language
                $locale = $this->app->config->get('app.locales');
            }

            // check the languages defined is supported
            if (!array_key_exists($locale, $this->app->config->get('app.supported_languages'))) 
            {
                // respond with error
                return response()->json(['data' => 'Language not supported.', 'status_code' => 403, 'status' => false],403);
            }

            // set the local language
            $this->app->setLocale($locale);

            // get the response after the request is done
            $response = $lang($request);

            // set Content Languages header in the response
            $response->headers->set('Content-Language', $locale);

            // return the response
            return response()->json(['data' => $response, 'status_code' => 200, 'status' => true],200);
        } 
        catch (Exception $e) 
        {
            return Response::json(['error' => 'There is something wrong', 'status_code' => 500, 'status' => false],500);
        }
    }
comments powered by Disqus