如何在 laravel 5.4 中创建支持本地化的API,我尝试了以下代码,但没有起作用,并显示了异常(Language not supported
),我该如何在< strong> laravel API 任何人的帮助,谢谢。
我已经在config / app.php中设置了
'supported_languages' => ['en' => 'English', 'ar' => 'Arabic'],
这是我的控制器
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);
}
}